Developer Update - 29 February 2024

Happy Leap Year!

This Developer Update was turned into a video, which you can find below:

Developer Update Video Transcript

Howdy! It’s Strasz from the VRChat team. Today, we’re going to be talking about a bunch of stuff: more Creator Economy updates, how we’re going to be surveying users to get better feedback, Udon 2, persistence, and future updates to VRChat Plus. Yeah – there’s a lot! So let’s get into it!

First, let’s talk about the Creator Economy!

CE Updates

As we mentioned in our update last month, we’ve opened up applications for new sellers! We’ve received a ton of interest so far, and are currently in the process of inviting new people into the program. We’re excited to get more people making cool things into the Creator Economy!

(And speaking of that application – you can find it in the description, if you’re interested in applying to become a seller!)

We also wanted to reiterate that we’re working hard on expanding some of the features for folks that are already in the program. Last month, we already touched on some of those features – like one-time purchases and automatic subscriptions – and we’ve been making good progress on their implementation. We’re hoping to have them out in the first half of this year, but of course, things could change.

But let’s get into some of that new stuff I mentioned earlier!

Udon 2

Let’s talk about Udon 2!

As you can probably guess, Udon 2 is the successor to our scripting runtime, Udon. It’s been in development for quite a bit, and we’re happy to announce that it will be entering closed beta very shortly!

Udon 2 will be a powerful upgrade for creators, bringing support for most of C# to scripting for worlds. For those of you that are already familiar with Udon, this means things like allowing the use of Lists, custom classes that aren’t Udon Sharp Behaviors, static variables, and much more.

Udon 2 should enable world creators to develop more engaging experiences with less effort. Even if you aren’t a creator, this will likely dramatically improve your VRChat experience: you can expect cooler, more interactive, higher-performance worlds once creators start using Udon 2.

We’ve been pretty quiet on the development of Udon 2 so far, but as I said a second ago, it’ll be entering into closed beta shortly. With that said, there’s no timeline right now for an open beta, as we’ll want to work with our closed testers to incorporate as much feedback as possible before bringing it to a larger testing group. Keep your eyes open, though, as we’ll be updating you on the progress of Udon 2’s development in our biweekly updates on the Ask forums.

(Oh – and speaking of the Ask forums, if you are a Creator, you should check them out – we’ve recently revamped them. There’s a link in the description!)

Udon 2 isn’t the only thing entering closed beta soon, though! There’s also… Persistence!

Persistence

Persistence gives world creators the ability to save certain bits of information to individual users. This allows users to essentially load into a world, and immediately have that world recognize them.

On a small scale, world creators could use this system to allow users to save their settings in their world. So, every time you jumped into your home world, for example, all of your post-processing, chair, and mirror settings would automatically load in.

World creators could also use this system to create inventory and XP systems. If you wanted to, you could theoretically create a whole full-featured RPG in VRChat.

Some of the possibilities these new features unlock go far beyond the examples here. We anticipate that creators will use persistence in novel ways that we can’t quite predict – and we’re really excited to see that happen in real-time!

For the more technical minded folks out there that might want to know how persistence works, this is done through both Player Data and Player Objects.

Player data is a synced and persistent key-value store, perfect for storing preferences and progress that you want any script in your world to access easily, from anywhere.

Player objects are, well… objects which get automatically instantiated (with networking) for every player in the instance, similar to existing player pool prefabs and all their various uses. All synced data inside of player objects is also persistent by default, though you can disable that per-object if you want sync but not persistence.

Once again, as mentioned above, Persistence will also be entering closed beta soon, but just like Udon 2, we don’t have a specific timeline for when it will reach open beta.

We’ve been building both of these systems alongside a lot of conversations with our creator community, and we anticipate a lot of feedback as they get a chance to play with them for the first time.

User Research

We’re doing research… on you!

We want to make sure that we’re doing things that make VRChat better for everyone. To do that, we’re going to start using user surveys to better understand who our users are, what they love about VRChat, what they use it for, what they value, and what’s missing that could make their experience better.

This isn’t going to be about bugs or feature requests (those should still go on our Feedback forums), though – think more design and user experience stuff. We’ll be conducting surveys, interviews, studies, and more.

The purpose of all of this is to collect data to make VRChat better. Any information we collect will be explicitly taken with user consent (meaning, you’ll have to sign up to participate) and only used to improve VRChat. We’ll be sending out invites to this sort of thing frequently in the future, but if you’d like to volunteer to get your voice heard now, you can check out the link in the description.

VRChat Plus Improvements

Finally, let’s round things out by talking about something a little different – improving VRChat Plus!

One of our goals for this year is to give folks that subscribe to VRChat Plus a little bit more value, and we’ll be doing that by adding in a few extra features throughout the year. Two of the things we’re looking at right now are increasing the amount of custom emoji slots and adding in animated emoji! Both of these things have been requested quite a bit last year, so we’re hoping to get them into the client in the first half of the year.

That’s not all, though. While we aren’t ready to share anything just yet, we have a few ideas for how to give VRChat Plus subscribers a bit more bang for their buck, so stay tuned!

