So, do you use LoadLevelInstance to spawn an instances of the same level multiple times? If you do you can try to create a Map array inside your game mode where key is a name of a newly created level object and value is a structure with properties that needed to the level generation. When level is loaded it checks if it’s name is added to that map and takes properties from there if possible. Otherwise it creates a new random property set and adds them to the map. This will stabilize your levels during reloading. You can even save random seeds on per-building basis by adding to the map an building object name appended by the level unique name.