Welcome to the Developer Update for April 24!
Today’s featured world is Stellarya by Bia_Kawaii_Br, available cross-platform. This was the Space Jam 2 world grand prize winner!
Announcements
Whatcha doing for Pride?
We have a number of things lined up for Pride Month this year!
Keep an eye out for news on our socials tomorrow for a guideline document for community submissions… We can’t wait to celebrate with you!
Announcement of a Network-Incompatible Release
The release currently in beta, 2025.2.1
, will be network-incompatible once it ships to live. This means users on the current live version, 2025.1.3p4
, will not be able to share instances with anyone who already upgraded.
Our current plan is to ship the update next Tuesday, the 29th of April. But since client releases are complex in nature, it may be delayed up to Thursday, May 1st. We will try to aim for a time with less active users.
This will be the first network-incompatible release in a fairly long time, and it’s the first where we support platforms with a rollout delay, such as the Google Play store. We will try our best to ship the update at the same time for everyone, but please bear with us and expect some minor delays as it rolls out. Relevant beta and test branches should also update around the same time to stay compatible.
Behind the scenes of network compatibility
If you have ever wondered what “network incompatible” really means, here’s a little background info from the Release Team!
Contrary to what you might think, it actually has very little to do with our servers. It’s more about the data formats that the client (the app running on your machine) expects. Even our own terminology can be confusing here, as “network incompatible” builds are marked with a new “server version”. Currently, this number is 1343, which indicates that the last time we had a network-incompatible release was client build 1343¹ - that was 2023.3.2
, for those keeping track!
Strictly from a technical perspective, this number is the only thing preventing people on different versions to join the same instance. Without it, things might break horribly though! For example, one of the upcoming network-incompatible changes is related to the voice data format, so two people on different versions wouldn’t be able to hear each other. To avoid confusion from things like that, we increment the number to prevent this scenario in the first place.
Network-incompatible changes have historically had much less beta participation. This is understandable, as you cannot use them to join your friends on live. As such, we made the decision to try very hard to keep all our work network-compatible. Even larger network-format changes, like persistence, had extra effort put in to avoid becoming entirely incompatible. Sometimes you may even see slightly incompatible changes on betas, like the few times where camera indicators were not syncing properly. The impact of making a build network-incompatible is much larger than minor breakages like that, so we leave the server version alone.
Keeping things compatible ensures that the open-beta
channel can be open all year round, ready for you to preview fresh updates and help us test! It’s also why all the truly incompatible changes in 2025.2.1
will not be in the beta, but instead only coming in via the final live-targeting builds. This carries more risk of course, so we will be on standby to ship any required followup patches right after. If something does break, let us apologize in advance - software is hard, but hopefully we could clear up the reasoning for shipping directly to production at least!
¹ Technically 1344 according to our records, perhaps 1343 failed QA?
Development Updates
Updates for Creators
There are some great things in the pipeline (or already in beta!) for all the world and avatar creators out there!
More VRChat-specific Udon APIs
First, for the Udon enjoyers: Currently already in beta as SDK version 3.8.1-beta.1
, we have added several new APIs and classes that Udon scripts can use! These include:
- The VRCCameraSettings class for accessing the screen and photo camera objects via safe wrappers.
- Similarly, the VRCQualitySettings class to access quality and graphics settings, and a setter for shadow distance (giant world creators rejoice!).
- Some very low-level network statistics, accessible via the VRC.SDK3.Network.Stats class. For advanced creators!
All documentation links lead to our dedicated open-beta SDK documentation. You can see the full changelog for version 3.8.1-beta.1
on there too: Release 3.8.1 Beta 1 | VRChat Creation!
Per-platform Avatar Objects
Do you have your PC and Android/iOS avatars configured as different GameObjects? In 3.8.1-beta.1
you can now use Multi-Platform Build and Publish to upload all variants in one go, even with a setup like that!
Once again, this is documented on our open-beta SDK docs - here’s what the configuration dialog looks like:
Upcoming: Udon network events with parameters!
A conceptually simple change, SendCustomNetworkEvent
with parameters - but also one of the most requested Udon features of all time.
The implementation will allow you to send any data type that is supported by regular Udon sync, with up to 8 parameters per event. Both UdonSharp and Graph will be supported, and of course it is set up to be future-proof to work with Soba. The change will come with extensively updated documentation, including hard network specs and limits, and a configurable rate-limiting feature for hardened security.
Check out this example graph from our docs:
This will also bring a new property containing the sender of a network event without having to pass it as a parameter - meaning it will work for existing network events too!
The feature is currently in closed-beta testing (big shoutout to everyone helping with that! folded hands), but will hopefully be available for public testing soon.
Upcoming: A new mobile-compatible Toon Shader!
The shader selection for mobile avatars is very limited - by design. While our Standard Lite shader is very powerful for PBR workflows, there isn’t a good alternative for Toon shaded models (aside from the simplistic and dated Toon Lit
shader).
Coming to an SDK near you very soon, we will have a new shader named Toon Standard
It will bring many common shader features like Detail Maps, Emission, Occlusion, Rim Light, animatable Hue-Shift, and custom Shadow Ramps (with an optimized but powerful shading model) to mobile avatars.
Performance is a major concern of course, so it will still not support transparency for the time being. For the same reason, the feature set is limited, and the shading model not as complex as many community-made shaders - Toon Standard
is not intended to compete with PC content, but provide a powerful baseline that can run well on all hardware configurations that VRChat supports. That said, it can be used on PC as well!
Build & Test for iOS
Support for building and testing avatars and worlds on iOS comes with the 2025.2.1 client release and SDK version 3.8.1.
Enjoy much quicker iteration on new content you’re working on for iOS!
Read the beta docs on this here.
Spawn Radius for Worlds
We’re adding a Spawn Radius
value to the scene descriptor!
With this, players can spawn and respawn at a random spot within the spawn radius. For existing worlds, the spawn radius defaults to zero to maintain the current behavior.
(More) VCC Updates!
The next big VCC release (2.5.0) has just passed QA and will be rolling out soon!
We have major speed improvements to installing packages, especially for users with lots of listings added.
There are two parts to this:
First of all - the VCC will no longer re-fetch the listings many times per package installation, which provides both the installation speed improvement, and reduces traffic on the public listings.
Beyond that - any listings that are not currently enabled in the “Selected Repos” dropdown (or in settings) will no longer contribute to package installation times.
Here’s a little comparison video!
Left: Current VCC version
Middle: 2.5.0 VCC with all repositories enabled (20 added repositories)
Right: 2.5.0 VCC with only a couple repositories enabled
We’re still working on more improvements to the package management experience as a part of 2.5.0 release, but this should be exciting for creators with a lot of packages!
Web Updates
Another few updates from the web team for this week:
- Fixed an issue where if an error was encountered while reverting your display name, no error message was displayed.
- Fixed an oversight causing display names with special characters which are reported to be available when registering on the web to return an error when actually going through with the registration. These names will now be validated correctly.
Conclusion
That’s it for this Dev Update! We’ll see you in two weeks, on May 8!