Hi, I am confused on something:
I am making a tool that when activated, it detects for another player hitting the player who activated it and if it does detect someone, it take 30 health away. But, when activated once, it constantly detects for it. Here is my script:
--Outside Variables--
local Animation = script.Parent:WaitForChild("Animation")
local cd = false
script.Parent.Activated:Connect(function()
if cd == false then --check for cooldown
--first code--
cd = true
--variables--
local Humanoid = script.Parent.Parent:WaitForChild("Humanoid")
local loadedAnimation = Humanoid:LoadAnimation(Animation)
local Root = script.Parent.Parent:WaitForChild("HumanoidRootPart")
local sound = script.Parent:WaitForChild("OverDrive")
--code--
sound:Play()
loadedAnimation:Play()
Root.Anchored = true
wait(0.05) -- To minimize chance of bugging--
--touched event--
Root.Touched:Connect(function(hit)
local char = hit.Parent
local Humanoid = char:WaitForChild("Humanoid")
Humanoid.Health = Humanoid.Health - 30
end)
end
How can I fix this? Thanks.

3 comments
You used the debounce in the wrong place.
Where should i use it?
You might need to increase wait, 0.05 is very fast and in this case staying on it for 0.2 seconds is a instant kill.