Filling a Daggerfall-esque world with random chunks and hand-built chunks - how to implement that?

Hey folks,

Something I’ve been thinking of is making a game with a world that has a mixture of procedurally generated terrain/landscape/random buildings/etc, but some chunks I want to hand design. Daggerfall does something like that, where someone made tiles of buildings/etc for the towns, and when you get into the wilderness you’re just in pseudo-infinite perlin noise terrain with vegetation scattered about. And as the player moves, various chunks get loaded/unloaded accordingly. The player should use fast travel to teleport to the new area, which would under the hood unload all chunks, then pull in whatever ones are in the new area and spawn them accordingly, but if they hate themselves, they can just move for a few hours and eventually reach the new town after a long enough time. But I’m having trouble picturing how I would implement that in a UE5 level.

My thought is that I would have some ‘chunk’ asset that includes a square of terrain, buildings, items the player picks up/interacts with, NPC actors, etc that I’d design, and then have other chunks that are just some perlin noise terrains with some vegetation scattered about (easily done procedurally), and some actor within UE is handling the spawning/destroying of them dependent on some world position tracking variable, resetting when there’s fast travel.

But some of those chunks would have multiple buildings/floors, lots of interactable things, lights, NPC spawn points with paths theyd take, maybe more specific NPCs, etc. Is that ‘chunk’ idea something I could put into one giant actor blueprint megaclass, or is there a better way? Could I make each chunk its own level, and use level streaming? Does that play nice with world partition? How does world partition handle ‘infinite’ land?