I am doing a simple multiplayer jetpack effect. I am simply doing a CharacterMovement AddForce all in the characters tick when the jet pack is active. The start and stop of the jetpack is replicated across and works well for the server’s character.
The problem is when applying this to a connected clients character, the force is stronger and they fly farther/faster (about twice as far). The odd thing is it seems to be related to the server’s frame rate.
If use the console t.maxfps for any thing below 60 on the server, it seems to apply the standard amount of the force. It doesn’t matter the frame rate, 10, 30, 60, it all works well.
If I only do the Apply force on just the server, it is the same issue the client has greater force applied, just the client sees jittery movement as it’s being replicated across. But simply limiting framerate to 60 here prevents this issue. Making this even weirder is the fact that server was natively getting around 60 fps, so applying this limit really isn’t changing the frame rate that much.
Another hint is revealed with time dilation. If I do a global time dilation of .5 (replicated across server and clients), the client’s character is accelerated way further, even if the client or server is frame rate limited.
Any ideas in what could be going on here? Surely the solution is not to limit all game frame rates to 60fps and don’t apply time dilation…