ADVERTISEMENTREMOVE ADS
Universal ESP
52,072 views
Universal scriptβ’
8 months ago

Script Preview
Description
This script includes; A universal ESP that works in all games.
v1.01 Fixed infinite loading....
v2 Added a feature that updates the distance every 0.1 seconds
Features:
- Universal
- Distance shown
- Team shown
- Clean Outline
- HP shown
ADVERTISEMENTREMOVE ADS
172 Lines β’ 5.61 KiB
local player = game.Players.LocalPlayer
local userInputService = game:GetService("UserInputService")
local teams = game:GetService("Teams")
local runService = game:GetService("RunService")
-- GUI Creation
local screenGui = Instance.new("ScreenGui")
screenGui.Parent = player:WaitForChild("PlayerGui")
screenGui.Name = "ESP_Toggle"
screenGui.ResetOnSpawn = false
-- Main Frame (Draggable)
local frame = Instance.new("Frame")
frame.Parent = screenGui
frame.Size = UDim2.new(0, 220, 0, 160)
frame.Position = UDim2.new(0.5, -110, 0.5, -60)
frame.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
frame.BorderSizePixel = 0
frame.Active = true
frame.Draggable = true
local frameCorner = Instance.new("UICorner")
frameCorner.CornerRadius = UDim.new(0, 10)
frameCorner.Parent = frame
-- Title Label
local title = Instance.new("TextLabel")
title.Parent = frame
title.Size = UDim2.new(1, 0, 0, 30)
title.BackgroundColor3 = Color3.fromRGB(35, 35, 45)
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.Font = Enum.Font.GothamBold
title.TextSize = 16
title.Text = "π ESP Menu"
title.TextStrokeTransparency = 0.8
-- ESP Toggle Button
local espButton = Instance.new("TextButton")
espButton.Parent = frame
espButton.Size = UDim2.new(0.8, 0, 0, 40)
espButton.Position = UDim2.new(0.1, 0, 0.4, 0)
espButton.BackgroundColor3 = Color3.fromRGB(45, 45, 55)
espButton.TextColor3 = Color3.fromRGB(255, 255, 255)
espButton.Font = Enum.Font.Gotham
espButton.TextSize = 16
espButton.Text = "Enable ESP"
local buttonCorner = Instance.new("UICorner")
buttonCorner.CornerRadius = UDim.new(0, 6)
buttonCorner.Parent = espButton
-- Footer Label (Rainbow Text)
local footerLabel = Instance.new("TextLabel")
footerLabel.Parent = frame
footerLabel.Size = UDim2.new(1, 0, 0, 20)
footerLabel.Position = UDim2.new(0, 0, 0.9, 0)
footerLabel.BackgroundTransparency = 1
footerLabel.Font = Enum.Font.GothamBold
footerLabel.TextSize = 14
footerLabel.TextStrokeTransparency = 0.5
footerLabel.Text = "Made by GPTexploits"
footerLabel.TextXAlignment = Enum.TextXAlignment.Center
local colors = {
Color3.fromRGB(255, 0, 0), -- Red
Color3.fromRGB(255, 127, 0), -- Orange
Color3.fromRGB(255, 255, 0), -- Yellow
Color3.fromRGB(0, 255, 0), -- Green
Color3.fromRGB(0, 0, 255), -- Blue
Color3.fromRGB(75, 0, 130), -- Indigo
Color3.fromRGB(238, 130, 238) -- Violet
}
local currentIndex = 1
runService.RenderStepped:Connect(function()
footerLabel.TextColor3 = colors[currentIndex]
currentIndex = currentIndex + 1
if currentIndex > #colors then
currentIndex = 1
end
end)
-- ESP Logic
local espEnabled = false
local espObjects = {}
local function applyESP(character)
if character and character:FindFirstChild("HumanoidRootPart") then
local highlight = Instance.new("Highlight")
highlight.Parent = character
highlight.FillTransparency = 1
highlight.OutlineTransparency = 0
highlight.OutlineColor = Color3.fromRGB(255, 255, 255)
local billboard = Instance.new("BillboardGui")
billboard.Parent = character
billboard.Adornee = character:FindFirstChild("Head")
billboard.Size = UDim2.new(0, 200, 0, 50)
billboard.StudsOffset = Vector3.new(0, 2, 0)
billboard.AlwaysOnTop = true
local textLabel = Instance.new("TextLabel")
textLabel.Parent = billboard
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.BackgroundTransparency = 1
textLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
textLabel.Font = Enum.Font.GothamBold
textLabel.TextSize = 14
textLabel.TextStrokeTransparency = 0.5
textLabel.Text = "Loading..."
espObjects[character] = {highlight, billboard, textLabel}
end
end
local function updateESP()
for _, plr in pairs(game.Players:GetPlayers()) do
if plr ~= player and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then
local char = plr.Character
local rootPart = char:FindFirstChild("HumanoidRootPart")
local humanoid = char:FindFirstChild("Humanoid")
local espData = espObjects[char]
if rootPart and humanoid and espData then
local distance = (rootPart.Position - player.Character.HumanoidRootPart.Position).Magnitude
local teamName = plr.Team and plr.Team.Name or "No Team"
local health = math.floor(humanoid.Health)
local maxHealth = math.floor(humanoid.MaxHealth)
espData[3].Text = string.format("%s | %.1fm | %d/%d HP | %s", teamName, distance, health, maxHealth, plr.Name)
end
end
end
end
local function refreshESP()
for _, data in pairs(espObjects) do
for _, obj in pairs(data) do
obj:Destroy()
end
end
espObjects = {}
for _, plr in pairs(game.Players:GetPlayers()) do
if plr ~= player and plr.Character then
applyESP(plr.Character)
end
end
end
local function toggleESP()
espEnabled = not espEnabled
espButton.Text = espEnabled and "Disable ESP" or "Enable ESP"
if espEnabled then
refreshESP()
runService.RenderStepped:Connect(function()
if espEnabled then
updateESP()
end
end)
else
for _, data in pairs(espObjects) do
for _, obj in pairs(data) do
obj:Destroy()
end
end
espObjects = {}
end
end
espButton.MouseButton1Click:Connect(toggleESP)
ADVERTISEMENTREMOVE ADS
ADVERTISEMENTREMOVE ADS







Comments
can we give credits to the ai that did this