Developer Update - 12 October 2023

Welcome to the Developer Update for 12 October 2023!

Today’s Dev Update thumbnail contains a variety of terrifying(ly good) content that’s been submitted to Spookality 2023! Get your submissions in soon – you’ve only got 4 more days!

If you’d like to catch up, you can read our previous Developer Update from 28 September.

Important Info / Announcements

VRChat 2023.3.3 Rollback and Open Beta PART TWO

So, we put out 2023.3.3 last week. But then, a buncha people told us that there were some serious issues, so we rolled it back.

These issues were hard to track down and repro, so it likely slipped through Open Beta, being waved off as a one-off oddity. However, once everyone had their hands on the build, the problem got way worse!

We recently put out a fixed 2023.3.3 on our Open Beta. If it isn’t on Live now, it’ll be out to live REALLY soon. jk we found a performance regression that’ll prevent us from shipping this for now. sorry!

Unity 2022 Open Beta

Our Open Beta is currently testing a version of VRChat running on Unity 2022! This is a change from our current version, which is on Unity 2019.

We are getting very close to finishing up the 2022 testing. We expect to go Live with Unity 2022 within the next few weeks.

Expect to see us publishing and testing instructions for project migration well before that date, as well as a final “this is the version we’re using” decision.

Remember, though, no reuploads are required. All content from Live VRChat works in this build.

This is your PENULTIMATE warning. Test your content. Test your content. Test your content.

If you find a bug, report it. If you don’t report it, it will not be fixed. Do not assume someone else has reported it. We don’t care about dupes.

Make sure your reports are good. In short, good bug reports are clearly written, concise, and contain all relevant information necessary to make the bug happen on anyone’s computer. If you can’t provide that last part especially, it makes it super hard to fix.

Spookality 2023!

Spookality is upon us! Submissions for both avatars and worlds are already open, and will close on October 16th at 12PM PT. Make sure you get yours in before submissions close!

Avatars and Worlds will be showcased between October 20th and November 11th. Avatars will be shown in the default VRChat Home with a special additional section, and worlds will have their own World Category where you can browse through.

You have FOUR days to send in your submission! Send it in soon!!

New Years 2024!

Just so you don’t think we’ve forgotten, we’re planning and setting up for a New Years celebration once more!

We’re trying to open up poster submission to a wider audience this time around, so the process may be a little different. Change is good!

Keep an eye out for announcements regarding News Years celebrations. If you have questions, feel free to ask in this thread.

SDK Semantic Versioning

With the move from date-based versions to Semantic Versioning for the SDK, we made it possible for community package creators to declare dependencies, but we aren’t truly following the rules:

Given a version number MAJOR.MINOR.PATCH, increment the:

  • MAJOR version when you make incompatible API changes
  • MINOR version when you add functionality in a backward compatible manner
  • PATCH version when you make backward compatible bug fixes

Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

We wanted to follow the above rules, but for a number a reasons, we haven’t. So now, we want to clarify how we’re using version changes in the main SDK packages, and stick to it going forward.

Concept: Branding.Breaking.Bumps

A form of this concept was brought up in a Feedback post regarding the increment of the SDK to 4.0.0 for the Unity 2022 versions, which reflects a community-based point of view as to what we’ve been doing. Anatawa12 suggested “BRANDING.MAJOR.MINOR”, but I suggest alternate names to differentiate our system from SemVer and make its use more clear (since “Major” and “Minor” typically refer to the first and second number, I think it would be confusing to reuse them in different places).


This number would not change frequently, and represents the major shifts between incompatible systems. 1.x was custom scripting, 2.x was SDK2, and 3.x is SDK3.

If a new system for Avatars introduces an incompatible change such that SDK3 Avatars cannot be migrated, we would increment the Avatars SDK to 4.0.0, for example. Since Udon 2 has a migration and code-reuse path from Udon, it would be 3.5.0 instead of 4.0.0, for example (numbers subject to change based on release cadence).


We increment this when we make incompatible API changes such that packages which relied on the previous functionality need to be updated before they’ll work properly. This is how we protect both creators and package creators from confusion over broken packages due to SDK updates.


We increment this whenever we make a new release. They’re often a combination of Bug Fixes and New Features.

The Public API for the SDK

With the release of SDK 3.3.0 and the updated Build Panel, we published our first Public SDK API. This is what we will not break between “Bump” versions. We will work to expand the scope of the Public API based on properties, fields etc. which are commonly used by Community Package Creators.

We encourage VPM package creators to use proper SemVer for their own packages, which did not start at 3.0.0 like ours and won’t have the confusion over compatibility with SDK3 like we would when releasing a 4.0.0 version.

We will publish a new page in the Creator Docs describing this overall “Branding.Breaking.Bumps” approach soon™.

Ongoing Development

Mobile Native UI

