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:
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:
- 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. )
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!