Hi everyone!
I’m opening this thread to discuss a core mechanic for any survival horror game: Scene Transitions with Data Persistence.
My goal is to work with smaller, optimized maps rather than one giant level. For example, moving from a "Mansion Exterior" map to a "Mansion Interior" map when entering the main door.
The Challenge: When the player switches scenes, everything achieved in the previous map must stay registered. If I pick up an item or solve a puzzle outside, and then return to that exterior map later, those items should still be gone and the puzzle should remain solved.
What I need: I’ve already consulted the framework creators, but I’m looking for someone who has successfully implemented this workflow. I’m looking for guidance on where to start:
-
How to correctly trigger the transition?
-
How to ensure the Save System of the Framework carries over the "World State" between levels?
-
What are the best practices for testing these transitions?
My Commitment: I’m not just looking for a quick fix. I want to learn the process, test it thoroughly, and once I have it working, I promise to create a detailed tutorial for the community. I believe this would be a huge asset for everyone using this Framework to create more complex, multi-level projects.
I’m eager to hear your thoughts and learn from your experience. Let’s help each other grow!
I've managed to make the items the character is carrying save when moving from one level to another, but I can't get broken crates to stay broken.
Below are the BPs I've created. I've created a Trigger Actor that I use in both maps, and I've also assigned a BP to each map.
BP for Inter_map and Exter_map (Interior and Exterior) https://blueprintue.com/blueprint/4we33iek/
Actor trigger : BP_MyLevelTransition https://blueprintue.com/blueprint/ehook4z_/
and added to BP_ModernHorrorGameInstance a boolean variable ShouldAutoLoadAfterTravel (false)
Let's see if I'm on the right track, and what am I missing?
@makiru thank you for your helpful topic! It looks like your Load function has a delay of about 0.5. The BP_WoodenObject class checks the load state after about 0.2 seconds, so it’s possible that the load data hasn’t been received yet when that check happens. This could be the reason why the broken crates are not updating correctly.
Try opening the BP_WoodenObject class and increasing the delay in Begin Play from 0.2 to something like 0.7, then give it another test. Hopefully that should resolve the issue.