You recently reworked ACharacter allowing multiple jumps. JumpMaxHoldTime allows you to repeat the jump input so long as JumpMaxHoldTime has not expired when you are the client on a server (Dedicated Server or Listen Server).
JumpKeyHoldTime is not available on the client, producing this behaviour.
Steps to reproduce:
Make a project with a Character that can receive jump input.
Set JumpMaxHoldTime to a value above 0
Set it to Dedicated Server and PIE, you can spam the jump key until the JumpMaxHoldTime has passed, of course each subsequent jump resets the hold time.
After testing this, I’ve noticed that the Jump Max count tooltip states
“Note that if JumpMaxHoldTime is non zero and StopJumping is not called, the player may be able to perform an unlimited number of jumps. It is usually best to call StopJumping when jump input has ceased.”
As a result, I do not believe that this is a bug, and I believe it is working as intended.
However, if you believe that I am misunderstanding your issue, feel free to let me know and I’ll be glad to continue to investigate.
I reproduced the problem from third person template, where StopJumping is called when space is released, but the client can still do infinite air jumps.
Yes, but at the moment jump contraints are not imposed correctly in movement code, otherwise there would not be this issue. Also the tooltip mentioned by Sean recommends to call StopJumping on the client to ensure correctness, but the client should not be able to affect the correctness of the server state.