--// Services local RunService = game:GetService("RunService") local Players = game:GetService("Players") local StarterGui = game:GetService("StarterGui") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local CoreGui = game:GetService("CoreGui") local ReplicatedStorage = game:GetService("ReplicatedStorage") local VirtualInputManager = game:GetService("VirtualInputManager") local PathfindingService = game:GetService("PathfindingService") local VirtualUser = game:GetService("VirtualUser") local HttpService = game:GetService("HttpService") local TeleportService = game:GetService("TeleportService") local CollectionService = game:GetService("CollectionService") local Lighting = game:GetService("Lighting") --// Variables local httpRequest = (syn and syn.request) or httprequest or request or (http and http.request) local client = Players.LocalPlayer local character = client.Character local humanoidRootPart = character:WaitForChild("HumanoidRootPart") local humanoid = character:WaitForChild("Humanoid") local camera = workspace.CurrentCamera local mouse = client:GetMouse() local controls = require(client.PlayerScripts.PlayerModule):GetControls() local pizzaPlanet = require(client.PlayerScripts.Modules.JobHandler.PizzaPlanetDelivery) local clientStats = ReplicatedStorage.Stats[client.Name] local mainUi = client:WaitForChild("PlayerGui").MainGUI local clientScripts = client:WaitForChild("PlayerScripts").Modules local modules = { vehicleman = require(ReplicatedStorage.Modules.VehicleService.VehicleData), GUIHandler = require(client.PlayerScripts.Modules["_Utilities"].GUIHandler), notification = require(clientScripts._Utilities.GUIHandler), jobManager = require(clientScripts.JobHandler), wallService = require(ReplicatedStorage.Modules.WallService), stats = ReplicatedStorage.Stats[client.Name], objectService = require(ReplicatedStorage.Modules.ObjectService), materialData = require(ReplicatedStorage.Modules._Data.MaterialData), itemService = require(ReplicatedStorage.Modules.ItemService), plotService = require(ReplicatedStorage.Modules.PlotService), fenceService = require(ReplicatedStorage.Modules._Objects.FenceService), roofService = require(ReplicatedStorage.Modules.RoofService), groundService = require(ReplicatedStorage.Modules.GroundService), polygon = require(ReplicatedStorage.Modules._Utilities.Polygon), typeService = require(ReplicatedStorage.Modules.TypeService), resizeService = require(ReplicatedStorage.Modules.ResizeService), foodService = require(ReplicatedStorage.Modules.FoodService), equipmentService = require(ReplicatedStorage.Modules.EquipmentService), billService = require(ReplicatedStorage.Modules.BillService), staminaService = require(ReplicatedStorage.Modules.StaminaService), skillData = require(ReplicatedStorage.Modules._Data.SkillData), colorService = require(ReplicatedStorage.Modules.ColorService), dataService = require(ReplicatedStorage.Modules.DataService), PizzaPlanetDelivery = require(clientScripts.JobHandler.PizzaPlanetDelivery), BloxBurgersLineCook = require(clientScripts.JobHandler.BloxBurgersEmployee.BloxBurgersLineCook), jobs = {}, } local getRemote = debug.getupvalue(modules.dataService.FireServer, 5); --// Functions do function fireServer(args) local clonedArgs = table.clone(args); local remote = getRemote(clonedArgs.Type); if (not remote) then return end; clonedArgs.Type = nil; return remote:FireServer(clonedArgs); end function invokeServer(args) local clonedArgs = table.clone(args) local remote = getRemote(clonedArgs.Type, true); if (not remote) then return end; clonedArgs.Type = nil; return remote:InvokeServer(clonedArgs); end function applyModifiers() local function safeFindFirstChildWhichIsA(instance, className) for _, child in ipairs(instance:GetChildren()) do if child:IsA(className) then return child end end return nil end local function addModifier(part, label) local existing = safeFindFirstChildWhichIsA(part, "PathfindingModifier") if existing then pcall(function() existing:Destroy() end) end local mod = Instance.new("PathfindingModifier") mod.Name = "Azurix_Mod" mod.PassThrough = false mod.Label = label mod.Parent = part end local function safeDescendants(container, callback) if container and container:IsA("Instance") then for _, part in ipairs(container:GetDescendants()) do if part:IsA("BasePart") then callback(part) end end end end local function safeChildren(container, callback) if container and container:IsA("Instance") then for _, part in ipairs(container:GetChildren()) do if part:IsA("BasePart") then callback(part) end end end end for _, plot in ipairs(workspace:WaitForChild("Plots"):GetChildren()) do local ground = plot:FindFirstChild("Ground") if ground then addModifier(ground, "Terrain") end end safeDescendants(workspace.Environment.Props:FindFirstChild("Fences"), function(part) addModifier(part, "PierFences") end) safeDescendants(workspace.Environment.RoadsNetwork.Network:FindFirstChild("Parking"), function(part) addModifier(part, "Road") end) safeDescendants(workspace.Environment.RoadsNetwork.Network:FindFirstChild("Roads"), function(part) addModifier(part, "Road") end) safeDescendants(Workspace.Environment.Locations.Beach:FindFirstChild("CityBeach"), function(part) addModifier(part, "PierFences") end) safeDescendants(workspace.Environment.RoadsNetwork:FindFirstChild("Sidewalk"), function(part) addModifier(part, "Pavement") end) safeDescendants(workspace.Environment:FindFirstChild("RoadsNetwork"), function(part) if part.Name == "Crosswalk_Cobble" then addModifier(part, "Road") end end) safeDescendants(workspace.Environment:FindFirstChild("Foliage"), function(part) addModifier(part, "PierFences") part.CanCollide = false end) safeChildren(workspace.Environment.Terrain:FindFirstChild("Bushes"), function(part) addModifier(part, "PierFences") part.CanCollide = false end) safeDescendants(workspace.Environment:FindFirstChild("World Lights"), function(part) addModifier(part, "PierFences") part.CanCollide = false end) safeDescendants(game.Workspace.Environment:FindFirstChild("DetailObjects"), function(part) addModifier(part, "PierFences") part.CanCollide = false end) local ring = workspace.Environment.Locations.City.PizzaPlanet.Exterior:FindFirstChild("Ring") if ring then addModifier(ring, "IgnoreArea") end local pier = workspace.Environment.Locations.Beach:FindFirstChild("Pier") if pier then local fenceFolder = pier.Geometry:FindFirstChild("Fence") if fenceFolder then safeDescendants(fenceFolder, function(part) addModifier(part, "PierFences") end) end local plankFolder = pier.Exterior:FindFirstChild("FloorPlanks") if plankFolder then for _, v in ipairs(plankFolder:GetChildren()) do if v:IsA("BasePart") and (v.Name == "WidePlanks" or v.Name == "FourWideplanks") then addModifier(v, "Planks") end end end end safeDescendants(workspace.Environment:FindFirstChild("RentalVehicles"), function(part) addModifier(part, "PierFences") part.CanCollide = false end) end function lookAt(position) local character = client.Character or client.CharacterAdded:Wait() local hrp = character:WaitForChild("HumanoidRootPart") local flatLookVector = Vector3.new(position.X, hrp.Position.Y, position.Z) - hrp.Position flatLookVector = flatLookVector.Unit local newCFrame = CFrame.new(hrp.Position, hrp.Position + flatLookVector) hrp.CFrame = newCFrame camera.CFrame = CFrame.new(camera.CFrame.Position, camera.CFrame.Position + hrp.CFrame.LookVector) end function randomWait(min, max) local waitTime = math.random() * (max - min) + min task.wait(waitTime) return waitTime end function pathfind(position, settings) local controls = require(client.PlayerScripts:WaitForChild("PlayerModule")):GetControls() controls:Disable() local character = client.Character or client.CharacterAdded:Wait() local humanoidRootPart = character:WaitForChild("HumanoidRootPart") local humanoid = character:WaitForChild("Humanoid") local path if type(settings) == "table" then path = PathfindingService:CreatePath(settings) else path = PathfindingService:CreatePath() end path:ComputeAsync(humanoidRootPart.Position, position) for _, waypoint in next, path:GetWaypoints() do humanoid:MoveTo(waypoint.Position) if waypoint.Action == Enum.PathWaypointAction.Jump then humanoid.Jump = true end humanoid.MoveToFinished:Wait() end controls:Enable() end function beautifyMoney(cash) cash = type(cash) == "number" and cash or tonumber(cash) local formatted = math.floor(cash) while true do formatted, count = string.gsub(formatted, "^(-?%d+)(%d%d%d)", "%1,%2") if count == 0 then break end end return formatted end function reverseTable(table) for index = 1, math.floor(#table / 2) do local writeIndex = #table - index + 1 table[index], table[writeIndex] = table[writeIndex], table[index] end end function dataRequire(module) return require(module)("", "") end function encrypt(message) local encrypted = "" for i = 1, #message do local char = message:sub(i, i) local encryptedChar = string.char(char:byte() + 1) encrypted = encrypted .. encryptedChar end return encrypted end function getClosestObject(Types) local Results = {} for i, v in next, game.workspace.Plots["Plot_" .. client.Name].House:GetChildren() do for k, x in next, v:GetDescendants() do for a, b in next, Types do if x.Name:find(b) and x:IsA("Part") then table.insert(Results, x) end end end end if #Results == 1 then return Results[1] else local closest local last = math.huge for i, v in next, Results do local mag = (client.Character.HumanoidRootPart.Position - v.Position).magnitude if mag < last then last = mag closest = v end end return closest end end function TweenToPos(target, speed) if client.Character:FindFirstChild("HumanoidRootPart") then local dist = (client.Character.HumanoidRootPart.Position - target.p).magnitude curTween = game:GetService("TweenService"):Create( client.Character.HumanoidRootPart, TweenInfo.new(dist / speed, Enum.EasingStyle.Linear), { CFrame = target, } ) curTween:Play() curTween.Completed:wait() curTween = nil end end function findCountFromTextLabels(imgLabel) for _, child in ipairs(imgLabel:GetChildren()) do if child.ClassName == "TextLabel" then local text = child.Text local count = text:match("^x(%d+)$") if count then return tonumber(count) end elseif child.ClassName == "ImageLabel" then local nestedCount = findCountFromTextLabels(child) if nestedCount then return nestedCount end end end return 1 end function findSizeFromTextLabels(imgLabel) for _, child in ipairs(imgLabel:GetChildren()) do if child.ClassName == "ImageLabel" then for _, subchild in ipairs(child:GetChildren()) do if subchild.ClassName == "TextLabel" and subchild.Text:match("^[LSM]$") then return subchild.Text end end end end return nil end function parseFrame(frame) local parts = {} local isBurger = false local isDrinkOrSide = false local size = nil local image_to_object = { ["rbxassetid://14358866788"] = "patty_left" , ["rbxassetid://14358886220"] = "patty_right", ["rbxassetid://14358865402"] = "lettuce", ["rbxassetid://14358884748"] = "tomato", ["rbxassetid://14358880695"] = "cheese", ["rbxassetid://14467423053"] = "fries", ["rbxassetid://14467425084"] = "soda", ["rbxassetid://14467509651"] = "moz_sticks", ["rbxassetid://14358878251"] = "onion", ["rbxassetid://14467511580"] = "onion_rings", ["rbxassetid://9555980177"] = "fruit_juice", ["rbxassetid://1588110682"] = "milkshake" } for _, child in ipairs(frame:GetChildren()) do if child.ClassName == "ImageLabel" then local id = child.Image local partName = image_to_object[id] if partName then local count = findCountFromTextLabels(child) or 1 parts[partName] = (parts[partName] or 0) + count if partName == "patty_left" or partName == "patty_right" or partName == "lettuce" or partName == "tomato" or partName == "cheese" or partName == "onion" then isBurger = true elseif partName == "fries" or partName == "moz_sticks" or partName == "onion_rings" or partName == "soda" or partName == "fruit_juice" or partName == "milkshake" then isDrinkOrSide = true size = findSizeFromTextLabels(child) end end end end return { parts = parts, isBurger = isBurger, isDrinkOrSide = isDrinkOrSide, size = size, } end function calculatePattyCount(parts) local leftCount = parts["patty_left"] or 0 local rightCount = parts["patty_right"] or 0 if leftCount > 0 and rightCount > 0 then return -(leftCount + rightCount) elseif leftCount > 0 then return 10 + leftCount elseif rightCount > 0 then return 20 + rightCount else return 0 end end function getSideCode(part, size) local base = sideBaseCodes[part] if not base then return nil end local offset = sizeOffsets[size] or 0 return base + offset end function getDrinkCode(part, size) local base = drinkBaseCodes[part] if not base then return nil end local offset = sizeOffsets[size] or 0 return base + offset end function buildOrderTable(decodedFrames) local burgerOrder = { 0, 0, 0, 0, 0, 2 } local sideOrder = nil local drinkOrder = nil local burgerIndices = { cheese = 2, lettuce = 3, tomato = 4, onion = 5, } for _, decoded in ipairs(decodedFrames) do if decoded.isBurger then local pattyCount = calculatePattyCount(decoded.parts) if pattyCount == 0 then pattyCount = 11 end burgerOrder[1] = burgerOrder[1] + pattyCount for part, count in pairs(decoded.parts) do if part ~= "patty_left" and part ~= "patty_right" then local idx = burgerIndices[part] if idx then burgerOrder[idx] = burgerOrder[idx] + count end end end elseif decoded.isDrinkOrSide then for part, count in pairs(decoded.parts) do if sideBaseCodes[part] then sideOrder = getSideCode(part, decoded.size) elseif drinkBaseCodes[part] then drinkOrder = getDrinkCode(part, decoded.size) end end end end local orderTable = { [1] = { Order = { burgerOrder, }, }, } if sideOrder then orderTable[1].Order[2] = sideOrder end if drinkOrder then orderTable[1].Order[3] = drinkOrder end return orderTable end function getHarvestable() local targetPlot = workspace.Plots["Plot_" .. client.Name] local harvestable = {} for i, v in pairs(targetPlot.House.Objects:GetChildren()) do if v.Name == "Berry Bush" and not v.ObjectData:FindFirstChild("GrowProgress") then table.insert(harvestable, v) end end return harvestable end function isMemberOf(origin, member) for _, descendant in next, origin:GetDescendants() do if member == descendant then return descendant end end end function waitUntilUnpaused() while featureConfig.autoBuild.paused do task.wait(0.1) end end function checkLowMood() local moodValues = { modules.stats.MoodData.Fun.Value, modules.stats.MoodData.Energy.Value, modules.stats.MoodData.Hygiene.Value, modules.stats.MoodData.Hunger.Value, } local lowCount = 0 for _, value in pairs(moodValues) do if value < featureConfig.autoMood.CheckMoodValue then lowCount += 1 end end return lowCount >= 2 end function boostHunger() local fridge = getClosestObject({ "Fridge" }) if not fridge then return Rayfield:Notify({ Title = "Bloxburg Farm", Content = "You need a fridge!", Duration = 6.5, Image = 4483362458, }) end featureConfig.autoMood.currentMoodStatus = "Eating Food" TweenToPos(fridge.CFrame, 16) local hunger = modules.stats.MoodData.Hunger local start = os.clock() local reached = false local conn = hunger.Changed:Connect(function(val) if val >= 100 then reached = true end end) repeat task.spawn(function() fireServer({ Type = "Interact", Target = fridge, Path = "4", }) end) task.wait(0.2) task.spawn(function() fireServer({ Type = "TakeQuickFood", Name = "Pear", }) end) task.wait(0.2) repeat if client.Character:FindFirstChild("Pear") then fireServer({ Type = "EatEquipped", }) end task.wait(5) until not client.Character:FindFirstChild("Pear") or hunger.Value >= 100 or os.clock() - start > 60 task.wait(0.5) until reached or os.clock() - start > 60 conn:Disconnect() local snack = game.Workspace[client.Name]:FindFirstChild("Pear") if snack then fireServer({ Type = "UnequipItem", Item = snack, }) end end function boostHygiene() local tub = getClosestObject({ "Bathtub" }) or getClosestObject({ "Shower" }) if not tub then return Rayfield:Notify({ Title = "Bloxburg Farm", Content = "You need a shower/tub!", Duration = 6.5, Image = 4483362458, }) end featureConfig.autoMood.currentMoodStatus = "Showering" TweenToPos(tub.CFrame + Vector3.new(3, 2, 0), 16) fireServer({ Type = "Interact", Target = tub, Path = "1", }) local hygiene = modules.stats.MoodData.Hygiene local start = os.clock() local reached = false local conn = hygiene.Changed:Connect(function(val) if val >= 100 then reached = true end end) repeat task.wait(0.5) if hygiene.Value >= 100 then reached = true end until reached or os.clock() - start > 60 conn:Disconnect() fireServer({ Type = "Detach", }) end function boostEnergy() local bed = getClosestObject({ "Bed" }) if not bed then return Rayfield:Notify({ Title = "Bloxburg Farm", Content = "You need a bed!", Duration = 6.5, Image = 4483362458, }) end featureConfig.autoMood.currentMoodStatus = "Sleeping" TweenToPos(bed.CFrame + Vector3.new(3, 2, 0), 16) fireServer({ Type = "Interact", Target = bed, Path = "1", }) local energy = modules.stats.MoodData.Energy local start = os.clock() local reached = false local conn = energy.Changed:Connect(function(val) if val >= 100 then reached = true end end) repeat task.wait(0.5) if energy.Value >= 100 then reached = true end until reached or os.clock() - start > 60 conn:Disconnect() fireServer({ Type = "Detach", }) end function boostFun() local tv = getClosestObject({ "TV" }) or getClosestObject({ "Pixelview" }) or getClosestObject({ "Television" }) if not tv then return Rayfield:Notify({ Title = "Bloxburg Farm", Content = "You need a TV!", Duration = 6.5, Image = 4483362458, }) end featureConfig.autoMood.currentMoodStatus = "Watching TV" TweenToPos(tv.CFrame + Vector3.new(3, 2, 0), 16) for _ = 1, 3 do fireServer({ Type = "Interact", Target = tv, Path = "1", }) end fireServer({ Type = "Interact", Target = tv, Path = "2", }) local fun = modules.stats.MoodData.Fun local start = os.clock() local reached = false local conn = fun.Changed:Connect(function(val) if val >= 100 then reached = true end end) repeat task.wait(0.5) if fun.Value >= 100 then reached = true end until reached or os.clock() - start > 60 conn:Disconnect() fireServer({ Type = "Interact", Target = tv, Path = "1", }) end function boost() featureConfig.autoMood.isBoosting = true invokeServer({ Type = "ToPlot", Player = client.Name, }) task.wait(0.5) fireServer({ Type = "EndShift" }) boostHygiene() boostEnergy() boostFun() boostHunger() if not featureConfig.autofarmSettings.isOnBreak then require(clientScripts.JobHandler):GoToWork(featureConfig.autoBuild.SelectedJob) invokeServer({ Type = "StartShift", Job = featureConfig.autoBuild.SelectedJob }) end task.wait(1) featureConfig.autoMood.isBoosting = false featureConfig.autoMood.currentMoodStatus = "Waiting" end function shouldTakeBreak() if not featureConfig.autofarmSettings.breaksEnabled then featureConfig.autofarmSettings.timeTill = "Disabled" return false end if not featureConfig.autoBuild.SelectedJob then featureConfig.autofarmSettings.timeTill = "Disabled" return false end if featureConfig.autoMood.isBoosting then featureConfig.autofarmSettings.timeTill = "Disabled" return false end local now = os.clock() local timeSinceLastBreak = now - featureConfig.autofarmSettings.lastBreakTick if featureConfig.autofarmSettings.isOnBreak then local remainingBreak = (featureConfig.autofarmSettings.breaktime * 60) - timeSinceLastBreak featureConfig.autofarmSettings.timeTill = math.max(0, math.floor(remainingBreak)) else local remainingWork = (featureConfig.autofarmSettings.worktime * 60) - timeSinceLastBreak featureConfig.autofarmSettings.timeTill = math.max(0, math.floor(remainingWork)) end if featureConfig.autofarmSettings.isOnBreak then if timeSinceLastBreak >= (featureConfig.autofarmSettings.breaktime * 60) then task.wait() featureConfig.autofarmSettings.isOnBreak = false featureConfig.autofarmSettings.lastBreakTick = os.clock() require(clientScripts.JobHandler):GoToWork(featureConfig.autoBuild.SelectedJob) featureConfig.autoMood.currentMoodStatus = "Working" return false else return true end else if timeSinceLastBreak >= (featureConfig.autofarmSettings.worktime * 60) then task.wait() featureConfig.autofarmSettings.isOnBreak = true featureConfig.autofarmSettings.lastBreakTick = os.clock() fireServer({ Type = "EndShift" }) task.wait(0.25) invokeServer({ Type = "ToPlot", Player = client.Name, }) if featureConfig.autoHarvest.enabled then local harvestable = getHarvestable() if #harvestable > 0 then for i, harvest in pairs(harvestable) do TweenToPos(harvest.Position, 16) fireServer({ Type = "Interact", Target = harvest, Path = "6", }) task.wait(2) end end end featureConfig.autoMood.currentMoodStatus = "On Break" boost() return true end end return false end function getClosestCustomer() local rootPart = character:FindFirstChild("HumanoidRootPart") local closest = nil local shortestDist = math.huge for _, customer in ipairs(CollectionService:GetTagged("PizzaPlanetDeliveryCustomer")) do if customer:IsA("Model") and customer.PrimaryPart then local dist = (customer.PrimaryPart.Position - rootPart.Position).Magnitude if dist < shortestDist then shortestDist = dist closest = customer end end end if closest then return closest end end function getClosetSpawn(spawnTable) local closestSpawn = nil local shortestDistance = math.huge local hrp = character:FindFirstChild("HumanoidRootPart") if not hrp then return nil end for _, spawn in ipairs(spawnTable) do local pos if spawn:IsA("Model") and spawn:FindFirstChild("PrimaryPart") then pos = spawn.PrimaryPart.Position elseif spawn:IsA("BasePart") then pos = spawn.Position elseif spawn:IsA("Model") then pos = spawn:GetModelCFrame().Position end if pos then local dist = (hrp.Position - pos).Magnitude if dist < shortestDistance then shortestDistance = dist closestSpawn = spawn end end end return closestSpawn end function playerTracker() for _, player in next, game.Players:GetPlayers() do local plot = workspace.Plots:FindFirstChild("Plot_" .. player.Name) if plot then table.insert(PlayersList, player.Name) end end Players.PlayerAdded:Connect(function(player) local plot = workspace.Plots:FindFirstChild("Plot_" .. player.Name) if plot then table.insert(PlayersList, player.Name) end end) Players.PlayerRemoving:Connect(function(player) local index = table.find(PlayersList, player.Name) if index then table.remove(PlayersList, index) end end) end function antiAfk() while task.wait(60) do VirtualUser:CaptureController() VirtualUser:ClickButton2(Vector2.new(0, 0)) end end function toggleAllDoors(status) for i, v in next, workspace.Plots:GetDescendants() do if v.Name == "IsOpen" then v.Value = status end end end function findCrate() local cratePos = Vector3.new(541.024, 21.26, -792.213) local cratesFolder = workspace.Environment.Locations.City.Supermarket.Geometry.Crates for _, crate in ipairs(cratesFolder:GetChildren()) do if crate:IsA("BasePart") and (crate.Position - cratePos).Magnitude < 0.01 then return crate end end return nil end function getShelve() local shelves = game:GetService("Workspace").Environment.Locations.City.Supermarket.Interior.Shelves for _, shelf in pairs(shelves:GetChildren()) do if shelf:FindFirstChild("IsEmpty") and shelf.IsEmpty.Value == true then return shelf end end return nil end function isInstanceNearPosition(instance, targetPos, tolerance) tolerance = tolerance or 0.1 if not instance then return false end local pos if instance:IsA("BasePart") then pos = instance.Position elseif instance:IsA("Model") and instance.PrimaryPart then pos = instance.PrimaryPart.Position else return false end return (pos - targetPos).Magnitude <= tolerance end function getCurrentStation(path) local stations = path local closestStation = nil local shortestDistance = math.huge for _, station in pairs(stations:GetChildren()) do if station:IsA("Model") and station.PrimaryPart then local distance = (station.PrimaryPart.Position - client.Character.PrimaryPart.Position).Magnitude local inUse = station:FindFirstChild("InUse") if distance < shortestDistance and (not inUse or inUse.Value == nil or inUse.Value == false or inUse.Value == client) then shortestDistance = distance closestStation = station end end end return closestStation end function moodBreakCheck() if shouldTakeBreak() then featureConfig.autoMood.currentMoodStatus = "On Break" end if featureConfig.autoMood.MoodBoostEnabled and checkLowMood() then featureConfig.autoMood.currentMoodStatus = "Starting" boost() end end function fireConnections(instance, signal) firesignal(instance[signal]) end function applyStockerMods() local function safeFindFirstChildWhichIsA(instance, className) for _, child in ipairs(instance:GetChildren()) do if child:IsA(className) then return child end end return nil end local function addModifier(part, label) local existing = safeFindFirstChildWhichIsA(part, "PathfindingModifier") if existing then pcall(function() existing:Destroy() end) end local mod = Instance.new("PathfindingModifier") mod.Name = "Azurix_Mod" mod.PassThrough = false mod.Label = label mod.Parent = part end local function safeDescendants(container, callback) if container and container:IsA("Instance") then for _, part in ipairs(container:GetDescendants()) do if part:IsA("BasePart") then callback(part) end end end end local function safeChildren(container, callback) if container and container:IsA("Instance") then for _, part in ipairs(container:GetChildren()) do if part:IsA("BasePart") then callback(part) end end end end local floor = game["Workspace"]["Environment"]["Locations"]["City"]["Supermarket"]["Exterior"]["Floor"] addModifier(floor, "Floor") for i, v in pairs( game["Workspace"]["Environment"]["Locations"]["City"]["Supermarket"]["Interior"]["Shelves"]:GetChildren() ) do if isInstanceNearPosition(v.PrimaryPart, Vector3.new(532.849, 20.86, -764.019)) then safeDescendants(v, function(part) addModifier(part, "shelves") end) end end end end --// Globals do getgenv().sideBaseCodes = { fries = 11, moz_sticks = 21, onion_rings = 31 } getgenv().drinkBaseCodes = { soda = 11, fruit_juice = 21, milkshake = 31 } getgenv().sizeOffsets = { S = 0, M = 1, L = 2 } getgenv().data = { foodList = dataRequire(ReplicatedStorage.Items.Food), appliances = dataRequire(ReplicatedStorage.Items.Appliances), customers = workspace["_game"].SpawnedCharacters, skills = {}, items = ReplicatedStorage.Items, vehicleData = require(ReplicatedStorage.Modules.VehicleService.VehicleData), oldStaminaFunction = modules.staminaService.GetMaxStaminaValue } getgenv().featureConfig = {autoBuild={saveTarget=nil,loadId=nil,infoId=nil,startAfter=0,webhookAutoBuild=false,saveDelay=false,maxMoneyForObject=100000,useVehicles=true,useBlockbux=false,abortBuild=false,playerTargetTextbox=nil,useInventoryItems=true,paused=false},autoMood={CheckMoodValue=20,currentMoodStatus="Waiting",MoodBoostEnabled=false,isBoosting=false},jobList={"StylezHairdresser","PizzaPlanetBaker","CleanJanitor"},autofarmSettings={enablequit=false,quitatamt=nil,worktime=30,breaktime=30,breaksEnabled=false,SelectedJob=nil,isOnBreak=false,lastBreakTick=nil,modsApplied=false,superMarketMods=false,currentStatus="Starting",currentlyEnabled=false,timeTill=nil,workTick=nil,hasTakenIntialBag=false,itemScannedCount=0},webhookSettings={webhook=nil,webhookdelay=5,enabled=false},webSocket={connected="Disconnected"},autoHarvest={itemToHarvest="Berry Bush",enabled=false}} getgenv().farmStats = { values = { totalEarnings = 0, lastShift = 0 } } getgenv().PlayersList = {} end --// Start task.spawn(antiAfk) modules.PizzaPlanetDelivery.ShiftLoop = function() return task.wait(9e9) end --// Rayfield GUI Interface local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() local Window = Rayfield:CreateWindow({ Name = "Bloxburg Auto Farm", LoadingTitle = "Loading Script...", LoadingSubtitle = "by Synix", ConfigurationSaving = { Enabled = true, FolderName = "BloxburgFarm", FileName = "Config" }, Discord = { Enabled = false, Invite = "noinvitelink", RememberJoins = true }, KeySystem = false, KeySettings = { Title = "Untitled", Subtitle = "Key System", Note = "No method of obtaining the key is provided", FileName = "Key", SaveKey = true, GrabKeyFromSite = false, Key = {"Hello"} } }) --// Auto Farm Tab local AutoFarmTab = Window:CreateTab("Auto Farm", 4483362458) local MainSection = AutoFarmTab:CreateSection("Main Controls") local JobDropdown = AutoFarmTab:CreateDropdown({ Name = "Select Job", Options = {"StylezHairdresser", "PizzaPlanetBaker", "CleanJanitor"}, CurrentOption = {"None"}, MultipleOptions = false, Flag = "JobSelection", Callback = function(Options) featureConfig.autoBuild.SelectedJob = Options[1] end, }) local GoToWorkButton = AutoFarmTab:CreateButton({ Name = "Go To Work", Callback = function() if featureConfig.autoBuild.SelectedJob then require(clientScripts.JobHandler):GoToWork(featureConfig.autoBuild.SelectedJob) invokeServer({ Type = "StartShift", Job = featureConfig.autoBuild.SelectedJob }) Rayfield:Notify({ Title = "Auto Farm", Content = "Going to work as " .. featureConfig.autoBuild.SelectedJob, Duration = 6.5, Image = 4483362458, }) else Rayfield:Notify({ Title = "Error", Content = "Please select a job first!", Duration = 6.5, Image = 4483362458, }) end end, }) local AutoFarmToggle = AutoFarmTab:CreateToggle({ Name = "Enable Auto Farm", CurrentValue = false, Flag = "AutoFarmEnabled", Callback = function(Value) featureConfig.autofarmSettings.currentlyEnabled = Value if Value then if featureConfig.autoBuild.SelectedJob then featureConfig.autofarmSettings.workTick = tick() featureConfig.autofarmSettings.lastBreakTick = os.clock() Rayfield:Notify({ Title = "Auto Farm", Content = "Auto farm enabled!", Duration = 6.5, Image = 4483362458, }) else Rayfield:Notify({ Title = "Error", Content = "Please select a job first!", Duration = 6.5, Image = 4483362458, }) AutoFarmToggle:Set(false) end else Rayfield:Notify({ Title = "Auto Farm", Content = "Auto farm disabled!", Duration = 6.5, Image = 4483362458, }) end end, }) --// Auto Mood Tab local AutoMoodTab = Window:CreateTab("Auto Mood", 4483362458) local MoodSection = AutoMoodTab:CreateSection("Mood Management") local MoodStatusLabel = AutoMoodTab:CreateLabel("Status: Waiting") local MoodSlider = AutoMoodTab:CreateSlider({ Name = "Mood % To Enable At", Range = {1, 100}, Increment = 1, Suffix = "%", CurrentValue = 20, Flag = "MoodThreshold", Callback = function(Value) featureConfig.autoMood.CheckMoodValue = Value end, }) local AutoMoodToggle = AutoMoodTab:CreateToggle({ Name = "Enable Auto Mood", CurrentValue = false, Flag = "AutoMoodEnabled", Callback = function(Value) featureConfig.autoMood.MoodBoostEnabled = Value if Value then task.spawn(function() while featureConfig.autoMood.MoodBoostEnabled do task.wait(1) MoodStatusLabel:Set("Status: " .. featureConfig.autoMood.currentMoodStatus) end end) end end, }) --// Breaks Tab local BreaksTab = Window:CreateTab("Breaks", 4483362458) local BreakSection = BreaksTab:CreateSection("Break Settings") local WorkTimeSlider = BreaksTab:CreateSlider({ Name = "Work Time (Minutes)", Range = {5, 120}, Increment = 5, Suffix = " min", CurrentValue = 30, Flag = "WorkTime", Callback = function(Value) featureConfig.autofarmSettings.worktime = Value end, }) local BreakTimeSlider = BreaksTab:CreateSlider({ Name = "Break Time (Minutes)", Range = {5, 60}, Increment = 5, Suffix = " min", CurrentValue = 20, Flag = "BreakTime", Callback = function(Value) featureConfig.autofarmSettings.breaktime = Value end, }) local BreaksToggle = BreaksTab:CreateToggle({ Name = "Enable Breaks", CurrentValue = false, Flag = "BreaksEnabled", Callback = function(Value) featureConfig.autofarmSettings.breaksEnabled = Value end, }) --// Stats Tab local StatsTab = Window:CreateTab("Statistics", 4483362458) local StatsSection = StatsTab:CreateSection("Farm Statistics") local ShiftEarningsLabel = StatsTab:CreateLabel("Shift Earnings: $0") local EfficiencyLabel = StatsTab:CreateLabel("Efficiency: 0%") local FarmTimeLabel = StatsTab:CreateLabel("Farm Time: 0m") local TotalEarningsLabel = StatsTab:CreateLabel("Total Earnings: $0") task.spawn(function() while task.wait(1) do if featureConfig.autofarmSettings.currentlyEnabled then local totalEarned = farmStats.values.totalEarnings or 0 local minutesPassed = featureConfig.autofarmSettings.workTick and math.floor((tick() - featureConfig.autofarmSettings.workTick) / 60) or 0 ShiftEarningsLabel:Set("Shift Earnings: $" .. beautifyMoney(clientStats.Job.ShiftEarnings.Value)) EfficiencyLabel:Set("Efficiency: " .. math.floor(clientStats.Job.Efficiency.Value * 100) .. "%") FarmTimeLabel:Set("Farm Time: " .. minutesPassed .. "m") TotalEarningsLabel:Set("Total Earnings: $" .. beautifyMoney(math.floor(totalEarned))) end end end) --// Utilities Tab local UtilitiesTab = Window:CreateTab("Utilities", 4483362458) local UtilSection = UtilitiesTab:CreateSection("Utility Functions") local AutoHarvestToggle = UtilitiesTab:CreateToggle({ Name = "Auto Harvest", CurrentValue = false, Flag = "AutoHarvest", Callback = function(Value) featureConfig.autoHarvest.enabled = Value end, }) local ToggleDoorsButton = UtilitiesTab:CreateButton({ Name = "Toggle All Doors", Callback = function() toggleAllDoors(true) Rayfield:Notify({ Title = "Utilities", Content = "All doors have been opened!", Duration = 6.5, Image = 4483362458, }) end, }) --// Job Logic Loops task.spawn(function() while task.wait() do if modules.stats.Job.Value == "CleanJanitor" and featureConfig.autoBuild.SelectedJob == "CleanJanitor" and featureConfig.autofarmSettings.currentlyEnabled then moodBreakCheck() if not featureConfig.autoMood.isBoosting then local spawns = workspace.Environment.Locations.City.GreenClean.Geometry.Spawns local currentSpawns = {} if spawns then for _, v in pairs(spawns:GetChildren()) do if v:FindFirstChild("Object") and not v:FindFirstChild("Mesh") then table.insert(currentSpawns, v) end end end if #currentSpawns > 0 then local closestSpawn = getClosetSpawn(currentSpawns) if closestSpawn then local pos = closestSpawn.Position pathfind(pos) invokeServer({ Type = "CleanJanitorObject", Spawn = closestSpawn, }) if clientStats.Job.ShiftEarnings.Value > farmStats.values.lastShift then farmStats.values.totalEarnings += clientStats.Job.ShiftEarnings.Value - farmStats.values.lastShift farmStats.values.lastShift = clientStats.Job.ShiftEarnings.Value end end end end end end end) task.spawn(function() while task.wait() do if modules.stats.Job.Value == "PizzaPlanetBaker" and featureConfig.autoBuild.SelectedJob == "PizzaPlanetBaker" and featureConfig.autofarmSettings.currentlyEnabled then moodBreakCheck() if not featureConfig.autoMood.isBoosting then local station = getCurrentStation( game:GetService("Workspace").Environment.Locations.City.PizzaPlanet.Interior.BakerWorkstations ) if station then task.wait() pathfind(station.CounterTop.Position - station.CounterTop.CFrame.LookVector * 5.5) local function getCrate() for _, crate in pairs( game:GetService("Workspace").Environment.Locations.City.PizzaPlanet.Interior.IngredientCrates :GetChildren() ) do if isInstanceNearPosition(crate, Vector3.new(-49.26, 2.62, -55.95), 1) then return crate end end return nil end local function RestockIngredients(station) if station.Order.IngredientsLeft.Value == 0 then pathfind(Vector3.new(-45.39, 4.46, -54.86)) local crate = getCrate() fireServer({ Type = "TakeIngredientCrate", Object = crate, }) pathfind( station.CounterTop.Position - station.CounterTop.CFrame.LookVector * 5.5 ) fireServer({ Type = "RestockIngredients", Workstation = station, }) task.wait(0.25) end end RestockIngredients(station) if station.Order.Value ~= "true" then fireServer({ Type = "JobCompleted", Workstation = station, Order = { true, true, true, station.Order.Value, }, }) if clientStats.Job.ShiftEarnings.Value > farmStats.values.lastShift then farmStats.values.totalEarnings += clientStats.Job.ShiftEarnings.Value - farmStats.values.lastShift farmStats.values.lastShift = clientStats.Job.ShiftEarnings.Value end end end end end end end) task.spawn(function() while task.wait() do if modules.stats.Job.Value == "StylezHairdresser" and featureConfig.autoBuild.SelectedJob == "StylezHairdresser" and featureConfig.autofarmSettings.currentlyEnabled then moodBreakCheck() if not featureConfig.autoMood.isBoosting then for _, part in pairs(game:GetService("Workspace").Environment.Locations.City.StylezHairStudio.Interior.HairdresserWorkstations:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end local station = getCurrentStation( game:GetService("Workspace").Environment.Locations.City.StylezHairStudio.Interior.HairdresserWorkstations ) if not station then repeat task.wait() station = getCurrentStation(game:GetService("Workspace").Environment.Locations.City.StylezHairStudio.Interior.HairdresserWorkstations) until station end if station then pathfind(station.Mat.Position - Vector3.new(-2, 0, 0)) if station.Occupied.Value ~= nil then local currentCustomer repeat task.wait() currentCustomer = station.Occupied.Value until currentCustomer and currentCustomer:FindFirstChild("Order") local hairValue = currentCustomer.Order.Style.Value local hairColor = currentCustomer.Order.Color.Value fireServer({ Type = "JobCompleted", Order = { hairValue, hairColor }, Workstation = station }) if clientStats.Job.ShiftEarnings.Value > farmStats.values.lastShift then farmStats.values.totalEarnings += clientStats.Job.ShiftEarnings.Value - farmStats.values.lastShift farmStats.values.lastShift = clientStats.Job.ShiftEarnings.Value end end end end end end end) Rayfield:LoadConfiguration()