ai esp or sum larp
Key RequiredUniversal

ai esp or sum larp

Universal ScriptCRXSHHY_HUBCRXSHHY_HUB 451 views 1.9K executesUpdated Apr 17, 2026
Unrated
00
Lua Script•201 lines (9595 chars)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Stats = game:GetService("Stats")
local Camera = workspace.CurrentCamera
local LP = Players.LocalPlayer

if not Drawing then return end

local Settings = {
    Running = true,
    ESPBox = true,
    ESPHealth = true,
    ESPNames = true,
    ESPSkeleton = true,
    ESPChams = true,
    BoxPadding = 0.5,
    -- Colors
    ChamsColor = Color3.fromRGB(170, 0, 255),
    NameColor = Color3.fromRGB(255, 255, 0),
    NeonColor = Color3.fromRGB(170, 0, 255),
    SkinColor = Color3.fromRGB(255, 180, 180),
    TipColor = Color3.fromRGB(255, 140, 140),
    -- Joke Settings
    ShaftLength = 2.4, ShaftRadius = 0.22, BallSize = 0.3,
}

local R15_Bones = {
    {"UpperTorso", "Head"}, {"UpperTorso", "LeftUpperArm"}, {"LeftUpperArm", "LeftLowerArm"}, {"LeftLowerArm", "LeftHand"},
    {"UpperTorso", "RightUpperArm"}, {"RightUpperArm", "RightLowerArm"}, {"RLowerArm", "RightHand"}, {"UpperTorso", "LowerTorso"},
    {"LowerTorso", "LeftUpperLeg"}, {"LeftUpperLeg", "LeftLowerLeg"}, {"LeftLowerLeg", "LeftFoot"}, {"LowerTorso", "RightUpperLeg"},
    {"RightUpperLeg", "RightLowerLeg"}, {"RLowerLeg", "RightFoot"}
}

-- [[ HUD SYSTEM ]] --
local PerformanceLabel = Drawing.new("Text")
PerformanceLabel.Visible = true; PerformanceLabel.Size = 20; PerformanceLabel.Outline = true

local ScreenGui = Instance.new("ScreenGui", game:GetService("CoreGui"))
local UnloadBtn = Instance.new("TextButton", ScreenGui)
UnloadBtn.Size = UDim2.new(0, 80, 0, 30); UnloadBtn.Position = UDim2.new(0, 10, 1, -40); UnloadBtn.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
UnloadBtn.Text = "UNLOAD"; UnloadBtn.TextColor3 = Color3.fromRGB(255, 50, 50); UnloadBtn.Font = Enum.Font.GothamBold; UnloadBtn.TextSize = 12
Instance.new("UICorner", UnloadBtn)

UnloadBtn.MouseButton1Click:Connect(function()
    Settings.Running = false
    ScreenGui:Destroy()
    PerformanceLabel:Remove()
end)

-- Optimized Performance Loop
RunService.Heartbeat:Connect(function()
    if not Settings.Running then return end
    local fps = math.floor(1 / RunService.RenderStepped:Wait())
    local ping = math.floor(Stats.Network.ServerStatsItem["Data Ping"]:GetValue())
    PerformanceLabel.Text = "FPS: " .. fps .. "\nPING: " .. ping .. "ms"
    PerformanceLabel.Position = Vector2.new(Camera.ViewportSize.X - 120, Camera.ViewportSize.Y / 2)
    PerformanceLabel.Color = (fps >= 60 and Color3.new(0,1,0)) or (fps >= 30 and Color3.new(1,1,0)) or Color3.new(1,0,0)
end)

