I have a pet system that uses body moves (body position & body gyro) to have the pet float above and behind the player. The problem is that some Pets will face backwards as opposed to the correct way. This is because the orientation of the Pets was not made the same way (made in blender)
What I do to combat this is I set the CFrame to its own Position with a lookAt direction that points forwards from the humanoidRootPart. Try this and let me know if it works
CFrame.lookAt(pos, lookAt) returns a cframe with the position of pos and a rotation that makes it point towards lookAt. Not sure what the exact equivalent is but it does return a CFrame
That means the body has a wrong front orientation in comparison with the ears and face. Can you confirm the face decal is set to the front face of the pet head? Also you can just rotate the pet head 90 degrees so it matches and then re-weld it if you have it welded.
Just to be clear this is how the Pet is structured, the Ears and Body are the same MeshPart. Also, turning it 90 degrees would work for this Pet, but since some others are opposite orientation, it would mean the pet would face backwards. The primary part of the Pig model is the Pig MeshPart.
Hmm to fix pets that have it backwards you could add an invisible part that is the primarypart and make sure that has the right orientation. Then just weld it to the pet model. That way it shouldn’t visually change but should still work just fine for all pets without much work