Work in progress
Godot documentation is being updated to reflect the latest changes in version
4.0. Some documentation pages may
still state outdated information. This banner will tell you if you're reading one of such pages.
The contents of this page are up to date. If you can still find outdated information, please open an issue.
Inherits: MultiplayerAPI < RefCounted < Object
High-level multiplayer API implementation.
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.
clear ( )
complete_auth ( int id )
disconnect_peer ( int id )
send_auth ( int id, PackedByteArray data )
send_bytes ( PackedByteArray bytes, int id=0, TransferMode mode=2, int channel=0 )
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.
bool allow_object_decoding =
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.
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 =
If set to a value greater than
0.0, the maximum amount of time peers can stay in the authenticating state, after which the authentication will automatically fail. See the peer_authenticating and peer_authentication_failed signals.
bool refuse_new_connections =
true, the MultiplayerAPI's MultiplayerAPI.multiplayer_peer refuses new incoming connections.
NodePath root_path =
The root path to use for RPCs and replication. Instead of an absolute path, a relative path will be used to find the node upon which the RPC should be executed.
This effectively allows to have different branches of the scene tree to be managed by different MultiplayerAPI, allowing for example to run both client and server in the same scene.
bool server_relay =
Enable or disable the server feature that notifies clients of other peers' connection/disconnection, and relays messages between them. When this option is
false, clients won't be automatically notified of other peers and won't be able to send them packets through the server.
Note: Changing this option while other peers are connected may lead to unexpected behaviors.
Note: Support for this feature may depend on the current MultiplayerPeer configuration. See MultiplayerPeer.is_server_relay_supported.
void clear ( )
Clears the current SceneMultiplayer network state (you shouldn't call this unless you know what you are doing).
Error complete_auth ( int id )
Mark the authentication step as completed for the remote peer identified by
id. The MultiplayerAPI.peer_connected signal will be emitted for this peer once the remote side also completes the authentication. No further authentication messages are expected to be received from this peer.
If a peer disconnects before completing authentication, either due to a network issue, the auth_timeout expiring, or manually calling disconnect_peer, the peer_authentication_failed signal will be emitted instead of MultiplayerAPI.peer_disconnected.
void disconnect_peer ( int id )
Disconnects the peer identified by
id, removing it from the list of connected peers, and closing the underlying connection with it.
PackedInt32Array get_authenticating_peers ( )
Returns the IDs of the peers currently trying to authenticate with this MultiplayerAPI.
Error send_auth ( int id, PackedByteArray data )
Sends the specified
data to the remote peer identified by
id as part of an authentication message. This can be used to authenticate peers, and control when MultiplayerAPI.peer_connected is emitted (and the remote peer accepted as one of the connected peers).
Error send_bytes ( PackedByteArray bytes, int id=0, TransferMode mode=2, int channel=0 )
Sends the given raw
bytes to a specific peer identified by
id (see MultiplayerPeer.set_target_peer). Default ID is
0, i.e. broadcast to all peers.