Sols rng egg ESP
Key Required

Sols rng egg ESP

Sol's RNG [ Eon 1-29 ]trafficconeeaterwhytrafficconeeaterwhy 4.4K views 275 executesUpdated Mar 28, 2026
5.0/ 5(2 votes)
20100% Positive
Lua Script•156 lines (4803 chars)
-- 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)

Features & Information

Esp the eggs for the easter event
#Sols RNG

Community Comments (6)

dogmanj0010dogmanj0010Mar 28, 2026

can you add auto collect the eggs?

Kllka459Kllka459Mar 28, 2026

Can you try to add auto collect please

mrlexik93mrlexik93Mar 28, 2026

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

lenonlenonMar 28, 2026

what executor does it work on? (what do you guys use?)

*bonez5*bonez5Mar 29, 2026

Does this also pick up the eggs that are auras?

salasibarrozenkielsalasibarrozenkielMar 30, 2026

How to open this?

More Scripts for Sol's RNG [ Eon 1-29 ]