How to get client player's playerController?

Hello.
I have been searching all over for this.
We are working on a multiplayer game, where each player with his controller is possessing
a spawned character.
Each time a player does, the server is the one who gets the reference for the playerController so
player possess nothing.
At first I used, getController (at index 0), which of course is not good enough for multiplayer.
Then I tried GetAllActorsOfClass (PawnClass) - which is not replicable, but for some reason is being duplicated
so the server’s player is again getting the reference. (The PawnClass is the one set in the World Settings)

I tried several more ways, using other users posts who asked the same question, but none of the solution seem
to work. Like trying to set a variable in LevelBluePrint of type playerController and trying to set it from playerPawn on BeginPlay but I just can’t seem to get either a reference for the levelBluePrint or the variable itself.

Any help will be highly appreciated. Thanks for having a look.

I have a example:

From your actor (let’s say overlapping fire with damage) do the following:

-Cast to your character
-from that get Player reference
-from that cast to your Player Controller
-from that get controlled pawn
-from that cast to your Player
-get Controller reference

If i am at home, i make a Screen. I was able to reference to my characters Controller and cast to it. I use inventory, pickup items, damage and so on.
You can do this from almost every blueprint.

But at first you have to get the Player and then the Player Controller. For some reason you have to call Events over three blueprints to get it working (for the Server and the Client).

I’ll post a example at evening.

… dude, did you make any example for this issue?