Hi ,
I apologize, I didn’t realize you were trying to perform rotation on controlled Character. That explains a lot:
reason Server and Client don’t match up in this situation is because Server is running this Blueprint on its instance of Client’s Character, in addition to Client’s instance, so Client Character is being rotated to same position twice every tick. This appears to cause some slowdown on Client side. You can see this if you set players to 2 with a Listen Server, as well.
To avoid this, best idea is to rotate character in Controller instead; Controller only exists on Server and Clients and is not replicated, so code inside will only run once (for each player).
If you need to run it in Character BP itself, you want to check that Character being rotated is only locally controlled character. This way, Server won’t also try to rotate it. You can do so with IsLocallyControlled node:
Of course, this will present another issue with multiple players: each will begin its Event Tick when character is spawned, which won’t necessarily be at same time. This will also be more obvious in a Listen Server situation, because Server Character will be spawned several seconds before any Clients. You can avoid this with standard Lobby and Travel setup and EventOnPostLogin node in Game Mode.
Hope that helps!
