Roblox Database Logo
  • Home
  • Roblox Scripts
  • Game Codes
  • Roblox Codes
    • Promo Codes
    • Item Codes
    • Music Codes
    • Star Codes
    • Color Codes
  • Best Games
  • Games
  • Roblox Guides
  • Roblox Tools
  • Home
  • Roblox Scripts
  • Game Codes
  • Roblox Codes
    • Promo Codes
    • Item Codes
    • Music Codes
    • Star Codes
    • Color Codes
  • Best Games
  • Games
  • Roblox Guides
  • Roblox Tools
Home - Scripts - Wheat Tycoon 2 Script

Wheat Tycoon 2 Script

✅ Last Tested: March 2026 – All scripts working.

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.

Auto Farm Pastebin

Wheat Tycoon 2 Script


📜 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

Script 1 KEYLESSWheat Tycoon 2 Script Auto Farm, Auto Buttons, Auto Upgrade, Auto Rebirth, Auto Prestige
Auto Farm
loadstring(game:HttpGet("https://raw.githubusercontent.com/synthhex1/AutoFarm/refs/heads/main/WT2.lua"))()

Select all text above, copy it, then paste into your executor.

Wheat Tycoon 2 Script Pastebin2026 :

Script 2 KEYLESSWheat Tycoon 2 Script Pastebin2026 :
Pastebin
--// 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&#91;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()

Select all text above, copy it, then paste into your executor.


🎮 How to Use the Wheat Tycoon 2 Script

1Get a working executor – see our Roblox Executor list for free options on PC, Mobile, and Mac.
2Launch Roblox and open Wheat Tycoon 2.
3Open your executor, then click Inject or Attach.
4Copy any script above and paste it into the executor script box.
5Press Execute — the GUI will appear in-game.
6Toggle Auto Farm, Speed Hack, ESP and other features from the GUI menu.
7Always use an alt account to protect your main.

🎮 About The Wheat Tycoon 2 Script

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.


⚠️ Disclaimer: 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.


MORE FOR WHEAT TYCOON 2

Working Codes for Wheat Tycoon 2  |  Wheat Tycoon 2 Game Wiki

More Wheat Tycoon 2:

  • Wheat Tycoon 2 – Game guide and overview

Another Similar Game :

Wheat Tycoon 2Wheat Tycoon 2 Wheat Tycoon 2 Codes RobloxWheat Tycoon 2 Codes Wheat Farming Simulator ScriptWheat Farming Simulator Script Wheat Farming Simulator CodesWheat Farming Simulator Codes Wheat Farming SimulatorWheat Farming Simulator

Leave a Comment Cancel reply

Promo Codes

Get your hands on exclusive cosmetics, in-game currency, and special bonuses! Redeem our extensive list of Roblox promo codes and stay ahead of the game.

FREE ITEMS
PROMO CODES
STAR CODES

Game Codes

Unlock exclusive in-game perks, boost your stats, and get an edge in your favorite Roblox games with our collection of verified and non expired game codes.

VIEW ALL
GENRES
POPULAR CODES

Items Codes

Customize your Roblox avatar to the max! Browse our thousands of collection of item codes to unlock unique hats, accessories, gear, and many more.

VIEW ALL
CATEGORY
POPULAR ITEMS

Music Codes

Jam out to your favorite tunes in Roblox! Discover music codes for the latest hits and timeless classics to personalize your in-game experience.

VIEW ALL
STYLE
ARTIST

Best Games

Looking for the hottest Roblox games? Explore our curated recommendations, discover hidden gems, and find your next gaming obsession.

BEST GAMES
THEMES
POPULAR GAMES

Roblox Guides

Level up your Roblox knowledge! Access in-depth guides, powerful tools, and valuable resources to enhance your gameplay and creation skills.

VIEW ALL
GAMES WIKI
ERRORS

Tools

Tap into the Roblox community! Find player-created tools, expert guides, and collaborative resources to elevate your Roblox journey.

VIEW ALL
USERNAME GENERATOR
EXECUTOR

Roblox Scripts

Unlock hidden potential, customize your gameplay, and push the limits of your favorite Roblox game with our powerful script collection.

VIEW ALL
GENRE
POPULAR SCRIPTS
Roblox Database Logo

Roblox Database is your all-in-one source for anything and everything related to Roblox.

Whether you’re looking for the latest game codes, item codes, or promo codes or need some scripting guidance, we’ve got you covered.

Facebook-f Twitter Youtube Instagram Pinterest
Quick Links
  • About
  • Contact
  • Tools
  • Privacy Policy
  • Terms of Service
  • Copyright Policy
Menu
  • Home
  • Roblox Scripts
  • Game Codes
  • Roblox Codes
    • Promo Codes
    • Item Codes
    • Music Codes
    • Star Codes
    • Color Codes
  • Best Games
  • Games
  • Roblox Guides
  • Roblox Tools
  • Home
  • Roblox Scripts
  • Game Codes
  • Roblox Codes
    • Promo Codes
    • Item Codes
    • Music Codes
    • Star Codes
    • Color Codes
  • Best Games
  • Games
  • Roblox Guides
  • Roblox Tools
Download
chrome logo
  • Email: robloxdatabase23@gmail.com
  • Android : Coming Soon
  • IOS : Coming Soon

© 2026 All Rights Reserved.