Quick answer: Godot 4 multiplayer disconnecting spectator clients on certain RPCs? Spectators have no authority; RPCs from them trigger authority mismatch - guard with multiplayer.is_server or use any_peer.

Spectator client tries to call a 'request_state' RPC; server kicks them.

Use @rpc("any_peer") for spectator-callable

RPCs that any peer (including spectators) can call. Server filters via custom logic.

Or check role

Server-side: if multiplayer.get_remote_sender_id() != allowed_role: return. Drops the RPC; doesn't kick.

Document RPC authorities

Per-RPC: who can call. The matrix is small; document it.

“RPC authority is a security model. Misconfigured = kicks.”

Spectator scenarios in multiplayer expose authority bugs. Test spectator paths early.

Related reading