Skip to content

File Formats

RbxSync uses two file formats to represent Roblox instances.

Overview

FormatExtensionUse Case
Luau Scripts.luauScript source code
Instance Data.rbxjsonProperties and metadata

Script Files

Scripts are stored as plain .luau files with naming conventions:

MyScript.server.luau  → Script (runs on server)
MyScript.client.luau  → LocalScript (runs on client)
MyScript.luau         → ModuleScript

See .luau Scripts for details.

Instance Files

Non-script instances use .rbxjson for full property preservation:

json
{
  "className": "Part",
  "properties": {
    "Anchored": { "type": "bool", "value": true },
    "Size": { "type": "Vector3", "value": { "x": 4, "y": 1, "z": 2 } }
  }
}

See .rbxjson Format for details.

Project Structure

MyGame/
├── rbxsync.json          # Project config
├── src/
│   ├── Workspace/
│   │   ├── Baseplate.rbxjson
│   │   └── SpawnLocation.rbxjson
│   ├── ServerScriptService/
│   │   └── Main.server.luau
│   ├── ReplicatedStorage/
│   │   └── Modules/
│   │       ├── _meta.rbxjson    # Folder metadata
│   │       └── Utils.luau
│   └── Lighting.rbxjson
└── sourcemap.json        # For Luau LSP

Meta Files

Use _meta.rbxjson to set properties on folder instances:

src/
├── Workspace/
│   ├── _meta.rbxjson      # Properties for Workspace service
│   ├── Baseplate.rbxjson
│   └── SpawnLocation.rbxjson