Network: issue on player controlled Pawn

Hi, I set up a very basic game with the following BP assets:

-TEST_GameMode_Multi: default gamemode settings except for Pawn class set to TEST_Pawn_Multi and player controller set to TEST_PC_Multi.

-TEST_Pawn_Multi: just a camera and a sphere mesh.

-TEST_PC_Multi: handles the inputs and make the pawn moving.

Everything works fine but when launching the game in editor with more than one player, only the server player is actually able to move and I get this error message: “Error Accessed None ‘ControlledPawn’ from node Set ControlledPawn in blueprint TEST_PC_Multi”

I guess the client PC is not able to get his Pawn at the beginning of the game, because the debug Blueprint flow shows that the client PC is getting the inputs. The pawn simply seems not receiving requests from the PC.

Any idea about what am I doing wrong?

Here the PC blueprint:

Hello.
First I don’t get what you’re trying to achieve with your wast and set control pawn.
But it may not be the main problem here. Actually, the location and movement of a pawn are not replicated over the network. Only the character pawn and its omnious character movement component have this feature. So even if you replicate a pawn, you don’t replicate its properties, like position, rotation and so on.
The brute force way to achieve this, is to set a tick event that sends the pawn transform over the network through replicated custom event. Yeah, that’s as bad as it sounds. Are you sure you can’t live with a character pawn ?
That was my understanding of your situation anyway.

Actually there is no need for Pawn replication, the Pawn is just a camera and each player has a PlayerController which should allow to control its own Pawn locally. Now the problem is the client player can’t accede his pawn, it works only for the server player.

You mean that the controller doesn’t possess the pawn ? It happened to me already, and I added a little bit of a hacky script : On begin play, I started to check if the controller had a controlled pawn. If not, I created one and possessed it.
I noticed that sometimes the controller connects, and there’s not even a default pawn ready. Maybe you have the same issue.

I realize my answer may be confusing. I have to precise that a controller without a possessed pawn is just a floating camera with absolutely no control whatsoever. Looks like your symptoms right ?

And I forgot something else (man I’m tired). The issue of the pawn not being fully initialized when you try to possess it, therefore making possession impossible, will porbably happen to if you spawn the pawn and try to possess it immediately. That’s how I found out about this problem. So you may want to add a delay between pawn spawn and possession by the controller. And This time I think I said everything.

I tried this (using a blueprint similar as the one in the ShootOut example): gameMode destroys the pawn and spawn a new one then makes the PC possess it but no better result (even with a delay before possess node).
Still no control and still error message "Accessed None ‘ControlledPawn’ ".

And why should this be needed? The PC is supposed to automatically possess the pawn isn’t it? This is what happen for the player on the server or on single player mode…

Ok, a delay just before the Cast To node indeed seems to fix partially the issue. But it’s clearly a dirty workaround, is there not a cleaner way to do it?