Pastebin
API
tools
faq
paste
Login
Sign up
Please fix the following errors:
New Paste
Syntax Highlighting
--BGSI New if not game:IsLoaded() then game.Loaded:wait() end task.wait(10) --[[setfpscap(55) print("FPS CAP 15")]]-- -- Run a single check for 100M Egg availability spawn(function() local success, result = pcall(function() -- Wait a bit to ensure the game is fully loaded task.wait(60) -- Check if the Generic folder exists if workspace:FindFirstChild("Rendered") and workspace.Rendered:FindFirstChild("Generic") then -- Check if 100M Egg exists directly if workspace.Rendered.Generic:FindFirstChild("100M Egg") then return true -- Egg found else -- Iterate through all children of Generic to find 100M Egg for i, v in pairs(workspace.Rendered.Generic:GetChildren()) do if v.Name == "100M Egg" then return true -- Egg found end end end end -- If we reach here, egg was not found game:GetService("Players").LocalPlayer:Kick("100M Egg not available in this server. Please rejoin a different server.") return false end) if not success then print("Error checking for 100M Egg: " .. tostring(result)) end end) spawn(function() -- anti afk task.wait(30) local vu = game:GetService("VirtualUser") game:GetService("Players").LocalPlayer.Idled:connect(function() vu:Button2Down(Vector2.new(0,0),workspace.CurrentCamera.CFrame) wait(1) vu:Button2Up(Vector2.new(0,0),workspace.CurrentCamera.CFrame) end) end) spawn(function() -- remove hatach animation task.wait(30) local HatchEggModule = nil for _, func in next, getgc(true) do if typeof(func) == "function" and getfenv(func).script then local scriptName = getfenv(func).script.Name local scriptParent = getfenv(func).script.Parent -- Look for the right module if scriptName == "HatchEgg" and tostring(scriptParent) == "Effects" then local env = getfenv(func) local module = require(env.script) if typeof(module) == "table" then HatchEggModule = module break end end end end -- Disable all functions in the HatchEgg module if HatchEggModule then for key, value in pairs(HatchEggModule) do if typeof(value) == "function" then HatchEggModule[key] = function(...) return end end end print("โ Hatch animation functions disabled.") else warn("โ Failed to find HatchEgg module.") end end) -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Local Stuff โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local GuiService = game:GetService("GuiService") local VIM = game:GetService("VirtualInputManager") local TweenService = game:GetService("TweenService") local Players = game:GetService("Players") local HttpService = game:GetService("HttpService") local Remote = game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote local LocalDataService = require(game:GetService("ReplicatedStorage").Client.Framework.Services.LocalData) local data = LocalDataService:Get() -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโ Auto Trade Secret Pets โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local AutoTradeSecretPets_Toggle = false local tradeThread = nil local targetTradeName = "PixyPalx" -- Target player name (can be easily changed) -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโ Auto Bubble & Sell Function โโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local Auto_Bubble_And_Sell_Active = false local Auto_Bubble_And_Sell_Thread = nil -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโ Auto Use Potion Settings โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local isAutoUsingPotions = false local autoUsingPotionsThread = nil local isHatchingX25Egg = false -- New flag to track if we're hatching a x25 egg -- List of regular potions we want to maintain active all the time local priorityPotions = { "Lucky", "Speed", "Mythic" } -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโ Auto Collect Pickup Settings โโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local isAutoCollectingPickups = false local autoCollectingPickupsThread = nil -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Auto Hatch Settings โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local isAutoHatching = false local autoHatchingThread = nil local tempDisableHatching = false local pickupCollectionStartedByHatcher = false -- Track if we started pickup collection -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโ Coin & Gems Settings โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local Max_Coins = 400000000000 --400B local Low_Coins = 100000000 --100M local Max_Gems = 100000000 --100M local Low_Gems = 10000000 --10M -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Enchant Settings โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ -- ๐ง CONFIG: Desired Enchants and Level local enchants = { ["team-up"] = 5 } -- ๐งช You can add more like: -- ["strong"] = 2, -- ["bubbler"] = 5, -- ["looter"] = 5, -- ["gleaming"] = 5 -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Area To Unlock โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ -- ๐ง CONFIG: Areas to Unlock local AreaToUnlock = { "Floating Island", "Outer Space", "Twilight", "The Void", "Zen" } -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Auto Mastery โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local isAutoMastery = false -- Flag to track if we're automatically upgrading mastery local autoMasteryThread = nil -- Variable to store the auto mastery thread local PetsMasteryCompleted = false -- Flag to track if Pets mastery reached target local BuffsMasteryCompleted = false -- Flag to track if Buffs mastery reached target local ShopsMasteryCompleted = false -- Flag to track if Shops mastery reached target local AllMasteryCompleted = false -- Flag to track if all mastery reached targets local Target_Pets_Mastery = 15 local Target_Buffs_Mastery = 17 local Target_Shops_Mastery = 10 -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Egg Counter โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ -- Add these at the top with your other global variables local EggCounterGui = nil local isEggCounterEnabled = false local CurrentlyHatchingEgg = nil -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Secret Pet Settings โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ -- Define list of secret pets local SecretPets = { "Avernus", "King Doggy", "The Overlord", "MAN FACE GOD", "Royal Trophy", "Giant Chocolate Chicken", "Easter Basket", "Dementor", "Godly Gem" -- Add more pet names here } local SecretPetCheck_Toggle = false local SecretPetOverlay = nil -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Egg List & Priority โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local Default_Egg = CFrame.new(19, 2, -2) -- Define egg mapping - workspace model name to actual egg name for remote call local eggMapping = { ["common-egg"] = "Common Egg", ["void-egg"] = "Void Egg", --["nightmare-egg"] = "Nightmare Egg", --["aura-egg"] = "Aura Egg", --["event-3"] = "Throwback Egg", -- Correct event egg name ["silly-egg"] = "Silly Egg", ["100M Egg"] = "100M Egg" } -- Prioritize eggs (higher index = higher priority) local eggPriority = { -- "event-3", -- Highest priority "silly-egg", -- "aura-egg", --"nightmare-egg", "void-egg", "common-egg", -- Lowest priority "100M Egg" } -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโ Auto Craft Potion Settings โโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ -- Configuration local potionTypes = { "Lucky", "Speed", "Mythic", "Coins" } -- Define crafting requirements for each tier local craftingRequirements = { [2] = 4, -- Level 2 requires 4x Level 1 [3] = 4, -- Level 3 requires 4x Level 2 [4] = 6, -- Level 4 requires 6x Level 3 [5] = 8 -- Level 5 requires 8x Level 4 } -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Pet List To Delete โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ -- The threshold amount to keep for all pets in the list local petKeepThreshold = 1 --Normal pet type local shinyKeepThreshold = 5 --shiny pet type -- List of pet names to delete when they exceed 10 local petsToDelete = { --Common Egg "Doggy", "Kitty", "Bunny", "Bear", --Common Egg "Mouse", "Wolf", "Fox", "Polar Bear", "Panda", --Spotted Egg "Ice Kitty", "Deer", "Ice Wolf", "Piggy", "Ice Deer", "Ice Dragon", --Spikey Egg "Golem", "Dinosaur", "Ruby Golem", "Dragon", "Dark Dragon", "Emerald Golem", --Magma Egg "Magma Doggy", "Magma Deer", "Magma Fox", "Magma Bear", "Demon", "Inferno Dragon", --Crystal Egg "Cave Bat", "Dark Bat", "Angel", "Emerald Bat", "Unicorn", "Flying Pig", --Lunar Egg "Space Mouse", "Space Bull", "Lunar Fox", "Lunarcorn", "Lunar Serpent", "Electra", --Void Egg "Void Kitty", "Void Bat", "Void Demon", "Dark Phoenix", "Neon Elemental", --Hell Egg "Hell Piggy", "Hell Dragon", "Hell Crawler", "Inferno Demon", "Inferno Cube", "Virus", --Nightmare Egg "Demon Doggy", "Skeletal Deer", "Night Crawler", "Hell Bat", "Green Hydra", "Demonic Hydra", --Rainbow Egg "Red Golem", "Orange Deer", "Yellow Fox", "Green Angel", --Aura Egg "Manny", "Manicorn", "Sigma Serpent", "Manarium", --Pastel Egg "Paper Doggy", "Paper Bunny", "Chubby Bunny", "Hatchling", --Bunny Egg "Bunny Doggy", "Egg Bunny", "Angel Bunny", "Seraphic Bunny", --Throwback Egg "Bow Bunny", "Easter Egg", "Flying Bunny", "Easter Serpent", --100M Egg "Bronze Bunny", "Silver Fox", "Golden Dragon", "Diamond Serpent", "Diamond Hexarium", "King Pufferfish" } -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโ Flavors & Gum Settings โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ -- Auto buy variables local AutoBuy_Toggle = false local Buy_Thread = nil local max_Flavor_Reached = false local max_Gum_Reached = false local max_Upgrades_Reached = false -- ๐ง CONFIG: Flavors to Buy (sorted by price) local flavorsConfig = { ["Blueberry"] = { price = 25, currency = "Coins" }, ["Cherry"] = { price = 500, currency = "Coins" }, ["Pizza"] = { price = 1500, currency = "Coins" }, ["Watermelon"] = { price = 3500, currency = "Coins" }, ["Chocolate"] = { price = 10000, currency = "Coins" }, ["Contrast"] = { price = 35000, currency = "Coins" }, ["Gold"] = { price = 100000, currency = "Coins" }, ["Lemon"] = { price = 450000, currency = "Coins" }, ["Donut"] = { price = 1500000, currency = "Coins" }, ["Swirl"] = { price = 30000000, currency = "Coins" }, ["Molten"] = { price = 350000000, currency = "Coins" } } -- ๐ง CONFIG: Gum to Buy (sorted by price) local gumConfig = { ["Stretchy Gum"] = { price = 25, currency = "Coins" }, ["Chewy Gum"] = { price = 250, currency = "Coins" }, ["Epic Gum"] = { price = 1500, currency = "Coins" }, ["Ultra Gum"] = { price = 5000, currency = "Coins" }, ["Omega Gum"] = { price = 12000, currency = "Coins" }, ["Unreal Gum"] = { price = 45000, currency = "Coins" }, ["Cosmic Gum"] = { price = 125000, currency = "Coins" }, ["XL Gum"] = { price = 650000, currency = "Coins" }, ["Mega Gum"] = { price = 1500000, currency = "Coins" }, ["Quantum Gum"] = { price = 5000000000, currency = "Coins" }, ["Alien Gum"] = { price = 35000000, currency = "Coins" }, ["Radioactive Gum"] = { price = 150000000, currency = "Coins" }, ["Experiment #52"] = { price = 1000000000, currency = "Coins" } } -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Helper โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local function GetCurrentCoins() return LocalDataService:Get().Coins end local function GetCurrentGems() return LocalDataService:Get().Gems end local function getPetById(data, id) for _, pet in ipairs(data.Pets) do if pet.Id == id then return pet end end end -- Function to format numbers with suffixes (K, M, B, T, etc.) local function FormatNumberCompact(num) if num >= 1e18 then return string.format("%.1fQnt", num / 1e18) elseif num >= 1e15 then return string.format("%.1fQ", num / 1e15) elseif num >= 1e12 then return string.format("%.1fT", num / 1e12) elseif num >= 1e9 then return string.format("%.1fB", num / 1e9) elseif num >= 1e6 then return string.format("%.1fM", num / 1e6) elseif num >= 1e3 then return string.format("%.1fK", num / 1e3) else return tostring(num) end end local function extractNumbers(text) -- Remove all HTML-like tags local cleanText = text:gsub("<[^>]+>", "") -- Extract the text before and after the slash local currentStr, maxStr = cleanText:match("([%d%,%.]+)%s*/%s*([%d%,%.]+)") if not currentStr or not maxStr then return nil, nil end -- Remove commas from the numbers currentStr = currentStr:gsub(",", "") maxStr = maxStr:gsub(",", "") -- Convert to numbers return tonumber(currentStr), tonumber(maxStr) end -- Function to convert price text to a number value local function convertPriceToNumber(priceText) -- Remove commas and spaces local cleanPrice = priceText:gsub(",", ""):gsub("%s+", "") -- Check for suffixes like K, M, B local value = tonumber(cleanPrice:match("^%d+%.?%d*")) if not value then return 999999999999 end -- Return a high value if can't parse -- Handle suffixes if cleanPrice:match("[Kk]$") then value = value * 1000 elseif cleanPrice:match("[Mm]$") then value = value * 1000000 elseif cleanPrice:match("[Bb]$") then value = value * 1000000000 end return value end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Function Tween โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ -- Function to tween character to a target function TweenCharacterToTarget(targetPart) -- Parameter validation if not targetPart then warn("Target part not provided!") return end -- Fixed speeds local horizontalSpeed = 16 local verticalSpeed = math.huge -- Get Player and Character local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local humanoidRootPart = character:WaitForChild("HumanoidRootPart") -- Calculate Target CFrames and Durations local startCFrame = humanoidRootPart.CFrame local targetPosition = targetPart.Position + Vector3.new(1, 5, 1) -- Create initial downward position (5 units below current position) local downwardPosition = startCFrame.Position + Vector3.new(0, -20, 0) local downwardCFrame = CFrame.new(downwardPosition) * (startCFrame - startCFrame.Position) -- Intermediate CFrame: Target X/Z, current Y, maintain character orientation local intermediatePosition = Vector3.new(targetPosition.X, downwardPosition.Y, targetPosition.Z) local intermediateCFrame = CFrame.new(intermediatePosition) * (startCFrame - startCFrame.Position) -- Final CFrame: Target X/Y/Z, maintain character orientation local finalCFrame = CFrame.new(targetPosition) * (startCFrame - startCFrame.Position) -- Calculate Distances local downwardDistance = math.abs(startCFrame.Position.Y - downwardPosition.Y) local horizontalDistance = (Vector3.new(downwardPosition.X, 0, downwardPosition.Z) - Vector3.new(intermediatePosition.X, 0, intermediatePosition.Z)).Magnitude local verticalDistance = math.abs(intermediatePosition.Y - targetPosition.Y) -- Calculate Durations based on speed local downwardTime = downwardDistance / verticalSpeed local horizontalTime = horizontalDistance / horizontalSpeed local verticalTime = verticalDistance / verticalSpeed -- TweenInfo Configuration local tweenInfoDownward = TweenInfo.new(downwardTime, Enum.EasingStyle.Linear, Enum.EasingDirection.Out) local tweenInfoHorizontal = TweenInfo.new(horizontalTime, Enum.EasingStyle.Linear, Enum.EasingDirection.Out) local tweenInfoVertical = TweenInfo.new(verticalTime, Enum.EasingStyle.Linear, Enum.EasingDirection.Out) -- Create Tweens local downwardTween = TweenService:Create(humanoidRootPart, tweenInfoDownward, { CFrame = downwardCFrame }) local horizontalTween = TweenService:Create(humanoidRootPart, tweenInfoHorizontal, { CFrame = intermediateCFrame }) local verticalTween = TweenService:Create(humanoidRootPart, tweenInfoVertical, { CFrame = finalCFrame }) -- Play Tweens Sequentially downwardTween.Completed:Connect(function(playbackState) if playbackState == Enum.PlaybackState.Completed then horizontalTween:Play() end end) horizontalTween.Completed:Connect(function(playbackState) if playbackState == Enum.PlaybackState.Completed then verticalTween:Play() end end) -- Start the first tween downwardTween:Play() -- Return tweens so they can be monitored or cancelled return horizontalTween, verticalTween, downwardTween end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโ Auto Trade Secret Pets โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local AutoTradeSecretPets_Toggle = false local tradeThread = nil local targetTradeName = "PixyPalx" -- Target player name (can be easily changed) local function autoTradeSecretPets() AutoTradeSecretPets_Toggle = not AutoTradeSecretPets_Toggle if AutoTradeSecretPets_Toggle then tradeThread = spawn(function() while AutoTradeSecretPets_Toggle do local targetPlayer = game:GetService("Players"):FindFirstChild(targetTradeName) if not targetPlayer then -- Wait for player to join for i = 1, 300 do if not AutoTradeSecretPets_Toggle then break end if game:GetService("Players"):FindFirstChild(targetTradeName) then break end task.wait(1) end task.wait(1) continue end -- Quick check if we have any secret pets local freshPetData = LocalDataService:Get() local hasSecretPets = false if freshPetData and freshPetData.Pets then for _, pet in pairs(freshPetData.Pets) do for _, secretPetName in pairs(SecretPets) do if pet.Name == secretPetName then hasSecretPets = true break end end if hasSecretPets then break end end end if not hasSecretPets then task.wait(30) continue end -- Trading logic local tradingUI = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui.Trading -- If not in trade, send requests if not (tradingUI and tradingUI.Visible) then while targetPlayer and targetPlayer.Parent ~= nil and AutoTradeSecretPets_Toggle do tradingUI = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui.Trading if tradingUI and tradingUI.Visible then break end game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("TradeRequest", targetPlayer) task.wait(3) end end -- Handle active trade tradingUI = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui.Trading if tradingUI and tradingUI.Visible then -- Verify trading with correct player local tradePartnerName = tradingUI.Frame.Top.Them.Username.Text if string.sub(tradePartnerName, 1, 1) == "@" then tradePartnerName = string.sub(tradePartnerName, 2) end if tradePartnerName == targetTradeName then -- Add pets to trade one by one, checking data each time local allPetsAdded = false local petCount = 0 while not allPetsAdded and petCount < 10 do -- Get fresh pet data local currentPetData = LocalDataService:Get() -- Get currently traded pets and count them local tradeContent = tradingUI.Frame.Inner.Offers.You.Content local petIDsInTrade = {} petCount = 0 for _, item in pairs(tradeContent:GetChildren()) do if item:IsA("Frame") and not string.match(item.Name, "^Blank%d+$") and not string.match(item.Name, "^Entry%d+$") then petIDsInTrade[item.Name] = true petCount = petCount + 1 end end -- Stop if we've already added 10 pets if petCount >= 10 then allPetsAdded = true break end -- Try to find a pet to add local foundPetToAdd = false local petIdToAdd = nil if currentPetData and currentPetData.Pets then for _, pet in pairs(currentPetData.Pets) do -- Check if this pet is a secret pet local isSecretPet = false for _, secretPetName in pairs(SecretPets) do if pet.Name == secretPetName then isSecretPet = true break end end if isSecretPet then if pet.Amount then -- For pets with Amount, add each index starting from 1 for i = 1, pet.Amount do local fullPetId = pet.Id .. ":" .. i if not petIDsInTrade[fullPetId] then petIdToAdd = fullPetId foundPetToAdd = true break end end else -- For pets without Amount, just add :0 local fullPetId = pet.Id .. ":0" if not petIDsInTrade[fullPetId] then petIdToAdd = fullPetId foundPetToAdd = true end end -- Check if we found a pet to add if foundPetToAdd then break end end end end -- Add the pet if we found one if foundPetToAdd and petIdToAdd then -- Before pet count local beforeCount = petCount -- Add the pet game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("TradeAddPet", petIdToAdd) task.wait(1) -- Wait a bit longer to ensure UI updates -- Verify the pet was actually added by checking the count again local tradeContent = tradingUI.Frame.Inner.Offers.You.Content local afterCount = 0 for _, item in pairs(tradeContent:GetChildren()) do if item:IsA("Frame") and not string.match(item.Name, "^Blank%d+$") and not string.match(item.Name, "^Entry%d+$") then afterCount = afterCount + 1 end end -- Update pet count with current number in trade petCount = afterCount -- If count didn't increase, try one more time if afterCount <= beforeCount then task.wait(0.5) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("TradeAddPet", petIdToAdd) task.wait(1) end else -- No more pets to add allPetsAdded = true end end -- Double check how many pets we have in trade local finalTradeContent = tradingUI.Frame.Inner.Offers.You.Content local finalPetCount = 0 for _, item in pairs(finalTradeContent:GetChildren()) do if item:IsA("Frame") and not string.match(item.Name, "^Blank%d+$") and not string.match(item.Name, "^Entry%d+$") then finalPetCount = finalPetCount + 1 end end -- Only proceed if we actually added some pets if finalPetCount > 0 then -- Accept trade after all pets added task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("TradeAccept") task.wait(1) -- Check button text local acceptButtonText = tradingUI.Frame.Inner.Offers.Buttons.Accept.Button.Label.Text if acceptButtonText == "Confirm" then game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("TradeConfirm") end task.wait(5) end end end task.wait(1) end end) else if tradeThread then task.cancel(tradeThread) tradeThread = nil end end return AutoTradeSecretPets_Toggle end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Secret Check โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ -- Function to check if user has any secret pets local function checkForSecretPets() -- Get fresh player data each time local freshPetData = LocalDataService:Get() local foundSecretPet = false local secretPetCounts = {} local playerName = game:GetService("Players").LocalPlayer.Name -- If data exists and has pets if freshPetData and freshPetData.Pets then -- Loop through all pets for _, pet in pairs(freshPetData.Pets) do -- Check if current pet name is in the secret pets list for _, secretPetName in pairs(SecretPets) do if pet.Name == secretPetName then -- Count the pet secretPetCounts[secretPetName] = (secretPetCounts[secretPetName] or 0) + 1 foundSecretPet = true end end end end -- If any secret pets found, create or update the overlay if foundSecretPet then -- Create green overlay if it doesn't exist if not SecretPetOverlay then SecretPetOverlay = Instance.new("ScreenGui") SecretPetOverlay.Name = "SecretPetOverlay" SecretPetOverlay.ResetOnSpawn = false SecretPetOverlay.IgnoreGuiInset = true SecretPetOverlay.DisplayOrder = 99 -- Make it appear above egg counter -- Create fully green background local frame = Instance.new("Frame") frame.Size = UDim2.new(1, 0, 1, 0) frame.BackgroundColor3 = Color3.fromRGB(0, 255, 0) -- Green frame.BackgroundTransparency = 0 frame.BorderSizePixel = 0 frame.Name = "SecretFrame" frame.Parent = SecretPetOverlay -- Add player name at the top local playerNameLabel = Instance.new("TextLabel") playerNameLabel.Size = UDim2.new(1, 0, 0, 60) playerNameLabel.Position = UDim2.new(0, 0, 0.1, 0) playerNameLabel.BackgroundTransparency = 1 playerNameLabel.Font = Enum.Font.SourceSansBold playerNameLabel.TextSize = 140 playerNameLabel.TextWrapped = true playerNameLabel.TextColor3 = Color3.fromRGB(255, 255, 255) -- White text playerNameLabel.Text = "PLAYER: " .. string.upper(playerName) playerNameLabel.TextStrokeTransparency = 0 playerNameLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0) playerNameLabel.Name = "PlayerName" playerNameLabel.Parent = frame -- Add a ScrollingFrame to contain all pet text labels local scrollFrame = Instance.new("ScrollingFrame") scrollFrame.Size = UDim2.new(0.8, 0, 0.5, 0) scrollFrame.Position = UDim2.new(0.1, 0, 0.25, 0) scrollFrame.BackgroundTransparency = 1 scrollFrame.ScrollBarThickness = 6 scrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0) -- Will be updated based on content scrollFrame.Name = "PetList" scrollFrame.Parent = frame SecretPetOverlay.Parent = game:GetService("CoreGui") else -- Update player name if it changed SecretPetOverlay.SecretFrame.PlayerName.Text = "PLAYER: " .. string.upper(playerName) end -- Get the scrolling frame reference local scrollFrame = SecretPetOverlay.SecretFrame.PetList -- Clear existing pet labels for _, child in pairs(scrollFrame:GetChildren()) do if child:IsA("TextLabel") then child:Destroy() end end -- Add text labels for each secret pet with count local yPosition = 0 for petName, count in pairs(secretPetCounts) do local textLabel = Instance.new("TextLabel") textLabel.Size = UDim2.new(1, 0, 0, 70) textLabel.Position = UDim2.new(0, 0, 0, yPosition) textLabel.BackgroundTransparency = 1 textLabel.Font = Enum.Font.SourceSansBold textLabel.TextSize = 140 textLabel.TextWrapped = true textLabel.TextColor3 = Color3.fromRGB(255, 255, 255) -- White text textLabel.Text = string.upper(petName) .. " x" .. count textLabel.TextStrokeTransparency = 0 textLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0) textLabel.Parent = scrollFrame yPosition = yPosition + 80 end -- Update canvas size to fit all labels scrollFrame.CanvasSize = UDim2.new(0, 0, 0, yPosition) -- Enable auto trade if not already enabled if not AutoTradeSecretPets_Toggle then autoTradeSecretPets() -- Call the function to enable auto trading end task.wait(5) -- Wait 5 seconds before the next check return true else -- Remove overlay if no secret pets found if SecretPetOverlay then SecretPetOverlay:Destroy() SecretPetOverlay = nil end -- Disable auto trade if it's enabled if AutoTradeSecretPets_Toggle then autoTradeSecretPets() -- Call the function to disable auto trading end task.wait(10) -- Wait 10 seconds before the next check return false end end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Handle Intro โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local IntroHandling_Toggle = false local hasHandledIntro = false -- Flag to track if intro was successfully handled local function SimulateIntroPlayButtonClick() local IntroPlayButton = game:GetService("Players").LocalPlayer.PlayerGui.Intro.Play.Button IntroPlayButton:SetAttribute("Pressed", true) task.wait(0.1) IntroPlayButton:SetAttribute("Pressed", false) end local function SimulateOptimizedButtonClick() local Optimized = game:GetService("Players").LocalPlayer.PlayerGui.Intro.Graphics.Content.Low.Action.Button Optimized:SetAttribute("Pressed", true) task.wait(0.1) Optimized:SetAttribute("Pressed", false) end local function handleIntro() if IntroHandling_Toggle then return hasHandledIntro end IntroHandling_Toggle = true -- Keep trying until intro is completely gone - no timeout while true do -- Safely check if intro exists and is enabled local success, introStillActive = pcall(function() local Intro = game:GetService("Players").LocalPlayer.PlayerGui:FindFirstChild("Intro") if Intro and Intro.Enabled then -- Check if Play is visible and click it if Intro.Play.Visible == true then task.wait(5) SimulateIntroPlayButtonClick() task.wait(1) -- Wait for graphics options to appear end -- Check if Graphics is visible and click low option if Intro.Graphics.Visible == true then SimulateOptimizedButtonClick() task.wait(1) end -- Try clicking both again for good measure SimulateIntroPlayButtonClick() task.wait(0.5) SimulateOptimizedButtonClick() -- Intro still exists and is enabled return true end -- Intro is gone or not enabled return false end) -- Check if intro is gone if success and not introStillActive then hasHandledIntro = true break end -- Wait a bit before checking again task.wait(2) end -- Turn off toggle when done IntroHandling_Toggle = false return hasHandledIntro end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโ Daily Rewards Function โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local CheckRewards_Toggle = false local hasClaimedDailyReward = false -- Tracks if rewards were successfully claimed local startCheckTime = nil local function SimulateShopCloseButtonClick() -- for buying storage local ShopClose = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui.DailyRewards.Shop.Top.Close.Button ShopClose:SetAttribute("Pressed", true) task.wait(0.1) ShopClose:SetAttribute("Pressed", false) end local function checkDailyRewards() CheckRewards_Toggle = not CheckRewards_Toggle if CheckRewards_Toggle then -- Initialize timer on first check startCheckTime = os.time() -- Start thread or continue with logic spawn(function() while CheckRewards_Toggle do -- Check if we've exceeded the timeout period (300 seconds / 5 minutes) if os.time() - startCheckTime > 300 then CheckRewards_Toggle = false -- Stop the function return false end -- Use pcall for safety local success, result = pcall(function() -- Check if the daily rewards UI is visible local dailyRewardsUI = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui.DailyRewards if dailyRewardsUI and dailyRewardsUI.Login and dailyRewardsUI.Login.Visible == true then -- Claim the rewards game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("DailyRewardClaimStars") task.wait(1) -- Close the shop if it appeared if dailyRewardsUI.Shop and dailyRewardsUI.Shop.Visible == true then SimulateShopCloseButtonClick() task.wait(0.5) end -- Mark as successful and stop checking CheckRewards_Toggle = false hasClaimedDailyReward = true return true end -- Wait a bit before checking again task.wait(1) return false end) -- Handle errors if not success then CheckRewards_Toggle = false return false end end end) end return hasClaimedDailyReward end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Auto Claim Playtime โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local AutoClaimPlaytime_Toggle = false -- Flag to track if we're automatically claiming playtime rewards local autoClaimingPlaytimeThread = nil -- Variable to store the auto claiming thread local PlaytimeRewardsClaimed = false -- Flag to track if all playtime rewards are claimed local function toggleAutoClaimPlaytime() -- If all rewards are claimed, don't start again if PlaytimeRewardsClaimed then return PlaytimeRewardsClaimed end AutoClaimPlaytime_Toggle = not AutoClaimPlaytime_Toggle if AutoClaimPlaytime_Toggle then -- Start a new thread for continuous playtime reward claiming autoClaimingPlaytimeThread = spawn(function() while AutoClaimPlaytime_Toggle do -- Get the Playtime UI local Playtime = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui.Playtime -- Check if Playtime exists if Playtime and Playtime:FindFirstChild("Frame") and Playtime.Frame:FindFirstChild("Main") then local Main = Playtime.Frame.Main local allClaimed = true -- Assume all claimed until we find one that's not local foundAnyRewards = false -- Track if we found any reward UI elements local anyPending = false -- Track if there are any pending rewards -- Loop through all children of Main for _, child in pairs(Main:GetChildren()) do -- Check if this is a numbered reward (1, 2, 3, 4, etc.) if tonumber(child.Name) then foundAnyRewards = true local rewardNumber = tonumber(child.Name) local button = child:FindFirstChild("Button") local completed = child:FindFirstChild("Completed") -- Only proceed if both button and completed exist if button and completed then local label = button:FindFirstChild("Label") -- State 1: Ready to claim if label and label.Text == "Open" and not completed.Visible then allClaimed = false -- Found one that's not claimed -- Invoke server to claim the reward local success, result = pcall(function() return game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Function:InvokeServer("ClaimPlaytime", rewardNumber) end) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("ClaimSeason") -- Wait a bit after claiming task.wait(1) end -- State 2: Already claimed if completed.Visible and (not label or not label.Visible) then -- This one is already claimed, don't change allClaimed end -- State 3: Pending (time countdown) if not completed.Visible and label and label.Text ~= "Open" then allClaimed = false -- Not all claimed yet anyPending = true -- We have pending rewards end end end end -- If we found reward UI elements and all are claimed (none pending), we're done if foundAnyRewards and allClaimed and not anyPending then PlaytimeRewardsClaimed = true AutoClaimPlaytime_Toggle = false break end end -- Wait before checking again task.wait(30) -- Check for playtime rewards every 30 seconds end end) end return AutoClaimPlaytime_Toggle end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโ Auto Claim Prizes Function โโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local AutoClaimPrizes_Toggle = false -- Flag to track if we're automatically claiming prizes local autoClaimingPrizeThread = nil -- Variable to store the auto claiming thread -- Function to check and claim available prizes once local function CheckAndClaimPrizes() -- Get the Quests UI local Prizes = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui.Quests.Frame.Main.Prizes -- Loop through all prize items (b-1, b-2, etc.) for _, prizeItem in pairs(Prizes:GetChildren()) do -- Check for Content local Content = prizeItem:FindFirstChild("Content") if Content then -- Find Bar and Claim inside Content local Bar = Content:FindFirstChild("Bar") local Claim = Content:FindFirstChild("Claim") if Bar and Claim and Bar:FindFirstChild("Label") and Claim:FindFirstChild("Button") then local progressText = Bar.Label.Text local ClaimButton = Claim.Button -- Check if progress is 100% and Claim is visible if progressText == "100%" and Claim.Visible then -- Simulate button press ClaimButton:SetAttribute("Pressed", true) task.wait(0.1) ClaimButton:SetAttribute("Pressed", false) -- Return after claiming the first prize found return true end end end end return false end -- Function to check for prizes until no notifications remain local function checkAllTabsForPrizes() local PlayerGui = game:GetService("Players").LocalPlayer.PlayerGui local QuestsFrame = PlayerGui.ScreenGui.Quests.Frame local Sidebar = QuestsFrame.Sidebar local hasClaimedAny = false local keepChecking = true -- Keep checking until no more notifications are found while keepChecking do keepChecking = false -- Will be set to true if we find and claim something -- Check buttons with notifications local BubblesButton = Sidebar.Buttons.Bubbles.Button local EggsButton = Sidebar.Buttons.Eggs.Button local QuestsButton = Sidebar.Buttons.Quests.Button -- Check for Bubbles notification local BubblesNotification = BubblesButton:FindFirstChild("Notification") if BubblesNotification and BubblesNotification.Visible then BubblesButton:SetAttribute("Pressed", true) task.wait(0.1) BubblesButton:SetAttribute("Pressed", false) task.wait(1) -- Wait for UI to update -- Try to claim prizes local claimed = CheckAndClaimPrizes() if claimed then hasClaimedAny = true keepChecking = true -- Continue checking task.wait(0.5) -- Short wait before checking again continue end end -- Check for Eggs notification local EggsNotification = EggsButton:FindFirstChild("Notification") if EggsNotification and EggsNotification.Visible then EggsButton:SetAttribute("Pressed", true) task.wait(0.1) EggsButton:SetAttribute("Pressed", false) task.wait(1) -- Wait for UI to update -- Try to claim prizes local claimed = CheckAndClaimPrizes() if claimed then hasClaimedAny = true keepChecking = true -- Continue checking task.wait(0.5) -- Short wait before checking again continue end end -- Check Quests tab local QuestsNotification = QuestsButton:FindFirstChild("Notification") if QuestsNotification and QuestsNotification.Visible then QuestsButton:SetAttribute("Pressed", true) task.wait(0.1) QuestsButton:SetAttribute("Pressed", false) task.wait(1) -- Wait for UI to update -- Try to claim prizes local claimed = CheckAndClaimPrizes() if claimed then hasClaimedAny = true keepChecking = true -- Continue checking task.wait(0.5) -- Short wait before checking again continue end end end -- Always end on the Quests tab local QuestsButton = Sidebar.Buttons.Quests.Button QuestsButton:SetAttribute("Pressed", true) task.wait(0.1) QuestsButton:SetAttribute("Pressed", false) return hasClaimedAny end -- Function to toggle automatic prize claiming local function toggleAutoClaimPrizes() AutoClaimPrizes_Toggle = not AutoClaimPrizes_Toggle if AutoClaimPrizes_Toggle then -- Start a new thread for continuous prize claiming autoClaimingPrizeThread = spawn(function() while AutoClaimPrizes_Toggle do checkAllTabsForPrizes() task.wait(60) -- Check for prizes every 60 seconds end end) end return AutoClaimPrizes_Toggle end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโ Auto Wheel Spin Function โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local AutoWheelSpin_Toggle = false -- Flag to track if we're automatically spinning the wheel local autoSpinningWheelThread = nil -- Variable to store the auto wheel spinning thread local function WheelSpinButtonClick() local WheelSpin = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui.WheelSpin.Frame.Main.Spin.Button WheelSpin:SetAttribute("Pressed", true) task.wait(0.1) WheelSpin:SetAttribute("Pressed", false) end local function toggleAutoWheelSpin() AutoWheelSpin_Toggle = not AutoWheelSpin_Toggle if AutoWheelSpin_Toggle then -- Start a new thread for continuous wheel spin checking autoSpinningWheelThread = spawn(function() while AutoWheelSpin_Toggle do local shouldContinueSpinning = false -- Use pcall for error handling pcall(function() -- Get fresh data directly from the LocalDataService local freshData = LocalDataService:Get() -- Check if the player has Spin Tickets in their Powerups local spinTickets = freshData.Powerups and freshData.Powerups["Spin Ticket"] or 0 -- Check if wheel spin UI exists for free spin local wheelSpinUI = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui.WheelSpin if wheelSpinUI and wheelSpinUI.Frame and wheelSpinUI.Frame.Main then local Main = wheelSpinUI.Frame.Main -- Check for free spin if Main.Buttons and Main.Buttons.Free and Main.Buttons.Free.Button and Main.Buttons.Free.Button.Title and Main.Buttons.Free.Button.Title.Text == "Claim" then -- Claim the free spin game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("ClaimFreeWheelSpin") task.wait(1) -- Wait a bit after claiming -- Refresh data after claiming freshData = LocalDataService:Get() spinTickets = freshData.Powerups and freshData.Powerups["Spin Ticket"] or 0 end end -- If spin tickets are available in inventory, use them if spinTickets > 0 then WheelSpinButtonClick() --game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Function:InvokeServer("WheelSpin") task.wait(15) -- Wait longer after spinning to let animations complete -- Refresh data after using a spin ticket freshData = LocalDataService:Get() spinTickets = freshData.Powerups and freshData.Powerups["Spin Ticket"] or 0 -- If we still have tickets, set flag to continue spinning without waiting if spinTickets > 0 then shouldContinueSpinning = true end end end) -- Skip the wait and continue spinning if we have more tickets if shouldContinueSpinning then task.wait(0.1) -- Small wait to prevent overwhelming the server else -- Wait before checking again task.wait(60) -- Check every 3 minutes end end end) end return AutoWheelSpin_Toggle end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Set Settings โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local SetSettings_Toggle = false local SettingsThread = nil local settingsApplied = false local function SetOptimalSettings() -- Don't run if settings are already applied if settingsApplied then return settingsApplied end SetSettings_Toggle = not SetSettings_Toggle if SetSettings_Toggle then SettingsThread = spawn(function() -- Settings to optimize gameplay local optimalSettings = { ["Hide Bubbles"] = true, ["Hide Others Pets"] = true, ["Hide All Pets"] = true, ["Compact Pet Inventory"] = true, ["Skip Easy Legendary"] = true, ["Music"] = 0, ["Sound Effects"] = 0 } -- Maximum retries to prevent getting stuck local maxRetries = 3 local retryCount = 0 while retryCount < maxRetries and SetSettings_Toggle do -- Get fresh data local data = LocalDataService:Get() local Settings = data.Settings or {} -- Check if any settings need to be applied local settingsToApply = {} local allSettingsMatch = true for setting, value in pairs(optimalSettings) do -- Skip settings that don't exist if Settings[setting] == nil then continue end local settingMatches = false if setting == "Music" or setting == "Sound Effects" then settingMatches = Settings[setting] <= 1 else settingMatches = Settings[setting] == value end if not settingMatches then allSettingsMatch = false table.insert(settingsToApply, {setting = setting, value = value}) end end -- If all settings match optimal values, we're done if allSettingsMatch then break end -- Apply each setting that needs changing for _, settingData in ipairs(settingsToApply) do Remote.Event:FireServer("SetSetting", settingData.setting, settingData.value) task.wait(0.3) -- Slightly longer delay to ensure each setting is processed end -- Wait for settings to apply task.wait(1.5) -- Increment retry counter retryCount = retryCount + 1 end -- Mark as complete regardless of verification outcome SetSettings_Toggle = false settingsApplied = true end) end return settingsApplied end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Auto Hide Overlay โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local AutoHideOverlay_Toggle = false -- Flag to track if we're automatically hiding overlays local autoHidingOverlayThread = nil -- Variable to store the auto hiding thread local function toggleAutoHideOverlay() AutoHideOverlay_Toggle = not AutoHideOverlay_Toggle if AutoHideOverlay_Toggle then -- Start a new thread for continuous overlay checking autoHidingOverlayThread = spawn(function() while AutoHideOverlay_Toggle do -- Use pcall for error handling pcall(function() -- Check if the overlay exists and is visible local overlay = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui:FindFirstChild("_overlay") local dailyRWD = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui:FindFirstChild("DailyRewards") local PlyTime = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui:FindFirstChild("Playtime") local Mstry = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui:FindFirstChild("Mastery") local Qust = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui:FindFirstChild("Quests") local Sesson = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui:FindFirstChild("Season") local NotifGame = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui:FindFirstChild("HUD") and game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui.HUD:FindFirstChild("NotifyGame") local Prompts = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui:FindFirstChild("Prompt") local WorldMp = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui:FindFirstChild("WorldMap") local UpdateNews = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui:FindFirstChild("_changelog") if WorldMp and WorldMp.Visible then -- Set the overlay to not visible WorldMp.Visible = false end if overlay and overlay.Visible then -- Set the overlay to not visible overlay.Visible = false end if dailyRWD and dailyRWD.Visible then -- Set the overlay to not visible dailyRWD.Visible = false end if PlyTime and PlyTime.Visible then -- Set the overlay to not visible PlyTime.Visible = false end if Mstry and Mstry.Visible then -- Set the overlay to not visible Mstry.Visible = false end if Qust and Qust.Visible then -- Set the overlay to not visible Qust.Visible = false end if Sesson and Sesson.Visible then -- Set the overlay to not visible Sesson.Visible = false end if NotifGame and NotifGame.Visible then -- Set the overlay to not visible NotifGame.Visible = false end if Prompts and Prompts.Visible then -- Set the overlay to not visible Prompts.Visible = false end if UpdateNews and UpdateNews.Visible then -- Set the overlay to not visible UpdateNews.Visible = false end end) -- Wait before checking again task.wait(20) -- Check every 20 seconds end end) end return AutoHideOverlay_Toggle end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Auto Fly โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local isFlyModeActive = false local flyModeThread = nil local function toggleFlyMode() isFlyModeActive = not isFlyModeActive if isFlyModeActive then flyModeThread = spawn(function() while isFlyModeActive do pcall(function() local player = game:GetService("Players").LocalPlayer local character = player.Character if not character then return end local humanoid = character:FindFirstChild("Humanoid") local rootPart = character:FindFirstChild("HumanoidRootPart") if not humanoid or not rootPart then return end local camera = workspace.CurrentCamera local UIS = game:GetService("UserInputService") local flySpeed = humanoid.WalkSpeed * 0.9 -- Check if Gyro exists in rootPart, create if not local Gyro = rootPart:FindFirstChild("Gyro") if not Gyro then Gyro = Instance.new("BodyGyro") Gyro.Name = "Gyro" Gyro.P = 9e4 Gyro.MaxTorque = Vector3.new(9e9, 9e9, 9e9) Gyro.Parent = rootPart end -- Check if BodyVelocity exists in rootPart, create if not local Velocity = rootPart:FindFirstChild("BodyVelocity") if not Velocity then Velocity = Instance.new("BodyVelocity") Velocity.Name = "BodyVelocity" Velocity.MaxForce = Vector3.new(9e9, 9e9, 9e9) Velocity.Velocity = Vector3.zero Velocity.Parent = rootPart end -- Set platform stand humanoid.PlatformStand = true -- Update Gyro CFrame Gyro.CFrame = CFrame.new(rootPart.Position, rootPart.Position + camera.CFrame.LookVector) -- Calculate movement direction based on key presses local moveDir = Vector3.new(0,0,0) if UIS:IsKeyDown(Enum.KeyCode.W) then moveDir = moveDir + camera.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.S) then moveDir = moveDir - camera.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.A) then moveDir = moveDir - camera.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.D) then moveDir = moveDir + camera.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.E) then moveDir = moveDir + Vector3.new(0,1,0) end if UIS:IsKeyDown(Enum.KeyCode.Q) then moveDir = moveDir - Vector3.new(0,1,0) end -- Apply speed if moveDir.Magnitude > 0 then moveDir = moveDir.Unit * flySpeed end Velocity.Velocity = moveDir end) task.wait(0.1) end end) else -- Clean up when toggled off pcall(function() local player = game:GetService("Players").LocalPlayer local character = player.Character if character then local humanoid = character:FindFirstChild("Humanoid") local rootPart = character:FindFirstChild("HumanoidRootPart") if humanoid then humanoid.PlatformStand = false end if rootPart then local Gyro = rootPart:FindFirstChild("Gyro") local Velocity = rootPart:FindFirstChild("BodyVelocity") if Gyro then Gyro:Destroy() end if Velocity then Velocity:Destroy() end end end end) end return isFlyModeActive end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Auto Press B โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local isPressingB = false -- Flag to track if we're pressing B periodically local pressingBThread = nil -- Variable to store the pressing B thread -- Function to toggle periodic B key pressing local function togglePeriodicB() isPressingB = not isPressingB if isPressingB then -- Start a new thread for periodic B key pressing pressingBThread = spawn(function() while isPressingB do -- Press B key VIM:SendKeyEvent(true, "B", false, game) -- Press B task.wait(0.01) VIM:SendKeyEvent(false, "B", false, game) -- Release B task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("BeginSeasonInfinite") task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("ChallengePassClaimAll") task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("ClaimCompetitivePrize", 1, 1) task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("ClaimCompetitivePrize", 2, 1) task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("ClaimCompetitivePrize", 3, 1) task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("ClaimCompetitivePrize", 4, 2) task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("ClaimCompetitivePrize", 5, 1) task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("ClaimCompetitivePrize", 6, 1) task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("ClaimCompetitivePrize", 7, 2) task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("ClaimCompetitivePrize", 8, 2) task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("ClaimCompetitivePrize", 9, 1) task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("ClaimCompetitivePrize", 10, 1) task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("ClaimCompetitivePrize", 11, 1) task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("ClaimChest", "Giant Chest", true) task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("ClaimChest", "Void Chest", true) task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("UnlockHatchingZone") task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("ClaimSeason") task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("DoggyJumpWin", 1) task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("DoggyJumpWin", 2) task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("DoggyJumpWin", 3) task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("ClaimChest", "Void Chest") task.wait(1) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("ClaimChest", "Giant Chest") task.wait(5) -- Wait for 1 minute before pressing again task.wait(180) end end) end return isPressingB end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโ Auto Mastery Function โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local function SimulateMasteryBuffButtonClick() local BuffButton = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui.Mastery.Container.Left.ScrollingFrame.Buffs.Button BuffButton:SetAttribute("Pressed", true) task.wait(0.1) BuffButton:SetAttribute("Pressed", false) end local function SimulateMasteryPetButtonClick() local PetButton = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui.Mastery.Container.Left.ScrollingFrame.Pets.Button PetButton:SetAttribute("Pressed", true) task.wait(0.1) PetButton:SetAttribute("Pressed", false) end local function SimulateMasteryShopButtonClick() local ShopButton = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui.Mastery.Container.Left.ScrollingFrame.Shops.Button ShopButton:SetAttribute("Pressed", true) task.wait(0.1) ShopButton:SetAttribute("Pressed", false) end local function FindAvailableAndMastery() isAutoMastery = not isAutoMastery if isAutoMastery then autoMasteryThread = spawn(function() while isAutoMastery do -- Get current mastery levels from data local freshData = LocalDataService:Get() -- Handle different data structures for MasteryLevels local masteryLevels = {Pets = 0, Buffs = 0, Shops = 0} -- Check if MasteryLevels exists and is a table if freshData.MasteryLevels and type(freshData.MasteryLevels) == "table" then -- Check if it's an object with properties if freshData.MasteryLevels.Pets ~= nil then -- It's an object, get values or default to 0 masteryLevels = { Pets = freshData.MasteryLevels.Pets or 0, Buffs = freshData.MasteryLevels.Buffs or 0, Shops = freshData.MasteryLevels.Shops or 0 } end end -- Update the mastery completion flags PetsMasteryCompleted = (masteryLevels.Pets or 0) >= Target_Pets_Mastery BuffsMasteryCompleted = (masteryLevels.Buffs or 0) >= Target_Buffs_Mastery ShopsMasteryCompleted = (masteryLevels.Shops or 0) >= Target_Shops_Mastery AllMasteryCompleted = PetsMasteryCompleted and BuffsMasteryCompleted and ShopsMasteryCompleted -- Determine which category to focus on based on priority using global target variables local upgradePets = not PetsMasteryCompleted local upgradeBuffs = PetsMasteryCompleted and not BuffsMasteryCompleted local upgradeShops = PetsMasteryCompleted and BuffsMasteryCompleted and not ShopsMasteryCompleted -- Function to attempt upgrades within a category local function attemptUpgradesInCategory() -- Get the Mastery UI local MasteryFrame = game:GetService("Players").LocalPlayer.PlayerGui.ScreenGui.Mastery if not (MasteryFrame and MasteryFrame.Container and MasteryFrame.Container.Right and MasteryFrame.Container.Right.ScrollingFrame) then return false end local ScrollingFrame = MasteryFrame.Container.Right.ScrollingFrame local madeUpgrade = false -- Loop through all templates to find upgrades for _, template in pairs(ScrollingFrame:GetChildren()) do if template.Name == "Template" then local Content = template:FindFirstChild("Content") if Content then local Purchase = Content:FindFirstChild("Purchase") if Purchase then local Button = Purchase:FindFirstChild("Button") if Button then local Label = Button:FindFirstChild("Label") if Label and Label.Text then -- Check if it's free if Label.Text == "FREE" or Label.Text == "0" then -- Click the button Button:SetAttribute("Pressed", true) task.wait(0.1) Button:SetAttribute("Pressed", false) madeUpgrade = true task.wait(0.2) return true end -- Determine currency type local isCoinPrice = true -- Default to Coin local isGemPrice = false -- Look for currency icon for _, child in pairs(Button:GetChildren()) do if child:IsA("ImageLabel") or child:IsA("ImageButton") then if child.Image and child.Image:match("122003296498191") then isCoinPrice = false isGemPrice = true break elseif child.Image and child.Image:match("121401017387099") then isCoinPrice = true isGemPrice = false break end end end -- Get the price value local price = convertPriceToNumber(Label.Text) -- Check resources - using the existing functions local currentCoins = GetCurrentCoins() local currentGems = GetCurrentGems() local canAfford = false if isCoinPrice and currentCoins >= price then canAfford = true elseif isGemPrice and currentGems >= price then canAfford = true end -- If we can afford it, make the purchase if canAfford then Button:SetAttribute("Pressed", true) task.wait(0.1) Button:SetAttribute("Pressed", false) madeUpgrade = true task.wait(0.2) return true end end end end end end end return madeUpgrade end -- Process upgrades by priority: -- First focus on Pets until they reach target, then Buffs, then Shops if upgradePets then SimulateMasteryPetButtonClick() task.wait(0.5) attemptUpgradesInCategory() elseif upgradeBuffs then SimulateMasteryBuffButtonClick() task.wait(0.5) attemptUpgradesInCategory() elseif upgradeShops then SimulateMasteryShopButtonClick() task.wait(0.5) attemptUpgradesInCategory() else -- All target levels reached, check all categories for any additional upgrades -- Check Pets first SimulateMasteryPetButtonClick() task.wait(0.5) local upgradedPets = attemptUpgradesInCategory() if not upgradedPets then -- Then check Buffs SimulateMasteryBuffButtonClick() task.wait(0.5) local upgradedBuffs = attemptUpgradesInCategory() if not upgradedBuffs then -- Finally check Shops SimulateMasteryShopButtonClick() task.wait(0.5) attemptUpgradesInCategory() end end end -- Wait before next check task.wait(10) end end) end return isAutoMastery end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Reroll Function โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local RerollEnchants_Toggle = false local RerollThread = nil local function hasAnyDesiredEnchant(pet) if not pet or not pet.Enchants then return false end for _, enchant in ipairs(pet.Enchants) do local requiredLevel = enchants[enchant.Id] if requiredLevel and enchant.Level >= requiredLevel then return true end end return false end local function RerollEnchants() RerollEnchants_Toggle = not RerollEnchants_Toggle if RerollEnchants_Toggle then -- Start a new thread for continuous enchant rerolling RerollThread = spawn(function() while RerollEnchants_Toggle do -- Get the current team, which will refresh every cycle local data = LocalDataService:Get() local currentTeam = data.Teams[1].Pets for _, uuid in ipairs(currentTeam) do local pet = getPetById(data, uuid) if pet and not hasAnyDesiredEnchant(pet) then while RerollEnchants_Toggle do Remote.Function:InvokeServer("RerollEnchants", uuid) task.wait(0.2) -- Refresh data after each reroll local updatedData = LocalDataService:Get() pet = getPetById(updatedData, uuid) if hasAnyDesiredEnchant(pet) then break end end end end -- After checking all pets, wait before rechecking to catch any team changes task.wait(60) end end) end return RerollEnchants_Toggle end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโ Auto Buy Gum and Flavors โโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ -- Function to get the highest priced item from a config table local function get_Highest_Priced_Item(config_table) local highest_price = 0 local highest_item_name = nil for item_name, item_data in pairs(config_table) do if item_data.price > highest_price then highest_price = item_data.price highest_item_name = item_name end end return highest_item_name end -- Get the dynamic max items local max_flavor_item = get_Highest_Priced_Item(flavorsConfig) local max_gum_item = get_Highest_Priced_Item(gumConfig) local function AutoBuyItems() -- Refresh the max items in case the configs changed max_flavor_item = get_Highest_Priced_Item(flavorsConfig) max_gum_item = get_Highest_Priced_Item(gumConfig) AutoBuy_Toggle = not AutoBuy_Toggle if AutoBuy_Toggle then Buy_Thread = spawn(function() -- First check if we already have max upgrades local freshData = LocalDataService:Get() -- Check for max flavor using dynamic highest item if freshData.Flavors and freshData.Flavors[max_flavor_item] then max_Flavor_Reached = true end -- Check for max gum using dynamic highest item if freshData.Gum and freshData.Gum[max_gum_item] then max_Gum_Reached = true end -- Set combined flag max_Upgrades_Reached = max_Flavor_Reached and max_Gum_Reached -- If both are already maxed, no need to continue if max_Upgrades_Reached then AutoBuy_Toggle = false return end while AutoBuy_Toggle do local freshData = LocalDataService:Get() -- Update max status flags with fresh data if freshData.Flavors and freshData.Flavors[max_flavor_item] then max_Flavor_Reached = true end if freshData.Gum and freshData.Gum[max_gum_item] then max_Gum_Reached = true end max_Upgrades_Reached = max_Flavor_Reached and max_Gum_Reached -- Check if all items are already purchased if max_Upgrades_Reached then AutoBuy_Toggle = false break end -- Sort flavors by price (lowest first) if we haven't reached max flavor if not max_Flavor_Reached then local flavors_To_Buy = {} for flavorName, config in pairs(flavorsConfig) do if not freshData.Flavors[flavorName] then table.insert(flavors_To_Buy, {name = flavorName, config = config}) end end table.sort(flavors_To_Buy, function(a, b) if a.config.currency == b.config.currency then return a.config.price < b.config.price else return a.config.currency == "Coins" -- Prioritize coins purchases end end) -- Try to buy flavors in order of price for _, flavorInfo in ipairs(flavors_To_Buy) do local flavorName = flavorInfo.name local config = flavorInfo.config local can_Afford = false if config.currency == "Coins" and GetCurrentCoins() >= config.price then can_Afford = true elseif config.currency == "Gems" and GetCurrentGems() >= config.price then can_Afford = true end if can_Afford then -- Attempt to buy the flavor using correct remote Remote.Event:FireServer("GumShopPurchase", flavorName) -- Wait a moment for purchase to process task.wait(0.3) -- Refresh data to check if purchase was successful freshData = LocalDataService:Get() -- Check if we've reached max flavor if freshData.Flavors and freshData.Flavors[max_flavor_item] then max_Flavor_Reached = true end -- Small delay between purchases task.wait(0.5) end end end -- Sort gums by price (lowest first) if we haven't reached max gum if not max_Gum_Reached then local gums_To_Buy = {} freshData = LocalDataService:Get() -- Refresh data again for gumName, config in pairs(gumConfig) do if not freshData.Gum[gumName] then table.insert(gums_To_Buy, {name = gumName, config = config}) end end table.sort(gums_To_Buy, function(a, b) if a.config.currency == b.config.currency then return a.config.price < b.config.price else return a.config.currency == "Coins" -- Prioritize coins purchases end end) -- Try to buy gums in order of price for _, gumInfo in ipairs(gums_To_Buy) do local gumName = gumInfo.name local config = gumInfo.config local can_Afford = false if config.currency == "Coins" and GetCurrentCoins() >= config.price then can_Afford = true elseif config.currency == "Gems" and GetCurrentGems() >= config.price then can_Afford = true end if can_Afford then -- Attempt to buy the gum using correct remote Remote.Event:FireServer("GumShopPurchase", gumName) -- Wait a moment for purchase to process task.wait(0.3) -- Refresh data to check if purchase was successful freshData = LocalDataService:Get() -- Check if we've reached max gum if freshData.Gum and freshData.Gum[max_gum_item] then max_Gum_Reached = true end -- Small delay between purchases task.wait(0.5) end end end -- Update combined flag max_Upgrades_Reached = max_Flavor_Reached and max_Gum_Reached -- Wait before checking again task.wait(5) end end) end return AutoBuy_Toggle, max_Flavor_Reached, max_Gum_Reached, max_Upgrades_Reached end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Area Unlock Function โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local AreaUnlock_Toggle = false local AreaThread = nil local areasUnlocked = false local function UnlockAreas() AreaUnlock_Toggle = not AreaUnlock_Toggle if AreaUnlock_Toggle then AreaThread = spawn(function() -- Get player and character local player = game:GetService("Players").LocalPlayer while AreaUnlock_Toggle do -- Check current unlocked status local freshData = LocalDataService:Get() local allAreasUnlocked = true local areasToTry = {} -- Check which areas still need to be unlocked for _, areaName in ipairs(AreaToUnlock) do if type(freshData.AreasUnlocked) ~= "table" or not freshData.AreasUnlocked[areaName] then allAreasUnlocked = false table.insert(areasToTry, areaName) end end -- If all areas are unlocked, turn off function and exit if allAreasUnlocked then AreaUnlock_Toggle = false areasUnlocked = true break end -- Try to unlock each remaining area for _, areaName in ipairs(areasToTry) do if not AreaUnlock_Toggle then break end -- Make sure character exists local character = player.Character or player.CharacterAdded:Wait() local humanoidRootPart = character:WaitForChild("HumanoidRootPart") -- Find the area in Worlds local areaWithoutSpaces = areaName:gsub(" ", "") local areaFolder = workspace.Worlds["The Overworld"].Islands:FindFirstChild(areaName) or workspace.Worlds["The Overworld"].Islands:FindFirstChild(areaWithoutSpaces) if areaFolder then -- Search for UnlockHitbox using GetDescendants local unlockHitbox = nil for _, descendant in ipairs(areaFolder:GetDescendants()) do if descendant.Name == "UnlockHitbox" then unlockHitbox = descendant break end end if unlockHitbox then -- Teleport to the UnlockHitbox humanoidRootPart.CFrame = unlockHitbox.CFrame * CFrame.new(0, 15, 0) -- Wait a bit for the unlock to register task.wait(0.1) -- Update data to check if area was unlocked freshData = LocalDataService:Get() -- If area is now unlocked, we can move to the next one if type(freshData.AreasUnlocked) == "table" and freshData.AreasUnlocked[areaName] then -- Area successfully unlocked end end end -- Wait between areas task.wait(0.1) end -- Wait before checking again task.wait(0.5) end end) end return AreaUnlock_Toggle end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโ Auto Mystery Boxes Function โโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local AutoMysteryBoxes_Toggle = false -- Flag to track if we're automatically using mystery boxes local autoMysteryBoxesThread = nil -- Variable to store the auto mystery boxes thread -- Function to check and use Mystery Boxes with toggle functionality local function toggleAutoMysteryBoxes() AutoMysteryBoxes_Toggle = not AutoMysteryBoxes_Toggle if AutoMysteryBoxes_Toggle then -- Start a new thread for continuous Mystery Box usage autoMysteryBoxesThread = spawn(function() while AutoMysteryBoxes_Toggle do -- Use pcall to safely check data pcall(function() -- Get fresh data directly from the LocalDataService local freshData = LocalDataService:Get() -- Check if the player has Mystery Boxes in their Powerups local mysteryBoxCount = freshData.Powerups and freshData.Powerups["Mystery Box"] or 0 if mysteryBoxCount > 0 then -- Use Mystery Box (10 at a time or all if less than 10) local amountToUse = math.min(mysteryBoxCount, 10) game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("UseGift", "Mystery Box", amountToUse) task.wait(1) -- Check for gifts and claim them using the remote event while true do -- Check if Gifts folder exists and has children local giftsFolder = workspace.Rendered:FindFirstChild("Gifts") if not giftsFolder or #giftsFolder:GetChildren() == 0 then break end -- Process each gift in the folder for _, gift in pairs(giftsFolder:GetChildren()) do -- Get the gift's name/UUID local giftId = gift.Name -- Claim the gift using the remote event game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("ClaimGift", giftId) task.wait(1) -- Destroy the gift after claiming gift:Destroy() -- Short wait to prevent overwhelming the server task.wait(0.01) end end end end) -- Wait before checking again (every 30 seconds) task.wait(30) end end) end return AutoMysteryBoxes_Toggle end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโ Auto Buy Shop Settings โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local isAutoBuyingShopItems = false local autoBuyingShopItemsThread = nil local function toggleAutoBuyShopItems() isAutoBuyingShopItems = not isAutoBuyingShopItems if isAutoBuyingShopItems then -- Start the auto buying thread autoBuyingShopItemsThread = spawn(function() while isAutoBuyingShopItems do -- Define shops and their items for efficient iteration local shops = { ["alien-shop"] = {1, 2, 3}, ["shard-shop"] = {1, 2, 3} } -- Check if we have minimum gems before attempting purchases local currentGems = GetCurrentGems() if currentGems < Low_Gems then task.wait(60) -- Wait a minute before checking again continue end -- Process each shop for shopName, items in pairs(shops) do -- Process each item ID in this shop for _, itemId in ipairs(items) do -- Verify we still have enough gems if GetCurrentGems() >= Low_Gems then game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer( "BuyShopItem", shopName, itemId ) task.wait(0.5) -- Wait between purchases else task.wait(30) -- If below threshold, wait and continue loop break end end -- Check if toggle was turned off during purchases if not isAutoBuyingShopItems then break end task.wait(0.5) end -- Wait between shop purchase cycles task.wait(60) -- Wait 1 minute between full cycles end end) else -- Kill the thread if it exists if autoBuyingShopItemsThread then task.cancel(autoBuyingShopItemsThread) autoBuyingShopItemsThread = nil end end return isAutoBuyingShopItems end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Auto Delete Pets โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local isAutoDeletingPets = false local autoDeletingPetsThread = nil local function toggleAutoPetDeletion() isAutoDeletingPets = not isAutoDeletingPets if isAutoDeletingPets then -- Start a new thread for continuous pet deletion autoDeletingPetsThread = spawn(function() while isAutoDeletingPets do -- Use pcall for error handling pcall(function() -- Get fresh data local freshData = LocalDataService:Get() -- Create a lookup table for all pet IDs in teams local petsInTeams = {} for _, team in ipairs(freshData.Teams) do for _, petId in ipairs(team.Pets) do petsInTeams[petId] = true end end -- Track pets with shiny versions for auto-delete toggling later local petsWithShinyVersions = {} -- Check which pets have shiny versions for _, petName in ipairs(petsToDelete) do local hasShiny = false for _, pet in ipairs(freshData.Pets) do if pet.Name == petName and pet.Shiny then hasShiny = true break end end if hasShiny then petsWithShinyVersions[petName] = true end end -- Check and track all pets by name, separating normal and shiny local petsByName = {} -- First pass: organize pets by name to determine counts and find shiny versions for _, pet in ipairs(freshData.Pets) do -- Skip pets that are in teams or locked if petsInTeams[pet.Id] or pet.Locked then continue end -- Check if this pet is in our deletion list local shouldTrack = false for _, petName in ipairs(petsToDelete) do if pet.Name == petName then shouldTrack = true break end end if shouldTrack then -- Initialize the pet tracking if not exists if not petsByName[pet.Name] then petsByName[pet.Name] = { normal = { pets = {}, count = 0 }, shiny = { exists = false, pets = {}, count = 0 } } end -- Add to appropriate category if pet.Shiny then petsByName[pet.Name].shiny.exists = true table.insert(petsByName[pet.Name].shiny.pets, pet) petsByName[pet.Name].shiny.count = petsByName[pet.Name].shiny.count + (pet.Amount or 1) else table.insert(petsByName[pet.Name].normal.pets, pet) petsByName[pet.Name].normal.count = petsByName[pet.Name].normal.count + (pet.Amount or 1) end end end -- Process each pet name to check for shiny crafting opportunity for petName, data in pairs(petsByName) do -- Check if we need to make a shiny (no shiny exists and we have 16+ normal pets) if not data.shiny.exists and data.normal.count >= 16 then -- Find best candidate for shiny crafting (preferably a stacked pet) local bestCandidate = nil -- First try to find a stacked pet with at least 16 for _, pet in ipairs(data.normal.pets) do if pet.Amount and pet.Amount >= 16 then bestCandidate = pet break end end -- If no stacked pet has 16+, we'll need to use the first pet we find if not bestCandidate and #data.normal.pets > 0 then bestCandidate = data.normal.pets[1] end -- Execute the shiny crafting if we have a candidate if bestCandidate then game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer( "MakePetShiny", bestCandidate.Id ) -- Wait for the operation to complete task.wait(1) -- Refresh data after crafting a shiny freshData = LocalDataService:Get() -- Update our tracking of pets with shiny versions petsWithShinyVersions[petName] = true -- Recreate teams lookup after refresh petsInTeams = {} for _, team in ipairs(freshData.Teams) do for _, petId in ipairs(team.Pets) do petsInTeams[petId] = true end end end end end -- Now reorganize for deletion processing with updated data local petsByNameAndType = {} for _, pet in ipairs(freshData.Pets) do -- Skip pets that are in any team if petsInTeams[pet.Id] then continue end -- Skip locked pets if pet.Locked then continue end -- Check if this pet is in our deletion list local shouldTrack = false for _, petName in ipairs(petsToDelete) do if pet.Name == petName then shouldTrack = true break end end -- Check if we should skip deletion for normal pets where no shiny exists yet if shouldTrack and not pet.Shiny then -- Check if we have a shiny version in the data local shinyExists = petsWithShinyVersions[pet.Name] or false if not shinyExists then -- Re-check in fresh data for _, checkPet in ipairs(freshData.Pets) do if checkPet.Name == pet.Name and checkPet.Shiny then shinyExists = true petsWithShinyVersions[pet.Name] = true break end end end -- If no shiny exists yet, we need 16+ pets to make a shiny, so don't delete if not shinyExists then -- Count how many we have of this pet local totalCount = 0 for _, countPet in ipairs(freshData.Pets) do if countPet.Name == pet.Name and not countPet.Shiny and not petsInTeams[countPet.Id] and not countPet.Locked then totalCount = totalCount + (countPet.Amount or 1) end end -- Only delete if we have more than 16 of this pet if totalCount <= 16 then shouldTrack = false end end end -- Only track pets in our deletion list if shouldTrack then -- Create a key that combines name and shiny status local petKey = pet.Name .. (pet.Shiny and "_shiny" or "_normal") if not petsByNameAndType[petKey] then petsByNameAndType[petKey] = { xpPets = {}, stackedPets = {}, totalCount = 0, isShiny = pet.Shiny, name = pet.Name } end -- Check if it's a stacked pet (has Amount) or individual XP pet if pet.Amount then table.insert(petsByNameAndType[petKey].stackedPets, pet) petsByNameAndType[petKey].totalCount = petsByNameAndType[petKey].totalCount + pet.Amount else table.insert(petsByNameAndType[petKey].xpPets, pet) petsByNameAndType[petKey].totalCount = petsByNameAndType[petKey].totalCount + 1 end end end -- Process each pet type for deletion for petKey, petData in pairs(petsByNameAndType) do -- Use appropriate threshold based on shiny status local threshold = petData.isShiny and shinyKeepThreshold or petKeepThreshold local totalToDelete = petData.totalCount - threshold -- Only proceed if we need to delete pets if totalToDelete > 0 then -- First delete individual XP pets (prioritize these) local refreshNeeded = false for i, xpPet in ipairs(petData.xpPets) do if totalToDelete > 0 then -- Double check that this pet is not in a team if not petsInTeams[xpPet.Id] then -- Delete this individual pet game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer( "DeletePet", xpPet.Id, 1, false ) totalToDelete = totalToDelete - 1 task.wait(0.3) -- Wait for deletion to process refreshNeeded = true -- Refresh data after each 3 deletions to avoid too many refreshes if i % 3 == 0 or totalToDelete <= 0 then -- Refresh data and team info freshData = LocalDataService:Get() petsInTeams = {} for _, team in ipairs(freshData.Teams) do for _, petId in ipairs(team.Pets) do petsInTeams[petId] = true end end refreshNeeded = false end end else break end end -- Refresh data if needed before handling stacked pets if refreshNeeded then freshData = LocalDataService:Get() petsInTeams = {} for _, team in ipairs(freshData.Teams) do for _, petId in ipairs(team.Pets) do petsInTeams[petId] = true end end end -- Recalculate remaining pets to delete after refreshing data if totalToDelete > 0 then -- Find all stacked pets again with fresh data local stackedPets = {} for _, pet in ipairs(freshData.Pets) do -- Match both name and shiny status, make sure not in team local isRightType = pet.Name == petData.name and (pet.Shiny == petData.isShiny) if isRightType and pet.Amount and not petsInTeams[pet.Id] and not pet.Locked then table.insert(stackedPets, pet) end end -- Then handle stacked pets if we still need to delete more for i, stackedPet in ipairs(stackedPets) do if totalToDelete > 0 then -- Calculate how many to delete from this stack local amountToDelete = math.min(stackedPet.Amount, totalToDelete) -- Delete from this stacked pet game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer( "DeletePet", stackedPet.Id, amountToDelete, false ) totalToDelete = totalToDelete - amountToDelete task.wait(0.3) -- Wait for deletion to process -- Refresh data after each deletion of stacked pets if i % 2 == 0 or totalToDelete <= 0 then freshData = LocalDataService:Get() petsInTeams = {} for _, team in ipairs(freshData.Teams) do for _, petId in ipairs(team.Pets) do petsInTeams[petId] = true end end end else break end end end end end -- After deletion, check which pets should be toggled for auto-delete freshData = LocalDataService:Get() -- Get fresh data again -- Enable auto-delete for pets where we have a shiny version for petName in pairs(petsWithShinyVersions) do -- Check if this pet is already set for auto-deletion local isAlreadyAutoDelete = freshData.AutoDelete and freshData.AutoDelete[petName] -- If not set for auto-delete yet, toggle it if not isAlreadyAutoDelete then game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer( "ToggleAutoDelete", petName ) task.wait(0.2) -- Small wait between toggles end end end) -- Wait before checking again task.wait(30) -- Check every 30 seconds end end) end return isAutoDeletingPets end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Auto Craft Potion Function โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local isAutoCraftingPotions = false local autoCraftingPotionsThread = nil local function toggleAutoCraftPotions() isAutoCraftingPotions = not isAutoCraftingPotions if isAutoCraftingPotions then autoCraftingPotionsThread = spawn(function() while isAutoCraftingPotions do -- Check gem threshold first local currentGems = GetCurrentGems() -- Only proceed if we have enough gems if currentGems >= Low_Gems then local madeCraft = false local data = LocalDataService:Get() -- Check from lowest to highest tier for tier = 2, 5 do for _, potionType in ipairs(potionTypes) do -- Find source potion in inventory local sourceTier = tier - 1 local required = craftingRequirements[tier] local available = 0 for _, potion in ipairs(data.Potions or {}) do if potion.Name == potionType and potion.Level == sourceTier then available = potion.Amount or 0 break end end -- Craft if possible and check gems again before each craft if available >= required and GetCurrentGems() >= Low_Gems then game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer( "CraftPotion", potionType, tier, true) madeCraft = true task.wait(0.3) data = LocalDataService:Get() -- Refresh data end end end -- Wait based on crafting activity task.wait(madeCraft and 0.5 or 10) else -- If not enough gems, wait longer before checking again task.wait(15) end end end) end return isAutoCraftingPotions end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโ Auto Use Potion Function โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local function isPotionActive(potionType) -- Get fresh data every time we check local freshData = LocalDataService:Get() -- Check if ActivePotions exists and has the specific potion if freshData.ActivePotions and type(freshData.ActivePotions) == "table" and freshData.ActivePotions[potionType] and freshData.ActivePotions[potionType].Active then return true end return false end -- Function to get the highest level potion of a specific type from inventory local function getHighestLevelPotion(potionType) -- Get fresh data every time we check inventory local freshData = LocalDataService:Get() local highestLevel = 0 local highestLevelPotion = nil -- Check if we have potions in inventory if freshData.Potions and #freshData.Potions > 0 then for _, potion in ipairs(freshData.Potions) do -- Check if this potion matches the exact type we're looking for if potion.Name == potionType and potion.Amount > 0 then -- If this potion has a higher level than our current highest, update if potion.Level > highestLevel then highestLevel = potion.Level highestLevelPotion = potion end end end end return highestLevelPotion end -- Function to use a potion local function usePotion(potionName, potionLevel) -- Use the potion game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer( "UsePotion", potionName, potionLevel ) -- Wait briefly for data to update task.wait(0.3) -- Return true to indicate success return true end -- Function to toggle auto potion usage local function toggleAutoUsePotion() isAutoUsingPotions = not isAutoUsingPotions if isAutoUsingPotions then -- Start a new thread for continuous potion checking autoUsingPotionsThread = spawn(function() while isAutoUsingPotions do -- Only process potions if auto hatching is enabled AND not temporarily disabled if isAutoHatching and not tempDisableHatching then -- First handle regular priority potions for _, potionType in ipairs(priorityPotions) do -- Check with fresh data if potion is active if not isPotionActive(potionType) then -- Get highest level potion with fresh data local bestPotion = getHighestLevelPotion(potionType) -- If we found a potion, use it if bestPotion then usePotion(bestPotion.Name, bestPotion.Level) -- Wait a bit between using different potions task.wait(1) end end end -- Check for Infinity Elixir only when hatching x25 egg if isHatchingX25Egg and not isPotionActive("Infinity Elixir") then local infinityPotion = getHighestLevelPotion("Infinity Elixir") if infinityPotion then usePotion(infinityPotion.Name, infinityPotion.Level) task.wait(1) end end end -- Wait before checking again task.wait(3) -- Check potions every 3 seconds end end) end return isAutoUsingPotions end -- ๐โโโโโโโโโโโโโโโโโโโโโโโ Auto Collection Buffs Function โโโโโโโโโโโโโโโโโโโโโโโโโโ๐ -- Function to check and use buffs during coin collection local function useCollectionBuffs() -- Get fresh data local freshData = LocalDataService:Get() -- Check if Coins potion is active local hasCoinsPotion = false if freshData.ActivePotions and type(freshData.ActivePotions) == "table" then if freshData.ActivePotions["Coins"] and freshData.ActivePotions["Coins"].Active then hasCoinsPotion = true end end -- Check if GoldRush buff is active local hasGoldRush = false if freshData.ActiveBuffs and type(freshData.ActiveBuffs) == "table" then for _, buff in ipairs(freshData.ActiveBuffs) do if buff.Name == "GoldRush" then hasGoldRush = true break end end end -- Use Coins potion if not active and we have one if not hasCoinsPotion then local coinsPotion = getHighestLevelPotion("Coins") if coinsPotion then usePotion(coinsPotion.Name, coinsPotion.Level) task.wait(0.5) end end -- Use Golden Orb if GoldRush not active and we have some if not hasGoldRush and freshData.Powerups and freshData.Powerups["Golden Orb"] and freshData.Powerups["Golden Orb"] > 0 then game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("UseGoldenOrb") task.wait(0.5) end end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Auto Collect Pickup โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local function toggleAutoCollectPickups() isAutoCollectingPickups = not isAutoCollectingPickups if isAutoCollectingPickups then -- Start a new thread for continuous pickup collection autoCollectingPickupsThread = spawn(function() while isAutoCollectingPickups do -- Use pcall for error handling pcall(function() -- First, check and use collection buffs useCollectionBuffs() local player = game:GetService("Players").LocalPlayer local character = player.Character if character then local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if humanoidRootPart then local isInZen = math.abs(humanoidRootPart.Position.Y - 15975) < 30 -- Only collect if in Zen Island if isInZen then -- Loop through all Chunker folders in Rendered for _, chunkerFolder in pairs(workspace.Rendered:GetChildren()) do if chunkerFolder.Name == "Chunker" and chunkerFolder:IsA("Folder") then -- Loop through each UUID object for _, uuidObject in pairs(chunkerFolder:GetChildren()) do -- Check if it's a UUID-like name (contains hyphens) if typeof(uuidObject) == "Instance" and uuidObject.Name:match("%-") then -- This UUID object is the pickup itself local pickupId = uuidObject.Name game:GetService("ReplicatedStorage").Remotes.Pickups.CollectPickup:FireServer(pickupId) task.wait(0.05) uuidObject:Destroy() task.wait(0.05) end end end end else -- Not in Zen, teleport there game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("Teleport", "Workspace.Worlds.The Overworld.Islands.Zen.Island.Portal.Spawn") task.wait(5) -- Wait for teleport to complete end end end end) -- Wait before checking again task.wait(1) end end) end return isAutoCollectingPickups end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Egg Counter Function โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local function toggleEggCounter() isEggCounterEnabled = not isEggCounterEnabled if isEggCounterEnabled then -- Create GUI if not exists if not EggCounterGui then EggCounterGui = Instance.new("ScreenGui") EggCounterGui.Name = "EggCounterGui" EggCounterGui.ResetOnSpawn = false EggCounterGui.IgnoreGuiInset = true EggCounterGui.DisplayOrder = 98 -- Create fully black background covering the entire screen local frame = Instance.new("Frame") frame.Size = UDim2.new(1, 0, 1, 0) -- Full screen size frame.Position = UDim2.new(0, 0, 0, 0) -- Starting from top-left corner frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0) -- Black frame.BackgroundTransparency = 0 -- Black Transparancy frame.BorderSizePixel = 0 frame.Name = "Frame" frame.Parent = EggCounterGui -- Title label local titleLabel = Instance.new("TextLabel") titleLabel.Size = UDim2.new(1, 0, 0, 50) titleLabel.Position = UDim2.new(0, 0, 0.23, 0) -- Moved up to 30% down titleLabel.BackgroundTransparency = 1 titleLabel.Font = Enum.Font.SourceSansBold titleLabel.TextSize = 135 -- Larger text size titleLabel.TextColor3 = Color3.fromRGB(255, 0, 0) -- Red text initially titleLabel.Text = "Hatching Off" titleLabel.TextStrokeTransparency = 0 titleLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0) titleLabel.Name = "TitleLabel" titleLabel.Parent = frame -- Egg counter label local counterLabel = Instance.new("TextLabel") counterLabel.Size = UDim2.new(1, 0, 0, 50) counterLabel.Position = UDim2.new(0, 0, 0.37, 0) -- Moved up to 40% down counterLabel.BackgroundTransparency = 1 counterLabel.Font = Enum.Font.SourceSansBold counterLabel.TextSize = 125 counterLabel.TextColor3 = Color3.fromRGB(255, 255, 255) counterLabel.Text = "" counterLabel.TextWrapped = true counterLabel.TextXAlignment = Enum.TextXAlignment.Center counterLabel.TextStrokeTransparency = 0 counterLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0) counterLabel.Name = "CounterLabel" counterLabel.Parent = frame -- Coins counter label local coinsLabel = Instance.new("TextLabel") coinsLabel.Size = UDim2.new(1, 0, 0, 50) coinsLabel.Position = UDim2.new(0, 0, 0.52, 0) -- At 50% down coinsLabel.BackgroundTransparency = 1 coinsLabel.Font = Enum.Font.SourceSansBold coinsLabel.TextSize = 125 coinsLabel.TextColor3 = Color3.fromRGB(255, 215, 0) -- Gold color for coins coinsLabel.Text = "Coins: 0" coinsLabel.TextWrapped = true coinsLabel.TextXAlignment = Enum.TextXAlignment.Center coinsLabel.TextStrokeTransparency = 0 coinsLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0) coinsLabel.Name = "CoinsLabel" coinsLabel.Parent = frame -- Gems counter label local gemsLabel = Instance.new("TextLabel") gemsLabel.Size = UDim2.new(1, 0, 0, 50) gemsLabel.Position = UDim2.new(0, 0, 0.65, 0) -- At 60% down gemsLabel.BackgroundTransparency = 1 gemsLabel.Font = Enum.Font.SourceSansBold gemsLabel.TextSize = 125 gemsLabel.TextColor3 = Color3.fromRGB(170, 0, 255) -- Purple color for gems gemsLabel.Text = "Gems: 0" gemsLabel.TextWrapped = true gemsLabel.TextXAlignment = Enum.TextXAlignment.Center gemsLabel.TextStrokeTransparency = 0 gemsLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0) gemsLabel.Name = "GemsLabel" gemsLabel.Parent = frame EggCounterGui.Parent = game:GetService("CoreGui") else EggCounterGui.Enabled = true end -- Start updating the counter in a loop spawn(function() while isEggCounterEnabled and EggCounterGui do local playerData = LocalDataService:Get() local titleLabel = EggCounterGui.Frame.TitleLabel local counterLabel = EggCounterGui.Frame.CounterLabel local coinsLabel = EggCounterGui.Frame.CoinsLabel local gemsLabel = EggCounterGui.Frame.GemsLabel -- Update coins and gems regardless of hatching state if playerData then -- Update coins (using your existing GetCurrentCoins function) local currentCoins = GetCurrentCoins() coinsLabel.Text = "Coins: " .. FormatNumberCompact(currentCoins) -- Update gems local currentGems = playerData.Gems or 0 gemsLabel.Text = "Gems: " .. FormatNumberCompact(currentGems) end if CurrentlyHatchingEgg and playerData and playerData.EggsOpened then local eggCount = playerData.EggsOpened[CurrentlyHatchingEgg] or 0 titleLabel.Text = "Currently Hatching" titleLabel.TextColor3 = Color3.fromRGB(0, 255, 0) -- Green counterLabel.Text = CurrentlyHatchingEgg .. " : " .. tostring(eggCount) else titleLabel.Text = "Hatching Off" titleLabel.TextColor3 = Color3.fromRGB(255, 0, 0) -- Red counterLabel.Text = "" end task.wait(1) -- Break the loop if toggle is turned off if not isEggCounterEnabled then break end end end) else -- Hide the GUI when toggled off if EggCounterGui then EggCounterGui.Enabled = false end end return isEggCounterEnabled end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Auto Hatch Function โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ -- Function to extract luck multiplier from text (e.g. "x5", "x10") local function getLuckMultiplier(luckText) if not luckText then return 0 end -- Extract number after 'x' local multiplier = luckText:match("x(%d+)") if multiplier then return tonumber(multiplier) or 0 end return 0 end -- Inside findBestEgg function local function findBestEgg() local rifts = workspace.Rendered:FindFirstChild("Rifts") if not rifts then return nil end -- Store all available eggs with their priority and luck multiplier local availableEggs = {} -- Check all eggs and get their priority and luck info for _, eggId in ipairs(eggPriority) do local egg = rifts:FindFirstChild(eggId) if egg then local display = egg:FindFirstChild("Display") if display then -- Find the luck text if it exists local luckMultiplier = 0 for _, descendant in ipairs(egg:GetDescendants()) do if descendant.Name == "Luck" and descendant:IsA("TextLabel") and descendant.Text then luckMultiplier = getLuckMultiplier(descendant.Text) break end end -- Store egg with priority index and luck multiplier table.insert(availableEggs, { eggId = eggId, eggName = eggMapping[eggId], display = display, priority = table.find(eggPriority, eggId) or #eggPriority + 1, luckMultiplier = luckMultiplier }) end end end -- Sort eggs by x25 first, then by priority, then by luck multiplier table.sort(availableEggs, function(a, b) -- Always prioritize x25 eggs over anything else if a.luckMultiplier == 25 and b.luckMultiplier ~= 25 then return true elseif a.luckMultiplier ~= 25 and b.luckMultiplier == 25 then return false -- If both are x25 or neither is x25, fall back to normal priority elseif a.priority == b.priority then -- Higher luck multiplier comes first return a.luckMultiplier > b.luckMultiplier end -- Lower priority index comes first (higher priority) return a.priority < b.priority end) -- Get the best egg local bestEgg = #availableEggs > 0 and availableEggs[1] or nil -- Set the flag for x25 egg if found isHatchingX25Egg = bestEgg and bestEgg.luckMultiplier == 25 or false -- Return the best egg or nil if none found return bestEgg end -- Function to check if we're near the egg local function isNearEgg(eggDisplay) if not eggDisplay then return false end local player = game:GetService("Players").LocalPlayer local character = player.Character if not character then return false end local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart then return false end -- Check if we're within 10 studs of the egg local distance = (humanoidRootPart.Position - eggDisplay.Position).Magnitude return distance < 15 end local function toggleAutoHatch() -- Only allow toggling on if mastery requirements are met if not isAutoHatching and not (PetsMasteryCompleted and BuffsMasteryCompleted) then -- Skip activation if mastery is not completed yet return false end isAutoHatching = not isAutoHatching if isAutoHatching then -- If auto potions not active yet, start it if not isAutoUsingPotions then toggleAutoUsePotion() end -- Start a new thread for continuous hatching autoHatchingThread = spawn(function() while isAutoHatching do -- Use pcall for error handling pcall(function() -- Check coin levels local currentCoins = GetCurrentCoins() -- If coins are below the low threshold, switch to pickup collection if currentCoins < Low_Coins then -- Enable pickup collection if not already collecting if not isAutoCollectingPickups then toggleAutoCollectPickups() pickupCollectionStartedByHatcher = true tempDisableHatching = true end task.wait(3) -- Wait before checking again return else -- Only disable collection and resume hatching if we've reached the target (60% of max) if currentCoins >= Max_Coins * 0.6 then -- Re-enable hatching tempDisableHatching = false -- Disable pickup collection if it was enabled by us if isAutoCollectingPickups and pickupCollectionStartedByHatcher then toggleAutoCollectPickups() pickupCollectionStartedByHatcher = false end else -- We're between Low_Coins and 60% target, keep collecting if already started if isAutoCollectingPickups and pickupCollectionStartedByHatcher then -- Continue collecting task.wait(3) return else -- No collection active, but we're between thresholds -- Clear temp disable so we can hatch until low again tempDisableHatching = false end end end -- Only proceed with hatching if not temporarily disabled if not tempDisableHatching then -- Check if we're near Max_Coins - prioritize hatching local shouldPrioritizeHatching = currentCoins >= Max_Coins * 0.95 -- Find the best egg to hatch local bestEgg = findBestEgg() -- If no eggs found, use Default_Egg if not bestEgg then -- Check if we're already near Default_Egg position by Y coordinate local player = game:GetService("Players").LocalPlayer local character = player.Character if character then local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if humanoidRootPart then local playerPos = humanoidRootPart.Position local defaultEggY = Default_Egg.Position.Y - 7 -- Account for the -7 offset -- Only tween if we're not already near Default_Egg if math.abs(playerPos.Y - defaultEggY) > 10 then -- Create adjusted CFrame below Default_Egg local adjustedCFrame = Default_Egg * CFrame.new(0, -7, 0) -- Use adjusted CFrame for tweening local horizTween, vertTween = TweenCharacterToTarget(adjustedCFrame) -- Wait for the tween to complete if horizTween and vertTween then horizTween.Completed:Wait() vertTween.Completed:Wait() else task.wait(0.5) -- Reduced wait time end end end end -- Try hatching at the default location local hatchAmount = 8 CurrentlyHatchingEgg = "100M Egg" game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer( "HatchEgg", "100M Egg", -- Assuming a default egg name, adjust as needed hatchAmount ) -- Press R key to skip egg opening task.wait(0.05) -- Reduced wait time VIM:SendKeyEvent(true, Enum.KeyCode.R, false, game) task.wait(0.05) -- Reduced wait time VIM:SendKeyEvent(false, Enum.KeyCode.R, false, game) task.wait(0.5) -- Reduced wait time elseif currentCoins >= Low_Coins then -- Use our tween function to move to the egg local horizTween, vertTween = TweenCharacterToTarget(bestEgg.display) -- Wait for the tween to complete if horizTween and vertTween then horizTween.Completed:Wait() vertTween.Completed:Wait() else task.wait(0.5) -- Reduced wait time end -- Start hatching eggs (8 at a time) local hatchAmount = 8 -- Only try to hatch if we're near the egg while GetCurrentCoins() >= Low_Coins do -- Recheck for the best egg every time local newBestEgg = findBestEgg() -- If no eggs available anymore, break out completely if not newBestEgg then -- No eggs available at all, break and wait for next cycle break elseif newBestEgg.eggId ~= bestEgg.eggId then -- A different (possibly better) egg is available - update and move to it bestEgg = newBestEgg -- Move to the new best egg local newHorizTween, newVertTween = TweenCharacterToTarget(bestEgg.display) if newHorizTween and newVertTween then newHorizTween.Completed:Wait() newVertTween.Completed:Wait() else task.wait(0.5) -- Reduced wait time end end -- Make sure we're near the egg before hatching if isNearEgg(bestEgg.display) then -- Hatch the egg CurrentlyHatchingEgg = bestEgg.eggName game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer( "HatchEgg", bestEgg.eggName, hatchAmount ) -- Press R key to skip egg opening task.wait(0.05) -- Reduced wait time VIM:SendKeyEvent(true, Enum.KeyCode.R, false, game) task.wait(0.05) -- Reduced wait time VIM:SendKeyEvent(false, Enum.KeyCode.R, false, game) -- Wait a bit between hatches task.wait(0.5) -- Reduced wait time -- If coins go too low, break early if GetCurrentCoins() < Low_Coins * 1.1 then break end else -- We've lost proximity to the egg, need to recheck break end end end end end) -- Wait before checking again task.wait(0.5) -- Reduced wait time for responsiveness end end) else -- If we're turning off auto hatching, also turn off auto potions if isAutoUsingPotions then toggleAutoUsePotion() end -- If we're turning off auto hatching, also turn off pickup collection if we started it if isAutoCollectingPickups and pickupCollectionStartedByHatcher then toggleAutoCollectPickups() pickupCollectionStartedByHatcher = false end end return isAutoHatching end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Auto Bubble & Sell Function โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local function Auto_Bubble_And_Sell() -- Only activate if we haven't met all the completion conditions if Auto_Bubble_And_Sell_Active or (AllMasteryCompleted and max_Upgrades_Reached) or isAutoHatching then -- If already running, everything complete, or hatching is active, turn off Auto_Bubble_And_Sell_Active = false return false end Auto_Bubble_And_Sell_Active = true -- Start a new thread for continuous bubble blowing and selling/collecting Auto_Bubble_And_Sell_Thread = spawn(function() while Auto_Bubble_And_Sell_Active do -- Always blow bubbles regardless of location game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("BlowBubble") -- Stop if auto hatching started or all tasks completed if isAutoHatching or (AllMasteryCompleted and max_Upgrades_Reached) then Auto_Bubble_And_Sell_Active = false break end -- First, always check and use buffs regardless of location pcall(function() -- Get fresh data local freshData = LocalDataService:Get() -- Check if Coins potion is active local hasCoinsPotion = false if freshData.ActivePotions and type(freshData.ActivePotions) == "table" then if freshData.ActivePotions["Coins"] and freshData.ActivePotions["Coins"].Active then hasCoinsPotion = true end end -- Check if GoldRush buff is active local hasGoldRush = false if freshData.ActiveBuffs and type(freshData.ActiveBuffs) == "table" then for _, buff in ipairs(freshData.ActiveBuffs) do if buff.Name == "GoldRush" then hasGoldRush = true break end end end -- Use Coins potion if not active and we have one if not hasCoinsPotion then local coinsPotion = getHighestLevelPotion("Coins") if coinsPotion then usePotion(coinsPotion.Name, coinsPotion.Level) task.wait(0.5) end end -- Use Golden Orb if GoldRush not active and we have some if not hasGoldRush and freshData.Powerups and freshData.Powerups["Golden Orb"] and freshData.Powerups["Golden Orb"] > 0 then game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("UseGoldenOrb") task.wait(0.5) end end) -- Decide mode: Zen pickup collection OR Twilight bubble selling if max_Flavor_Reached and (not PetsMasteryCompleted or not BuffsMasteryCompleted or not ShopsMasteryCompleted) then -- PICKUP COLLECTION MODE: Switch to Zen pickup collection for gems if not isAutoCollectingPickups then toggleAutoCollectPickups() -- This will handle teleporting to Zen task.wait(3) -- Give time for teleport end -- Don't attempt to sell bubbles in this mode (we're in Zen) else -- BUBBLE SELLING MODE: Turn off pickup collection if active if isAutoCollectingPickups then toggleAutoCollectPickups() task.wait(1) end -- Only attempt selling bubbles when we're in selling mode pcall(function() -- Get player and character local player = game:GetService("Players").LocalPlayer local character = player.Character if character then local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if humanoidRootPart then local playerPos = humanoidRootPart.Position -- Check if player is NOT in Twilight area (Y position ~6862) if math.abs(playerPos.Y - 6862) > 30 then -- Player is not at the right location, teleport there game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer( "Teleport", "Workspace.Worlds.The Overworld.Islands.Twilight.Island.Portal.Spawn" ) task.wait(2) -- Longer wait after teleport else -- Player is at the right Y level, tween to the sell area local sellRoot = workspace.Worlds["The Overworld"].Islands.Twilight.Island.Sell.Root if sellRoot then -- Check if already near the sell root local distance = (humanoidRootPart.Position - sellRoot.Position).Magnitude if distance > 10 then -- Tween to the sell area local horizontalTween, verticalTween = TweenCharacterToTarget(sellRoot) -- Wait for tweens to complete if horizontalTween then horizontalTween.Completed:Wait() end if verticalTween then verticalTween.Completed:Wait() end task.wait(0.5) -- Wait after tweening end -- Check bubble count after reaching sell area local GuiGum = player.PlayerGui.ScreenGui.HUD.Left.Currency.Bubble.Frame.Label.Text local current, max = extractNumbers(GuiGum) -- Sell bubbles if we have any if current and current > 1 then game:GetService("ReplicatedStorage").Shared.Framework.Network.Remote.Event:FireServer("SellBubble") task.wait(0.5) -- Wait after selling end end end end end end) end -- Check if all tasks completed if (AllMasteryCompleted and max_Upgrades_Reached) or isAutoHatching then Auto_Bubble_And_Sell_Active = false -- Turn off pickup collection if it's on if isAutoCollectingPickups then toggleAutoCollectPickups() end break end -- Wait a small amount between cycles task.wait(0.3) end end) return Auto_Bubble_And_Sell_Active end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโ Initialize Data Function โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ local function InitializePlayerData() -- Get fresh player data local freshData = LocalDataService:Get() -- Initialize all status flags based on current data if freshData then -- 1. Check flavor and gum upgrade status if freshData.Flavors then -- Get the highest price flavor to check if we've reached max flavor local max_flavor_item = get_Highest_Priced_Item(flavorsConfig) if freshData.Flavors[max_flavor_item] then max_Flavor_Reached = true else max_Flavor_Reached = false end else max_Flavor_Reached = false end if freshData.Gum then -- Get the highest price gum to check if we've reached max gum local max_gum_item = get_Highest_Priced_Item(gumConfig) if freshData.Gum[max_gum_item] then max_Gum_Reached = true else max_Gum_Reached = false end else max_Gum_Reached = false end max_Upgrades_Reached = max_Flavor_Reached and max_Gum_Reached -- 2. Check mastery completion status -- Function to check if mastery is completed based on available targets local function checkMasteryCompleted(masteryTargets) if not masteryTargets or #masteryTargets == 0 then return true -- No targets means mastery is completed end return false end -- Use FindAvailableAndMastery to update mastery targets FindAvailableAndMastery() -- Set completion flags based on target counts PetsMasteryCompleted = checkMasteryCompleted(Mastery_Pets_Targets) BuffsMasteryCompleted = checkMasteryCompleted(Mastery_Buffs_Targets) ShopsMasteryCompleted = checkMasteryCompleted(Mastery_Shops_Targets) -- Update combined mastery flag AllMasteryCompleted = PetsMasteryCompleted and BuffsMasteryCompleted and ShopsMasteryCompleted return true end return false end -- ๐โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Main Loop โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ while true do -- Use pcall for the entire loop body to prevent script crashes local success, errorMsg = pcall(function() -- Handle intro once at the beginning if not hasHandledIntro then hasHandledIntro = handleIntro() if hasHandledIntro then -- Wait longer after handling the intro to ensure everything loads properly task.wait(5) InitializePlayerData() task.wait(10) end end -- First unlock areas and enable fly mode (basic setup) if not AreaUnlock_Toggle and not areasUnlocked then areasUnlocked = UnlockAreas() end if not isFlyModeActive then toggleFlyMode() end -- Check and update mastery progress if not isAutoMastery then FindAvailableAndMastery() end -- Bubble and sell OR hatch eggs based on mastery progress if PetsMasteryCompleted and BuffsMasteryCompleted then -- Mastery complete - focus on hatching if not isAutoHatching then toggleAutoHatch() elseif isAutoHatching and not isAutoUsingPotions then -- Make sure potions are enabled when hatching is active toggleAutoUsePotion() end else -- Mastery not complete - focus on bubble selling if not Auto_Bubble_And_Sell_Active and not isAutoHatching then Auto_Bubble_And_Sell() end end -- Always handle pet deletion if not isAutoDeletingPets then toggleAutoPetDeletion() end -- Check for daily rewards if not CheckRewards_Toggle and not hasClaimedDailyReward then hasClaimedDailyReward = checkDailyRewards() end -- Claim playtime rewards if not AutoClaimPlaytime_Toggle and not PlaytimeRewardsClaimed then toggleAutoClaimPlaytime() end -- Apply optimal settings if not SetSettings_Toggle and not settingsApplied then SetOptimalSettings() end -- Claim prizes if not AutoClaimPrizes_Toggle then toggleAutoClaimPrizes() end -- Buy items if not already running and not completed if not AutoBuy_Toggle and not max_Upgrades_Reached then AutoBuy_Toggle, max_Flavor_Reached, max_Gum_Reached, max_Upgrades_Reached = AutoBuyItems() end -- Hide overlays if not AutoHideOverlay_Toggle then toggleAutoHideOverlay() end -- Use mystery boxes if not AutoMysteryBoxes_Toggle then toggleAutoMysteryBoxes() end -- Spin wheel if not AutoWheelSpin_Toggle then toggleAutoWheelSpin() end -- Craft potions if not isAutoCraftingPotions then toggleAutoCraftPotions() end -- Only run reroll enchants if mastery requirements are met if not RerollEnchants_Toggle and (PetsMasteryCompleted and BuffsMasteryCompleted) then RerollEnchants() end if not isPressingB then togglePeriodicB() end if not isAutoBuyingShopItems then toggleAutoBuyShopItems() end if not SecretPetCheck_Toggle then checkForSecretPets() end if not isEggCounterEnabled then toggleEggCounter() end -- Wait a bit to prevent the game from lagging task.wait(0.2) end) -- Handle any errors that occurred during execution if not success then print("ERROR IN MAIN LOOP: " .. tostring(errorMsg)) -- Wait a bit before continuing to prevent error spam task.wait(2) end -- Always have a small wait to prevent infinite loops if the task.wait inside pcall fails task.wait(0.1) end
Optional Paste Settings
Category:
None
Cryptocurrency
Cybersecurity
Fixit
Food
Gaming
Haiku
Help
History
Housing
Jokes
Legal
Money
Movies
Music
Pets
Photo
Science
Software
Source Code
Spirit
Sports
Travel
TV
Writing
Tags:
Syntax Highlighting:
None
Bash
C
C#
C++
CSS
HTML
JSON
Java
JavaScript
Lua
Markdown (PRO members only)
Objective C
PHP
Perl
Python
Ruby
Swift
4CS
6502 ACME Cross Assembler
6502 Kick Assembler
6502 TASM/64TASS
ABAP
AIMMS
ALGOL 68
APT Sources
ARM
ASM (NASM)
ASP
ActionScript
ActionScript 3
Ada
Apache Log
AppleScript
Arduino
Asymptote
AutoIt
Autohotkey
Avisynth
Awk
BASCOM AVR
BNF
BOO
Bash
Basic4GL
Batch
BibTeX
Blitz Basic
Blitz3D
BlitzMax
BrainFuck
C
C (WinAPI)
C Intermediate Language
C for Macs
C#
C++
C++ (WinAPI)
C++ (with Qt extensions)
C: Loadrunner
CAD DCL
CAD Lisp
CFDG
CMake
COBOL
CSS
Ceylon
ChaiScript
Chapel
Clojure
Clone C
Clone C++
CoffeeScript
ColdFusion
Cuesheet
D
DCL
DCPU-16
DCS
DIV
DOT
Dart
Delphi
Delphi Prism (Oxygene)
Diff
E
ECMAScript
EPC
Easytrieve
Eiffel
Email
Erlang
Euphoria
F#
FO Language
Falcon
Filemaker
Formula One
Fortran
FreeBasic
FreeSWITCH
GAMBAS
GDB
GDScript
Game Maker
Genero
Genie
GetText
Go
Godot GLSL
Groovy
GwBasic
HQ9 Plus
HTML
HTML 5
Haskell
Haxe
HicEst
IDL
INI file
INTERCAL
IO
ISPF Panel Definition
Icon
Inno Script
J
JCL
JSON
Java
Java 5
JavaScript
Julia
KSP (Kontakt Script)
KiXtart
Kotlin
LDIF
LLVM
LOL Code
LScript
Latex
Liberty BASIC
Linden Scripting
Lisp
Loco Basic
Logtalk
Lotus Formulas
Lotus Script
Lua
M68000 Assembler
MIX Assembler
MK-61/52
MPASM
MXML
MagikSF
Make
MapBasic
Markdown (PRO members only)
MatLab
Mercury
MetaPost
Modula 2
Modula 3
Motorola 68000 HiSoft Dev
MySQL
Nagios
NetRexx
Nginx
Nim
NullSoft Installer
OCaml
OCaml Brief
Oberon 2
Objeck Programming Langua
Objective C
Octave
Open Object Rexx
OpenBSD PACKET FILTER
OpenGL Shading
Openoffice BASIC
Oracle 11
Oracle 8
Oz
PARI/GP
PCRE
PHP
PHP Brief
PL/I
PL/SQL
POV-Ray
ParaSail
Pascal
Pawn
Per
Perl
Perl 6
Phix
Pic 16
Pike
Pixel Bender
PostScript
PostgreSQL
PowerBuilder
PowerShell
ProFTPd
Progress
Prolog
Properties
ProvideX
Puppet
PureBasic
PyCon
Python
Python for S60
QBasic
QML
R
RBScript
REBOL
REG
RPM Spec
Racket
Rails
Rexx
Robots
Roff Manpage
Ruby
Ruby Gnuplot
Rust
SAS
SCL
SPARK
SPARQL
SQF
SQL
SSH Config
Scala
Scheme
Scilab
SdlBasic
Smalltalk
Smarty
StandardML
StoneScript
SuperCollider
Swift
SystemVerilog
T-SQL
TCL
TeXgraph
Tera Term
TypeScript
TypoScript
UPC
Unicon
UnrealScript
Urbi
VB.NET
VBScript
VHDL
VIM
Vala
Vedit
VeriLog
Visual Pro Log
VisualBasic
VisualFoxPro
WHOIS
WhiteSpace
Winbatch
XBasic
XML
XPP
Xojo
Xorg Config
YAML
YARA
Z80 Assembler
ZXBasic
autoconf
jQuery
mIRC
newLISP
q/kdb+
thinBasic
Paste Expiration:
Never
Burn after read
10 Minutes
1 Hour
1 Day
1 Week
2 Weeks
1 Month
6 Months
1 Year
Paste Exposure:
Public
Unlisted
Private
Folder:
(members only)
Password
NEW
Enabled
Disabled
Burn after read
NEW
Paste Name / Title:
Create New Paste
Hello
Guest
Sign Up
or
Login
Sign in with Facebook
Sign in with Twitter
Sign in with Google
You are currently not logged in, this means you can not edit or delete anything you paste.
Sign Up
or
Login
Public Pastes
Untitled
JSON | 1 hour ago | 45.87 KB
Amazon Product: 160GB MP3 Player with Bluetoo...
JSON | 2 hours ago | 9.16 KB
Untitled
JSON | 3 hours ago | 45.65 KB
Looks_Patchy.py
Python | 4 hours ago | 7.10 KB
Untitled
C++ | 4 hours ago | 1.08 KB
dom.rab
C | 4 hours ago | 0.53 KB
ToanBreak Violence District Killer Script
Lua | 5 hours ago | 8.64 KB
Polymorphism
Java | 5 hours ago | 3.83 KB
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the
Cookies Policy
.
OK, I Understand
Not a member of Pastebin yet?
Sign Up
, it unlocks many cool features!