April Developer Update

This month, we wanted to share a few things we’ve been working on behind the scenes: Groups Updates, Localization, and Impostors

We’re cooking a lot up so this is hardly an exhaustive list, but we wanted to break down these three features and talk about them in this month’s Developer Update!

Let’s not waste any time, and jump right into it. Up first: Group Updates!

Group Updates

As we said back in November, the intention for Groups was to release the bones of the system, and then over the next few months build on that foundation, adding in new features as we see fit.

The plan was to add search immediately after launch. However, after exploring things a bit more, we decided to prioritize a few other features, including some specific features that were requested by the community.

One of the biggest requests for Groups at launch was more Group-specific instance types. Well, you’re getting them! We’ll be adding in two new instance types: Groups Plus and Groups Public.

Groups Plus instances are identical to Friends Plus instances in a lot of ways. If you're a friend of someone who is in the Group Plus instance, you can join, even if you're not a group member! The major difference is that Group moderators will be able to control and moderate the instance.

This way, you can still enjoy many of the benefits of having a private Group instance, but with the added benefit of letting in people who aren’t part of that group. If you: run events, want a less exclusive-feeling environment, or just like to stay on green but want to know who you’re interacting with, this is for you.

Groups Public are – you guessed it! – like public instances. Except Group moderators can control and moderate them. This way, Groups can host their own moderated and/or special interest public instances and they’ll be visible alongside other public instances!

Now you can host a public event and keep things… well, a little less chaotic.

The next major feature we’ll be adding to Groups is Queues.

Ever wanted to join an instance but it was full? What if you could get in line instead? Now, if you attempt to join a full instance, you can join a queue instead of getting the dreaded “instance is full” error message!

When space is available, VRChat will notify you and hold your spot—currently for 2 minutes—so you can join. No more getting sent home or spamming "world join" to try and reach your friends.

Of course, these aren’t the only features that are coming for Groups. We intend to continue iterating and adding features to Groups throughout the year.

World Capacity Changes

Along with the Queue system, we’re making some changes to the “soft cap” and “hard cap” system!

Right now the capacity of a VRChat world is determined by a value called the “capacity.” This is a value that you set in the SDK, or on the website when viewing your own world.

This value is then used as the “soft cap”, or the amount of people you see in the UI that are allowed in a world—like 12 out of 16. When you’re at or above the soft cap, the UI and a few other things change behavior accordingly.

The “hard cap” is the maximum number of people permitted in instances of that world. Currently, it's two times the capacity that you set. That means if your capacity is set to 10, then your soft cap is also 10, and the hard cap is 20. But the overall hard cap is 80, set by us.

But that’s not it! There are a few exceptions: the world author and instance creator can always join that instance, even if it’s at hard cap! So, the absolute maximum is 82... or it would be, if there weren’t other exceptions for things like VRChat system-level accounts.

This is horribly confusing. So we’re changing it.

You’ll now be able to define two explicit values: the “recommended” capacity, and the “maximum” capacity. You can set these to be the same or different!

The recommended capacity is the maximum number of users you’d expect to be in the world for an ideal experience. Treat this the same way as the previous soft cap value; the UI and application will react in similar ways when you’re past the recommended capacity.

The “maximum capacity” can now be set by you, and it no longer has to be precisely double the recommended capacity! It just has to be greater than or equal to your recommended capacity, and less than or equal to our maximum capacity of 80. 

If you want to set your recommended capacity to 20, and maximum to 25, you can do that! Or 20/80, 20/20, or even 1/1 for a solo experience.

The UI will now show the maximum capacity instead of the recommended capacity when viewing an instance. We’ll still display the recommended capacity alongside in some form.

You can also choose to set your maximum capacity to 80, or the “global maximum”. If we ever increase the global maximum capacity past this, your world will automatically bump up to that number. But, this isn’t something we’re thinking about doing anytime soon.

As said before, world authors, instance creators, and other exceptions may drive your actual possible occupants past 80, so make sure you account for that in your Udon scripts.

