--[[ Made by Null | @guardi.an ]]-- local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local plr = Players.LocalPlayer local char = plr.Character or plr.CharacterAdded:Wait() local root = char:WaitForChild("HumanoidRootPart") local hum = char:WaitForChild("Humanoid") local spawns = {} local spawnFolder = workspace.Arena.Spawns for i = 1, 8 do local spawn = spawnFolder:FindFirstChild(tostring(i)) if spawn then local top = spawn:FindFirstChild("Top") if top and top:IsA("BasePart") then table.insert(spawns, top) end end end local targets = {} for _, part in ipairs(workspace.Middle.CollideableTop:GetChildren()) do if part:IsA("BasePart") and part.Name == "Collideable" then table.insert(targets, part) end end if #targets == 0 then return end local function removeKills() for _, obj in ipairs(workspace:GetDescendants()) do if obj:IsA("BasePart") and (string.find(string.lower(obj.Name), "kill") or string.find(string.lower(obj.Name), "damage") or obj.Material == Enum.Material.Neon) then obj.CFrame = CFrame.new(0, -1000, 0) end end end removeKills() workspace.DescendantAdded:Connect(function(obj) if obj:IsA("BasePart") and (string.find(string.lower(obj.Name), "kill") or string.find(string.lower(obj.Name), "damage") or obj.Material == Enum.Material.Neon) then obj.CFrame = CFrame.new(0, -1000, 0) end end) local enabled = true local waitTime = 10.3 local baseSpd = 55 local spdMin = 40 local spdMax = 50 local heightOff = 3 local spawnRad = 15 local targetProx = 8 local tweenCt = 0 local anchorDist = 2.5 local freezeRad = 15 local unfreezeRad = 30 local freezeTime = 1.25 local frozen = false local freezeConn local tweening = false local function getPlayersInRadius(pos, rad) local players = {} for _, p in ipairs(Players:GetPlayers()) do if p ~= plr and p.Character then local r = p.Character:FindFirstChild("HumanoidRootPart") if r then local dist = (r.Position - pos).Magnitude if dist <= rad then table.insert(players, p) end end end end return players end local function freeze() if frozen or not tweening then return end frozen = true root.Anchored = true local start = tick() freezeConn = RunService.Heartbeat:Connect(function() local tgt = targets[1] local nearby = getPlayersInRadius(tgt.Position, unfreezeRad) if #nearby > 0 then root.Anchored = false frozen = false if freezeConn then freezeConn:Disconnect() freezeConn = nil end elseif tick() - start >= freezeTime then root.Anchored = false frozen = false if freezeConn then freezeConn:Disconnect() freezeConn = nil end end end) end local proxConn local function startProxScan() if proxConn then return end proxConn = task.spawn(function() while true do task.wait(0.1) if frozen or not tweening then continue end local tgt = targets[1] local nearby = getPlayersInRadius(tgt.Position, freezeRad) if #nearby == 0 then freeze() end end end) end local function getNearSpawn() local pos = root.Position for _, spawn in ipairs(spawns) do if (spawn.Position - pos).Magnitude <= spawnRad then return spawn end end return nil end local function getClosestTarget() local pos = root.Position local closest = nil local minDist = math.huge for _, part in ipairs(targets) do local dist = (part.Position - pos).Magnitude if dist < minDist then minDist = dist closest = part end end return closest end local function touch(part) if part and root then firetouchinterest(root, part, 0) wait(0.1) firetouchinterest(root, part, 1) end end local noclipConn local function enableNoclip() if noclipConn then return end noclipConn = RunService.Stepped:Connect(function() if char then for _, part in pairs(char:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end end) end local function disableNoclip() if noclipConn then noclipConn:Disconnect() noclipConn = nil end if char then for _, part in pairs(char:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = true end end end end local function moveToTarget() if not root or hum.Health <= 0 then return end local tgt = getClosestTarget() if not tgt then return end tweenCt = tweenCt + 1 local spd = baseSpd if tweenCt % 2 == 0 then spd = math.random(spdMin * 10, spdMax * 10) / 10 end local tgtPos = tgt.Position + Vector3.new(0, heightOff, 0) local dist = (root.Position - tgtPos).Magnitude if dist <= targetProx then task.wait(math.random(1, 3) * 0.1) touch(tgt) return end local dur = dist / spd local info = TweenInfo.new(dur, Enum.EasingStyle.Linear) local tween = TweenService:Create(root, info, {CFrame = CFrame.new(tgtPos)}) local paused = false local anchorConn local pauseConn pauseConn = RunService.Heartbeat:Connect(function() local curDist = (root.Position - tgtPos).Magnitude if curDist <= 10 and curDist > anchorDist and not paused then paused = true tween:Pause() root.Anchored = true local pauseStart = tick() local pauseCheck pauseCheck = RunService.Heartbeat:Connect(function() local nearby = getPlayersInRadius(tgtPos, unfreezeRad) if #nearby > 0 then root.Anchored = false tween:Play() if pauseCheck then pauseCheck:Disconnect() end elseif tick() - pauseStart >= 1.5 then root.Anchored = false tween:Play() if pauseCheck then pauseCheck:Disconnect() end end end) end if curDist <= anchorDist then root.Anchored = true if pauseConn then pauseConn:Disconnect() pauseConn = nil end end end) anchorConn = RunService.Heartbeat:Connect(function() local curDist = (root.Position - tgtPos).Magnitude if curDist <= anchorDist then root.Anchored = true if anchorConn then anchorConn:Disconnect() anchorConn = nil end end end) enableNoclip() tweening = true root.Anchored = false tween:Play() tween.Completed:Wait() if anchorConn then anchorConn:Disconnect() anchorConn = nil end if pauseConn then pauseConn:Disconnect() pauseConn = nil end root.Anchored = false disableNoclip() tweening = false task.wait(math.random(1, 3) * 0.1) touch(tgt) end local autoConn local waiting = false local function start() if autoConn then return end startProxScan() autoConn = RunService.Heartbeat:Connect(function() local near = getNearSpawn() if near and not waiting then waiting = true task.wait(waitTime + math.random(-5, 5) * 0.1) if waiting then moveToTarget() waiting = false end elseif not near then waiting = false end end) end local function stop() if autoConn then autoConn:Disconnect() autoConn = nil end waiting = false if freezeConn then freezeConn:Disconnect() freezeConn = nil end if frozen then root.Anchored = false frozen = false end disableNoclip() end local gui = Instance.new("ScreenGui") gui.Name = "AutoCompleteGui" gui.Parent = plr:WaitForChild("PlayerGui") gui.ResetOnSpawn = false gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 180, 0, 100) frame.Position = UDim2.new(0.5, -90, 0.05, 0) frame.BackgroundColor3 = Color3.fromRGB(20, 20, 25) frame.BorderSizePixel = 0 frame.Parent = gui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 10) corner.Parent = frame local stroke = Instance.new("UIStroke") stroke.Thickness = 2 stroke.Color = Color3.fromRGB(0, 180, 180) stroke.Transparency = 0 stroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border stroke.Parent = frame local hue = 0 RunService.Heartbeat:Connect(function() hue = (hue + 0.005) % 1 stroke.Color = Color3.fromHSV(hue, 0.8, 1) end) local header = Instance.new("Frame") header.Size = UDim2.new(1, 0, 0, 28) header.Position = UDim2.new(0, 0, 0, 0) header.BackgroundColor3 = Color3.fromRGB(30, 30, 35) header.BorderSizePixel = 0 header.Parent = frame local headerCorner = Instance.new("UICorner") headerCorner.CornerRadius = UDim.new(0, 10) headerCorner.Parent = header local headerBot = Instance.new("Frame") headerBot.Size = UDim2.new(1, 0, 0, 10) headerBot.Position = UDim2.new(0, 0, 1, -10) headerBot.BackgroundColor3 = Color3.fromRGB(30, 30, 35) headerBot.BorderSizePixel = 0 headerBot.Parent = header local title = Instance.new("TextLabel") title.Size = UDim2.new(1, -20, 1, 0) title.Position = UDim2.new(0, 8, 0, 0) title.BackgroundTransparency = 1 title.Text = "AUTO COMPLETE" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.TextSize = 13 title.Font = Enum.Font.GothamBold title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = header local indicator = Instance.new("Frame") indicator.Size = UDim2.new(0, 8, 0, 8) indicator.Position = UDim2.new(1, -15, 0.5, -4) indicator.BackgroundColor3 = Color3.fromRGB(100, 255, 100) indicator.BorderSizePixel = 0 indicator.Parent = header local indCorner = Instance.new("UICorner") indCorner.CornerRadius = UDim.new(1, 0) indCorner.Parent = indicator local btn = Instance.new("TextButton") btn.Size = UDim2.new(0, 160, 0, 32) btn.Position = UDim2.new(0.5, -80, 0, 34) btn.BackgroundColor3 = Color3.fromRGB(100, 200, 100) btn.BorderSizePixel = 0 btn.Text = "ENABLED" btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.TextSize = 14 btn.Font = Enum.Font.GothamBold btn.AutoButtonColor = false btn.Parent = frame local btnCorner = Instance.new("UICorner") btnCorner.CornerRadius = UDim.new(0, 7) btnCorner.Parent = btn local btnStroke = Instance.new("UIStroke") btnStroke.Thickness = 1.5 btnStroke.Color = Color3.fromRGB(120, 220, 120) btnStroke.Transparency = 0.5 btnStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border btnStroke.Parent = btn local sig = Instance.new("TextLabel") sig.Size = UDim2.new(1, -20, 0, 20) sig.Position = UDim2.new(0, 10, 0, 70) sig.BackgroundTransparency = 1 sig.Text = "Made by Null | @guardi.an" sig.TextColor3 = Color3.fromRGB(150, 150, 150) sig.TextSize = 10 sig.Font = Enum.Font.Gotham sig.TextXAlignment = Enum.TextXAlignment.Center sig.Parent = frame btn.MouseEnter:Connect(function() TweenService:Create(btn, TweenInfo.new(0.2), {BackgroundColor3 = enabled and Color3.fromRGB(120, 220, 120) or Color3.fromRGB(220, 80, 80)}):Play() end) btn.MouseLeave:Connect(function() TweenService:Create(btn, TweenInfo.new(0.2), {BackgroundColor3 = enabled and Color3.fromRGB(100, 200, 100) or Color3.fromRGB(200, 60, 60)}):Play() end) local dragging = false local dragStart local startPos frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = frame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) UserInputService.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - dragStart frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) btn.MouseButton1Click:Connect(function() enabled = not enabled if enabled then btn.Text = "ENABLED" btn.BackgroundColor3 = Color3.fromRGB(100, 200, 100) btnStroke.Color = Color3.fromRGB(120, 220, 120) indicator.BackgroundColor3 = Color3.fromRGB(100, 255, 100) start() local origSize = btn.Size TweenService:Create(btn, TweenInfo.new(0.1), {Size = UDim2.new(0, 155, 0, 30)}):Play() wait(0.1) TweenService:Create(btn, TweenInfo.new(0.1), {Size = origSize}):Play() else btn.Text = "DISABLED" btn.BackgroundColor3 = Color3.fromRGB(200, 60, 60) btnStroke.Color = Color3.fromRGB(220, 80, 80) indicator.BackgroundColor3 = Color3.fromRGB(255, 80, 80) stop() local origSize = btn.Size TweenService:Create(btn, TweenInfo.new(0.1), {Size = UDim2.new(0, 155, 0, 30)}):Play() wait(0.1) TweenService:Create(btn, TweenInfo.new(0.1), {Size = origSize}):Play() end end) plr.CharacterAdded:Connect(function(newChar) char = newChar root = newChar:WaitForChild("HumanoidRootPart") hum = newChar:WaitForChild("Humanoid") waiting = false frozen = false tweening = false if freezeConn then freezeConn:Disconnect() freezeConn = nil end disableNoclip() removeKills() end) start()