Aimbot y esp team check Universal
Key RequiredUniversal

Aimbot y esp team check Universal

Universal ScriptFELIPEHUBFELIPEHUB 5.2K views 2.6K executesUpdated Sep 16, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Script•212 lines (7686 chars)
--// ========= SERVIÇOS =========
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local LocalPlayer = Players.LocalPlayer
local Camera = workspace.CurrentCamera

--// ========= ESP COMPLETO =========
local function CreateESP(player)
    if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
        local HRP = player.Character.HumanoidRootPart
        local Humanoid = player.Character:FindFirstChildOfClass("Humanoid")

        -- Desenhos
        local Box = Drawing.new("Square")
        Box.Thickness = 1
        Box.Filled = false

        local Line = Drawing.new("Line")
        Line.Thickness = 1

        local BarOutline = Drawing.new("Square")
        BarOutline.Thickness = 1
        BarOutline.Filled = false
        BarOutline.Color = Color3.new(0,0,0)

        local Bar = Drawing.new("Square")
        Bar.Filled = true

        local Name = Drawing.new("Text")
        Name.Size = 13
        Name.Center = true
        Name.Outline = true

        local DistanceText = Drawing.new("Text")
        DistanceText.Size = 13
        DistanceText.Center = true
        DistanceText.Outline = true

        -- Atualização
        local connection
        connection = RunService.RenderStepped:Connect(function()
            if player.Character and player.Character:FindFirstChild("HumanoidRootPart") and Humanoid and Humanoid.Health > 0 then
                local pos, vis = Camera:WorldToViewportPoint(HRP.Position)

                if vis then
                    local scale = (Camera.CFrame.Position - HRP.Position).Magnitude
                    local boxHeight = 2000 / scale
                    local boxWidth = boxHeight / 2

                    -- Box
                    Box.Size = Vector2.new(boxWidth, boxHeight)
                    Box.Position = Vector2.new(pos.X - boxWidth/2, pos.Y - boxHeight/2)
                    Box.Visible = true

                    -- Linha
                    Line.From = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y)
                    Line.To = Vector2.new(pos.X, pos.Y)
                    Line.Visible = true

                    -- Barra de Vida
                    local healthPerc = math.clamp(Humanoid.Health / Humanoid.MaxHealth, 0, 1)
                    BarOutline.Size = Vector2.new(4, boxHeight)
                    BarOutline.Position = Vector2.new(Box.Position.X + boxWidth + 5, Box.Position.Y)
                    BarOutline.Visible = true

                    Bar.Size = Vector2.new(4, boxHeight * healthPerc)
                    Bar.Position = Vector2.new(BarOutline.Position.X, BarOutline.Position.Y + (boxHeight - Bar.Size.Y))
                    Bar.Color = Color3.fromRGB(255 * (1 - healthPerc), 255 * healthPerc, 0)
                    Bar.Visible = true

                    -- Nome
                    Name.Text = player.Name
                    Name.Position = Vector2.new(pos.X, Box.Position.Y - 15)
                    Name.Visible = true

                    -- Distância
                    local distance = math.floor((LocalPlayer.Character.HumanoidRootPart.Position - HRP.Position).Magnitude)
                    DistanceText.Text = tostring(distance) .. "m"
                    DistanceText.Position = Vector2.new(pos.X, Box.Position.Y + boxHeight + 2)
                    DistanceText.Visible = true

                    -- Team check
                    if player.Team then
                        Box.Color = player.TeamColor.Color
                        Line.Color = player.TeamColor.Color
                        Name.Color = player.TeamColor.Color
                        DistanceText.Color = player.TeamColor.Color
                    else
                        Box.Color = Color3.fromRGB(128,128,128)
                        Line.Color = Color3.fromRGB(128,128,128)
                        Name.Color = Color3.fromRGB(128,128,128)
                        DistanceText.Color = Color3.fromRGB(128,128,128)
                    end
                else
                    Box.Visible = false
                    Line.Visible = false
                    Bar.Visible = false
                    BarOutline.Visible = false
                    Name.Visible = false
                    DistanceText.Visible = false
                end
            else
                Box.Visible = false
                Line.Visible = false
                Bar.Visible = false
                BarOutline.Visible = false
                Name.Visible = false
                DistanceText.Visible = false
                connection:Disconnect()
            end
        end)
    end
end

for _, player in pairs(Players:GetPlayers()) do
    if player ~= LocalPlayer then
        player.CharacterAdded:Connect(function()
            task.wait(1)
            CreateESP(player)
        end)
        if player.Character then
            CreateESP(player)
        end
    end
end

Players.PlayerAdded:Connect(function(player)
    if player ~= LocalPlayer then
        player.CharacterAdded:Connect(function()
            task.wait(1)
            CreateESP(player)
        end)
    end
end)

--// ========= AIMBOT =========
local fov = 100
local AimbotEnabled = true

local FOVring = Drawing.new("Circle")
FOVring.Visible = true
FOVring.Thickness = 2
FOVring.Color = Color3.fromRGB(128, 0, 128)
FOVring.Filled = false
FOVring.Radius = fov
FOVring.Position = Camera.ViewportSize / 2

local function updateFOV()
    FOVring.Position = Camera.ViewportSize / 2
    FOVring.Radius = fov
    FOVring.Visible = AimbotEnabled
end

UserInputService.InputBegan:Connect(function(input)
    if input.KeyCode == Enum.KeyCode.Delete then
        AimbotEnabled = not AimbotEnabled
        FOVring.Visible = AimbotEnabled
    end
end)

local function lookAt(targetPos)
    local lookVector = (targetPos - Camera.CFrame.Position).Unit
    Camera.CFrame = CFrame.new(Camera.CFrame.Position, Camera.CFrame.Position + lookVector)
end

local function isPartVisible(part)
    if not part then return false end
    local origin = Camera.CFrame.Position
    local direction = (part.Position - origin)

    local rp = RaycastParams.new()
    rp.FilterDescendantsInstances = { LocalPlayer.Character or {}, workspace.CurrentCamera }
    rp.FilterType = Enum.RaycastFilterType.Blacklist
    rp.IgnoreWater = true

    local ray = workspace:Raycast(origin, direction, rp)
    if not ray then return true end
    if ray.Instance and ray.Instance:IsDescendantOf(part.Parent) then return true end
    return false
end

local function getClosestPlayerInFOV(trg_part)
    local nearest, last = nil, math.huge
    local centerScreen = Camera.ViewportSize / 2

    for _, player in ipairs(Players:GetPlayers()) do
        if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild(trg_part) then
            local part = player.Character[trg_part]
            local ePos, onScreen = Camera:WorldToViewportPoint(part.Position)
            local distance2D = (Vector2.new(ePos.X, ePos.Y) - centerScreen).Magnitude

            if onScreen and distance2D < fov and distance2D < last then
                if isPartVisible(part) then
                    last = distance2D
                    nearest = player
                end
            end
        end
    end
    return nearest
end

RunService.RenderStepped:Connect(function()
    updateFOV()
    if AimbotEnabled then
        local closest = getClosestPlayerInFOV("Head")
        if closest and closest.Character and closest.Character:FindFirstChild("Head") then
            lookAt(closest.Character.Head.Position)
        end
    end
end)

Features & Information

Aimbot esp box line

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts