Initial NavFilter grab is stale

Summary

Initial use of a NavFilter gives invalid results. Running AIController->MoveToLocation() and then reacquiring the NavFilter gives a working filter.

Please select what you are reporting on:

Creative

What Type of Bug are you experiencing?

AI

Steps to Reproduce

  1. Create a NavFilter set to exclude NavArea_Default.
  2. Use NavModifierVolume to create a small alternate NavArea (NavArea2, size 100x100x100).
  3. Create a test Character with a link to the NavFilter (as a class property or through AIController).
  4. Place the test Character on NavArea2.
  5. Acquire the NavData and NavFilter through NavSystem->GetNavDataForProps(), NavData->GetQueryFilter().
  6. Run NavSystem->GetRandomReachablePointInRadius() with Actor location as start location, 10000.f radius, and acquired NavData and NavFilter.
  7. Run AIController->MoveToLocation() to this random location.
  8. Acquire new UpdatedNavFilter through NavData->GetQueryFilter().
  9. Run NavSystem->GetRandomReachablePointInRadius() with UpdatedNavFilter.
  10. Run AIController->MoveToLocation() to new random location.

Expected Result

The first NavFilter should filter out NavArea_Default as an invalid area for GetRandomReachablePointInRadius().

Observed Result

The first NavFilter does not filter correctly and generates and invalid point. The first MoveToLocation() fails. This MoveToLocation() call updates the filter state somehow.

Reacquiring the filter as UpdatedNavFilter makes it work properly, and the second GetRandomReachablePointInRadius() filters out NavArea_Default as intended and only generates a point within NavArea2.

Platform(s)

Windows 11

Upload an image

Screenshot 2026-03-23 005555.png

Additional Notes

Output log image included.

First GetRandomReachablePointInRadius() is able to generate a point, but the point is invalid for MoveToLocation().

After reacquiring the filter, both GetRandomReachablePointInRadius() and MoveToLocation() work correctly.