Cross Level Support
UE5 Quest System Version: 2.0Cross Level Quests
You can also have quests that start in one level and have objectives or even finish the quest in another level. In our data table we have an array called QuestInLevels. If you leave this array blank the quest system will look for actors related to this quest in every level. This may make sense for some quests, but you will most likely have lots of quests that have no relevance in the current level.
While it is easy to simply ignore this variable and make everything work in whatever level, If you have hundreds to thousands of quests this can become cumbersome on the system during initialization when it has to scan for every quest in every level.
During initialization the system is designed to load through this process in batches, but depending on the relevant actors in the level upon load this can easily stack up to a heavy amount of processing.
If you find yourself in this situation you should look at utilizing the QuestInLevels array, where each element in it is the name of a level that the quest has some sort of relevance in. When the quest system analyzes this variable and sees that it has entries in it, it will then make sure the current level name matches one of the entries before adding it to the list of quests for the current level.
Seamless Travel
This system utilizes seamless travel when traveling from one level to another. If you are not familiar with seamless travel you can learn more about it in the Unreal Documentation's Traveling in Multiplayer page.
Demo World Teleport (BP_Teleport)
The BP_Teleport in the demo world is how we travel from one level to the next. If you are trying to test this in the demo world and it's not doing anything, this is because you are most likely not playing in Standalone Mode (a requirement for seamless travel in the editor).