Spokes.wiki Search About
Tech Article T1 stable source ↗ source url
Created
Updated

Godot high-level multiplayer API

Godot's own documentation for the networking layer above raw packets. Where unreal-replication replicates Actors and unity-netcode-gameobjects replicates NetworkObjects, Godot hangs the whole thing off the SceneTree: MultiplayerAPI is managed at that level, and every node has a multiplayer property pointing at the instance it is configured with. Sibling nodes can therefore sit on different network configurations, which none of the other two stacks read on 2026-08-25 offers.

The peer abstraction

MultiplayerPeer extends PacketPeer and deliberately does not serialize anything itself, so more than one implementation can sit underneath. Three ship: ENetMultiplayerPeer (the default), WebRTCMultiplayerPeer, and WebSocketMultiplayerPeer. The transport is a swap, not a rewrite.

RPCs, and the three parameters that define one

The @rpc annotation marks a function callable on other peers — "functions that can be called on other peers," in the docs' own words. Three independent axes:

Who may call it. authority means only the multiplayer authority (the server by default) can invoke it remotely. any_peer lets clients invoke it, which is how player input gets to the server.

Where it runs. call_remote runs it only on the far side; call_local runs it on both.

How it is delivered. unreliable may be lost or reordered; unreliable_ordered keeps the order and may still drop; reliable guarantees both and pays for it.

Authority is per node, and reassignable

The server holds authority by default, as peer ID 1. Any node's authority can be moved with set_multiplayer_authority(). That is the middle position between Unreal's fixed server authority and Unity's two whole-project topologies: one topology, but the authority within it is a per-node property rather than a fact about the build.

Godot is also the only one of the three whose documentation states the security obligation as an instruction to the developer: "validate RPC arguments before applying them to the game state." With any_peer available on any function, that warning is load-bearing rather than boilerplate.

netcode · unreal-replication · unity-netcode-gameobjects · godot-engine · godot-docs-tutorials · game-networking-fiedler