Preprocessing data from a World Partition world

Thank you for your answer, but I am afraid the commandlet has some huge disadvangtages - mainly that it is a separate process that needs to run over all of the data, and save the data into some “database”.

I need the system to work automatically on each game cook/PIE start (in PIE, we probably can run the process for some cells and ignore the far away ones). The idea that a manual action would be needed before every PIE start is just unworkable, our scripters would have my head for this.

I am also trying to save the data in some actor and not an actual independent asset. In our previous project (not unreal) we ended up with 5 different preprocessed data sets - I really want to avoid needing to create and link 5 very specific assets for each level you create.

One solution I found was to create an Actor (that is not Spatially loaded) and in it’s PreSave iterate over all ActorDescContainerInstances, load all the actors, and gather the data. I am afraid that for larger level cooks, loading actors out of order like this is going to slow down the cook quite a bit.

For that reason, I am trying to move the logic into WorldPartitionRuntimeCellTransformer - however I am running back into the original issue - World cells are cooked after the level is cooked and saved and I cannot insert any data into the base level at that point.

Is there a way to force the base level to resave? Or even better, Is there a place where I could put the data, so that it would be available from when the cell is unstreamed? It seems to be possible to force-load one specific actor from a world cell, if I have it’s SoftObjectPath - so I could save all the data for one cell into a specific actor and then force-load it, leaving the rest of the cell unloaded. Or somehow store UserAssetData on the UWorldPartitionRuntimeLevelStreamingCell?