Advanced Esp
Key RequiredUniversal

Advanced Esp

Universal ScriptAdorbsxVibesPr3ppyAdorbsxVibesPr3ppy 58.1K views 19 executesUpdated Jul 26, 2024
Unrated
00
Lua Script•207 lines (6845 chars)
-- Load the Orion library
local OrionLib = loadstring(game:HttpGet("https://raw.githubusercontent.com/shlexware/Orion/main/source"))()

-- Create the main window
local Window = OrionLib:MakeWindow({
    Name = "Advanced ESP UI",
    HidePremium = false,
    SaveConfig = true,
    ConfigFolder = "OrionConfig"
})

-- Create a tab
local Tab = Window:MakeTab({
    Name = "ESP",
    Icon = "rbxassetid://4483345998",
    PremiumOnly = false
})

-- Add a section to the tab
local Section = Tab:AddSection({
    Name = "ESP Settings"
})

-- ESP settings
local espEnabled = false
local espConnections = {}
local espSettings = {
    NameColor = Color3.fromRGB(255, 182, 193), -- Light Pink
    FullHealthColor = Color3.fromRGB(0, 255, 0),
    LowHealthColor = Color3.fromRGB(255, 0, 0),
    DistanceColor = Color3.fromRGB(173, 216, 230), -- Light Blue
    WalkSpeedColor = Color3.fromRGB(255, 105, 180), -- Hot Pink
    BackgroundTransparency = 0.5,
    TextOffset = Vector3.new(0, 3.5, 0),
    MaxDistance = 5000 -- Maximum distance to show ESP
}

-- Function to create a combined ESP text label
local function createESPLabel(adornee, offset, color, text)
    local billboardGui = Instance.new("BillboardGui")
    billboardGui.Adornee = adornee
    billboardGui.Size = UDim2.new(5, 0, 1.5, 0)
    billboardGui.StudsOffset = offset
    billboardGui.AlwaysOnTop = true

    local textLabel = Instance.new("TextLabel", billboardGui)
    textLabel.Text = text
    textLabel.Size = UDim2.new(1, 0, 1, 0)
    textLabel.TextColor3 = color
    textLabel.BackgroundTransparency = espSettings.BackgroundTransparency
    textLabel.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
    textLabel.TextStrokeTransparency = 0
    textLabel.TextScaled = true
    textLabel.BorderSizePixel = 0
    textLabel.Font = Enum.Font.SourceSans -- Set font
    textLabel.TextWrapped = true -- Ensure text wraps

    return billboardGui, textLabel
end

-- Function to create ESP for a player
local function createESP(player)
    local function refreshESP(character)
        -- Remove any existing ESP for the character
        for _, v in pairs(character:GetChildren()) do
            if v:IsA("BoxHandleAdornment") or v:IsA("BillboardGui") then
                v:Destroy()
            end
        end

        -- Create a BoxHandleAdornment for the player
        local espBox = Instance.new("BoxHandleAdornment")
        espBox.Adornee = character
        espBox.Size = character:GetExtentsSize()
        espBox.AlwaysOnTop = true
        espBox.ZIndex = 5
        espBox.Transparency = 0.7
        espBox.Color3 = player.Team and player.TeamColor.Color or Color3.fromRGB(255, 255, 255)
        espBox.Parent = character

        -- Create a combined ESP label
        local textGui, textLabel = createESPLabel(character, espSettings.TextOffset, espSettings.NameColor, "")
        textGui.Parent = character

        -- Update ESP text
        local function updateESP()
            local humanoid = character:FindFirstChildOfClass("Humanoid")
            if humanoid then
                local health = humanoid.Health
                local maxHealth = humanoid.MaxHealth
                local walkSpeed = humanoid.WalkSpeed
                local distance = (game.Players.LocalPlayer.Character.HumanoidRootPart.Position - character.HumanoidRootPart.Position).Magnitude
                local healthColor = health > maxHealth * 0.5 and espSettings.FullHealthColor or espSettings.LowHealthColor
                textLabel.Text = string.format("Name: %s\nHealth: %d\nStuds: %d\nWalkSpeed: %d", player.Name, health, math.floor(distance), walkSpeed)
                textLabel.TextColor3 = healthColor
            end
        end
        updateESP()
        local healthChangedConnection = character:FindFirstChildOfClass("Humanoid").HealthChanged:Connect(updateESP)
        local renderSteppedConnection = game:GetService("RunService").RenderStepped:Connect(updateESP)

        -- Recreate ESP on death and respawn
        local characterDiedConnection = character:FindFirstChildOfClass("Humanoid").Died:Connect(function()
            if player.Character then
                player.CharacterAdded:Wait()
                refreshESP(player.Character)
            end
        end)

        -- Store connections for cleanup
        espConnections[player] = {espBox, textGui, healthChangedConnection, renderSteppedConnection, characterDiedConnection}
    end

    if player.Character then
        refreshESP(player.Character)
    end

    player.CharacterAdded:Connect(function(character)
        refreshESP(character)
    end)
end

-- Function to remove ESP from a player
local function removeESP(player)
    if espConnections[player] then
        for _, conn in ipairs(espConnections[player]) do
            if typeof(conn) == "RBXScriptConnection" then
                conn:Disconnect()
            else
                conn:Destroy()
            end
        end
        espConnections[player] = nil
    end
end

-- Toggle function for ESP
local function toggleESP(enabled)
    espEnabled = enabled
    if espEnabled then
        for _, player in ipairs(game.Players:GetPlayers()) do
            createESP(player)
        end
        game.Players.PlayerAdded:Connect(createESP)
        game.Players.PlayerRemoving:Connect(removeESP)
    else
        for _, player in ipairs(game.Players:GetPlayers()) do
            removeESP(player)
        end
    end
end

-- Add a toggle button in the UI
Section:AddToggle({
    Name = "Enable ESP",
    Default = false,
    Callback = function(value)
        toggleESP(value)
    end
})

-- Add additional settings and controls
Section:AddColorPicker({
    Name = "Name Color",
    Default = espSettings.NameColor,
    Callback = function(value)
        espSettings.NameColor = value
    end
})

Section:AddSlider({
    Name = "Update Rate",
    Min = 0.01,
    Max = 1,
    Default = espSettings.UpdateRate,
    Increment = 0.01,
    Callback = function(value)
        espSettings.UpdateRate = value
    end
})

Section:AddButton({
    Name = "Reset Settings",
    Callback = function()
        espSettings = {
            NameColor = Color3.fromRGB(255, 182, 193), -- Light Pink
            FullHealthColor = Color3.fromRGB(0, 255, 0),
            LowHealthColor = Color3.fromRGB(255, 0, 0),
            DistanceColor = Color3.fromRGB(173, 216, 230), -- Light Blue
            WalkSpeedColor = Color3.fromRGB(255, 105, 180), -- Hot Pink
            BackgroundTransparency = 0.5,
            TextOffset = Vector3.new(0, 3.5, 0),
            MaxDistance = 5000 -- Maximum distance to show ESP
        }
    end
})

-- Add a notification system
OrionLib:MakeNotification({
    Name = "ESP Loaded",
    Content = "The ESP system has been successfully loaded.",
    Image = "rbxassetid://4483345998",
    Time = 5
})

-- Initialize the UI
OrionLib:Init()

Features & Information

I’ll fix some coding errors

Community Comments (2)

sammy10990sammy10990Jul 27, 2024(edited)

don't work on solara

sammy10990sammy10990Jul 27, 2024(edited)

nvm it does

More Scripts for Universal Scripts