OP OPEN SOURCE
Key Required

OP OPEN SOURCE

Build a Mining Machine⛏️Tr0ngXTr0ngX 2.7K views 64 executesUpdated Dec 11, 2025
3.3/ 5(3 votes)
2167% Positive
Lua Script•651 lines (26366 chars)
--[[
    Build A Mining Machine Script
    Credit: M4k3By41W1thPr0mpt
    UI Library: Rayfield
]]

-- Cleanup existing UI
if game:GetService("CoreGui"):FindFirstChild("Rayfield") then
    game:GetService("CoreGui").Rayfield:Destroy()
end

-- Load Rayfield
local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()

-- Theme Definitions (for live switching)
local ThemeData = {
    Default = {
        TextColor = Color3.fromRGB(240, 240, 240),
        Background = Color3.fromRGB(25, 25, 25),
        Topbar = Color3.fromRGB(34, 34, 34),
        Shadow = Color3.fromRGB(20, 20, 20),
        NotificationBackground = Color3.fromRGB(20, 20, 20),
        NotificationActionsBackground = Color3.fromRGB(230, 230, 230),
        TabBackground = Color3.fromRGB(80, 80, 80),
        TabStroke = Color3.fromRGB(85, 85, 85),
        TabBackgroundSelected = Color3.fromRGB(210, 210, 210),
        TabTextColor = Color3.fromRGB(240, 240, 240),
        SelectedTabTextColor = Color3.fromRGB(50, 50, 50),
        ElementBackground = Color3.fromRGB(35, 35, 35),
        ElementBackgroundHover = Color3.fromRGB(40, 40, 40),
        SecondaryElementBackground = Color3.fromRGB(25, 25, 25),
        ElementStroke = Color3.fromRGB(50, 50, 50),
        SecondaryElementStroke = Color3.fromRGB(40, 40, 40),
        SliderBackground = Color3.fromRGB(43, 105, 159),
        SliderProgress = Color3.fromRGB(43, 105, 159),
        SliderStroke = Color3.fromRGB(48, 119, 180),
        ToggleBackground = Color3.fromRGB(30, 30, 30),
        ToggleEnabled = Color3.fromRGB(0, 146, 214),
        ToggleDisabled = Color3.fromRGB(100, 100, 100),
        ToggleEnabledStroke = Color3.fromRGB(0, 170, 255),
        ToggleDisabledStroke = Color3.fromRGB(125, 125, 125),
        ToggleEnabledOuterStroke = Color3.fromRGB(100, 100, 100),
        ToggleDisabledOuterStroke = Color3.fromRGB(65, 65, 65),
        DropdownSelected = Color3.fromRGB(40, 40, 40),
        DropdownUnselected = Color3.fromRGB(30, 30, 30),
        InputBackground = Color3.fromRGB(30, 30, 30),
        InputStroke = Color3.fromRGB(65, 65, 65),
        PlaceholderColor = Color3.fromRGB(178, 178, 178)
    },
    Amethyst = {
        TextColor = Color3.fromRGB(240, 240, 240),
        Background = Color3.fromRGB(30, 25, 35),
        Topbar = Color3.fromRGB(40, 34, 48),
        Shadow = Color3.fromRGB(25, 20, 30),
        NotificationBackground = Color3.fromRGB(25, 20, 30),
        NotificationActionsBackground = Color3.fromRGB(210, 200, 220),
        TabBackground = Color3.fromRGB(90, 75, 105),
        TabStroke = Color3.fromRGB(100, 85, 115),
        TabBackgroundSelected = Color3.fromRGB(180, 160, 200),
        TabTextColor = Color3.fromRGB(240, 240, 240),
        SelectedTabTextColor = Color3.fromRGB(40, 30, 50),
        ElementBackground = Color3.fromRGB(45, 38, 55),
        ElementBackgroundHover = Color3.fromRGB(55, 48, 65),
        SecondaryElementBackground = Color3.fromRGB(35, 28, 45),
        ElementStroke = Color3.fromRGB(65, 55, 80),
        SecondaryElementStroke = Color3.fromRGB(50, 42, 62),
        SliderBackground = Color3.fromRGB(120, 80, 160),
        SliderProgress = Color3.fromRGB(140, 100, 180),
        SliderStroke = Color3.fromRGB(150, 110, 190),
        ToggleBackground = Color3.fromRGB(40, 32, 50),
        ToggleEnabled = Color3.fromRGB(138, 43, 226),
        ToggleDisabled = Color3.fromRGB(100, 90, 110),
        ToggleEnabledStroke = Color3.fromRGB(160, 80, 240),
        ToggleDisabledStroke = Color3.fromRGB(120, 110, 130),
        ToggleEnabledOuterStroke = Color3.fromRGB(110, 95, 125),
        ToggleDisabledOuterStroke = Color3.fromRGB(70, 60, 80),
        DropdownSelected = Color3.fromRGB(55, 45, 68),
        DropdownUnselected = Color3.fromRGB(40, 32, 50),
        InputBackground = Color3.fromRGB(40, 32, 50),
        InputStroke = Color3.fromRGB(75, 65, 90),
        PlaceholderColor = Color3.fromRGB(170, 160, 180)
    },
    Ocean = {
        TextColor = Color3.fromRGB(240, 248, 255),
        Background = Color3.fromRGB(15, 30, 45),
        Topbar = Color3.fromRGB(20, 40, 60),
        Shadow = Color3.fromRGB(10, 25, 40),
        NotificationBackground = Color3.fromRGB(10, 25, 40),
        NotificationActionsBackground = Color3.fromRGB(200, 220, 240),
        TabBackground = Color3.fromRGB(40, 80, 120),
        TabStroke = Color3.fromRGB(50, 90, 130),
        TabBackgroundSelected = Color3.fromRGB(100, 180, 220),
        TabTextColor = Color3.fromRGB(240, 248, 255),
        SelectedTabTextColor = Color3.fromRGB(15, 30, 45),
        ElementBackground = Color3.fromRGB(25, 50, 75),
        ElementBackgroundHover = Color3.fromRGB(35, 60, 85),
        SecondaryElementBackground = Color3.fromRGB(18, 38, 58),
        ElementStroke = Color3.fromRGB(40, 70, 100),
        SecondaryElementStroke = Color3.fromRGB(30, 55, 80),
        SliderBackground = Color3.fromRGB(0, 120, 180),
        SliderProgress = Color3.fromRGB(0, 150, 200),
        SliderStroke = Color3.fromRGB(0, 170, 220),
        ToggleBackground = Color3.fromRGB(20, 45, 70),
        ToggleEnabled = Color3.fromRGB(0, 180, 220),
        ToggleDisabled = Color3.fromRGB(60, 90, 120),
        ToggleEnabledStroke = Color3.fromRGB(0, 200, 240),
        ToggleDisabledStroke = Color3.fromRGB(80, 110, 140),
        ToggleEnabledOuterStroke = Color3.fromRGB(50, 100, 140),
        ToggleDisabledOuterStroke = Color3.fromRGB(35, 60, 85),
        DropdownSelected = Color3.fromRGB(35, 65, 95),
        DropdownUnselected = Color3.fromRGB(20, 45, 70),
        InputBackground = Color3.fromRGB(20, 45, 70),
        InputStroke = Color3.fromRGB(50, 85, 120),
        PlaceholderColor = Color3.fromRGB(140, 170, 200)
    },
    Emerald = {
        TextColor = Color3.fromRGB(240, 255, 245),
        Background = Color3.fromRGB(15, 35, 25),
        Topbar = Color3.fromRGB(20, 45, 32),
        Shadow = Color3.fromRGB(10, 28, 18),
        NotificationBackground = Color3.fromRGB(10, 28, 18),
        NotificationActionsBackground = Color3.fromRGB(200, 235, 215),
        TabBackground = Color3.fromRGB(40, 100, 70),
        TabStroke = Color3.fromRGB(50, 115, 80),
        TabBackgroundSelected = Color3.fromRGB(80, 200, 140),
        TabTextColor = Color3.fromRGB(240, 255, 245),
        SelectedTabTextColor = Color3.fromRGB(15, 35, 25),
        ElementBackground = Color3.fromRGB(22, 55, 38),
        ElementBackgroundHover = Color3.fromRGB(30, 68, 48),
        SecondaryElementBackground = Color3.fromRGB(16, 42, 28),
        ElementStroke = Color3.fromRGB(40, 85, 60),
        SecondaryElementStroke = Color3.fromRGB(28, 62, 42),
        SliderBackground = Color3.fromRGB(34, 139, 84),
        SliderProgress = Color3.fromRGB(46, 170, 102),
        SliderStroke = Color3.fromRGB(52, 185, 115),
        ToggleBackground = Color3.fromRGB(18, 48, 32),
        ToggleEnabled = Color3.fromRGB(46, 204, 113),
        ToggleDisabled = Color3.fromRGB(60, 100, 78),
        ToggleEnabledStroke = Color3.fromRGB(60, 220, 130),
        ToggleDisabledStroke = Color3.fromRGB(80, 120, 98),
        ToggleEnabledOuterStroke = Color3.fromRGB(45, 110, 75),
        ToggleDisabledOuterStroke = Color3.fromRGB(32, 65, 45),
        DropdownSelected = Color3.fromRGB(30, 72, 50),
        DropdownUnselected = Color3.fromRGB(18, 48, 32),
        InputBackground = Color3.fromRGB(18, 48, 32),
        InputStroke = Color3.fromRGB(48, 95, 68),
        PlaceholderColor = Color3.fromRGB(140, 190, 165)
    },
    Ruby = {
        TextColor = Color3.fromRGB(255, 245, 245),
        Background = Color3.fromRGB(40, 18, 22),
        Topbar = Color3.fromRGB(55, 24, 30),
        Shadow = Color3.fromRGB(32, 14, 18),
        NotificationBackground = Color3.fromRGB(32, 14, 18),
        NotificationActionsBackground = Color3.fromRGB(240, 210, 215),
        TabBackground = Color3.fromRGB(120, 50, 60),
        TabStroke = Color3.fromRGB(135, 60, 72),
        TabBackgroundSelected = Color3.fromRGB(220, 120, 140),
        TabTextColor = Color3.fromRGB(255, 245, 245),
        SelectedTabTextColor = Color3.fromRGB(40, 18, 22),
        ElementBackground = Color3.fromRGB(62, 28, 35),
        ElementBackgroundHover = Color3.fromRGB(75, 38, 45),
        SecondaryElementBackground = Color3.fromRGB(50, 22, 28),
        ElementStroke = Color3.fromRGB(95, 45, 55),
        SecondaryElementStroke = Color3.fromRGB(72, 32, 40),
        SliderBackground = Color3.fromRGB(180, 60, 80),
        SliderProgress = Color3.fromRGB(200, 80, 100),
        SliderStroke = Color3.fromRGB(215, 95, 115),
        ToggleBackground = Color3.fromRGB(55, 24, 30),
        ToggleEnabled = Color3.fromRGB(220, 53, 69),
        ToggleDisabled = Color3.fromRGB(110, 65, 75),
        ToggleEnabledStroke = Color3.fromRGB(235, 75, 90),
        ToggleDisabledStroke = Color3.fromRGB(130, 85, 95),
        ToggleEnabledOuterStroke = Color3.fromRGB(125, 55, 68),
        ToggleDisabledOuterStroke = Color3.fromRGB(78, 38, 48),
        DropdownSelected = Color3.fromRGB(78, 38, 48),
        DropdownUnselected = Color3.fromRGB(55, 24, 30),
        InputBackground = Color3.fromRGB(55, 24, 30),
        InputStroke = Color3.fromRGB(105, 55, 68),
        PlaceholderColor = Color3.fromRGB(195, 165, 172)
    },
    Midnight = {
        TextColor = Color3.fromRGB(230, 235, 255),
        Background = Color3.fromRGB(12, 12, 25),
        Topbar = Color3.fromRGB(18, 18, 38),
        Shadow = Color3.fromRGB(8, 8, 18),
        NotificationBackground = Color3.fromRGB(8, 8, 18),
        NotificationActionsBackground = Color3.fromRGB(200, 205, 230),
        TabBackground = Color3.fromRGB(45, 45, 85),
        TabStroke = Color3.fromRGB(55, 55, 100),
        TabBackgroundSelected = Color3.fromRGB(120, 125, 200),
        TabTextColor = Color3.fromRGB(230, 235, 255),
        SelectedTabTextColor = Color3.fromRGB(12, 12, 25),
        ElementBackground = Color3.fromRGB(22, 22, 45),
        ElementBackgroundHover = Color3.fromRGB(32, 32, 60),
        SecondaryElementBackground = Color3.fromRGB(16, 16, 35),
        ElementStroke = Color3.fromRGB(42, 42, 75),
        SecondaryElementStroke = Color3.fromRGB(28, 28, 55),
        SliderBackground = Color3.fromRGB(75, 75, 160),
        SliderProgress = Color3.fromRGB(100, 100, 200),
        SliderStroke = Color3.fromRGB(115, 115, 215),
        ToggleBackground = Color3.fromRGB(18, 18, 38),
        ToggleEnabled = Color3.fromRGB(100, 100, 230),
        ToggleDisabled = Color3.fromRGB(55, 55, 95),
        ToggleEnabledStroke = Color3.fromRGB(125, 125, 250),
        ToggleDisabledStroke = Color3.fromRGB(75, 75, 115),
        ToggleEnabledOuterStroke = Color3.fromRGB(60, 60, 110),
        ToggleDisabledOuterStroke = Color3.fromRGB(35, 35, 62),
        DropdownSelected = Color3.fromRGB(35, 35, 68),
        DropdownUnselected = Color3.fromRGB(18, 18, 38),
        InputBackground = Color3.fromRGB(18, 18, 38),
        InputStroke = Color3.fromRGB(52, 52, 88),
        PlaceholderColor = Color3.fromRGB(150, 155, 190)
    },
    Sunset = {
        TextColor = Color3.fromRGB(255, 250, 240),
        Background = Color3.fromRGB(45, 25, 20),
        Topbar = Color3.fromRGB(60, 35, 28),
        Shadow = Color3.fromRGB(35, 18, 15),
        NotificationBackground = Color3.fromRGB(35, 18, 15),
        NotificationActionsBackground = Color3.fromRGB(255, 230, 210),
        TabBackground = Color3.fromRGB(140, 75, 50),
        TabStroke = Color3.fromRGB(160, 90, 62),
        TabBackgroundSelected = Color3.fromRGB(255, 165, 100),
        TabTextColor = Color3.fromRGB(255, 250, 240),
        SelectedTabTextColor = Color3.fromRGB(45, 25, 20),
        ElementBackground = Color3.fromRGB(72, 42, 32),
        ElementBackgroundHover = Color3.fromRGB(88, 52, 42),
        SecondaryElementBackground = Color3.fromRGB(58, 32, 25),
        ElementStroke = Color3.fromRGB(105, 62, 48),
        SecondaryElementStroke = Color3.fromRGB(82, 48, 38),
        SliderBackground = Color3.fromRGB(230, 120, 60),
        SliderProgress = Color3.fromRGB(250, 140, 80),
        SliderStroke = Color3.fromRGB(255, 155, 95),
        ToggleBackground = Color3.fromRGB(60, 35, 28),
        ToggleEnabled = Color3.fromRGB(255, 140, 50),
        ToggleDisabled = Color3.fromRGB(120, 80, 65),
        ToggleEnabledStroke = Color3.fromRGB(255, 165, 80),
        ToggleDisabledStroke = Color3.fromRGB(145, 100, 85),
        ToggleEnabledOuterStroke = Color3.fromRGB(145, 85, 60),
        ToggleDisabledOuterStroke = Color3.fromRGB(90, 55, 45),
        DropdownSelected = Color3.fromRGB(95, 58, 45),
        DropdownUnselected = Color3.fromRGB(60, 35, 28),
        InputBackground = Color3.fromRGB(60, 35, 28),
        InputStroke = Color3.fromRGB(115, 72, 55),
        PlaceholderColor = Color3.fromRGB(210, 185, 165)
    }
}