-- [[ STABILIZED CALCULATION ]] --
local function GetBoundingVectors(char)
    local cf, size = char:GetBoundingBox()
    size = size + Vector3.new(Settings.BoxPadding, Settings.BoxPadding, Settings.BoxPadding)
    
    local corners = {
        cf * CFrame.new(-size.X/2, size.Y/2, size.Z/2),
        cf * CFrame.new(size.X/2, size.Y/2, size.Z/2),
        cf * CFrame.new(-size.X/2, -size.Y/2, size.Z/2),
        cf * CFrame.new(size.X/2, -size.Y/2, size.Z/2),
        cf * CFrame.new(-size.X/2, size.Y/2, -size.Z/2),
        cf * CFrame.new(size.X/2, size.Y/2, -size.Z/2),
        cf * CFrame.new(-size.X/2, -size.Y/2, -size.Z/2),
        cf * CFrame.new(size.X/2, -size.Y/2, -size.Z/2)
    }
    
    local minX, minY = math.huge, math.huge
    local maxX, maxY = -math.huge, -math.huge
    local allOffscreen = true
    
    for _, corner in pairs(corners) do
        local screenPos, onScreen = Camera:WorldToViewportPoint(corner.Position)
        if onScreen then
            allOffscreen = false
            minX = math.min(minX, screenPos.X)
            minY = math.min(minY, screenPos.Y)
            maxX = math.max(maxX, screenPos.X)
            maxY = math.max(maxY, screenPos.Y)
        end
    end
    
    if allOffscreen then return nil, nil, false end
    return Vector2.new(minX, minY), Vector2.new(maxX - minX, maxY - minY), true
end

