Ragdoll when double jumping

hey I’m trying to make a script to ragdoll when pressing space twice. Currently whenever I press Space my player just ragdolls immediately I want it to get a little into the jump before falling face first. Any idea?

This is what I’ve got so far on client.lua. I’ve been messing with a tackle script trying to get it to do what I need.
Using ESX extended

local TackleKey = 51 -- Change to a number which can be found here: https://wiki.fivem.net/wiki/Controls
local TackleTime = 1500 -- In milliseconds

local key = 22 -- INPUT_JUMP (SPACE)

function DoublePressed()
    print("double pressed")
end

Citizen.CreateThread(function()
    while true do
        Citizen.Wait(0)
        
        if (IsControlJustReleased(0, key)) then
            local pressedAgain = false
            local timer = GetGameTimer()
            while true do
                Citizen.Wait(32)
                if (IsControlJustPressed(0, key)) then
                    pressedAgain = true
                    break
                end
                if (GetGameTimer() - timer >= 100) then
                    break
                end
            end
            if (pressedAgain) then
                DoublePressed()
            end
        end
    end
end)


Citizen.CreateThread(function()
	while true do
		Citizen.Wait(0)
		if IsPedJumping(PlayerPedId()) and DoublePressed then
			if IsPedInAnyVehicle(PlayerPedId()) then
				TriggerEvent('chatMessage', 'Tackle', {255, 255, 255}, 'You cannot tackle someone in a vehicle')
			else
				local ForwardVector = GetEntityForwardVector(PlayerPedId())
				local Tackled = {}

				SetPedToRagdollWithFall(PlayerPedId(), 1500, 2000, 0, ForwardVector, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)

				while IsPedRagdoll(PlayerPedId()) do
					Citizen.Wait(0)
					for Key, Value in ipairs(GetTouchedPlayers()) do
						if not Tackled[Value] then
							Tackled[Value] = true
							TriggerServerEvent('Tackle:Server:TacklePlayer', GetPlayerServerId(Value), ForwardVector.x, ForwardVector.y, ForwardVector.z, GetPlayerName(PlayerId()))
						end
					end
				end
			end
		end
	end
end)

RegisterNetEvent('Tackle:Client:TacklePlayer')
AddEventHandler('Tackle:Client:TacklePlayer', function(ForwardVectorX, ForwardVectorY, ForwardVectorZ, Tackler)
	TriggerEvent('chatMessage', 'Tackle', {255, 0, 0}, Tackler .. ' tackled you!')
	SetPedToRagdollWithFall(PlayerPedId(), TackleTime, TackleTime, 0, ForwardVectorX, ForwardVectorY, ForwardVectorZ, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
end)

function GetPlayers()
    local Players = {}

    for i = 0, 31 do
        if NetworkIsPlayerActive(i) then
            table.insert(Players, i)
        end
    end

    return Players
end

function GetTouchedPlayers()
    local TouchedPlayer = {}
    for Key, Value in ipairs(GetPlayers()) do
		if IsEntityTouchingEntity(PlayerPedId(), GetPlayerPed(Value)) then
			table.insert(TouchedPlayer, Value)
		end
    end
    return TouchedPlayer
end

you can use IsControlPressed and return it, but IsControlPressed is used twice then trigger the ragdoll

How exactly would I do that? I’m trying to do it but can’t figure it out

I cant help you with that, im away from my computer for like 5days, im sure you will be able to figure it out. there might be a resource like this already somewhere

Alright no worries thank you for the help. I’ve been looking a lot but cannot seem to find it. I’m just trying to make it ragdoll on the second space but all I can seem to get out of the code I have so far is just ragdoll immediately after pressing space

gotcha, just did this might work or not

local PressedE = false

if IsControlJustReleased(0, Keys['E']) and not PressedE then
                PressedE = true

code here

PressedE = false

just edit how you like it

Did you ever figure this out???

try putting this in a random client.lua:

Citizen.CreateThread( function()
local resetcounter = 0
local jumpDisabled = false
while true do
Citizen.Wait(100)
if jumpDisabled and resetcounter > 0 and IsPedJumping(PlayerPedId()) then
SetPedToRagdoll(PlayerPedId(), 1000, 1000, 3, 0, 0, 0)
resetcounter = 0
end
if not jumpDisabled and IsPedJumping(PlayerPedId()) then
jumpDisabled = true
resetcounter = 10
Citizen.Wait(1200)
end
if resetcounter > 0 then
resetcounter = resetcounter - 1
else
if jumpDisabled then
resetcounter = 0
jumpDisabled = false
end
end
end
end)