Troubleshooting World Partitioned Dynamic NavMesh - AI Move To 'Aborted' Error

Hi,

I am trying to use World Partitioned Dynamic NavMesh for large levels (16kmx16km), but I can’t get it to work. After what I would like to think is setting everything up correctly, instead of moving, AI agents report “Aborted.”

I am following this guide from the dev portal: https://dev.epicgames.com/documentation/en-us/unreal-engine/world-partitioned-navigation-mesh

I am using version 5.3.2.

Steps to reproduce:

  1. Create a blank template project. Set Project Settings->NavigationMesh->RuntimeGeneration: Dynamic.

  2. Create a new Empty Open World map.

  3. Add a dynamic skylight, directional light, and a scaled-up box static mesh as the floor.

  4. Add nav bounds volume to the level:
    -Location: X: 0,0; Y: 0,0; Z: 0,0;
    -Size: X: 50000,0; Y: 50000,0; Z: 1000,0;

  5. Configure recast navmesh actor:
    -IsWorldPartitionedNavMesh: true

  6. Create a new pawn class with three components:
    -SphereCollisionComponent: Pawn collision preset
    -SphereMeshComponent: No collision
    -FloatingPawnMovement
    Auto Possess AI: Placed In World or Spawned
    CanEverAffectNavigation: false for all components

7: On FloatingPawn’s Begin Play, add a 3s delay and then call “AIMoveTo” to X: 10.0; Y: 10.0; Z: 0.0.
On failure, print the movement result:

8: Place a pawn in the level, hit play, and note that FloatingPawns stays in place and returns ‘Aborted’ as the movement result. Using the “EnableGDT” command and selecting the pawn, you can see in the Navigation tab that FloatingPawn reports “too far from navmesh”.

So there is supposedly a navmesh, although it’s not showing, which is another indication of something being wrong:

Another weird thing I noticed is that although the pawn shows up whenever playing the level, sometimes begin play doesn’t get called on it, or at least the print command doesn’t, but a simple editor restart fixes that problem.

Now, as far as I know, this is the setup that requires the least amount of steps to reproduce, but I have probably tried every single permutation of any seemingly relevant settings. To keep things simple, there is no landscape in the level. I am also not using navigation invokers.

What am I missing? Does anyone have any experience with world partitioned dynamic navmeshes?

Thanks!

1 Like

Unfortunately, the issue can be replicated in version 5.4 as well, even when using a small navmesh bounds volume.

When setting up the project, the pawns are able to move around without any issues. However, as soon as I enable the ‘IsWorldPartitionedNavMesh’ flag, they start reporting ‘Aborted’ as the movement result.

I would really appreciate any input on this!

Thank you!

1 Like

I met the same issue

Your acceptance radius is bigger than the target location. Also before doing that you can use

  1. Find Path to Location
  2. If Path Valid
  3. AI Move to

So you can be sure there is a path valid.

Thanks, @RedGrimnir but the pawn is placed at 500;500 in the level, so the acceptance radius shouldn’t be a problem. The reason I am sending the pawn to a location manually instead of selecting a random location in the nav radius is because the operation returns the pawn location, which is another indication of something not being right.

@tancen Any insights?

I’ve tried a lot of things, but not success. I think this is a BUG, after all this is an experimental thing, like water

(post deleted by author)

sadly they build just 1/4 navigition

1 Like

This may no longer be relevant to you but I was facing the exact same problem with the exact same UE version. So I’d like to share this for posterity.

After days of debugging, the solution was ultimately simple, stupid, and counterintuitive.

Even though I was using World Partition, what ultimately got it to work for me was turning “IsWorldPartitionedNavMesh” OFF in the RecastNavMesh. I know it makes absolutely no sense, but that’s what ultimately fixed it for me.

It also goes without saying that whatever destination you input into the AI MoveTo node, it needs to be within the bounds of the NavMesh. Otherwise, it will fail.

Mind you, I had upgraded the project to UE 5.6 by the time I got it to work. However, I don’t think it was related to the 5.3.2.