--[[ 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 })