Startup config
More actions
When Resonite launches, it reads from a special configuration file that can be used for advanced features and settings. The format of the file is JSON.
Location
By default, the location of the configuration file is in the Resonite installation directory and named `Config.json`.
Alternatively, the -EngineConfig command line argument can be used to specify a custom path to the config file.
Available properties
In the following table, [ Type ] indicates an array of the specified type. E.g. for [ string ], [ "abc", "def" ] is a valid input.
| Root | ||
|---|---|---|
| Property | Type | Description |
disableDesktop |
bool | When true, entirely disables the Desktop viewing/interaction functionality.
|
noUI |
bool | When true, hide all userspace UI. Identical to the -NoUI command line flag.
|
disableIntroTutorial |
bool | When true, forcibly disables the tutorial.
|
disableCloudAutoHomeLoad |
bool | When true, disables loading the cloud home on startup.
|
inputs |
InputConfig | Allows tweaking of joystick and trigger deadzones. |
unsafeModeWhiteList |
[ string ] | World URLs that can be opened with the -OpenUnsafe command line argument.
|
pathWhitelist |
[ string ] | A list of paths that the file browser can access. Can be set to an empty array ([]) to disable file browser functionality.
|
autoStartWorlds |
[ WorldStartupParameters ] | Sessions to host when the engine launches. Identical to the startWorlds parameter of a headless session configuration.
|
autoJoinSessions |
[ SessionJoinParameters ] | Sessions to attempt joining when the engine launches. |
lnlConfig |
LNLConfig | Configuration options for LNL. |
proxy |
ProxyConfig | Specifies a proxy server for Resonite to use. See Proxy Support for full details. |
universeId |
string | Specify the universe ID of the engine. |
nodePreference
|
[ NetworkNodePreference ] | Optionally, specifies the relay connection preference. |
universeEntityPreference
|
[ EntityInterfacePreference ] | Controls the loading of Facets and EntityInterfaces, when in a universe. |
useUniverseDash
|
bool | When true and within a valid universe, will use the Universe's Dash Facets instead of the user's. |
useUniverseHomes
|
bool | When true and within a valid Universe, will overide Cloud and Local home loading to use a universe's versions. |
announceLocalIPs
|
bool | Can override whether all local IPs are announced as part of session data or not. Announcing all local IP's is particularly helpful for larger corporate/university networks with flat hierarchy. On those networks the LAN broadcast might not reach the entire network, therefore local IP's won't be discovered by all clients. If the client simply includes all the known IP's with the session data, this allows direct connections within the network, which helps improve connectivity. By default, this is implicitly enabled when UniverseId is set - this is used as an indicator that Resonite is being used within some kind of organization. By explicitly setting this to false, this behavior can be disabled. Alternatively this can also be set to true when there's no UniverseId, which will enable this behavior. |
disableAnnounceOnLAN
|
bool | This allows overriding whether any hosted sessions will be broadcasted on the LAN via UDP broadcast. LAN broadcasting allows clients on the same network to discover local sessions and connected to them, without requiring to go through other mechanisms. However on some networks this might cause a lot of network noise, so this can be used to disable this. This setting will override all other settings - e.g. user settings. |
availableLoginMethods
|
[ LoginMethods ] | Configures the available login methods for the App. |
forceStartMicrophoneMuted
|
bool | When true, overrides VoiceSettings.MutePersistence, and mutes your microphone at startup.
|
disableProtocolRegistration
|
bool | When true, prevents the checking of and the registering of Application protocols within the registry.
|
disablePlatformInterfaces
|
bool | When true, ALL platform interfaces won't be initialized.
|
disallowedPlatformInterfaces
|
[ string ] | A list of Platform Interfaces which should be disallowed. |
allowedPlatformInterfaces
|
[ string ] | A list of Platform Interfaces which should be allowed. |
| InputConfig | ||
|---|---|---|
| Property | Type | Description |
triggerDeadZone |
float | Deadzone of trigger pressure |
axisDeadZone |
float | Deadzone along controller axes |
LNL Config
The lnlConfig item allows you to specify additional configuration options that specifically affect LNL.
Ports
Currently there is only one property ports. Ports allows you to specify the minimum and maximum port number that can be used by LNL.
For example:
...
"ports": {
"min": 3000,
"max": 3100
},
...
Would restrict LNL to use ports from 3000 to 3100. Both Minimum and Maximum are 'inclusive, which means that in the above example the first port to be allocated to an LNL connection would be 3001 and the last port allocated would be 3100.
If Resonite gets to the end of the available port range, it will also try the default behaviour(if this option was not defined) which is to allow the operating system to select a port itself. This is a last resort designed to allow a session to continue to proceed even if it might not be able to be connected to by another user.
We recommend that the number of ports covered by your range is at least 10, just in-case.
However, to aid you in determining a suitable number of ports for the range, keep in mind the following:
- Each session you host consumes a Port.
- So if you load the Local and Cloud Home, you have already used 2.
- The Local home is included because it is possible to open this world up to other users
- Each session you join consumes a Port.
So in the event that you open Resonite with default settings to join a friend then you'd need a total of 3 ports in the range. Then add 1 to the length of this range for every additional session you wish to join.
Closing a session, will free up the port that was used.
Sample File
This is a sample file:
{
"noUI": true,
"disableDesktop": false,
"inputs": {
"triggerDeadZone": 0,
"axisDeadZone": 0
},
"universeId": "cheese",
"unsafeModeWhiteList":["a","b"],
"autoStartWorlds": [
{
"sessionName": "The Cheese Dimension",
"customSessionId": "cheese-dimension",
"description": "Cheese for all!",
"maxUsers": 32,
"accessLevel": "Anyone",
"hideFromPublicListing": false,
"tags": ["cheese", "dimension"],
"mobileFriendly": false,
"loadWorldURL": "resrec:///U-Cheese/R-c59ca2b2-2239-492d-98ee-b37cefbb6ba7",
"loadWorldPresetName": "GridSpace",
"forcePort": 4020,
"keepOriginalRoles": true,
"defaultUserRoles": {
"CheeseLord": "Admin"
},
"awayKickMinutes": 5
}
]
}