Navmesh not present within a streaming level when packaged

I am having an issue where streamed levels do not maintain their built navmeshes when packaged for shipping.

I have the following setup:

  • One level, empty except a start location
  • A second level, streamed into the following level and loaded by default, that contains a nav mesh bounds, and a nav mesh entity.
  • The project nav mesh settings are set to dynamic.

When run in editor, everything works as expected and the nav mesh entity moves according to spec. When packaged using the Unreal packaging system and a Windows target, the nav mesh entity does not move. Nav mesh works as expected when the second level is packaged as the default level and not streamed.


I have tried the following options:

  • Pre-cooking maps with File → Cook Content for Windows
  • Custom Unreal Project Launch, with maps specified for cooking and not specified for cooking
  • Specifying maps and folders manually for cooking in Project Settings → Packaging → Packaging → Advanced → List of maps to include in packaged build
  • Project Settings → Packaging → Full Rebuild, on and off
  • Project Settings → Navigation Mesh → Force Rebuild on Load, on and off
  • Creating and building the nav mesh bounds within the empty file the level is streamed into
  • Creating and building nav mesh bounds in both map files

None of these options have yielded results. Does anyone have idea what might be causing this, or what a possible fix is?

Hello Chronometrics,

I am currently investigating this issue, and I will reply with the results of my test as soon as I have information.

I have attempted to reproduce your issue, but I have been unable to do so thus far.

Here is what I did:

  • Created an empty level and a level containing a simple floor with a Navigation Mesh. I added a pawn that would move around randomly on the NavMesh for testing purposes.
  • In the main level, on Begin Play, I loaded the sub level.
  • It worked as expected in editor
  • Upon packaging the game for Windows64, I was seeing consistent behavior with PIE.

Could you provide any steps or information that I could use in attempting to reproduce your issue? What does your setup look like?

Here are the steps I took within my project.

  • File → New Level → Default. Let’s call this “Level A”
  • Add a Nav Mesh Bounds around the platform
  • Add a nav mesh entity from my project

to the platform, set to follow the player.

  • Build lighting/paths
  • File → New Level → Empty. We’ll call this “Master Level”
  • Open the “Levels” panel, drag in “Level A”.
  • Open the level inspector, click “Initially Loaded” and “Initially Visible”
  • Run via “Play”. The nav mesh entity works just fine.
  • While not strictly necessary, my desired nav mesh generation setting is ‘Dynamic’, but changing it affects nothing. Feel free to try it out.
  • Build for shipping, with the default level set to “Master Level” WindowsNoEditor, cooked by the book, via method of preference.
  • Run build, and now nav mesh entity is a bump on a lump, and refuses to move.
  • If you wish, build with “Level A” as the default level - everything works as expected.

[Here are my config files, should that be relevant.][2]

Thank you for providing the additional information. I have attempted to reproduce your issue, but have been unsuccessful using the steps you provided so far. I am going to give it another shot, but would you also mind attempting to reproduce this in a clean project? Also, give the same setup a shot in 4.10.2 or the 4.11 Preview and see if you can get the same results.

Hello,

I am marking this post as resolved, as we have not heard from you in a few days. If this issue persists, feel free to respond to this thread. For any new issues, please create a new Answerhub topic.

Have a great day

The issue has not been resolved, but I have been unable to take time away to debug from the core project due to an approaching milestone. For now, copy-pasting levels together is suitable until such time as the scope of the level grows beyond some unknown future threshold to cause performance issues. I will hopefully be able to revisit the issue next week.

In the meantime, I will be closing the topic. When you have had a chance to attempt a repro in a clean project, please re-open the topic and provide the results.

Thank you

This is also a game-breaking issue for a title we are hoping to ship soon. We are on 4.12 and using static nav mesh data, but I have also tried toggling many of the same options mentioned by Chronometrics. The problem certainly stems from streaming a level in with nav mesh data, but unfortunately we have no choice but to go this route because so many of the game mechanics in the levels directly interact with the nav system.

Hey James,

Is your Nav Mesh Bounds placed in the persistent level? Are you able to reproduce the issue in a clean project?