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.


Inherits: MultiplayerPeer < PacketPeer < RefCounted < Object

A simple interface to create a peer-to-peer mesh network composed of WebRTCPeerConnection that is compatible with the MultiplayerAPI.


This class constructs a full mesh of WebRTCPeerConnection (one connection for each peer) that can be used as a MultiplayerAPI.multiplayer_peer.

You can add each WebRTCPeerConnection via add_peer or remove them via remove_peer. Peers must be added in WebRTCPeerConnection.STATE_NEW state to allow it to create the appropriate channels. This class will not create offers nor set descriptions, it will only poll them, and notify connections and disconnections.

When creating the peer via create_client or create_server the MultiplayerPeer.is_server_relay_supported method will return true enabling peer exchange and packet relaying when supported by the MultiplayerAPI implementation.

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.



add_peer ( WebRTCPeerConnection peer, int peer_id, int unreliable_lifetime=1 )


create_client ( int peer_id, Array channels_config=[] )


create_mesh ( int peer_id, Array channels_config=[] )


create_server ( Array channels_config=[] )


get_peer ( int peer_id )


get_peers ( )


has_peer ( int peer_id )


remove_peer ( int peer_id )

Method Descriptions

Error add_peer ( WebRTCPeerConnection peer, int peer_id, int unreliable_lifetime=1 )

Add a new peer to the mesh with the given peer_id. The WebRTCPeerConnection must be in state WebRTCPeerConnection.STATE_NEW.

Three channels will be created for reliable, unreliable, and ordered transport. The value of unreliable_lifetime will be passed to the "maxPacketLifetime" option when creating unreliable and ordered channels (see WebRTCPeerConnection.create_data_channel).

Error create_client ( int peer_id, Array channels_config=[] )

Initialize the multiplayer peer as a client with the given peer_id (must be between 2 and 2147483647). In this mode, you should only call add_peer once and with peer_id of 1. This mode enables MultiplayerPeer.is_server_relay_supported, allowing the upper MultiplayerAPI layer to perform peer exchange and packet relaying.

You can optionally specify a channels_config array of