WorldPartition Hashset Generation Crash

//

// Finalize streaming object

//

check(RuntimeStreamingData.IsEmpty());

^ blows up, in WorldPartitionRuntimeHashSetStreamingGeneration.cpp

So I don’t understand what exactly the generation system is doing so that it needs to fill and then drain RuntimeStreamingData and ensure that it’s empty. There’s no comments to indicate what might be a problem or what was a problem in the past and why this check is there now.

But - some content changed in the map and now all of a sudden we’re unable to cook this map, and it crashes. I need to know if there’s been a fix for this issue, or tips on how i can work around it / track down what’s actually causing it.

When i dump the contents of the thing nothing really stands out, there’s a buncha things in the array for a lot of different cells…etc. If the system blew a gasket earlier on it didn’t log an error.

EDIT -

Is the UWorldPartitionRuntimeHashSet suppose to save the contents of TArray<FRuntimePartitionStreamingData> RuntimeStreamingData;?

Other maps don’t have this data on load in the editor - but this map has it saved, which is why it’s all messed up, i think. If this data is meant to be transient, the property should be marked as such.

I’m not sure how it ended up in this situation, but id like to know if I can safely mark ths property as transient…etc.

Hello,

We recently submitted cl 43347444, which should fix the issue.

Thanks,

Ryan

I remember the reason foliage actors were disabled in a WP level being the concern for the number of actor files that could quickly shoot up, since WP enforces the use of OFPA. However, it is definitely very useful for painting large numbers of actors into the world, and I brought it up with the team, which will investigate it further. So, currently, it’s uncertain whether the foliage tool or PCG will end up addressing this need.

-Ryan

Cool, i didn’t do quite the same thing - i ended up flushing streaming at the top of Generating streaming…

This may or may not be related - because I was looking everywhere for issues and found this at the same time and thought it might be related.

We ran into an issue where an artist wanted to use the foliage painting tool to place regular Blueprint actors. The foliage system makes painting stuff in the world really easy—much better than dragging things in one at a time from the Content Browser—and it handles randomization and scatter really well.

In non-World Partition maps, this kind of thing works using Foliage_Actors, but in World Partition (OFPA), that feature was effectively disabled. So to work around it, the artist painted regular foliage and then converted it to Foliage_Actors, which bypasses the check that prevented it from being created.

That technically works, but it creates bad data:

  • The resulting actors aren’t marked external.
  • They’re hidden from the outliner because they’re still treated like foliage.
  • They end up breaking the cook, and can silently poison a map.

We looked for better ways to do this and found there used to be an Actor Placement plugin, but it was removed - it was a bit of a small side project that has “theoretically better replacements”. If yall can work it into the schedule, you should figure out how to get actor foliage working again with WP, now that both it and the actor placement plugin are gone - there’s no longer a good solution to the freeform capability that previously existed.

I imagine a tool could be built with PCG that more or less facilitated the same idea and would be more user customizable, but right now there’s a real lacking of out of the box capability.