Pickup Respawn Zone

When a pickup enters a trigger zone, it returns to its original location.

Category: Interaction Systems

UdonSharp Script

using UdonSharp;
using UnityEngine;
using VRC.SDKBase;
using VRC.Udon;

public class PickupRespawnZone : UdonSharpBehaviour
{
    public VRC_Pickup pickup;

    private Vector3 startPos;
    private Quaternion startRot;

    private void Start()
    {
        if (pickup == null) return;
        startPos = pickup.transform.position;
        startRot = pickup.transform.rotation;
    }

    public override void OnPlayerTriggerEnter(VRCPlayerApi player)
    {
        // Not used for pickup collision logic.
    }

    private void OnTriggerEnter(Collider other)
    {
        if (pickup == null) return;
        if (other.gameObject != pickup.gameObject) return;

        VRCPlayerApi localPlayer = Networking.LocalPlayer;
        if (localPlayer != null)
        {
            Networking.SetOwner(localPlayer, pickup.gameObject);
        }

        pickup.Drop();
        pickup.transform.SetPositionAndRotation(startPos, startRot);
    }
}

License:

Setup

  1. Add script to a trigger volume object.
  2. Set collider to Is Trigger.
  3. Assign your VRC_Pickup component.

Extra Tips and Troubleshooting

Tips and Tricks

  • Keep reset zone visible or signposted to help users recover lost items.
  • Size trigger generously for easier pickup recovery.

Troubleshooting

  • If no reset occurs, verify trigger collider settings and reference to pickup component.

Related Content

Prefab Setup Notes

Import the prefab or script into a throwaway test scene before adding it to a live world. Confirm inspector references, ownership behavior, sync, triggers, UI hooks, and audio or object links before moving it into the production scene.

Testing Checklist

  • Test once as a local player and again with a second client or late joiner if the behavior can affect more than one player.
  • Confirm ownership, sync, trigger zones, UI references, and audio or object references are assigned intentionally.
  • Check desktop and VR interaction distance so players can actually use the feature in context.
  • Keep a backup of the scene before changing prefabs, UdonBehaviours, or serialized references.

Related Pages

Official References