I've made an npc and a script to go with it which are supposed to track down the nearest player and get to them through pathfinding. However, when I try to run the script, the npc does not move at all. Here is the script:

local findNearestTorso = function()
	local torsotracked = nil
	local torsodisttemp = nil
	local torsodist = 0
	if game.Players:GetChildren() then for i,v in pairs(game.Players:GetChildren()) do
		if v.Character:FindFirstChild("HumanoidRootPart") then
			torsodisttemp = (v.Character.Torso.Position - script.Parent.Torso.Position).magnitude
			if torsodisttemp > torsodist then
				torsotracked = v.Character.Torso
				torsodist = (v.Character.Torso.Position - script.Parent.Torso.Position).magnitude
			end
		end
	end
	return(torsotracked)
end end
local table1 = {}
local pathservice = game:GetService("PathfindingService")
while wait() do
	local start = script.Parent.Torso
	local finish = findNearestTorso()
	if finish then
		local path = pathservice:FindPathAsync(start.Position,finish.Position)
		local points = path:GetWaypoints()
		for i,v in pairs(points) do
			local brick = Instance.new("Part",workspace)
			brick.Size = Vector3.new(0.3,0.3,0.3)
			brick.Anchored = true
			brick.CanCollide = false
			brick.Material = "Neon"
			brick.Color = Color3.new(1,1,1)
			brick.CFrame = CFrame.new(v.Position)
			table.insert(table1,brick)
			if v.Action == "Walk" then
				script.Parent.Humanoid.WalkToPoint = v.Position
				repeat
					local dist = (start.Position-v.Position).magnitude
					wait(3)
				until dist < 1
			elseif v.Action == "Jump" then
				script.Parent.Humanoid.WalkToPoint = v.Position
				repeat
					script.Parent.Humanoid.Jump = true
					local dist = (start.Position-v.Position).magnitude
					wait(3)
				until dist < 1
			end
			wait()
		end
		for i,v in pairs(table1) do
			v:Destroy()
		end
	end
end

The thing with 'brick' is to visualize the path and it works, even though the npc does not move. Also, there is no error in output. What am I doing wrong?