Humanoid:MoveTo() isnt smooth?

Whenever I get far from the car (humanoid being moved), the MoveTo is smooth how it should be. However, when I get close, the MoveTo stops at each waypoint individually, then resumes. I dont know why this happens as I dont have any waits in the program, other than running each MoveTo after the previous finished

local path = workspace.Map.Path

for i = #path:GetChildren(), 1, -1 do 
	local p = path:FindFirstChild(i).Position
	
	if p then 
		script.Parent.Humanoid:MoveTo(p)
		script.Parent.Humanoid.MoveToFinished:Wait()
	end
end

Its because of you are using MoveToFinished:Wait().
So whenever the npc done moving the one moving point it waits.

If i remove this how else can I make it move to each waypoint instead of moving to the other side without travelling through the path? Also if this was the case, why is it only when Im near the car

as @Synitx said, the character waits when a waypoint is reached. If the path is made of parts, locate the last part and use movedtofinished then. However i dont see the use of movedtofinish

Theres a way that i know, you can use pathfinding service
Created invisible wall around the path, and remove those walls from client so it will not collide with the player, but with those npc and since you are using path finding they will find their way to the end.

You need to create 2 points, starting and ending point.

Without movetofinished, it will instantly make the car move to the end of the trail without it going to every waypoint.

I already tried pathfindingservice. the same issue happen as you use moveto with pathfinding service

It may be a ‘Network Ownership’ issue.
When you take over Network Ownership by getting closer there’s a skip causing the lag as it transfers from Server to Client.

ohhhh that makes sense. thank you :smiley: