Developer Update - 7 May 2026

Welcome to the Developer Update for May 7, 2026.

Today’s featured world is Vintage Camera Shop by えるけーにっひ.

Announcements

花見 !!

Hanami continues! You have until June 1 at 1PM PT to buy 'em up.*

As noted last time, it’s likely shop content will stay up for two months instead of just one in the future. Although it’s still up in the air! Just letting you know!

And hey, maybe there will be new stuff soon. Maybe tomorrow, even…

Pride Month is Coming Up! See You There?

We’re (still!) looking for LGBTQ+ community submissions for posters, logos, and floats (floats are invite only!).

Interested in submitting a poster or logo? Check out our Pride Guide for content specs and guidelines.

Here’s the form for Posters and here’s the form for Logos!

Submissions close at 12PM PST on May 15, 2026!

What Else Are We Planning for Pride?

We’ll be trying some new things during Pride, as well as bringing back the charity component for gifting/buying VRC+.

Keep an eye out on our socials on June 1 around 1pm PT for our kickoff!

2026.2.1 is Out!

Last week, we released 2026.2.1. You can listen to me talk to you about it here:

In short, this release brought Avatar Accessories, Avatar Performance Gating, and more updates to the Loading Screen!

Avatar Accessories. sort of a big deal!

yea, they are!

Avatar Accessories are exactly what they sound like! They’re accessories that you can put on your avatar: think a hat, or sunglasses, a halo, a tail, or… well, you get the idea.

They are performant little additions you can toss on your avatar… and they stay there! That means that they’re not quite like Items, where they despawn after you leave a world. No, with Accessories, these are always on your avatar. It’s basically like opening up Unity and adding something to it, except… right from your VRChat client.

We’ve got a few of em’ in the shop. We put out a video showing them off. Look at them!!!

VRCTween Will Soon be Available in the SDK Open Beta!

So, what’s VRCTween? The short version: it makes animating things in your world a lot easier. Fading and swishing UI around, moving objects smoothly from A to B, scaling something in, fading a color, that kind of thing. Stuff that normally takes a pile of Update() code can now be done in one line:

door.TweenPosition(openPosition, 0.5f, VRCTweenEase.OutExpo);

You can Tween almost anything. not just transforms. Light intensity and color, AudioSource volume, CanvasGroup and Graphic alpha, RectTransform anchors, sprite color, slider values, shader properties on renderers. Renderer tweens use MaterialPropertyBlock so you’re not accidentally instancing materials.

Check out the documentation and the example world to get started.

What’s New Since Closed Beta

We got a lot of great feedback from Closed Beta testers, thank you! Here’s what made it in.

No more casting this. UdonSharpBehaviour now implements IUdonEventReceiver, so you can pass this directly to OnComplete and other callbacks.

Cancelable delayed calls. VRCTween.DelayedCall(this, nameof(_DoLater), 3f) is like SendCustomEventDelayedSeconds, but it returns a handle you can Kill() to cancel.

Late joiner sync. Pair Goto() with Networking.GetServerTimeInSeconds() and you can catch late joiners up to a synced animation in one line. There’s a full pattern in the docs.

Custom easing curves. SetEase(AnimationCurve) lets you plug in any Unity curve for easing, for when the preset eases aren’t quite right.

Path tweening. TweenPath and TweenLocalPath move objects along a sequence of waypoints. Linear gives you sharp corners, CatmullRom gives you smooth curves.

Tween reuse. Tweens no longer auto-kill on completion, so Restart() and OnComplete patterns work properly now. Combined with ChangeEndValue, you can keep a single handle alive and reconfigure it instead of allocating a new tween every time.

As always, if you run into anything, let us know in the feedback channel.

Client-side Texture Compression

We’ve home-cooked a PC and Android/iOS memory compression algorithm for dynamically loaded images. This uses a compute shader to squeeze down Stickers, Prints, profile banners, user icons… you get the idea, down to ASTC (Android and iOS) and BC7 (PC). The compressed images will now take 25% as much RAM and help ease just a tiny bit of memory bandwidth and VRAM in your system.

