VRChat 2022.4.1p3

Release - 2 December 2022 - Build 1263

Client

  • VRChat is now using Unity 2019.4.40f1 for builds.
    • However, you should continue using 2019.4.31f1 for your projects. This is also defined in the Currently Supported Unity Version page.
    • We will let you know when it is OK for you to migrate to a newer version for your projects.

Features

  • VRChat now offers support for receiving tracker data over OSC with our existing calibrated full-body IK system!
    • Using an external program, you can read tracking data from any hardware you can think of, handle that data, and then transmit it to VRChat using a set of OSC endpoints.
    • This works with any avatar. This system is separate from the OSC parameters system, so you don't have to customize your avatar to work with it.
    • Using the OSC Trackers system, you can enable Full Body Tracking on the Meta Quest! To reiterate, you will need a tracking system (such as SlimeVR trackers, Perception Neuron, Kinect, Webcam pose estimation, etc.) and a program running on a computer that reads the data from the tracking system and sends it to VRChat.
    • SlimeVR has been working on implementing this system, and we expect more programs to appear over time utilizing the OSC Tracker system to enable more hardware.
    • If you'd like to implement your own system, see our docs for how to implement tracker data from an OSC sender app

Improvements

  • VRChat will now notify Quest users if they didn't grant the application the necessary permissions to function
  • Added a slight fade-in to player voices upon world load
  • World searching now also matches author names
  • World searching now respects the Community Labs setting. If Community Labs worlds are visible, they're also searchable
  • Improved chatbox scaling and mirroring in the forward position
  • Improve responsiveness of HUD and nameplate voice activity indicators
  • Allow unplugging and plugging in microphones at runtime, always correctly show selected one in UI, supports live-switching of Windows audio settings
  • Microphone selection is now decoupled between Desktop and VR mode
  • Improved initial startup loading times

Performance

  • Remote SDK3 avatar IK will see considerably better performance
  • Greatly improved loading times in Udon-heavy worlds
  • Improve performance and efficiency of Udon generally
  • Reduced nameplate performance overhead

Fixes

  • Fixed an issue causing root motion for animations to display incorrectly to remote viewers
    • This fixes root motion for Index users (finally!) but ALSO improves emote animations for Desktop players
  • Fixed an issue preventing VR tunneling from working on Quest
  • Fixed some issues with nameplates containing special characters
  • Fixed issues caused by enabling OSC in environments where sending can fail (e.g., Proton)
  • Fixed potential corruption of local player moderations when running multiple clients at once
  • Fixed nameplates moving while players are in AFK animation
  • Safety & Security Improvements

UI

  • Fixed world category backgrounds getting squished when minimizing the side panel
  • Fixed some inconsistent updating of Avatar favorites
  • Corrected avatar wear button for "Other" category avatars (e.g., ReadyPlayerMe)
  • Fixed closing dropdowns by clicking on them again
  • Changed arrows in QM for closed sections to improve clarity
  • Fixed QM animation ghosting on opening MM
  • Fixed audible "pop" in menu hover sound
  • Fixed the "Show Avatar Author" button (again)
  • Fixed main menu appearing upside-down when starting VRC while the headset is, you guessed it, upside-down

Known Issues

  • With Unity 40f1, SDK2 worlds may sometimes exhibit problems when instantiating objects as players spawn. This change in initialization behavior may cause some SDK2 game worlds to break. In testing, this issue was exceptionally sporadic and rare, but we wanted to note it regardless. Due to the sunsetting of SDK2, we do not expect to fix this issue

Udon

Fixes

  • Fixed issues with the client crashing when requesting an object from an exhausted VRCObjectPool
  • Ensure Start is called before any deserialization or OnVariableChanged events fire

Documentation