local Players = game:GetService("Players") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer local CHECK_INTERVAL = 0.1 local DIST_THRESHOLD = 20 local stopped = false local connection local function getHRP(character) return character and character:FindFirstChild("HumanoidRootPart") end local function startScript() if connection then connection:Disconnect() end stopped = false local character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait() localHRP = getHRP(character) connection = RunService.Heartbeat:Connect(function(dt) if stopped or not localHRP then return end localPos = localHRP.Position for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character then local otherHRP = getHRP(player.Character) if otherHRP then local dist = (otherHRP.Position - localPos).Magnitude local shouldCollide = dist >= DIST_THRESHOLD for _, part in ipairs(player.Character:GetDescendants()) do if part:IsA("BasePart") and part.CanCollide ~= shouldCollide then part.CanCollide = shouldCollide end end end end end end) end LocalPlayer.Chatted:Connect(function(msg) if msg:lower() == "/e nc" then stopped = true end end) startScript() LocalPlayer.CharacterAdded:Connect(function() task.wait(1) startScript() end)