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

How would i go about creating a cooldown for invisibility power?

I just need help because whenever I try creating a cooldown, you can still spam the invisibility power.

game.Players.LocalPlayer:GetMouse().KeyDown:Connect(function(key)
	if key == "e" then
		local TS = game:GetService("TweenService")
		local Info = TweenInfo.new(2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out)
		for _, v in pairs(script.Parent:GetDescendants()) do
			if v:IsA("BasePart") and v.Name~= "HumanoidRootPart" then
				TS:Create(v, Info, {Transparency=1}):Play()
			end
		end
		wait(20)
		local TS = game:GetService("TweenService")
		local Info = TweenInfo.new(2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out)
		for _, v in pairs(script.Parent:GetDescendants()) do
			if v:IsA("BasePart") and v.Name~= "HumanoidRootPart" then
				TS:Create(v, Info, {Transparency=0}):Play()
			end
		end	
		--
			
	end
end)

1 answer

Using debounce would be a good idea when making cooldowns:

local debounce = false

game.Players.LocalPlayer:GetMouse().KeyDown:Connect(function(key)
    if key == "e" then
        if not debounce then
            debounce = true
            local TS = game:GetService("TweenService")
            local Info = TweenInfo.new(2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out)
            for _, v in pairs(script.Parent:GetDescendants()) do
                if v:IsA("BasePart") and v.Name~= "HumanoidRootPart" then
                    TS:Create(v, Info, {Transparency=1}):Play()
                end
            end
            wait(20)
            local TS = game:GetService("TweenService")
            local Info = TweenInfo.new(2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out)
            for _, v in pairs(script.Parent:GetDescendants()) do
                if v:IsA("BasePart") and v.Name~= "HumanoidRootPart" then
                    TS:Create(v, Info, {Transparency=0}):Play()
                end
            end 
            wait(5) -- change cooldown time
            debounce = false
        end
    end
end)

In this script, a variable debounce was added (you can change the variable name if you want to). It was false at first. When you pressed E, it will check if debounce is false. If yes, if will turn debounce to true and run the tween. Then it will wait until it finished cooling down and turn it to false again.

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