We fixed our game’s Flight script by changing our code to detect when the Player presses Spacebar with InputBegan instead of JumpRequest, but any game that is still using JumpRequest is broken.
The wiki does state that the JumpRequest event will be fired multiple times per single jump. The behavior that I would expect, and would find much more useful, is to have the JumpRequest event fire a single time for a single jump.
This is still an issue for me. It happens on both desktop and the mobile emulator with iPhone 7. If I click the jump button for 1 frame, it seems to only print once. But for some reason it prints 3-4 times if I click it normally. It prints 1 or 2 extra times if you click the button once to jump up and then again when you’re off the ground (as seen at the end of the video).
It seems like this bug still happens in some form, jump request will often fire twice for one space bar press and randomly fire while holding space down. These traits make this event pretty annoying to use as it doesn’t really correspond with a user’s requests to jump. One press input should really be one request. Even official wiki tutorials treat the event as if it should function like this. The double jump tutorial script will often just make you double jump with one space press. Documentation - Roblox Creator Hub
And yet the bug still happens, Very upsetting because i can’t find another way to bind an action to the player’s mobile jump button and the spacebar at the same time, Would be great if we’d get an official solution for this problem…
I think I have found a solution to this (if this is not already solved)
The Humanoid.Jumping function has a parameter that is returned, which is something called IsActive. You can check if this bool is true, then performing your script there.
And yet we still come back to this bug, when will this be fixed … It’s causing user frustration as users cannot predict the outcome of their jump requests as code is oftentimes ran twice for the same request.
I’ve managed to play around with this constraint a little with a denounce of me keeping track of their last request but alas no luck as some users still report frustration with this.
I really hope Roblox changes this behavior; it would make life much easier. In the mean time, here is a script that detects if the player jumped:
local function Jumped()
if jumpDebounce == true then return end
jumpDebounce = true
print("Jumped")
wait()
jumpDebounce = false
end
Humanoid.Jumping:Connect(Jumped)