VRChat 2023.2.1

Release - 13 April 2023 - Build 1295


New Features​

Let's start out with a video for one of the big features of this release: Native eye tracking!

  • Native eye tracking is here! It currently supports Quest Pro standalone as well as OSC input.

    • There are a bunch of new settings available in the Tracking & IK main menu page such as:
      • Disabling eye-look and eyelid tracking separately
      • Setting eye tracking to turn off when you mute yourself (in case you want to keep the eye rolling private...)
      • A toggle that will show you where your eyes are currently looking. This toggle does not show for remote users.
      • Force eye tracking raycast, which will force the eyes to converge at a distance determined by a raycast hit. A fancy feature that lets eye tracking align to the depth of different surfaces in your worlds. Perfect for those who love staring longingly into deep abysses...
    • Do not fear, if your avatar had the existing automatic eye-look set up in the SDK, it should work with this system!
    • Note that winking is coming soon (in a future SDK version), but it will require a reupload to function
    • Check the OSC Eye Tracking docs for OSC endpoints
    • Users on Live will not be able to see your eye tracking, as the live client doesn't know what the heck to do with that data
  • The Settings menu has been completely overhauled with a new look and better organization

  • Avatar downloads are now prioritized by size, which means loading into a world—especially on slower internet connections—will show you more avatars more quickly


  • Added a new launch flag --disable-hw-video-decoding that will force software video decoding on AVPro video players
    • This may provide a fix for those experiencing video issues on AMD GPUs, but will use slightly more CPU resources instead; if you have experienced stuttering or crashing with video players before, please let us know what hardware you have and if enabling this helps!
  • The 2FA input panel will now auto-select the text field
  • The camera focus ring will now fade to gray after a few moments so you can focus ( ;) ) more on your picture's subject


  • "Here" tab now refreshes your current location after switching instances
  • The Groups Info page will now allow you to accept pending invites instead of always showing "Request to Join"
  • Issues when logging out and back in without restarting
  • Nameplates no longer float too high above avatars in relation to SkinnedMeshRenderers without a root bone
  • The "emergency avatar" shortcut (~, \, #, or similar) no longer triggers while typing in a text field
  • "Represent Group" button now shows when viewing a group from a user profile
  • Improved transparent shader for avatar hider and earmuff distance visualizations
  • Built-in keyboard weirdness when moving the caret to the start position and entering a new character
  • Placeholder controller image on "Controls" page
  • MSAA no longer defaults to "Off" on fresh installs
  • Camera issues such as scrolling through camera filters, camera submenus, and camera scrolling over focus settings when using the arrow buttons
  • Issues when loading "Generic" avatars
  • Issues with animated audio on avatars when earmuffs are enabled
  • Hovering over elements in the wing menus sometimes not animating correctly
  • Potential improvements to EAC unloading, preventing some users from restarting VRChat
  • Safety and security fixes​

Additional Notes

  • In a future release of VRChat, we're adding tooltip translations to the Quick Menu and Main Menu for Japanese, German, French, Italian, Spanish, and Korean!
    • These translations are only for the tooltips to start
    • These were originally slated for release with this update, but due to feedback from our localization community, we're delaying until a later release
    • If you want to help out, check out this guide



  • Added IsPosed parameter to PhysBones​


  • OnOwnershipTransferred now fires when the master client leaves
  • Serialized network IDs (from the Network ID tool in SDK) now read correctly in the client, which fixes some worlds breaking their Udon sync between platforms
  • Security changes around the Udon Blacklisting system. Any GetComponents call may now return null entries if there are filtered components: Watch for this in your scripts!