This function was made for my Procedural Arcade Environment, you can check it out here! My goal was to build an entire environment from one singular blueprint tile. All arcade cabinets, walls, props, lighting, and miscellaneous objects are spawned and placed based on a random seed dictated in the blueprint class. All of the spawn values are stored in a struct which allows local manipulations to any generated asset or instanced blueprint. I ended up making two variants of my tile, one that propagates during run time, and one that propagates during construction. The tile that propagates during run time is more costly, but allows for more flexibility during game play. The construction tile propagates all its props at execution, and because of that has no effect on frame rate. Below you can see the tiles updating at run time!
Below is a portion of the construction graph used for the procedural tile. Most of the graph on the left is generating all the values needed for generating each tile, while most of the graph on the right contains the logic for each element of the tile. (ie: not spawning posters over windows, or turning off lights if there are no fixtures)