All the levels are streamed into the persistent level - when the player saves part way through the game, how do I get the streamed level name for the save-file?
“Get Current Level Name” only gives the persistent level name
This is probably easy with c++ but I know diddly about programming and would like to do it through Blueprint
I have a Persistent map that holds the world elements - then I stream each level independently (the whole map not just a volume). Levels run totally linear and the stream trigger becomes available when the objectives are met. So it shouldn’t be to hard to make a progress save - but for the life of me
You have a lot of stuff in the persistent?
Yes - the landscape, sky, sea, etc. - also some side mission stuff, so they can be available in all the streamed levels.
You stream one level at a time on top of that?
Yes - the level streams in with new objectives and the related objects to unlock the next level. On the stream-unload/load-trigger the current level is streamed out on begin overlap and new level streamed in on end overlap (using a triggerbox). The levels are all connected in a line with no breaks.
You’re streaming with blueprint?
Yes
When the player overlaps a volume you want to stream a new level and record the name of the streamed level?
When the player overlaps a volume you want to stream a new level . . .
No volumes - it’s like an old school game where you play one level at a time, but having a sandbox feel and using the economics of streaming to have more levels and cut the loading time.
you want to stream a new level and record the name of the streamed level?
Yes - when the player saves the game.
So, you see the save game holds the list of levels and an index to the currently running one.
When the level starts, the level BP checks there is a save game and then streams the level we were running last time we saved.
The trigger volume will unload the current level ( which was the most recently save one ), and load the next one ( it increments the index ). Slight bug, it will try and load from a slot that doesn’t exist when the index gets past the end of the array. But this is just an example.
Thanks for this - much appreciation. It’s working real nice, but it’s just loading the level names - no assets. I think I should look for a plugin to handle this - any suggestions?
I made a little mistake initially - now it works really nice. The bug is a bit of a pain. The only way to get it to run from the start is by deleting the SaveSlot - which is a bit tricky for the end user. I’m trying to see if I can run a ‘New Game’ and a ‘Saved game’ from the main menu to force new data into the SaveSlot, any ideas are more than welcome.
And super elegant code man, I’ve seen some pretty clunky approaches to address this issue (of which none really works either).