I am working on NPCs to walk around my map in game, but after one iteration through the script they seem to stop for 0.5 seconds after each step. What could be causing this, and how could I fix it? Here is my script below:
Script:
local PathfindingService = game:GetService("PathfindingService")
-- Variables for the zombie, its humanoid, and destination
local zombie = script.Parent
local humanoid = zombie:WaitForChild("Humanoid")
local destinations = game.Workspace.Destinations:GetChildren()
-- Endless Loop
while true do
-- Create the path object
for destination = 1,#destinations do
local path = PathfindingService:CreatePath()
local destination2 = destinations[destination]
-- Compute the path
path:ComputeAsync(zombie.HumanoidRootPart.Position, destination2.Position)
-- Get the path waypoints
local waypoints = path:GetWaypoints()
-- Loop through waypoints
for _, waypoint in pairs(waypoints) do
--local part = Instance.new("Part")
--part.Shape = "Ball"
--part.Material = "Neon"
--part.Size = Vector3.new(0.6, 0.6, 0.6)
--part.Position = waypoint.Position
--part.Anchored = true
--part.CanCollide = false
--part.Parent = game.Workspace
-- Move zombie to the next waypoint
humanoid:MoveTo(waypoint.Position)
-- Wait until zombie has reached the waypoint before continuing
humanoid.MoveToFinished:Wait()
end
end
wait(4) --Wait at final destination before repeating loop
end

2 comments
Does anyone know what the problem could be?
Maybe put a wait(.1) in the while loop.