Guides

VRChat 2024.4.1p3

November 21, 2024 - Build 1537

Persistent User Data is now live!

If you haven’t had a chance to try it out on Open Beta, here are the basics:

  • The feature allows world creators to save information about individual visitors. This means that any time a user returns to any instance of a particular world, certain information can be retained.
    • There are two types of Persistent User Data: PlayerData and PlayerObjects.
      • PlayerData is a key-value database that allows Udon scripts to save and load User Data.
      • PlayerObjects are GameObjects that automatically instantiate themselves for each player. All their synced Udon variables can be persistent, if marked with a VRCEnablePersistence component.

We can’t wait to see what folks do with this feature now that it’s available to the broader VRChat community!

Persistent User Data has the potential to unlock a new world of possibilities in both progression and personalization. Have you ever wished you could provide visitors to your world with the ability to…

  • Unlock new facets of your world over longer (or multiple) sessions?
  • Customize their experience and retain their choices the next time they return?
  • Express themselves creatively in more dynamic ways?

…well, you now can!

Please share feedback here and let us know which use cases for Persistent User Data are most exciting to you, and what you think of this new feature. You can also share worlds or tools that leverage Persistent User Data on our Persistence Showcase thread, or check out what other Creators are making for inspiration!

SDK Update for Creators

To be able to create persistent worlds, you need to upgrade to the new 3.7.4 SDK version, available now in the Creator Companion.

In addition to Persistence, it also includes a few fixes for VRC Constraints and VRCJSON.

You can find the full SDK changelog, including links to the extensive Persistence Documentation, here: https://creators.vrchat.com/releases/release-3-7-4

Additional Changes for Creators

This might be new, even if you have previously used our persistence-beta branch!

  • Udon Start order is now consistent with Unity.
    • Start will be called on all active UdonBehaviours in the same frame during initialization.
    • DefaultExecutionOrder should be respected even in Start events.
    • Transform hierarchy no longer plays a role in initialization order.
  • Several fixes for VRCJSON:
    • Fixed an issue where braces inside strings can fail to deserialize.
    • Fixed an issue where empty arrays can fail to deserialize if there is whitespace between the opening and closing, such as [ ].
    • JSON which starts with a BOM (Byte Order Mark, \uFEFF) would fail to deserialize. This character will now be ignored if it is at the start of the input.

As a final note, we will update the current 2024.4.2 open-beta with persistence very soon too.