-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] --[[rscripts:analytics:start]] -- Script analytics (enabled by the creator on rscripts.net). -- Runs in its own thread and cannot affect the script below. task.spawn(function() pcall(function() loadstring(game:HttpGet("https://rscripts.net/api/telemetry/v2/client.lua?s=6ae1ad28586910bfee92e203"))() end) end) --[[rscripts:analytics:end]] -- Miz0 | Feed A Mosquito | Credits: Miz0 -- RightShift: menu | F6: pause/resume | F7: base | F8: unload local Players = game:GetService("Players") local RS = game:GetService("ReplicatedStorage") local UIS = game:GetService("UserInputService") local CS = game:GetService("CollectionService") local TweenService = game:GetService("TweenService") local player = Players.LocalPlayer assert(game.GameId == 10747719434, "This script is for Feed A Mosquito") local env = getgenv() local previous=env.__MosquitoHub if previous then previous:Destroy() end local Scripts = RS:WaitForChild("Scripts") local requireGame = require local Utils = requireGame(Scripts.Core.Utils.Utils) local Weapons = requireGame(Scripts.Configs.WeaponConfig) local Areas = requireGame(Scripts.Configs.AreaConfig) local Mosquitoes = requireGame(Scripts.Configs.MosquitoConfig) local Income = requireGame(Scripts.Configs.MosquitoConfigUtils) local Bases = requireGame(Scripts.Configs.BaseConfig) local Sizes = requireGame(Scripts.Configs.SizeConfig) local SizePools = requireGame(Scripts.Configs.SizePoolConfigUtils) local DamageUpgrades = requireGame(Scripts.Configs.DamageUpgradeConfig) local WindUI = loadstring(game:HttpGet("https://github.com/Footagesus/WindUI/releases/latest/download/main.lua"))() local Hub = { alive = true, revision = 0, enabled = false, status = "Ready - choose features, then enable Master Automation", settings = {farm=false, eggs=false, allEggs=false, drops=false, attack=false, feed=false, hatch=false, placeBest=false, collectIncome=false, upgradeBase=false, upgradeWeapons=false, spins=false, limited=false, chairRecovery=false, area="Auto", eggPriority="Largest", maxFight=60}, stats = {bosses=0, eggs=0, spins=0, upgrades=0, biggestEggScale=0, biggestEggName="None yet"}, connections = {}, feeding = nil, travel = nil, lastMaintenance = 0, lastSpin = 0, lastMoneyCollect = -math.huge, cooldowns = {}, log = {}, } if previous then for key,value in previous.settings do if type(value)~="boolean" and Hub.settings[key]~=nil then Hub.settings[key]=value end end Hub.stats=previous.stats end env.__MosquitoHub = Hub local function identity() setthreadidentity(8) end local function character() local c = player.Character local h = c and c:FindFirstChildOfClass("Humanoid") local r = c and c:FindFirstChild("HumanoidRootPart") if c and h and r and h.Health > 0 then return c,h,r end return nil,nil,nil end local function actor(subject) local id = typeof(subject)=="Instance" and subject:FindFirstChild("ActorId") local key = type(subject)=="string" and subject or id and id.Value return key and RS.Runtime.Actors:FindFirstChild(key) end local function fire(subject,name,...) local a=actor(subject) local f=a and a:FindFirstChild("Events") local e=f and f:FindFirstChild(name) if e and e:IsA("RemoteEvent") then e:FireServer(...) ; return true end return false end local function invoke(name,...) local a=actor(player) local f=a and a:FindFirstChild("Functions") local e=f and f:FindFirstChild(name) if e and e:IsA("RemoteFunction") then return e:InvokeServer(...) end return nil end local function data(key) local a=Utils:GetActorIface(player) return a and a:InvokeFunction("GetValue",key) end local function status(s) Hub.status=s end local function log(s) table.insert(Hub.log,1,s) if #Hub.log>6 then table.remove(Hub.log) end print("[Mosquito] "..s) end local function valid(rev) return Hub.alive and Hub.enabled and (rev==nil or rev==Hub.revision) end local function waitFor(seconds,rev) local finish=os.clock()+seconds repeat if not valid(rev) then return false end task.wait(0.1) until os.clock()>=finish return valid(rev) end local function getBase() local safe=workspace:FindFirstChild("SafeZone") local folder=safe and safe:FindFirstChild("Bases") if folder then for _,b in folder:GetChildren() do local owner=b:FindFirstChild("Player") if owner and owner:IsA("ObjectValue") and owner.Value==player then return b end end end return nil end local function collectMoney() if not valid() or not Hub.settings.collectIncome then return false end if os.clock()-Hub.lastMoneyCollect<2 then return false end if (tonumber(data("TotalIncome")) or 0)<=0 then return false end if fire(player,"CollectIncome") then Hub.lastMoneyCollect=os.clock() return true end return false end local function stopFeed() if Hub.feeding then fire("Mosquito_"..Hub.feeding,"StopFeedMosquito") end Hub.feeding=nil end local function stand() local _,h=character() if not h then return false end stopFeed() fire(player,"StopTransfuseBlood") if h.SeatPart or h.Sit then h.Sit=false h.Jump=true h:ChangeState(Enum.HumanoidStateType.Jumping) local finish=os.clock()+2 repeat h.Sit=false h.Jump=true task.wait(0.1) until not h.SeatPart or os.clock()>=finish or not Hub.alive if h.SeatPart then status("Waiting to detach from chair"); return false end end return true end local function teleport(cf) if not stand() or not Hub.alive then return false end local c,_,r=character() if not c then return false end c:PivotTo(cf) r.AssemblyLinearVelocity=Vector3.zero r.AssemblyAngularVelocity=Vector3.zero return true end local function home() local base=getBase() local spawn=base and base:FindFirstChild("SpawnPoint") if not spawn then status("Waiting for your base") ; return false end status("Returning to base") return teleport(spawn.CFrame+Vector3.new(0,3,0)) end local function bestTool() local c=player.Character local backpack=player:FindFirstChildOfClass("Backpack") local best,bestDps=nil,-1 for _,box in {backpack,c} do for _,t in box:GetChildren() do local cfg=Weapons[t.Name] if t:IsA("Tool") and cfg then local dps=cfg.Damage/math.max(cfg.CD,0.1) if dps>bestDps then best=t; bestDps=dps end end end end return best end local rarityOrder={Common=1,Uncommon=2,Rare=3,Epic=4,Legendary=5,Mythical=6,Divine=7,Secret=8,Cosmic=9,Eternal=10,Halloween=11} local function eggInfo(egg,basis) local id=egg.Name:gsub("Egg$","") local cfg=Mosquitoes[id] if not cfg then return nil end local sizeId=egg:GetAttribute("SizeId") local sizeValue=egg:FindFirstChild("SizeId") if sizeValue and sizeValue:IsA("StringValue") then sizeId=sizeValue.Value end local scale=egg:GetScale()/math.max(cfg.EggBaseScale or 1,0.01) if not sizeId or not Sizes[sizeId] then local nearest,distance=nil,math.huge for key,size in Sizes do local delta=math.abs(size.Scale-scale) if delta0.01 then return a.size>b.size end if priority=="Rarest" and a.rank~=b.rank then return a.rank>b.rank end if a.score~=b.score then return a.score>b.score end if a.size~=b.size then return a.size>b.size end if a.rank~=b.rank then return a.rank>b.rank end return a.egg:GetFullName()=finish if received then break end end if received then picked+=1 Hub.stats.eggs+=1 local info=received.info local actualSize=Sizes[info.SizeId] local scale=actualSize and actualSize.Scale or entry.size Hub.lastPickup={id=info.ItemId,sizeId=info.SizeId,uid=received.uid,expectedSizeId=entry.sizeId} if scale>(Hub.stats.biggestEggScale or 0) then Hub.stats.biggestEggScale=scale Hub.stats.biggestEggName=info.SizeId end log("Picked "..tostring(info.SizeId or sizeName).." "..tostring(info.ItemId)) if not Hub.settings.allEggs then break end else failed[egg]=true log("Pickup unavailable; trying the next egg") end end return picked end local function collectDrops(area,rev) if not Hub.settings.drops then return end for _,x in area:GetDescendants() do if not valid(rev) then return end if x:IsA("ProximityPrompt") and x.Enabled and x.Name~="CarryPrompt" then local action=string.lower(x.ActionText) if action=="collect" or action=="pick up" or action=="pickup" then local part=x:FindFirstAncestorWhichIsA("BasePart") if part then teleport(part.CFrame+Vector3.new(0,2,3)); waitFor(0.3,rev); fireproximityprompt(x) end end end end end local function placeEggs(base,rev) local floor=base:FindFirstChild("BasePart") if not floor then return end local eggs=data("Eggs") or {} local ordered={} local basis=Income:GetPercentageBaseIncome(data("Mosquitoes") or {}) for uid,info in eggs do if not info.InBase then table.insert(ordered,{uid=uid,info=info,size=Sizes[info.SizeId] and Sizes[info.SizeId].Scale or 1, income=Income:GetMaxIncome(info.ItemId,info.SizeId,basis)}) end end table.sort(ordered,function(a,b) if Hub.settings.eggPriority=="Largest" and a.size~=b.size then return a.size>b.size end if a.income~=b.income then return a.income>b.income end return a.uid=cfg.UpgradePrice then fire(player,"UpgradeBase") waitFor(0.6,rev) local new=tonumber(data("BaseLevel")) or 1 if new>level then Hub.stats.upgrades+=1 ; log("Base upgraded to level "..new) end end end if s.upgradeWeapons and valid(rev) then local owned=data("Weapons") or {} local bestId,bestDamage=nil,-1 for id in owned do if Weapons[id] and Weapons[id].Damage>bestDamage then bestId=id ; bestDamage=Weapons[id].Damage end end local buy for id,cfg in Weapons do if not owned[id] and cfg.CoinId=="Main" and cfg.CoinCount and cfg.CoinCount<=coinBalance() and cfg.Damage>bestDamage and (not buy or cfg.Damage>Weapons[buy].Damage) then buy=id end end if buy then local code=invoke("BuyWeapon",buy) if code==200 then bestId=buy; Hub.stats.upgrades+=1; log("Bought weapon: "..buy) end end if bestId then local tool=bestTool() if not tool or tool.Name~=bestId then invoke("UseWeapon",bestId) ; waitFor(0.3,rev) end end end end local function spin() if not Hub.settings.spins or os.clock()-Hub.lastSpin<9 then return end Hub.lastSpin=os.clock() local event=data("EventData") or {} local halloween=event.Halloween2026 if halloween and (halloween.SpinCount or 0)>0 then local code,_,reward=invoke("Spin") if code==200 then Hub.stats.spins+=1 log("Spin reward: "..tostring(reward and reward.ItemId or "received")) end end end local function feed(base,rev) if not Hub.settings.feed then return end local choice,best=nil,-1 for uid,m in data("Mosquitoes") or {} do if m.InBase and (m.FeedProgress or 0)<1 then local value=Income:GetMaxIncome(m.ItemId,m.SizeId,Income:GetPercentageBaseIncome(data("Mosquitoes") or {})) if value>best then choice=uid ; best=value end end end if not choice then return end local folder=base:FindFirstChild("Mosquitoes") local mosquito=folder and folder:FindFirstChild(choice) if not mosquito then return end local _,h=character() if not h or h.Health=1 then break end until os.clock()>=finish stopFeed() end end local function recover(base,rev) if not Hub.settings.chairRecovery then return end local c,h=character() if not c or h.Health>=h.MaxHealth*0.85 then return end local chair=base:FindFirstChildWhichIsA("Seat",true) if not chair then return end status("Recovering blood at base") teleport(chair.CFrame+Vector3.new(0,2,0)) chair:Sit(h) fire(player,"TransfuseBlood") local finish=os.clock()+10 repeat if not waitFor(0.3,rev) then break end local _,current=character() if not current or current.Health>=current.MaxHealth*0.95 then break end until os.clock()>=finish stand() end local function maintain(rev) if not home() or not waitFor(0.6,rev) then return end local base=getBase() if not base then return end if Hub.settings.hatch then placeEggs(base,rev) end if not valid(rev) then return end hatch(base,rev) if not valid(rev) then return end if Hub.settings.placeBest then placeBest() end collectMoney() upgrade(rev) if not valid(rev) then return end spin() feed(base,rev) recover(base,rev) Hub.lastMaintenance=os.clock() end local function damagePerHit(tool) local cfg=Weapons[tool.Name] local upgrade=DamageUpgrades[tonumber(data("DamageLevel")) or 1] return cfg.Damage*(upgrade and upgrade.Multiplier or 1) end local function averageEggSize(cfg) local total,weight=0,0 for _,row in SizePools:GetConfig(cfg.SizePoolId) or {} do local size=Sizes[row.SizeId] if size then total+=size.Scale*row.Weight; weight+=row.Weight end end return weight>0 and total/weight or 1 end local function selectLootArea() if not Hub.settings.eggs then return nil end local folder=workspace:FindFirstChild("SpawnAreas") local _,h=character() if not folder or not h then return nil end local chosen,best for name,cfg in Areas do if Hub.settings.area=="Auto" or Hub.settings.area==name then local area=folder:FindFirstChild(name) local boss=area and area:FindFirstChild(cfg.MotherPrefab) local bh=boss and boss:FindFirstChildOfClass("Humanoid") if area and (not bh or bh.Health<=0 or cfg.Damage*20 and (Hub.cooldowns[name] or 0)selected.size elseif cfg.Step~=selected.config.Step then prefer=cfg.Step>selected.config.Step else prefer=duration0 do c,h=character() if not c then status("Waiting for respawn"); return false end if h.HealthHub.settings.maxFight or now-lastDamage>12 then Hub.cooldowns[target.area.Name]=now+15 log("Boss stalled; switching targets") return false end if now-chosenAt>1 then local better=bestTool() if better and better~=tool then tool=better; h:EquipTool(tool); nextAttack=now+0.2 end chosenAt=now end local br=boss:FindFirstChild("HumanoidRootPart") local root=c:FindFirstChild("HumanoidRootPart") if not br or not root then break end if h.SeatPart and not stand() then return false end if tool.Parent~=c then h:EquipTool(tool); nextAttack=now+0.2 end local stalled=now-lastDamage local angle=stalled>7 and -0.5 or stalled>4 and 0.5 or 0 local destination=br.CFrame*CFrame.Angles(0,angle,0)*CFrame.new(0,0,3) if (root.Position-destination.Position).Magnitude>1.25 or stalled>4 then c:PivotTo(CFrame.lookAt(destination.Position,br.Position)) root.AssemblyLinearVelocity=Vector3.zero root.AssemblyAngularVelocity=Vector3.zero repositions+=1 end if now-lastStatus>0.35 then status("Fighting "..boss.Name.." | "..math.ceil(bh.Health).." HP") lastStatus=now end if now>=nextAttack and (root.Position-br.Position).Magnitude<9 then if fire(tool,"Attack") then attacks+=1 end nextAttack=now+math.max(0.1,Weapons[tool.Name].CD+0.05) end Hub.combat.attacks=attacks Hub.combat.repositions=repositions Hub.combat.elapsed=now-started if not waitFor(0.08,rev) then return false end end if not valid(rev) then return false end local defeated=bh.Health<=0 or not boss.Parent and #eggList(target.area)>0 if defeated then Hub.stats.bosses+=1 Hub.combat.completed=true log("Defeated "..boss.Name.." in "..string.format("%.1f",os.clock()-started).."s") waitFor(0.25,rev) collectEggs(target.area,rev) collectDrops(target.area,rev) return true end return false end local function fight(target,rev) local _,h=character() if not h then return false end local original=h:GetStateEnabled(Enum.HumanoidStateType.Seated) h:SetStateEnabled(Enum.HumanoidStateType.Seated,false) local ok,result=pcall(fightLoop,target,rev) if h.Parent then h:SetStateEnabled(Enum.HumanoidStateType.Seated,original) end if not ok then error(result) end return result end function Hub:SetEnabled(value) self.enabled=value self.revision+=1 stopFeed() status(value and "Resuming" or "Paused") end function Hub:Travel(destination) self:SetEnabled(false) self.travel=destination end function Hub:Destroy() if not self.alive then return end self.alive=false self.revision+=1 stopFeed() fire(player,"StopTransfuseBlood") for _,connection in self.connections do connection:Disconnect() end if self.window then pcall(function() self.window:Destroy() end) end end -- WindUI's native containers provide the two-column menu layout. WindUI:SetParent(player.PlayerGui) local theme=table.clone(WindUI:GetThemes().Dark) theme.Name="Miz0Ocean" for key,color in { Accent=Color3.fromRGB(35,211,238),Background=Color3.fromRGB(3,13,28), Dialog=Color3.fromRGB(5,27,49),ElementBackground=Color3.fromRGB(8,39,65), Button=Color3.fromRGB(6,91,133),Outline=Color3.fromRGB(35,172,229), Toggle=Color3.fromRGB(0,190,221),Slider=Color3.fromRGB(23,163,231), Icon=Color3.fromRGB(94,225,255),PanelBackground=Color3.fromRGB(5,23,43), Text=Color3.fromRGB(230,247,255), } do theme[key]=color end theme.PanelBackgroundTransparency=0 WindUI:AddTheme(theme) local window=WindUI:CreateWindow({ Title="Miz0 | Feed A Mosquito",Author="Credits: Miz0 / v1.3",Folder="Miz0Mosquito", Size=UDim2.fromOffset(1000,610),AutoScale=false, MinSize=Vector2.new(700,460),MaxSize=Vector2.new(1250,900),Position=UDim2.fromScale(0.5,0.5), SideBarWidth=180,Theme="Miz0Ocean",Transparent=false,HideSearchBar=false, ScrollBarEnabled=true,Background=WindUI:Gradient({ ["0"]={Color=Color3.fromRGB(5,72,109),Transparency=0}, ["25"]={Color=Color3.fromRGB(4,24,44),Transparency=0}, ["100"]={Color=Color3.fromRGB(2,9,23),Transparency=0}, },{Rotation=90}), }) Hub.window=window window:SetToggleKey(Enum.KeyCode.RightShift) window:OnDestroy(function() Hub:Destroy() end) local main=window:Tab({Title="Main",Icon="swords"}) local automation=window:Tab({Title="Automation",Icon="cpu"}) local events=window:Tab({Title="Halloween",Icon="flame"}) local travel=window:Tab({Title="Teleports",Icon="map-pin"}) local misc=window:Tab({Title="Settings",Icon="settings"}) local row=main:Group({}) local combat=row:Section({Title="Auto Boss",Icon="swords",Opened=true}) local loot=row:Section({Title="Eggs & Drops",Icon="egg",Opened=true}) local function toggle(container,key,title,desc) local control=container:Toggle({Title=title,Desc=desc,Value=Hub.settings[key],Callback=function(value) identity() Hub.settings[key]=value Hub.revision+=1 if key=="feed" and not value then stopFeed() end end}) Hub.toggles=Hub.toggles or {} Hub.toggles[key]=control return control end local displayedMaster=Hub.enabled local masterToggle=combat:Toggle({Title="Master Automation",Desc="Choose your features first. F6 starts or pauses them.",Value=Hub.enabled,Callback=function(v) identity() displayedMaster=v if Hub.enabled~=v then Hub:SetEnabled(v) end end}) toggle(combat,"farm","Auto Farm Bosses","Fight, collect the best egg, then return home") toggle(combat,"attack","Auto Attack","Use your equipped weapon at its normal cooldown") local areaNames={"Auto","CommonArea","UncommonArea","RareArea","EpicArea","LegendaryArea","MythicalArea","DivineArea","SecretArea","CosmicArea"} local areaChoices={} for _,name in areaNames do table.insert(areaChoices,(name:gsub("Area$",""))) end local bossDropdown=combat:Dropdown({Title="Boss Area",Values=areaChoices,MenuWidth=220,SearchBarEnabled=true,Value=Hub.settings.area:gsub("Area$",""),Callback=function(value) local key=value=="Auto" and "Auto" or value.."Area" if Hub.settings.area~=key then Hub.settings.area=key; Hub.revision+=1 end end}) local menuConstraint=bossDropdown.UIElements.MenuCanvas:FindFirstChildOfClass("UISizeConstraint") if menuConstraint then menuConstraint.MaxSize=Vector2.new(320,240) end local statusBox=combat:Button({Title="Automation Paused",Desc="Every automation starts off. Choose features below.",Icon="pause",Callback=function() end}) combat:Button({Title="Teleport to Base",Icon="house",Callback=function() Hub:Travel("Base") end}) toggle(loot,"eggs","Auto Collect Eggs","Pick by your priority, confirm pickup, and retry missed drops") local eggPriority=loot:Dropdown({Title="Egg Priority",Desc="Largest compares size multipliers, not species appearance",Values={"Largest","Best Income","Rarest"},Value=Hub.settings.eggPriority,Callback=function(value) Hub.settings.eggPriority=value end}) local eggConstraint=eggPriority.UIElements.MenuCanvas:FindFirstChildOfClass("UISizeConstraint") if eggConstraint then eggConstraint.MaxSize=Vector2.new(320,240) end toggle(loot,"allEggs","Collect All Eggs","Best first; off keeps one best egg per boss") toggle(loot,"drops","Collect Other Drops","Collect pickup prompts in the defeated boss area") toggle(loot,"limited","Prioritize Limited Eggs","Prefer Halloween eggs when they appear") toggle(loot,"hatch","Auto Place & Hatch","Place inventory eggs; hatch when the timer finishes") local statsBox=loot:Button({Title="Session Progress",Desc="Bosses, eggs, rewards and upgrades",Icon="chart-no-axes-combined",Callback=function() end}) local baseRow=automation:Group({}) local careSection=baseRow:Section({Title="Mosquito Care",Icon="heart",Opened=true}) local upgradeSection=baseRow:Section({Title="Base & Weapons",Icon="house",Opened=true}) toggle(careSection,"placeBest","Auto Place Best","Use the game's best mosquito lineup on home visits") careSection:Button({Title="Place Best Now",Desc="One click. Returns home and places your best lineup.",Icon="sparkles",Callback=function() Hub:Travel("PlaceBest") end}) toggle(careSection,"feed","Auto Feed Mosquitoes","Feed the best unfinished mosquito; keep a blood reserve") toggle(careSection,"chairRecovery","Chair Recovery","Between fights only. Sitting is blocked during combat.") toggle(upgradeSection,"collectIncome","Auto Collect Money","Collect base earnings every 2 seconds, even while boss farming") toggle(upgradeSection,"upgradeBase","Auto Upgrade Base","Buy affordable upgrades with earned coins") toggle(upgradeSection,"upgradeWeapons","Auto Buy New Slaps","Buy and equip the strongest affordable slap / weapon") local economyBox=upgradeSection:Button({Title="Your Base",Desc="Loading balance",Icon="coins",Callback=function() end}) toggle(events,"spins","Auto Spin Available Spins","Use spins already available on your account") local eventBox=events:Button({Title="Halloween Collection",Desc="Reading event progress",Callback=function() end}) events:Button({Title="Go to Halloween Wheel",Icon="flame",Callback=function() Hub:Travel("Halloween") end}) events:Button({Title="Refresh Collection",Callback=function() Hub.lastMaintenance=0 end}) travel:Button({Title="Your Base",Icon="house",Callback=function() Hub:Travel("Base") end}) travel:Button({Title="Halloween Plaza / Wheel",Icon="flame",Callback=function() Hub:Travel("Halloween") end}) for _,name in areaNames do if name~="Auto" then local destination=name travel:Button({Title=destination:gsub("Area$"," Boss"),Callback=function() Hub:Travel(destination) end}) end end misc:Slider({Title="Maximum Fight Time",Desc="Return home if a boss takes too long",Value={Min=20,Max=180,Default=60},Step=5,Callback=function(v) Hub.settings.maxFight=v end}) misc:Button({Title="Pause / Resume",Desc="F6 • RightShift opens the menu",Callback=function() Hub:SetEnabled(not Hub.enabled) end}) local logBox=misc:Button({Title="Recent Activity",Desc="Ready",Callback=function() end}) misc:Button({Title="Unload Script",Desc="F8 • stops automation and removes the menu",Callback=function() Hub:Destroy() end}) misc:Button({Title="Credits: Miz0",Desc="Miz0 | Feed A Mosquito",Callback=function() end}) window:SelectTab(1) window:SetToTheCenter() window:Open() local animated=setmetatable({},{__mode="k"}) local lastViewport=Vector2.zero local function fitWindow() local mainGui=window.UIElements.Main local screen=mainGui:FindFirstAncestorOfClass("ScreenGui") if not screen then return end local viewport=screen.AbsoluteSize if viewport.X<100 or viewport.Y<100 or viewport==lastViewport then return end lastViewport=viewport window.AutoScale=false window:SetUIScale(math.clamp(math.min((viewport.X-32)/1000,(viewport.Y-56)/610),0.4,1)) mainGui.AnchorPoint=Vector2.new(0.5,0.5) mainGui.Position=UDim2.fromScale(0.5,0.5) end fitWindow() local function animateButton(button) if not button:IsA("GuiButton") or animated[button] then return end animated[button]=true local target=button.Parent if not target or not target:IsA("GuiObject") or target.AbsoluteSize.Y>140 or target.AbsoluteSize.X>700 then target=button end local scale=target:FindFirstChildOfClass("UIScale") if not scale then scale=Instance.new("UIScale"); scale.Parent=target end local baseline=scale.Scale local function motion(value,time) if Hub.alive and scale.Parent then TweenService:Create(scale,TweenInfo.new(time,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{Scale=baseline*value}):Play() end end table.insert(Hub.connections,button.MouseEnter:Connect(function() motion(1.012,0.14) end)) table.insert(Hub.connections,button.MouseLeave:Connect(function() motion(1,0.18) end)) table.insert(Hub.connections,button.MouseButton1Down:Connect(function() motion(0.975,0.07) end)) table.insert(Hub.connections,button.MouseButton1Up:Connect(function() motion(1.012,0.13) end)) end table.insert(Hub.connections,UIS.InputBegan:Connect(function(input,processed) if processed or UIS:GetFocusedTextBox() then return end identity() if input.KeyCode==Enum.KeyCode.F6 then Hub:SetEnabled(not Hub.enabled) elseif input.KeyCode==Enum.KeyCode.F7 then Hub:Travel("Base") elseif input.KeyCode==Enum.KeyCode.F8 then Hub:Destroy() end end)) task.spawn(function() identity() while Hub.alive do local ok,err=pcall(function() fitWindow() if displayedMaster~=Hub.enabled then displayedMaster=Hub.enabled; masterToggle:Set(Hub.enabled) end local active=0 for _,value in Hub.settings do if type(value)=="boolean" and value then active+=1 end end statusBox:SetTitle(Hub.enabled and "Automation Running" or "Automation Paused") statusBox:SetDesc(Hub.status.."\n"..active.." options enabled | F6 to "..(Hub.enabled and "pause" or "start")) statsBox:SetDesc(string.format("Bosses: %d\nEggs: %d\nLargest: %s\nSpins: %d\nUpgrades: %d",Hub.stats.bosses,Hub.stats.eggs,Hub.stats.biggestEggName or "None yet",Hub.stats.spins,Hub.stats.upgrades)) economyBox:SetDesc("Coins: "..math.floor(coinBalance()).."\nUncollected: "..math.floor(tonumber(data("TotalIncome")) or 0).."\nBase level: "..tostring(data("BaseLevel") or 1)) local ed=(data("EventData") or {}).Halloween2026 or {} local pity=ed.Pity or {} local counts={PumpkinMosquito=0,BlackCatMosquito=0} for _,key in {"Eggs","Mosquitoes"} do for _,item in data(key) or {} do if counts[item.ItemId]~=nil then counts[item.ItemId]+=1 end end end eventBox:SetDesc(string.format("Available spins: %d\nNext earned spin: %ds\nPumpkin: %d owned • pity %d\nBlack Cat: %d owned • pity %d",ed.SpinCount or 0,math.max(0,math.ceil(300-(ed.TimeProgress or 0))),counts.PumpkinMosquito,pity.PumpkinMosquito or 0,counts.BlackCatMosquito,pity.BlackCatMosquito or 0)) logBox:SetDesc(table.concat(Hub.log,"\n")) local mainGui=window.UIElements and window.UIElements.Main local screen=mainGui and mainGui:FindFirstAncestorOfClass("ScreenGui") if screen then screen.DisplayOrder=10000 end for _,g in player.PlayerGui:GetChildren() do if g:IsA("ScreenGui") and g.Name:sub(1,7)=="WindUI/" then g.DisplayOrder=10010 end end if mainGui then for _,x in mainGui:GetDescendants() do if x:IsA("GuiButton") then animateButton(x) end end end end) if not ok then Hub.lastUiError=tostring(err) end task.wait(1) end end) task.spawn(function() identity() while Hub.alive do local ok,err=pcall(collectMoney) if not ok then Hub.lastMoneyError=tostring(err) end task.wait(0.5) end end) task.spawn(function() identity() while Hub.alive do local ok,err=pcall(function() if Hub.travel then local destination=Hub.travel ; Hub.travel=nil if destination=="Base" then home() elseif destination=="PlaceBest" then if home() then task.wait(0.6) if Hub.alive and placeBest() then status("Best lineup requested - automation remains paused") end end elseif destination=="Halloween" then local points=CS:GetTagged("SpinPoint") local point=points[1] if point then local cf=point:IsA("Model") and point:GetPivot() or point:IsA("BasePart") and point.CFrame if cf then teleport(cf+Vector3.new(0,3,5)) ; status("At Halloween wheel") end else status("Halloween wheel is unavailable") end else local folder=workspace:FindFirstChild("SpawnAreas") local area=folder and folder:FindFirstChild(destination) local floor=area and area:FindFirstChild("Area") if floor then teleport(floor.CFrame+Vector3.new(0,4,0)) ; status("At "..destination) end end return end if not Hub.enabled then return end local selected=false for _,key in {"farm","eggs","feed","hatch","placeBest","upgradeBase","upgradeWeapons","spins","chairRecovery"} do if Hub.settings[key] then selected=true; break end end if not selected then status(Hub.settings.collectIncome and "Auto Collect Money active" or "Choose an automation to begin") return end local rev=Hub.revision if not character() then status("Waiting for respawn") ; return end local lootArea=selectLootArea() if lootArea then local picked=collectEggs(lootArea,rev) if valid(rev) and picked>0 then collectDrops(lootArea,rev); maintain(rev) end return end if os.clock()-Hub.lastMaintenance>15 then maintain(rev) end if not valid(rev) then return end if Hub.settings.farm then if not Hub.settings.attack then status("Enable Auto Attack to farm bosses"); return end local target=selectBoss() if target then local won=fight(target,rev) local _,humanoid=character() if valid(rev) and (won or humanoid and humanoid.Health