Hey there, I was wondering how I'd add a debounce to this morph script so the player can't equip it lots of times, which will end up causing lag. Any help would be greatly appreciated! :D
Here is the script: (Chest only)
function onTouched(hit) if hit.Parent:findFirstChild("Humanoid") ~= nil and hit.Parent:findFirstChild("Chest1") == nil then local g = script.Parent.Parent.Chest1:clone() g.Parent = hit.Parent local C = g:GetChildren() for i=1, #C do if C[i].className == "Part" or C[i].className == "UnionOperation" or C[i].className == "WedgePart" or C[i].className == "MeshPart" then local W = Instance.new("Weld") W.Part0 = g.Middle W.Part1 = C[i] local CJ = CFrame.new(g.Middle.Position) local C0 = g.Middle.CFrame:inverse()*CJ local C1 = C[i].CFrame:inverse()*CJ W.C0 = C0 W.C1 = C1 W.Parent = g.Middle end local Y = Instance.new("Weld") Y.Part0 = hit.Parent.UpperTorso Y.Part1 = g.Middle Y.C0 = CFrame.new(0, 0, 0) Y.Parent = Y.Part0 end local h = g:GetChildren() for i = 1, # h do if h[i].className == "Part" or C[i].className == "UnionOperation" or C[i].className == "WedgePart" or C[i].className == "MeshPart" then h[i].Anchored = false h[i].CanCollide = false end end end end script.Parent.Touched:connect(onTouched)
try googling before you ask. However, this is how it would be done.
local debounce=false--declared the debounce function onTouched(hit) if debounce==false then--this is where it checks the debounce debounce=true--sets to true if hit.Parent:FindFirstChild("Humanoid") ~= nil and hit.Parent:findFirstChild("Chest1") == nil then local g = script.Parent.Parent.Chest1:clone() g.Parent = hit.Parent local C = g:GetChildren() for i=1, #C do if C[i].className == "Part" or C[i].className == "UnionOperation" or C[i].className == "WedgePart" or C[i].className == "MeshPart" then local W = Instance.new("Weld") W.Part0 = g.Middle W.Part1 = C[i] local CJ = CFrame.new(g.Middle.Position) local C0 = g.Middle.CFrame:inverse()*CJ local C1 = C[i].CFrame:inverse()*CJ W.C0 = C0 W.C1 = C1 W.Parent = g.Middle end local Y = Instance.new("Weld") Y.Part0 = hit.Parent.UpperTorso Y.Part1 = g.Middle Y.C0 = CFrame.new(0, 0, 0) Y.Parent = Y.Part0 end local h = g:GetChildren() for i = 1, # h do if h[i].className == "Part" or C[i].className == "UnionOperation" or C[i].className == "WedgePart" or C[i].className == "MeshPart" then h[i].Anchored = false h[i].CanCollide = false end end end wait(0.5)--to stop people from spamming; it u can remove it if u want to debounce=false--sets to false again end end script.Parent.Touched:connect(onTouched)