Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

Why the script don't respect the cooldown?

2 answers

So you need to use debounce

CD.MouseClick:Connect(function(player)
local healAmount = 15
local canDrink = true
local cooldown = 0.8
local h = player.Character.Humanoid
local currentHealth = h.Health
local newHealth = currentHealth + 15
local gui = player.PlayerGui.Interaction.Int
local db = false

if h and canDrink == true  and not db then
    if h.Health > 0 and h.Health < h.MaxHealth then
            canDrink = false
            local currentHealth = h.Health
            local newHealth = currentHealth + healAmount
            h.Health = newHealth
           db = true
 wait(0.8)
            canDrink = true
	   db = false
end
end
end)

It should work but haven't tested

That probably wont even work. I would put all the local values outside of the function except the ones that refer to the parameter as so:

local healAmount = 15
local canDrink = true
local cooldown = 0.8

CD.MouseClick:Connect(function(player)
	local h = player.Character.Humanoid
	local currentHealth = h.Health
	local newHealth = currentHealth + healthAmount
	local gui = player.PlayerGui.Interaction.Int
	if h and canDrink == true then
		if h.Health > 0 and h.Health < h.MaxHealth then
			canDrink = false
			local currentHealth = h.Health
			local newHealth = currentHealth + healAmount
			h.Health = newHealth
			wait(cooldown)
			canDrink = true
		end
	end
end)

It wouldnt "respect the cooldown" because everytime you would click it, it would be true because when you clicked it, it would set it to true right away.

This discussion is preserved as it was. New answers, comments, and votes are closed.