You’ll also notice some nuanced changes to how we handle full instances:

  •  You'll no longer be able to invite someone to a full instance.

  • If someone requests an invite from you while you’re in a full instance, you'll be told you cannot send the invite, and can reply with “The instance is full, sorry!”

  • No more sitting in a loading screen for a minute only to get hit with a “HONK, sorry, instance is full” message.

We’ll have some more information available soon about these changes. Keep an eye on the text Dev Updates in our Ask forums.

Localization

VRChat is enjoyed by people all over the world. It’d be fair to say that we have a pretty linguistically diverse community! Spend some time in a few random instances and you’ll probably hear a few different languages, despite VRChat’s English-only UI.

We’re changing that.

We’ve already translated the Quick Menu and Main Menu tooltips, and will eventually move on to the rest of the client, starting with German, French, Italian, Japanese, Korean, and Spanish. Eventually, we’ll add other languages.

But our current translations are a bit literal and awkward. Long-time VRChat users likely have a better idea of what things are called. Or, they might have developed colloquial names for things that are commonly used in their language that we just don’t know about.

So, using a platform called Crowdin, community members can submit localization suggestions that will be reviewed by proofreaders and some bilingual VRChat developers. Once approved, the changes will be queued up and ready to go for the next client release.

And Crowdin is pretty easy to use! For those interested, check out our docs here.

Of course, we want to think of a way to properly thank the localization volunteers who are submitting suggestions…but we aren’t quite sure what that looks like yet. Or a timeframe. So please keep an eye out for something concrete!

Impostors

Finally, let’s talk about something we’ve been diligently working on for the past year: Impostors.

Impostors are essentially like avatar body doubles, allowing people to see your avatar in situations when they’d usually see a fallback avatar or robot. That means that even if you’ve never uploaded a cross-platform version of your avatar, or if someone has your performance level blocked, they’ll still be able to see an “impostor” of your avatar!

They’re created with the push of a button, and will one day be auto-generated. Impostors aren’t a mirror image of your avatar, but they’re pretty close!

Until now, we’ve used the fallback system: You’d select a more performant, cross-platform avatar that would appear when yours otherwise couldn’t be displayed. In many cases, this fallback avatar wouldn’t look anything like your avatar and you didn’t have a coherent identity.

That was confusing and frustrating for both you and the people you’d hang out with.

Even if you have the technical knowledge to build a custom fallback or cross-platform avatar, you might just not have the time. You couldn’t be seen how you’d want to be seen.

Wouldn’t it be nice, in those specific cases, if you could just press a button and generate a cross-platform avatar based on whatever avatar you chose? We think so.

We’ve been testing this tech internally for some time now, and are pretty confident that it can handle most avatars. Of course, there will be some exceptions. This is cutting-edge stuff, after all!

Sometime in the next few months, we will be introducing Impostors into VRChat. This feature is being rolled out in stages.

Once this feature is live, you'll be able to generate an Impostor for your avatar via the VRChat website. As a note, you'll only be able to generate Impostors for avatars that you own and have uploaded.

Impostor generation should be pretty fast! Once your Impostor has finished generating, you’ll receive an email letting you know that it’s ready or if the process failed.

Other users will only see your Impostor if there is no other version of your avatar available for the platform they are on.

Prefer using a fallback avatar instead? There’s a toggle to turn them on or off. And, if you want to see what your impostor looks like, you can toggle between your avatar’s actual model and its Impostor.

Keep in mind that this is a soft launch. We’re pretty happy with how Impostors look and feel but it’s not a finished product just yet. We anticipate that some Impostors might look weird, might totally break, or might not even generate at all. We’re going to be perfecting this system as time goes on until we’re completely happy with it.

Wrapping Things Up

So… we’ve been working on a lot of new features. And this is only the tip of the iceberg. In the coming months, we’re going to have a lot of really exciting things to share.

Curious about what we’re working on? Keep an eye out for future Developer Updates, and follow our weekly Dev Updates every Thursday on our Ask forums to stay in the loop.

As always, thank you for loving VRChat as much as we do. See you next time!


 

For press or media inquiries, please contact press@vrchat.com

We’re hiring! Check out open positions on our site

Previous
Previous

Announcing the Avatars for Everyone Winners

Next
Next

The Avatars for Everyone Jam is Live!