I made a script where npc moves to a checkpoint across the room and then to 2 checkpoints close to it. When script is activated he does as he is programmed to do, but whenever the player gets near to the npc or his checkpoints and paths he lags out a bit then continues but as he does ,at every other checkpoint he gets to, he walks in place for about 5 seconds before walking to another one where he does the same, any ideas on how to fix this? I already disabled player/npc collisions but don't know how to prevent this from happening.

If player stays in place, npc does it how he is supossed to do it, but when player gets near he breaks like I described

local teo = game.Workspace.Bodies.teo
local edo = game.Workspace.Bodies.edo

local point1 = game.Workspace.NPCPOINTS.npecpoint1
local point2 = game.Workspace.NPCPOINTS.npecpoint2
local point3 = game.Workspace.NPCPOINTS.npecpoint3
local point4 = game.Workspace.NPCPOINTS.npecpoint4

local idleteo = teo.Animation1
local walkteo = teo.WalkAnim
local idleteotrack = teo.Humanoid:LoadAnimation(idleteo)
local walkteotrack = teo.Humanoid:LoadAnimation(walkteo)

local idleedo = edo.Animation1
local walkedo = edo.WalkAnim
local idleedotrack = edo.Humanoid:LoadAnimation(idleedo)
local walkedotrack = edo.Humanoid:LoadAnimation(walkedo)

function onTouch(hit)
	idleedotrack:Play()
	walkteotrack:Play()
	teo.Humanoid:MoveTo(point1.Position)
	teo.Humanoid.MoveToFinished:Wait()
	teo.Humanoid:MoveTo(point2.Position)
	teo.Humanoid.MoveToFinished:Wait()
	teo.Humanoid:MoveTo(point3.Position)
	teo.Humanoid.MoveToFinished:Wait()
	walkteotrack:Stop()
	idleedotrack:Stop()
	idleteotrack:Play()
	walkedotrack:Play()
	edo.Humanoid:MoveTo(point4.Position)
	edo.Humanoid.MoveToFinished:Wait()
	walkedotrack:Stop()
	idleedotrack:Play()
	
end

script.Parent.Touched:Connect(onTouch)

here is a video of it happening

http://youtu.be/ciM1VgbkYa0

After more testing I found out that npc only walks in place if a player is close to it, but as seen in the video I want players to be free to watch npcs talk to each other from any position like in all of Half life games, does anybody know why this is happening and how to fix it?