Among the many things we’re working on for VRChat on Android Mobile, we’re working on a new lightweight native UI for the client!

The video shows me using Google to log in for the first time. VRChat asks me if I already have an account and allows me to link my existing account rather than creating a new account. If I didn’t have an existing account, I could skip this, and a new VRChat account will be made just like it is for Steam and Meta.

But, if I log into my VRChat account, like I do in the video, my Google account is seamlessly linked to it! I never have to use my extra secure (and hard-to-copy) password on my Android phone ever again!

After logging in, I’m presented with a feed showing a list of friends, a Group Plus Instance someone in the Open Beta group is in, a recently visited world, and some recommended worlds. While the only other thing I show is my profile, there are plenty of other pieces to this UI that weren’t shown.

This is still getting heavy work and is in continued development, so keep an eye out for this to come to the Mobile Alpha at some point in the future!

Content Gating: Reporting Missing Warnings

As part of our Content Gating effort, we will be adding a new report type for worlds and avatars: Missing Content Warnings.

With this new report type, you will be able to inform our Trust & Safety team about any avatars and worlds that you believe contain content that users should be warned about.

We are also happy to report that we are still on track to release the next part of Content Gating this year, where you’ll be able to filter content from your VRChat experience based on that content’s Content Warnings.

Finally, we’d like to thank everyone who has already spent the time to label their existing worlds and avatars with the appropriate Content Warnings. Doing so helps with making Content Gating effective and creating a better experience for all VRChat users!

Screenspace Canvas Changes

This one’s pretty technical, but its important especially for mobile development!

Right now, creators are coming up with inventive ways to handle showing and hiding of screen space canvases to avoid them showing over the top of our menus. This is particularly important when you’re making mobile-focused UIs:

(This is MyroP’s Lightcycle Arena, btw. Go check it out, it’s a ton of fun and really well made!)

We’ve come up with a solution!

Now, when the Quick Menu or Main Menus are shown, we find all user-created screen space canvases and automatically hide them (if not already).

We then track the state of the screen space canvases throughout the duration the Menu is present. Once the menu is closed, the canvases are presented correctly.

For example, if a canvas is changed from disabled to enabled whilst the menu is present, once we close the menu we will ensure the canvas is enabled.

This is an example of some of the changes we’re making to VRChat to reduce the need for our creators to find novel solutions to problems like this, especially for mobile-centric development.


That’s it for this Dev Update!

Our next update is scheduled for October 26th, 2023. See you then!

A lil final note

I’ve been noticing that these threads tend to turn into people going on for two weeks, slinging walls of text at each other as they argue about some highly specific technical nuance.

While I don’t mind discussion, I do mind when it turns into almost-but-not-quite-insulting language. When that takes over the entire thread, it makes it nigh-unreadable for anyone uninvolved.

In addition, many of these forum wars (finally, it’s 2003 again…) are regarding subjects that we didn’t even cover in that Dev Update… or sometimes, in any Dev Update.

These threads are meant to be a place for discussing what we have coming up for VRChat in a kind, accessible manner, so let’s keep it that way. If you don’t have anything nice to say, reconsider pushing that tempting “Reply” button.

I’ll be moderating these threads more heavily going forward, so please don’t be surprised if off-topic posts get hidden or removed.



any info on creator economy?


Will the VOD be uploaded this year?

What does this practically mean? How will it be enforced? Will tags automatically be applied, or will users have their content removed/banned?

So what’s the solve here? Are you asking people to just not let it degrade into foul language? Or do you want people to just not let conversations stray from any topic in a thread?

Because very often people will ask questions for stuff that was not covered in a dev update, but you will answer them sometimes. I also think discussion is natural to bleed off into other discussions, which may be relevant.

I can assume “common sense”, but common sense is not so common, and everyone’s definition of common sense is often different.

Gettin worked on!


It means that a report will inform the team that you think that content should be reviewed and potentially tagged with a Content Warnings tag.

Tags will be applied, unless you’re acting maliciously, or are just really bad about tagging your content. In those cases, moderations might be applied.


Fair, I’ll stop that. :sweat_smile:

If a sense wasn’t considered common among people, it wouldn’t be called common sense. :point_right:

Well you might want to start right now instead of contradicting yourself. :slight_smile:


Not to be rude, but if you’re going to set harsh limits, then abide by them. Otherwise it becomes a gray area and you have to then moderate a gray area, which causes all sorts of problems.

What happens if I write out a reply that takes 15+ minutes because of certain information, and then it gets deleted because it was off topic? What if people sense favoritism? What happens if you spend more time asking people to stay on topic, which makes the thread even more unreadable?

There are all things that go through my head when this happens, especially since I am a very literal type of person. So if I see you say to keep threads on-topic, but then go off topic, it signals to me that I can also go off topic.

