Welcome to the Developer Update for August 27, 2026.
Today’s featured world is room.3458 by rot34587.
Announcements
Moonchaser
We’re hosting party in VRChat… tomorrow (August 28!) at 6PM PDT (9PM EDT / Saturday 10AM JST)!
Moonchaser features 5 DJs (and two VJs!):
1: Clyde Machine + SoftlySteph
2: 3Marco
3: Sera Akai
4: naku + SirRose
5: yoru
Moonchaser is accessible on all platforms. Not only that, but the performance from the main instance will be broadcasted to all other instances – including a hologram of the DJ!
Can’t get in? That’s ok! We’ll be streaming on Twitch! If you watch the stream for long enough, you’ll even get a gift… just make sure to link your VRChat and Twitch accounts.
But wait… there’s more! Folks that visit the instance will also get a gift. Spend another hour there, and you’ll even get yet another gift. We’re very generous.
Can’t wait to see you there!
Spookality!!
It’s almost that time of year! We’re doing something a little earlier than usual…
While we’d like to keep the themes a secret a little while longer, here’s a head’s up on the timeline we’re expecting for Spookality this year:
- Submissions Open: Sept 3 - Oct 1
- Judging Period: Oct 2 - Oct 15
- Showcase Period: Oct 16 - Nov 2
Also, in the spirit of the jam, we’ve decided to feature ALL eligible entries in the Home/Hub world for Spookality, even if they didn’t win a prize. Note that we will not be showcasing avatars that break TOS or are off-theme: sorry to the person who submits a Texas flag on a cube every year.
2026.3.2 is in Open Beta!
Yep!
This one is a smaller release – it’s stuffed with a lot of QoL updates, bug fixes, and the like. No big feature this time, but a lot of cool little things, you know?
You can read about it here!
Unity 6, the SDK, and VCC
We’re hard at work on the Unity 6 SDK and VCC support! As of right now everything is going through QA to make sure creators get a smooth upgrade experience.
Once we get to open beta, creators will be able to automatically install Unity 6 via VCC and migrate their projects with just a couple of clicks!
Material Contacts
In addition to the bonus contact parameters we shared last time, we’re also giving you a new way to use contacts: writing directly to shader properties!
We’re calling this “Material Contacts”, and how it works is if enabled on a receiver, you select up to four target MeshRenderer components that will then have the full world-space transform matrix of each of the receiver’s four nearest contacting senders written to their material properties, in addition to the transform of the receiver component itself.
The interface looks kinda like this:
And here’s an example of an effect you can achieve with that system, a fire effect shader (credit to Zekk) masked by proximity to a contact sender with the Fire tag:
As part of this, we’re also planning to drop the update rate limit of 60 times per second currently applied to contacts. This should allow contacts to consistently update every frame when VRChat is running faster than 60 FPS.
Action Drivers
This is an early preview of a new SDK component we’re working on for avatars. Many of the details about it are still undecided, so everything here is subject to change.
Take it with a pinch of salt!
A popular use case for expressions on avatars is to do things like toggling objects on and off, adjusting blend shapes, and more. Setting up cases like these in an SDK project from scratch requires a fair amount of knowledge of how Unity and its animator system works, which isn’t always intuitive to users that are brand new to creating avatars.
To help make it easier to set up common use cases like this, we’re working towards introducing a new component called the Action Driver. The fundamental idea of it is to let avatar creators bind parameters on their avatar directly to one or more “actions” that they want to trigger, which includes common tasks like turning game objects on and off.
This will not remove custom animator support from avatars! Instead, Action Drivers would be offered as additional functionality, separate from animators, aiming to make the most common use cases easier to set up for creators that are still new to building avatars.
Here’s a preview of what the new component might look like. As a reminder, this feature is still in development and everything you see here is still subject to change!
(Seriously: this is IN DEVELOPMENT! It might not look like this or function like this when released. You’ve been warned!)
We hope to have more details available for you in the future once we’re ready to share them!
Variable Width Avatar Parameters
When defining avatar parameters, there are three types you can choose from:
- Integers, 8-bit values ranging from 0 to 255
- Floats, 8-bit fixed point decimals ranging from -1.0 to 1.0
- Booleans, 1-bit true or false values
As part of planned improvements to the avatars SDK, we’re looking at introducing a way of varying the number of bits used by integer and float parameters. This aims to address two problems:
- If you have an integer parameter where you don’t need the entire range of values up to 255, some of the 8 bits of memory it takes up are never used, which wastes space that could be used for other synced parameters. This feature would let you reduce the bit width to only cover the range of values you’re actually using, which leaves the extra space free for other synced parameters to use. The same case applies to floats where you don’t need the level of precision offered by using 8 bits.
- In the opposite direction, you might want an integer that has a maximum value above 255. For this case you could increase the bit width, allowing for a higher maximum value at the cost of taking up more room. Similarly, increasing the bit width of a float can be used to increase its precision.
A common pattern in avatar creation is to have multiple toggles on an avatar that should only be active one at a time, for example, worn items that overlap, with the general current approach being a set of Boolean parameters where only one can be true at a time. We hope that being able to reduce the bit width of integers will offer a more convenient solution to this that also takes up less space in the 256 bit allocation for synced parameters.
Here a basic example. The inspector is still subject to change!
- The Outfit parameter only takes up 2 bits and has a range of 0 to 3 inclusive. This allows having up to 4 mutually exclusive toggles by having each one assign one of the values from 0 to 3
- The EyeConstriction parameter takes up 4 bits. It still has a range of -1 to 1, but trades some precision for extra room for other synced parameters.
- The total number of sync bits used is 7, compared to 17 bits this setup would normally use.
Conclusion
That’s it!
See you in two weeks!



