Persistent procedural geometry and level streaming?

You might have misunderstood what I’m trying to do, so I’ll try to explain it better:

Each game, the map should be different.

Each map area/ level is made up of a BP of a random set of buildings.

Each map area/level should stay the same when the levels are loaded or unloaded, but change if the game ends (if the player dies).

I’m basically trying to do a 3d Roguelike, where the map is made of blocks of level instances that are randomized. So for example, all of the wilderness blocks could use the same Level, but there would be variations. All of the city blocks should use the same level, but there are multiple BPs with randomized configurations it can use to generate them.

I’ll try your suggestion with the Game Seed, though I don’t see why I’d need to make a new game mode. Wouldn’t it be the same as just setting a random seed every time the game starts, and passing that into all of my BPs?