VRCObjectSync'ed objects can become lagged when transferred
complete
FairlySadPanda
Use the following world to test. I advise using three clients, ideally with three remote players, and use the two non-instance owners to do the test.
To reproduce:
- Find the two buttons in the world that spawn pickups: a sword or a gun. You can use these to spawn up to about 100 pickups.
- As a remote player, not the instance owner, spawn a pickup. Pick it up and hold it.
- Have another non-owner take the pickup out of your hand.
Expected Behaviour:
The underlying VRCObjectSync should sync about as well when commanded by the new owner.
Actual Behaviour:
The ObjectSync is heavily lagged. The effect is that the pickup looks like it's flying behind the player like a drone, rather than being held in their hand.
Additional Notes:
This appears to not occur if you drop the pickup, and then your friend picks it up from the floor.
Log In
Phasedragon
updated the status to
complete
There's two issues here:
First is that a VRCObjectSync that is not held will have
slightly
more latency than when it is held. At the moment, this is an intentional limitation of object sync. If that is ever improved, that will be classified as a feature request not a bug fix. It should also probably have it's own separate canny.The second issue here is that object sync used to have
significantly
more latency for a moment after transferring ownership. This issue was fixed in 2022.1.1. For that reason I am marking this as complete.-Udon synced objects are now less likely to rubber-band when transferring ownership
FairlySadPanda
This is still a notable issue: see You Are the Detectives #1 for magical floating objects that float behind their holder for up to 5 seconds. :(
Momo the Monster
updated the status to
tracked
FairlySadPanda
Technical notes: What I'm doing is that there's an owned VRCObjectSync that is
not
on the pickup object, but instead on a child object. When you hold the pickup, you own the sync object, but for everyone else you tell the child object sync to be the parent of a clone of the pickup. Holding the pickup inverts the syncer-pickup relationship for everyone.I'm unsure why this is happening, but this level of bad sync is unusually bad by VRC standards.