Upgrade My Double Jump Script?[Closed]

Hey fellow devs, I have a double jump script that I’d like to be improved on. Double Jumping right now only works if you have the correct timing. But I want it so you can jump after your first jump whenever. Not just at a specific time after your first jump.

Here is the game with the script only:
DoubleJump.rbxl (21.2 KB)

And here is my script:

local UIS = game:GetService("UserInputService")
local player = game.Players.LocalPlayer
local character
local humanoid

local canDoubleJump = false
local hasDoubleJumped = false
local oldPower
local time_delay = 0.2
local jump_multiplier = 1 -- set to 1 for a normal double jump, increase for the second jump to be higher

function onJumpRequest()
	if not character or not humanoid or not character:IsDescendantOf(workspace) or humanoid:GetState() == Enum.HumanoidStateType.Dead then
		return
	end
	
	if canDoubleJump and not hasDoubleJumped then
		hasDoubleJumped = true
		humanoid.JumpPower = oldPower * jump_multiplier
		humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
	end
end

local function characterAdded(new)
	character = new
	humanoid = new:WaitForChild("Humanoid")
	hasDoubleJumped = false
	canDoubleJump = false
	oldPower = humanoid.JumpPower
	
	humanoid.StateChanged:connect(function(old, new)
		if new == Enum.HumanoidStateType.Landed then
			canDoubleJump = false
			hasDoubleJumped = false
			humanoid.JumpPower = oldPower
		elseif new == Enum.HumanoidStateType.Freefall then
			wait(time_delay)
			canDoubleJump = true
		end
	end)
end

if player.Character then
	characterAdded(player.Character)	
end

player.CharacterAdded:connect(characterAdded)
UIS.JumpRequest:connect(onJumpRequest)
5 Likes

The variable known as time_delay specifies the amount of time that needs to pass before the player can perform their secondary jump.

Since you want to get rid of the waiting, you can simply set this variable to 0 (or another very low number). Alternatively, you can just delete the variable alongside the wait(time_delay) found longer down in the script.

2 Likes

Thanks a lot for giving me this code!