You can’t get other PlayerController on other clients as they are not replicated for security reasons, players have complete access to there memory, so they could read out information they should not have access to. Same goes with GameMode. All exposed information should in APlayerState (created for each APlayerController) and AGameState (created for AGameMode) which are replicated and PlayerState can be accessed from controlled pawn too.