Path:ComputeAsync stops working when parts fall too far

I found this bug after my game’s pathfinding broke in a completely unexplainable way and I had to spend a few hours narrowing down the root cause of it.

It’s a very rare case that no one else seems to have stumbled across so I don’t expect this bug report to be taken particularly seriously - but it’s probably good to make record of it for anyone else who may come across it.

Explanation

In my game, I had set FallenPartsDestroyHeight to -50000 so if a user’s pets fall off the map, it has enough time to automatically teleport back to the player without being consumed by the void.

Yesterday however, my game’s pathfinding suddenly stopped working and producing random paths with different start/endpoints to the ones that I provided.

After hours of swapping round scripts and deleting bits of the Workspace, the culprit turned out to be a single, Un-Anchored, CanCollide false part falling through the map to a considerably low Y position of around -8000.

When this happens, Path:ComputeAsync appears to break completely.

Screenshots

Expand

Working pathfinding with the pink, anchored block at Y = 0

Broken pathfinding after the pink, anchored block is now at Y = -8000

I have an example place that re-produces it if that is needed but it’s fairly easy to do.

Specs

AMD Ryzen 7 4800HS, NVIDIA GeForce RTX 2060

TL;DR

  • Path:ComputeAsync fails to work when a part exists in the Workspace below the position Y = -8000
  • Though this is a fairly unlikely bug, it could affect any game with Pathfinding & either parts that can fall through the map or are intended to be at very low heights.
7 Likes

This is a known issue.
With the navmesh visualization enabled, you will see that the navmesh is correctly generated around the falling part, but the rest of the geometry is displaced.

A fix is in the works for release version v464.
Thanks for reporting it.

12 Likes