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.