Am I Server or Client?

That is what I thought was the case with authority checks but it definitely does not seem like that is what is happening.

An example of something that seems to conflict with this understanding of Authority - I create an actor class >> I add a function Called TryDoSomething() to this actor’s class. TryDoSomething() is not a server, client or multicast, it is a normal function. In the function is a simple branch, if(HasAuthority()){GEngine->AddOnScreenDebugMessage(-1, 10, FColor::White, “Has authority”);} else {GEngine->AddOnScreenDebugMessage(-1, 10, FColor::White, “!HasAuthority”);} >> I call TryDoSomething() from the classes constructor. >> In the editor I make a BP based on this Actor class >> I Add a static mesh to Actor so clients will see it if it is loaded into level on their machine >> I put a copy of the Actors BP in the level by dragging and dropping it in.

With this scenario above if I do -

Uncheck all replication category settings including Net Load On Client in the actors BP and run game in dedicated Server mode with 2 players. Result: Neither of the players can see the actor’s mesh (which makes sense because “Net Load On Client” is unchecked) BUT both players see the “Has Authority” log on their screens. Remember that the log message is not called in a networked function and all replication settings are turned off. How does this happen?

If I run the game in listen/Host mode with 2 players only the host can see the actors mesh but still both players including host get the “Has Authority” log on their screen.

If I try the above scenarios with the actors “Replicate” and “Net Load On Client” settings checked as true, all players see the mesh (which makes sense) and all players get the log message “Has Authority” (which makes no sense, at least not to me).