
KeylessUniversal

-- 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)No comments yet for this script.



