[1286] Udons not communicating between PC & Quest anymore
complete
Joered05
After the most recent VRChat update, it appears Udon Behaviors can no longer sync correctly (no events or synced variables) between PC and Quest in certain worlds.
Any players on the same platform as the master work fine, but any players on another platform do not.
Before the most recent VRChat update, everything worked fine and as intended. After VRChat updated is when these issues were first noticed.
Currently, I've only noticed these issues in Keep Running (wrld_987b7998-9e1f-4ac2-b428-718e20f78060), but I wouldn't be shocked if other worlds are experiencing this too.
In Keep Running specifically, the highest Udon (The Enemy itself) in the hierarchy appears to sync fine across platforms, but all others do not. I attempted to regenerate the network IDs using VRChat Network ID Utility and re-upload, but the issue persisted.
Log In
A
complete
MyroP
I can confirm that I have the same issue in my "Circuit Master" world
Joered05
I have some good news! Turns out, the issue was caused by excluding an Udon script from the Quest version by setting it's tag to EditorOnly. By having PC Players have one additional script, (I believe) the Network IDs all got shifted by one and couldn't sync correctly. The Udon Behavior's synchronization was even set to None.
I did a little test to confirm this. In the photo, I used the Debug Tools (RShift + ` + 8) to show the Udon's network information. I did a Build & Test with the script tagged as EditorOnly, changed absolutely nothing other than changing the scripts tag from 'EditorOnly' to 'Untagged,' then did another Build & Test. That changed the Network IDs and broke syncing. This script also had it's Synchronization set to None.
Personally, I feel this behavior can be a bit confusing. If possible, I think it would be better if EditorOnly scripts still affected the Network IDs (so it doesn't break syncing) but weren't included in the build. However, I don't believe this behavior is intended; in previous VRChat versions, Udon's could sync just fine if a behavior was missing.
Emmα
Joered05: I too use EditorOnly to swap out things between PC and Quest builds. Why have assigned NetworkIDs if they dont stay the same when you rebuild the world and disabling a couple things? This worked in the past for me, but just suddenly broke. Also, looking through how the scene ids are regenerated, it looks like they go by alphabetical order on the scene list. So once it picks the first game object in the top hierarchy, it then does alphabetical inside that game object's children objects... and so on. I wonder if repositioning things would would help me at all since my items that I editorOnly are not intractable, so they dont have to have synced ids...
Emmα
Joered05: Yes, moving everything that I didn't care about being synced (since they were run on the local client and not sending network events anyway) to a z_UnsyncedToggles on the main hierarchy and making sure my video player/audiolink stuff was in a 0001_VideoStuff gameobject on the main hierarchy solved my sync issue. Thank you for figuring this out.
Exoticlex2
Joered05: so with this outcome is it a simple fix or do have to rework the assets/objects and fix them to between both platforms or do you have to change those are causing it to change the syncing.
Emmα
Exoticlex2: What I did to fix it, I moved my objects around so my EditorOnly items were after everything else in the Hierarchy. If you see here on the root hierarchy, I created an empty object that started with a z- and moved all my editorOnly items there. That let everything else that is synced between the two installs to get their scene IDs first, then these are out of sync. I then recreated the network ids in the scene, and uploaded both versions. This worked for me successfully tonight.
Joered05
Emmα: Thank you for sharing how you fixed it and how scene IDs are generated! I'll follow your advice and move my PC Only Udons to a special "Z_OutOfSync" named gameobject to ensure their network IDs are at the very end of the list. Nice job finding such a simple fix!
Reimajo
Emmα: Ok, but that's a weird (undocumented) change from VRChat, because they once went by hierarchy order which makes a lot more sense than going my name order. Plus it would be compliant with the Photon documentation.
Emmα
Reimajo: I dont know what to tell you... This is a totally different scene that I just deleted all the IDs from and regenerated. Then clicked on the first object in the scene ID list, and it shows on the hierarchy where it is... which is not the top gameobject in the scene... Simple way for you to test too. That's how I figured it out.
Emmα
I am also seeing this problem in a world that was working before the patches. This world runs out of a single scene, so I should not have any ID sync issues. Today, to make sure, I deleted the network IDs, then recreated them, uploaded PC, switched to Android, and uploaded Android, and things such as video player sliders, and audiolink controller sliders are out of sync between PC and Quest. The Test world ID I just upload this to and tested from is: wrld_42de7dfb-613e-48b6-84a5-0f0b2d3009da while the original, uploaded and working before the patches is wrld_6321a517-2bd2-4943-b3b2-00dff53f57e4 Attached is a gif from the PC perspective, while a quest used changed the Gain control (left/right slider right under the 3 colored areas) and the left side colored areas edge slider. It moves the Yellow and Green area sliders instead of where the Quest user was doing it. This is causing other things to be out of sync too, such as video players.
T
TheDoctor26
We are running into this issue in our world as well. Like Reimajo, we made sure network IDs were assigned identically between the PC and Quest versions of our project, but we're still having sync problems.
_
_tau_
tracked
Reimajo
We have the same issue in our world. We used the new feature to manually assign network IDs between two different Unity projects, so I assume this new feature is what broke.