VRChat 2023.2.2

Release - 3 May 2023 - Build 1304

We've also got a video for you on a new feature: Squishy PhysBones!



  • Introducing Guided Mode!
    • Guided mode is a simplified Quick Menu meant for new users, making it easy to explore VRChat and learn about vital functions.
    • This mode is available to all users in the Open Beta for testing.
    • You can exit Guided Mode to return to the normal Quick Menu.
    • Once this release goes to Live, Guided Mode will only be accessible to some new users for further testing
    • Later on, we will release it fully and optionally allow all users to enable the feature if you prefer it


  • Avatar stats are now calculated on the server
    • Avatars that exceed your performance rank limit won't be downloaded
    • This will not work on all avatars, as avatars must be analyzed first! It will mainly affect newly uploaded or recently updated avatars
  • The built-in keyboard now reacts to the beginning of the click action (Mouse/TriggerDown) instead of the end (Mouse/TriggerUp), making it feel more responsive
  • Lots of changes to our Reporting UI to make it easier to report users and content
  • Added a visual indicator when adjusting the Avatar Download Prioritization distance
  • Performance issues on Quest Standalone have been fixed
  • We have split Quest Pro eye-tracking into a seperate application branch. You must swap to this branch to use Quest Pro eye tracking. See these docs for more info.
    • This was done to fix the performance issues on Quest Standalone, which were caused by the changes made to implement standalone eye tracking
    • This is not a performance loss caused by eye tracking itself, but instead, these performance issues appear to be caused by the SDKs used to access the Quest Pro eye-tracking data
    • OSC eye tracking is not affected in any way by this change.
    • This issue is fixed in future Unity versions


  • Fixed an issue where avatar cloning would not enable correctly despite the UI saying it was on
  • Fixed one-handed movement mode on Quest standalone and Virtual Desktop
  • Image Loading will now load images the right way around on Quest
  • Fixed log spam and degraded performance on avatars with a different amount of parameters between platforms
  • Ordering of "Send Invite" button on QM user page is now consistent with "Request Invite" and "Join"
  • Adjust sizing of earmuff buttons in Audio QM page
  • Chat bubble position will default to "Above Head" again
    • Your chat bubble setting will be set to "Above Head" on first launch of this version
  • VRCat had escaped YET again, but we used some strategic treat placement to coerce it back onto the Quick Menu
  • Fixed an issue with joining instances without a shortname from the command line or URL links
    • This fixes the "Create" tab of VRCQuickLauncher and some other applications
  • Improved initial loading times when opening VRChat on Quest
  • Improved hitching when loading multiple avatars in succession
  • HUD, Action menu and debug views now scale properly when FOV is changed
  • Improved performance of the in-game debug log viewer (debug menu 3)
  • Fixed an issue causing earmuff distance indicators to sometimes appear in loading scenes
  • Changed default for "Portal Mode" back to "Place Manually" and renamed options to be clearer
    • This will reset the option once for everyone when launching the build for the first time
  • Fixed text in Email One-Time Code pop-up for clarity

Main Menu Settings Fixes

  • Changed "Your Avatar" section header to "Avatar Debugging"
  • Adjusted locomotion and tunneling settings back to their original defaults
  • Change Popups no longer block you from using settings hidden behind them
  • Adjusted nameplate options in new settings to match the ones from Action Menu
    • Your nameplate size will be reset on first launch of this version
  • Earmuff settings now have the same in both MM and QM settings pages
  • Tooltips for earmuffs in MM were reversed
  • Added a bunch of missing tooltips
  • Avatar distance hider settings are now consistent between QM and MM
  • Chatbubble height slider was missing
  • Wings on QuickMenu will no longer reset after opening the "User Interface" page


We have a SDK release alongside this update!

Check out the full SDK patch notes here.


  • DataContainers! Lists, Dictionaries and JSON for Udon!

    • Added DataLists and DataDictionaries, giving Udon functionality similar to Lists and Dictionaries.
      • Lists and dictionaries typically need to support Generics, and Udon does not support them, so this is being done by putting your data into DataTokens first, which are able to store any value.
    • Added VRCJSON, a helper class that can convert JSON strings (such as those received from Remote String Loading) to and from DataLists and DataDictionaries.
    • Read the Data Containers / VRCJSON docs page to learn more.
  • AsyncGPUReadback! This allows you to read back data from GPU and shaders without a heavy performance cost

    • Adds the VRCAsyncGPUReadback.Request function and corresponding OnAsyncGpuReadbackComplete event
    • These read data from the GPU into CPU memory without too much of a performance impact, at the expense of delaying the data for one or more frames
    • Check the ASyncGPUReadback docs for more info.


  • Squishy PhysBones! You can now implement PhysBones that can "squish" or compress instead of stretch!
    • To set up a Squishy PhysBone, swap your PhysBone component to version 1.1 and adjust the "Max Squish" value.
    • All PhysBones are now versioned! You can change the version in the PhysBone component. This is being done to allow us to add new features safely.
      • Old PhysBones are on Version 1.0 automatically. 1.0 includes SquishyBones.
      • Gravity and Stiffness changes are on Version 1.1. There are some other changes documented below.
      • All versions will be maintained. 1.0 is not being deprecated but it is feature-locked and will not have new features added. Any time we add a new "breaking" feature, we will increment the version.
    • PhysBones 1.1: Gravity and Stiffness act differently and require new values if you are upgrading from 1.0.
      • Gravity is now the ratio of how much the bones should point straight up/down in world space when at rest.
      • Stiffness is now the ratio of how much a bone attempts to stay in its previous orientation.
      • Previously, these values were direct forces that you needed to balance with the Pull factor. We believe this should be more direct and easier to use.
      • These changes were also necessary to support the new functionality added to the component.
    • Max Squish value has been added. This is a percentage of how much a bone can shrink.
      • The _Squish parameter has been added. It works similarly to the _Stretch parameter.
    • PhysBones 1.1: Stretch Motion value has been added. This is a ratio of how much motion affects a bone stretching or squishing.
    • Categories of values in the VRCPhysBone component UI can now be collapsed.
      • Categories also include a Help button which will take you to the online documentation for that subject.
    • PhysBones documentation will be updated during the Open Beta for PhysBones 1.1 and Squishy PhysBones.
  • The Network ID Utility now works for PhysBones in avatar projects
    • This tool allows syncing PhysBones between avatars on different platforms, even if they have different GameObject hierarchies
      • This advanced tool is only useful if your PC and Quest avatars have different hierarchies!
      • You don't need to worry about this tool if you don't know why you'd do that.
    • See the full docs for more info