Developer Update - 11 April 2024

Welcome to the Developer Update for 11 April 2024!

Important Info / Announcements

Space Jam Winners… SOON!

Tomorrow (that’s April 12!) we will be revealing the winners of the Space Jam contest, sponsored by the NSSA. You can learn more about Space Jam by reading the blog post here.

2024.2.1 Just Went Into Beta!

Yup! Yesterday, we pushed 2024.2.1 into open beta. This is a big one! Some major features:

  • We’re moving to Unity 2022.3.22f1! This is a minor version upgrade, so there won’t be any major new features or changes. VRChat currently uses Unity 2022.3.6f1. This upgrade contains various bug fixes, minor improvements, and reduced crashes. As a note, there is no need to update your projects yet – we’ll tell you when it’s time!
  • Animated Emoji! Yup, VRChat Plus subscribers can now create animated emoji!
  • The camera has received some updates to account for animated emoji.
  • Group Instance panel adjustments
  • …and more!

You can read the full patch notes here.

Ongoing Development

Impostors Update!

In late 2023, we released Impostors, a feature that allows VRChat to generate a simplified version of your avatar that allows it to be seen on non-Windows platforms (like Quest). So far, thousands of creators have opted into this system, and that’s allowed us to improve them, and make them even more efficient in recent updates.

Soon, we will be automatically adding Impostors to very popular avatars that aren’t already cross-platform. If that goes well, our ultimate goal is to turn this on for most public avatars uploaded by creators.

You can always remove Impostors from an avatar you created by visiting the website and navigating to the individual page for that avatar.

User Profile Language Improvements

Our systems for user profile languages have improved, and there are now many more languages you can show you speak on your user profile!

A mixture of user requests from Canny, the most-used languages in the world, and the official languages of the European Union have been added over the past few months.

Like our existing language options, we are using three-letter language codes as defined in ISO 639-3.

Note that these languages are separate from the community localisations of the VRChat client.

New languages include:

  • Afrikaans
  • Australian Sign Language (Auslan)
  • বাংলা (Bengali)
  • български (Bulgarian)
  • 官话 (Mandarin Chinese)
  • 吳語 (Wu Chinese)
  • 廣東話 (Cantonese)
  • Esperanto
  • eesti (Estonian)
  • Filipino
  • Ελληνικά (Greek)
  • עברית (Hebrew)
  • हिन्दी (Hindi)
  • íslenska (Icelandic)
  • Bahasa Indonesia (Indonesian)
  • Gaeilge (Irish Gaelic)
  • Latviešu (Latvian)
  • lietuvių (Lithuanian)
  • Lëtzebuergesch (Luxembourgish)
  • Malti (Maltese)
  • मराठी (Marathi)
  • Bahasa Melayu (Malay)
  • New Zealand Sign Language
  • slovenčina (Slovak)
  • slovenščina (Slovene)
  • తెలుగు (Telugu)
  • toki pona

Groups Changes

While we’re working on some bigger changes behind the scenes, we’ve also wanted to clear up some of the pain points around managing a community via the Groups system.

Here are some of the changes we’ve made to make things easier:

Removing someone from a group will no longer send out a notification to the user being removed

Removing a user from a group was always meant as a clerical tool for helping manage members who, for various reasons, may need to be removed from the group, but not banned.

We decided that this didn’t need a notification, and have removed the logic which used to send one out! The Group Audit Log will, of course, still have an entry about the removal.

Warns and kicks in Group Instances will now show in the Group Audit Log

Group admins have been asking for greater visibility around actions done in their instances and we’re happy to report that warns and kicks are now fully logged. The log will show who performed the warn/kick, when, and on which user the action was done to.

Group bans will soon allow an optional ‘reason’

To further expand on the tools available to Group admins and moderators, and aid in visibility on actions done in their community, group bans will soon support an optional ‘reason’.

This allows you to note as part of your ban why you initiated this action, and be able to convey that to your fellow moderators, and importantly to the user who was banned.

If supplied, the reason for the ban will be sent in the notification that comes along with the ban to the banned user. The reason will also be included in the Group Audit Log as part of the ban entry.

As a note, the first two changes are now live – although there’s no ETA on when the ban reason will be shipped.

Website Updates

