Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Startup config

From Resonite Wiki
This article or section is a stub. You can help the Resonite wiki by expanding it.

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:

  1. 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
  2. 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
    }
  ]
}

See Also