Somewhat backwards replication issue

Ok, so I’m using Blueprints and replicating a whole bunch of stuff successfully. I started playing with modifying bones in the animation blueprint for my class, and I’m running into an issue where the replication is only happening on the server, and not replicated to clients.

Normally, I’ve been under the impression that the (listening) server can just run things most of the time, and it will get replicated to clients. I used very similar logic that is working for all of my other replication tasks, and for this specific issue, it’s only replicating for the server to see, and no where else.

These screenshots do include moving arms/hands, but I highlighted the head movement in blue because that will be happening regardless if the user is aiming or not (see Part1 screenshot). None of the player rotator information is replicated to the clients. However, the server sees everything.

The client doesn’t have to aim for the server to see their heads move, that is fine, but for some reason, the server’s actions are not replicated to clients, and the client actions are also not replicated to other clients, only the server. I’m sure it’s something simple as I’m still learning how all of this works (what does and doesn’t replicate automatically, etc).

Hi, you’re using “GetControlRotation”, which does gets the rotation from the controller of the pawn. But those don’t exists on the clients (only the player controller of that client exists on that client, all other controller either other player controller or AI Controller do not), only the server has all of them.

I don’t know a good way to get the view rotation of one client to another one. If the server has all the correct control rotation values (I don’t know that, I would need to try that out myself but if you say that it works on the server correctly then that apparently does getting send from client to server), then on the server you could manually set a replicated variable on tick with that.

So, I had been using a rep-notify as a test before and it didn’t work… which lead me down an endless rabbit hole.

but the solution was to apply a replicated variable for the control rotation on the player blueprint, and link that to the animation blueprint to update it’s version of the variable, now everything is working as intended.

My eyes!!! (Do not cast on tick! Especially do not impure cast on tick with multiple things connected! Use a variable)

Technically, I’m using a variable for all of those. I’ve done a bit of testing to make sure that none of these are going over the network, but these checks are the current only way to keep everything working as intended. Do you have another suggestion?

Dont use a pure cast atleast.