-- [[ ESP LOGIC ]] --
local function CreateESP(p)
    if p == LP then return end

    local Box = Drawing.new("Square"); Box.Thickness = 1
    local HealthBar = Drawing.new("Line"); HealthBar.Thickness = 2
    local NameTag = Drawing.new("Text"); NameTag.Size = 18; NameTag.Center = true; NameTag.Outline = true
    
    local SkeletonLines = {}
    local Shaft = Instance.new("CylinderHandleAdornment")
    local Tip = Instance.new("SphereHandleAdornment")
    local BallL = Instance.new("SphereHandleAdornment")
    local BallR = Instance.new("SphereHandleAdornment")
    
    local Highlight = Instance.new("Highlight")
    Highlight.FillColor = Settings.ChamsColor; Highlight.OutlineColor = Color3.new(1, 1, 1)
    Highlight.FillTransparency = 0.25; Highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop

    local function SetupAdorn(obj, color)
        obj.AlwaysOnTop = true; obj.ZIndex = 10; obj.Transparency = 0.1; obj.Color3 = color
    end
    SetupAdorn(Shaft, Settings.SkinColor); SetupAdorn(Tip, Settings.TipColor)
    SetupAdorn(BallL, Settings.SkinColor); SetupAdorn(BallR, Settings.SkinColor)

    local function Clear()
        Box.Visible, HealthBar.Visible, NameTag.Visible = false, false, false
        for _, l in pairs(SkeletonLines) do l.Visible = false end
        Shaft.Visible, Tip.Visible, BallL.Visible, BallR.Visible = false, false, false, false
        Highlight.Enabled = false
    end

    RunService.RenderStepped:Connect(function()
        if not Settings.Running or not p.Parent then
            Box:Remove(); HealthBar:Remove(); NameTag:Remove(); Highlight:Destroy()
            for _, l in pairs(SkeletonLines) do l:Remove() end
            Shaft:Destroy(); Tip:Destroy(); BallL:Destroy(); BallR:Destroy()
            return
        end

        local char = p.Character
        local hum = char and char:FindFirstChildOfClass("Humanoid")
        
        if char and hum and hum.Health > 0 then
            local boxPos, boxSize, isVisible = GetBoundingVectors(char)
            
            -- Chams stay active (native ESP)
            if Settings.ESPChams then
                Highlight.Enabled = true; Highlight.Parent = char; Highlight.Adornee = char
            else Highlight.Enabled = false end

            if isVisible and boxPos and boxSize then
                -- Check if size is sane to prevent "lines everywhere" glitch
                if boxSize.X > 5000 or boxSize.Y > 5000 then Clear() return end

                if Settings.ESPBox then
                    Box.Visible = true; Box.Position = boxPos; Box.Size = boxSize; Box.Color = Settings.NeonColor
                else Box.Visible = false end

                if Settings.ESPHealth then
                    HealthBar.Visible = true; local hp = math.clamp(hum.Health / hum.MaxHealth, 0, 1)
                    HealthBar.From = Vector2.new(boxPos.X - 5, boxPos.Y + boxSize.Y)
                    HealthBar.To = Vector2.new(boxPos.X - 5, boxPos.Y + boxSize.Y - (boxSize.Y * hp))
                    HealthBar.Color = Color3.fromHSV(hp * 0.3, 1, 1)
                else HealthBar.Visible = false end

                if Settings.ESPNames then
                    NameTag.Visible = true; NameTag.Text = "★ " .. p.Name:upper() .. " ★"
                    NameTag.Position = Vector2.new(boxPos.X + boxSize.X/2, boxPos.Y - 25)
                    NameTag.Color = Settings.NameColor
                else NameTag.Visible = false end

                if Settings.ESPSkeleton then
                    for i, boneMap in ipairs(R15_Bones) do
                        if not SkeletonLines[i] then
                            SkeletonLines[i] = Drawing.new("Line"); SkeletonLines[i].Thickness = 1; SkeletonLines[i].Color = Color3.new(1, 1, 1)
                        end
                        local pA, pB = char:FindFirstChild(boneMap[1]), char:FindFirstChild(boneMap[2])
                        if pA and pB then
                            local vA, oA = Camera:WorldToViewportPoint(pA.Position); local vB, oB = Camera:WorldToViewportPoint(pB.Position)
                            if oA and oB then SkeletonLines[i].From = Vector2.new(vA.X, vA.Y); SkeletonLines[i].To = Vector2.new(vB.X, vB.Y); SkeletonLines[i].Visible = true else SkeletonLines[i].Visible = false end
                        else SkeletonLines[i].Visible = false end
                    end

                    local root = char:FindFirstChild("LowerTorso") or char:FindFirstChild("Torso")
                    if root then
                        Shaft.Adornee, Shaft.Parent, Tip.Adornee, Tip.Parent = root, root, root, root
                        BallL.Adornee, BallL.Parent, BallR.Adornee, BallR.Parent = root, root, root, root
                        local scale = char:GetExtentsSize().Y / 6
                        Shaft.Height = Settings.ShaftLength * scale; Shaft.Radius = Settings.ShaftRadius * scale
                        Tip.Radius = (Settings.ShaftRadius + 0.06) * scale
                        BallL.Radius, BallR.Radius = Settings.BallSize * scale, Settings.BallSize * scale
                        Shaft.CFrame = CFrame.new(0, -0.7 * scale, -(Shaft.Height/2)); Tip.CFrame = CFrame.new(0, -0.7 * scale, -Shaft.Height)
                        BallL.CFrame = CFrame.new(-0.25 * scale, -0.85 * scale, 0); BallR.CFrame = CFrame.new(0.25 * scale, -0.85 * scale, 0)
                        Shaft.Visible, Tip.Visible, BallL.Visible, BallR.Visible = true, true, true, true
                    end
                end
            else
                Clear()
            end
        else
            Clear()
        end
    end)
end

for _, v in ipairs(Players:GetPlayers()) do task.spawn(CreateESP, v) end
Players.PlayerAdded:Connect(CreateESP)

Features & Information

name esp, health esp, skele esp, dih esp
#keyless#ai#esp

Community Comments (2)

keiicherrykeiicherryApr 18, 2026

larp

Replying to @keiicherry
CRXSHHY_HUBCRXSHHY_HUBMay 17, 2026

@keiicherry is tuff tho

More Scripts for Universal Scripts