-- Current Theme Variable
local CurrentTheme = "Default"

-- Live Theme Application Function
local function ApplyThemeLive(themeName)
    local theme = ThemeData[themeName]
    if not theme then return end
    
    CurrentTheme = themeName
    
    local CoreGui = game:GetService("CoreGui")
    local RayfieldUI = CoreGui:FindFirstChild("Rayfield")
    if not RayfieldUI then return end
    
    -- Apply to all UI elements recursively
    local function applyToDescendants(parent)
        for _, child in pairs(parent:GetDescendants()) do
            pcall(function()
                -- Frame backgrounds
                if child:IsA("Frame") then
                    if child.Name == "Main" or child.Name == "Background" then
                        child.BackgroundColor3 = theme.Background
                    elseif child.Name == "Topbar" then
                        child.BackgroundColor3 = theme.Topbar
                    elseif child.Name == "Shadow" then
                        child.BackgroundColor3 = theme.Shadow
                    elseif child.Name == "TabHolder" or string.find(child.Name, "Tab") then
                        if child.BackgroundTransparency < 1 then
                            child.BackgroundColor3 = theme.TabBackground
                        end
                    elseif string.find(child.Name, "Element") or string.find(child.Name, "Container") then
                        child.BackgroundColor3 = theme.ElementBackground
                    elseif string.find(child.Name, "Toggle") then
                        child.BackgroundColor3 = theme.ToggleBackground
                    elseif string.find(child.Name, "Slider") then
                        child.BackgroundColor3 = theme.SliderBackground
                    elseif string.find(child.Name, "Input") then
                        child.BackgroundColor3 = theme.InputBackground
                    elseif string.find(child.Name, "Dropdown") then
                        child.BackgroundColor3 = theme.DropdownUnselected
                    end
                end
                
                -- Text elements
                if child:IsA("TextLabel") or child:IsA("TextButton") or child:IsA("TextBox") then
                    if child.TextColor3 ~= Color3.new(0, 0, 0) then
                        child.TextColor3 = theme.TextColor
                    end
                    if child:IsA("TextBox") then
                        child.PlaceholderColor3 = theme.PlaceholderColor
                    end
                end
                
                -- UIStroke elements
                if child:IsA("UIStroke") then
                    if string.find(child.Parent.Name, "Toggle") then
                        child.Color = theme.ToggleDisabledStroke
                    elseif string.find(child.Parent.Name, "Element") then
                        child.Color = theme.ElementStroke
                    elseif string.find(child.Parent.Name, "Tab") then
                        child.Color = theme.TabStroke
                    elseif string.find(child.Parent.Name, "Input") then
                        child.Color = theme.InputStroke
                    else
                        child.Color = theme.SecondaryElementStroke
                    end
                end
                
                -- ScrollingFrames
                if child:IsA("ScrollingFrame") then
                    child.BackgroundColor3 = theme.SecondaryElementBackground
                    child.ScrollBarImageColor3 = theme.ElementStroke
                end
            end)
        end
    end
    
    applyToDescendants(RayfieldUI)
    
    -- Notify user
    Rayfield:Notify({
        Title = "Theme Changed",
        Content = "Applied: " .. themeName,
        Duration = 2.5,
        Image = 4483362458
    })
