Why is my path finding choppy?

I’m making a wandering NPC but there movement is choppy. I cant seem to fix it. Hoping you can tell me what’s wrong.

local myHuman = script.Parent:WaitForChild(“Humanoid”)
local myRoot = script.Parent:WaitForChild(“HumanoidRootPart”)
local head = script.Parent:WaitForChild(“Head”)
local lowerTorso = script.Parent:WaitForChild(“Torso”)

local clone = script.Parent:Clone()

function walkRandomly()
local xRand = math.random(-50,50)
local zRand = math.random(-50,50)
local goal = myRoot.Position + Vector3.new(xRand,0,zRand)

local path = game:GetService("PathfindingService"):CreatePath()
path:ComputeAsync(myRoot.Position, goal)
local waypoints = path:GetWaypoints()

if path.Status == Enum.PathStatus.Success then
	for _, waypoint in ipairs(waypoints) do
		if waypoint.Action == Enum.PathWaypointAction.Jump then
			myHuman.Jump = true
		end
		myHuman:MoveTo(waypoint.Position)
		local timeOut = myHuman.MoveToFinished:Wait(1)
		if not timeOut then
			print("Got stuck")
			myHuman.Jump = true
			walkRandomly()
		end
	end
else
	print("Path failed")
	wait(1)
	walkRandomly()
end

end

function main()
walkRandomly()
end

while wait(5) do
main()
end

1 Like

Roblox can’t keep up with your character walking, try to use WalkTo() when the has the player in his view