local player = game.Players.LocalPlayer local UIS = game:GetService("UserInputService") local RADIUS = 60 local enabled = false local modified = {} local gui = Instance.new("ScreenGui") gui.ResetOnSpawn = false gui.Parent = player:WaitForChild("PlayerGui") local frame = Instance.new("Frame", gui) frame.Size = UDim2.new(0, 240, 0, 100) frame.Position = UDim2.new(0, 100, 0, 100) frame.BackgroundColor3 = Color3.fromRGB(25,25,25) frame.BorderSizePixel = 0 local corner = Instance.new("UICorner", frame) corner.CornerRadius = UDim.new(0, 10) local title = Instance.new("TextLabel", frame) title.Size = UDim2.new(1, 0, 0, 30) title.Text = "Invisible Cleaner" title.TextColor3 = Color3.new(1,1,1) title.BackgroundTransparency = 1 title.Font = Enum.Font.GothamBold title.TextSize = 16 local button = Instance.new("TextButton", frame) button.Size = UDim2.new(1, -20, 0, 40) button.Position = UDim2.new(0, 10, 0, 45) button.Text = "OFF" button.BackgroundColor3 = Color3.fromRGB(40,40,40) button.TextColor3 = Color3.new(1,1,1) button.Font = Enum.Font.GothamBold button.TextSize = 14 local btnCorner = Instance.new("UICorner", button) btnCorner.CornerRadius = UDim.new(0, 8) -- ss local dragging = false local dragInput, dragStart, startPos frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 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) frame.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then dragInput = input end end) UIS.InputChanged:Connect(function(input) if input == dragInput and dragging 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) -- work local function restore(part) local data = modified[part] if data and part and part.Parent then part.CanCollide = data.CanCollide part.Transparency = data.Transparency end modified[part] = nil end local function restoreAll() for part in pairs(modified) do restore(part) end end button.MouseButton1Click:Connect(function() enabled = not enabled if not enabled then restoreAll() end button.Text = enabled and "ON" or "OFF" button.BackgroundColor3 = enabled and Color3.fromRGB(0,170,0) or Color3.fromRGB(40,40,40) end) UIS.InputBegan:Connect(function(input, gp) if not gp and input.KeyCode == Enum.KeyCode.Insert then frame.Visible = not frame.Visible end end) local function isCharacterPart(part) local model = part:FindFirstAncestorOfClass("Model") return model and model:FindFirstChildOfClass("Humanoid") end local function process(part, rootPos) if not part:IsA("BasePart") then return end if part.CanCollide then return end if isCharacterPart(part) then return end if (part.Position - rootPos).Magnitude > RADIUS then return end if not modified[part] then modified[part] = { CanCollide = part.CanCollide, Transparency = part.Transparency } part.Transparency = 1 end end workspace.DescendantAdded:Connect(function(obj) if not enabled then return end local char = player.Character local root = char and char:FindFirstChild("HumanoidRootPart") if root then process(obj, root.Position) end end) task.spawn(function() while true do local char = player.Character local root = char and char:FindFirstChild("HumanoidRootPart") if root then local pos = root.Position if enabled then for _, part in ipairs(workspace:GetPartBoundsInRadius(pos, RADIUS)) do process(part, pos) end end for part in pairs(modified) do if not part or not part.Parent then modified[part] = nil else if (part.Position - pos).Magnitude > RADIUS or not enabled then restore(part) end end end end task.wait(0.2) end end)