end

-- Create Window
local Window = Rayfield:CreateWindow({
    Name = "Build A Mining Machine",
    LoadingTitle = "Mining Script",
    LoadingSubtitle = "by M4k3By41W1thPr0mpt",
    ConfigurationSaving = {
        Enabled = true,
        FolderName = nil,
        FileName = "MiningConfig"
    },
    Discord = {
        Enabled = false
    },
    KeySystem = false
})

-- Global Variables
_G.MineAura = false
_G.AutoCheckpoint = false
_G.AutoSell = false

-- Services
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LocalPlayer = Players.LocalPlayer

-- Mine Aura Function
local function MineAuraLoop()
    while _G.MineAura do
        task.wait()
        pcall(function()
            local character = LocalPlayer.Character
            if not character then return end
            
            local root = character:FindFirstChild("HumanoidRootPart")
            if not root then return end
            
            local car = workspace:FindFirstChild("Cars") and workspace.Cars:FindFirstChild(LocalPlayer.Name .. "_Car")
            if not car then return end

            local tools = {"Drill", "Pickaxe", "Piston", "Saw", "Shredder"}
            local carTools = {}
            
            for _, part in pairs(car:GetChildren()) do
                for _, name in ipairs(tools) do
                    if string.find(part.Name, name) then
                        table.insert(carTools, part)
                    end
                end
            end
            
            if #carTools == 0 then return end

            local stoneHitbox = workspace:FindFirstChild("StoneHitbox")
            if not stoneHitbox then return end
            
            local nearbyStones = {}
            for _, stone in pairs(stoneHitbox:GetDescendants()) do
                if stone:IsA("BasePart") and (stone.Position - root.Position).Magnitude <= 22 then
                    table.insert(nearbyStones, stone)
                end
            end
            
            if #nearbyStones == 0 then return end

            local hits = { [1] = {} }
            local index = 1
            
            for _, stone in ipairs(nearbyStones) do
                for _, tool in ipairs(carTools) do
                    hits[1][index] = { Stone = stone, DrillModel = tool }
                    index = index + 1
                end
            end

            local oresEvent = ReplicatedStorage:FindFirstChild("Events")
            if oresEvent then
                local clientEvents = oresEvent:FindFirstChild("Client")
                if clientEvents then
                    local oresFolder = clientEvents:FindFirstChild("Ores")
                    if oresFolder then
                        local hitRequest = oresFolder:FindFirstChild("HitRequest")
                        if hitRequest then
                            hitRequest:FireServer(unpack(hits))
                        end
                    end
                end
            end
        end)
    end
