Player controllers only exist on the server and the owning client, so clients don’t know of other client’s player controllers
Player states will never be shared between players, and if the “name” of the player state object is the same, that’s irrelevant, and up to replication order, which might not be the same
All replicated objects have unique identifiers which means that it’s guaranteed that they point to the “same” object, and you can rely on this fact, even if the name of the object is not the same between clients
If you are using an online system such as Steam or EOS, Player States will also have a Unique Player ID, that can help you differentiate between the players
In the engine code, when the unique ID is not available, such as in the case of LAN, the IP and Player name are checked to connect a player state to a player
I’m not 100% sure the player state indices are the same on all clients, but at least according to the code comments they should be