local oreNames = { "Coal", "Cobalt", "Copper", "Gold", "Iron", "Palladium", "Silver", "Titanium", "Diamond", "Amethyst", "Sapphire", "Emerald", "Ruby" } local enabledESP = {} for _, name in ipairs(oreNames) do enabledESP[name] = false end local trackedParts = {} -- GUI Setup local screenGui = Instance.new("ScreenGui", game.CoreGui) screenGui.Name = "OreESP_GUI" local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 250, 0, 400) frame.Position = UDim2.new(0, 20, 0.5, -200) frame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) frame.Parent = screenGui frame.Active = true frame.Draggable = true frame.BorderSizePixel = 0 local title = Instance.new("TextLabel", frame) title.Size = UDim2.new(1, 0, 0, 40) title.Text = "🌟 Ore ESP Toggle" title.BackgroundColor3 = Color3.fromRGB(0, 170, 255) title.TextColor3 = Color3.new(1, 1, 1) title.Font = Enum.Font.GothamBold title.TextSize = 20 local scrolling = Instance.new("ScrollingFrame", frame) scrolling.Size = UDim2.new(1, -10, 1, -50) scrolling.Position = UDim2.new(0, 5, 0, 45) scrolling.CanvasSize = UDim2.new(0, 0, 0, 0) scrolling.BackgroundTransparency = 1 scrolling.ScrollBarThickness = 4 local layout = Instance.new("UIListLayout", scrolling) layout.Padding = UDim.new(0, 6) -- Smooth scroll fix scrolling.AutomaticCanvasSize = Enum.AutomaticSize.Y scrolling.CanvasSize = UDim2.new(0, 0, 0, 0) -- Add corners local function roundify(obj, radius) local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, radius) corner.Parent = obj end roundify(frame, 12) roundify(title, 12) -- Create toggle buttons for _, ore in ipairs(oreNames) do local button = Instance.new("TextButton", scrolling) button.Size = UDim2.new(1, -10, 0, 32) button.BackgroundColor3 = Color3.fromRGB(45, 45, 45) button.Text = "🔕 " .. ore button.TextColor3 = Color3.fromRGB(255, 255, 255) button.Font = Enum.Font.Gotham button.TextSize = 16 button.AutoButtonColor = false roundify(button, 8) button.MouseButton1Click:Connect(function() enabledESP[ore] = not enabledESP[ore] button.Text = (enabledESP[ore] and "🔔 " or "🔕 ") .. ore button.BackgroundColor3 = enabledESP[ore] and Color3.fromRGB(0, 170, 255) or Color3.fromRGB(45, 45, 45) for _, tracked in pairs(trackedParts) do if string.find(tracked.name, ore) and tracked.adornment then tracked.adornment.Visible = enabledESP[ore] end end end) end -- ESP Handling local function addESP(part, oreName) if trackedParts[part] then return end local esp = Instance.new("BoxHandleAdornment") esp.Name = "OreESP" esp.Adornee = part esp.AlwaysOnTop = true esp.ZIndex = 0 esp.Size = part.Size esp.Color3 = Color3.fromHSV(math.random(), 1, 1) esp.Transparency = 0.5 esp.Visible = enabledESP[oreName] esp.Parent = part trackedParts[part] = { adornment = esp, name = oreName } part.AncestryChanged:Connect(function(_, parent) if not parent then if trackedParts[part] then trackedParts[part].adornment:Destroy() trackedParts[part] = nil end end end) end -- Initial scan for _, descendant in ipairs(workspace:GetDescendants()) do if descendant:IsA("BasePart") and descendant.Parent then for _, ore in ipairs(oreNames) do if string.find(descendant.Parent.Name, ore) then addESP(descendant, ore) end end end end -- Watch for new ores workspace.DescendantAdded:Connect(function(descendant) if descendant:IsA("BasePart") and descendant.Parent then for _, ore in ipairs(oreNames) do if string.find(descendant.Parent.Name, ore) then addESP(descendant, ore) end end end end)