Working with complex blueprints

Hello,

I’m attempting to make a random room generator system where I create chunks of the room called ‘sections’ in blueprints, and then in the Room blueprint, I’m placing these sections down as ChildActorComponents where I want them and they randomize at BeginPlay(). The sections are just a group of StaticMeshComponents.

However, some rooms can come close to 100 or so of these section chunks, and editing the room blueprint can become slow. I’ve tried many solutions. I’ve even tried creating my own ChildActorComponent that only updates once when I press a button. But it seems to be the fact that with 100 or so of these section chunks, the Blueprint Editor lags for a second on every action. If I place it in the level, there is no lag changing things in the main viewport.

I’ve also tried creating the room with actors in the Viewport and converting selected Actors to a blueprint class to circumvent the lag, but this way isn’t practical either and can cause crashes.

Is there any way to improve the performance to be more manageable?

Thank you,
Corey

You might want to consider using instanced static mesh components for building your room sections. Assuming that some of the meshes your using are just copies of each other, then this should help with performance quite a bit.

If your not familiar with how those work, they allow you to take a static mesh and add multiple instances of it, the entire instanced static mesh group is treated as a whole and increases performance.

Hope that helps.

Thank you for the advice MaxFights, however using instanced static mesh components doesn’t seem to improve the Blueprint Editor performance at all. There’s still a second of hitching on every action. Dynamic static mesh instances also seem to have collision issues. I can have 1000 static mesh components in the blueprint and it won’t affect the performance of the blueprint editor. My guess is the actors spawned by the ChildActorComponents in the blueprint are causing this.