I need to make it to where the ability does 3 dmg per second when a player a touching it
--Server Script-- local tween = game:GetService("TweenService") local casting = false script.Parent.RemoteEvent.OnServerEvent:Connect(function(player) if casting == true then return end casting = true local iceSpikes = game.ReplicatedStorage.LightCage:Clone() local dmg = 3 --Pre position iceSpikes:SetPrimaryPartCFrame(player.Character.HumanoidRootPart.CFrame) iceSpikes.Parent = workspace local endPositions = {Position = {}, Orientation = {}} for i,v in pairs(iceSpikes.Spikes:GetChildren()) do endPositions["Position"][i] = v.Position endPositions["Orientation"][i] = v.Orientation v.CFrame = CFrame.new(iceSpikes.Center.Position) end --Activate wait(0) local Sound = script.Parent.Lightning Sound:Play() for i,v in pairs(iceSpikes.Spikes:GetChildren()) do v.Orientation = endPositions["Orientation"][i] tween:Create(v, TweenInfo.new(0), {Position = endPositions["Position"][i]}):Play() end --Attack for i,v in pairs(iceSpikes.Spikes:GetChildren()) do v.Touched:Connect(function(hit) if hit.Parent:FindFirstChild("Humanoid") and not hit:IsDescendantOf(player.Character) then --Check if its a player local enemyHumanoid = hit.Parent:FindFirstChild("Humanoid") enemyHumanoid:TakeDamage(dmg) end end) end --Remove wait(5) Sound:Stop() iceSpikes:Destroy() casting = false wait(2) if iceSpikes.Parent == workspace then iceSpikes:Destroy() end end)
i think you overdid urself, theres a .Touched event. u need a debounce cuz it fires insanely
local debounce=false script.Parent.Touched:Connect(function(hit)--hit is the obj if hit.Parent:FindFirstChildOfClass("Humanoid") and debounce==false then debounce=true hit.Parent:FindFirstChildOfClass("Humanoid"):TakeDamage(3) wait(2) debounce=false end end)