[1247] ObjectSynced GameObjects are not synced for late joiners anymore
needs more information
MyroP
Since the latest update, I noticed that Object Synced components are not synced for late joiners anymore, but it will sync again once someone grabs the GameObject.
To reproduce it :
- Place an object synced GameObject somewhere in the world (let's say from location A to location B, location A being the original spawn point)
- Rejoin the instance (someone else needs to stay in the world)
- After rejoining, the object synced GameObject is at the original position for the late joiner (location A), but the person in the instance still sees it at location B.
Log In
Shiro K
I remarked this too with (VRCSDK3-WORLD-2022.08.29.20.48_Public or VRCSDK3-WORLD-2022.10.12.21.07_Public):
For me, it seem's to be more random. For example: the first late joiner sees the pickups with objectsync correctly synced. But a second late joiner will see them not synced (they stays at original position). In this case, the sync fails for every pickup with objectsync on it.
Phasedragon
needs more information
I'm unable to reproduce any
new
issues with objectsync. Even in worlds with a very large number of objectsyncs, they do successfully sync with late joiners.There is a known issue that has existed for a long time now where if someone tries to move an objectsync while clogged, it does not sync. But this is not directly related to late joiners, though it can be caused by late joiners causing the master to be clogged.
That issue, and many more, will be fixed in an upcoming udon networking update. But for now, I see no regressions in current live behavior. If you think this is incorrect, please provide more details such as a video and world ID.
TaterBaiter
Phasedragon: I observed it in world ID wrld_e561ad0c-a53a-4dbe-8aef-555b22b37e3a last night. I'll try to recreate it tonight and capture it on video from both my perspective as well as a late joiner's.
Phasedragon
TaterBaiter: Late join objectsync appears to work just fine in that world.
TaterBaiter
Phasedragon: We were able to recreate it by moving some items then having the first user rejoin the world. Video below:
MyroP
Phasedragon: I wasn't able to always reproduce the issue, I would say it happened 50% of the time, I recorded a video with the latest VRChat version https://youtu.be/cACTw4mIFY8
The world I was in was "Room of the rain" https://vrchat.com/home/world/wrld_fae3fa95-bc18-46f0-af57-f0c97c0ca90a
it also happens in my world https://vrchat.com/home/world/wrld_9157c81d-24fe-402d-8ba9-2e0ae6e15fa2
Phasedragon
MyroP: I would recommend trying this again in the latest beta, as a lot about networking has changed and this bug, if it was happening, may have been fixed.
MyroP
Phasedragon: I tried with two local clients, unfortunately the issue still seem to happen, but I think I noticed an improvement.
Here's a video showing the issue with two local clients https://www.youtube.com/watch?v=KXl-muabsr4, as we can see two cups didn't got synced, I was on version 1255.
I still need to test it with other players.
MyroP
Phasedragon: I did some further testings and I noticed a big improvement, now the issue only seem to happen when someone is joining (loading screen) while someone else is moving the GameObject, in that case the moved GameObject might not sync for the late joiner
MyroP
It seems like the issue also happen if the master changes a UdonSynced variable while someone is joining (so if the late joiner is on the loading screen), in that case the late joiner (In the example bellow the top-right client) does not get the latest values, or only partially, and there's a desync.
TaterBaiter
I've also seen this issue happen recently.