File Types
Argon supports various file types, here is how they are transformed into Roblox instances!
Overview
| File Type | File Name |
|---|---|
| Folder | any directory |
| Server Script | *.server.lua / *.server.luau |
| Client Script | *.client.lua / *.client.luau |
| Module Script | *.lua / *.luau |
| XML Model | *.rbxmx |
| Binary Model | *.rbxm |
| JSON Model | *.model.json |
| JSON Module | *.json |
| TOML Module | *.toml |
| YAML Module | *.yaml / *.yml |
| MessagePack Module | *.msgpack |
| Markdown | *.md |
| Plain Text | *.txt |
| Localization Table | *.csv |
| Project | *.project.json |
| Data File | *.meta.json |
Instances with Children
All mentioned file types can contain children. To do so you have to create a folder with the desired name and add init file with the suffix based on the desired file type inside that folder. The only exceptions are: Project whose immediate children are ignored and Data File which is used to describe instance. Here are some examples:
Instance + Children
| Filesystem | Roblox |
|---|---|
(Instance + Data) + Children
| Filesystem | Roblox |
|---|---|
Instance + (Children + Data)
| Filesystem | Roblox |
|---|---|
Only one init and one init.meta file can be present in the same folder!
Folder
Any directory on the filesystem will turn into a Folder instance with the same name. It is possible for a directory to contain certain files that change what the directory turns into described above.
Scripts
Files with lua or luau extensions are transformed into the corresponding Roblox script instances:
- Any file ending in
.server.lua(u)will turn into aScriptinstance - Any file ending in
.client.lua(u)will turn into aLocalScriptinstance - Any other
.lua(u)file will turn into aModuleScriptinstance
You can disable scripts by adding --disable comment at the very beginning of the script source without needing to create special Data File only for this property!
If the project has legacyScripts setting disabled:
.server.lua(u)will turn into aScriptwith aServerrun context.client.lua(u)will turn into aScriptwith aLocalrun context
Roblox Models
Both binary (rbxm) and XML (rbxmx) models generated by Roblox Studio and other tools are supported. They get seamlessly integrated with the project tree.
Property type support chart
| Property Type | Example Property | CLI | Plugin | XML | Binary |
|---|---|---|---|---|---|
| Attributes | Instance.Attributes | ✅ | ✅ | ✅ | ✅ |
| Axes | ArcHandles.Axes | ✅ | ✅ | ✅ | ✅ |
| BinaryString | BinaryStringValue.Value | ✅ | ⏺️ | ✅ | ✅ |
| Bool | Part.Anchored | ✅ | ✅ | ✅ | ✅ |
| BrickColor | Part.BrickColor | ✅ | ✅ | ✅ | ✅ |
| Bytecode | N/A | ❌ | ⛔ | ❌ | ❌ |
| CFrame | Camera.CFrame | ✅ | ✅ | ✅ | ✅ |
| Color3 | Lighting.Ambient | ✅ | ✅ | ✅ | ✅ |
| Color3uint8 | Part.BrickColor | ✅ | ✅ | ✅ | ✅ |
| ColorSequence | Beam.Color | ✅ | ✅ | ✅ | ✅ |
| Content | Decal.Texture | ✅ | ✅ | ✅ | ✅ |
| Enum | Part.Shape | ✅ | ✅ | ✅ | ✅ |
| Faces | Handles.Faces | ✅ | ✅ | ✅ | ✅ |
| Float32 | Players.RespawnTime | ✅ | ✅ | ✅ | ✅ |
| Float64 | Sound.PlaybackLoudness | ✅ | ✅ | ✅ | ✅ |
| Font | TextLabel.Font | ✅ | ✅ | ✅ | ✅ |
| Int32 | Frame.ZIndex | ✅ | ✅ | ✅ | ✅ |
| Int64 | Player.UserId | ✅ | ✅ | ✅ | ✅ |
| MaterialColors | Terrain.MaterialColors | ✅ | ✅ | ✅ | ✅ |
| NumberRange | ParticleEmitter.Lifetime | ✅ | ✅ | ✅ | ✅ |
| NumberSequence | Beam.Transparency | ✅ | ✅ | ✅ | ✅ |
| OptionalCFrame | Model.WorldPivotData | ✅ | ✅ | ✅ | ✅ |
| PhysicalProperties | Part.CustomPhysicalProperties | ✅ | ✅ | ✅ | ✅ |
| ProtectedString | ModuleScript.Source | ✅ | ✅ | ✅ | ✅ |
| Ray | RayValue.Value | ✅ | ✅ | ✅ | ✅ |
| Rect | ImageButton.SliceCenter | ✅ | ✅ | ✅ | ✅ |
| Ref | Model.PrimaryPart | ✅ | ✅ | ✅ | ✅ |
| Region3 | N/A | ✅ | ✅ | ❌ | ❌ |
| Region3int16 | Terrain.MaxExtents | ✅ | ✅ | ❌ | ❌ |
| SecurityCapabilities | Folder.SecurityCapabilities | ✅ | ❌ | ✅ | ✅ |
| SharedString | N/A | ✅ | ✅ | ✅ | ✅ |
| String | Instance.Name | ✅ | ✅ | ✅ | ✅ |
| Tags | UIListLayout.Padding | ✅ | ✅ | ✅ |