end

-- Auto Checkpoint Function
local function AutoCheckpointLoop()
    while _G.AutoCheckpoint do
        task.wait(0.5)
        pcall(function()
            local playerGui = LocalPlayer:FindFirstChild("PlayerGui")
            if not playerGui then return end
            
            local screenMessages = playerGui:FindFirstChild("ScreenMessages")
            if not screenMessages then return end
            
            local container = screenMessages:FindFirstChild("MessagesContainer")
            if not container then return end
            
            for _, msg in pairs(container:GetChildren()) do
                if msg:IsA("TextLabel") and string.find(msg.Text, "Your machine has broken down!") then
                    local events = ReplicatedStorage:FindFirstChild("Events")
                    if events then
                        local client = events:FindFirstChild("Client")
                        if client then
                            local car = client:FindFirstChild("Car")
                            if car then
                                local loadCheckpoint = car:FindFirstChild("LoadCheckpoint")
                                if loadCheckpoint then
                                    loadCheckpoint:FireServer()
                                end
                            end
                        end
                    end
                    break
                end
            end
        end)
    end
end

-- Auto Sell Function
local function AutoSellLoop()
    while _G.AutoSell do
        task.wait(5)
        pcall(function()
            local events = ReplicatedStorage:FindFirstChild("Events")
            if events then
                local client = events:FindFirstChild("Client")
                if client then
                    local ores = client:FindFirstChild("Ores")
                    if ores then
                        local sellAll = ores:FindFirstChild("SellAll")
                        if sellAll then
                            sellAll:InvokeServer()
                        end
                    end
                end
            end
        end)
    end
