Recently been trying to make a playarea script which will damage the player if he's out of that zone(inside the Part). I've done the script, though whenever I'm in the zone it starts lagging like crazy after some time. [Note: the zone/part also shrinks] :
local Damage = 10 local Enabled = true function onTouch(hit) Enabled = false local Character = hit.Parent local Player = game.Players:FindFirstChild(Character.Name) if not Character:findFirstChild("Humanoid") then return end if Player.PlayerGui:findFirstChild("WarnGui") then Player.PlayerGui.WarnGui:Remove() end Enabled = true script.Parent.Area.TouchEnded:connect(function() if Enabled == true then Enabled = false local GUI = script.WarnGui:Clone() GUI.Parent = Player.PlayerGui while true do wait(1) if Enabled == false then Character.Humanoid.Health = Character.Humanoid.Health - Damage else break end end end end) end script.Parent.Area.Touched:connect(onTouch)
2nd Script that makes the part/zone shrink:
local Rate = script.Parent.Configuration.Rate.Value function shrink() for i = 1, 1000 do wait(Rate) script.Parent.Area.Size = script.Parent.Area.Size - Vector3.new(1, 0, 1) end end shrink()