Relative Rotation rotates component inside of the actor. Actor rotation will still be zero, try reading component’s world rotation, then you should see proper value.
But did you used this on first try?
SetActorRotation is a method of AActor class. ACharacter is a class two levels down from it, so SetActorRotation could have been overridden at least two times
in top of that it has CharacterMovementController, which can be doing it’s own thing as well. I would try from the start, to take a base ACharacter and check examples of code where people force characters to turn in a specific direction.
Maybe someone else knows what is going on, I haven’t use characters in C++
Ok I found a working solution… well it’s more a workaround but it does what it should.
I calculate the new rotation on the Server and store it in an replicated variable repRotation.
I then update the Mesh rotation since this is the only rotation that is working on all actors client and server
I feel so stupid now… Rotating is handled by the movement component and when you call
movementComponent->MoveUpdatedComponent()
you have to pass a Rotation and that rotation was always FRotator(0,0,0)… changing this to my valid rotation works perfectly and also has integrated replication