-- Sol's RNG Potion & Egg ESP Script -- Works with most executors (Solara, Fluxus, etc.) -- Toggle with RightShift or edit the key local Players = game:GetService("Players") local RunService = game:GetService("RunService") local Workspace = game:GetService("Workspace") local player = Players.LocalPlayer local camera = Workspace.CurrentCamera local ESP = {} local connections = {} local toggleKey = Enum.KeyCode.RightShift -- Press Right Shift to toggle ESP local enabled = true -- Colors local POTION_COLOR = Color3.fromRGB(0, 255, 100) -- Green for potions local EGG_COLOR = Color3.fromRGB(255, 215, 0) -- Gold for eggs -- Common names to look for (add more if needed) local potionKeywords = {"Potion", "Lucky", "Speed", "Heavenly", "Godly", "Luck", "Zeus", "Poseidon", "Hades"} local eggKeywords = {"Egg", "Biome Egg", "Rainy Egg", "Snowy Egg", "Hellishfire", "Windy Egg", "Null Egg", "Corrupted Egg"} local function isPotion(obj) if not obj or not obj:IsA("BasePart") then return false end local name = obj.Name:lower() for _, kw in ipairs(potionKeywords) do if name:find(kw:lower()) then return true end end return false end local function isEgg(obj) if not obj or not obj:IsA("BasePart") then return false end local name = obj.Name:lower() for _, kw in ipairs(eggKeywords) do if name:find(kw:lower()) then return true end end return false end local function createESP(part, color, text) local box = Drawing.new("Square") box.Thickness = 2 box.Filled = false box.Transparency = 1 box.Color = color local nameTag = Drawing.new("Text") nameTag.Size = 16 nameTag.Center = true nameTag.Outline = true nameTag.OutlineColor = Color3.new(0, 0, 0) nameTag.Color = color nameTag.Text = text ESP[part] = {box = box, name = nameTag, part = part} end local function updateESP() for part, data in pairs(ESP) do if not part or not part.Parent then data.box:Remove() data.name:Remove() ESP[part] = nil continue end local vector, onScreen = camera:WorldToViewportPoint(part.Position) if onScreen then local size = (camera:WorldToViewportPoint(part.Position + Vector3.new(2, 3, 0)).Y - camera:WorldToViewportPoint(part.Position - Vector3.new(2, 3, 0)).Y) / 2 local pos = Vector2.new(vector.X, vector.Y) data.box.Size = Vector2.new(size * 1.5, size * 2) data.box.Position = Vector2.new(pos.X - data.box.Size.X / 2, pos.Y - data.box.Size.Y / 2) local distance = (player.Character and player.Character:FindFirstChild("HumanoidRootPart") and (part.Position - player.Character.HumanoidRootPart.Position).Magnitude) or 0 data.name.Text = string.format("%s [%.0f]", data.part.Name, distance) data.name.Position = Vector2.new(pos.X, pos.Y - data.box.Size.Y / 2 - 20) data.box.Visible = true data.name.Visible = true else data.box.Visible = false data.name.Visible = false end end end local function scanItems() for _, obj in ipairs(Workspace:GetDescendants()) do if (isPotion(obj) or isEgg(obj)) and not ESP[obj] then local color = isPotion(obj) and POTION_COLOR or EGG_COLOR local label = isPotion(obj) and "Potion" or "Egg" createESP(obj, color, label .. " - " .. obj.Name) end end end -- Main loop connections[#connections+1] = RunService.RenderStepped:Connect(function() if enabled then updateESP() end end) -- Periodic scan (every 2 seconds) connections[#connections+1] = task.spawn(function() while true do if enabled then scanItems() end task.wait(2) end end) -- Toggle with key connections[#connections+1] = game:GetService("UserInputService").InputBegan:Connect(function(input, gp) if gp then return end if input.KeyCode == toggleKey then enabled = not enabled print("Sol's RNG ESP Toggled: " .. (enabled and "ON" or "OFF")) -- Hide all when off if not enabled then for _, data in pairs(ESP) do data.box.Visible = false data.name.Visible = false end end end end) print("✅ Sol's RNG Potion & Egg ESP loaded!") print("Press Right Shift to toggle ON/OFF") -- Cleanup on script end (optional) game:BindForClose(function() for _, conn in ipairs(connections) do pcall(function() conn:Disconnect() end) end for _, data in pairs(ESP) do pcall(function() data.box:Remove() data.name:Remove() end) end end)