Skip to content

Latest commit

 

History

19 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RoFlux

One way syncing from your editor into Roblox Studio. Your files are the truth, Studio only ever receives.

Quick start

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.

Commands

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.

What a project looks like

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.

Documentation

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

Building releases

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.

Layout

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

About

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages