Command Line Arguments: Difference between revisions

From Resonite Wiki
Re-word sync cli area to make it clear that we shouldn't include the Sync resolving CLI arguments on this page.
mNo edit summary
Line 74: Line 74:
<translate>== Synchronization Issues == <!--T:44--></translate>
<translate>== Synchronization Issues == <!--T:44--></translate>
<!-- Don't place ForceSyncConflictingCloudRecords or DeleteUnsyncedCloudRecords here, these CLI arguments are overused and we want users to go via the guides to avoid data loss and over-use. -->
<!-- Don't place ForceSyncConflictingCloudRecords or DeleteUnsyncedCloudRecords here, these CLI arguments are overused and we want users to go via the guides to avoid data loss and over-use. -->
<translate>There are some Command Line Arguments, that are reserved for solving synchronization issues with Resonite. The arguments can, in some cases, result in data-loss so unless you have a synchronization issue, these should not be used.</translate>
<translate>There are some Command Line Arguments, that are reserved for solving synchronization issues with Resonite. These arguments can, in some cases, result in data-loss so unless you have a synchronization issue, they should not be used.</translate>


<translate><!--T:77--> If you're having synchronization issues then see [[Sync Errors]] which has various guides on the available command line arguments and how to use them to resolve sync issues.</translate>
<translate><!--T:77--> If you're having synchronization issues then see [[Sync Errors]] which has various guides on the available command line arguments and how to use them to resolve sync issues.</translate>

Revision as of 12:06, 29 May 2024

Desktop builds of Resonite support several command line arguments. For most of these arguments you can use the Resonite Launcher to configure them in a more visual way and save them across launches.

These command line arguments, can be useful in setting up Standalone Experiences.

Forcing specific hardware

  • none - autodetect
  • -Screen - Screen mode (also called Desktop mode)
  • -Device SteamVR SteamVR
  • -Device WindowsMR Windows Mixed Reality
  • -Device Oculus Oculus Rift + Touch controllers
  • -Device OculusQuest Oculus Quest + Touch controllers
  • -Device Screen360 Screen mode (with 360 projection)
  • -Device LegacyScreen Force Resonite to run in the old Desktop "debugging" mode.
  • -Device StaticCamera non-interactive Camera Mode
  • -Device StaticCamera360 non-interactive Camera Mode using 360 equirectangular rendering
  • -LegacySteamVRInput Force Legacy Steam VR Input Handling. Used as a work-around for some Steam VR devices that have a missing or bad hand skeletal model, such as Virtual Desktop used with the Oculus Quest.
  • -ForceSRAnipal Force the SRAnipal SDK to initialize for HTC eye and lip tracking, even if Vive Pro Eye is not present.
  • -EnableOWO Insert_ip_address_here Enables the OWO Game haptic vest integration, requires you pass in the vest's ip address. Currently not functional, see related Github issue.

Joining sessions / Opening worlds

  • -Join Auto - Automatically join and follow active sessions on LAN (will switch to world with most present users)
  • -Join Insert_URL_or_IP:Port_here - Join a session at given URi (Resonite-session | lnl)
  • -Open Insert_URL_here - Open world at given URL on start (resrec)
  • -Scratchspace Insert_port_here - Starts a new scratchspace world on a given port (legacy, will be likely removed)
  • -AnnounceHomeOnLAN - Home and Userspace will be accessible from LAN by default
  • -Bootstrap Insert_bootstrap_class_here - Run a custom bootstrap function in a class of given name

Networking

  • -ForceLANOnly - All worlds will be forced to announce only on the LAN network by default and won't be accessible from the internet
  • -UseLocalCloud - Uses local cloud API servers - used mostly for debugging
  • -UseStagingCloud - Uses Staging API servers - used mostly for debugging

Drone Camera presets

These initialize the static camera with a drone script, using a specific movement preset.

  • -CameraBiggestGroup
  • -CameraTimelapse
  • -CameraStayBehind
  • -CameraStayInFront

And also these args usable for Drone Camera.

  • -UseResoniteCamera - Will spawn Static Camera as the Resonite Camera with zoom controls, preview and other functions

Common Avatar Builder

  • -ForceNoVoice - CommonAvatarBuilder won't setup any avatars with voice (useful for local presentations)

Data Folders

Resonite has multiple Data Folders, these have various command line arguments to control:

Logs Folder

  • -LogsPath C:\specified\directory - Redirect log files to be saved in a custom specified directory.

Synchronization Issues

There are some Command Line Arguments, that are reserved for solving synchronization issues with Resonite. These arguments can, in some cases, result in data-loss so unless you have a synchronization issue, they should not be used.

If you're having synchronization issues then see Sync Errors which has various guides on the available command line arguments and how to use them to resolve sync issues.

Database Repair

  • If you're having database issues then Database repair is a guide on how to use a Command Line Argument to resolve the issue.

Post Processing

  • -ctaa - Enables ctaa (Cinematic Temporal Anti-Aliasing)
  • -ctaaTemporalEdgePower Insert_Number_here - Sets ctaa's TemporalEdgePower
  • -ctaaSharpnessEnabled Insert_True_or_False_here - Sets whether ctaa's Sharpness is Enabled
  • -ctaaAptiveSharpness Insert_Number_here - Sets ctaa's ctaaAptiveSharpness amount

