So I am trying to make it that whenever you double jump, you fly and it fires an event. If you double jump again(while flying), you stop flying and it fires another remote. The only issue I have is that I have NO idea how to make a fly script. So instead of wasting time, I found one online. It is a fly script that makes you fly when you press the letter 'E' and stops flying if you press it again. I have been trying for the past hour to make it work if you double space quickly but it just does not seem to work. If you have any idea what to do or anything, please let me know!

Original Script:

repeat wait()
   until game.Players.LocalPlayer and game.Players.LocalPlayer.Character and game.Players.LocalPlayer.Character:findFirstChild('Torso') and game.Players.LocalPlayer.Character:findFirstChild('Humanoid')
local mouse = game.Players.LocalPlayer:GetMouse()
repeat wait() until mouse
local plr = game.Players.LocalPlayer
local torso = plr.Character.Torso
local flying = true
local deb = true
local ctrl = { f = 0, b = 0, l = 0, r = 0}
local lastctrl = { f = 0, b = 0, l = 0, r = 0 }
local maxspeed = 50
local speed = 0


function Fly()
local bg = Instance.new('BodyGyro', torso)
bg.P = 9e4
bg.maxTorque = Vector3.new(9e9, 9e9, 9e9)
bg.cframe = torso.CFrame
local bv = Instance.new('BodyVelocity', torso)
bv.velocity = Vector3.new(0,0.1,0)
bv.maxForce = Vector3.new(9e9, 9e9, 9e9)
repeat wait()
plr.Character.Humanoid.PlatformStand = true
if ctrl.l + ctrl.r ~= 0 or ctrl.f + ctrl.b ~= 0 then
speed = speed + .5 + (speed / maxspeed)
if speed > maxspeed then
speed = maxspeed
end
elseif not(ctrl.l + ctrl.r ~= 0 or ctrl.f + ctrl.b ~= 0) and speed ~= 0 then
speed = speed - 1
if speed < 0 then
speed = 0
end
end
if (ctrl.l + ctrl.r) ~= 0 or(ctrl.f + ctrl.b) ~= 0 then
bv.velocity = ((game.Workspace.CurrentCamera.CoordinateFrame.lookVector * (ctrl.f + ctrl.b)) + ((game.Workspace.CurrentCamera.CoordinateFrame * CFrame.new(ctrl.l+ ctrl.r,(ctrl.f + ctrl.b) * .2,0).p) -game.Workspace.CurrentCamera.CoordinateFrame.p))*speed
lastctrl = { f = ctrl.f, b = ctrl.b, l = ctrl.l, r = ctrl.r}
elseif(ctrl.l + ctrl.r) == 0 and(ctrl.f + ctrl.b) == 0 and speed ~= 0 then
bv.velocity = ((game.Workspace.CurrentCamera.CoordinateFrame.lookVector * (lastctrl.f + lastctrl.b)) + ((game.Workspace.CurrentCamera.CoordinateFrame * CFrame.new(lastctrl.l+ lastctrl.r,(lastctrl.f + lastctrl.b) * .2,0).p) -game.Workspace.CurrentCamera.CoordinateFrame.p))*speed
else
bv.velocity = Vector3.new(0,0.1,0)
end
bg.cframe = game.Workspace.CurrentCamera.CoordinateFrame * CFrame.Angles(-math.rad((ctrl.f + ctrl.b) * 50 * speed / maxspeed), 0, 0)
until not flying
ctrl = { f = 0, b = 0, l = 0, r = 0 }
lastctrl = { f = 0, b = 0, l = 0, r = 0}
speed = 0
bg: Destroy()
bv: Destroy()
plr.Character.Humanoid.PlatformStand = false
end
mouse.KeyDown:connect(function(key)
if key:lower() == 'e' then
if flying then flying = false
else
flying = true
Fly()
end
elseif key: lower() == 'w' then
ctrl.f = 1
elseif key:lower() == 's' then
ctrl.b = -1
elseif key:lower() == 'a' then
ctrl.l = -1
elseif key:lower() == 'd' then
ctrl.r = 1
end
end)
mouse.KeyUp:connect(function(key)
if key:lower() == 'w' then
ctrl.f = 0
elseif key:lower() == 's' then
ctrl.b = 0
elseif key:lower() == 'a' then
ctrl.l = 0
elseif key:lower() == 'd' then
ctrl.r = 0
end
end)
Fly()

