What is the best approach to handling a level based game?

I am pretty sure there is a way to serialize and deserialize all of the actors in the level through c++, and then spawn them back but I don’t know how to do it and personally it would be a big hassle. Currently, I am using structs for every actor I have that I want to store, it works like a family tree(a house struct have doors struct and the windows struct etc) until I only have one struct that I save with SaveGame, every actor I have using the interface of Save/Load that way it’s really easy to handle this. Hope this helps.

So this not an issue, just need an advice. I want to build a Level based game with lots of levels in it.
I am also planning on doing an in-game Level Editor for it later.

And I wonder which way is it better to store Level Data? Create separate Levels for each in-game level inside Unreal Editor and manually set it in Project Settings (this is kinda easy and I have everything I need to do this now, but I feel this solution is a bit messy (with including each Level in Packaging Settings) and much heavier on future game size) or first create Level Editor logic and use it not just for player made levels, but for “proprietary” levels too (this will push everything some time period in the future)?

So, the problems with first solution are kinda obvious, but it is also a much quicker one to get to the initial release of the game.

Second solution is all new ground for me. I am building a game fully in Blueprints, so I need to figure out best way to store my Level Data, I think the only option is SaveGame Objects, which is not the best for this task for sure. Are there other options for file IO in Blueprint? Maybe someone knows actual better way to store this type of data (would be great if the solution didn’t include any plugins only native tools, but it is not required). I will build Level Editor for the game, so it is kinda my problem anyway.

So it is ok to use SaveGame for this? It just seems rather strange, but I guess its ok. Then one more thing: can you modify where you store individual SaveGame objects? Like, when you Save/Load to/from Slot, can you put there a different filepath or something?

I know that you can give a save a name such as “something/savegame” and it will create a folder with the name “something” and a “savegame” file in it but changing the direction completely I think that is only possible in c++

Ok, but can you actually scan the folder for saved games using Blueprint?

I doubt it.

Thank you. I guess I found a solution, which requires me to create a C++ class, but it’s ok.