Wheat Tycoon 2 Script
Wheat Tycoon 2 is a tycoon game where building up your empire takes a lot of time and consistent attention to keep the income flowing. Progress slows down significantly if you are not actively managing everything, and the early stages especially drag without help. These scripts automate the whole operation with Auto Farm, Pastebin so your tycoon keeps growing whether you are watching or not.
2 working scriptsloadstring(game:HttpGet("https://raw.githubusercontent.com/synthhex1/AutoFarm/refs/heads/main/WT2.lua"))()Wheat Tycoon 2 Scripts (Auto Farm, Pastebin & More)
To run any of these scripts you will need a working Roblox executor. Check out the list at that link for free and paid options that work in 2026.
Wheat Tycoon 2 Script Auto Farm, Auto Buttons, Auto Upgrade, Auto Rebirth, Auto Prestige
Wheat Tycoon 2 Script Auto Farm, Auto Buttons, Auto Upgrade, Auto Rebirth, Auto Prestige
loadstring(game:HttpGet("https://raw.githubusercontent.com/synthhex1/AutoFarm/refs/heads/main/WT2.lua"))()Wheat Tycoon 2 Script Pastebin2026 :
Wheat Tycoon 2 Script Pastebin2026 :
--// Player / character
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ByteNet = ReplicatedStorage:WaitForChild("ByteNetReliable")
local TweenService = game:GetService("TweenService")
local autoButtons = false
local purchased = {} -- кэш купленных кнопок
----------------------------------------------------------------
-- Modern UI
----------------------------------------------------------------
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "ModernHelperUI"
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.Parent = player:WaitForChild("PlayerGui")
-- Main Frame
local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.fromOffset(340, 387)
MainFrame.Position = UDim2.new(0.5, -170, 0.5, -193.5)
MainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
MainFrame.BorderSizePixel = 0
MainFrame.ClipsDescendants = true
MainFrame.Parent = ScreenGui
-- Corner rounding
local MainCorner = Instance.new("UICorner")
MainCorner.CornerRadius = UDim.new(0, 16)
MainCorner.Parent = MainFrame
-- Drop shadow effect
local Shadow = Instance.new("ImageLabel")
Shadow.Name = "Shadow"
Shadow.Size = UDim2.new(1, 40, 1, 40)
Shadow.Position = UDim2.fromOffset(-20, -20)
Shadow.BackgroundTransparency = 1
Shadow.Image = "rbxasset://textures/ui/GuiImagePlaceholder.png"
Shadow.ImageColor3 = Color3.fromRGB(0, 0, 0)
Shadow.ImageTransparency = 0.5
Shadow.ScaleType = Enum.ScaleType.Slice
Shadow.SliceCenter = Rect.new(10, 10, 118, 118)
Shadow.ZIndex = 0
Shadow.Parent = MainFrame
-- Accent gradient bar at top
local AccentBar = Instance.new("Frame")
AccentBar.Name = "AccentBar"
AccentBar.Size = UDim2.new(1, 0, 0, 4)
AccentBar.Position = UDim2.new(0, 0, 0, 0)
AccentBar.BorderSizePixel = 0
AccentBar.Parent = MainFrame
local BarGradient = Instance.new("UIGradient")
BarGradient.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0, Color3.fromRGB(138, 43, 226)),
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(75, 0, 130)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(138, 43, 226))
}
BarGradient.Parent = AccentBar
-- Header
local Header = Instance.new("Frame")
Header.Name = "Header"
Header.Size = UDim2.new(1, 0, 0, 60)
Header.Position = UDim2.new(0, 0, 0, 4)
Header.BackgroundTransparency = 1
Header.Parent = MainFrame
local Title = Instance.new("TextLabel")
Title.Name = "Title"
Title.Size = UDim2.new(1, -100, 0, 30)
Title.Position = UDim2.new(0, 20, 0, 10)
Title.BackgroundTransparency = 1
Title.Text = "Wheat Tycoon 2"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.Font = Enum.Font.GothamBold
Title.TextSize = 18
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.Parent = Header
local Subtitle = Instance.new("TextLabel")
Subtitle.Name = "Subtitle"
Subtitle.Size = UDim2.new(1, -100, 0, 18)
Subtitle.Position = UDim2.new(0, 20, 0, 38)
Subtitle.BackgroundTransparency = 1
Subtitle.Text = "Farm Helper v2.0"
Subtitle.TextColor3 = Color3.fromRGB(150, 150, 160)
Subtitle.Font = Enum.Font.Gotham
Subtitle.TextSize = 12
Subtitle.TextXAlignment = Enum.TextXAlignment.Left
Subtitle.Parent = Header
-- Minimize button
local MinimizeBtn = Instance.new("TextButton")
MinimizeBtn.Name = "MinimizeButton"
MinimizeBtn.Size = UDim2.fromOffset(36, 36)
MinimizeBtn.Position = UDim2.new(1, -88, 0, 14)
MinimizeBtn.BackgroundColor3 = Color3.fromRGB(35, 35, 40)
MinimizeBtn.Text = "─"
MinimizeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
MinimizeBtn.Font = Enum.Font.GothamBold
MinimizeBtn.TextSize = 16
MinimizeBtn.BorderSizePixel = 0
MinimizeBtn.Parent = Header
local MinimizeCorner = Instance.new("UICorner")
MinimizeCorner.CornerRadius = UDim.new(0, 8)
MinimizeCorner.Parent = MinimizeBtn
-- Close button
local CloseBtn = Instance.new("TextButton")
CloseBtn.Name = "CloseButton"
CloseBtn.Size = UDim2.fromOffset(36, 36)
CloseBtn.Position = UDim2.new(1, -46, 0, 14)
CloseBtn.BackgroundColor3 = Color3.fromRGB(220, 38, 38)
CloseBtn.Text = "×"
CloseBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseBtn.Font = Enum.Font.GothamBold
CloseBtn.TextSize = 24
CloseBtn.BorderSizePixel = 0
CloseBtn.Parent = Header
local CloseCorner = Instance.new("UICorner")
CloseCorner.CornerRadius = UDim.new(0, 8)
CloseCorner.Parent = CloseBtn
-- Hover effects for buttons
CloseBtn.MouseEnter:Connect(function()
TweenService:Create(CloseBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(239, 68, 68)}):Play()
end)
CloseBtn.MouseLeave:Connect(function()
TweenService:Create(CloseBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(220, 38, 38)}):Play()
end)
MinimizeBtn.MouseEnter:Connect(function()
TweenService:Create(MinimizeBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(45, 45, 50)}):Play()
end)
MinimizeBtn.MouseLeave:Connect(function()
TweenService:Create(MinimizeBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(35, 35, 40)}):Play()
end)
-- Scrollable content container
local Content = Instance.new("ScrollingFrame")
Content.Name = "Content"
Content.Size = UDim2.new(1, -40, 0, 309)
Content.Position = UDim2.new(0, 20, 0, 70)
Content.BackgroundTransparency = 1
Content.BorderSizePixel = 0
Content.ScrollBarThickness = 8
Content.ScrollBarImageColor3 = Color3.fromRGB(138, 43, 226)
Content.ScrollBarImageTransparency = 0.3
Content.CanvasSize = UDim2.new(0, 0, 0, 340) -- 4 кнопки × 65px + 3 отступа × 12px = 296px + запас
Content.ScrollingDirection = Enum.ScrollingDirection.Y
Content.ScrollingEnabled = true
Content.VerticalScrollBarInset = Enum.ScrollBarInset.ScrollBar
Content.ClipsDescendants = true
Content.Parent = MainFrame
-- Красивый скроллбар corner
local ScrollCorner = Instance.new("UICorner")
ScrollCorner.CornerRadius = UDim.new(1, 0)
ScrollCorner.Parent = Content
-- List layout for buttons
local ListLayout = Instance.new("UIListLayout")
ListLayout.Padding = UDim.new(0, 12)
ListLayout.SortOrder = Enum.SortOrder.LayoutOrder
ListLayout.Parent = Content
-- Padding внутри скролла
local ContentPadding = Instance.new("UIPadding")
ContentPadding.PaddingRight = UDim.new(0, 6) -- отступ от скроллбара
ContentPadding.Parent = Content
----------------------------------------------------------------
-- Modern Button Creator
----------------------------------------------------------------
local function createModernButton(text, layoutOrder, accentColor)
local ButtonFrame = Instance.new("Frame")
ButtonFrame.Name = text
ButtonFrame.Size = UDim2.new(1, -6, 0, 65) -- -6 чтобы не налезало на скроллбар
ButtonFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 35)
ButtonFrame.BorderSizePixel = 0
ButtonFrame.LayoutOrder = layoutOrder
ButtonFrame.Parent = Content
local BtnCorner = Instance.new("UICorner")
BtnCorner.CornerRadius = UDim.new(0, 12)
BtnCorner.Parent = ButtonFrame
-- Status indicator
local StatusDot = Instance.new("Frame")
StatusDot.Name = "StatusDot"
StatusDot.Size = UDim2.fromOffset(10, 10)
StatusDot.Position = UDim2.new(0, 15, 0.5, -5)
StatusDot.BackgroundColor3 = Color3.fromRGB(100, 100, 110)
StatusDot.BorderSizePixel = 0
StatusDot.Parent = ButtonFrame
local DotCorner = Instance.new("UICorner")
DotCorner.CornerRadius = UDim.new(1, 0)
DotCorner.Parent = StatusDot
-- Button text
local BtnLabel = Instance.new("TextLabel")
BtnLabel.Name = "Label"
BtnLabel.Size = UDim2.new(1, -90, 0, 22)
BtnLabel.Position = UDim2.new(0, 35, 0, 12)
BtnLabel.BackgroundTransparency = 1
BtnLabel.Text = text
BtnLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
BtnLabel.Font = Enum.Font.GothamBold
BtnLabel.TextSize = 15
BtnLabel.TextXAlignment = Enum.TextXAlignment.Left
BtnLabel.Parent = ButtonFrame
-- Status text
local StatusLabel = Instance.new("TextLabel")
StatusLabel.Name = "Status"
StatusLabel.Size = UDim2.new(1, -90, 0, 16)
StatusLabel.Position = UDim2.new(0, 35, 0, 38)
StatusLabel.BackgroundTransparency = 1
StatusLabel.Text = "Disabled"
StatusLabel.TextColor3 = Color3.fromRGB(120, 120, 130)
StatusLabel.Font = Enum.Font.Gotham
StatusLabel.TextSize = 11
StatusLabel.TextXAlignment = Enum.TextXAlignment.Left
StatusLabel.Parent = ButtonFrame
-- Toggle button
local ToggleBtn = Instance.new("TextButton")
ToggleBtn.Name = "ToggleButton"
ToggleBtn.Size = UDim2.fromOffset(60, 32)
ToggleBtn.Position = UDim2.new(1, -70, 0.5, -16)
ToggleBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 45)
ToggleBtn.Text = ""
ToggleBtn.BorderSizePixel = 0
ToggleBtn.Parent = ButtonFrame
local ToggleCorner = Instance.new("UICorner")
ToggleCorner.CornerRadius = UDim.new(1, 0)
ToggleCorner.Parent = ToggleBtn
-- Toggle slider
local Slider = Instance.new("Frame")
Slider.Name = "Slider"
Slider.Size = UDim2.fromOffset(26, 26)
Slider.Position = UDim2.fromOffset(3, 3)
Slider.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Slider.BorderSizePixel = 0
Slider.Parent = ToggleBtn
local SliderCorner = Instance.new("UICorner")
SliderCorner.CornerRadius = UDim.new(1, 0)
SliderCorner.Parent = Slider
-- Hover effect
ToggleBtn.MouseEnter:Connect(function()
TweenService:Create(ButtonFrame, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(35, 35, 40)}):Play()
end)
ToggleBtn.MouseLeave:Connect(function()
TweenService:Create(ButtonFrame, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(30, 30, 35)}):Play()
end)
-- Return components
return {
Frame = ButtonFrame,
Button = ToggleBtn,
Dot = StatusDot,
Status = StatusLabel,
Slider = Slider,
AccentColor = accentColor
}
end
----------------------------------------------------------------
-- Button Animations
----------------------------------------------------------------
local function toggleButton(btnData, enabled)
local tweenInfo = TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
if enabled then
TweenService:Create(btnData.Button, tweenInfo, {BackgroundColor3 = btnData.AccentColor}):Play()
TweenService:Create(btnData.Slider, tweenInfo, {Position = UDim2.fromOffset(31, 3)}):Play()
TweenService:Create(btnData.Dot, tweenInfo, {BackgroundColor3 = btnData.AccentColor}):Play()
btnData.Status.Text = "Active"
btnData.Status.TextColor3 = btnData.AccentColor
else
TweenService:Create(btnData.Button, tweenInfo, {BackgroundColor3 = Color3.fromRGB(40, 40, 45)}):Play()
TweenService:Create(btnData.Slider, tweenInfo, {Position = UDim2.fromOffset(3, 3)}):Play()
TweenService:Create(btnData.Dot, tweenInfo, {BackgroundColor3 = Color3.fromRGB(100, 100, 110)}):Play()
btnData.Status.Text = "Disabled"
btnData.Status.TextColor3 = Color3.fromRGB(120, 120, 130)
end
end
----------------------------------------------------------------
-- Create Buttons
----------------------------------------------------------------
local AutoButtonsBtn = createModernButton("Auto Buttons", 1, Color3.fromRGB(46, 213, 115))
local UpgradeBtn = createModernButton("Auto Upgrade", 2, Color3.fromRGB(52, 152, 219))
local RebirthBtn = createModernButton("Auto Rebirth", 3, Color3.fromRGB(155, 89, 182))
local PrestigeBtn = createModernButton("Auto Prestige", 4, Color3.fromRGB(241, 196, 15))
----------------------------------------------------------------
-- Smart Auto Buttons Logic (v2 — optimized & safe)
----------------------------------------------------------------
local function hasTouchTx(part)
for _, d in ipairs(part:GetDescendants()) do
if d:IsA("TouchTransmitter") then
return true
end
end
return false
end
-- перевод "$3.96M" -> 3960000
local function parsePrice(text)
if not text or text == "" then return math.huge end
text = text:gsub("%$", ""):gsub(",", ""):gsub("%s+", "")
local num, suffix = text:match("([%d%.]+)([KMB]?)")
num = tonumber(num)
if not num then return math.huge end
if suffix == "K" then num *= 1e3
elseif suffix == "M" then num *= 1e6
elseif suffix == "B" then num *= 1e9 end
return num
end
-- текущие деньги игрока
local function getMoney()
local stats = player:FindFirstChild("leaderstats")
if not stats then return 0 end
local money = stats:FindFirstChild("Money")
return money and money.Value or 0
end
----------------------------------------------------------------
-- Определяем участок игрока по ближайшей кнопке
----------------------------------------------------------------
local function getPlayerPlot()
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local hrp = character:WaitForChild("HumanoidRootPart")
local plotsFolder = workspace:FindFirstChild("Plots")
if not plotsFolder then
warn("Not found workspace.Plots")
return nil
end
local nearestPlot, nearestDist = nil, math.huge
for _, plot in ipairs(plotsFolder:GetChildren()) do
local buyButtons = plot:FindFirstChild("BuyButtons")
if buyButtons and #buyButtons:GetChildren() > 0 then
local anyPart = buyButtons:FindFirstChildWhichIsA("BasePart", true)
if anyPart then
local dist = (hrp.Position - anyPart.Position).Magnitude
if dist < nearestDist then
nearestDist = dist
nearestPlot = plot
end
end
end
end
if nearestPlot then
print("Successfully")
else
warn("Maybe bug unsuccessfully")
end
return nearestPlot
end
-- Собираем кнопки только со СВОЕГО участка (исправлено)
local function collectButtonParts()
local out = {}
local myPlot = getPlayerPlot()
if not myPlot then return out end
local buyButtons = myPlot:FindFirstChild("BuyButtons")
if not buyButtons then return out end
for _, obj in ipairs(buyButtons:GetDescendants()) do
if obj:IsA("BasePart") and tonumber(obj.Name) and hasTouchTx(obj) then
table.insert(out, obj)
end
end
return out
end
-- получаем цену кнопки
local function getButtonPrice(part)
local gui = part:FindFirstChildOfClass("BillboardGui")
if not gui then return math.huge end
for _, obj in pairs(gui:GetDescendants()) do
if obj:IsA("TextLabel") or obj:IsA("TextBox") or obj:IsA("TextButton") then
local price = parsePrice(obj.Text)
if price ~= math.huge then
return price
end
end
end
return math.huge
end
----------------------------------------------------------------
-- Получаем кнопки, которые можно купить за текущие деньги
----------------------------------------------------------------
local function getAffordableButtons(myPlot, currentMoney)
local result = {}
local buyButtons = myPlot:FindFirstChild("BuyButtons")
if not buyButtons then return result end
for _, part in ipairs(buyButtons:GetDescendants()) do
if part:IsA("BasePart") and hasTouchTx(part) and not purchased[part] then
local price = getButtonPrice(part)
if price <= currentMoney then
table.insert(result, {part = part, price = price})
end
end
end
-- сортируем кнопки по цене (чтобы покупать от дешёвых к дорогим)
table.sort(result, function(a, b)
return a.price < b.price
end)
return result
end
local ByteNetForButtons = game:GetService("ReplicatedStorage"):FindFirstChild("ByteNetReliable")
local AUTO_TELE_PAYLOAD = buffer and buffer.fromstring or function(s) return s end
AUTO_TELE_PAYLOAD = AUTO_TELE_PAYLOAD("\"\001")
local function autoButtonsLoop()
autoButtons = not autoButtons
toggleButton(AutoButtonsBtn, autoButtons)
if not autoButtons then
print("off")
return
end
local myPlot = getPlayerPlot()
if not myPlot then
warn("plot not found")
toggleButton(AutoButtonsBtn, false)
autoButtons = false
return
end
print("Циклический Auto Buttons активирован для:", myPlot.Name)
task.spawn(function()
local hrp = (player.Character or player.CharacterAdded:Wait()):WaitForChild("HumanoidRootPart")
while autoButtons do
local buyButtons = myPlot:FindFirstChild("BuyButtons")
if not buyButtons then
task.wait(1)
continue
end
-- собираем все кнопки (даже если уже куплены — список обновится)
local allButtons = {}
for _, part in ipairs(buyButtons:GetDescendants()) do
if part:IsA("BasePart") and hasTouchTx(part) then
table.insert(allButtons, part)
end
end
-- сортируем по имени (чтобы шёл последовательно)
table.sort(allButtons, function(a, b)
return tonumber(a.Name) and tonumber(b.Name) and tonumber(a.Name) < tonumber(b.Name)
end)
for _, part in ipairs(allButtons) do
if not autoButtons then break end
if not (part and part.Parent) then continue end
local price = getButtonPrice(part)
local money = getMoney()
-- проверяем — хватает ли денег
if price <= money then
pcall(function()
ByteNetForButtons:FireServer(AUTO_TELE_PAYLOAD, {part})
firetouchinterest(hrp, part, 0)
task.wait(0.015)
firetouchinterest(hrp, part, 1)
end)
task.wait(0.05)
end
end
-- делаем круг по всем кнопкам заново
task.wait(0.5)
end
end)
end
----------------------------------------------------------------
-- Auto Upgrade Logic
----------------------------------------------------------------
local PAYLOAD = {
FasterGrowth = buffer.fromstring("\030\f\000FasterGrowth\005\000Wheat"),
PriceIncrease = buffer.fromstring("\030\r\000PriceIncrease\005\000Wheat"),
Rebirth = buffer.fromstring("\025"),
Prestige = buffer.fromstring("\026")
}
local function fireMany(payload, times, delaySec)
for i = 1, times do
ByteNet:FireServer(payload)
task.wait(delaySec or 0.05)
end
end
local autoUpgradeEnabled = false
local function autoUpgradeLoop()
autoUpgradeEnabled = not autoUpgradeEnabled
toggleButton(UpgradeBtn, autoUpgradeEnabled)
task.spawn(function()
while autoUpgradeEnabled do
fireMany(PAYLOAD.FasterGrowth, 15, 0.05)
fireMany(PAYLOAD.PriceIncrease, 100, 0.05)
for i = 1, 15 do
if not autoUpgradeEnabled then break end
task.wait(1)
end
end
end)
end
UpgradeBtn.Button.MouseButton1Click:Connect(autoUpgradeLoop)
----------------------------------------------------------------
-- Auto Rebirth Logic
----------------------------------------------------------------
local autoRebirthEnabled = false
local function autoRebirthLoop()
autoRebirthEnabled = not autoRebirthEnabled
toggleButton(RebirthBtn, autoRebirthEnabled)
task.spawn(function()
while autoRebirthEnabled do
ByteNet:FireServer(PAYLOAD.Rebirth)
for i = 1, 5 do
if not autoRebirthEnabled then break end
task.wait(0.5)
end
end
end)
end
RebirthBtn.Button.MouseButton1Click:Connect(autoRebirthLoop)
----------------------------------------------------------------
-- Auto Prestige Logic
----------------------------------------------------------------
local autoPrestigeEnabled = false
local function autoPrestigeLoop()
autoPrestigeEnabled = not autoPrestigeEnabled
toggleButton(PrestigeBtn, autoPrestigeEnabled)
task.spawn(function()
while autoPrestigeEnabled do
ByteNet:FireServer(PAYLOAD.Prestige)
for i = 1, 10 do
if not autoPrestigeEnabled then break end
task.wait(1)
end
end
end)
end
PrestigeBtn.Button.MouseButton1Click:Connect(autoPrestigeLoop)
----------------------------------------------------------------
-- Draggable Frame
----------------------------------------------------------------
local dragging, dragInput, dragStart, startPos
local function update(input)
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
Header.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = MainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
Header.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
game:GetService("UserInputService").InputChanged:Connect(function(input)
if input == dragInput and dragging then
update(input)
end
end)
----------------------------------------------------------------
-- Minimize/Maximize Logic
----------------------------------------------------------------
local isMinimized = false
local normalSize = UDim2.fromOffset(340, 387)
local minimizedSize = UDim2.fromOffset(340, 64)
MinimizeBtn.MouseButton1Click:Connect(function()
isMinimized = not isMinimized
local targetSize = isMinimized and minimizedSize or normalSize
local tweenInfo = TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
TweenService:Create(MainFrame, tweenInfo, {Size = targetSize}):Play()
TweenService:Create(Content, tweenInfo, {
Size = isMinimized and UDim2.new(1, -40, 0, 0) or UDim2.new(1, -40, 0, 309)
}):Play()
MinimizeBtn.Text = isMinimized and "+" or "─"
end)
AutoButtonsBtn.Button.MouseButton1Click:Connect(autoButtonsLoop)
----------------------------------------------------------------
-- Close Button
----------------------------------------------------------------
CloseBtn.MouseButton1Click:Connect(function()
TweenService:Create(MainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.In), {
Size = UDim2.fromOffset(0, 0),
Position = UDim2.new(0.5, 0, 0.5, 0)
}):Play()
task.wait(0.3)
ScreenGui:Destroy()
end)
-- Entrance animation
MainFrame.Size = UDim2.fromOffset(0, 0)
MainFrame.Position = UDim2.new(0.5, 0, 0.5, 0)
TweenService:Create(MainFrame, TweenInfo.new(0.5, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
Size = normalSize,
Position = UDim2.new(0.5, -170, 0.5, -193.5)
}):Play()How to Use the Wheat Tycoon 2 Script
Copy a script from the list above first, then follow these in order.
- 01
Get a working executor - see our Roblox Executor list for free options on PC, Mobile, and Mac.
- 02
Launch Roblox and open Wheat Tycoon 2.
- 03
Open your executor, then click Inject or Attach.
- 04
Copy any script above and paste it into the executor script box.
- 05
Press Execute - the GUI will appear in-game.
- 06
Toggle Auto Farm, Speed Hack, ESP and other features from the GUI menu.
- 07
Always use an alt account to protect your main.

About The Wheat Tycoon 2 Script
Wheat Tycoon 2 is a tycoon game where building your operation up from nothing requires consistent time and attention to keep everything running efficiently. Progress slows down hard in the mid game when the upgrade costs start stacking and income is not keeping up.
Auto farm and automation scripts are the most valuable here since they keep your income flowing and upgrades ticking over without you needing to manage everything manually. Set one up and your tycoon keeps growing on its own.
Run these on an alt account to stay safe. Check back here after game updates since tycoon mechanics and income rates can change in ways that affect the automation.
All scripts on this page are for educational purposes only. Using scripts in Roblox violates the Roblox Terms of Service and may result in your account being permanently banned or suspended without warning. RobloxDatabase.com is not responsible for any consequences from using these scripts. Always use an alt account - never your main.
