Multiplayer Processing

Event Processing Options

To synchronize an object in a multiplayer setup, one player must make a change (processing location) and send that update to the other players.
This ensures that the change is consistently applied across all players.
Unsynced objects are typically processed independently for each player.

More info about multiplayer sync

The event processing location in a multiplayer setup can be selected using an icon in the event header, which displays a menu with the following options:

Automatic (Default)

  • Automatic is the default setting and works with existing experiences in an improved way.

  • Automatic uses the best option for the event use case from the list below, typically Interactor. It processes events where the player triggered them, otherwise running at the object owner or room host (master).

  • Player state changes, spawned objects, and other player-related actions will be executed by the player who initiated the event, ensuring they see an immediate result.

  • When Sync is OFF on the object, Automatic will always use the Each Client option for processing.

  • The other options are for cases where the creator wants to optimize multiplayer game communication traffic or functionality.

Interactor

  • Processes the event where the player triggered it. If it's a system or custom event, it falls back to the Object Owner.

  • When a player interacts with a slot object of another player, the On Interaction event is executed at the player who interacted while Object Owner would process the event at the other player who holds the object.

  • Interactor is used by Automatic in most cases.

Host

  • An event set to room host will always process at the master/host player and sync from there.

  • When an event is triggered at a player which is not the host, the event is automatically forwarded to the master/host for processing using a communication call.

  • This is typically used for interactions which can happen at the same time and which need to be synced in a sequence in order to not overwrite each other.

  • For example when a variable is increased by one on an interaction click, that ensures that each click counts. Using Automatic would increase the variable for each player who clicks and the result will be synced to the others and so might overwrite each other when the second player clicks before receiving the variable update of the first player.
    there.

  • This ensures that certain events are sequenced, for example when multiple users click on something which increases a variable by 1. So far, only one of the clicks happening at the same time came through, now all will count, even when happening at the same time. Technically, in this case the OnInteraction event is forwarded to the master/host and processed there for all clients.

Object Owner

  • An event is processed at the owner of the object, which is either the host/master for scene objects or the player model, player slot object or player whose interaction spawned the object.

  • When a player interacts with a slot object of another player, the On Interaction event is executed on the other player who holds the object, while Interactor or Automatic would process it at the player who interacted.

  • When a player’s spawn hits the remote model of the other player, the collision event is executed at the other player and any results are synced back. That could cause a slight delay between the hit and the state change because of the communication lag but might be useful for some purposes.

Each Client

  • Each Client = At Each Player
    An event is processed by every player independently and as such don’t need to be synchronized between the players.

  • State changes caused by event actions are not communicated between the players when Each Client is used, similar to switching multiplayer sync OFF. In fact, turning off multiplayer sync uses the Each Client option when Automatic is set.

  • Processes at every player in parallel: cheap (does not require additional communication traffic in most cases) but might not be in sync between players.

  • Interaction events will only be started on each client / at each player when object multiplayer synchronization is ON, otherwise an interaction is only executed for the player who interacted.

  • Use this for effects and decorative objects, such as impact FX, where the exact state and position does not matter as much to reduce communication traffic.
    This can also be used for objects which should only change for the actual player who interacts, similar to HUD objects.