end

-- Main Tab
local MainTab = Window:CreateTab("⚒️ Main", 4483362458)

local MainSection = MainTab:CreateSection("Mining Features")

MainTab:CreateToggle({
    Name = "Mine Aura",
    CurrentValue = false,
    Flag = "MineAuraToggle",
    Callback = function(Value)
        _G.MineAura = Value
        if Value then
            task.spawn(MineAuraLoop)
            Rayfield:Notify({
                Title = "Mine Aura",
                Content = "Mining aura activated!",
                Duration = 3,
                Image = 4483362458
            })
        end
    end
})

MainTab:CreateToggle({
    Name = "Auto Last Checkpoint",
    CurrentValue = false,
    Flag = "AutoCheckpointToggle",
    Callback = function(Value)
        _G.AutoCheckpoint = Value
        if Value then
            task.spawn(AutoCheckpointLoop)
            Rayfield:Notify({
                Title = "Auto Checkpoint",
                Content = "Auto checkpoint activated!",
                Duration = 3,
                Image = 4483362458
            })
        end
    end
})

MainTab:CreateToggle({
    Name = "Auto Sell All",
    CurrentValue = false,
    Flag = "AutoSellToggle",
    Callback = function(Value)
        _G.AutoSell = Value
        if Value then
            task.spawn(AutoSellLoop)
            Rayfield:Notify({
                Title = "Auto Sell",
                Content = "Auto sell activated! (Every 5 seconds)",
                Duration = 3,
                Image = 4483362458
            })
        end
    end
})

