ULevelStreaming::SetShouldBeVisible not working as expected in Unreal 5.0.2 -- known bug?

Hi,

I can’t seem to solve this issue that popped up as I migrated my project from 4.27 to 5.0

I stream-load two levels in my persistent level. I do not need them as soon as they are streamed, and I want them to be hidden instead. So what I do, I hide them until I actually need them. Say “StreamedLevel” is the ULevelStreaming* level I’ve streamed in. I hide it this way:

StreamedLevel->SetShouldBeVisible(false);

Then, when I need it, I flip its visibility:

StreamedLevel->SetShouldBeVisible(true);

This worked great in 4.27. However, in 5.0, when I set the level to be visible, all my blueprint actor don’t work properly – as if they weren’t activated:

  • Collision Volumes do not register collisions/overlaps;
  • Niagara system do not activate;
  • Characters who’re supposed to animate (ie. idle animation) do not

After much fiddling, I started thinking I had to set the bIsStatic variable to false, but frankly that yield no results:

StreamedLevel->bIsStatic = false;

…same situation as before.

Can anybody confirm this is not expected behavior? …and if there’s any workaround!

Thanks,
f