Technically this happens due to previous uses of a Jump button. After pressing such a button, client-side value of bPressedJump becomes true. State CheatFlying does not reset this property to false and transfers its value to the server by means of ServerMove. Although Walk resets bPressedJump to false server-side, the server may change bPressedJump to true when processing saved moves. The combination bPressedJump == true && Physics == PHYS_Walking leads to jumping.
Suggested resolution: insert
Code: Select all
bPressedJump = false;