One way syncing from your editor into Roblox Studio. Your files are the truth, Studio only ever receives.
rokit add --global thekingofspace/RoFlux roflux # install the server
roflux plugin # install the Studio plugin
roflux init MyGame # set up a project
roflux serve MyGame # start syncing
Then open Studio, click RoFlux on the toolbar, and press Connect.
| Command | Does |
|---|---|
roflux serve [project] |
Watch and stream changes into Studio |
roflux compile [project] |
Compile once, refresh sourcemap.json |
roflux build [project] -o Game.rbxl |
Write a place or model file |
roflux plugin |
Install the Studio plugin |
roflux init [project] |
Scaffold a new project |
[project] is a project name and .project.json is added for you, so roflux serve game reads
game.project.json. With no name you get default.project.json.
MyGame/
├─ default.project.json project info and service properties
├─ meta.inst.json instances with no file of their own
├─ scripts/ compile time hooks
└─ Shared/
├─ init.meta.json { "$Parent": "ReplicatedStorage" }
└─ Greeting.luau becomes a ModuleScript
Files become instances. .luau is a ModuleScript, .server.luau a Script, .client.luau a
LocalScript, and a folder with an init.luau becomes the script itself. Luau source is sent
across as text and never parsed or rewritten.
Full docs are at thekingofspace.github.io/RoFlux.
| Page | Covers |
|---|---|
| Why RoFlux | How it compares to Rojo, Azul, Carbon, Pesto and Verde |
| Getting started | Install, connect, editor setup |
| Project format | Files, directives, meta.inst.json, multiple places |
| How syncing works | Ownership, deletion, playtests, transport |
| Script system | Hooks, transpilers, reading files |
| Script API | Every roflux function a script can use |
| Value types | How to write Color3, enums, UDim2 and every other type |
| CLI commands | Every command and option |
| Edge cases | The things that surprise people |
The Build workflow in Actions builds both platforms on demand. Run it from the Actions tab.
It names the files with the version from Server/Cargo.toml, or the version you type in:
roflux-0.0.2/
├─ roflux-0.0.2-linux-x86_64.zip
├─ roflux-0.0.2-windows-x86_64.zip
└─ RoFlux.rbxm
Download that, unzip it, and attach the three files to a GitHub release. Keep the zips as they
are. Rokit only installs from zips named with the system and CPU, so this is what makes
rokit add --global thekingofspace/RoFlux roflux work.
| Path | What it is |
|---|---|
Server/ |
Rust server: scans, watches, serves the sync socket |
Plugin/ |
The Studio plugin, compiled into the server binary |
docs/ |
Documentation site |
TestProject/ |
A sample project |