No no you’re right all you’re doing is modifying the XY and z to account for the inaccuracy of look at, more than likely you’re offsetting the rotation on a single axis
I think I get what you’re trying to ask now you don’t want it to just rotate on the z-axis to face towards the head but if the head were to travel up or down you want it to also use X and Y and perfectly aim it as if you were trying to point a laser beam at it
--//Services
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local StarterGui = game:GetService("StarterGui")
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.All, false)
--//Variables
local LocalPlayer = Players.LocalPlayer
local character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
local head = character:WaitForChild("Head")
local CurrentCamera = workspace.CurrentCamera
--//Initialization
CurrentCamera.FieldOfView = 70
--//Functions
RunService.RenderStepped:Connect(function()
CurrentCamera.CFrame = CFrame.lookAt(CurrentCamera.CFrame.Position, head.Position)
end)