MainTab:CreateButton({
    Name = "Sell All Now",
    Callback = function()
        pcall(function()
            local events = ReplicatedStorage:FindFirstChild("Events")
            if events then
                local client = events:FindFirstChild("Client")
                if client then
                    local ores = client:FindFirstChild("Ores")
                    if ores then
                        local sellAll = ores:FindFirstChild("SellAll")
                        if sellAll then
                            sellAll:InvokeServer()
                        end
                    end
                end
            end
        end)
        Rayfield:Notify({
            Title = "Sold",
            Content = "All ores have been sold!",
            Duration = 2.5,
            Image = 4483362458
        })
    end
})

MainTab:CreateButton({
    Name = "Load Checkpoint",
    Callback = function()
        pcall(function()
            local events = ReplicatedStorage:FindFirstChild("Events")
            if events then
                local client = events:FindFirstChild("Client")
                if client then
                    local car = client:FindFirstChild("Car")
                    if car then
                        local loadCheckpoint = car:FindFirstChild("LoadCheckpoint")
                        if loadCheckpoint then
                            loadCheckpoint:FireServer()
                        end
                    end
                end
            end
        end)
        Rayfield:Notify({
            Title = "Checkpoint",
            Content = "Loaded last checkpoint!",
            Duration = 2.5,
            Image = 4483362458
        })
    end
})