Conclusion

That’s all for this Developer Update! As always, if you’d like to keep up on the day-to-day development of VRChat, I strongly suggest keeping an eye out for our biweekly updates, which are posted to our Ask forums.

As usual, thanks so much for loving VRChat as much as we do.

17 Likes

For VRC+ benefit,
I’m thinking how about having additional world favorite row. (like2 or 3 more?)
It doesn’t need to be rest of world row which synced to remote users.
We just need additional row to save more nice worlds on favorite.

14 Likes

There is a section in the research form that states the following:
Which days of the week are you usually available to participate in studies?
Is this set for a specific timezone or is it the time that works for the participant?
Or is it just depending on what it’s about?

3 Likes

please add option to make it so that people cant send you friend requests, i get too many its annoying

7 Likes

Pretty neat update,
waiting to see what you have in store for VRC+, I may actually subscribe back, the best would be a cheaper options, like for discord, less bonus but only 5 buck or something like that, imo, obv im not an expert ahah

cant wait for Udon 2 and world persistence, It’ll offer so many new posibilities :D
also any news about SteamAudio? uu

2 Likes

Can’t wait for Persistence and the Gif emojis!!

Speaking of emojis though, we need a better/more clear way of reporting someone’s emojis as currently it’s quite unclear what to report it under if you see someone with an emoji of something that isn’t safe for work, or that’s a hate symbol (you know what symbol I mean).

Looking forward to the updates! :D

3 Likes

We will account for your timezone from the form!

3 Likes

Awesome stuff!

Will persistence data be stored locally on the player’s machine? Or will it be stored server-side?

2 Likes

It’s stored server-side! But it’s only available while a player is in the instance.
So different players can access each other’s player data to make scripting easier.

8 Likes

These are some huge news for us world creators!
I do understand it’s still might be early to give a set number, but approximately, what’s the speed difference between Udon 1 and 2? And are enums going to be an exposed?

As for world persistency, this is something I’ve personally (and I bet many others have as well) have been looking forward to! It’s going to revolutionize the VRC worlds similar to string and image loading, but probably even greater!
But what would be the limitations of the data stored?
How much data could be stored?
Can you allow other worlds built by you or maybe other users to access the same data? (<-- Would be really cool and useful!)

Either way, I can already tell it’s going to be great! Thank you VRChat Team!

that will be nice

Hey Fax,

LS Media currently uses VRCX Persistence for saving world settings and the likes.

Is this other user accessibility a toggle per world?,
Id like to use it to store some data that I don’t want accessable by other players / Other players don’t need to know.
EG Local bookmarks for hyperbeam / local world settings which is a privacy concern if it can be read by anyone who joins an instance.

Will there be a separate local only secure store for this type of usecase?

6 Likes

I’m curious for the persistence update, would progress from one world be able to be saved and then imported into another world?
If that was the case, I could see it being used in an rpg game series where different areas/levels are different worlds. Then that would help keep things from getting too large or performance intensive if it were just one world.
If this isn’t the case, then personally I would say it should be considered to be looked into, as this would really help with interesting mechanics being added by creators I believe.

4 Likes

Will improvements from Udon 2 apply to older worlds or will world authors have to rebuild their worlds to make use of the performance benefits?

2 Likes

Curious if Udon 2 is still based on Webassembly as initially announced over a year ago?

1 Like

Yep still based on webassembly

4 Likes

I don’t even understand why we can’t have unlimited World groups for free. Hopefully, workaround exists and we can even share the favorite lists with friends etc…

Pls vrchat, don’t lock such essential feature behind a paywall, its greedy.

1 Like

This entire update blog is getting me exited for trying out udon2 and persistent storage

3 Likes

What’s the performance difference of udon 1 to udon 2?

Depends what you’re doing, either 2x-3x faster if you have lots of interactions with unity, or 20x-50x faster if you’re doing raw math

How much data can be stored in persistence?

Player Data is effectively just one manual synced UdonBehaviour, and has similar limits. Player Objects can have many UdonBehaviours, and each one has it’s own separate limits just like how UdonBehaviours behave now. If you can sync it, you can persist it.

That being said, we are also increasing the limit of all manual synced UdonBehaviours from 62KB to 282KB per serialization

Can persistence data be private?

We’ve discussed this internally and it’s something that we want to do, potentially even before open beta, but the current version that we’re working with is not private.

Can data be migrated or shared from one world to another world?

Not at this time

Will performance improvements from Udon 2 apply to old worlds?

No, not at the moment, but we’re working to bring improvements to old world performance before release. No guarantees, though

Is Udon 2 still based on webassembly?

Yes

9 Likes

But what would be the limitations of the data stored?

… What @phasedragoon said! :smile: We’ll have more details in our persistence documentation!

Can you allow other worlds built by you or maybe other users to access the same data? (<-- Would be really cool and useful!)

Not yet, but I agree that it would be cool and useful! This topic will require more consideration, as both world creators may need to consent to access that data.

6 Likes