A Rojo project file is a JSON document that tells Rojo how to map files and directories on your filesystem to Roblox instances. Every Rojo workflow starts with one.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.
File format
Project files are named with the.project.json or .project.jsonc extension. Rojo automatically locates a file named default.project.json or default.project.jsonc when you point a command at a directory.
.project.jsonc files support JavaScript-style comments (//, /* */) and trailing commas. Use them when you want to annotate your configuration.default.project.json
name (or a resolvable filename) and tree. Everything else is optional.
Instance tree (tree)
The tree field describes a hierarchy of Roblox instances. Every key that does not start with $ is treated as a child instance whose name is that key. Keys starting with $ are Rojo directives.
Instance node fields
The Roblox class name for this instance (e.g.
"ModuleScript", "Folder", "Part"). Required when $path is not set. Cannot be set if $path points to a file that produces a non-Folder instance.A path to a file or directory, relative to the project file. Rojo maps the file to an instance using its sync rules.Use a plain string for a required path that must exist:Use an object with an
optional key for a path that may or may not exist:A map of Roblox property names to values to assign to the instance. Property values follow the unresolved value format, which supports type-tagged objects for non-string types.
A map of attribute names to values to set on the instance.
Controls how Rojo handles instances that exist in Roblox Studio but are not present in your project tree during live sync.
true— leave unknown instances alone.false— destroy unknown instances.- Omitted — defaults to
truewhen$pathis not set, andfalsewhen$pathis set.
A stable identifier for this instance, used to wire up referent properties (such as
ObjectValue.Value) that point to another instance in the tree.Children
Any key that does not begin with$ declares a child instance. The key becomes the instance’s Name in Roblox.
Top-level project fields
The name of the top-level instance the project describes. When the project file is named
default.project.json, Rojo automatically uses the containing folder’s name if this field is omitted.The root instance node. See Instance tree above.
The default port for
rojo serve when using this project. Overrides the global default of 34872. Can be further overridden by the --port flag at the command line.The IP address
rojo serve binds to. Useful when you need to expose the server on a non-loopback interface. Overridden by --address on the command line.A list of Roblox place IDs that this project is compatible with. When set, the Roblox Studio plugin rejects connections from any place not in this list. Use this to prevent accidentally syncing into the wrong place.
A list of Roblox place IDs that this project is explicitly incompatible with. The Studio plugin rejects connections from any place in this list.
Sets the place ID that Roblox Studio reports when connecting to the Rojo server.
Sets the game (universe) ID that Roblox Studio reports when connecting to the Rojo server.
When
true (the default), *.server.lua files produce a Script and *.client.lua files produce a LocalScript — the classic Roblox class types. When false, Rojo uses the newer RunContext-based behavior where both produce a Script with RunContext set to Server or Client respectively.A list of glob patterns, relative to the project file’s directory, that match files Rojo should ignore entirely. Useful for excluding test files, generated output, or OS metadata files.
Configuration for
rojo syncback. See Converting Roblox files to a Rojo project for full details.A list of custom file-to-instance mapping rules that extend or override the built-in sync rules. Each entry requires a
pattern glob and a use middleware name. See How Rojo maps files to Roblox instances for the available middleware names.Example project files
Place project
A full-game project that mirrors Roblox’s default DataModel service layout.default.project.json
Model project
A project that describes a single model to be imported into a place.ToolModel.project.json
Plugin project
A project for a Roblox Studio plugin.default.project.jsonc
