-// RIDE A PET - OPTIMIZED EGG ESP --// For your own Roblox Studio test game --// Put in StarterPlayer > StarterPlayerScripts local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Player = Players.LocalPlayer --================================================== -- EGG DATABASE --================================================== local Eggs = { ["White Egg"] = {luck = 1, rarity = "Common"}, ["Brown Egg"] = {luck = 5, rarity = "Common"}, ["Cracked Egg"] = {luck = 30, rarity = "Rare"}, ["Easter Egg"] = {luck = 50, rarity = "Rare"}, ["Stone Egg"] = {luck = 100, rarity = "Rare"}, ["Leaf Egg"] = {luck = 200, rarity = "Rare"}, ["Mushroom Egg"] = {luck = 500, rarity = "Epic"}, ["Flower Egg"] = {luck = 750, rarity = "Epic"}, ["Slime Egg"] = {luck = 1000, rarity = "Epic"}, ["Ice Egg"] = {luck = 3000, rarity = "Epic"}, ["Glass Egg"] = {luck = 10000, rarity = "Legendary"}, ["Golden Egg"] = {luck = 30000, rarity = "Legendary"}, ["Crystal Egg"] = {luck = 150000, rarity = "Mythic"}, ["Skull Egg"] = {luck = 250000, rarity = "Mythic"}, ["Dominus Egg"] = {luck = 700000, rarity = "Mythic"}, ["Flaming Egg"] = {luck = 1000000, rarity = "Mythic"}, ["Sinister Egg"] = {luck = 3000000, rarity = "Mythic"}, ["Soul Egg"] = {luck = 7000000, rarity = "Mythic"}, ["Aurora Egg"] = {luck = 300000000, rarity = "Divine"}, ["Galaxy Egg"] = {luck = 1500000000, rarity = "Divine"}, ["Black Hole Egg"] = {luck = 100000000000, rarity = "Etheral"}, ["Cherub Egg"] = {luck = 1000000000000, rarity = "Etheral"}, } local RarityColors = { Common = Color3.fromRGB(220,220,220), Rare = Color3.fromRGB(70,150,255), Epic = Color3.fromRGB(180,70,255), Legendary = Color3.fromRGB(255,190,40), Mythic = Color3.fromRGB(255,70,70), Divine = Color3.fromRGB(255,120,255), Etheral = Color3.fromRGB(70,255,255), } --================================================== -- SETTINGS --================================================== local ESPEnabled = true local RadarEnabled = true local FlyEnabled = false local WalkSpeed = 16 local FlySpeed = 60 -- Egg -> ESP information local EggESP = {} --================================================== -- HELPERS --================================================== local function GetCharacter() return Player.Character end local function GetRoot() local Character = GetCharacter() if not Character then return nil end return Character:FindFirstChild("HumanoidRootPart") end local function GetHumanoid() local Character = GetCharacter() if not Character then return nil end return Character:FindFirstChildOfClass("Humanoid") end local function FormatNumber(Number) if Number >= 1000000000000 then return string.format("%.1fT", Number / 1000000000000) elseif Number >= 1000000000 then return string.format("%.1fB", Number / 1000000000) elseif Number >= 1000000 then return string.format("%.1fM", Number / 1000000) elseif Number >= 1000 then return string.format("%.1fK", Number / 1000) end return tostring(Number) end local function GetObjectPosition(Object) if Object:IsA("BasePart") then return Object.Position end if Object:IsA("Model") then return Object:GetPivot().Position end return nil end --================================================== -- IMPORTANT: -- ONLY EXACT EGG OBJECTS ARE ACCEPTED -- NO PARENT SEARCH -- NO PLAYER SEARCH --================================================== local function IsEgg(Object) if not (Object:IsA("Model") or Object:IsA("BasePart")) then return false end return Eggs[Object.Name] ~= nil end --================================================== -- FIND ADORNEE --================================================== local function GetAdornee(Egg) if Egg:IsA("BasePart") then return Egg end if Egg:IsA("Model") then return Egg.PrimaryPart or Egg:FindFirstChildWhichIsA("BasePart", true) end return nil end --================================================== -- CREATE SMALL ESP --================================================== local function CreateESP(Egg) if EggESP[Egg] then return end if not IsEgg(Egg) then return end local Adornee = GetAdornee(Egg) if not Adornee then return end local Data = Eggs[Egg.Name] local Billboard = Instance.new("BillboardGui") Billboard.Name = "EggESP" Billboard.Adornee = Adornee -- MUCH SMALLER Billboard.Size = UDim2.fromOffset(125,38) Billboard.StudsOffset = Vector3.new(0,2.2,0) Billboard.AlwaysOnTop = true Billboard.MaxDistance = 600 Billboard.Enabled = ESPEnabled Billboard.Parent = Egg local Frame = Instance.new("Frame") Frame.Size = UDim2.fromScale(1,1) Frame.BackgroundColor3 = Color3.fromRGB(15,15,20) Frame.BackgroundTransparency = 0.3 Frame.BorderSizePixel = 0 Frame.Parent = Billboard local Corner = Instance.new("UICorner") Corner.CornerRadius = UDim.new(0,5) Corner.Parent = Frame local Stroke = Instance.new("UIStroke") Stroke.Color = RarityColors[Data.rarity] Stroke.Thickness = 1 Stroke.Parent = Frame local Text = Instance.new("TextLabel") Text.Size = UDim2.new(1,-4,1,-2) Text.Position = UDim2.fromOffset(2,1) Text.BackgroundTransparency = 1 Text.TextColor3 = Color3.fromRGB(255,255,255) Text.TextSize = 9 Text.Font = Enum.Font.GothamBold Text.TextWrapped = true Text.Parent = Frame EggESP[Egg] = { gui = Billboard, text = Text, } end --================================================== -- REMOVE ESP --================================================== local function RemoveESP(Egg) local Info = EggESP[Egg] if Info then if Info.gui then Info.gui:Destroy() end EggESP[Egg] = nil end end --================================================== -- SCAN ONLY FOR ACTUAL EGG OBJECTS --================================================== local function ScanEggs() local Found = {} for _,Object in ipairs(workspace:GetDescendants()) do -- Exact name + Model/BasePart only if IsEgg(Object) then Found[Object] = true if not EggESP[Object] then CreateESP(Object) end end end -- Remove ESP for eggs that disappeared for Egg,_ in pairs(EggESP) do if not Found[Egg] or not Egg.Parent then RemoveESP(Egg) end end end -- Initial scan ScanEggs() -- New objects workspace.DescendantAdded:Connect(function(Object) if IsEgg(Object) then CreateESP(Object) end end) workspace.DescendantRemoving:Connect(function(Object) if EggESP[Object] then RemoveESP(Object) end end) --================================================== -- UI --================================================== local GUI = Instance.new("ScreenGui") GUI.Name = "RideAPetOptimizedUI" GUI.ResetOnSpawn = false GUI.Parent = Player:WaitForChild("PlayerGui") local Main = Instance.new("Frame") Main.Size = UDim2.fromOffset(290,330) Main.Position = UDim2.new(0,25,0.5,-165) Main.BackgroundColor3 = Color3.fromRGB(18,18,23) Main.BorderSizePixel = 0 Main.Parent = GUI local MainCorner = Instance.new("UICorner") MainCorner.CornerRadius = UDim.new(0,12) MainCorner.Parent = Main local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1,-80,0,42) Title.Position = UDim2.fromOffset(12,0) Title.BackgroundTransparency = 1 Title.Text = "🄚 RIDE A PET" Title.TextColor3 = Color3.new(1,1,1) Title.TextSize = 16 Title.Font = Enum.Font.GothamBold Title.TextXAlignment = Enum.TextXAlignment.Left Title.Parent = Main local Minimize = Instance.new("TextButton") Minimize.Size = UDim2.fromOffset(30,27) Minimize.Position = UDim2.new(1,-68,0,7) Minimize.BackgroundColor3 = Color3.fromRGB(40,40,50) Minimize.Text = "āˆ’" Minimize.TextColor3 = Color3.new(1,1,1) Minimize.TextSize = 18 Minimize.Parent = Main local Close = Instance.new("TextButton") Close.Size = UDim2.fromOffset(30,27) Close.Position = UDim2.new(1,-34,0,7) Close.BackgroundColor3 = Color3.fromRGB(60,35,40) Close.Text = "Ɨ" Close.TextColor3 = Color3.new(1,1,1) Close.TextSize = 18 Close.Parent = Main local Content = Instance.new("Frame") Content.Position = UDim2.fromOffset(0,42) Content.Size = UDim2.new(1,0,1,-42) Content.BackgroundTransparency = 1 Content.Parent = Main local function Button(Text, Y) local B = Instance.new("TextButton") B.Position = UDim2.fromOffset(15,Y) B.Size = UDim2.new(1,-30,0,35) B.BackgroundColor3 = Color3.fromRGB(34,34,43) B.Text = Text B.TextColor3 = Color3.new(1,1,1) B.TextSize = 13 B.Font = Enum.Font.GothamSemibold B.Parent = Content Instance.new("UICorner",B).CornerRadius = UDim.new(0,8) return B end local ESPButton = Button("ESP: ON",5) local RadarButton = Button("RADAR: ON",45) local FlyButton = Button("FLY: OFF",85) local SpeedBox = Instance.new("TextBox") SpeedBox.Position = UDim2.fromOffset(15,125) SpeedBox.Size = UDim2.new(.48,-20,0,35) SpeedBox.BackgroundColor3 = Color3.fromRGB(34,34,43) SpeedBox.TextColor3 = Color3.new(1,1,1) SpeedBox.Text = "16" SpeedBox.PlaceholderText = "Walk Speed" SpeedBox.TextSize = 13 SpeedBox.Parent = Content local FlyBox = Instance.new("TextBox") FlyBox.Position = UDim2.new(.52,5,0,125) FlyBox.Size = UDim2.new(.48,-20,0,35) FlyBox.BackgroundColor3 = Color3.fromRGB(34,34,43) FlyBox.TextColor3 = Color3.new(1,1,1) FlyBox.Text = "60" FlyBox.PlaceholderText = "Fly Speed" FlyBox.TextSize = 13 FlyBox.Parent = Content local Status = Instance.new("TextLabel") Status.Position = UDim2.fromOffset(15,170) Status.Size = UDim2.new(1,-30,0,25) Status.BackgroundTransparency = 1 Status.Text = "šŸ”Ž Scanning..." Status.TextColor3 = Color3.fromRGB(160,160,170) Status.TextSize = 12 Status.Parent = Content local Nearest = Instance.new("TextLabel") Nearest.Position = UDim2.fromOffset(15,200) Nearest.Size = UDim2.new(1,-30,0,80) Nearest.BackgroundColor3 = Color3.fromRGB(27,27,35) Nearest.TextColor3 = Color3.new(1,1,1) Nearest.TextSize = 12 Nearest.Font = Enum.Font.GothamSemibold Nearest.TextWrapped = true Nearest.TextXAlignment = Enum.TextXAlignment.Left Nearest.TextYAlignment = Enum.TextYAlignment.Center Nearest.Text = "🧭 NEAREST EGG\nSearching..." Nearest.Parent = Content Instance.new("UICorner",Nearest).CornerRadius = UDim.new(0,8) --================================================== -- MINIMIZE / CLOSE --================================================== local Reopen = Instance.new("TextButton") Reopen.Size = UDim2.fromOffset(48,48) Reopen.Position = UDim2.new(0,20,.5,-24) Reopen.BackgroundColor3 = Color3.fromRGB(25,25,32) Reopen.Text = "🄚" Reopen.TextSize = 22 Reopen.Visible = false Reopen.Parent = GUI Instance.new("UICorner",Reopen).CornerRadius = UDim.new(1,0) local Minimized = false Minimize.MouseButton1Click:Connect(function() Minimized = not Minimized Content.Visible = not Minimized if Minimized then Main.Size = UDim2.fromOffset(290,48) Minimize.Text = "+" else Main.Size = UDim2.fromOffset(290,330) Minimize.Text = "āˆ’" end end) Close.MouseButton1Click:Connect(function() Main.Visible = false Reopen.Visible = true end) Reopen.MouseButton1Click:Connect(function() Main.Visible = true Reopen.Visible = false end) --================================================== -- DRAG --================================================== local Dragging = false local DragStart local StartPos Title.InputBegan:Connect(function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 then Dragging = true DragStart = Input.Position StartPos = Main.Position end end) UserInputService.InputChanged:Connect(function(Input) if Dragging and Input.UserInputType == Enum.UserInputType.MouseMovement 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) UserInputService.InputEnded:Connect(function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 then Dragging = false end end) --================================================== -- ESP TOGGLE --================================================== ESPButton.MouseButton1Click:Connect(function() ESPEnabled = not ESPEnabled ESPButton.Text = "ESP: "..(ESPEnabled and "ON" or "OFF") for _,Info in pairs(EggESP) do Info.gui.Enabled = ESPEnabled end end) --================================================== -- RADAR TOGGLE --================================================== RadarButton.MouseButton1Click:Connect(function() RadarEnabled = not RadarEnabled RadarButton.Text = "RADAR: "..(RadarEnabled and "ON" or "OFF") end) --================================================== -- SPEED --================================================== local function ApplySpeed() local Humanoid = GetHumanoid() if Humanoid then Humanoid.WalkSpeed = WalkSpeed end end SpeedBox.FocusLost:Connect(function() local Value = tonumber(SpeedBox.Text) if Value then WalkSpeed = math.clamp(Value,1,500) SpeedBox.Text = tostring(WalkSpeed) else SpeedBox.Text = tostring(WalkSpeed) end ApplySpeed() end) --================================================== -- FLY --================================================== local FlyVelocity local function StartFly() local Root = GetRoot() if not Root then return end if FlyVelocity then FlyVelocity:Destroy() end FlyVelocity = Instance.new("BodyVelocity") FlyVelocity.MaxForce = Vector3.new(100000,100000,100000) FlyVelocity.Velocity = Vector3.zero FlyVelocity.Parent = Root end local function StopFly() if FlyVelocity then FlyVelocity:Destroy() FlyVelocity = nil end end FlyBox.FocusLost:Connect(function() local Value = tonumber(FlyBox.Text) if Value then FlySpeed = math.clamp(Value,1,500) FlyBox.Text = tostring(FlySpeed) else FlyBox.Text = tostring(FlySpeed) end end) FlyButton.MouseButton1Click:Connect(function() FlyEnabled = not FlyEnabled FlyButton.Text = "FLY: "..(FlyEnabled and "ON" or "OFF") if FlyEnabled then StartFly() else StopFly() end end) --================================================== -- ONE MAIN UPDATE LOOP -- This is much lighter than the old version. --================================================== local ScanTimer = 0 RunService.Heartbeat:Connect(function(DeltaTime) -- Apply speed if not FlyEnabled then ApplySpeed() end -- Scan only every 0.5 seconds ScanTimer += DeltaTime if ScanTimer >= 0.5 then ScanTimer = 0 ScanEggs() end end) --================================================== -- UPDATE ESP + RADAR --================================================== RunService.RenderStepped:Connect(function() local Root = GetRoot() if not Root then return end local NearestEgg local NearestName local NearestDistance = math.huge -- ONE loop handles all ESP for Egg,Info in pairs(EggESP) do if not Egg.Parent then RemoveESP(Egg) else Info.gui.Enabled = ESPEnabled local Position = GetObjectPosition(Egg) if Position then local Distance = (Root.Position - Position).Magnitude local Data = Eggs[Egg.Name] Info.text.Text = "🄚 "..Egg.Name.. "\n"..Data.rarity.. " • "..FormatNumber(Data.luck).. " • "..math.floor(Distance).." studs" if Distance < NearestDistance then NearestDistance = Distance NearestEgg = Egg NearestName = Egg.Name end end end end -- Radar if RadarEnabled and NearestEgg then local Data = Eggs[NearestName] Status.Text = "🟢 "..NearestName.." detected" Nearest.Text = "🧭 NEAREST EGG\n".. "🄚 "..NearestName.. "\n⭐ "..Data.rarity.. " • Luck: "..FormatNumber(Data.luck).. "\nšŸ“ "..math.floor(NearestDistance).." studs" Nearest.TextColor3 = RarityColors[Data.rarity] elseif RadarEnabled then Status.Text = "šŸ”Ž Searching for eggs..." Nearest.Text = "🧭 NEAREST EGG\nNo eggs detected" else Status.Text = "šŸ”“ Radar OFF" Nearest.Text = "🧭 NEAREST EGG\nRadar disabled" end end) --================================================== -- FLY MOVEMENT --================================================== RunService.RenderStepped:Connect(function() if not FlyEnabled then return end local Root = GetRoot() if not Root then return end if not FlyVelocity then StartFly() end if not FlyVelocity then return end local Camera = workspace.CurrentCamera local Direction = Vector3.zero if UserInputService:IsKeyDown(Enum.KeyCode.W) then Direction += Camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then Direction -= Camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then Direction -= Camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then Direction += Camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then Direction += Vector3.new(0,1,0) end if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then Direction -= Vector3.new(0,1,0) end if Direction.Magnitude > 0 then Direction = Direction.Unit end FlyVelocity.Velocity = Direction * FlySpeed end) --================================================== -- RESPAWN --================================================== Player.CharacterAdded:Connect(function() task.wait(1) ApplySpeed() if FlyEnabled then StartFly() end end) print("Ride A Pet Optimized Egg ESP loaded!")