VRChat 2022.3.1

Live - 12 October 2022 - Build 1247

Introducing VRChat Main Menu 2.0! In this update, we're introducing the long-awaited Main Menu 2.0 - which isn't just an aesthetic upgrade, it's a functional one that is more organized, includes more customization options, gives users more information, and allows us to add more features to VRChat in the future.

Check out the blog post for more info, or just watch this video:



  • Implemented Main Menu 2.0!
    • The new Main Menu utilizes tabs to allow users to quickly find exactly what they're looking for with either old sections of the Main Menu that you're familiar with as well as several brand new sections to aid your VRChat experience
  • Implemented the Launch Pad Menu! We've added a new Launch Pad section to the Main Menu that includes a bunch of useful information at a quick glance - including how many friends you've got online, pending invites, friend requests, what worlds you've been to recently, if any of your favorite worlds have received an updated and who you've recently hung out with.
  • Implemented Wings into the Main Menu! The always-useful Wings from the Quick Menu have been added to the Main Menu, allowing you to have always-visible information on the sides
  • Added the Worlds wing!
    • This wing gives you quick access to your worlds, like Recent Worlds, Uploaded Worlds, and your playlists!
    • You can sort them in many ways, like Active, Friends, Last Updated, and more!
    • This wing is enabled by default for new users
  • Added the Explore wing!
    • This wing gives you quick access to many different guides on how to get started with VRChat!
    • This wing is enabled by default for new users
  • Implemented a new HUD! We've re-designed the VRChat HUD to allow users to easily stay notified, customize opacity for the HUD or individual elements, and more.
    • By default, the HUD will use the 'Verbose' setting to show notification pop-ups (which can be individually configured) such as Join / Leave Notifications, Portal Notifications, etc.
    • The HUD can also be set to 'Minimal' to only show icons or can be completely turned off
    • Added an optional toggle for HUD motion smoothing
    • Added opacity sliders to allow you to adjust the opacity for the entire HUD or the mic icon
  • All-new Worlds Menu! The Worlds Menu has been completely redesigned to help users find exactly what they're looking for as well as improve overall world discoverability
  • Added "VRCat's Variety Box", which is a new page that you get when you open the Worlds tab!
    • The variety box contains one random world from a set of categories
    • Clicking Shuffle in the top right will get you new worlds
    • You can hover over any world to favorite it or join a public instance of that world
  • Updated Avatars Menu! The Avatars Menu has also been updated and made easier to navigate.
    • We've implemented a "Recently Used" list of avatars so you can quickly find previous avatars you used
    • We've re-built the Avatar Details option to include a lot more information such as what platform the avatar is uploaded for, what features it has (eyelook, visemes, SDK version), who the author is and more
  • Updated Social Menu! The Social Menu has been improved significantly to help you navigate long lists of friends quickly and cycle through your various friend groups with much more ease
  • Updated and refined Search functionality! We've made various changes to the Search function - users will be initially provided with randomized queries to help them find various world types and reloading the page will automatically refresh these queries.
    • Improved Search results as a whole to allow users to see much more results and refine their search using more filter options than before
  • Implemented the Help & Info Menu! The Help & Info Menu has been added to VRChat to allow new users to quickly catch up to speed on how to use VRChat or serve as a useful reminder to experienced users about how certain features work
    • This menu will include future release notes so you can easily read up on the latest changes instead of having to go to our Discord or the website
  • Implemented a new Settings Menu! The new Settings Menu has been designed to house various settings scattered around VRChat in a single page with multiple tabs that lead into various different categories to help you easily configure your VRChat experience
  • Added background images to the UI! You can choose one of the backgrounds to add some cool flair to your UI
    • This affects the Main Menu and the Quick Menu
    • There are 3 different options, and 37 additional for VRChat Plus subscribers
  • Implemented Avatar Haptics! This feature allows users to get haptic feedback in your controllers when you touch other avatars - no avatar setup is required for this!
    • This system uses the Avatar Dynamics interaction permission system, so both users MUST opt in before haptics will work for either of you
    • Turn this system on and adjust them in the Quick Menu's Gear tab
    • Avatar Haptics is not supported on standalone Quest because it causes significant performance issues related to the render pipeline and how the Quest GPU operates, we are re-assessing how we might best enable this feature on Quest standalone
  • Added Portal Placement!
    • In the Quick Menu's "gear" tab, find an option to enable Portal Placement
    • With this enabled, when you go to drop a portal, you'll be able to do so with by pointing your controller!
    • Move your controller around and point where you want to place the portal! If its an invalid position, the marker will turn red and a tooltip will appear on your screen telling you why you can't place the portal there
    • You can MOVE while looking for a place to put your portal!
    • Once you find a good spot, pull your trigger and the portal will spawn
    • It also works on Desktop!!
    • its REALLY GOOD please go try it! We like it so much we made it the new default.
  • Implemented Visual Adjustment options, such as color blindness filters (Protanopia, Deuteranopia, and Tritanopia), world / UI filters (grayscale or retro), screen brightness and bloom intensity adjustments
  • Implemented "Flying Mode" for the camera while in VR!
    • Engage and disengage this feature by opening the camera and selecting the "Flying" toggle
    • When engaged, you can release the camera to drop the controls. The camera will stay put
    • Your thumbsticks can be used to move the camera lens within a 15 meter radius around where you're standing
    • Hold down the trigger while moving the right stick to tilt the lens
    • To take a photo, use your laser pointer to click the "Take Photo" button on the camera
  • Added avatar texture VRAM usage estimation to the Avatar Stats system
    • This feature estimates the amount of VRAM in use by a given avatar and displays it. It isn't 100% accurate, but its close!
    • You might see this value differ from some community-created tools like Thry's VRCAvatarTools. That's because we only list texture VRAM!
    • This stat does not currently affect Performance Rank, but it will eventually. From our observations, keeping the VRChat value under ~50MB seems like a "Good" place to aim for
    • Will be implemented into the SDK at a later time
  • Implemented an optional FBT Calibration visualization that users can toggle on to help calibrate Full-Body Tracking
  • Added different tracker models for Full Body Tracking
    • You can toggle between 4 different values in the Quick Menu's Gear tab
    • "Sphere" - Default, same as Live. Uses the good 'ol Unity Sphere
    • "System" - Uses SteamVR's "Render-Model" for your device. This usually looks like the physical tracker!
    • "Box" - A rounded cube with colored sides to indicate XYZ axis information
    • "Axis" - An indicator with long "spikes" tipped with colors to indicate XYZ axis information
  • Implemented a head-tracked option for the Personal mirror
  • Implemented the ability for users to double-click the Audio settings to toggle Earmuffs on/off
  • Added a "Lock" button in the bottom right of the Main Menu that turns on and off menu grabbing and moving
  • Implemented Avatars 3.0 synced bool parameter Earmuffs that is True when the user has the Earmuffs feature on, and False when it is off
  • Added an "unmute" sound when you unmute your microphone
    • Remember that you can adjust the volume of the mute/unmute sound in the HUD settings
  • Implemented a new Launch Option to set CPU thread affinity for the VRChat process by using the --affinity=<ARG> launch option
    • The <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. There are utilities like Bitsum's CPU affinity calculator that can help you construct a proper bitmask for your CPU.


The --affinity feature is primarily intended for usage with certain AMD CPUs who benefit from limiting processes to a single CCX.

It is left up to the user to determine if they should use this feature.

Most users do not need to use this feature.

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.

  • Added a new "Measure Height" button to the User Real Height setting that will use your headset's current distance from the playspace floor to measure your height
    • When you use this, it is very important to stand up straight as well as to have an accurate room setup floor height when using this feature! It's available in the QM Gear tab as well as the Main Menu's new section
  • A new section has been added to the Main Menu Settings tab called "Tracking and IK". It includes:
    • User Real Height adjustment, including the new "measure" button
    • Metric Units Adjustment - the User Real Height arrow buttons will increment in centimeters instead of inches.
    • Legacy Calibration - swaps to the older method of locking your avatar in place during calibration
    • Disable Shoulder Tracking - prevents arm (elbow) trackers from affecting the shoulders
    • Freeze Tracking on Disconnect - when a tracker disconnects it continues to lock the tracked body to its final location relative to the player, rather than transitioning that part to untracked behavior. We've made new efforts to ensure that even if you activate this option after the tracker has disconnected it will still remember and use the proper final location of the tracker
    • IK Debug Logging - adds extra log output related to IK features.
    • Note: the command line arguments associated with the above features are being removed! To use the features going forward you must activate them in the menu

Changes and Improvements

  • Added more double-click functions to the Quick Menu tabs!
    • If you didn't know, double-clicking the tabs has different functionality, letting you quickly access the most common functions of Quick Menu tabs. For example, double-clicking the Camera tab summons the Camera and double-clicking the audio tab toggles Earmuffs on and off. These have been in for a while!
    • We added some more:
      • Double-click Launchpad QM (Quick Menu) tab -> Opens MM (Main Menu) Launchpad tab
      • Double-click Notifications QM tab -> Opens MM Notifications tab
      • Double-click Here QM tab -> Opens MM Instance Details page
      • Double-click Settings QM tab -> Opens MM Settings tab
  • Various improvements to the face mirror to improve resolution and clamping
  • Made some improvements to the placement of the Personal Mirror above or below the user
  • Greatly improved performance when avatars are hidden by removing unnecessary IK tweening
  • Nameplates and the Chatbox now appear the "right way" in mirrors-- i.e., they're no longer mirrored


  • Fixed some issues with the Personal Mirror not playing well with some legacy avatars
  • Fixed the Quick Menu Master audio slider not going to 125%
  • Fixed issues with travel that rarely caused users to be sent back to their home world
  • Various fixes and improvements to the keyboard
    • You can now copy text that has been set by Udon
    • The keyboard no longer shows up behind you
    • The keyboard now respects the options set by the InputField you're typing into, such as multi-line, data validation, and read-only
    • The keyboard no longer breaks if the InputField's placeholder text is missing
    • The Shift key only now only applies to one character unless you double-click it
  • Fixed some issues where users with non-standard or directly supported tracker configurations may experience some crashing issues
  • Fixes and adjustments to text rendering throughout VRChat, such as blurry text on Action Menu when using small avatars
  • Fixed QM incorrectly opening when logging out in VR



  • Added 3 shader globals that can be accessed by any avatar or world shader:
    • float _VRChatCameraMode:
      • 0 - Rendering normally
      • 1 - Rendering in VR handheld camera
      • 2 - Rendering in Desktop handheld camera
      • 3 - Rendering for a screenshot
    • float _VRChatMirrorMode:
      • 0 - Rendering normally, not in a mirror
      • 1 - Rendering in a mirror viewed in VR
      • 2 - Rendering in a mirror viewed in desktop mode
    • float3 _VRChatMirrorCameraPos - World space position of mirror camera (eye independent, "centered" in VR)