To help our users with Headless Server configuration here are some example configuration files. When using these keep in mind that basic familiarity with the structure of JSON is required to ensure that you do not create an invalid file.
Minimal
The bare minimum required to run a single headless world. In this case it just runs a Grid world with a name of "Testing"
{
"$schema": "https://raw.githubusercontent.com/Yellow-Dog-Man/JSONSchemas/main/schemas/HeadlessConfig.schema.json",
"startWorlds": [
{
"isEnabled": true,
"sessionName": "Testing",
"accessLevel": "Anyone",
"loadWorldPresetName": "Grid"
}
]
}
Minimal with Login
This is an exact copy of the Minimal config but includes a User Login. For user management make sure to checkout our recommendations for users on Headless
{
"$schema": "https://raw.githubusercontent.com/Yellow-Dog-Man/JSONSchemas/main/schemas/HeadlessConfig.schema.json",
"loginCredential": "<username>",
"loginPassword": "<password>",
"startWorlds": [
{
"isEnabled": true,
"sessionName": "Testing",
"accessLevel": "Anyone",
"loadWorldPresetName": "Grid"
}
]
}
Minimal with Specified World
This is the same as the minimal setup but will load a specified world record url rather than a grid space.
{
"$schema": "https://raw.githubusercontent.com/Yellow-Dog-Man/JSONSchemas/main/schemas/HeadlessConfig.schema.json",
"startWorlds": [
{
"isEnabled": true,
"sessionName": "Testing",
"accessLevel": "Anyone",
"loadWorldURL": "resrec:///U-ProbablePrime/R-49dd64cd-b2d6-40ac-be73-440abfa8bc48"
}
]
}
Minimal with Builder/Admin Permissions
{
"$schema": "https://raw.githubusercontent.com/Yellow-Dog-Man/JSONSchemas/main/schemas/HeadlessConfig.schema.json",
"startWorlds": [
{
"isEnabled": true,
"sessionName": "Testing",
"accessLevel": "Anyone",
"loadWorldPresetName": "Grid",
"defaultUserRoles" : {
"ProbablePrime":"Admin",
"Frooxius":"Builder"
}
}
]
}
Default
The default configuration file from the Resonite Installation.
{
"$schema": "https://raw.githubusercontent.com/Yellow-Dog-Man/JSONSchemas/main/schemas/HeadlessConfig.schema.json",
"comment": "DO NOT EDIT THIS FILE! Your changes will be lost. Copy it over and create a new file called Config.json",
"universeId": null,
"tickRate": 60.0,
"maxConcurrentAssetTransfers": 4,
"usernameOverride": null,
"loginCredential": null,
"loginPassword": null,
"startWorlds": [
{
"isEnabled": true,
"sessionName": null,
"customSessionId": null,
"description": null,
"maxUsers": 16,
"accessLevel": "Anyone",
"useCustomJoinVerifier": false,
"hideFromPublicListing": null,
"tags": null,
"mobileFriendly": false,
"loadWorldURL": null,
"loadWorldPresetName": "Grid",
"overrideCorrespondingWorldId": null,
"forcePort": null,
"keepOriginalRoles": false,
"defaultUserRoles": null,
"roleCloudVariable": null,
"allowUserCloudVariable": null,
"denyUserCloudVariable": null,
"requiredUserJoinCloudVariable": null,
"requiredUserJoinCloudVariableDenyMessage": null,
"awayKickMinutes": -1.0,
"parentSessionIds": null,
"autoInviteUsernames": null,
"autoInviteMessage": null,
"saveAsOwner": null,
"autoRecover": true,
"idleRestartInterval": -1.0,
"forcedRestartInterval": -1.0,
"saveOnExit": false,
"autosaveInterval": -1.0,
"autoSleep": true
}
],
"dataFolder": null,
"cacheFolder": null,
"logsFolder": null,
"allowedUrlHosts": null,
"autoSpawnItems": null
}