Welcome to the Developer Update for February 27.
Today’s featured world is A Simple Fishing World by Puppet~.
Announcements
SPAAAAAAAAAAAAAAAAAACE (jam) (2)
Space Jam 2 is live! This World Jam, hosted by the National Space Society of Australia, is an opportunity for world creators to make a VRChat world fitting the chosen theme.
All entries will be featured in a world row, and there are monetary prizes for the winners! Check out our blog post to learn more.
Note for World Creators About Input Fields
There is currently a bug that allows input fields (of all types, Unity UI, TextMeshPro, and VRCUrl fields) to pop open VRChat’s keyboard even if they are disabled. That is, even if you set the InputField
component to enabled = false
, the keyboard will still pop up. The same is true for the Interactable
property, which even causes fields to become grayed out visually – yet they remain interactable.
In a future update, we want to fix this. Both for semantic clarity, and since it allows creators more options in marking input fields as disabled. We do recognize that this is a breaking change, even if minor, and as such want to give you a heads-up.
This announcement is both to inform you of this change then, and to give a chance for feedback - is this something a commonly used prefab relies on, or are you aware of any existing functionality that would be broken by this? Let us know!
The Stream is Back!
We took a little break last week – but we’re back!
As usual, you can find us on Twitch at 2PM PST every Friday. We might have an extra surprise for you… no promises, though!
We Released 2025.1.2!
Main Menu Updates! Age Verification Changes!
…and more!
Read all about it here.
Development Updates
Avatar Gallery Update
We’ve updated the avatar pages on the VRChat website! They are less cramped and include more creator information. They also include some extra room for… upcoming features.
You can now edit many details of your avatar on the web, including the name, description, thumbnail, and new fields for styles, tags, and acknowledgements, as well as an avatar gallery.
Right now support for these new bits is limited across the platform, but we’ll have more to share about how these will work soon!
An Update on Soba
Soba’s development is still underway! We haven’t talked about it in a hot second, so we thought it would be prudent to share some of Soba’s features that we’ve been working on for Soba’s initial release.
As a note, we’re trying to be extra careful with what we share about Soba. Likewise, it should be noted this isn’t everything you can expect as part of Soba’s intial release, but it is the stuff we’re currently testing and iterating on at the present moment.
This might lead to questions like, “Where is X?” or “When will you discuss X?” and the answer to those sorts of questions is likely to be the same: we’ll talk about it when we’re ready!
First, let’s recap what we’ve already confirmed will be part of Soba’s launch:
- Non-UdonBehavior classes (aka custom classes).
- These classes can be abstract or static and can implement interfaces.
- Custom interfaces.
- Static fields.
- All the existing features from Official UdonSharp.
With that said, we think we can add a few new ones to that list:
- All custom classes can have:
- Custom constructors, including
static
constructors, which will be evaluated when the world loads. abstract
,virtual
, and of courseoverride
methods and properties for full custom inheritance trees.- Field Initializers which will be evaluated at runtime, just like in normal C#.
- As an aside, compile time field initializers were a non-standard feature in UdonSharp. If you relied on this before, let us know and we will try our best to support your use-cases in more standard-conforming ways going forward.
- Custom constructors, including
- Interfaces can have default implementations, and can inherit from existing and custom interfaces as needed. Implementing functions can be explicit or implicit.
- Methods support optional and named parameters, including
params
. - Recursive methods no longer require a special
[RecursiveMethod]
attribute and no longer come with a performance penalty.
Once again, this isn’t an exhaustive list, however it does represent functionality we’ve tested using our own tools as well as community prefabs.
While we encourage you to ask questions, it’s unlikely that they will be replied to directly here, as often Soba-related stuff can get technical, and requires discussion with the rest of the team to comment on (which can take time).
Conclusion
ok bye, see you on March 13!!!