Esp team heck
Key RequiredUniversal

Esp team heck

Universal Scriptfelipenagibeaumfelipenagibeaum 7.1K views 884 executesUpdated May 4, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Script•163 lines (6428 chars)
-- Script criado por felip3nag do roblox
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Teams = game:GetService("Teams")
local UserInputService = game:GetService("UserInputService")
local LocalPlayer = Players.LocalPlayer
if not LocalPlayer then
    Players.PlayerAdded:Wait()
    LocalPlayer = Players.LocalPlayer
    if not LocalPlayer then return end
end
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local ESP_ENABLED = true
local ESP_COLOR_ENEMY = Color3.fromRGB(255, 0, 0)
local ESP_COLOR_NEUTRAL = Color3.fromRGB(255, 255, 0)
local TEAM_CHECK_ENABLED = true
local ESP_BOX_WIDTH = 45
local ESP_BOX_HEIGHT = 25
local NAME_LABEL_HEIGHT = 12
local BOX_BORDER_SIZE = 1
local ESP_ScreenGui = PlayerGui:FindFirstChild("ESP_UI_Final")
if ESP_ScreenGui then ESP_ScreenGui:Destroy() end
ESP_ScreenGui = Instance.new("ScreenGui")
ESP_ScreenGui.Name = "ESP_UI_Final"
ESP_ScreenGui.ResetOnSpawn = false
ESP_ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ESP_ScreenGui.Parent = PlayerGui
local ESP_Container = Instance.new("Frame")
ESP_Container.Name = "ESP_Container"
ESP_Container.BackgroundTransparency = 1
ESP_Container.Size = UDim2.new(1, 0, 1, 0)
ESP_Container.Parent = ESP_ScreenGui
local ToggleButton = Instance.new("TextButton")
ToggleButton.Name = "ToggleButton"
ToggleButton.Text = "ESP: ON"
ToggleButton.TextColor3 = Color3.fromRGB(0, 255, 0)
ToggleButton.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
ToggleButton.BorderColor3 = Color3.fromRGB(200, 200, 200)
ToggleButton.BorderSizePixel = 1
ToggleButton.Size = UDim2.new(0, 100, 0, 30)
ToggleButton.Position = UDim2.new(0, 10, 0, 10)
ToggleButton.Font = Enum.Font.SourceSans
ToggleButton.TextScaled = true
ToggleButton.Parent = ESP_ScreenGui
ToggleButton.MouseButton1Click:Connect(function()
    ESP_ENABLED = not ESP_ENABLED
    if ESP_ENABLED then
        ToggleButton.Text = "ESP: ON"
        ToggleButton.TextColor3 = Color3.fromRGB(0, 255, 0)
    else
        ToggleButton.Text = "ESP: OFF"
        ToggleButton.TextColor3 = Color3.fromRGB(255, 0, 0)
        for _, child in ipairs(ESP_Container:GetChildren()) do
            if child:IsA("Frame") and string.find(child.Name, "_ESP") then
                 child:Destroy()
            end
        end
    end
end)
local function updateESP(targetPlayer)
    if not ESP_ENABLED then return end
    if targetPlayer == LocalPlayer then return end
    local character = targetPlayer.Character
    local humanoid = character and character:FindFirstChildOfClass("Humanoid")
    local rootPart = character and character:FindFirstChild("HumanoidRootPart")
    local espFrameName = targetPlayer.Name .. "_ESP"
    local espFrame = ESP_Container:FindFirstChild(espFrameName)
    if not humanoid or humanoid.Health <= 0 or not rootPart then
        if espFrame then
            espFrame:Destroy()
        end
        return
    end
    local isEnemy = true
    if TEAM_CHECK_ENABLED then
        local localTeam = LocalPlayer.Team
        local targetTeam = targetPlayer.Team
        if localTeam and targetTeam then
            if localTeam == targetTeam then isEnemy = false end
        elseif not localTeam and not targetTeam then
             isEnemy = false
        end
    end
    if TEAM_CHECK_ENABLED and not isEnemy then
        if espFrame then
            espFrame:Destroy()
        end
        return
    end
    local camera = workspace.CurrentCamera
    if not camera then return end
    local worldPosition = rootPart.Position
    local screenPosition, onScreen = camera:WorldToScreenPoint(worldPosition)
    if onScreen then
        local espColor = (TEAM_CHECK_ENABLED and isEnemy) and ESP_COLOR_ENEMY or ESP_COLOR_NEUTRAL
        if not espFrame then
            espFrame = Instance.new("Frame")
            espFrame.Name = espFrameName
            espFrame.Size = UDim2.new(0, ESP_BOX_WIDTH, 0, ESP_BOX_HEIGHT)
            espFrame.BackgroundTransparency = 1
            espFrame.BorderSizePixel = 0
            espFrame.ClipsDescendants = false
            espFrame.Parent = ESP_Container
            local box = Instance.new("Frame")
            box.Name = "Box"
            box.Size = UDim2.new(1, 0, 1, 0)
            box.BackgroundTransparency = 1
            box.BorderSizePixel = BOX_BORDER_SIZE
            box.BorderColor3 = espColor
            box.Parent = espFrame
            local nameLabel = Instance.new("TextLabel")
            nameLabel.Name = "NameLabel"
            nameLabel.Size = UDim2.new(1, 20, 0, NAME_LABEL_HEIGHT)
            nameLabel.Position = UDim2.new(0, -10, 0, -NAME_LABEL_HEIGHT)
            nameLabel.BackgroundTransparency = 1
            nameLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
            nameLabel.TextScaled = true
            nameLabel.Text = targetPlayer.Name
            nameLabel.Font = Enum.Font.SourceSansSemibold
            nameLabel.TextStrokeTransparency = 0.5
            nameLabel.TextStrokeColor3 = Color3.fromRGB(0,0,0)
            nameLabel.Parent = espFrame
        end
        espFrame.Position = UDim2.new(0, screenPosition.X - ESP_BOX_WIDTH / 2, 0, screenPosition.Y - ESP_BOX_HEIGHT / 2 - NAME_LABEL_HEIGHT)
        espFrame.Visible = true
        local box = espFrame:FindFirstChild("Box")
        if box then
             box.BorderColor3 = espColor
        end
        local nameLabel = espFrame:FindFirstChild("NameLabel")
        if nameLabel then
            nameLabel.Text = targetPlayer.Name
        end
    else
        if espFrame then
            espFrame.Visible = false
        end
    end
end
RunService.RenderStepped:Connect(function()
    if not ESP_ENABLED then
        if #ESP_Container:GetChildren() > 0 then
             for _, child in ipairs(ESP_Container:GetChildren()) do
                 if child:IsA("Frame") and string.find(child.Name, "_ESP") then
                     child:Destroy()
                 end
             end
        end
        return
    end
    local allPlayers = Players:GetPlayers()
    for _, player in ipairs(allPlayers) do
        pcall(updateESP, player)
    end
    for _, espElement in ipairs(ESP_Container:GetChildren()) do
        if espElement:IsA("Frame") and string.find(espElement.Name, "_ESP") then
            local playerName = string.gsub(espElement.Name, "_ESP", "")
            if not Players:FindFirstChild(playerName) then
                espElement:Destroy()
            end
        end
    end
end)

Features & Information

Team heck ESP for fps games
#Esp#teamheck

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts