when i spawn it waits a second to let the character spawn and then after that second it immediately prints no path ;/
wait(1) local plr = game.Players.LocalPlayer local char = plr.Character local pathfind = game:GetService("PathfindingService") local p1 = pathfind:FindPathAsync(char.LowerTorso.Position,workspace.ptgt.Position) if p1.Status == Enum.PathStatus.Success then for i,v in pairs(p1:GetWaypoints())do char.Humanoid:MoveTo(v) char.MoveToFinished:Wait() if v.Action == Enum.PathWaypointAction.Jump then char.Humanoid.Jump = true end end else print "no path" end
output: no path
(it is a local script)
Your script will only run once so what you need to do is put the pathfinding script inside a while loop like this
wait(1) local plr = game.Players.LocalPlayer local char = plr.Character while wait(1) do -- it will create a new path every 1 second, you can change it local pathfind = game:GetService("PathfindingService") local p1 = pathfind:FindPathAsync(char.LowerTorso.Position,workspace.ptgt.Position) if p1.Status == Enum.PathStatus.Success then for i,v in pairs(p1:GetWaypoints())do char.Humanoid:MoveTo(v) char.MoveToFinished:Wait() if v.Action == Enum.PathWaypointAction.Jump then char.Humanoid.Jump = true end end else print "no path" end end
When the game runs, the script will check if there is anything nearby to move to and if there isn't, then the script will just stop since it ran only once.