Create a Post
Title
Details
16
Ownership temporarily breaks when joining a world as your "first" world on that session and the owner is not master
under review
Test WorldID: wrld_e9c7f73c-1bc7-477c-a1b4-fb6ac4df264b This world currently only contains one UdonBehaviour which is an "Empty" Graph on a VRC_Pickup that has "Synchronize Position" checked. HOWEVER THIS BUG EFFECTS ALL WORLDS INCLUDING SDK2! Every player that joins the world via direct means* will see the master as the owner of the pickup, regardless of whether someone else has become owner, before they joined. *This can be either via launch parameters that you set to a specific instance that already contains players, or via the website features/join links. This seems to be what causes the issue. When joining the first world, it seems that the network cannot fully initialize something, causing ownership to break. To reproduce the problem join the instance with two clients and wait until they have fully loaded. Let the client who has joined last (non-master) pickup the cube. Then join the instance with a third client. Now the third client will see the master as the owner of the pickup, despite the first and second client seeing the second client as the owner. This will only update if either the first or third client pickup the cube, or if the third client rejoins the same instance. This shows what happens to the Pickup (I have removed the debugging canvas you can see in the video, however the problem still persists) https://imgur.com/a/tCuKIuk Similar/Related Canny: https://vrchat.canny.io/vrchat-udon-closed-alpha-bugs/p/owner-information-is-not-correctly-synced-to-new-players-when-there-are-many-udo
3
30
Synced strings over a certain length will cause an ArgumentOutOfRangeException
- Name of the VRCSDK package you have imported. VRCSDK3-2020.03.21.12.04 - Name of the Udon SDK package you have imported. UDONSDK-2020.03.21.12.24 - Version/build of VRChat you’re using to test, if necessary. Latest open beta. (906) - A general description of the bug you’re encountering. Attempting to send a long string, like "Trip,Bond,Diamond,Cap,Copper,Canada,Ray,Circle,Centaur,Deck,Dwarf,Wind,Arm,Seal,Pipe,Pyramid,Nail,Amazon,Queen,Theater,Screen,Jupiter,Dress,Game,Whale," over the network via synced vars will return the following error: 2020.03.21 21:33:39 Error - [FlatBufferNetworkSerializer] Caught ArgumentOutOfRangeException: Non-negative number required. Parameter name: count at System.Text.UTF8Encoding.GetString (System.Byte[] bytes, System.Int32 index, System.Int32 count) [0x00000] in <00000000000000000000000000000000>:0 at DŽDžDžDŽDžDžDŽDžDŽDŽDžDŽDžDžDŽDŽDŽDžDžDŽDžDžDžDžDžDžDŽDŽDžDžDžDŽDžDžDžDŽDžDžDŽDžDŽDžDŽDŽDžDžDž.DŽDžDŽDžDŽDŽDŽDžDžDžDžDžDžDžDžDžDŽDžDžDžDžDŽDŽDŽDžDŽDžDŽDŽDžDžDžDŽDžDžDžDŽDŽDžDŽDŽDžDŽDŽDžDŽDŽ (System.Int32 DžDžDžDŽDŽDžDžDŽDžDžDžDŽDŽDžDŽDžDŽDŽDŽDžDžDŽDŽDŽDžDžDžDžDžDžDŽDŽDŽDžDŽDŽDžDŽDžDŽDžDžDŽDžDŽDžDŽ, System.Int32 DŽDŽDžDŽDŽDžDžDŽDžDŽDžDŽDžDŽDžDŽDŽDžDžDŽDžDŽDŽDŽDžDžDžDŽDŽDžDžDŽDŽDŽDžDŽDŽDŽDŽDŽDžDžDŽDŽDŽDžDž) [0x00000] in <00000000000000000000000000000000>:0 at VRC.Networking.UdonSync.DŽDŽDžDŽDŽDžDžDžDŽDžDŽDŽDžDžDžDžDžDŽDžDžDŽDŽDŽDŽDžDžDŽDŽDŽDžDžDŽDžDŽDžDžDžDŽDŽDžDžDžDŽDžDŽDŽDž (DžDŽDŽDŽDžDŽDŽDŽDŽDŽDŽDŽDŽDŽDžDŽDžDžDžDžDžDžDžDžDžDŽDŽDžDžDžDžDžDžDŽDŽDŽDžDžDžDŽDžDžDŽDžDžDžDŽ DŽDŽDžDžDŽDžDŽDžDžDŽDŽDŽDŽDŽDŽDŽDžDžDŽDŽDŽDŽDžDžDžDžDžDžDŽDŽDžDŽDŽDŽDžDŽDŽDŽDžDžDŽDžDžDŽDžDŽDŽ, System.Int32 DŽDžDžDŽDžDŽDŽDŽDžDžDžDžDŽDžDžDŽDžDžDŽDžDŽDŽDŽDŽDžDžDŽDŽDŽDŽDŽDžDžDŽDŽDŽDžDžDžDŽDžDŽDŽDŽDŽDžDž, System.Type DžDŽDŽDŽDŽDŽDŽDŽDžDžDžDžDžDŽDžDžDžDŽDŽDŽDŽDžDžDžDŽDžDžDžDžDŽDžDžDžDŽDžDŽDžDŽDŽDžDžDžDŽDŽDŽDŽDž) [0x00000] in <00000000000000000000000000000000>:0 at VRC.Networking.UdonSync.DžDŽDŽDžDŽDŽDžDŽDžDžDŽDžDŽDŽDŽDŽDžDŽDžDžDŽDžDžDžDžDžDžDžDŽDžDžDžDžDŽDžDŽDžDŽDŽDžDŽDŽDŽDžDžDŽDŽ (DžDžDŽDžDžDžDžDŽDŽDŽDŽDŽDŽDžDžDŽDŽDžDŽDŽDŽDŽDžDžDžDŽDžDžDŽDžDŽDžDŽDŽDžDžDŽDžDŽDžDŽDžDžDŽDžDžDŽ DŽDŽDžDžDžDŽDŽDžDžDžDŽDŽDžDŽDŽDŽDŽDžDžDŽDžDžDžDŽDŽDŽDŽDŽDŽDžDŽDžDŽDžDžDŽDŽDŽDžDŽDŽDŽDŽDŽDŽDŽDŽ, System.Int32 DžDŽDŽDŽDŽDŽDŽDžDŽDžDžDŽDžDžDŽDŽDŽDžDŽDŽDžDžDžDžDžDŽDžDŽDžDŽDŽDžDžDžDžDŽDŽDŽDžDŽDžDŽDžDŽDŽDŽDž, System.Single DžDžDŽDžDŽDžDŽDžDŽDŽDžDŽDŽDžDžDŽDŽDžDŽDŽDŽDŽDŽDŽDžDŽDŽDžDŽDžDŽDŽDžDžDžDžDŽDžDŽDŽDŽDžDŽDŽDŽDŽDž) [0x00000] in <00000000000000000000000000000000>:0 at VRC.Networking.FlatBufferNetworkSerializer.DŽDžDŽDŽDžDžDžDžDŽDžDŽDŽDŽDŽDŽDžDžDŽDžDžDžDŽDŽDžDžDŽDŽDŽDŽDŽDŽDžDŽDŽDžDŽDŽDžDžDžDŽDŽDžDŽDžDŽDž (ExitGames.Client.Photon.EventData DŽDŽDŽDžDŽDŽDžDŽDžDžDžDŽDžDžDŽDžDžDžDžDŽDŽDžDŽDŽDŽDŽDŽDŽDžDžDŽDžDŽDžDžDžDžDžDžDžDŽDžDžDžDžDžDž) [0x00000] in <00000000000000000000000000000000>:0 at NetworkManager.DŽDžDŽDŽDžDžDžDžDŽDžDŽDŽDŽDŽDŽDžDžDŽDžDžDžDŽDŽDžDžDŽDŽDŽDŽDŽDŽDžDŽDŽDžDŽDŽDžDžDžDŽDŽDžDŽDžDŽDž (ExitGames.Client.Photon.EventData DŽDŽDŽDžDŽDŽDžDŽDžDžDžDŽDžDžDŽDžDžDžDžDŽDŽDžDŽDŽDŽDŽDŽDŽDžDžDŽDžDŽDžDžDžDžDžDžDžDŽDžDžDžDžDžDž) [0x00000] in <00000000000000000000000000000000>:0 at UnityEngine.AudioClip+PCMReaderCallback.Invoke (System.Single[] data) [0x00000] in <00000000000000000000000000000000>:0 at DŽDŽDžDžDžDžDžDžDžDžDžDžDŽDžDžDŽDžDŽDžDŽDŽDŽDžDžDžDŽDŽDŽDŽDŽDŽDŽDžDŽDžDžDžDžDžDžDŽDžDžDžDžDŽDž.OnEvent (ExitGames.Client.Photon.EventData DŽDŽDŽDžDŽDŽDžDŽDžDžDžDŽDžDžDŽDžDžDžDžDŽDŽDžDŽDŽDŽDŽDŽDŽDžDžDŽDžDŽDžDžDžDžDžDžDžDŽDžDžDžDžDžDž) [0x00000] in <00000000000000000000000000000000>:0 at DŽDžDžDŽDŽDŽDŽDžDŽDŽDžDŽDžDŽDžDŽDŽDžDŽDžDŽDžDžDŽDŽDžDžDŽDŽDŽDŽDŽDŽDžDžDžDŽDžDŽDžDŽDŽDŽDžDŽDžDŽ.OnEvent (ExitGames.Client.Photon.EventData DŽDŽDŽDžDŽDŽDžDŽDžDžDžDŽDžDžDŽDžDžDžDžDŽDŽDžDŽDŽDŽDŽDŽDŽDžDžDŽDžDŽDžDžDžDžDžDžDžDŽDžDžDžDžDžDž) [0x00000] in <00000000000000000000000000000000>:0 at ExitGames.Client.Photon.PeerBase.DeserializeMessageAndCallback (ExitGames.Client.Photon.StreamBuffer stream) [0x00000] in <00000000000000000000000000000000>:0 at ExitGames.Client.Photon.EnetPeer.DispatchIncomingCommands () [0x00000] in <00000000000000000000000000000000>:0 at ExitGames.Client.Photon.PhotonPeer.DispatchIncomingCommands () [0x00000] in <00000000000000000000000000000000>:0 at DŽDŽDŽDžDžDžDŽDžDžDŽDŽDŽDžDžDŽDžDŽDŽDŽDžDžDžDŽDŽDžDŽDŽDžDŽDŽDŽDžDŽDŽDŽDžDŽDžDžDžDŽDžDŽDŽDžDŽDŽ.DispatchIncomingCommands () [0x00000] in <00000000000000000000000000000000>:0 at Photon.Pun.PhotonHandler.FixedUpdate () [0x00000] in <00000000000000000000000000000000>:0 Sending a shorter string, like "Trip,Bond,Diamond,Cap,Copper," works without issue on the same world. - Step by step guide how to replicate the bug. Will get this if needed. --- This could just be a limitation of syncing strings - if there's a hardware limit, can we have an error letting us know that the string is too long to be sent?
3
Load More