--// ========= 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)