@ MaxL No, thats not right.
HasAuthority (Role == ROLE_Authority) doesn’t mean server object and ROLE_AutonomousProxy doesn’t mean the object is owned by the client. The instance that spawned the class is always ROLE_Authority. If an Actor is spawned on the client, the client is the authority. And ROLE_AutonomousProxy means the same as SimulatedProxy, but the client has also right to call RPC calls (be carefull with that #cheating).
So, if you want simply check if a client is the owner, HasAuthority() or Role == ROLE_Authority is good, but remember, it doesn’t mean you are the server.
Maybe just add a boolean to your class like bIsServerObject. Together with HasAuthority() you can then be sure that you are on a client (or the server).
And concerning the owner stuff:
When you spawn an instance of a class on the server FOR Client A, you have to set him as the owner.
params.Owner = PlayerAPlayerController;
Then on Client B you can say IsOwner(PlayerBPlayerController), which should return false.