Level streaming for procedural world?

Hey all! I use level streaming to generate my world it’s really simple, just a big square that gets filled with tiles all the same size, then I just spawn details on top.

My entire world is flat and I want to keep it that way, just scaling a terrain piece on beginplay to choose level size works fine too for my purposes. The problem is I’d like to be able to have physical details on the terrain. Like mountains to create valleys and paths, or even borders around the levels edge. Maybe some oceans, or lakes and rivers.

My problem is if I do level streaming from what I seen in tutorials and the systems I have in place it’s locked to very basic functionality. You can snap pieces together using a component to act as an end cap or whatever it would be called(Think doom snap maps). You can you some for loops to get a square level(This way requires all tiles are the same exact size).

Both these methods produce okay results, and great results for random dungeons. Problem being I’m trying to proc-gen a world at beginplay. So snapping together creates large gaps(since the tiles can be a range of sizes) and the perfect square is just horrible level design all around.

Is it possible to do the “snap method” to randomly select many “landscapes” of various shapes and then fill any gaps with same mountains/water? Like something like old school baulders gate style? Basically just need ways to create natural looking barriers on the world.

Another problem I could see is overlapping does occur with the snap method. Say a 4 way intersection connects to a bunch of right turns and recursions on it’s self. When I mention landscapes in this it would be more accurate to say HISMs as the mountains are most likely gonna be literal meshes I’ll created to avoid having to actually mess with landscapes at runtime. Ditto for rivers/lakes etc.

Any help appreciated.

I found a decent resource for anyone who has similar questions Will try this after work and see if I can use this code to detect gaps, again any help appreciated/bump.