What do you guys think the best way of making a pet movement system is?

This may work for you, as it did with in the past with one of my games for certain movements. However, using body movers and constraints will make things appear to move much smoother, versus a constant CFrame update which does not replicate as nicely as the other solution can.

Unless an Animation would suit better, I recommend using invisible/non-colliding parts as reference points, and parenting the AlignPosition/Orientation with a lower max velocity to the pet/object. (Edit : Lower max velocity will make the pets “follow”, but if it’s something like an object flying towards a magnet, then a higher max velocity would be better.)

I tried using plane CFrames and it was choppy. Using LERP made is very smooth. I replicate pets in the client side, so everything is updated smoothly.