MultiplayerSynchronizer

Inherits: Node < Object

Synchronizes properties from the multiplayer authority to the remote peers.

Description

By default, MultiplayerSynchronizer synchronizes configured properties to all peers.

Visibility can be handled directly with set_visibility_for or as-needed with add_visibility_filter and update_visibility.

MultiplayerSpawners will handle nodes according to visibility of synchronizers as long as the node at root_path was spawned by one.

Internally, MultiplayerSynchronizer uses MultiplayerAPI.object_configuration_add to notify synchronization start passing the Node at root_path as the object and itself as the configuration, and uses MultiplayerAPI.object_configuration_remove to notify synchronization end in a similar way.

Properties

bool

public_visibility

true

SceneReplicationConfig

replication_config

float

replication_interval

0.0

NodePath

root_path

NodePath("..")

VisibilityUpdateMode

visibility_update_mode

0

Methods

void

add_visibility_filter ( Callable filter )

bool

get_visibility_for ( int peer ) const

void

remove_visibility_filter ( Callable filter )

void

set_visibility_for ( int peer, bool visible )

void

update_visibility ( int for_peer=0 )

Signals

  • visibility_changed ( int for_peer )

Emitted when visibility of for_peer is updated. See update_visibility.

Enumerations

enum VisibilityUpdateMode:

  • VISIBILITY_PROCESS_IDLE = 0 --- Visibility filters are updated every idle process frame.

  • VISIBILITY_PROCESS_PHYSICS = 1 --- Visibility filters are updated every physics process frame.

  • VISIBILITY_PROCESS_NONE = 2 --- Visibility filters are not updated automatically, and must be updated manually by calling update_visibility.

Property Descriptions

  • bool public_visibility

Default

true

Setter

set_visibility_public(value)

Getter

is_visibility_public()

Whether synchronization should be visible to all peers by default. See set_visibility_for and add_visibility_filter for ways of configuring fine-grained visibility options.


Setter

set_replication_config(value)

Getter

get_replication_config()

Resource containing which properties to synchronize.


  • float replication_interval

Default

0.0

Setter

set_replication_interval(value)

Getter

get_replication_interval()

Time interval between synchronizes. When set to 0.0 (the default), synchronizes happen every network process frame.


Default

NodePath("..")

Setter

set_root_path(value)

Getter

get_root_path()

Node path that replicated properties are relative to.

If root_path was spawned by a MultiplayerSpawner, the node will be also be spawned and despawned based on this synchronizer visibility options.


Default

0

Setter

set_visibility_update_mode(value)

Getter

get_visibility_update_mode()

Specifies when visibility filters are updated (see VisibilityUpdateMode for options).

Method Descriptions

  • void add_visibility_filter ( Callable filter )

Adds a peer visibility filter for this synchronizer.

filter should take a peer id int and return a bool.


  • bool get_visibility_for ( int peer ) const

Queries the current visibility for peer peer.


  • void remove_visibility_filter ( Callable filter )

Removes a peer visibility filter from this synchronizer.


  • void set_visibility_for ( int peer, bool visible )

Sets the visibility of peer to visible. If peer is 0, the value of public_visibility will be updated instead.


  • void update_visibility ( int for_peer=0 )

Updates the visibility of peer according to visibility filters. If peer is 0 (the default), all peers' visibilties are updated.