We’ve made some fixes to the VRChat Home website!

  • You can now set your status via the web, in addition to your status description:

  • Sellers in the Creator Economy can now cancel and refund a buyer’s subscription themselves from their marketplace dashboard.
  • Fixed an issue where group post images would scale improperly in some browsers.
  • Fixed an issue preventing group roles from being deleted by group admins.
  • Fixed several issues related to resetting passwords:
    • It is no longer possible to submit the form multiple times in rapid succession, causing unexpected behavior.
    • All error messages are now properly displayed to the user.
    • Fixed an issue where password reset form could show a success message when the process failed.

Worlds SDK Improvements

Many of the custom editors in the Worlds SDK have been updated, adding multi-edit, saving dropdown preferences, and hiding older deprecated fields.

Most of the VRChat components now have HelpURLs, meaning if you click the little question mark button on the component, it will take you directly to VRChat’s documentation for that specific component.

More components have been added to the “Add Component” menu. While you could search for all of these before, more of the VRChat-specific components will show up under the “VRChat” section by default, and without the extra step of having to click “SDK3”.

Inspectors:

Add Component Menu:

HelpURL Documentation Links:

Who needs Google if you can just (?)

ClientSim Tools for Persistence

We’re still working on Persistence, an upcoming feature for the Worlds SDK that allows saving and loading data. As Persistence heads towards Closed Beta, we’re building tools within ClientSim to make it easier to create, test and debug persistence in your worlds.

You may remember that Player Persistence has two main interfaces – PlayerData as a global dictionary, and Player Objects for one or many GameObjects with UdonBehaviours with synced variables and components.

PlayerData Tools

For PlayerData, we have the “ClientSim Player Data” window, which offers the following functionality:

Don't worry, this window is for 🌟experts🌟

  • Saves and loads PlayerData from a JSON file which is automatically created and saved into your project.
  • Shows the current keys and values for the Local Player.
  • Shows the current keys and values for Remote Players (selectable from Dropdown).
  • A button to clear the existing data so you can start over if you’ve changed your schema.
  • A button to Refresh the values if you edit the JSON file on disk and want to apply the changes in your scene while staying in Play Mode.
  • A button to open the folder containing your PlayerData JSON files so you can inspect and change them if you like.

Each scene in your project will have its own PlayerData JSON file, so you can swap between scenes and maintain your last working values. We will add functionality to enable you to manage multiple JSON data sets for a single world for testing purposes.

This window has been extremely helpful in testing PlayerData and developing our initial examples. We’re working with our designer to make it easier to read and use now that the core functionality is in-place.

Player Object Tools

Player Objects are more complex to simulate - instead of a single Key-Value table, they can involve many UdonBehaviours and components like VRCObjectSync, in a nested hierarchy.

We’ve started by simulating core functionality of Udon Networking - adding ClientSim Networking View and Network Id Holder components to mirror the client’s logic. These are automatically added to each synced GameObject which is a child of your VRC Player Object.

In the Network Id Holders, we display the values of all the synced properties of an UdonBehaviour. We’re working with our designer to figure out how to collect this info and make it available from a central location, but this gives our testers and example creators some insight in the meantime. Check out the synced properties viewable in the screenshot below.

All this work is possible because of the merge we made that brought ClientSim into the Worlds SDK so we can develop tooling around upcoming features in the same codebase where those features are being developed!

Copy & Paste Improvements in the Udon Graph

You can now copy & paste Groups and Comments in Udon Graph programs! These two items are stored in a different sort of way than all the other nodes, and did not fit neatly into the serialization method we had for the graph.

We’ve dug in and wrapped them so they can be pasted between graph programs, as well as shared in forums, etc in their String format. Additionally, groups now have a right-click context menu to Cut, Copy, Delete and Duplicate them, and Comments will now Highlight with a blue outline when you select them.

Creator Documentation Updates

VRChat’s Creator Documentation receives minor updates every week. We don’t usually mention them – but here’s a list of changes we made last month:

  • Added a new page for the Animator Play Audio state behavior on avatars.
  • Added a new page for the VRC Head Chop component on avatars.
  • Added a new page for byte and bit operations in Udon.
  • Added a new page about the Udon VM and Udon Assembly. (Thanks @20kdc !)
  • Added release notes for the latest SDK release.
  • Added the OnInputMethodChanged event and its arguments for Udon.
  • Added an example on how to use String Loading in Udon.
  • Restructured the first steps of Create Your First Avatar.
  • Published the Creator Economy documentation.
  • If you’d like to apply as a seller, please send us an application.
  • Added a section on animator parameter mismatching. (Thanks @anatawa12 !)
  • Added more details on to use VRC Station properly. (Thanks @jellejurre !)
  • Added an introduction and performance tips to VRC Mirror reflection.
  • … and more!

