local UserInputService = game:GetService('UserInputService') local Players = game:GetService('Players') local ReplicatedStorage = game:GetService('ReplicatedStorage') local RunService = game:GetService('RunService') local player = Players.LocalPlayer local playerGui = player:WaitForChild('PlayerGui') -- Main GUI local screenGui = Instance.new('ScreenGui') screenGui.Name = 'DirtIncAutomation' screenGui.ResetOnSpawn = false screenGui.Parent = playerGui local mainFrame = Instance.new('Frame') mainFrame.Size = UDim2.new(0, 450, 0, 300) mainFrame.Position = UDim2.new(0.5, -225, 0.5, -150) mainFrame.BackgroundColor3 = Color3.fromRGB(255, 140, 0) mainFrame.BorderSizePixel = 0 mainFrame.Parent = screenGui local mainStroke = Instance.new('UIStroke') mainStroke.Color = Color3.fromRGB(0, 0, 0) mainStroke.Thickness = 2 mainStroke.Parent = mainFrame -- Title Bar local titleBar = Instance.new('Frame') titleBar.Size = UDim2.new(1, 0, 0, 30) titleBar.BackgroundColor3 = Color3.fromRGB(139, 90, 43) titleBar.BorderSizePixel = 0 titleBar.Parent = mainFrame local titleGradient = Instance.new('UIGradient') titleGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(180, 120, 60)), ColorSequenceKeypoint.new(1, Color3.fromRGB(101, 67, 33)), }) titleGradient.Rotation = 45 titleGradient.Parent = titleBar local titleLabel = Instance.new('TextLabel') titleLabel.Size = UDim2.new(1, -60, 1, 0) titleLabel.Position = UDim2.new(0, 10, 0, 0) titleLabel.BackgroundTransparency = 1 titleLabel.Text = 'Dirt Inc. Automation' titleLabel.TextColor3 = Color3.fromRGB(101, 67, 33) titleLabel.TextSize = 16 titleLabel.Font = Enum.Font.GothamBold titleLabel.TextXAlignment = Enum.TextXAlignment.Left titleLabel.Parent = titleBar local titleStroke = Instance.new('UIStroke') titleStroke.Color = Color3.fromRGB(0, 0, 0) titleStroke.Thickness = 2 titleStroke.Parent = titleLabel -- Minimize Button local minimizeBtn = Instance.new('TextButton') minimizeBtn.Size = UDim2.new(0, 40, 0, 30) minimizeBtn.Position = UDim2.new(1, -40, 0, 0) minimizeBtn.BackgroundColor3 = Color3.fromRGB(200, 0, 0) minimizeBtn.BorderSizePixel = 0 minimizeBtn.Text = 'x' minimizeBtn.TextColor3 = Color3.fromRGB(255, 255, 255) minimizeBtn.TextSize = 18 minimizeBtn.Font = Enum.Font.GothamBold minimizeBtn.Parent = titleBar -- Tabs container local tabsContainer = Instance.new('Frame') tabsContainer.Size = UDim2.new(0, 100, 1, -30) tabsContainer.Position = UDim2.new(0, 0, 0, 30) tabsContainer.BackgroundColor3 = Color3.fromRGB(50, 50, 50) tabsContainer.BorderSizePixel = 0 tabsContainer.Parent = mainFrame local tabsStroke = Instance.new('UIStroke') tabsStroke.Color = Color3.fromRGB(0, 0, 0) tabsStroke.Thickness = 2 tabsStroke.Parent = tabsContainer -- Content Area local contentArea = Instance.new('Frame') contentArea.Size = UDim2.new(1, -100, 1, -30) contentArea.Position = UDim2.new(0, 100, 0, 30) contentArea.BackgroundColor3 = Color3.fromRGB(255, 140, 0) contentArea.BorderSizePixel = 0 contentArea.Parent = mainFrame -- Dragging main frame local dragging, dragStart, startPos = false, nil, nil titleBar.InputBegan:Connect(function(input, gp) if gp then return end if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = mainFrame.Position end end) titleBar.InputEnded:Connect(function(input, gp) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) UserInputService.InputChanged:Connect(function(input, gp) if dragging and dragStart then local delta = input.Position - dragStart mainFrame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) -- Tabs data local tabs = { { id = 'clicks', name = 'clicks farm', textColor = Color3.fromRGB(220, 220, 220), bgColor = Color3.fromRGB(180, 180, 180), }, { id = 'flesh', name = 'flesh/passives farm', textColor = Color3.fromRGB(255, 230, 0), bgColor = Color3.fromRGB(255, 140, 0), }, { id = 'bone', name = 'bone farm', textColor = Color3.fromRGB(255, 255, 255), bgColor = Color3.fromRGB(255, 255, 255), }, } local tabButtons, tabContents, currentTab = {}, {}, 'flesh' -- Helpers local function makeTabLabel(parent, text, color) local label = Instance.new('TextLabel') label.Size = UDim2.new(1, 0, 0, 30) label.Position = UDim2.new(0, 0, 0, 0) label.BackgroundTransparency = 1 label.Text = text label.Font = Enum.Font.GothamBold label.TextSize = 20 label.TextColor3 = color label.Parent = parent local stroke = Instance.new('UIStroke') stroke.Color = Color3.fromRGB(0, 0, 0) stroke.Thickness = 2 stroke.Parent = label return label end local function makeStartStop(frame, tabId, fireFunc, textColor) local btn = Instance.new('TextButton') btn.Size = UDim2.new(0, 200, 0, 60) btn.Position = UDim2.new(0.5, -100, 0.5, -30) btn.BackgroundColor3 = Color3.fromRGB(50, 200, 50) btn.Text = 'start' btn.Font = Enum.Font.GothamBold btn.TextSize = 18 btn.TextColor3 = Color3.fromRGB(0, 255, 0) btn.Parent = frame local stroke = Instance.new('UIStroke') stroke.Color = Color3.fromRGB(0, 0, 0) stroke.Thickness = 1.5 stroke.Parent = btn local running = false local conn btn.MouseButton1Click:Connect(function() running = not running if running then btn.Text = 'stop' btn.TextColor3 = Color3.fromRGB(255, 0, 0) btn.BackgroundColor3 = Color3.fromRGB(200, 50, 50) tabButtons[tabId].TextColor3 = Color3.fromRGB(0, 255, 0) conn = RunService.Heartbeat:Connect(fireFunc) else btn.Text = 'start' btn.TextColor3 = Color3.fromRGB(0, 255, 0) btn.BackgroundColor3 = Color3.fromRGB(50, 200, 50) tabButtons[tabId].TextColor3 = textColor if conn then conn:Disconnect() conn = nil end end end) end local function switchTab(tabId) for id, frame in pairs(tabContents) do frame.Visible = false end tabContents[tabId].Visible = true currentTab = tabId for _, t in ipairs(tabs) do if t.id == tabId then contentArea.BackgroundColor3 = t.bgColor end end end -- Create tabs for i, t in ipairs(tabs) do local btn = Instance.new('TextButton') btn.Size = UDim2.new(1, 0, 0, 60) btn.Position = UDim2.new(0, 0, 0, (i - 1) * 60) btn.BackgroundColor3 = t.bgColor btn.BorderSizePixel = 0 btn.Text = t.name btn.Font = Enum.Font.GothamBold btn.TextSize = 13 btn.TextColor3 = t.textColor btn.TextWrapped = true btn.Parent = tabsContainer local stroke = Instance.new('UIStroke') stroke.Color = Color3.fromRGB(0, 0, 0) stroke.Thickness = 2 stroke.Parent = btn tabButtons[t.id] = btn -- Separator if i < #tabs then local sep = Instance.new('Frame') sep.Size = UDim2.new(1, 0, 0, 2) sep.Position = UDim2.new(0, 0, 0, (i * 60)) sep.BackgroundColor3 = Color3.fromRGB(0, 0, 0) sep.BorderSizePixel = 0 sep.Parent = tabsContainer end local frame = Instance.new('Frame') frame.Size = UDim2.new(1, 0, 1, 0) frame.BackgroundTransparency = 1 frame.BorderSizePixel = 2 frame.BorderColor3 = Color3.fromRGB(0, 0, 0) frame.Parent = contentArea frame.Visible = i == 2 tabContents[t.id] = frame makeTabLabel(frame, t.name, t.textColor) btn.MouseButton1Click:Connect(function() switchTab(t.id) end) end -- Scripts local function fleshFunc() pcall(function() ReplicatedStorage:WaitForChild('Remotes') :WaitForChild('BossReward') :FireServer(5) end) end local function clicksFunc() pcall(function() ReplicatedStorage:WaitForChild('Remotes') :WaitForChild('Clicks') :FireServer() end) end local function boneFunc() pcall(function() ReplicatedStorage:WaitForChild('Remotes') :WaitForChild('Bone') :FireServer() end) end -- Start/Stop buttons makeStartStop(tabContents.clicks, 'clicks', clicksFunc, tabs[1].textColor) makeStartStop(tabContents.flesh, 'flesh', fleshFunc, tabs[2].textColor) makeStartStop(tabContents.bone, 'bone', boneFunc, tabs[3].textColor) -- Bone instruction text local boneText = Instance.new('TextLabel') boneText.Size = UDim2.new(1, 0, 0, 40) boneText.Position = UDim2.new(0, 0, 0, 40) boneText.BackgroundTransparency = 1 boneText.Text = 'stand on the button for best effect! both work simultaneously.' boneText.Font = Enum.Font.GothamBold boneText.TextSize = 16 boneText.TextColor3 = Color3.fromRGB(255, 255, 255) boneText.Parent = tabContents.bone local boneStroke = Instance.new('UIStroke') boneStroke.Color = Color3.fromRGB(0, 0, 0) boneStroke.Thickness = 1.5 boneStroke.Parent = boneText -- Minimize/Restore local isMinimized = false local minimizedBtnPosition = UDim2.new(0, 10, 0, 10) local minimizedBtn local function minimizeGUI() isMinimized = true mainFrame.Visible = false minimizedBtn = Instance.new('TextButton') minimizedBtn.Size = UDim2.new(0, 200, 0, 50) minimizedBtn.Position = minimizedBtnPosition minimizedBtn.BackgroundColor3 = Color3.fromRGB(139, 90, 43) minimizedBtn.BorderSizePixel = 3 minimizedBtn.BorderColor3 = Color3.fromRGB(0, 0, 0) minimizedBtn.Text = 'Dirt Inc. Automation' minimizedBtn.TextColor3 = Color3.fromRGB(101, 67, 33) minimizedBtn.TextSize = 16 minimizedBtn.Font = Enum.Font.GothamBold minimizedBtn.Parent = screenGui local stroke = Instance.new('UIStroke') stroke.Color = Color3.fromRGB(0, 0, 0) stroke.Thickness = 2 stroke.Parent = minimizedBtn local grad = Instance.new('UIGradient') grad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(180, 120, 60)), ColorSequenceKeypoint.new(1, Color3.fromRGB(101, 67, 33)), }) grad.Rotation = 45 grad.Parent = minimizedBtn local minDragging = false local minDragStart = nil local minStartPos = nil local dragDistance = 0 local dragThreshold = 5 local minConn minimizedBtn.InputBegan:Connect(function(input, gp) if gp then return end if input.UserInputType == Enum.UserInputType.MouseButton1 then minDragging = true minDragStart = input.Position minStartPos = minimizedBtn.Position dragDistance = 0 end end) minimizedBtn.InputEnded:Connect(function(input, gp) if input.UserInputType == Enum.UserInputType.MouseButton1 then minDragging = false end end) minConn = UserInputService.InputChanged:Connect(function(input, gp) if minDragging and minDragStart then local delta = input.Position - minDragStart dragDistance = math.sqrt(delta.X ^ 2 + delta.Y ^ 2) if dragDistance > dragThreshold then minimizedBtn.Position = UDim2.new( minStartPos.X.Scale, minStartPos.X.Offset + delta.X, minStartPos.Y.Scale, minStartPos.Y.Offset + delta.Y ) minimizedBtnPosition = minimizedBtn.Position end end end) minimizedBtn.MouseButton1Click:Connect(function() if dragDistance < dragThreshold then mainFrame.Visible = true isMinimized = false minConn:Disconnect() minimizedBtn:Destroy() end end) end minimizeBtn.MouseButton1Click:Connect(function() if not isMinimized then minimizeGUI() end end)