I was able to make the head move up and down in the direction of the mouse, but im unable to figure out how to make it so it can move side to side as well, any ideas?
Character.Torso.Neck.C1 = CFrame.new(0,-.5,0)
Character.Torso.Neck.C0 = CFrame.new(0, 1, 0) * CFrame.Angles(math.sin((Mouse.Hit.p - Mouse.Origin.p).unit.y),0,0)

4 comments
I have a script that might work, but I haven't tested it. Do you want to see it?
might as well
Have you tried the lookAtPos from CFrame.new(Vector3,lookAtPos), and remaking the weld every tick ?
local look = torso.CFrame:inverse()*CFrame.new(head.Position, mouse.Hit.p) neck.C0 = look-look.p+Vector3.new(0,1,0)