Startup config: Difference between revisions

From Resonite Wiki
cleanup. it's not perfect by any means, but it's a start
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Stub}}
{{Stub}}


When launching Resonite, you can use a configuration file to edit some advanced features and settings that will control your Resonite session.
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 [[wikipedia:JSON|JSON]].


== Usage ==
== Location ==
To use a config file you have two options.


=== Using the default Config file ===
By default, the location of the configuration file is in the Resonite [[installation directory]] and named `Config.json`.
If a file exists in the same directory as the main Resonite executeable(Resonite.exe), that is named "Config.json", it will be used.


=== Using a custom Config file ===
Alternatively, the <code>-EngineConfig</code> [[command line argument]] can be used to specify a custom path to the config file.
Start Resonite with the <code>-EngineConfig</code> [[Command Line Arguments|command line argument]]. Following the argument enter a space and then the file path to your config file. Example: <code>-EngineConfig "C:\Cheese\cheese.json"</code>
 
== Available properties ==


== Configuration Properties ==
{| class="wikitable"
{| class="wikitable"
! Property !! Description
! colspan="3" id="pRoot" | Root
|-
! Property !! Type !! Description
|-
| <code>disableDesktop</code> || bool || When <code>true</code>, entirely disables the Desktop viewing/interaction functionality.
|-
|-
| noUI || Identical to the -NoUI command line flag, hides any user space UI.
| <code>noUI</code> || bool || When <code>true</code>, hide all [[userspace]] UI. Identical to the -NoUI command line flag.
|-
|-
| inputs || allows you to tweak trigger dead zones and axis dead zones
| <code>disableIntroTutorial</code> || bool || When <code>true</code>, forcibly disables the tutorial.
|-
|-
| universeId || Specifies the UniverseId for this session
| <code>disableCloudAutoHomeLoad</code> || bool || When <code>true</code>, disables loading the [[Homes#Cloud_Home|cloud home]] on startup.
|-
| <code>noUI</code> || bool || When <code>true</code>, hide all [[userspace]] UI. Identical to the -NoUI command line flag.
|-
| <code>inputs</code> || [[#pInputConfig|InputConfig]] || Allows tweaking of joystick and trigger deadzones.
|-
| <code>unsafeModeWhiteList</code> || List<string> || [[World]] URLs that can be opened with the <code>-OpenUnsafe</code> [[command line argument]].
|-
| <code>pathWhitelist</code> || List<string> || A list of paths that the [[file browser]] can access. Can be set to an empty array (<code>[]</code>) to disable file browser functionality.
|-
| <code>autoStartWorlds</code> || List<[[#pWorldStartupParameters|WorldStartupParameters]]> || [[Sessions]] to host when the engine launches. Identical to the <code>startWorlds</code> parameter of a [[Headless Client/Configuration File#File Format| headless session configuration]].
|-
| <code>autoJoinSessions</code> || List<[[#pSessionJoinParameters|SessionJoinParameters]]> || Sessions to attempt joining when the engine launches.
|-
| <code>lnlConfig</code> || [[#pLNLConfig|LNLConfig]] || Configuration options for LNL.
|-
| <code>proxy</code> || [[#pProxyConfig|ProxyConfig]] || Specifies a proxy server for Resonite to use. See [[proxy support]] for full details.
|-
| <code>universeId</code> || string || Specify the [[Universes|universe]] ID of the engine.
|}
 
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="3" id="pInputConfig" | InputConfig
|-
|-
| disableDesktop || completely disabling the Desktop functionality in Resonite
! Property !! Type !! Description
|-
|-
| unsafeModeWhiteList || TODO
| <code>triggerDeadZone</code> || float || Deadzone of trigger pressure
|-
|-
| autoStartWorlds || Identical to the "startWorlds" parameter of a [[Headless Client/Configuration File#File Format| headless session configuration]]
| <code>axisDeadZone</code> || float || Deadzone along controller axes
|}
|}
=== LNL Config ===
The <code>lnlConfig</code> item allows you to specify additional configuration options that specifically affect [[LNL]].
==== Ports ====
Currently there is only one property <code>ports</code>. Ports allows you to specify the minimum and maximum [[wikipedia:Port_(computer_networking)|port number]] that can be used by [[LNL]].
For example:
<syntaxhighlight lang="json">
...
"ports": {
    "min": 3000,
    "max": 3100
},
...
</syntaxhighlight>
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 ==
== Sample File ==
Line 66: Line 122:
== See Also ==
== See Also ==
* [[Headless_Client/Configuration_File]]
* [[Headless_Client/Configuration_File]]
[[Category:Resonite files and directories]]

Latest revision as of 20:35, 1 October 2025

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

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.
noUI bool When true, hide all userspace UI. Identical to the -NoUI command line flag.
inputs InputConfig Allows tweaking of joystick and trigger deadzones.
unsafeModeWhiteList List<string> World URLs that can be opened with the -OpenUnsafe command line argument.
pathWhitelist List<string> A list of paths that the file browser can access. Can be set to an empty array ([]) to disable file browser functionality.
autoStartWorlds List<WorldStartupParameters> Sessions to host when the engine launches. Identical to the startWorlds parameter of a headless session configuration.
autoJoinSessions List<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.
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