You don’t actually have to hook it up to runservice to have the animation follow a part. I would reccomend just using the CFrame changed signal to reposition the animation:
Part:GetPropertyChangedSignal("CFrame"):Connect(function()
Animation:SetOrigin(Part.CFrame)
end)
While it is a simple feature, the implementation is also incredibly easy as well as being more customizable.