
Key Required VerifiedUniversal

-- 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)
can you add auto collect the eggs?
Can you try to add auto collect please
W script, works really well. but can you make it stop lagging? every 3 seconds its running a check or something and it freezes my game
what executor does it work on? (what do you guys use?)
Does this also pick up the eggs that are auras?
How to open this?