Загрузка данных


--[[
	WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
local oreFolder = workspace:WaitForChild("Ores")
local oreColors = {
    Iron = Color3.fromRGB(255, 165, 0),
    Emerald = Color3.fromRGB(0, 255, 0),
    Ruby = Color3.fromRGB(255, 0, 0),
    Diamond = Color3.fromRGB(0, 255, 255),
    Lapis = Color3.fromRGB(0, 0, 255),
    Mythril = Color3.fromRGB(128, 0, 128)
}

local espEnabled = true
local allESP = {}

-- UI
local screenGui = Instance.new("ScreenGui", game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui"))
screenGui.Name = "OreESP_UI"

local mainFrame = Instance.new("Frame", screenGui)
mainFrame.Size = UDim2.new(0, 160, 0, 50)
mainFrame.Position = UDim2.new(0, 20, 0, 100)
mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Draggable = true
mainFrame.Name = "ESPFrame"

local toggleButton = Instance.new("TextButton", mainFrame)
toggleButton.Size = UDim2.new(0, 140, 0, 30)
toggleButton.Position = UDim2.new(0, 10, 0, 10)
toggleButton.Text = "ESP: ON"
toggleButton.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleButton.Font = Enum.Font.SourceSansBold
toggleButton.TextScaled = true
toggleButton.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
toggleButton.BorderSizePixel = 0
toggleButton.AutoButtonColor = false
toggleButton.Name = "ToggleESP"

-- Toggle
local function toggleESP()
    espEnabled = not espEnabled
    toggleButton.Text = "ESP: " .. (espEnabled and "ON" or "OFF")
    toggleButton.BackgroundColor3 = espEnabled and Color3.fromRGB(0, 170, 0) or Color3.fromRGB(170, 0, 0)

    for _, data in pairs(allESP) do
        if data.Box and data.Label then
            data.Box.Visible = espEnabled
            data.Label.Enabled = espEnabled
        end
    end
end

toggleButton.MouseButton1Click:Connect(toggleESP)

-- ESP Creator
local function createESP(part, oreName, color)
    if part:FindFirstChild("OreESP") or part:FindFirstChild("OreLabel") then return end

    local espBox = Instance.new("BoxHandleAdornment")
    espBox.Adornee = part
    espBox.AlwaysOnTop = true
    espBox.ZIndex = 5
    espBox.Size = part.Size
    espBox.Color3 = color
    espBox.Transparency = 0.5
    espBox.Name = "OreESP"
    espBox.Visible = espEnabled
    espBox.Parent = part

    local billboard = Instance.new("BillboardGui")
    billboard.Name = "OreLabel"
    billboard.Adornee = part
    billboard.AlwaysOnTop = true
    billboard.Size = UDim2.new(0, 100, 0, 20)
    billboard.StudsOffset = Vector3.new(0, part.Size.Y + 1, 0)
    billboard.Enabled = espEnabled
    billboard.Parent = part

    local textLabel = Instance.new("TextLabel")
    textLabel.Size = UDim2.new(1, 0, 1, 0)
    textLabel.BackgroundTransparency = 1
    textLabel.Text = oreName
    textLabel.TextColor3 = color
    textLabel.TextStrokeTransparency = 0.5
    textLabel.TextScaled = true
    textLabel.Font = Enum.Font.SourceSansBold
    textLabel.Parent = billboard

    table.insert(allESP, {Box = espBox, Label = billboard})
end

-- Highlight
local function highlightOre(ore)
    local color = oreColors[ore.Name]
    if not color then return end

    if ore:IsA("BasePart") then
        createESP(ore, ore.Name, color)
    elseif ore:IsA("Model") then
        for _, part in ipairs(ore:GetDescendants()) do
            if part:IsA("BasePart") then
                createESP(part, ore.Name, color)
            end
        end
    end
end

-- Initial scan
for _, ore in ipairs(oreFolder:GetChildren()) do
    highlightOre(ore)
end

-- Watch new ores
oreFolder.ChildAdded:Connect(function(ore)
    task.wait(0.1)
    highlightOre(ore)
end)