Launch Options


Advanced Options

These options are more advanced and designed to help creators debug issues with their creations.

There are several launch options available for VRChat.

If you are using Steam, you can set these easily in the Properties for VRChat, found by right-clicking on VRChat's entry in your game list. After clicking Properties, click on Set Launch Options, then put your desired launch options in.

If you are using Oculus PC, you must create a shortcut to the VRChat executable. After launching Oculus Home, launch this shortcut by clicking its icon. The Oculus launcher does not support launch options natively.

Oculus Quest does not support any of these launch options.

Launch OptionDescription
--no-vrForces Desktop mode
--profile=XLaunches with a different user profile, where X is a number. 0 is the default profile
--fps=XOverrides the FPS cap to X instead of the default. On Desktop, 90 is the default. In VR, the headset's reported maximum refresh rate is the default.
--enable-debug-guiEnables debug menu shortcuts, see Keyboard and Mouse for shortcut keys
--enable-sdk-log-levelsEnables a large amount of additional logging.

Warning: Will cause your log to get VERY large!

Using this option may reduce performance due to the increased logging, don't leave it on!
--enable-udon-debug-loggingEnable Udon heap and stack dumps in the client. Usually only enabled in editor

Warning: May cause your log to get quite large in Udon worlds that are having issues!

Using this option may reduce performance due to the increased logging, don't leave it on!
--legacy-fbt-calibrateForces the legacy method of Full-Body Tracking calibration.

Not recommended!! May be removed at a future point in time.
--midi=deviceNameForces the MIDI drive to search for a connected MIDI device which contains the deviceName specified, including partial matches, case-insensitive
--watch-worldsWatches the location where the VRChat SDK builds worlds, and automatically joins any new local world created.
See Using Build & Test
--watch-avatarsWatches the location where the VRChat SDK builds test avatars, and if wearing a test avatar that's been updated automatically switches to the newer version.
--osc=inPort:outIP:outPortCustomize network settings for incoming/outgoing OSC messages.
Accepts the following 3 arguments:
- inPort: The port that the VRChat client should listen on for incoming OSC messages.
- outIP: The IP that outgoing OSC messages should be sent to.
- outPort: The port that outgoing OSC messages should be sent to.
--custom-arm-ratio="0.4537"Adjusts the ratio used to scale the avatar when using measure-by-arms mode.

"0.4537" is the default value. Smaller values around "0.415" may give improved fit.
--disable-shoulder-trackingUse this to avoid issues with some types of IMU-only based arm trackers
--enable-ik-debug-loggingAdds additional output to the log regarding IK. Use this when reporting bugs or issues with IK

Using this option may reduce performance due to the increased logging, don't leave it on!
--calibration-range="0.6"Determines the distance from predicted supported binding points that the calibration will search (in meters). This search radius is a sphere. The closest binding point to the center of the search sphere will be used.

The default value is 0.6 meters (60 cm). This applies to feet, thighs, hip, upper arms, and chest trackers
--freeze-tracking-on-disconnectEnabling this will cause trackers to freeze in place relative to the player when they are disconnected.

To remove frozen trackers you can calibrate again. If all your trackers have disconnected so the calibration option is no longer visible, cycling the Avatar Measurement option will also unfreeze them
--affinity=<ARG>Sets VRChat's thread affinity to the specified threads. <ARG> is a bitmask indicating which threads should be utilized for VRChat. For example, FFFF selects the first 16 threads, FF selects the first 8, and so on.

Do NOT use this feature unless you are using an AMD CPU that has issues arising from inter-CCX latency. If you misuse it, you will cause major performance issues for yourself.

Most users do not need to use this feature. It is left up to the user to determine if they should use this feature.See section below.

Utilities exist that can help work out what your bitmask string should be.

This launch option is most useful for AMD CPUs that benefit from limiting processes to certain threads to reduce on-die latency.

This is an advanced feature. Unless you know what you're doing and know you need this, you probably shouldn't use it!

AMD Inter-CCX Latency and Core Affinity

Thank you to "Fallen Ninja" on VRChat for writing up this advice! Please be aware that everything in the following section was contributed by a community member and has not been verified directly by the VRChat team.

If you have a multi-CCX AMD CPU (most 1000/2000/3000 series and some 5000/7000), use an --affinity launch option to only use the first CCX to reduce inter-core communication latency and get a decent FPS boost.

Look up your processor's "Core config" here. If the number before the x is not 1, your setup can likely benefit from affinity restriction. Notice the number after the x and look it up below for your ideal affinity string:

2: --affinity=F (but honestly I'd say get a better CPU, and with this few threads I'm not sure if setting affinity will help or hurt here since you'd be restricting to only two physical cores)
3: --affinity=3F
4: --affinity=FF
6: --affinity=FFF
8: --affinity=FFFF

There are a few edge-case exceptions at the budget level (plus this assumes you have not turned SMT off... if you have to ask, you haven't), but these exceptions will at worst make this solution less effective rather than actively harmful.

Resolution and Screen Choice

Unity 2019 removed the ability to launch a dialog by holding shift/alt when launching, but you can use launch arguments to replace much of that functionality.

Launch OptionDescription
-screen-width NOverride the default screen width. This must be an integer from a supported resolution.
-screen-height NOverride the default screen height. This must be an integer from a supported resolution.
-screen-fullscreen NOverride the default full-screen state. This must be 0 or 1.
-screen-qualityDOES NOT WORK - just listing it because you might try it and get confused.
-monitor NRun Standalone Player on the specified monitor, indicated by a 1-based index number.

You can find these options here, under the "Unity Standalone Player command line arguments" section.

Note that most (if not all) of the force launch options will cause issues that prevent you from using VRChat. Don't use them.

Ensure that you select the correct version of Unity using the selector in the top left. Refer to the Currently Supported Unity Version page to see what version VRChat is currently using.