Nav Invoker stops working when streaming sub level

I think I have found a bug, or maybe a feature, of the navigation system. I am using a persistent map with a huge nav mesh bounds, but not much else. Then, in game I stream in and out various levels. It turns out when you stream in a new level the Nav Invokers stops working on my units in the first level. The nav mesh will only build on the newly streamed in level. I had hoped to have more than one level in the game at a time. So its a problem the Invoker is not working on the level the unit is currently in. I have tried to register the component after the new level is streamed in but nothing works. The nav mesh works correctly until the new level is streamed. You can watch the nav mesh rebuild on stream of the second level then it will no longer builds in the original level.

Is there a workaround for this?

Hey GameMaster79,

I’ve tested this in a clean project, and it seems to be working fine on my end. Are your Navigation Invokers working normally without streaming in new levels?

Are you using AI that are placed in the world or spawned in?

Can you provide a video of the behavior you’re seeing and ensure that the Show Navigation command is enabled while recording? You can enable it using an Execute Console Command on Begin Play in the persistent level blueprint in case you aren’t aware.

Thanks

Hey Sean,

Thanks for taking the time of this rather convoluted problem. The nav invoker starts off working fine. It is on a character controlled by the player. The character is spawned. I stream in new levels and set the actor location to the new level. This is fine and the nav mesh builds as long as I am in the level I just streams. I have attached a video. You can see at :05 the character is in the new level and the nav mesh is working fine. A third level is streamed in at :13 (this is done on a delay) at which time the nav mesh stops rebuilding. At :29 I go through the gate into that third level you can see the nav mesh is working fine in that streamed level. At :38 I go back to the second level the nav mesh is still not rebuilding.

It seems like when you stream in a new level the nav mesh stops rebuilding in the current level. Thank you for taking a look.
link text

Thanks for the info and the video!

I’m a little confused regarding your setup, however.

I stream in new levels and set the actor location to the new level.

Could you elaborate and explain why you are setting it up this why? If you are streaming in the level you should just be able to continue moving along the generated Nav Mesh without setting the actor location to the new level.

Edit: Also, to clarify, I haven’t experienced this issue in a clean project. It’s worth testing on your end. Create a simplified project with streaming levels and see if you experiencing the same behavior. If so, let me know what steps you took so I can reproduce it on my end.

Thanks Sean,

I did set up a clean project and was unable to recreate the issue. Indeed, my own project only seems to have the issue with regards to that one level getting streamed in. Other levels seem to not cause an issue. As I have worked with it more it seems that the nav mesh stops building on the ground level only when nav mesh is built on the top level. In the video the portal building has a nav invoker. So when its streamed in there is nav built on the top level. The nav on the base level would then stop building. I disabled that invoker and the base level nav mesh will still build until the character goes up to the top level. Causing nav mesh to build on the top level, then when the character goes back to the ground level the nav mesh no longer builds.

I am using set actor location to move the character when he goes through the portal or a door. The point is to change the level quickly. (Think about it like in diablo when you go into a building or in a cave.) but leave the original level still loaded and running because there are game elements going on there in real time. Is there a different way I should move the actor? It does not cause a problem in other levels.

Is there any known issue that causes a nav invoker to stop building nav mesh? Is there any reason why nav invokers would stop working? Could it be the size? Can you rebuild nav mesh in different levels when the different navigable areas are not contiguous?

Well, I solved the problem. For anyone interested. It was the nav mesh settings. I had been messing with them in the past. I believe it was my tile size UU I had it set to 600 in combination with other non-default settings, like having a minimum size. That seemed to not play well with the nav mesh invokers and the overall world size. It sounds oblivious now.

Glad to hear that you were able to resolve the issue. Feel free to reopen this thread if the issue pops up at any point in the future.