HLOD clusters need to be rebuilt

Is anyone else having this when using HLODs?:

  • (manually) created 90 HLOD clusters
  • Generated the HLOD meshes in the HLOD menu
  • The meshes and materials are correctly created and stored in a /maps/HLOD folder
  • Everything seems to be working fine, until you re-open the level
  • When playing the level there is a message saying “HLOD clusters need to be rebuilt”
  • When opening the HLOD menu, most (but not all, see screenshot) HLOD are in status “(Not built)”
  • The HLODs are still present in the folder, and still work in the level, until I press “Save all” in the HLOD ouliner, then only the built HLODs remain (which makes sense).

284926-2019-08-13-18-06-11-hierarchical-lod-outliner.jpg

Some info on my level:

  • I’m having >2500 actors, mostly static
  • No sub-levels
  • 90 HLODs, containing some 1500 actors

It’s difficult to re-produce on a smaller scale, so I’m not really sure how to write a bug report for this… There have been a few questions in the past indicating similar problems, but no resolution has been offered as far as I can see:
[link text][2]
[link text][3]

I have about the same issue on 4.21.
I tried both with and without a HLODSetup Asset.
Build ends with no error or warnings. As soon as I save the level the “HLOD clusters need to be rebuilt” message appears, but LODActors are still fine.
Closing/Reopening the level basically breaks the Actors that become “Not built”, except for one.
Any update on this?

For release 4.22 I found a workaround: this only happens to assets that are parented in the level (also when parented to an empty). If you re-organize your content to be on one hierarchy level the issue disappears. Organizing in folders works without issue.

This doesn’t work for me. All of the actors in the HLOD are in the same world outliner folder, the HLOD volumes are also in the folder and in the same level as the actors I want to merge, none of the actors are children of other actors. Rebuild All appears to work, if I save the merged actors in the Content\HLOD folder it’s still fine, but as soon as I save the levels it breaks. HLOD visualization seems to indicate that the HLODs are still built, but I still have the warnings when I play, and the HLOD outliner says the actors have changed and none of the LODActors are built.

Did you find any solution? Every time I open my level it says HLOD needs to rebuild. I build them again and save them but always some of them remain inbuilt.

No I didn’t… I wrote a bug report at the time but the issue was never fixed. In reality, it’s just a warning though, and the HLODs function as they should, so it doesn’t stand in the way of making a successful build.

How do you eliminate the fricken red letter warning tho dog

Try RightClick and pick RebuildProxyMesh!

No, the issue is that they are flagged as unbuilt every time you re-open the level. So RebuildProxyMesh works only as long as you keep the level open.

Add a ‘disableallscreenmessages’ node to your level BluePrint:

Save situation here

One thing to try (works for me in 4.26.1): Build the HLODs in the dedicated menu and save them there with the “Save All” button. Different from doing a “Build all” (meaning, building lighting, refcaps, HLODs and so on) and then doing a generic “Save All” after, the HLODs seem to hang around if you build and save in the dedicated menu.

I still had the problem too in 4.26.2, but I suspect the problem is caused by locking the levels (Toggle Level Lock).

Edit: It was always the same cluster that was broken, and elements inside it were not visible. I deleted them entirely and it got rid of the problem. I tried with or without locking levels without problems.

So far this is working for me. Thanks for the tip – what a frustrating issue!

Another simple fix for me was (because for 2 hours with chat’s GPT help i could not figure out how to fix it), -

simply create new level,
then in the broken level copy all of the objects with CTRL + C and paste them into the new level with CTRL + V.

The error and the crash is gone.

how? the Event BeginPlay already occupied.

What do you mean it’s already occupied? You can add a node in between or after (or use a sequence node).