local Players = game:GetService("Players") local RunService = game:GetService("RunService") local Camera = workspace.CurrentCamera local LocalPlayer = Players.LocalPlayer local UserInputService = game:GetService("UserInputService") local enabled = false UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.Q then enabled = not enabled end end) function getClosestPlayer() local closest, minDist = nil, math.huge for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("Head") then local head = player.Character.Head.Position local screenPos, onScreen = Camera:WorldToViewportPoint(head) if onScreen then local dist = (Vector2.new(screenPos.X, screenPos.Y) - Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)).Magnitude if dist < minDist then minDist = dist closest = player end end end end return closest end RunService.RenderStepped:Connect(function() if not enabled then return end local target = getClosestPlayer() if target and target.Character and target.Character:FindFirstChild("Head") then local head = target.Character.Head.Position Camera.CFrame = CFrame.new(Camera.CFrame.Position, head) end end)