I’m currently in the process of developing ‘laser eyes’. When activated, the player’s head should point at the target part (where the player clicks). To achieve this, I do:
local neckPos = neck.C0.p
local targetPos = laserTarget.Position
local lookCFrame = CFrame.new(neckPos, Vector3.new(targetPos.X, neckPos.Y, targetPos.Z))
neck.C0 = lookCFrame
The best way would arguably be to disable the Neck motor and use a constraint of some form, imho. (likely a HingeConstraint, if you want it to look like that) Right now, what you’re doing is conflicting with the Humanoid’s animation, and the Humanoid/AnimationController always ‘wins’.
What I believe your problem is that Neck.C0.p will always be (0, 0.8, 0), or at least really really close due to float precision. From this, the CFrame you make using the two vector constructor is always pointing from (0, 0.8, 0), towards laserTarget.Position, all in worldspace. The videos you posted seem to agree since the farther from spawn you moved, the less your head turned towards the mouse. Try:
local dir = (targetPos - Head.Position).Unit
local lookCFrame = CFrame.new(Vector3.new(), Character.PrimaryPart.CFrame:VectorToObjectSpace(dir))
Edit: I apparently didn’t know neck.C0 is actually (0, 0.8, 0)
Edit2: worldspace
Edit3: objectspace