Problem with multiplayer possession camera swap

I’m having trouble working out why the camera swap is not working properly.

The video below shows my problem, on the right is client acting as server and on the left is client connected to server. Right side shows expected behaviour

bit of background, when possess is pressed and linetrace hits actor of same base class it spawns a pawn with a camera as root component in front character, playercontoller then possesses pawn and then travels from spawn location to hit actors location.

And i know that the pawn is moving because of the text in the top left of the screen. Blue is location on spawn and green is where the pawn ended up before being destroyed.

Here is my code



so if anyone knows why camera is doing that? help would be appreciated

It appears as though its not working correctly on the client because the client doesn’t know the logic is happening because its only running on the server. The server side is working because it has all the logic.

Maybe try to run all of that same logic on another custom event but only run on owning client and bypass some of the logic that needs to be handled by the server such as the spawning of the actor. Call that custom event right behind or in front on your server call.

Sorry about the late response was trying different ways of adding what you suggested. In this image i created a little test bench. Is this what your meant?

Cause it still gives me the same problem. And I know for certain that client’s player controller is possessing the pawn and the client registers the movement of pawn it reports it as so

If you have “Use Pawn Control Rotation” checked, maybe try using the “Use Pawn Control Rotation” boolean node and set it to false right before moving the camera and then use it again right after the move camera logic and set it to true again considering any delays or whatnot. It’s a default setting so it should show up when you click on the graph.

That should only apply assuming you are using pawn control rotation…

Doesn’t change anything I’m afraid. Even copying the test bench code over to another project doesn’t change anything, so it seems the code needs to be rewritten. no idea where tho?