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.
Using Launch Options
Steam
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.
Oculus PC / Meta Rift
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
Oculus Quest does not support any of these launch options.
Launch Option List
Launch Option | Description |
---|---|
--no-vr | Forces Desktop mode |
--profile=X | Launches with a different user profile, where X is a number. 0 is the default profile |
--fps=X | Overrides 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-gui | Enables debug menu shortcuts, see Keyboard and Mouse for shortcut keys |
--enable-sdk-log-levels | Enables 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-logging | Enable 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! |
--skip-registry-install | This prevents VRChat from installing or updating the vrchat:// information in your registry and prevents the "VRChat Installation Helper" popup from appearing. |
--midi=deviceName | Forces the MIDI drive to search for a connected MIDI device which contains the deviceName specified, including partial matches, case-insensitive |
--watch-worlds | Watches the location where the VRChat SDK builds worlds, and automatically joins any new local world created. See Using Build & Test |
--watch-avatars | Watches 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. |
--ignore-trackers=serial1,serial2 | Ignore tracking data from devices with the specified serial numbers. Comma delimited list. |
--disable-hw-video-decoding ,--enable-hw-video-decoding | Forces video decoding to be done in software or hardware. On AMD graphics cards, the default is "software" because there have been issues in the past. You can use the "enable" variant to force hardware decoding. With other GPU vendors, the default is "hardware", use the "disable" variant to force software decoding. Warning: Using the "software" option will utilize your CPU to decode video, which can impact your performance. Most users do not need to use this feature. |
--disable-amd-stutter-workaround | Disables a rendering workaround that helps prevent stutter on AMD graphics cards. Does nothing on non-AMD GPUs. It is not recommended to disable this workaround, as it may lead to stutters, but advanced users can set this flag for testing. |
--osc=inPort:outIP:outPort | Customize 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. |
--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! |
--process-priority=<ARG> | Manually sets the process priority of VRChat to the specified level. <ARG> is a number that represents the priority level to use:- -2 : Idle priority- -1 : Below Normal priority- 0 : Normal priority- 1 : Above Normal priority- 2 : High priority |
--main-thread-priority=<ARG> | Manually sets the priority of the main Unity thread that VRChat runs on to the specified level. <ARG> is a number that represents the priority level to use:- -2 : Lowest priority- -1 : Below Normal priority- 0 : Normal priority- 1 : Above Normal priority- 2 : Highest priority |
Use
--process-priority
and--main-thread-priority
carefully!The operating system uses the priority level of a process to decide how to schedule processor time to it relative to all of the other processes it's running.
Setting priority levels inappropriately can degrade VRChat's performance or cause your system to become unresponsive. Don't set priority levels manually unless you know what you're doing!
Additional Notes
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, Screen Choice, and native Unity Engine Launch Options
These launch options are built into the Unity engine and can be useful for some setups.
Launch Option | Description |
---|---|
-screen-width N | Override the default screen width. This must be an integer from a supported resolution. |
-screen-height N | Override the default screen height. This must be an integer from a supported resolution. |
-screen-fullscreen N | Override the default full-screen state. This must be 0 or 1. |
-monitor N | Run 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. That link also contains other launch options, but we do not recommend using them.
When you view that page, make sure you select the correct version of Unity using the selector in the top left.
Importantly, the force
launch options will cause issues that prevent you from using VRChat. Don't use them.
Updated about 1 month ago