Add MasterLocal and OwnerLocal trigger types for trigger system
closed
HardLight670
Instigator Local triggers are convenient for setting up buttons or world items that only some people can see, but it is currently impossible to limit this behavior based on owner or master player types. Since all the currently available Owner and Master triggers are broadcasted by default, any actions executed in those triggers will be seen by everyone.
A simple use case for this is a button that only appears for the room master. Ideally, you would set up an OnEnable MasterLocal trigger in your world that shows the button only for the master, but right now that is currently impossible. Setting the trigger to Local will have it activate for everyone because they all observe the OnEnable event. Setting it to any of the current Master types will simply broadcast the enable event to everyone in the room.
As a result, I would like to see OwnerLocal and MasterLocal type triggers added to the trigger system. This would also bring the trigger system up to parity with the SendRPC event which already supports these as target types.
Log In
Tupper - VRChat Head of Community
closed
Closing.
I'm not actually sure if we ever did this, but we do not have plans on adding any more features to SDK2. It is deprecated and in maintenance mode.
Ruuubick - Designer
interested
Helpful Helper
Ruuubick - Designer:
Could we maybe get "Others" as well, while you're at it?
The Canny I made for that:
CyanLaser
For those who are curious on how to setup Master/Owner local, here is the wiki page on it. There are 3 different methods right now, but only one is documented on this page currently.
LuiCat
This is a nice solution in case that one needs to distinguish between the owner of the object with other players without the context of "who was the one that triggered ownership transfer".
In the sense of parallel programming, because the ownership of an object (or the host of a world) is unique, by using this ownership-testing local trigger, we are able to solve a classic problem in distributed computing called "consensus", that is, to make every remote to agree on the same result.
If we are allowed to selectively trigger triggers based on the two types of consensuses that we have, namely owners of objects and the master of the room, we can avoid a lot of problems that require a consensus to be solved.
EDIT:
I've uploaded a short video demonstrating what could be a problem without owner-local triggers and how this kind of trigger could be useful. In the video, I made a sentry that detects the first player that step into its range, however, it is possible that several players have themselves detected as this "first one" locally, this is due to current broadcasted triggers cannot effectively lead to a consensus between players. As the ownership for a synchronized object by its behavior is a consensus, owner-local triggers are an obvious solution as they make effective uses of this consensus result.
The video here:
(warning: heavy accent)
Guribo
+1 Something like ExecuteOnMasterOnly/ExecuteOnOwnerOnly would be very nice. Similar to the way the SendRPC works. Please allow us to send Trigger calls to targets so that they get executed there instead of only locally or locally + broadcasted. Something with layers as mentioned by Cygnos would be good.
CyanLaser
MasterLocal and OwnerLocal are possible now through a combination of custom triggers, but it would be better to have this option built into the sdk instead of working with janky systems.
LuiCat
CyanLaser: Hi Cyan, I'm interested in the details of this janky-but-at-least-working system, and I'd like to know if it is by setting any game objects active/inactive when someone triggers ownership transfer?
C
Cygnos
It will be easier if thay add some layer system and you can select multiple layers. Like local and master.
Shelfen
This will greatly help as the Animation Syncs only syncs from master, and since the variable updates is sent as broadcast to let the master get the updates it would trigger animations twice, this is less network intensive then broadcasting every state of an animator to sync everyone.
This helps us create more interesting systems that can be used alongside the world creation instead it is now limited because of network lag from to many brodcasts.
It is normal to send updates to the "host/master" in most games so that the gameplay can sync correct.
Wheathn
Also Others broadcast type for triggers.
synqark
This is nice suggestion to me.
I want to shoot some objects by SpawnObject but there is no way to distinguish Spawn owner and others now.
Load More
→