Thank you to the community members who contributed suggestions and improvements!

VRChat’s documentation is open source – if you have a suggestion, visit our GitHub or suggest edits by clicking “Edit this page” at the bottom of any page.

Too much effort? Just press the “Feedback” button on any page.

Either way, we appreciate your feedback and hope you look forward to more improvements!

Home World Improvements

Hey, it’s Mike from the VRChat Art Department! The Team’s been hard at work on this and we’re finally ready to give you a preview!

It’s been a few years since we’ve renovated the Home world. (Okay. Maybe more than a few. :sweat_smile:)

The current version was actually designed before we knew what the Quest 1 was capable of, so it was aimed more at GearVR specs (remember the GearVR?!?)

With the Quest 2 as the current baseline, we’ve got a bit more power to play with. We wanted to open up the space, reduce visual clutter, and give it a cozier vibe.

We decided to keep it familiar while evolving the sci-fi fantasy concept, modern architecture, and VRC magic moments.

The core design is completed and we’re in a polish and QA phase now, so you can expect the update to replace the current Home in the next few weeks!

In the meantime, here’s a comparison with the living room area. Ahhh, much better.

Conclusion

That’s it for this Dev Update! Wow – that wa a big one.

Our next text update is scheduled for April 25. See you then!

20 Likes

Any updates on Udon 2’s development?

17 Likes

So does this mean there aren’t currently any plans to automatically generate impostors for avatars that are set to private? A majority of avatars are private avatars and having these avatars automatically generate an impostor seems ideal imo. Especially in the club scene (or any group regularly seeing capped instances) where I would much prefer to see a lower res/poly impostor of someones avatar instead of a giant fallback or robot. A lot of avi creators won’t bother to generate impostors on their own.

5 Likes

We might start with public avatars, but the goal is for all avatars, including private ones, to automatically receive Impostors :+1:

8 Likes

Are there any thoughts about having an opt-in option for autogenerating imposters that an individual uploads? Or maybe an option in the SDK? Manually having to go to the website is pretty annoying and I easily forget to do it.

1 Like

…but in the end, it doesn’t even mattress

19 Likes

With updates to the pickup, scene descriptor, and portal marker, will we see an update to the VRC Stations? :eye: :lips: :eye:

3 Likes

Can we please instead choose if we want to notify the user on whether or not they’ve been kicked or banned?

While their visual updates were pretty minimal (mostly just a reorder), it now properly handles value saving!
Previously, if you changes settings on the station and immediately entered play mode, these changes would be completely wiped. You had to edit something else after editing the station for it to properly save.

1 Like

Yeah like is it just shelved now or??? The massive radio silence despite such intensive backlash seems to reinforce issues with developer communication, and makes me feel like they don’t really care whether the creator base is happy or not

1 Like

Can we PLEASE get this for kicks and warnings too?

9 Likes

It needs to go through a closed beta and an open beta first - But we’re working on it! :v:

5 Likes

I hope the open beta comes within the next months or that getting into the closed beta is easier, I’m so excited for Udon2 and Persistence

3 Likes

I haven’t seen much of the player object implementation yet, but I hope they will allow transitioning from CyanPlayerObjectPool without too much hassle. Can’t wait to see it in action soon!

When will the quest version get the ability to hear avatar sounds?

1 Like

The plan is that every avatar uploaded will have an impostor, without needing any kind of opt-in at all! This is still a little bit out, as we scale up our infrastructure for generating them, but it’s the end goal.

3 Likes

The news of the main developer of Udon2 being absent from the Vr Chat team is concerning not only to me but likely to many others as well. Will the departure of the main developer impact the release timeline? Additionally, can we expect the same level of active bug fixing and features post-release?

9 Likes

NEW HOME WORLD WOOT! And it does looks cosy, Iv yet to see it in person but the pic look cool. Maybe someday you guys will consider customization but im just happy with something new. =)

2 Likes

New home world goes so hard actually, props to the art department for finding the sauce again! Eagerly waiting to see it in action once it gets published!

2 Likes

Since there will be animated emjoi’s, is there any thought on having group emjoi’s? For example someone being a vrc+ user and using a groups emjoi that they represent at that moment?

2 Likes