Am I getting the Netmode and Role Correctly?

Ok, this is super confusing, but I got my understanding here:

ROLE_Authority = “this instance of the Engine is the Server”.

ROLE_SimulatedProxy = “this this instance of the Engine is one of the clients, and this object is not being controlled by a human sitting in front of this computer but could be controlled by another human sitting in front of another remote client computer”.

ROLE_AutonomousProxy = “this this instance of the Engine is one of the clients, and this object is being controlled by a human sitting infront of this computer”.

NM_Standalone = “this game instance works on it’s own and never communicate with others”

NM_Client = “this game instance is a client and communicates with a Server”

NM_DedicatedServer = “This machine is used to keep all client up to the same state, but no human is playing on this machine”

NM_ListenServer = This machine is used to keep all client up to the same state, but a human is playing on this machine too as part of the multiplayer game, and it is the host"

The comment in the source code is sometimes hard to understand, so I have to assume what they means in real practice, I hope some one could confirm is my understanding of those terms are correct or not.

Thank you so much!

I think you pretty much got it. One thing I would clarify is that every actor on every instance of the engine (Server or client) has 2 Roles, their Role and their Remote Role and these are usually reversed depending on whether you are on the server or the client. For example a player controller instance on the server has its role as ROLE_Authority and Remote Role as ROLE_SimulatedProxy and this same player controller on the client version has its role as ROLE_SimulatedProxy and Remote role as ROLE_Authority.

Another thing worth mentioning is that ROLE_Authority does not necessarily means that it’s the server. Yes, every single actor in the server has ROLE_Authority as their role, however if a client spawned an actor for himself, this actor would have ROLE_Authority as its role, and it wouldn’t be replicated to the server, only the client that spawned it would know about it and thus he has authority over it.

I’ll leave these 2 links here if you want to check them out. They helped me a lot when trying to understand those concepts.

Note: These links are the networking documentation for UE3 not UE4, however, it is pretty much still the same when it comes to networking. Hope this helps :smiley:

Thank you for the detailed explaination, it helps so much!