Rogen

Configuration

Every field of the .rogen.json configuration file

Updated

.rogen.json lives in your project root and sets up the source folders, how routing behaves and the base project tree.

Here's a fuller example, with some top-level options and a mode that overrides them:

.rogen.json
{
	"source": ["src"],
	"casing": "camelCase",
	"verbatim": false,
	"unwrap": false,
	"globIgnorePaths": ["**/_drafts/**"],
	"tags": {
		"dev": false,
		"prod": true
	},
	"aliases": {
		"Controller": "StarterPlayerScripts",
		"Service": "ServerScriptService"
	},
	"luau": {
		"output": "default.project.json",
		"build": "src",
		"tags": {
			"dev": true,
			"prod": false
		},
		"globIgnorePaths": ["**/*.spec.luau"]
	},
	"project": {
		"name": "my-game",
		"tree": {
			"$className": "DataModel"
		}
	}
}

Fields

source

(Required) A string or an array of strings: the folders with your uncompiled code, which Rogen scans to build the tree. If you list several, they're merged.

tags

(Optional) An object mapping tag names to booleans. true keeps the tagged files and false drops them.

casing

(Optional) How the generated wrapper folders (like server or client) are capitalized: "camelCase" (the default) or "PascalCase".

verbatim

(Optional) A boolean, false by default. Set it to true to keep routing keywords in script names instead of stripping them.

unwrap

(Optional) A boolean. Set it to true to leave out the wrapper folders (server, client and shared) at the root of each service in Studio.

aliases

(Optional) An object of custom routing keywords, for adding your own or changing where the built-in ones go.

globIgnorePaths

(Optional) An array of glob patterns. Files and folders that match are ignored completely.

project

(Optional) The base Rojo tree, either inline or as a path to a JSON file. Rogen merges the paths it generates into it.


Modes

A mode is a pipeline for one workflow, such as luau, ts or darklua, and you can define your own as well.

output

(Required) The path of the Rojo project file to write.

build

(Required) The folder whose code gets synced to Studio.

tags

(Optional) An object mapping tag names to booleans, overriding the top-level tags for this mode.

globIgnorePaths

(Optional) An array of glob patterns to ignore in this mode.

.rogen.json
{
	"dev": {
		"output": "dev.project.json",
		"build": "src",
		"tags": {
			"dev": true,
			"prod": false
		},
		"globIgnorePaths": ["**/*.spec.luau"]
	}
}

On this page