Misc

  • -Watchdog Insert_filepath_here - Resonite will periodically write current time into given file. This can be used to restart the process when it freezes
  • -LoadAssembly Insert_path_here - Loads extra CLR assembly into the Resonite process
  • -Kiosk - Will run Resonite in Kiosk mode (hides the Userspace items such as logo and world switcher and disables teleporting for guests by default)
  • -NoUI - Hides the Userspace UI
  • -CubemapResolution Insert_resolution_here - Force the 360 equirectangular rendering to use this resolution for the cubemap
  • -DoNotAutoLoadHome - Wont' automatically load your cloud home on start (can still load manually)
  • -ResetDash - Resets the layout of the dash to the default configuration.
  • -SkipIntroTutorial - Prevents the intro tutorial from starting
  • -Forceintrotutorial - Forces the intro tutorial to run
  • -Invisible - Force your online status to be invisible on login.
  • -EngineConfig Insert_filepath_here - Specifies a custom config file.
  • -BackgroundWorkers Insert_number_here - overrides the number of background worker processes. WARNING: Don't use this unless you really need to, things could break!
  • -PriorityWorkers Insert_number_here - overrides the number of priority worker processes. WARNING: Don't use this unless you really need to, things could break!
  • -ForceReticleAboveHorizon - Disallows looking below the Horizon for desktop when in first person by default.

Resonite Custom Protocol Handler (Steam only)

Resonite registers a custom protocol handler with your computer on installation. You can use this to create links which will open Resonite to a set location or world when they are clicked. These arguments are given to the Resonite launcher, which will make sure Resonite is launched and running and forward them to the running instance.

  • Resonite:?world=Insert_URL_here - Open a world or session at given URL
    • For example Resonite:?world=resrec:///U-ProbablePrime/R-9ce872e1-ffb8-4194-bb91-3d3ab5f157a1 - Will Open "The Directory" by ProbablePrime
    • And for Sessions Resonite:?world=Resonite-session://eea1442e-0ff2-4d6a-ad16-2dac9ea786fc will join session eea1442e-0ff2-4d6a-ad16-2dac9ea786fc

The URL of a world can be accessed by opening the inspector for a world orb and navigating to the WorldOrb component or by using the Session menu's "Copy Record URL" button:

Dashboard on the "Session" tab and the "Settings" selected with the button "Copy Record URL" highlighted

The URL field can be selected by double clicking into the field. The URL text can be copied to the Windows clipboard via Ctrl+C.

When linking to a world on a platform that restricts the clickability protocol handlers, you can use the redirect junction located at https://api.resonite.com/open/ instead. They will redirect to use the above Resonite: protocol handler.

Unity Standalone Player command line arguments

The Unity Standalone Player command line arguments can be useful for setting a specific resolution, or the windowed mode.

  • -screen-fullscreen 0 - Launch Resonite in a window.
  • -screen-fullscreen 1 - Launch Resonite in full-screen.
  • -screen-width - Sets the horizontal resolution.
  • -screen-height - Sets the vertical resolution.

Example: If you use -screen-fullscreen 0 -screen-width 1280 -screen-height 720 Resonite will launch in a 1280x720 window.

How to use command line arguments

Below are three methods for launching Resonite using non-default command line arguments. Each example explains how to combine the -Invisible and -CachePath Insert_path_here commands. Here the examples show how to specify a non-default cache location at D:\Temporary files\ResoniteCache\. DO NOT COPY THIS EXAMPLE IF YOU DO NOT NEED TO DO THIS! Choosing the best method to use depends on how you normally launch Resonite. For most users, the setup described in #Launching from Steam is likely the best choice.

Launching from Steam

  1. Open Steam
  2. Right click on Resonite in your library
  3. Select "Properties" and then "Set Launch Options".
  4. Enter the command you need to use, exactly as it appears above and Run Resonite.

Setting custom launch options via Steam

Now, if Resonite is launched via Steam, the custom command line arguments will take effect.

Commands entered via this method will not take effect if Resonite is launched any other way, such as directly launching the Resonite.exe.

For the Standalone build

Use a shortcut

It is possible to use launch commands via a custom shortcut targeting the Resonite.exe file.

To create a shortcut:

  1. Find the Resonite install folder and right-click on the Resonite.exe.
  2. In the context menu click 'Create Shortcut'
  3. Move the 'Resonite.exe - Shortcut' file to somewhere more convenient (such as the Desktop).
  4. Right-click on the shortcut file and click 'Properties' in the context menu.
  5. This opens a dialog window. Select the 'Shortcut' tab.
  6. In the 'Target' text box add a space after the Resonite.exe filepath and then add your command line arguments.
  7. Click 'Apply' and 'OK'.

Now, if Resonite is launched by double clicking on the shortcut it will launch using the custom options. These will not be applied if a different method is used to start Resonite.

Setting custom launch options for a Shortcut

Examples

Here we're providing some example Command Line Argument setups and describing what they can do:

  • Single world experience - Use command line arguments to setup a single world experience version of Resonite. Useful for conventions and exhibitions.
  • Automatically join a session - Use command line arguments to create a copy of Resonite that automatically joins a session on launch. Useful for classrooms, meetings etc.