Skip to main content

Release 3.10.4-beta.2

Momo the Monster
VRChat Developer

Summary

SDK Version 3.10.4-beta.2 brings VRCTween, box-shaped Contacts, and global PhysBone colliders.

warning

These features are currently in Open Beta!

New Udon APIs and components require client version 2026.2.2 (open-beta branch) or higher.

Please report any issues you encounter on our open-beta feedback board.

Features

  • Added VRCTween, which exposes select functionality from the powerful DOTween library to Udon.

    • You can now animate positions, rotations, scales, and more with a few lines of code.
    • Virtual tweens provide advanced interpolation functionality and more for experienced creators.
    • Includes cancelable delayed calls. VRCTween.DelayedCall works like SendCustomEventDelayedSeconds, but returns a handle you can Kill() to cancel.
    • All functionality is compatible with UdonSharp and Graph.
  • In avatar projects, you can now mark PhysBone colliders as global. This allows them to collide with PhysBones in worlds or other avatars (if they also allow collision against avatars).

    • This is the same system that already powers your finger and hand colliders for headpatting touching PhysBones.
    • You can mark up to four additional PhysBone colliders as global per avatar.
  • Contact senders and contact receivers on avatars and worlds can now be box shaped.

    • You can adjust the width, height and depth of the box shape independently.
    • Proximity can be calculated as either distance from the center like other contact types, or distance from a face of the box.
  • Exposed PhysBone colliders in worlds to Udon, allowing their properties to be changed dynamically via Udon scripts.

    • After modifying a VRCPhysBoneCollider, you need to call ApplyConfigurationChanges() on it to apply the changes, similar to how PhysBone components behave.

Fixes & Changes

  • Gizmo previews for avatar fingers in the SDK should now exactly match the shapes in the client.
    • Previously, the capsules shown in the SDK were from tip-to-tip. They're now correctly shown as center-to-center.
  • The SDK now highlights that plane-shaped physbone colliders don't support global collision.
  • All SDK projects now enforce shader chunking at a size of 4 MB each.
    • This allows content to be loaded more efficiently, especially for shaders with many variants.
  • Updates to VRChat Data Containers:
    • VRCDataList and VRCDataDictionary can now be constructed with a custom capacity.
    • VRCDataDictionary now exposes an EnsureCapacity() method that ensures the dictionary can hold at least the specified number of elements.
  • GameObjects are now automatically moved to the Pickup layer again when adding a VRCPickup component to them.
  • Fixed an issue where UdonSharp could miscompile enum usage with a specific amount of members.
  • UdonSharpBehaviour now implements IUdonEventReceiver, saving you some type casting.

Fixes in 3.10.4-beta.2

  • Fixed VRCTween's integration into the Worlds SDK.

Known Issues

  • In rare cases, you may see an "All pipe instances are busy" error while building. This is a Unity issue - restarting your editor and trying again should fix it.