My version(doesn't really work at all):

repeat wait()
   until game.Players.LocalPlayer and game.Players.LocalPlayer.Character and game.Players.LocalPlayer.Character:findFirstChild('Torso') and game.Players.LocalPlayer.Character:findFirstChild('Humanoid')
local mouse = game.Players.LocalPlayer:GetMouse()
repeat wait() until mouse
local plr = game.Players.LocalPlayer
local torso = plr.Character.Torso
local flying = true
local deb = true
local ctrl = { f = 0, b = 0, l = 0, r = 0}
local lastctrl = { f = 0, b = 0, l = 0, r = 0 }
local maxspeed = 50
local speed = 0


function Fly()
local bg = Instance.new('BodyGyro', torso)
bg.P = 9e4
bg.maxTorque = Vector3.new(9e9, 9e9, 9e9)
bg.cframe = torso.CFrame
local bv = Instance.new('BodyVelocity', torso)
bv.velocity = Vector3.new(0,0.1,0)
bv.maxForce = Vector3.new(9e9, 9e9, 9e9)
repeat wait()
plr.Character.Humanoid.PlatformStand = true
if ctrl.l + ctrl.r ~= 0 or ctrl.f + ctrl.b ~= 0 then
speed = speed + .5 + (speed / maxspeed)
if speed > maxspeed then
speed = maxspeed
end
elseif not(ctrl.l + ctrl.r ~= 0 or ctrl.f + ctrl.b ~= 0) and speed ~= 0 then
speed = speed - 1
if speed < 0 then
speed = 0
end
end
if (ctrl.l + ctrl.r) ~= 0 or(ctrl.f + ctrl.b) ~= 0 then
bv.velocity = ((game.Workspace.CurrentCamera.CoordinateFrame.lookVector * (ctrl.f + ctrl.b)) + ((game.Workspace.CurrentCamera.CoordinateFrame * CFrame.new(ctrl.l+ ctrl.r,(ctrl.f + ctrl.b) * .2,0).p) -game.Workspace.CurrentCamera.CoordinateFrame.p))*speed
lastctrl = { f = ctrl.f, b = ctrl.b, l = ctrl.l, r = ctrl.r}
elseif(ctrl.l + ctrl.r) == 0 and(ctrl.f + ctrl.b) == 0 and speed ~= 0 then
bv.velocity = ((game.Workspace.CurrentCamera.CoordinateFrame.lookVector * (lastctrl.f + lastctrl.b)) + ((game.Workspace.CurrentCamera.CoordinateFrame * CFrame.new(lastctrl.l+ lastctrl.r,(lastctrl.f + lastctrl.b) * .2,0).p) -game.Workspace.CurrentCamera.CoordinateFrame.p))*speed
else
bv.velocity = Vector3.new(0,0.1,0)
end
bg.cframe = game.Workspace.CurrentCamera.CoordinateFrame * CFrame.Angles(-math.rad((ctrl.f + ctrl.b) * 50 * speed / maxspeed), 0, 0)
until not flying
ctrl = { f = 0, b = 0, l = 0, r = 0 }
lastctrl = { f = 0, b = 0, l = 0, r = 0}
speed = 0
bg: Destroy()
bv: Destroy()
plr.Character.Humanoid.PlatformStand = false
end





local Input = game:GetService("UserInputService")
local Code = Enum.KeyCode.Space
local Time = 0.5
local Last = nil
Input.InputBegan:Connect(function(Key, Game)
mouse.KeyDown:connect(function(key)
	    if not Game and Key.KeyCode == Code then

        if Last then
            if (tick() - Last) <= Time then

	                print("Pressed twice in less than "..Time.." seconds.")

	
		if flying then flying = false
																	else
																	flying = true
																	Fly()
		end
		
	
end	
end	
end	
        Last = tick()


																
																	if key: lower() == 'w' then
																	ctrl.f = 1
																	elseif key:lower() == 's' then
																	ctrl.b = -1
																	elseif key:lower() == 'a' then
																	ctrl.l = -1
																	elseif key:lower() == 'd' then
																	ctrl.r = 1
																	end
																	
																	
																	
																	end)
																	end)														
																	
mouse.KeyUp:connect(function(key)
if key:lower() == 'w' then
ctrl.f = 0
elseif key:lower() == 's' then
ctrl.b = 0
elseif key:lower() == 'a' then
ctrl.l = 0
elseif key:lower() == 'd' then
ctrl.r = 0
end
end)
Fly()

PLEASE help me.