Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

SceneMultiplayer

Inherits: MultiplayerAPI < RefCounted < Object

High-level multiplayer API implementation.

Description

This class is the default implementation of MultiplayerAPI, used to provide multiplayer functionalities in Godot Engine.

This implementation supports RPCs via Node.rpc and Node.rpc_id and requires MultiplayerAPI.rpc to be passed a Node (it will fail for other object types).

This implementation additionally provide SceneTree replication via the MultiplayerSpawner and MultiplayerSynchronizer nodes, and the SceneReplicationConfig resource.

Note: The high-level multiplayer API protocol is an implementation detail and isn't meant to be used by non-Godot servers. It may change without notice.

Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.

Properties

bool

allow_object_decoding

false

Callable

auth_callback

Callable()

float

auth_timeout

3.0

int

max_delta_packet_size

65535

int

max_sync_packet_size

1350

bool

refuse_new_connections

false

NodePath

root_path

NodePath("")

bool

server_relay

true

Methods

void

clear ( )

Error

complete_auth ( int id )

void

disconnect_peer ( int id )

PackedInt32Array

get_authenticating_peers ( )

Error

send_auth ( int id, PackedByteArray data )

Error

send_bytes ( PackedByteArray bytes, int id=0, TransferMode mode=2, int channel=0 )


Signals

peer_authenticating ( int id )

Emitted when this MultiplayerAPI's MultiplayerAPI.multiplayer_peer connects to a new peer and a valid auth_callback is set. In this case, the MultiplayerAPI.peer_connected will not be emitted until complete_auth is called with given peer id. While in this state, the peer will not be included in the list returned by MultiplayerAPI.get_peers (but in the one returned by get_authenticating_peers), and only authentication data will be sent or received. See send_auth for sending authentication data.


peer_authentication_failed ( int id )

Emitted when this MultiplayerAPI's MultiplayerAPI.multiplayer_peer disconnects from a peer for which authentication had not yet completed. See peer_authenticating.


peer_packet ( int id, PackedByteArray packet )

Emitted when this MultiplayerAPI's MultiplayerAPI.multiplayer_peer receives a packet with custom data (see send_bytes). ID is the peer ID of the peer that sent the packet.


Property Descriptions

bool allow_object_decoding = false

  • void set_allow_object_decoding ( bool value )

  • bool is_object_decoding_allowed ( )

If true, the MultiplayerAPI will allow encoding and decoding of object during RPCs.

Warning: Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threat such as remote code execution.


Callable auth_callback = Callable()

The callback to execute when when receiving authentication data sent via send_auth. If the Callable is empty (default), peers will be automatically accepted as soon as they connect.


float auth_timeout = 3.0

  • void set_auth_timeout ( float value )

  • float get_auth_timeout ( )

If set to a value greater than