--// SERVICES
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
--// PLAYER
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
--// GUI
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "BalkanHub"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = PlayerGui
--// MAIN
local Main = Instance.new("Frame")
Main.Size = UDim2.new(0,0,0,0)
Main.Position = UDim2.new(0.5,0,0.5,0)
Main.AnchorPoint = Vector2.new(0.5,0.5)
Main.BackgroundColor3 = Color3.fromRGB(25,25,25)
Main.BorderSizePixel = 0
Main.Parent = ScreenGui
Main.Active = true
Main.Draggable = true
Main.ClipsDescendants = true
Instance.new("UICorner", Main).CornerRadius = UDim.new(0,12)
TweenService:Create(
Main,
TweenInfo.new(0.35, Enum.EasingStyle.Quint),
{
Size = UDim2.new(0,700,0,450)
}
):Play()
--// TITLE
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1,0,0,50)
Title.BackgroundColor3 = Color3.fromRGB(15,15,15)
Title.Text = "Balkan Hub"
Title.TextColor3 = Color3.fromRGB(0,170,255)
Title.Font = Enum.Font.GothamBold
Title.TextSize = 28
Title.Parent = Main
Instance.new("UICorner", Title).CornerRadius = UDim.new(0,12)
--// TAB HOLDER
local Tabs = Instance.new("Frame")
Tabs.Size = UDim2.new(0,180,1,-50)
Tabs.Position = UDim2.new(0,0,0,50)
Tabs.BackgroundColor3 = Color3.fromRGB(30,30,30)
Tabs.BorderSizePixel = 0
Tabs.Parent = Main
--// PAGE HOLDER
local Pages = Instance.new("Frame")
Pages.Size = UDim2.new(1,-180,1,-50)
Pages.Position = UDim2.new(0,180,0,50)
Pages.BackgroundColor3 = Color3.fromRGB(40,40,40)
Pages.BorderSizePixel = 0
Pages.Parent = Main
--// TAB LAYOUT
local UIList = Instance.new("UIListLayout")
UIList.Padding = UDim.new(0,6)
UIList.Parent = Tabs
--// PAGES
local PlayerPage = Instance.new("Frame")
PlayerPage.Size = UDim2.new(1,0,1,0)
PlayerPage.BackgroundTransparency = 1
PlayerPage.Parent = Pages
local TeleportPage = Instance.new("Frame")
TeleportPage.Size = UDim2.new(1,0,1,0)
TeleportPage.BackgroundTransparency = 1
TeleportPage.Visible = false
TeleportPage.Parent = Pages
local VisualPage = Instance.new("Frame")
VisualPage.Size = UDim2.new(1,0,1,0)
VisualPage.BackgroundTransparency = 1
VisualPage.Visible = false
VisualPage.Parent = Pages
local AutoJobsPage = Instance.new("Frame")
AutoJobsPage.Size = UDim2.new(1,0,1,0)
AutoJobsPage.BackgroundTransparency = 1
AutoJobsPage.Visible = false
AutoJobsPage.Parent = Pages
--// TAB SYSTEM
local TabsTable = {}
local function switchTab(page, selectedButton)
PlayerPage.Visible = false
TeleportPage.Visible = false
VisualPage.Visible = false
AutoJobsPage.Visible = false
page.Visible = true
for _,btn in pairs(TabsTable) do
btn.BackgroundColor3 = Color3.fromRGB(45,45,45)
end
selectedButton.BackgroundColor3 = Color3.fromRGB(0,170,255)
end
local function createTab(name, page)
local Button = Instance.new("TextButton")
Button.Size = UDim2.new(1,-10,0,45)
Button.BackgroundColor3 = Color3.fromRGB(45,45,45)
Button.TextColor3 = Color3.new(1,1,1)
Button.Font = Enum.Font.GothamBold
Button.TextSize = 18
Button.Text = name
Button.Parent = Tabs
Instance.new("UICorner", Button).CornerRadius = UDim.new(0,8)
table.insert(TabsTable, Button)
Button.MouseButton1Click:Connect(function()
switchTab(page, Button)
end)
return Button
end
local PlayerTab = createTab("Player", PlayerPage)
local TeleportTab = createTab("Teleport", TeleportPage)
local VisualTab = createTab("Visual", VisualPage)
local AutoJobsTab = createTab("Auto Jobs", AutoJobsPage)
local FarmTab = createTab("Farm", FarmPage)
PlayerTab.BackgroundColor3 = Color3.fromRGB(0,170,255)
--// BUTTON CREATOR
local function createButton(parent, text, posY)
local Button = Instance.new("TextButton")
Button.Size = UDim2.new(0,220,0,45)
Button.Position = UDim2.new(0,20,0,posY)
Button.BackgroundColor3 = Color3.fromRGB(55,55,55)
Button.TextColor3 = Color3.new(1,1,1)
Button.Font = Enum.Font.GothamBold
Button.TextSize = 16
Button.Text = text
Button.Parent = parent
Instance.new("UICorner", Button).CornerRadius = UDim.new(0,8)
return Button
end
--// PLAYER SETTINGS
local speed = 16
local infJump = false
local noclip = false
local esp = false
local fastPrompts = false
local function getHumanoid()
local char = LocalPlayer.Character
if char then
return char:FindFirstChildOfClass("Humanoid")
end
end
local function getHRP()
local char = LocalPlayer.Character
if char then
return char:FindFirstChild("HumanoidRootPart")
end
end
--// SPEED
local SpeedBtn = createButton(PlayerPage, "Speed: 16", 20)
local function applySpeed()
local hum = getHumanoid()
if hum then
hum.WalkSpeed = speed
end
end
SpeedBtn.MouseButton1Click:Connect(function()
speed += 8
if speed > 64 then
speed = 16
end
applySpeed()
SpeedBtn.Text = "Speed: "..speed
end)
LocalPlayer.CharacterAdded:Connect(function()
task.wait(1)
applySpeed()
end)
--// INF JUMP
local JumpBtn = createButton(PlayerPage, "Infinite Jump: false", 80)
JumpBtn.MouseButton1Click:Connect(function()
infJump = not infJump
JumpBtn.Text = "Infinite Jump: "..tostring(infJump)
end)
UserInputService.JumpRequest:Connect(function()
if infJump then
local hum = getHumanoid()
if hum then
hum:ChangeState(Enum.HumanoidStateType.Jumping)
end
end
end)
--// NOCLIP
local NoclipBtn = createButton(PlayerPage, "Noclip: false", 140)
NoclipBtn.MouseButton1Click:Connect(function()
noclip = not noclip
NoclipBtn.Text = "Noclip: "..tostring(noclip)
end)
RunService.Stepped:Connect(function()
if noclip then
local char = LocalPlayer.Character
if char then
for _,v in pairs(char:GetDescendants()) do
if v:IsA("BasePart") then
v.CanCollide = false
end
end
end
end
end)
--// FAST PROMPTS
local PromptBtn = createButton(PlayerPage, "Fast Prompts: false", 200)
local function updatePrompts()
for _,v in pairs(workspace:GetDescendants()) do
if v:IsA("ProximityPrompt") then
if fastPrompts then
v.HoldDuration = 0.01
v.RequiresLineOfSight = false
v.MaxActivationDistance = 20
else
v.HoldDuration = 1
v.RequiresLineOfSight = true
v.MaxActivationDistance = 10
end
end
end
end
workspace.DescendantAdded:Connect(function(v)
if v:IsA("ProximityPrompt") and fastPrompts then
v.HoldDuration = 0.01
v.RequiresLineOfSight = false
v.MaxActivationDistance = 20
end
end)
PromptBtn.MouseButton1Click:Connect(function()
fastPrompts = not fastPrompts
PromptBtn.Text = "Fast Prompts: "..tostring(fastPrompts)
updatePrompts()
end)
--// TELEPORT PAGE
local TP1 = createButton(TeleportPage, "Teleport To Spawn", 20)
TP1.MouseButton1Click:Connect(function()
local hrp = getHRP()
if hrp and workspace:FindFirstChild("SpawnLocation") then
hrp.CFrame = workspace.SpawnLocation.CFrame + Vector3.new(0,5,0)
end
end)
--// COORDS
local CoordBox = Instance.new("TextBox")
CoordBox.Size = UDim2.new(0,300,0,45)
CoordBox.Position = UDim2.new(0,20,0,90)
CoordBox.BackgroundColor3 = Color3.fromRGB(55,55,55)
CoordBox.TextColor3 = Color3.new(1,1,1)
CoordBox.PlaceholderText = "Coordinates"
CoordBox.Text = ""
CoordBox.Parent = TeleportPage
Instance.new("UICorner", CoordBox).CornerRadius = UDim.new(0,8)
local Refresh = createButton(TeleportPage, "Refresh Coordinates", 150)
Refresh.MouseButton1Click:Connect(function()
local hrp = getHRP()
if hrp then
CoordBox.Text = tostring(hrp.Position)
end
end)
--// ESP
local function addESP(plr)
if plr == LocalPlayer then return end
local function setup(char)
if char:FindFirstChild("BH_ESP") then return end
local h = Instance.new("Highlight")
h.Name = "BH_ESP"
h.FillColor = Color3.fromRGB(0,170,255)
h.OutlineColor = Color3.new(1,1,1)
h.Parent = char
end
plr.CharacterAdded:Connect(setup)
if plr.Character then
setup(plr.Character)
end
end
local function removeESP()
for _,plr in pairs(Players:GetPlayers()) do
if plr.Character then
local espObj = plr.Character:FindFirstChild("BH_ESP")
if espObj then
espObj:Destroy()
end
end
end
end
local ESPBtn = createButton(VisualPage, "ESP: false", 20)
ESPBtn.MouseButton1Click:Connect(function()
esp = not esp
ESPBtn.Text = "ESP: "..tostring(esp)
if esp then
for _,plr in pairs(Players:GetPlayers()) do
addESP(plr)
end
else
removeESP()
end
end)
--// SERVICES
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
--// PLAYER
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
--// GUI
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "BalkanHub"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = PlayerGui
--// MAIN
local Main = Instance.new("Frame")
Main.Size = UDim2.new(0,0,0,0)
Main.Position = UDim2.new(0.5,0,0.5,0)
Main.AnchorPoint = Vector2.new(0.5,0.5)
Main.BackgroundColor3 = Color3.fromRGB(25,25,25)
Main.BorderSizePixel = 0
Main.Parent = ScreenGui
Main.Active = true
Main.Draggable = true
Main.ClipsDescendants = true
Instance.new("UICorner", Main).CornerRadius = UDim.new(0,12)
TweenService:Create(
Main,
TweenInfo.new(0.35, Enum.EasingStyle.Quint),
{Size = UDim2.new(0,700,0,450)}
):Play()
--// TITLE
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1,0,0,50)
Title.BackgroundColor3 = Color3.fromRGB(15,15,15)
Title.Text = "Balkan Hub"
Title.TextColor3 = Color3.fromRGB(0,170,255)
Title.Font = Enum.Font.GothamBold
Title.TextSize = 28
Title.Parent = Main
Instance.new("UICorner", Title).CornerRadius = UDim.new(0,12)
--// TAB HOLDER
local Tabs = Instance.new("Frame")
Tabs.Size = UDim2.new(0,180,1,-50)
Tabs.Position = UDim2.new(0,0,0,50)
Tabs.BackgroundColor3 = Color3.fromRGB(30,30,30)
Tabs.BorderSizePixel = 0
Tabs.Parent = Main
--// PAGE HOLDER
local Pages = Instance.new("Frame")
Pages.Size = UDim2.new(1,-180,1,-50)
Pages.Position = UDim2.new(0,180,0,50)
Pages.BackgroundColor3 = Color3.fromRGB(40,40,40)
Pages.BorderSizePixel = 0
Pages.Parent = Main
--// TAB LAYOUT
local UIList = Instance.new("UIListLayout")
UIList.Padding = UDim.new(0,6)
UIList.Parent = Tabs
--// PAGES
local PlayerPage = Instance.new("Frame")
PlayerPage.Size = UDim2.new(1,0,1,0)
PlayerPage.BackgroundTransparency = 1
PlayerPage.Parent = Pages
local TeleportPage = Instance.new("Frame")
TeleportPage.Size = UDim2.new(1,0,1,0)
TeleportPage.BackgroundTransparency = 1
TeleportPage.Visible = false
TeleportPage.Parent = Pages
local VisualPage = Instance.new("Frame")
VisualPage.Size = UDim2.new(1,0,1,0)
VisualPage.BackgroundTransparency = 1
VisualPage.Visible = false
VisualPage.Parent = Pages
local FarmPage = Instance.new("Frame")
FarmPage.Size = UDim2.new(1,0,1,0)
FarmPage.BackgroundTransparency = 1
FarmPage.Visible = false
FarmPage.Parent = Pages
--// TAB SYSTEM
local TabsTable = {}
local function switchTab(page, selectedButton)
PlayerPage.Visible = false
TeleportPage.Visible = false
VisualPage.Visible = false
FarmPage.Visible = false
page.Visible = true
for _,btn in pairs(TabsTable) do
btn.BackgroundColor3 = Color3.fromRGB(45,45,45)
end
selectedButton.BackgroundColor3 = Color3.fromRGB(0,170,255)
end
local function createTab(name, page)
local Button = Instance.new("TextButton")
Button.Size = UDim2.new(1,-10,0,45)
Button.BackgroundColor3 = Color3.fromRGB(45,45,45)
Button.TextColor3 = Color3.new(1,1,1)
Button.Font = Enum.Font.GothamBold
Button.TextSize = 18
Button.Text = name
Button.Parent = Tabs
Instance.new("UICorner", Button).CornerRadius = UDim.new(0,8)
table.insert(TabsTable, Button)
Button.MouseButton1Click:Connect(function()
switchTab(page, Button)
end)
return Button
end
local PlayerTab = createTab("Player", PlayerPage)
local TeleportTab = createTab("Teleport", TeleportPage)
local VisualTab = createTab("Visual", VisualPage)
local FarmTab = createTab("Farm", FarmPage)
PlayerTab.BackgroundColor3 = Color3.fromRGB(0,170,255)
--// BUTTON HELPER
local function createButton(parent, text, posY)
local Button = Instance.new("TextButton")
Button.Size = UDim2.new(0,220,0,45)
Button.Position = UDim2.new(0,20,0,posY)
Button.BackgroundColor3 = Color3.fromRGB(55,55,55)
Button.TextColor3 = Color3.new(1,1,1)
Button.Font = Enum.Font.GothamBold
Button.TextSize = 16
Button.Text = text
Button.Parent = parent
Instance.new("UICorner", Button).CornerRadius = UDim.new(0,8)
return Button
end
local function createLabel(parent, text, posY)
local Label = Instance.new("TextLabel")
Label.Size = UDim2.new(1,-20,0,25)
Label.Position = UDim2.new(0,10,0,posY)
Label.BackgroundTransparency = 1
Label.TextColor3 = Color3.fromRGB(200,200,200)
Label.Font = Enum.Font.Gotham
Label.TextSize = 14
Label.Text = text
Label.TextXAlignment = Enum.TextXAlignment.Left
Label.Parent = parent
return Label
end
--// ===== PLAYER PAGE =====
local speed = 16
local infJump = false
local noclip = false
local fastPrompts = false
local function getHumanoid()
local char = LocalPlayer.Character
return char and char:FindFirstChildOfClass("Humanoid")
end
local function getHRP()
local char = LocalPlayer.Character
return char and char:FindFirstChild("HumanoidRootPart")
end
-- Speed
local SpeedBtn = createButton(PlayerPage, "Speed: 16", 20)
local function applySpeed()
local hum = getHumanoid()
if hum then hum.WalkSpeed = speed end
end
SpeedBtn.MouseButton1Click:Connect(function()
speed = speed + 8
if speed > 64 then speed = 16 end
applySpeed()
SpeedBtn.Text = "Speed: "..speed
end)
LocalPlayer.CharacterAdded:Connect(function()
task.wait(1)
applySpeed()
end)
-- Inf Jump
local JumpBtn = createButton(PlayerPage, "Infinite Jump: false", 80)
JumpBtn.MouseButton1Click:Connect(function()
infJump = not infJump
JumpBtn.Text = "Infinite Jump: "..tostring(infJump)
end)
UserInputService.JumpRequest:Connect(function()
if infJump then
local hum = getHumanoid()
if hum then hum:ChangeState(Enum.HumanoidStateType.Jumping) end
end
end)
-- Noclip
local NoclipBtn = createButton(PlayerPage, "Noclip: false", 140)
NoclipBtn.MouseButton1Click:Connect(function()
noclip = not noclip
NoclipBtn.Text = "Noclip: "..tostring(noclip)
end)
RunService.Stepped:Connect(function()
if noclip and LocalPlayer.Character then
for _,v in pairs(LocalPlayer.Character:GetDescendants()) do
if v:IsA("BasePart") then v.CanCollide = false end
end
end
end)
-- Fast Prompts
local PromptBtn = createButton(PlayerPage, "Fast Prompts: false", 200)
local function updatePrompts()
for _,v in pairs(workspace:GetDescendants()) do
if v:IsA("ProximityPrompt") then
if fastPrompts then
v.HoldDuration = 0.01
v.RequiresLineOfSight = false
v.MaxActivationDistance = 20
else
v.HoldDuration = 1
v.RequiresLineOfSight = true
v.MaxActivationDistance = 10
end
end
end
end
workspace.DescendantAdded:Connect(function(v)
if v:IsA("ProximityPrompt") and fastPrompts then
v.HoldDuration = 0.01
v.RequiresLineOfSight = false
v.MaxActivationDistance = 20
end
end)
PromptBtn.MouseButton1Click:Connect(function()
fastPrompts = not fastPrompts
PromptBtn.Text = "Fast Prompts: "..tostring(fastPrompts)
updatePrompts()
end)
--// ===== TELEPORT PAGE =====
local TP1 = createButton(TeleportPage, "Teleport To Spawn", 20)
TP1.MouseButton1Click:Connect(function()
local hrp = getHRP()
if hrp and workspace:FindFirstChild("SpawnLocation") then
hrp.CFrame = workspace.SpawnLocation.CFrame + Vector3.new(0,5,0)
end
end)
local CoordBox = Instance.new("TextBox")
CoordBox.Size = UDim2.new(0,300,0,45)
CoordBox.Position = UDim2.new(0,20,0,90)
CoordBox.BackgroundColor3 = Color3.fromRGB(55,55,55)
CoordBox.TextColor3 = Color3.new(1,1,1)
CoordBox.PlaceholderText = "Coordinates"
CoordBox.Text = ""
CoordBox.Parent = TeleportPage
Instance.new("UICorner", CoordBox).CornerRadius = UDim.new(0,8)
local Refresh = createButton(TeleportPage, "Refresh Coordinates", 150)
Refresh.MouseButton1Click:Connect(function()
local hrp = getHRP()
if hrp then CoordBox.Text = tostring(hrp.Position) end
end)
--// ===== VISUAL PAGE =====
local esp = false
local function addESP(plr)
if plr == LocalPlayer then return end
local function setup(char)
if char:FindFirstChild("BH_ESP") then return end
local h = Instance.new("Highlight")
h.Name = "BH_ESP"
h.FillColor = Color3.fromRGB(0,170,255)
h.OutlineColor = Color3.new(1,1,1)
h.Parent = char
end
plr.CharacterAdded:Connect(setup)
if plr.Character then setup(plr.Character) end
end
local function removeESP()
for _,plr in pairs(Players:GetPlayers()) do
if plr.Character then
local espObj = plr.Character:FindFirstChild("BH_ESP")
if espObj then espObj:Destroy() end
end
end
end
local ESPBtn = createButton(VisualPage, "ESP: false", 20)
ESPBtn.MouseButton1Click:Connect(function()
esp = not esp
ESPBtn.Text = "ESP: "..tostring(esp)
if esp then
for _,plr in pairs(Players:GetPlayers()) do addESP(plr) end
else
removeESP()
end
end)
--// ===== FARM PAGE =====
-- Helper functions
local function findItem(itemName)
local bp = LocalPlayer.Backpack
local char = LocalPlayer.Character
local found = bp:FindFirstChild(itemName)
if found then return found end
if char then
found = char:FindFirstChild(itemName)
if found then return found end
for _, child in pairs(char:GetChildren()) do
if child:IsA("Tool") then
local sub = child:FindFirstChild(itemName)
if sub then return sub end
end
end
end
return nil
end
local function teleportTo(pos)
local hrp = getHRP()
if hrp and hrp.Parent then
hrp.CFrame = CFrame.new(pos)
task.wait(0.3)
end
end
local function getCookingPot()
local pots = Workspace:FindFirstChild("CookingPots")
if not pots then
for _, obj in pairs(Workspace:GetChildren()) do
if obj.Name:lower():find("pot") then pots = obj break end
end
end
if pots then
for _, pot in pairs(pots:GetChildren()) do
if pot:IsA("Model") then
local owner = pot:FindFirstChild("Owner")
local cookPart = pot:FindFirstChild("CookPart")
if owner and cookPart and not owner.Value then
return pot
end
end
end
end
return nil
end
local function firePrompt(prompt)
if prompt then
local s, e = pcall(function() fireproximityprompt(prompt) end)
if not s then
pcall(function()
prompt:InputHoldBegin()
task.wait(0.1)
prompt:InputHoldEnd()
end)
end
end
end
-- Farm UI
local FarmStatus = createLabel(FarmPage, "Status: Idle", 15)
local FarmCycles = createLabel(FarmPage, "Cycles: 0", 40)
local FarmBtn = createButton(FarmPage, "Start Farming", 80)
local CooldownLabel = createLabel(FarmPage, "Cooldown: 3s", 140)
local CooldownUp = Instance.new("TextButton")
CooldownUp.Size = UDim2.new(0,30,0,30)
CooldownUp.Position = UDim2.new(0,200,0,138)
CooldownUp.BackgroundColor3 = Color3.fromRGB(0,170,255)
CooldownUp.TextColor3 = Color3.new(1,1,1)
CooldownUp.Font = Enum.Font.GothamBold
CooldownUp.TextSize = 18
CooldownUp.Text = "+"
CooldownUp.Parent = FarmPage
Instance.new("UICorner", CooldownUp).CornerRadius = UDim.new(0,6)
local CooldownDown = Instance.new("TextButton")
CooldownDown.Size = UDim2.new(0,30,0,30)
CooldownDown.Position = UDim2.new(0,160,0,138)
CooldownDown.BackgroundColor3 = Color3.fromRGB(170,0,0)
CooldownDown.TextColor3 = Color3.new(1,1,1)
CooldownDown.Font = Enum.Font.GothamBold
CooldownDown.TextSize = 18
CooldownDown.Text = "-"
CooldownDown.Parent = FarmPage
Instance.new("UICorner", CooldownDown).CornerRadius = UDim.new(0,6)
-- Farm logic
local farming = false
local farmConnection = nil
local cycles = 0
local cooldown = 3
local function stopFarming()
farming = false
if farmConnection then
farmConnection:Disconnect()
farmConnection = nil
end
FarmStatus.Text = "Status: Stopped"
FarmBtn.Text = "Start Farming"
FarmBtn.BackgroundColor3 = Color3.fromRGB(55,55,55)
end
local function doCycle()
if not farming then return end
local char = LocalPlayer.Character
if not char then
FarmStatus.Text = "Status: Waiting for character..."
task.wait(2)
return
end
local hrp = getHRP()
if not hrp then
FarmStatus.Text = "Status: No HRP found"
task.wait(1)
return
end
FarmStatus.Text = "Status: Finding cooking pot..."
local pot = getCookingPot()
if not pot then
FarmStatus.Text = "Status: No available pot! Waiting..."
task.wait(10)
return
end
local cookPart = pot:FindFirstChild("CookPart")
local cookPrompt = cookPart and cookPart:FindFirstChild("ProximityPrompt")
local sellPart = Workspace:FindFirstChild("IceFruit Sell")
if not sellPart then
for _, obj in pairs(Workspace:GetDescendants()) do
if obj:IsA("BasePart") and obj.Name:find("Sell") and obj:FindFirstChildOfClass("ProximityPrompt") then
sellPart = obj
break
end
end
end
if not cookPrompt or not sellPart then
FarmStatus.Text = "Status: Missing cook/sell points"
task.wait(5)
return
end
local sellPrompt = sellPart:FindFirstChildOfClass("ProximityPrompt")
if not sellPrompt then
FarmStatus.Text = "Status: No sell prompt"
task.wait(5)
return
end
-- Cook
FarmStatus.Text = "Status: Cooking..."
teleportTo(cookPart.Position)
task.wait(0.5)
local fiji = findItem("FijiWater")
if fiji then
pcall(function() char.Humanoid:EquipTool(fiji) end)
task.wait(0.5)
firePrompt(cookPrompt)
task.wait(1)
end
local fresh = findItem("FreshWater")
if fresh then
pcall(function() char.Humanoid:EquipTool(fresh) end)
task.wait(0.5)
firePrompt(cookPrompt)
task.wait(1)
end
local bag = findItem("Ice-Fruit Bag")
if bag then
pcall(function() char.Humanoid:EquipTool(bag) end)
task.wait(0.5)
firePrompt(cookPrompt)
local steam = cookPart:FindFirstChild("Steam") or cookPart:FindFirstChild("LoadUI")
if steam then
local start = tick()
while steam.Enabled and tick() - start < 25 do
task.wait(0.5)
if not farming then return end
end
else
task.wait(10)
end
end
teleportTo(cookPart.Position)
task.wait(0.5)
local cupz = findItem("Ice-Fruit Cupz")
if cupz then
pcall(function() char.Humanoid:EquipTool(cupz) end)
task.wait(0.5)
firePrompt(cookPrompt)
task.wait(0.5)
end
FarmStatus.Text = "Status: Selling..."
teleportTo(sellPart.Position)
task.wait(0.5)
for i = 1, 200 do
if not farming then return end
firePrompt(sellPrompt)
if i % 30 == 0 then task.wait(0.1) end
task.wait(0.02)
end
cycles = cycles + 1
FarmCycles.Text = "Cycles: "..cycles
FarmStatus.Text = "Status: Cycle "..cycles.." done!"
task.wait(cooldown)
end
local function startFarming()
if farming then
stopFarming()
task.wait(0.5)
end
farming = true
cycles = 0
FarmCycles.Text = "Cycles: 0"
FarmStatus.Text = "Status: Starting..."
FarmBtn.Text = "Stop Farming"
FarmBtn.BackgroundColor3 = Color3.fromRGB(170,0,0)
farmConnection = RunService.Heartbeat:Connect(function()
if not farming then
if farmConnection then
farmConnection:Disconnect()
farmConnection = nil
end
return
end
local s, e = pcall(doCycle)
if not s then
warn("Farm error: "..tostring(e))
task.wait(3)
end
end)
end
FarmBtn.MouseButton1Click:Connect(function()
if farming then
stopFarming()
else
startFarming()
end
end)
CooldownUp.MouseButton1Click:Connect(function()
cooldown = math.min(cooldown + 1, 30)
CooldownLabel.Text = "Cooldown: "..cooldown.."s"
end)
CooldownDown.MouseButton1Click:Connect(function()
cooldown = math.max(cooldown - 1, 0)
CooldownLabel.Text = "Cooldown: "..cooldown.."s"
end)
local function firePrompt(prompt)
if prompt then
local s, e = pcall(function() fireproximityprompt(prompt) end)
if not s then
pcall(function()
prompt:InputHoldBegin()
task.wait(0.1)
prompt:InputHoldEnd()
end)
end
end
end
--// BUY INF MONEY ITEMS
local function buyAllSupplies()
FarmStatus.Text = "Status: Buying supplies..."
local itemsToBuy = { "Ice-Fruit Bag", "Ice-Fruit Cupz", "FijiWater", "FreshWater" }
-- Try to find the shop remote
local shopRemote = nil
for _, folder in pairs(ReplicatedStorage:GetChildren()) do
if folder:IsA("Folder") or folder:IsA("RemoteEvent") then
for _, remote in pairs(folder:GetChildren()) do
if remote.Name:lower():find("shop") or remote.Name:lower():find("exotic") then
shopRemote = remote
break
end
end
end
if shopRemote then break end
end
if shopRemote then
for _, itemName in pairs(itemsToBuy) do
local success, err = pcall(function()
shopRemote:InvokeServer(itemName)
end)
if success then
print("[+] Bought: " .. itemName)
else
warn("[-] Failed to buy " .. itemName .. ": " .. tostring(err))
end
task.wait(1)
end
FarmStatus.Text = "Status: Supplies bought!"
else
FarmStatus.Text = "Status: Shop remote not found!"
warn("[-] Could not find shop remote")
end
end
local BuyBtn = Instance.new("TextButton")
BuyBtn.Size = UDim2.new(0,220,0,45)
BuyBtn.Position = UDim2.new(0,20,0,80)
BuyBtn.BackgroundColor3 = Color3.fromRGB(0,120,0)
BuyBtn.TextColor3 = Color3.new(1,1,1)
BuyBtn.Font = Enum.Font.GothamBold
BuyBtn.TextSize = 16
BuyBtn.Text = "Buy INF Money Items"
BuyBtn.Parent = FarmPage
BuyBtn.Name = "BuyInfBtn"
Instance.new("UICorner", BuyBtn).CornerRadius = UDim.new(0,8)
BuyBtn.MouseButton1Click:Connect(function()
buyAllSupplies()
end)
--// OPEN / CLOSE BUTTONS
local Open = Instance.new("TextButton")
Open.Size = UDim2.new(0,100,0,40)
Open.Position = UDim2.new(0,10,1,-50)
Open.BackgroundColor3 = Color3.fromRGB(40,40,40)
Open.TextColor3 = Color3.new(1,1,1)
Open.Font = Enum.Font.GothamBold
Open.Text = "Open"
Open.Parent = ScreenGui
Instance.new("UICorner", Open).CornerRadius = UDim.new(0,8)
local Close = Instance.new("TextButton")
Close.Size = UDim2.new(0,40,0,40)
Close.Position = UDim2.new(1,-45,0,5)
Close.BackgroundColor3 = Color3.fromRGB(170,0,0)
Close.TextColor3 = Color3.new(1,1,1)
Close.Font = Enum.Font.GothamBold
Close.Text = "X"
Close.Parent = Main
Instance.new("UICorner", Close).CornerRadius = UDim.new(0,8)
local function closeGui()
TweenService:Create(Main, TweenInfo.new(0.25), {Size = UDim2.new(0,0,0,0)}):Play()
task.wait(0.25)
Main.Visible = false
end
local function openGui()
Main.Visible = true
TweenService:Create(Main, TweenInfo.new(0.25), {Size = UDim2.new(0,700,0,450)}):Play()
end
Close.MouseButton1Click:Connect(closeGui)
Open.MouseButton1Click:Connect(openGui)
print("[Balkan Hub] Loaded successfully! Click 'Farm' tab to start.")
--// OPEN BUTTON
local Open = Instance.new("TextButton")
Open.Size = UDim2.new(0,100,0,40)
Open.Position = UDim2.new(0,10,1,-50)
Open.BackgroundColor3 = Color3.fromRGB(40,40,40)
Open.TextColor3 = Color3.new(1,1,1)
Open.Font = Enum.Font.GothamBold
Open.Text = "Open"
Open.Parent = ScreenGui
Instance.new("UICorner", Open).CornerRadius = UDim.new(0,8)
--// CLOSE BUTTON
local Close = Instance.new("TextButton")
Close.Size = UDim2.new(0,40,0,40)
Close.Position = UDim2.new(1,-45,0,5)
Close.BackgroundColor3 = Color3.fromRGB(170,0,0)
Close.TextColor3 = Color3.new(1,1,1)
Close.Font = Enum.Font.GothamBold
Close.Text = "X"
Close.Parent = Main
Instance.new("UICorner", Close).CornerRadius = UDim.new(0,8)
local function closeGui()
TweenService:Create(
Main,
TweenInfo.new(0.25),
{
Size = UDim2.new(0,0,0,0)
}
):Play()
task.wait(0.25)
Main.Visible = false
end
local function openGui()
Main.Visible = true
TweenService:Create(
Main,
TweenInfo.new(0.25),
{
Size = UDim2.new(0,700,0,450)
}
):Play()
end
Close.MouseButton1Click:Connect(closeGui)
Open.MouseButton1Click:Connect(openGui)
To embed this project on your website, copy the following code and paste it into your website's HTML: