I'm making it so that the NPC's head will face the nearest player, works fine. However If the NPC isn't facing perfectly forward then the angle is thrown off. I'm stuck at how to make sure the NPC will always face the player regardless of the base rotation of the head.
while wait() do local closest = nil local count = math.huge for i,v in pairs(game.Players:GetChildren()) do if v.Character then local dist = (v.Character.HumanoidRootPart.Position-script.Parent.HumanoidRootPart.Position).magnitude if dist < count and dist < 30 then closest = v.Character count = dist end end end if closest then local lookAt = CFrame.new(closest.Head.Position,script.Parent.Head.Position) script.Parent.Head.Neck.C1 = CFrame.new(0,-0.5,0) * CFrame.Angles(0,-lookAt.lookVector.X,0) end end
The selection of the closest player works fine, it faces the character fine, just the rotation part.
This is with a perfect orientation, faces the player fine. This is when the base angle is different, as you can see the head is facing to the left of the player.
Thank you for taking the time to read!