This page answers questions that come up frequently when working with Rojo. If you can’t find what you’re looking for here, check the GitHub repository or open a discussion.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/rojo-rbx/rojo/llms.txt
Use this file to discover all available pages before exploring further.
What is Rojo?
What is Rojo?
Do I need Roblox Studio to use Rojo?
Do I need Roblox Studio to use Rojo?
rojo serve— requires Roblox Studio. The Studio plugin connects to the Rojo server to apply changes in real time.rojo build— does not require Studio. You can build an.rbxlor.rbxlxfile from the command line without opening Studio.rojo upload— does not require Studio. You can upload a place directly to Roblox using an auth cookie or Open Cloud API key.
What file types does Rojo support?
What file types does Rojo support?
| Extension | Instance type |
|---|---|
*.server.lua, *.server.luau | Script (server) |
*.client.lua, *.client.luau | LocalScript |
*.plugin.lua, *.plugin.luau | Script (Plugin RunContext) |
*.lua, *.luau | ModuleScript |
*.project.json, *.project.jsonc | Nested Rojo project |
*.model.json, *.model.jsonc | Roblox model (JSON format) |
*.json, *.jsonc | ModuleScript (JSON parsed to Lua table) |
*.toml | ModuleScript (TOML parsed to Lua table) |
*.csv | LocalizationTable |
*.txt | StringValue |
*.rbxmx | Roblox model (XML format) |
*.rbxm | Roblox model (binary format) |
*.yml, *.yaml | ModuleScript (YAML parsed to Lua table) |
syncRules field to treat files as a different type.What is the default port for rojo serve?
What is the default port for rojo serve?
--port flag:servePort in your project file:--port flag takes precedence over servePort in the project file.How do I exclude files from syncing?
How do I exclude files from syncing?
globIgnorePaths field in your project file. It accepts a list of glob patterns relative to the project file’s directory:What is the difference between .rbxl and .rbxlx?
What is the difference between .rbxl and .rbxlx?
| Format | Encoding | Notes |
|---|---|---|
.rbxl | Binary | Smaller file size, not human-readable |
.rbxlx | XML | Larger file size, human-readable and diffable |
.rbxm (binary) and .rbxmx (XML) are the model equivalents.What is syncback?
What is syncback?
syncbackRules field in your project file.How do I version control my Roblox project?
How do I version control my Roblox project?
- Store your Lua/Luau source files and project file in Git.
- Add your built output (
.rbxl,.rbxlx) to.gitignore— these are generated artifacts. - Add
sourcemap.jsonto.gitignoreas well (added by default in v7.6.1).
.gitignore for a Rojo project:rojo serve, and connect from Studio to get a fully synced environment.Can I use Rojo with an existing Roblox project?
Can I use Rojo with an existing Roblox project?
rojo syncback to convert an existing .rbxl file into a Rojo-managed filesystem layout:What are init files?
What are init files?
init.lua, init.luau, init.server.lua, init.server.luau, init.client.lua, or init.client.luau, it treats that file as the source of the directory’s instance.For example, a directory named MyModule with an init.lua file becomes a single ModuleScript named MyModule whose source is the contents of init.lua. Any other files inside MyModule/ become children of that ModuleScript.init.meta.json files serve the same purpose for attaching properties to a directory-level instance.How do I set up Rojo for team collaboration?
How do I set up Rojo for team collaboration?
- One project file (
default.project.json) in the repository root, committed to Git. - Each developer runs
rojo servelocally and connects from their own Studio instance. - Changes to Lua files are committed to Git and pulled by teammates.
servePlaceIds in your project file to ensure teammates don’t accidentally sync to the wrong place:What are meta files?
What are meta files?
.meta.json or .meta.jsonc) attach additional Roblox instance properties to files or directories that don’t natively support them.For example, to set properties on a ModuleScript defined by MyModule.lua, create MyModule.meta.json alongside it:init.meta.json inside it to set properties on the directory’s instance.Does Rojo support JSONC files?
Does Rojo support JSONC files?
.project.json→.project.jsonc.meta.json→.meta.jsonc.model.json→.model.jsonc- Plain
.jsondata files →.jsonc
How do I upload to Roblox using Open Cloud?
How do I upload to Roblox using Open Cloud?
rojo upload with an API key obtained from create.roblox.com/credentials:--api_key and --universe_id are required when using Open Cloud. The --asset_id is the place ID to upload to.What does emitLegacyScripts do?
What does emitLegacyScripts do?
emitLegacyScripts is a project file field that controls how Rojo emits script instances. It defaults to true, preserving the classic Roblox class types:| Value | *.server.lua produces | *.client.lua produces |
|---|---|---|
true (default) | Script | LocalScript |
false | Script with RunContext = Server | Script with RunContext = Client |
false to use the newer RunContext-based model:true unless they specifically need the RunContext API.