local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() local Window = Rayfield:CreateWindow({ Name = "Get Heavy For Brainrots", LoadingTitle = "Getting Heavier...", LoadingSubtitle = "by HeliosDev", ConfigurationSaving = { Enabled = true, FolderName = "GetHeavyHub", FileName = "Config" }, Theme = "Ocean" }) -- SERVICES local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local ReplicatedStorage = game:GetService("ReplicatedStorage") local Workspace = game:GetService("Workspace") -- SAFE EVENT LOADING local Events = ReplicatedStorage:FindFirstChild("Events") if not Events then Events = ReplicatedStorage:WaitForChild("Events", 10) end local function getEvent(name) if Events then return Events:FindFirstChild(name) end return nil end local UpgradeFatEvent = getEvent("UpgradeFatEvent") local UpgradeCarryEvent = getEvent("UpgradeCarryEvent") local UpgradeItemEvent = getEvent("UpgradeItemEvent") local SurfaceUIEvent = getEvent("SurfaceUIEvent") local PromptEvent = getEvent("PromptEvent") local RebirthEvent = getEvent("RebirthEvent") -- ZONE POSITIONS (best = deepest Y, Common last) local Zones = { {name = "Ancient", pos = Vector3.new(437, -347, -615)}, {name = "Divine", pos = Vector3.new(437, -271, -287)}, {name = "OG", pos = Vector3.new(437, -197, 206)}, {name = "Secret", pos = Vector3.new(437, -120, 535)}, {name = "Common", pos = Vector3.new(435, 7, 955)}, } local ZoneNames = {"Ancient", "Divine", "OG", "Secret", "Common"} -- KNOWN LOCATIONS local Locations = { Spawn = Vector3.new(438, 8, 1036), SpinWheel = Vector3.new(529, 17, 1006), } -- MUTATION PRIORITY local MutationPriority = { ["lava"] = 5, ["galaxy"] = 4, ["diamond"] = 3, ["golden"] = 2, } -- SCRIPT STATE local State = { AutoCollectCash = false, AutoUpgradeFat = false, AutoUpgradeCarry = false, AutoUpgradeSlots = false, AutoUpgradeFloors = false, AutoRebirth = false, AutoFarmZone = false, AutoFarmAll = false, AutoProteinBar = false, CollectCashRunning = false, UpgradeFatRunning = false, UpgradeCarryRunning = false, UpgradeSlotsRunning = false, UpgradeFloorsRunning = false, RebirthRunning = false, FarmZoneRunning = false, FarmAllRunning = false, ProteinBarRunning = false, SelectedFarmZone = "Ancient", PrioritizeMutations = true, CarryLimit = 5, Collected = 0, } -- SAFE FIRE HELPER local function safeFire(event, ...) if event then local ok, err = pcall(function(...) event:FireServer(...) end, ...) if not ok then warn("FireServer error: ", err) end end end -- TELEPORT HELPER local function teleport(pos) local char = LocalPlayer.Character if not char then char = LocalPlayer.CharacterAdded:Wait() end local hrp = char:FindFirstChild("HumanoidRootPart") if not hrp then return end if typeof(pos) == "CFrame" then hrp.CFrame = pos + Vector3.new(0, 3, 0) elseif typeof(pos) == "Vector3" then hrp.CFrame = CFrame.new(pos + Vector3.new(0, 3, 0)) end end -- GET MUTATION SCORE local function getMutationScore(food) local score = 0 local handle = food:FindFirstChild("Handle") if not handle then return score end local infoGUI = handle:FindFirstChild("InfoGUI") if not infoGUI then return score end local mutation = infoGUI:FindFirstChild("Mutation") if not mutation then return score end for _, child in pairs(mutation:GetChildren()) do local key = child.Name:lower() if MutationPriority[key] and MutationPriority[key] > score then score = MutationPriority[key] end end return score end -- FIND BRAINROTS IN LOADED RARITY ZONES local function findBrainrots() local found = {} local rarityParts = workspace:FindFirstChild("RarityParts") if not rarityParts then return found end for _, rarityFolder in pairs(rarityParts:GetChildren()) do local items = rarityFolder:FindFirstChild("Items") if items then for _, food in pairs(items:GetChildren()) do local handle = food:FindFirstChild("Handle") if handle then local pickUp = handle:FindFirstChild("PickUp") if pickUp and pickUp:IsA("ProximityPrompt") and pickUp.Enabled then local mutScore = getMutationScore(food) table.insert(found, { name = food.Name, rarity = rarityFolder.Name, prompt = pickUp, position = handle.Position, mutationScore = mutScore, }) end end end end end local char = LocalPlayer.Character local myPos = nil if char then local hrp = char:FindFirstChild("HumanoidRootPart") if hrp then myPos = hrp.Position end end if State.PrioritizeMutations then table.sort(found, function(a, b) if a.mutationScore ~= b.mutationScore then return a.mutationScore > b.mutationScore end if myPos then return (a.position - myPos).Magnitude < (b.position - myPos).Magnitude end return false end) else if myPos then table.sort(found, function(a, b) return (a.position - myPos).Magnitude < (b.position - myPos).Magnitude end) end end return found end -- FIND MY PLOT local function getMyPlot() local plots = workspace:FindFirstChild("Plots") if not plots then return nil end local playerPlots = plots:FindFirstChild("PlayerPlots") if not playerPlots then return nil end return playerPlots:FindFirstChild(tostring(LocalPlayer.UserId)) end -- COLLECT CASH FROM ALL SLOTS local function collectAllCash() local myPlot = getMyPlot() if not myPlot then return end for i = 1, 7 do local floor = myPlot:FindFirstChild("Floor" .. i) if not floor then continue end local slots = floor:FindFirstChild("Slots") if not slots then continue end for _, slot in pairs(slots:GetChildren()) do local button = slot:FindFirstChild("Button") if not button then continue end local collectPart = button:FindFirstChild("Collect") if not collectPart then continue end if collectPart:IsA("BasePart") then local char = LocalPlayer.Character if char and char:FindFirstChild("HumanoidRootPart") then pcall(function() firetouchinterest(char.HumanoidRootPart, collectPart, 0) task.wait(0.05) firetouchinterest(char.HumanoidRootPart, collectPart, 1) end) end end end end end -- TABS local FarmTab = Window:CreateTab("Farm", 4483362458) local UpgradeTab = Window:CreateTab("Upgrades", 4483362458) local TeleportTab = Window:CreateTab("Teleport", 4483362458) -- ═══════════════════════════════════ -- FARM TAB -- ═══════════════════════════════════ FarmTab:CreateSection("Configuration") FarmTab:CreateDropdown({ Name = "Farm Zone", Options = ZoneNames, CurrentOption = {"Ancient"}, Callback = function(Option) State.SelectedFarmZone = Option[1] end, }) FarmTab:CreateSlider({ Name = "Carry Limit", Range = {1, 20}, Increment = 1, Suffix = " brainrots", CurrentValue = 5, Callback = function(Value) State.CarryLimit = Value end, }) FarmTab:CreateToggle({ Name = "Prioritize Mutations (Lava > Galaxy > Diamond > Golden)", CurrentValue = true, Callback = function(Value) State.PrioritizeMutations = Value end, }) FarmTab:CreateSection("Auto Farm") FarmTab:CreateToggle({ Name = "Auto Farm (Zone -> Collect -> Spawn)", CurrentValue = false, Callback = function(Value) State.AutoFarmZone = Value if Value and not State.FarmZoneRunning then State.FarmZoneRunning = true task.spawn(function() while State.AutoFarmZone do local success, err = pcall(function() State.Collected = 0 local targetPos = nil for _, z in ipairs(Zones) do if z.name == State.SelectedFarmZone then targetPos = z.pos break end end if not targetPos then return end teleport(targetPos) task.wait(1) local brainrots = findBrainrots() if #brainrots > 0 then for _, br in ipairs(brainrots) do if not State.AutoFarmZone then break end if State.Collected >= State.CarryLimit then break end teleport(br.position) task.wait(0.2) if br.prompt and br.prompt.Parent then pcall(function() fireproximityprompt(br.prompt) end) safeFire(PromptEvent, br.prompt) State.Collected = State.Collected + 1 task.wait(0.3) end end teleport(Locations.Spawn) task.wait(2) else task.wait(2) end end) if not success then warn("AutoFarm error: ", err) end task.wait(0.3) end State.FarmZoneRunning = false end) end end, }) FarmTab:CreateToggle({ Name = "Auto Farm ALL Zones (Best First)", CurrentValue = false, Callback = function(Value) State.AutoFarmAll = Value if Value and not State.FarmAllRunning then State.FarmAllRunning = true task.spawn(function() while State.AutoFarmAll do local success, err = pcall(function() State.Collected = 0 for _, zone in ipairs(Zones) do if not State.AutoFarmAll then break end if State.Collected >= State.CarryLimit then break end teleport(zone.pos) task.wait(1) local brainrots = findBrainrots() for _, br in ipairs(brainrots) do if not State.AutoFarmAll then break end if State.Collected >= State.CarryLimit then break end teleport(br.position) task.wait(0.2) if br.prompt and br.prompt.Parent then pcall(function() fireproximityprompt(br.prompt) end) safeFire(PromptEvent, br.prompt) State.Collected = State.Collected + 1 task.wait(0.3) end end end teleport(Locations.Spawn) task.wait(2) end) if not success then warn("AutoFarmAll error: ", err) end task.wait(0.3) end State.FarmAllRunning = false end) end end, }) FarmTab:CreateSection("Cash Collection") FarmTab:CreateToggle({ Name = "Auto Collect Cash (From All Slots)", CurrentValue = false, Callback = function(Value) State.AutoCollectCash = Value if Value and not State.CollectCashRunning then State.CollectCashRunning = true task.spawn(function() while State.AutoCollectCash do pcall(function() collectAllCash() end) task.wait(0.5) end State.CollectCashRunning = false end) end end, }) FarmTab:CreateSection("Protein Bars (Event)") FarmTab:CreateToggle({ Name = "Auto Collect Protein Bars", CurrentValue = false, Callback = function(Value) State.AutoProteinBar = Value if Value and not State.ProteinBarRunning then State.ProteinBarRunning = true task.spawn(function() while State.AutoProteinBar do pcall(function() local bars = workspace:FindFirstChild("LiveOpsProteinBars") if bars then for _, desc in pairs(bars:GetDescendants()) do if desc:IsA("ProximityPrompt") and desc.Enabled then local pos = nil if desc.Parent and desc.Parent:IsA("BasePart") then pos = desc.Parent.Position end if pos then teleport(pos) task.wait(0.2) pcall(function() fireproximityprompt(desc) end) safeFire(PromptEvent, desc) task.wait(0.3) end end end end end) task.wait(2) end State.ProteinBarRunning = false end) end end, }) -- ═══════════════════════════════════ -- UPGRADES TAB -- ═══════════════════════════════════ UpgradeTab:CreateSection("Stats") UpgradeTab:CreateToggle({ Name = "Auto Upgrade Fat (Turbo)", CurrentValue = false, Callback = function(Value) State.AutoUpgradeFat = Value if Value and not State.UpgradeFatRunning then State.UpgradeFatRunning = true task.spawn(function() while State.AutoUpgradeFat do for i = 1, 10 do safeFire(UpgradeFatEvent, 10) end task.wait(0.05) end State.UpgradeFatRunning = false end) end end, }) UpgradeTab:CreateToggle({ Name = "Auto Upgrade Carry (Turbo)", CurrentValue = false, Callback = function(Value) State.AutoUpgradeCarry = Value if Value and not State.UpgradeCarryRunning then State.UpgradeCarryRunning = true task.spawn(function() while State.AutoUpgradeCarry do for i = 1, 10 do safeFire(UpgradeCarryEvent, 1) end task.wait(0.05) end State.UpgradeCarryRunning = false end) end end, }) UpgradeTab:CreateSection("Base") UpgradeTab:CreateToggle({ Name = "Auto Upgrade Slots (Turbo)", CurrentValue = false, Callback = function(Value) State.AutoUpgradeSlots = Value if Value and not State.UpgradeSlotsRunning then State.UpgradeSlotsRunning = true task.spawn(function() while State.AutoUpgradeSlots do pcall(function() local myPlot = getMyPlot() if not myPlot then return end for i = 1, 7 do if not State.AutoUpgradeSlots then break end local floor = myPlot:FindFirstChild("Floor" .. i) if not floor then continue end local slots = floor:FindFirstChild("Slots") if not slots then continue end for _, slot in pairs(slots:GetChildren()) do if not State.AutoUpgradeSlots then break end local upgrade = slot:FindFirstChild("Upgrade") if upgrade then local part = upgrade:FindFirstChild("Part") if part then local gui = part:FindFirstChild("UpgradeGUI") if gui then for j = 1, 5 do safeFire(UpgradeItemEvent, gui, "NormalUpgrade") end end end end end end end) task.wait(0.1) end State.UpgradeSlotsRunning = false end) end end, }) UpgradeTab:CreateToggle({ Name = "Auto Upgrade Floors (Turbo)", CurrentValue = false, Callback = function(Value) State.AutoUpgradeFloors = Value if Value and not State.UpgradeFloorsRunning then State.UpgradeFloorsRunning = true task.spawn(function() while State.AutoUpgradeFloors do pcall(function() local myPlot = getMyPlot() if not myPlot then return end for i = 1, 7 do local floor = myPlot:FindFirstChild("Floor" .. i) if floor then for j = 1, 5 do safeFire(SurfaceUIEvent, "Upgrade", floor) end end end end) task.wait(0.1) end State.UpgradeFloorsRunning = false end) end end, }) UpgradeTab:CreateSection("Mass Upgrade All") UpgradeTab:CreateButton({ Name = "Mass Upgrade EVERYTHING (Once)", Callback = function() pcall(function() for i = 1, 20 do safeFire(UpgradeFatEvent, 10) end for i = 1, 20 do safeFire(UpgradeCarryEvent, 1) end local myPlot = getMyPlot() if not myPlot then return end for i = 1, 7 do local floor = myPlot:FindFirstChild("Floor" .. i) if not floor then continue end for j = 1, 5 do safeFire(SurfaceUIEvent, "Upgrade", floor) end local slots = floor:FindFirstChild("Slots") if not slots then continue end for _, slot in pairs(slots:GetChildren()) do local upgrade = slot:FindFirstChild("Upgrade") if upgrade then local part = upgrade:FindFirstChild("Part") if part then local gui = part:FindFirstChild("UpgradeGUI") if gui then for j = 1, 5 do safeFire(UpgradeItemEvent, gui, "NormalUpgrade") end end end end end end end) end }) UpgradeTab:CreateSection("Rebirth") UpgradeTab:CreateToggle({ Name = "Auto Rebirth", CurrentValue = false, Callback = function(Value) State.AutoRebirth = Value if Value and not State.RebirthRunning then State.RebirthRunning = true task.spawn(function() while State.AutoRebirth do safeFire(RebirthEvent) task.wait(3) end State.RebirthRunning = false end) end end, }) UpgradeTab:CreateButton({ Name = "Rebirth Now", Callback = function() safeFire(RebirthEvent) end }) -- ═══════════════════════════════════ -- TELEPORT TAB -- ═══════════════════════════════════ TeleportTab:CreateSection("Locations") TeleportTab:CreateButton({ Name = "TP to Spawn", Callback = function() teleport(Locations.Spawn) end }) TeleportTab:CreateButton({ Name = "TP to Spin Wheel", Callback = function() teleport(Locations.SpinWheel) end }) TeleportTab:CreateButton({ Name = "TP to My Plot", Callback = function() local myPlot = getMyPlot() if not myPlot then return end local floor1 = myPlot:FindFirstChild("Floor1") if not floor1 then return end local mainPart = floor1:FindFirstChild("MainPart") if not mainPart then return end teleport(mainPart.Position) end }) TeleportTab:CreateSection("Zones") for _, zone in ipairs(Zones) do TeleportTab:CreateButton({ Name = "TP to " .. zone.name, Callback = function() teleport(zone.pos) end }) end