local Players = game:GetService("Players") local Workspace = game:GetService("Workspace") local StarterGui = game:GetService("StarterGui") local CollectionService = game:GetService("CollectionService") local player = Players.LocalPlayer local mouse = player:GetMouse() if not game.IsLoaded then game.Loaded:Wait() end local TAG = "NeonReveal" local isRevealed = true local currentHighlight = nil local function processInvisiblePart(part) if not part:IsA("BasePart") then return end if CollectionService:HasTag(part, TAG) then return end if part.Transparency ~= 1 then return end part:SetAttribute("OriginalMaterial", part.Material.Name) CollectionService:AddTag(part, TAG) if isRevealed then part.Transparency = 0.8 part.Material = Enum.Material.Neon else part.Transparency = 1 part.Material = Enum.Material[part:GetAttribute("OriginalMaterial")] end end task.wait(2) for _, obj in ipairs(Workspace:GetDescendants()) do processInvisiblePart(obj) end Workspace.DescendantAdded:Connect(function(obj) if obj:IsA("BasePart") then task.wait(0.1) processInvisiblePart(obj) end end) local function setVisibility(revealed) isRevealed = revealed for _, part in ipairs(CollectionService:GetTagged(TAG)) do if part and part.Parent then if revealed then part.Transparency = 0.8 part.Material = Enum.Material.Neon else part.Transparency = 1 local original = part:GetAttribute("OriginalMaterial") part.Material = original and Enum.Material[original] or Enum.Material.SmoothPlastic end end end end local function createDeleteTool() local tool = Instance.new("Tool") tool.Name = "Delete Tool" tool.RequiresHandle = false tool.CanBeDropped = false tool.Parent = player:FindFirstChild("Backpack") or player:WaitForChild("Backpack") tool.Equipped:Connect(function() local conn = mouse.Move:Connect(function() local target = mouse.Target if currentHighlight then currentHighlight:Destroy() end if target and CollectionService:HasTag(target, TAG) then currentHighlight = Instance.new("Highlight") currentHighlight.Adornee = target currentHighlight.FillColor = Color3.new(1, 1, 0) currentHighlight.FillTransparency = 0.7 currentHighlight.OutlineColor = Color3.new(1, 1, 1) currentHighlight.Parent = target end end) tool.Unequipped:Connect(function() conn:Disconnect() if currentHighlight then currentHighlight:Destroy() end end) end) tool.Activated:Connect(function() local target = mouse.Target if not (target and CollectionService:HasTag(target, TAG)) then StarterGui:SetCore("SendNotification", { Title = "Invalid", Text = "Only revealed parts can be deleted.", Duration = 4 }) return end if currentHighlight then currentHighlight:Destroy() end local bindable = Instance.new("BindableFunction") bindable.OnInvoke = function(choice) if currentHighlight then currentHighlight:Destroy() end if choice == "Yes" then target:Destroy() StarterGui:SetCore("SendNotification", { Title = "Deleted", Text = target.Name .. " removed", Duration = 4 }) end end StarterGui:SetCore("SendNotification", { Title = target.Name, Text = "Delete this part?", Button1 = "Yes", Button2 = "Cancel", Duration = 15, Callback = bindable, }) end) end createDeleteTool() player.CharacterAdded:Connect(createDeleteTool) local screenGui = Instance.new("ScreenGui") screenGui.ResetOnSpawn = false screenGui.Parent = player.PlayerGui local button = Instance.new("TextButton") button.Size = UDim2.new(0, 120, 0, 40) button.Position = UDim2.new(0, 10, 0, 10) button.BackgroundColor3 = Color3.fromRGB(0, 200, 0) button.Text = "Revealed" button.TextColor3 = Color3.new(1, 1, 1) button.Font = Enum.Font.GothamBold button.TextSize = 14 button.Parent = screenGui Instance.new("UICorner", button).CornerRadius = UDim.new(0, 8) button.MouseButton1Click:Connect(function() setVisibility(not isRevealed) if isRevealed then button.BackgroundColor3 = Color3.fromRGB(0, 200, 0) button.Text = "Revealed" else button.BackgroundColor3 = Color3.fromRGB(200, 0, 0) button.Text = "Hidden" end end) local dragging, dragStart, startPos button.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = button.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) button.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement and dragging then local delta = input.Position - dragStart button.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) print("Neon revealer active - Toggle with button + Delete Tool")