[845] Spawning a complicated object breaks broadcasting within the spawned object
tracked
CyanLaser
I have an object which is very complicated with lots of children objects and triggers. When spawning this object, broadcasts fail for remote players.
In remote player's log, it will say that the object cannot be found:
2019.08.31 22:59:46 Error - [VRC_EventLog] Could not find target /Frank0(Clone)/NPC/AIThirdPersonController/Logic for [ActivateCustomTrigger/AlwaysBufferOne w: 1 s: enable_arm_l_unitychan_local i: 1 f: 0 b: Unused B: 0 p: /Frank0(Clone)/NPC/AIThirdPersonController/Logic]
Object sync will work as expected, but only triggers will fail.
Note this was bug introduced in the update at the end of March.
sample world:
wrld_a03077de-aad0-4006-958d-a6546d9210fa
There is only one interact which is the lever. Click it and master will see a weird Unity Chan spawn and walk around. All other players in the room will see a skeleton teleport (not walk). This is because the always buffer one that sets the limbs does not execute for remote players. The Master Buffer One to enable the character to walk also never executes.
Log In
CyanLaser
This is broken again on open beta build 884. One of the previous open beta builds did fix this though.
Tupper - VRChat Head of Community
CyanLaser: Can you explain what's broken? Same example world as given in the OP?
CyanLaser
Tupper - VRChat Head of Community: Yes I tested on the example world in the OP.
The log is spamming an error every frame for clients that didn't spawn the object.
[FlatBufferNetworkSerializer] Caught ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Tupper - VRChat Head of Community
CyanLaser: Understood, thanks for the info. Looking into it.
Lyuma
Tupper - VRChat Head of Community: I did some testing with broadcast triggers from spawned objects, and found that they do work in many cases, but the first master to join my test world is unable to broadcast. I also found one of my triggers that refuses to broadcast, but I'm assuming that bug is my fault since I hacked this world up for the canny without properly testing.
The related canny is here: https://vrchat.canny.io/open-beta/p/884-first-master-unable-to-broadcast-triggers-from-spawned-objects
CyanLaser
On the 2018 Open Beta (Currently build 878) this is partially resolved. While the initial broadcasts seem to work, there are times when later broadcasts from the same group of objects require you to be near or looking at it. Using the same world, grabbing the remote and clicking some of the buttons may not always send/receive if the remote isn't near you. I did not get the logs for this so I'm not sure on what happened exactly.
Related canny
Lyuma
Hi,
I have a world which spawns a pickup with several triggers, almost all triggers are local...but when you use the pickup, it executes an AlwaysUnbuffered trigger and uses the object's position to do something.
The bug I am seeing is: When I do an AlwaysUnbuffered trigger inside the spawned object, all other people in the world will execute that trigger on an arbitrary one of the objects. The local user's prefab always works.
Going on the log, it looks like spawned objects of a prefab named "MyPrefab" come into the scene at the path "/MyPrefab (Clone)" (as if unity's Instantiate(prefab) function was called in the scene)... and we all know what travesties happen when you have two trigger objects with the same name or path, so that seems like an explanation of why triggers are getting mixed up.
Again, for me broadcasting is not broken: broadcast triggers do work, and basically everything works perfectly except the AlwaysUnbuffered trigger goes to the wrong spawnedobject, so the action happens at the wrong player's position.
For reference--I don't think it's relevant to the bug, but I'll post here in case it is--my object is also "complicated": the object has a few nested Object Syncs and a few local triggers as well strewn throughout...and the AlwaysUnbuffered trigger happens exactly on one of the nested Object Sync objects after being forwarded through a few local triggers and a UIButton "BroadcastMessage" Interact. (This complexity is done to allow a mode switch which enables one local trigger and on Use, broadcast the message to all local child triggers to find the one that is enabled...which then forwards it to an AlwaysUnbuffered trigger) I have not tested a simpler object.
Ruuubick - Designer
tracked
danly
I haven't investigated too deeply, but I think the shader in that world has issues with Unity 2018.
Fionna
danly: probably cubed
danly
The sample world is rad.
Jar
This problem has been hitting me especially hard as I work on a new Murder world since it uses spawned prefabs with broadcasted triggers.