Who Has Authority? (Server Or Client) And When?

After years of working in Unreal Engine, I believe I have a fairly solid understanding of what “Authority” means. Yet, there are many instances in my development efforts currently where I think I know that the server has authority “here” and that the client has authority “here”, but I am sorely mistaken.

The following is a list of instances where the server has authority and where the client does:

  • Server has authority:
    • Within the scope of a server RPC
    • Over an actor if it is the one that spawned it
    • Singleton objects like the game mode and game state
  • Client has authority:
    • Within the scope of a client RPC
    • Over its player controller
      • Within the scope of functions bound to the input component of a pawn
    • Over an actor if it is the one that spawned it

What am I missing from this list? Any situations that come to mind in your development efforts that would help identify when the server has authority and when the client does would be extremely useful and most welcome.

What I hope to achieve from this thread is to be able to compile a master list of every possible instance where the server has authority and when the client does so that it could be easily referenced. I think that would be useful.

Thanks for reading and contributing to this thread :slight_smile: