
Key RequiredUniversal

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



