Also, how do i make it so it cannot be triggered again while it's active? (btw, this is a local script from StarterGui)
Cooldown = 10
repeat wait() until script.Parent.Parent.Character
Character = script.Parent.Parent.Character
local Human = Character:WaitForChild("Humanoid")
local LastJump = time()
Human.Changed:connect(function(Prop)
if Prop and Prop == "Jump" and Human.Jump then
local CurrentTime = time()
if LastJump + Cooldown > CurrentTime then
Human.Jump = false
for i = 10, 0, -1 do
script.Parent.JumpCD.TextLabel.Text = "Jump Cooldown: " ..i
wait(1)
end
else
LastJump = CurrentTime
end
end
end)

5 comments
Unfortunately it does not work all the time, i have to jump a couple of times for it to activate, movement might also be affecting it but i'm not sure (this leads to getting 'free' jumps). There are no errors in the output, was this not supposed to be a Local Script located in StarterGui?
I fixed it. Can you try it now? I disable the humanoid from jumping until it requests to jump, enable it, set jump to true, then I disable it again.
It does not work at all now (jumping has been completely disabled), i have managed to jump only once (i'm not sure how though) but the cooldown was not going off at all.
I removed JumpRequest and changed it to Humanoid.Jumping. Can you try again?
It works flawlessly now, thank you very much.