Silly me, the problem was that the player controller doesn’t exist on the server, so the instance of the character pawn that exists on the server would check its controller’s mouse position, and it would always be zero. Basically you need to make a remote procedure call (RPC) (a custom event) that is triggered on the client, and sends the info to the server. Its confusing because there are more than one copy (instance) of the same object.
This should work, I tried to copy your blueprint as best I could for a quick test, I used a print string to make sure the client was successfully sending off its data every tick, and both the client and the server pawns are registering mouse input.
So basically every tick (you could trigger the info sending however you want, custom event or calling the function or something), the local instance of the pawn, and only the local instance because of that “is locally controlled” branch check, does all the computing you had before, and just sends off its result via a custom event. The custom event is set to “run on server” with reliable checked. It also has a parameter of type float, that sends the data along, delivering it to the instance on your pawn on the server.
If that scene component still doesn’t move it may be because that component is not set to replicate, this could be solved with another RPC I believe.
Sorry if its a bit confusing, hope it helps a bit