--[[ VultureHub Universal v3.5 Works on every major executor (Delta, Wave, Solara, Xeno, Fluxus, Hydrogen, Codex, Arceus, etc.) Mobile + PC safe ]] local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local LocalPlayer = Players.LocalPlayer -- State local autoSteal = false local espEnabled = false local eggCache = {} local espObjects = {} local lastScan = 0 local beam, att0, att1 = nil, nil, nil local returnCFrame = nil local stealing = false -- Helpers local function normalize(str) return tostring(str or ""):lower() :gsub("á","a"):gsub("é","e"):gsub("í","i"):gsub("ó","o"):gsub("ú","u"):gsub("ñ","n") end local function parseValue(txt) if not txt then return 0 end txt = tostring(txt):gsub(",",""):gsub("%$","") local num, suffix = txt:match("([%d%.]+)%s*([KMBTQkmbtq]?)") num = tonumber(num) or 0 suffix = (suffix or ""):upper() if suffix == "K" then num = num * 1e3 elseif suffix == "M" then num = num * 1e6 elseif suffix == "B" then num = num * 1e9 elseif suffix == "T" then num = num * 1e12 elseif suffix == "Q" then num = num * 1e15 end return num end local function formatValue(v) if v >= 1e9 then return string.format("$%.1fB/s", v/1e9) elseif v >= 1e6 then return string.format("$%.1fM/s", v/1e6) elseif v >= 1e3 then return string.format("$%.0fK/s", v/1e3) else return "$"..math.floor(v).."/s" end end local function rarityColor(name) local n = normalize(name) if n:find("divino") or n:find("divine") then return Color3.fromRGB(255, 215, 0) elseif n:find("mitico") or n:find("mítico") or n:find("mythic") then return Color3.fromRGB(255, 60, 60) elseif n:find("eterno") or n:find("eternal") then return Color3.fromRGB(255, 105, 180) elseif n:find("legendario") or n:find("legendary") then return Color3.fromRGB(255, 140, 0) elseif n:find("epico") or n:find("épico") or n:find("epic") then return Color3.fromRGB(170, 80, 255) else return Color3.fromRGB(0, 200, 255) end end local function getRoot() local char = LocalPlayer.Character return char and char:FindFirstChild("HumanoidRootPart") end local function getHumanoid() local char = LocalPlayer.Character return char and char:FindFirstChildOfClass("Humanoid") end local function zeroVelocity(part) if not part then return end pcall(function() part.AssemblyLinearVelocity = Vector3.zero part.AssemblyAngularVelocity = Vector3.zero end) end -- Safe fire functions (work even if executor doesn't have them) local function safeFirePrompt(prompt) if typeof(fireproximityprompt) == "function" then pcall(fireproximityprompt, prompt) else pcall(function() prompt.HoldDuration = 0 prompt.MaxActivationDistance = 200 prompt.RequiresLineOfSight = false prompt:InputHoldBegin() task.wait(0.08) prompt:InputHoldEnd() end) end end local function safeFireClick(detector) if typeof(fireclickdetector) == "function" then pcall(fireclickdetector, detector) end end -- Find own plot (Ride a Pet / Steal An Egg style) local function findBaseMiddle() local plots = workspace:FindFirstChild("Plots") if plots then for _, plot in ipairs(plots:GetChildren()) do local data = plot:FindFirstChild("Data") local owner = data and data:FindFirstChild("Owner") if owner then local val = owner.Value if val == LocalPlayer or tostring(val) == tostring(LocalPlayer.UserId) or tostring(val) == LocalPlayer.Name then local base = plot:FindFirstChild("Baseplate") or plot:FindFirstChildWhichIsA("BasePart") if base then return CFrame.new(base.Position + Vector3.new(0, 5, 0)) end local ok, cf = pcall(function() return CFrame.new(plot:GetPivot().Position + Vector3.new(0, 5, 0)) end) if ok and cf then return cf end end end if normalize(plot.Name) == normalize(LocalPlayer.Name) or normalize(plot.Name) == normalize(LocalPlayer.DisplayName) then local base = plot:FindFirstChild("Baseplate") or plot:FindFirstChildWhichIsA("BasePart") if base then return CFrame.new(base.Position + Vector3.new(0, 5, 0)) end end end end local direct = workspace:FindFirstChild(LocalPlayer.Name) or workspace:FindFirstChild(LocalPlayer.DisplayName) if direct then local part = direct:FindFirstChildWhichIsA("BasePart") or (direct:IsA("BasePart") and direct) if part then return CFrame.new(part.Position + Vector3.new(0, 5, 0)) end end for _, folderName in ipairs({"Plot", "Bases", "Base", "Players", "PlayerPlots", "Ranches"}) do local f = workspace:FindFirstChild(folderName) if f then for _, child in ipairs(f:GetChildren()) do if normalize(child.Name) == normalize(LocalPlayer.Name) or normalize(child.Name) == normalize(LocalPlayer.DisplayName) then local part = child:FindFirstChildWhichIsA("BasePart") if part then return CFrame.new(part.Position + Vector3.new(0, 5, 0)) end end end end end return nil end local function scanEggs() local results, seen = {}, {} for _, obj in ipairs(workspace:GetDescendants()) do if obj:IsA("ProximityPrompt") or obj:IsA("ClickDetector") then local egg, parent = nil, obj.Parent while parent and parent ~= workspace do if (parent:IsA("Model") or parent:IsA("BasePart")) and (normalize(parent.Name):find("huevo") or normalize(parent.Name):find("egg")) then egg = parent end parent = parent.Parent end if egg and not seen[egg] then local name = normalize(egg.Name) if not (name:find("tracker") or name:find("canasta") or name:find("tool") or name:find("guia") or name:find("guide")) then local owned = false local check = egg while check and check ~= workspace do local cn = normalize(check.Name) if cn:find("rancho") or cn:find("ranch") or cn:find("plot") or cn:find("farm") or cn:find("base") then owned = true break end for _, plr in ipairs(Players:GetPlayers()) do if cn == normalize(plr.Name) or cn == normalize(plr.DisplayName) then owned = true break end end if owned then break end check = check.Parent end if not owned then seen[egg] = true local value = 0 for _, desc in ipairs(egg:GetDescendants()) do if desc:IsA("TextLabel") or desc:IsA("TextBox") then local v = parseValue(desc.Text) if v > value then value = v end end end table.insert(results, {model = egg, prompt = obj, value = value}) end end end end end table.sort(results, function(a, b) return a.value > b.value end) return results end local function getTargetPart(entry) if not entry or not entry.prompt then return end local part = entry.prompt.Parent if part and part:IsA("Attachment") then part = part.Parent end if not (part and part:IsA("BasePart")) then part = entry.model and (entry.model:IsA("BasePart") and entry.model or entry.model:FindFirstChildWhichIsA("BasePart", true)) end return part end local function clearBeam() if beam then pcall(function() beam:Destroy() end) beam = nil end if att0 then pcall(function() att0:Destroy() end) att0 = nil end if att1 then pcall(function() att1:Destroy() end) att1 = nil end end local function makeBeam(target) clearBeam() local root = getRoot() if not root or not target or not target.Parent then return end att0 = Instance.new("Attachment") att0.Parent = root att1 = Instance.new("Attachment") att1.Parent = target beam = Instance.new("Beam") beam.Attachment0 = att0 beam.Attachment1 = att1 beam.Color = ColorSequence.new(Color3.fromRGB(0, 200, 255)) beam.Width0 = 0.12 beam.Width1 = 0.12 beam.FaceCamera = true beam.LightEmission = 0.5 beam.Parent = root end local function teleport(cf) local root = getRoot() local hum = getHumanoid() if not root or not hum or hum.Health <= 0 then return false end root.CFrame = cf zeroVelocity(root) return true end local function stealEgg(entry) if stealing or not entry or not entry.model or not entry.model.Parent then return end local root = getRoot() if not root then return end local part = getTargetPart(entry) if not part or not part.Parent then return end stealing = true if not teleport(CFrame.new(part.Position + Vector3.new(0, 3.2, 0))) then stealing = false return end task.wait(0.06) local prompt = entry.prompt if prompt and prompt.Parent then for i = 1, 8 do if prompt:IsA("ProximityPrompt") then safeFirePrompt(prompt) elseif prompt:IsA("ClickDetector") then safeFireClick(prompt) end task.wait(0.03) end end task.wait(0.08) local baseCF = findBaseMiddle() if baseCF then teleport(baseCF) elseif returnCFrame then teleport(returnCFrame) end stealing = false end -- UI Parent (works on every executor) local function getUIParent() local success, result = pcall(function() if typeof(gethui) == "function" then return gethui() end return nil end) if success and result then return result end success, result = pcall(function() return game:GetService("CoreGui") end) if success and result then return result end return LocalPlayer:WaitForChild("PlayerGui", 5) or LocalPlayer.PlayerGui end -- Clean old UI pcall(function() local parent = getUIParent() for _, child in ipairs(parent:GetChildren()) do if child.Name == "VultureHub" then child:Destroy() end end end) local gui = Instance.new("ScreenGui") gui.Name = "VultureHub" gui.ResetOnSpawn = false gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling gui.Parent = getUIParent() local main = Instance.new("Frame") main.Name = "Main" main.Size = UDim2.new(0, 260, 0, 300) main.Position = UDim2.new(0, 20, 0.5, -150) main.BackgroundColor3 = Color3.fromRGB(18, 18, 24) main.BorderSizePixel = 0 main.Active = true main.Parent = gui Instance.new("UICorner", main).CornerRadius = UDim.new(0, 14) local stroke = Instance.new("UIStroke") stroke.Color = Color3.fromRGB(40, 40, 55) stroke.Thickness = 1.5 stroke.Parent = main local header = Instance.new("Frame") header.Size = UDim2.new(1, 0, 0, 48) header.BackgroundColor3 = Color3.fromRGB(24, 24, 32) header.BorderSizePixel = 0 header.Parent = main Instance.new("UICorner", header).CornerRadius = UDim.new(0, 14) local headerFix = Instance.new("Frame") headerFix.Size = UDim2.new(1, 0, 0, 18) headerFix.Position = UDim2.new(0, 0, 1, -18) headerFix.BackgroundColor3 = Color3.fromRGB(24, 24, 32) headerFix.BorderSizePixel = 0 headerFix.Parent = header local title = Instance.new("TextLabel") title.Size = UDim2.new(1, -70, 0, 20) title.Position = UDim2.new(0, 16, 0, 6) title.BackgroundTransparency = 1 title.Text = "Vulture Hub" title.TextColor3 = Color3.fromRGB(240, 240, 245) title.Font = Enum.Font.GothamBold title.TextSize = 16 title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = header local subtitle = Instance.new("TextLabel") subtitle.Size = UDim2.new(1, -70, 0, 14) subtitle.Position = UDim2.new(0, 16, 0, 26) subtitle.BackgroundTransparency = 1 subtitle.Text = "Universal • All Devices" subtitle.TextColor3 = Color3.fromRGB(120, 130, 150) subtitle.Font = Enum.Font.Gotham subtitle.TextSize = 11 subtitle.TextXAlignment = Enum.TextXAlignment.Left subtitle.Parent = header local minimizeBtn = Instance.new("TextButton") minimizeBtn.Size = UDim2.new(0, 28, 0, 28) minimizeBtn.Position = UDim2.new(1, -66, 0.5, -14) minimizeBtn.BackgroundColor3 = Color3.fromRGB(35, 35, 48) minimizeBtn.Text = "–" minimizeBtn.TextColor3 = Color3.fromRGB(200, 200, 210) minimizeBtn.Font = Enum.Font.GothamBold minimizeBtn.TextSize = 18 minimizeBtn.Parent = header Instance.new("UICorner", minimizeBtn).CornerRadius = UDim.new(0, 8) local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0, 28, 0, 28) closeBtn.Position = UDim2.new(1, -32, 0.5, -14) closeBtn.BackgroundColor3 = Color3.fromRGB(180, 50, 60) closeBtn.Text = "×" closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255) closeBtn.Font = Enum.Font.GothamBold closeBtn.TextSize = 18 closeBtn.Parent = header Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(0, 8) local content = Instance.new("Frame") content.Size = UDim2.new(1, -24, 1, -64) content.Position = UDim2.new(0, 12, 0, 56) content.BackgroundTransparency = 1 content.Parent = main local statusCard = Instance.new("Frame") statusCard.Size = UDim2.new(1, 0, 0, 72) statusCard.BackgroundColor3 = Color3.fromRGB(28, 28, 38) statusCard.BorderSizePixel = 0 statusCard.Parent = content Instance.new("UICorner", statusCard).CornerRadius = UDim.new(0, 12) local statusIcon = Instance.new("Frame") statusIcon.Size = UDim2.new(0, 44, 0, 44) statusIcon.Position = UDim2.new(0, 12, 0.5, -22) statusIcon.BackgroundColor3 = Color3.fromRGB(255, 180, 40) statusIcon.BorderSizePixel = 0 statusIcon.Parent = statusCard Instance.new("UICorner", statusIcon).CornerRadius = UDim.new(0, 10) local statusEmoji = Instance.new("TextLabel") statusEmoji.Size = UDim2.new(1, 0, 1, 0) statusEmoji.BackgroundTransparency = 1 statusEmoji.Text = "🥚" statusEmoji.TextSize = 22 statusEmoji.Parent = statusIcon local eggNameLabel = Instance.new("TextLabel") eggNameLabel.Size = UDim2.new(1, -70, 0, 20) eggNameLabel.Position = UDim2.new(0, 66, 0, 14) eggNameLabel.BackgroundTransparency = 1 eggNameLabel.Text = "No egg detected" eggNameLabel.TextColor3 = Color3.fromRGB(230, 230, 240) eggNameLabel.Font = Enum.Font.GothamBold eggNameLabel.TextSize = 13 eggNameLabel.TextXAlignment = Enum.TextXAlignment.Left eggNameLabel.TextTruncate = Enum.TextTruncate.AtEnd eggNameLabel.Parent = statusCard local eggValueLabel = Instance.new("TextLabel") eggValueLabel.Size = UDim2.new(1, -70, 0, 18) eggValueLabel.Position = UDim2.new(0, 66, 0, 36) eggValueLabel.BackgroundTransparency = 1 eggValueLabel.Text = "$0/s" eggValueLabel.TextColor3 = Color3.fromRGB(80, 220, 140) eggValueLabel.Font = Enum.Font.GothamBold eggValueLabel.TextSize = 13 eggValueLabel.TextXAlignment = Enum.TextXAlignment.Left eggValueLabel.Parent = statusCard local function createToggle(y, iconText, titleText, descText) local card = Instance.new("Frame") card.Size = UDim2.new(1, 0, 0, 52) card.Position = UDim2.new(0, 0, 0, y) card.BackgroundColor3 = Color3.fromRGB(28, 28, 38) card.BorderSizePixel = 0 card.Parent = content Instance.new("UICorner", card).CornerRadius = UDim.new(0, 12) local icon = Instance.new("Frame") icon.Size = UDim2.new(0, 34, 0, 34) icon.Position = UDim2.new(0, 10, 0.5, -17) icon.BackgroundColor3 = Color3.fromRGB(40, 40, 55) icon.BorderSizePixel = 0 icon.Parent = card Instance.new("UICorner", icon).CornerRadius = UDim.new(0, 9) local iconLabel = Instance.new("TextLabel") iconLabel.Size = UDim2.new(1, 0, 1, 0) iconLabel.BackgroundTransparency = 1 iconLabel.Text = iconText iconLabel.TextSize = 15 iconLabel.Parent = icon local titleL = Instance.new("TextLabel") titleL.Size = UDim2.new(1, -100, 0, 17) titleL.Position = UDim2.new(0, 54, 0, 8) titleL.BackgroundTransparency = 1 titleL.Text = titleText titleL.TextColor3 = Color3.fromRGB(240, 240, 245) titleL.Font = Enum.Font.GothamBold titleL.TextSize = 13 titleL.TextXAlignment = Enum.TextXAlignment.Left titleL.Parent = card local descL = Instance.new("TextLabel") descL.Size = UDim2.new(1, -100, 0, 15) descL.Position = UDim2.new(0, 54, 0, 27) descL.BackgroundTransparency = 1 descL.Text = descText descL.TextColor3 = Color3.fromRGB(120, 130, 150) descL.Font = Enum.Font.Gotham descL.TextSize = 11 descL.TextXAlignment = Enum.TextXAlignment.Left descL.Parent = card local toggle = Instance.new("TextButton") toggle.Size = UDim2.new(0, 42, 0, 22) toggle.Position = UDim2.new(1, -54, 0.5, -11) toggle.BackgroundColor3 = Color3.fromRGB(45, 45, 60) toggle.Text = "" toggle.Parent = card Instance.new("UICorner", toggle).CornerRadius = UDim.new(1, 0) local knob = Instance.new("Frame") knob.Size = UDim2.new(0, 16, 0, 16) knob.Position = UDim2.new(0, 3, 0.5, -8) knob.BackgroundColor3 = Color3.fromRGB(180, 180, 190) knob.BorderSizePixel = 0 knob.Parent = toggle Instance.new("UICorner", knob).CornerRadius = UDim.new(1, 0) return toggle, knob, icon end local stealToggle, stealKnob, stealIcon = createToggle(84, "⚡", "Auto Steal", "TP grab → your plot") local espToggle, espKnob, espIcon = createToggle(144, "👁", "Egg ESP", "Highlight best targets") local footer = Instance.new("TextLabel") footer.Size = UDim2.new(1, 0, 0, 18) footer.Position = UDim2.new(0, 0, 1, -24) footer.BackgroundTransparency = 1 footer.Text = "Vulture Hub • Universal" footer.TextColor3 = Color3.fromRGB(90, 100, 120) footer.Font = Enum.Font.Gotham footer.TextSize = 11 footer.Parent = content local function setToggle(toggle, knob, icon, state, activeColor) if state then TweenService:Create(toggle, TweenInfo.new(0.12), {BackgroundColor3 = activeColor}):Play() TweenService:Create(knob, TweenInfo.new(0.12), { Position = UDim2.new(1, -19, 0.5, -8), BackgroundColor3 = Color3.fromRGB(255, 255, 255) }):Play() TweenService:Create(icon, TweenInfo.new(0.12), {BackgroundColor3 = activeColor}):Play() else TweenService:Create(toggle, TweenInfo.new(0.12), {BackgroundColor3 = Color3.fromRGB(45, 45, 60)}):Play() TweenService:Create(knob, TweenInfo.new(0.12), { Position = UDim2.new(0, 3, 0.5, -8), BackgroundColor3 = Color3.fromRGB(180, 180, 190) }):Play() TweenService:Create(icon, TweenInfo.new(0.12), {BackgroundColor3 = Color3.fromRGB(40, 40, 55)}):Play() end end local function clearESP() if espObjects.highlight then pcall(function() espObjects.highlight:Destroy() end) end if espObjects.billboard then pcall(function() espObjects.billboard:Destroy() end) end espObjects = {} end local function createESP(entry) clearESP() local part = getTargetPart(entry) if not part then return end local col = rarityColor(entry.model.Name) local hl = Instance.new("Highlight") hl.Adornee = entry.model hl.FillColor = col hl.FillTransparency = 0.55 hl.OutlineColor = Color3.new(1, 1, 1) hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop hl.Parent = gui local bill = Instance.new("BillboardGui") bill.Adornee = part bill.Size = UDim2.new(0, 140, 0, 42) bill.StudsOffset = Vector3.new(0, 3.4, 0) bill.AlwaysOnTop = true bill.Parent = gui local bg = Instance.new("Frame") bg.Size = UDim2.new(1, 0, 1, 0) bg.BackgroundColor3 = Color3.fromRGB(18, 18, 24) bg.BackgroundTransparency = 0.15 bg.BorderSizePixel = 0 bg.Parent = bill Instance.new("UICorner", bg).CornerRadius = UDim.new(0, 8) local stroke = Instance.new("UIStroke") stroke.Color = col stroke.Thickness = 1.4 stroke.Parent = bg local nameL = Instance.new("TextLabel") nameL.Size = UDim2.new(1, -12, 0, 18) nameL.Position = UDim2.new(0, 6, 0, 4) nameL.BackgroundTransparency = 1 nameL.Text = entry.model.Name nameL.TextColor3 = col nameL.Font = Enum.Font.GothamBold nameL.TextSize = 12 nameL.TextXAlignment = Enum.TextXAlignment.Left nameL.Parent = bg local valL = Instance.new("TextLabel") valL.Size = UDim2.new(1, -12, 0, 16) valL.Position = UDim2.new(0, 6, 0, 22) valL.BackgroundTransparency = 1 valL.Text = formatValue(entry.value) valL.TextColor3 = Color3.fromRGB(80, 220, 140) valL.Font = Enum.Font.GothamBold valL.TextSize = 11 valL.TextXAlignment = Enum.TextXAlignment.Left valL.Parent = bg espObjects = {model = entry.model, highlight = hl, billboard = bill} end -- Connections stealToggle.MouseButton1Click:Connect(function() autoSteal = not autoSteal setToggle(stealToggle, stealKnob, stealIcon, autoSteal, Color3.fromRGB(0, 170, 255)) if autoSteal then local root = getRoot() if root then returnCFrame = root.CFrame end else stealing = false end end) espToggle.MouseButton1Click:Connect(function() espEnabled = not espEnabled setToggle(espToggle, espKnob, espIcon, espEnabled, Color3.fromRGB(120, 80, 255)) if not espEnabled then clearESP() end end) local minimized = false minimizeBtn.MouseButton1Click:Connect(function() minimized = not minimized content.Visible = not minimized main.Size = minimized and UDim2.new(0, 260, 0, 48) or UDim2.new(0, 260, 0, 300) minimizeBtn.Text = minimized and "+" or "–" end) closeBtn.MouseButton1Click:Connect(function() autoSteal, espEnabled, stealing = false, false, false clearBeam() clearESP() gui:Destroy() end) -- Drag (mouse + touch) local dragging, dragStart, startPos header.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = main.Position end end) UIS.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - dragStart main.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) UIS.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end) LocalPlayer.CharacterAdded:Connect(function() task.wait(0.5) if autoSteal then local root = getRoot() if root then returnCFrame = root.CFrame end end stealing = false end) -- Main loop task.spawn(function() while gui and gui.Parent do task.wait(0.4) if not (autoSteal or espEnabled) then clearBeam() else if os.clock() - lastScan > 1.8 then eggCache = scanEggs() lastScan = os.clock() end local best = eggCache[1] if best and best.model and best.model.Parent then local col = rarityColor(best.model.Name) eggNameLabel.Text = best.model.Name eggNameLabel.TextColor3 = col eggValueLabel.Text = formatValue(best.value) statusIcon.BackgroundColor3 = col local part = getTargetPart(best) if part then makeBeam(part) end if espEnabled and (not espObjects.model or espObjects.model ~= best.model) then createESP(best) end if autoSteal and not stealing then task.spawn(function() stealEgg(best) end) task.wait(0.6) end else eggNameLabel.Text = "No egg detected" eggNameLabel.TextColor3 = Color3.fromRGB(160, 160, 170) eggValueLabel.Text = "$0/s" statusIcon.BackgroundColor3 = Color3.fromRGB(60, 60, 75) clearBeam() if espEnabled then clearESP() end end end end end) print("[VultureHub Universal] Loaded successfully")