How do i make a timer that goes to 0 when a state changes, that resets as well

So i have an aircombo script that looks something like this:

		if things.Combo then
			
			TargetHumrp.Anchored = false
			originRootPart.Anchored = false
			
			local vector = (things.knockBackDirection * 2)

			
			local power = Vector3.new(100000,100000,100000)
			task.spawn(functions.addVelocity,TargetHumrp,power,vector,3, "AirVelocity")
			task.spawn(functions.addVelocity,originRootPart,power,vector,3, "AirVelocity")
			
			if things.Combo >= maxCombo then
				task.wait(.25)
				TargetHumrp:FindFirstChild("AirVelocity"):Destroy()
				originRootPart:FindFirstChild("AirVelocity"):Destroy()
			end
			return
		end 
		
		local directionTarget = (TargetHumrp.CFrame * CFrame.new(0,20, 0))
		local directionCharacter = (originRootPart.CFrame * CFrame.new(0,20, 0)) 
		
		TargetHumrp.Anchored = true
		originRootPart.Anchored = true
		
		utilityLib.Delay(1.5, function()
			TargetHumrp.Anchored = false
			originRootPart.Anchored = false
		end)
		
		tween.obj(TargetHumrp, "Quint", "Out", .6, {CFrame = directionTarget})
		tween.obj(originRootPart, "Quint", "Out", .6, {CFrame = directionCharacter})

And now, when the AirState value changes (value which i determine if the character has gotten hit by a air combo initiative) i want to begin a timer that resets when you hit while in the air, if the timer runs out it will destroy the velocity, and both players will fall down.

This is how it looks when you hit instantly:

You can use a timer module: