Once packaged, a persistent level is unable to create navmesh data properly if the navmesh bounds volumes are only present in its sublevels. The issue can be traced to the UNavigationSystemV1::IsThereAnywhereToBuildNavigation function. When the persistent level is loaded and this function is called, it can only find navmesh bounds in the persistent level because the sublevels haven't been loaded yet. As a result navigation data does not get created and it does not seem to be created either when the sublevel's nav volumes get loaded. You are able to workaround the issue by adding a Nav Mesh Bounds to the Persistent Level and it will generate all Nav Mesh in the sublevels.

This was reported and tested in 4.20.3 (CL-4369336). The issue was reproduced in 4.19.2 (CL-4033788), 4.21 (CL-4472090), and Main 4.22 (CL-4486869)

Steps to Reproduce
  1. Open the UE4 Editor and create a Blank project
  2. Save the default level and create a sublevel by going to Levels>Create New..
  3. With the sublevel selected, duplicate and move the floor over in the default level
  4. Add a Nav Mesh Bounds Volume to the floor in the sublevel and click Build
  5. In the Level Blueprint of the Persistent Level add a node off of Begin Play to run the "Show Navigation" command
  6. In the Level Details for the sublevel set "Initially Loaded" and "Initially Visible" to true
  7. Set the Persistent Level as the default Editor and Game map in Project Settings>Maps & Modes
  8. Package for Win 64 and open the .exe

Results: The navmesh is not generated in the sublevel

Expected: The navmesh is generated in the sublevel.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-65526 in the post.

Login to Vote

Won't Fix
ComponentUE - AI
Affects Versions4.
CreatedOct 19, 2018
ResolvedAug 18, 2021
UpdatedAug 18, 2021
View Jira Issue