local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera local FOV_Radius = 300 local IsAiming = false local FOVCircle = Drawing.new("Circle") FOVCircle.Thickness = 2 FOVCircle.NumSides = 60 FOVCircle.Radius = FOV_Radius FOVCircle.Filled = false FOVCircle.Color = Color3.fromRGB(255, 0, 0) FOVCircle.Visible = true FOVCircle.Transparency = 0.8 local function GetScreenCenter() return Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) end local function GetClosestPlayer() local closest, dist = nil, FOV_Radius local center = GetScreenCenter() for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.TeamColor ~= LocalPlayer.TeamColor then local char = player.Character or workspace:FindFirstChild(player.Name) if char and char:FindFirstChild("Head") then local head = char.Head local humanoid = char:FindFirstChildOfClass("Humanoid") if humanoid and humanoid.Health > 0 then local screenPos, onScreen = Camera:WorldToScreenPoint(head.Position) if onScreen then local d = (Vector2.new(screenPos.X, screenPos.Y) - center).Magnitude if d < dist then dist = d closest = head end end end end end end return closest end UserInputService.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton2 then IsAiming = true end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton2 then IsAiming = false end end) RunService.RenderStepped:Connect(function() FOVCircle.Position = GetScreenCenter() if IsAiming then local targetHead = GetClosestPlayer() if targetHead then local targetCFrame = CFrame.new(Camera.CFrame.Position, targetHead.Position) Camera.CFrame = targetCFrame end end end)