You can use Humanoid:MoveTo(). This function causes the Humanoid to attempt to walk to the given location by setting the Humanoid.WalkToPoint and Humanoid.WalkToPartproperties.
You can use Lerp however since it’s a set amount of time to get to the position the farther it is the choppier and faster it goes. You can do lerp is a while true do
While true do
Hrp.CFrame = hrp.CFrameLerp(goalCF, 0.1)
If hrp.Pos-goalCF.Position).Magnitude < 5 then
Break
End
End
Print(“arrived”)
Tho I would just do lerp without the while true do also on my phone so sorry bout the trash formatting