esp 2D
Key RequiredUniversal

esp 2D

Universal ScriptNguyenvubaoNguyenvubao 631 views 1.3K executesUpdated Apr 15, 2026
Unrated
00
Lua Script•88 lines (3214 chars)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
local Camera = workspace.CurrentCamera

-- Cấu hình ESP
local Settings = {
    BoxColor = Color3.fromRGB(0, 255, 255),       -- Màu xanh (Người cũ)
    NewPlayerColor = Color3.fromRGB(255, 215, 0), -- Màu vàng (Người mới)
    TracerColor = Color3.fromRGB(255, 255, 255), 
    Thickness = 1.5,
    NewPlayerThreshold = 120 -- 2 phút
}

local function CreateESP(Player)
    if Player == LocalPlayer then return end

    -- Khởi tạo Drawing objects
    local Box = Drawing.new("Square")
    Box.Visible = false
    Box.Thickness = Settings.Thickness
    Box.Filled = false

    local Tracer = Drawing.new("Line")
    Tracer.Visible = false
    Tracer.Color = Settings.TracerColor
    Tracer.Thickness = Settings.Thickness

    -- Lưu thời điểm tham gia
    local joinTime = os.clock()

    local function Updater()
        local connection
        connection = RunService.RenderStepped:Connect(function()
            local character = Player.Character
            if character and character:FindFirstChild("HumanoidRootPart") and character:FindFirstChild("Head") then
                local rootPart = character.HumanoidRootPart
                local head = character.Head
                
                local pos, onScreen = Camera:WorldToViewportPoint(rootPart.Position)

                if onScreen then
                    -- Kiểm tra người mới
                    local isNew = (os.clock() - joinTime) < Settings.NewPlayerThreshold
                    
                    -- Tính toán tọa độ Box
                    local headPos = Camera:WorldToViewportPoint(head.Position + Vector3.new(0, 0.5, 0))
                    local legPos = Camera:WorldToViewportPoint(rootPart.Position - Vector3.new(0, 3, 0))
                    
                    local height = math.abs(headPos.Y - legPos.Y)
                    local width = height / 1.5

                    -- Cập nhật Box
                    Box.Size = Vector2.new(width, height)
                    Box.Position = Vector2.new(pos.X - width / 2, pos.Y - height / 2)
                    Box.Color = isNew and Settings.NewPlayerColor or Settings.BoxColor
                    Box.Visible = true

                    -- Cập nhật Tracer (Từ giữa dưới màn hình tới chân Box)
                    Tracer.From = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y)
                    Tracer.To = Vector2.new(pos.X, pos.Y + (height / 2))
                    Tracer.Visible = true
                else
                    Box.Visible = false
                    Tracer.Visible = false
                end
            else
                Box.Visible = false
                Tracer.Visible = false
            end

            -- Dọn dẹp khi người chơi rời đi
            if not Player.Parent then
                Box:Remove()
                Tracer:Remove()
                connection:Disconnect()
            end
        end)
    end

    coroutine.wrap(Updater)()
end

-- Khởi tạo cho người chơi hiện có và người mới vào
for _, v in pairs(Players:GetPlayers()) do
    CreateESP(v)
end
Players.PlayerAdded:Connect(CreateESP)

Features & Information

Script esp 2D có hình chữ nhật và có đường gạch có thể nhìn thấy người

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts