--// RIDE A PET - UPDATED 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 - UPDATED --================================================== 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"}, -- MYTHIC ["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"}, -- DIVINE ["Aurora Egg"] = {luck = 300000000, rarity = "Divine"}, ["Galaxy Egg"] = {luck = 1500000000, rarity = "Divine"}, -- ETHEREAL ["Black Hole Egg"] = {luck = 100000000000, rarity = "Ethereal"}, ["Cherub Egg"] = {luck = 1000000000000, rarity = "Ethereal"}, } --================================================== -- RARITY COLORS --================================================== 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), Ethereal = Color3.fromRGB(70,255,255), } --================================================== -- SETTINGS --================================================== local ESPEnabled = true local RadarEnabled = true local FlyEnabled = false local InfiniteJumpEnabled = false local NoclipEnabled = false local WalkSpeed = 16 local FlySpeed = 60 local JumpPower = 100 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 --================================================== -- EGG CHECK --================================================== 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 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 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 EGGS --================================================== local function ScanEggs() local Found = {} for _, Object in ipairs(workspace:GetDescendants()) do if IsEgg(Object) then Found[Object] = true if not EggESP[Object] then CreateESP(Object) end end end for Egg,_ in pairs(EggESP) do if not Found[Egg] or not Egg.Parent then RemoveESP(Egg) end end end ScanEggs() workspace.DescendantAdded:Connect(function(Object) if IsEgg(Object) then task.wait() 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 = "RideAPetUpdatedUI" GUI.ResetOnSpawn = false GUI.Parent = Player:WaitForChild("PlayerGui") local Main = Instance.new("Frame") Main.Size = UDim2.fromOffset(300,430) Main.Position = UDim2.new(0,25,0.5,-215) Main.BackgroundColor3 = Color3.fromRGB(18,18,23) Main.BorderSizePixel = 0 Main.Parent = GUI Instance.new("UICorner",Main).CornerRadius = UDim.new(0,12) --================================================== -- TITLE --================================================== 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 --================================================== -- CONTENT --================================================== 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.BorderSizePixel = 0 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 InfiniteButton = Button("INFINITE JUMP: OFF",125) local NoclipButton = Button("NOCLIP: OFF",165) --================================================== -- SPEED INPUTS --================================================== local SpeedBox = Instance.new("TextBox") SpeedBox.Position = UDim2.fromOffset(15,210) 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 Instance.new("UICorner",SpeedBox).CornerRadius = UDim.new(0,8) local FlyBox = Instance.new("TextBox") FlyBox.Position = UDim2.new(.52,5,0,210) 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 Instance.new("UICorner",FlyBox).CornerRadius = UDim.new(0,8) --================================================== -- STATUS --================================================== local Status = Instance.new("TextLabel") Status.Position = UDim2.fromOffset(15,255) 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,285) 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) --================================================== -- REOPEN --================================================== 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) --================================================== -- MINIMIZE / CLOSE --================================================== local Minimized = false Minimize.MouseButton1Click:Connect(function() Minimized = not Minimized Content.Visible = not Minimized if Minimized then Main.Size = UDim2.fromOffset(300,48) Minimize.Text = "+" else Main.Size = UDim2.fromOffset(300,430) 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 UI --================================================== 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 --================================================== 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 --================================================== RadarButton.MouseButton1Click:Connect(function() RadarEnabled = not RadarEnabled RadarButton.Text = "RADAR: "..(RadarEnabled and "ON" or "OFF") end) --================================================== -- WALK SPEED --================================================== local function ApplySpeed() local Humanoid = GetHumanoid() if Humanoid and not FlyEnabled 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() ApplySpeed() end end) --================================================== -- INFINITE JUMP --================================================== InfiniteButton.MouseButton1Click:Connect(function() InfiniteJumpEnabled = not InfiniteJumpEnabled InfiniteButton.Text = "INFINITE JUMP: "..(InfiniteJumpEnabled and "ON" or "OFF") end) UserInputService.JumpRequest:Connect(function() if not InfiniteJumpEnabled then return end local Humanoid = GetHumanoid() if Humanoid then Humanoid:ChangeState(Enum.HumanoidStateType.Jumping) end end) --================================================== -- NOCLIP --================================================== local function ApplyNoclip() if not NoclipEnabled then return end local Character = GetCharacter() if not Character then return end for _,Object in ipairs(Character:GetDescendants()) do if Object:IsA("BasePart") then Object.CanCollide = false end end end NoclipButton.MouseButton1Click:Connect(function() NoclipEnabled = not NoclipEnabled NoclipButton.Text = "NOCLIP: "..(NoclipEnabled and "ON" or "OFF") end) --================================================== -- MAIN UPDATE --================================================== local ScanTimer = 0 RunService.Heartbeat:Connect(function(DeltaTime) ApplyNoclip() if not FlyEnabled then ApplySpeed() end ScanTimer += DeltaTime if ScanTimer >= 0.5 then ScanTimer = 0 ScanEggs() end end) --================================================== -- ESP + RADAR UPDATE --================================================== RunService.RenderStepped:Connect(function() local Root = GetRoot() if not Root then return end local NearestEgg local NearestName local NearestDistance = math.huge 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 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 - Updated Egg ESP loaded!")