Edit: And of course, I can understand the logical sense of this. Not making posts super long, not replying with garbage or insults, etc. Some of the replies on last dev update were getting quite long. But it’s hard to tell if this is a polite ask, or if this is going to be enforced. And if it is enforced, to what level?


Is there any chance that in a incoming patch we get utilities for friends lists?
I have posted this is the canny and it’s something that I have talked many people about it but would be great that you can have a general Status but if not you can change to custom to assign individually to those friend lists, if I assign people for Friend List A they can see me green, People from List B can see me Orange.
Why? Sometimes you add people because organization or usability as bots and etc, but there is no real connection between you and them, and If you are green I had the moments when those people Joined me and it’s not like I dont like to talk but i prefer to see them in certain events and not in my other friends time and that Force me to be all the time in away (for me and for many people), So is there a chance we can have something like that soon?

1 Like

Excited to see how this shakes out when its finalized!

Question about Branding.Breaking.Bumps, I would assume the goal would be to avoid branding changes wherever possible? Seems like most of the recent and eventually stuff (the unity upgrade, udon 2, creator companion, etc.) are all aiming to just be a breaking (or the unity change is more of a bump?) change. Where old content can be migrated pretty easily.

a final “this is the version we’re using”

Does this mean we’ll like, stick with 2022 or whatever it is you decide on permanently?
Or will we keep advancing unity versions as deemed necessary?

For the content gating is there going to be something for in case new users lie about there age to get past the content gating when creating a new account? Like a report system if we see someone that is underage but still seeing the content gated material?

In addition to that post being before yours, so like, I read it before yours, there’s some questions I’m willing to answer no matter what. Stuff about CE is one of those.

If, somehow, someone turns “we’re still working on CE” into a 80 page wall of text war, I will be both impressed and disappointed.

Please stop trying to turn “please keep things on topic” into Yet Another Off-Topic Wall of Text, Dark.

Pretty much, yeah. Branding changes are huge. They don’t happen often. We’ve only ever had three.

It means we’ll decide on precisely which version of Unity 2022 we’ll use.

Just like today, if it is discovered and proven beyond a reasonable doubt by our Trust and Safety team that someone has defined an incorrect age in their agreement to our Terms of Service for the purpose of bypassing safety systems, moderations will be applied.


Thank you

So me being concerned about something that directly is mentioned in a dev update is off topic? See what I mean?

Like I get I’m being a bit obtuse about this, but I am asking these silly questions on purpose to get clarification. I don’t like flying on assumptions and then getting burned later. This happens all the time on Discord and is why I left Reddit.

I’ll just assume it’s common sense. But if I have something to say, I am going to say it.

1 Like

For the content reporting, what is going to be done about people who lie about their age, or make new accounts to bypass it? Is it going to just be by a report basis, meaning people could spam their way into someone getting banned, or will there be extra efforts to actually take these allegations seriously? I love the content gating, however unless theres extra effort on the back end as well to deal with those who try to take advantage of it, it’ll just be a small step.

Not everyone is recording their game 24/7, so it’d be difficult to send hard proof unless there was some kind of log that could clip certain times or conversations. (Though…thats a whole other can of worms.)

Will we get documentation on how to update along with some sort of a video tutorial? Might be a good way to inform people that learn better by video than text. Just an idea, I’m perfectly ok with both.

Please see my response to ksnipe here

If you report a user for misrepresenting their age to VRChat in order to bypass safety systems, it’s expected that you provide some kind of info or proof. Regardless if you provide that or not, our Trust and Safety team will investigate as well.

There going to be a way to report users under 18 that are in worlds marked as adult content only?
What about a way to report children under the age of 13 so they can be removed from the platform?

Looking good! Is this going to replace the quick menu and big menus in game? Or is it just a log in experience before you load up the game?

You would do this through our moderation report form for now, just the same as it’s been. We may add other methods in the future.

The latter, it’s a “browse VRChat without going into VRChat” front-end.

1 Like

Responding to emphasize for folks scrolling this thread - I strongly agree with this.
Test your stuff! Daily-drive the Open Beta if you can!

I’ve been using the VRChat Open Beta (plus Steam & SteamVR betas) on Linux for many weeks now. There are some Linux-specific crashing issues I’ve already reported on Canny (e.g. the AVPro + Proton Experimental crash) that have forced me to revert to VRChat stable every time I actually play, but I still test if the crashes happen every update.

(Tangent: as of the past three days there’s a crash on VR launch with Proton Experimental, but it’s not related to the VRChat Open Beta as it happens on stable, too. It’s a Proton Experimental change. Update: This crash is supposed to be fixed now.)

Please don’t wait for the VRChat stable update to find out if things broke, especially if you’re doing anything unusual (such as VRChat on Linux). It sucks to plan to hang out with friends, only to wind up in a multi-hour tech troubleshooting session.

SDK is still planned to go into beta first before live?