When a Pickup with VRCObjectSync changes ownership, its stored respawn position becomes overwritten by the position where the ownership transfer occurred. As a result, pickups respawn at incorrect locations. This occurs whether they are respawned by being dropped into the Respawn Height defined via the Scene Descriptor or via VRCObjectSync.Respawn().
Steps to Reproduce: [Video version: https://youtu.be/I20lsdUovUI ]
  1. Player A picks up an object and places it somewhere other than its original point.
  2. Player B then picks up the same object
  3. Ownership transfers to Player B, and the object’s respawn point is now replaced with the position where Player B picked it up
  4. When the object respawns, it appears at this overwritten location rather than its original spawn point