Making NPC arms and head point to target

I have a soldier AI, which I think is going good so far. The way I have it turn to targets is by using BodyGyro, but it only turns on the X and Z axis so that the whole NPC doesn’t flop over when aiming for a higher target. I just want to figure out how to get only the arms and head to point at higher targets, to make it look more realistic. Thanks for the help!

Head.CFrame = CFrame.lookAt(Head.Position, Target.Position)

Use the CFrame.lookAt constructor function.

That won’t work because, instead of turning just the head, it will turn the whole entire character for some reason.

Was just a barebones example, if you want to move specific limbs only you’ll need to manipulate the NPC’s Motor6D instances.