-- Settings Tab
local SettingsTab = Window:CreateTab("⚙️ Settings", 4483345998)

local ThemeSection = SettingsTab:CreateSection("Theme Settings")

-- Theme Names List
local ThemeNames = {"Default", "Amethyst", "Ocean", "Emerald", "Ruby", "Midnight", "Sunset"}

SettingsTab:CreateDropdown({
    Name = "Select Theme",
    Options = ThemeNames,
    CurrentOption = {"Default"},
    MultipleOptions = false,
    Flag = "ThemeDropdown",
    Callback = function(Option)
        local selectedTheme = Option[1] or Option
        ApplyThemeLive(selectedTheme)
    end
})

SettingsTab:CreateButton({
    Name = "Apply Theme",
    Callback = function()
        ApplyThemeLive(CurrentTheme)
    end
})

local CreditsSection = SettingsTab:CreateSection("Credits")

SettingsTab:CreateParagraph({
    Title = "Script Information",
    Content = "Build A Mining Machine Script\n\nCredit: M4k3By41W1thPr0mpt\nUI Library: Rayfield\n\nTheme switcher works live without reload!"
})

SettingsTab:CreateButton({
    Name = "Destroy Script",
    Callback = function()
        _G.MineAura = false
        _G.AutoCheckpoint = false
        _G.AutoSell = false
        Rayfield:Destroy()
    end
})

-- Initialize notification
Rayfield:Notify({
    Title = "Script Loaded",
    Content = "Build A Mining Machine script loaded!\nCredit: M4k3By41W1thPr0mpt",
    Duration = 5,
    Image = 4483362458
})

Features & Information

Stealing form https://scriptblox.com/script/Build-A-Mining-Machine-Mine-Aura-Fast-Cash-Tora-IsMe-OPEN-SOURCE-69166

Community Comments (2)

mursancamursancaDec 11, 2025

not the worst one but pretty trash script

Replying to @mursanca
Tr0ngXTr0ngXDec 12, 2025

@spartak3310 It works bro

More Scripts for Build a Mining Machine⛏️