Rogen

Config

The keys Rogen adds to a Rojo project file

Updated

A config, default.rogen.json, is a Rojo project file with three more keys. Rogen writes it, with your routed files added to the tree, to default.project.json. Edit the .rogen.json: rogen write overwrites the project file. Rojo's own keys work as Rojo documents them.

KeyDefaultWhat it does
routesnoneRoute keys and their targets.
sourcePaths["src"]The folders Rogen reads. A later folder's file replaces an earlier one's at the same path.
compiledPathnoneWhere a compiler such as roblox-ts or Darklua writes your code, for Rojo to sync from. Rogen creates the folders and scripts it mounts there before the compiler runs, so Rojo picks up what the compiler writes later. See Using Darklua.

The Tree

The tree is the base that Rogen adds your routed files to. Put in it what folder names can't place: packages, such as Wally's Packages or roblox-ts's node_modules/@rbxts, and $properties. A folder of a source path that the tree mounts is synced as it is, without routing.

rogen init mounts the package folders that are there, and those that a wally.toml or pesde.toml says are coming. In a project without either, mount the folder yourself:

default.rogen.json
{
	"tree": {
		"$className": "DataModel",
		"ReplicatedStorage": {
			"Packages": { "$path": "Packages" }
		}
	}
}

While the folder isn't installed yet, write { "optional": "Packages" } as its $path, so Rojo serves without it.

Route Keys

A route key is letters and digits, starting with a letter, or * for the fallback route.

Targets

A target starts with a service, such as "ServerScriptService", and may add folders, such as "ReplicatedStorage/Shared". Write StarterPlayer/StarterPlayerScripts in full, because Rogen doesn't know a service's children.

A second config, X.rogen.json, writes X.project.json and needs its own name.

On this page