
Key Required

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)
Commenting preemptively for engagement and boosting views!
Please make script for [4x] Crop incremental
@blackhole1578 working on it now. tough nut to crack though, but i'll give it some time