For the moment we’ve left Udon images alone. It’s tricky to detect when the image in question absolutely needs to be pixel-perfect, and we don’t want to break any existing worlds if we can help it.

Signed Distance Fields Generation!

If you’re into graphics programming, you probably know what a Signed Distance Field is. We’ve used them forever in the form of TextMeshPro to get extremely detailed text that doesn’t completely tank your GPU.

Basically, by using them we can precisely pick how much of a pixel is covered by a piece of an image, without them ending up super aliased like you do with Cutout-style images. You can also scale them up a ton and they just keep being more detailed.

So what did we do? We also implemented a runtime GPU SDF generator! These SDFs allow foliage, grass, text, fur, hair cards, you name it, all to be perfectly antialiased and scale up beautifully, while still being transparent.

As it turns out, it’s also pretty easy and cheap to figure out which images would look better as a ‘cutout’ at runtime by tallying up pixels that are partially transparent and far from an edge, so we were able to apply these to a bunch of things that already exist in VRChat!

To start we’re going to be rolling them out in a couple of places. Stickers and Emoji are going to be up first, with other content coming soon after. Speaking of Emoji, they’re getting a little facelift too! They should no longer be super aliased from a distance. We added a clamping scheme that still allows mipmapping to work!

A SDK will release in the near future with this capability to let you use it on your own worlds and avatars soon! Adding support to your own shaders is just a 2-3 line change.

Also… uh, well… uhhhhhhhhhhh

So, this is a bug with Accessories:

We’re working on it. It’s complicated. The sound was added in post, you know, for extra impact.

We usually don’t share this sort of thing, but how can you not?

Conclusion

That’s it for this week! We’ll be back on the 21. byeeee

3 Likes

Another boring empty update. Give us something what we actually want…

6 Likes

you should touch grass

Looks good! Always nice to have more tools to make coding more concise :yellow_heart:

serious post time: how on earth did that accessories bug even happen :sob: :person_cartwheeling: :up_arrow: :left_arrow: :repeat_button:
I always like seeing these random dev log bugs every now and then

That poor dummy XD

always fun to show behind the scenes bugs!

For every update they have with only a handful of notes, theres a hundred others in the works that take more time to fully make (And things they don’t mention directly, like minor performance improvements and security updates) VRChat is an ever changing landscape :slight_smile:

Check out the documentation and the example world to get started.

Documentation link seems broken so far

Regarding the last part, honestly would be very nice to keep sharing visually with us the bugs/issues the team goes through! It just feel interesting seeing some inside bug/issues that happend on development, that not everything goes perfect on first try and such or along side that some of these perfom some interesting things! Please it would be wonderful if these still are shared with us!

VRCTween is huge! I can’t wait to get my hands on it when it’s fully released! :3

As someone who has tried to use as very little Update() as possible to save on performance but for a few tweens and interpolations, not having to deal with multiple variables for multiple tweens this is huge, looking forward to upgrading my world with this!

1 Like

We got SDFs and image compression that seems pretty good (I couldnt see any image compression artifacts outside of the jpeg artifacting from the image upload itself) and vrctween. Idk what ur talking about dude

You call that a bug with the accessories. I call that still better than S&Box

Love this! Thanks for your hard work~

"meh, meh, oh VRCTween and Cancelable Delayed Calls seem kinda interesting- WE CAN FINALLY COMPRESS DOWNLOADED- stickers and emojis :pensive_face: not world textures downloaded at runtime :pensive_face: that’s fine i guess :pensive_face: "

I think it’s much better not to skip it just because there’s no news.
Continuous communication is key to maintaining a community. I believe that’s what we, the users, used to want from the development team.

1 Like

Sorry, current working link is VRCTween | VRChat Creation, will update in the main post as well.

1 Like

Omg??? Thank you so much for working on a tween function! I love the accessory bug at the end too, lmfao

1 Like

Looks great, thanks devs.

Quick question regarding Accessories, will these ever make it to the standard SDK for release by users?

Additionally, have you considered exclusive-toggle functionality where if meshes will never be shown together, only the maximum of the ‘set’ is counted for triangle-count? Would be nice for avatar developers who struggle.

Best 2 questions I have. Hope it wasn’t rude to ask them here.