Cant replicate control rotation?

Hi, my dedicated server replicated game has some issues regarding the replication of control rotation. The game uses a player’s control rotation in order to bend the head and body towards where the player is looking. As is well known, control rotation is not properly replicated and only known to the server and owning client, thus this feature in my game doesn’t work correcrly. I hope someone can help me find a solution to replicate to all clients the players control rotation (pitch). I have been searching for hours and hours for a proper solution but couldnt find one:

If i dont replicate the control rotation, the Server and cient 0(owning client) will have the correct control rotation info and any other clients will not thus not having the correct state replicated

If i follow most tutorials out there on how to do this, an odd other issue arrises: the server, client 0 and any other clients get the correct rotation as is intended, but the non owning clients also get an extra rotation variable that makes the player look like it rotates randomly, removing this extra rotation variable so that other clients dont have this issue was not possible while also keeping the correct pitch elevation.

All i need is some way to replicate the control rotation pitch, without actually rotating the pawn itself for the other clients, any advice is very much appriciated as i have been stuck on this for quite some time.

Here is a screenshot of the nodes i use to replicate the rotation which causes problems:

This is what the player does when looking down with the faulty BP:

As you can see above, the correct pitch is being replicated to all clients, but in addition, the pawn’s rotation is also getting replicated which is not intentional, however after hours and hours this was literally the only slightly promising way i could find to replicate the control rotation pitch.

With blueprints only the simplest solution would be a custom RPC + variable replication.

Keep the RPC setup that you have done, but instead of setting the pawn’s rotation, set the value a custom Rotator variable (eg. RemoteControlRotation). Make that variable Replicated and SkipOwner.

Then in your animation code add a Branch = if IsLocallyControlled then use ControlRotation, else use RemoteControlRotation.

If you only need the pitch, consider sending and replicating a float variable instead of a full Rotator.