Combine StaticMeshes at Runtime?

In recent stress testing I learned that the more components a pawn has the more expensive it is to move them.
(specifically that this was the primary cause of lag for my game)
Some of the place holder StaticMeshes Im using at the moment were made in the editor by “cutting” and “adding” BSP geometry together and then converting them to a StaticMesh.

I know they aren’t really related and this is probably not feasible, but Id be regretful if I didn’t at least ask.
Is it possible to combine multiple StaticMeshes into a single StaticMesh at runtime?
The idea is to allow the player to build a custom chain of StaticMeshes in a “design screen”, then merge them all together into a single StaticMesh so I could apply the whole thing to the Pawn as a single Component.
(Just for clarity I am currently working in 4.9.2)

Any thoughts on this would be appreciated.

That’s not really a thing, static meshes need too much data that is generated in the editor.

However you can read the meshes, merge them yourself, and put the result in a runtime mesh component

The BSP created StaticMeshes already have no collision.(I added custom collision at one point, but have since removed the per component collision)
(They are just placeholders anyway)
In my stress testing, I did some debugging by commenting out sections of the movement code to narrow down where the cost was coming from.
Collision is part of it, but every time an actor is moved, the engine has to cycle through EVERY attached child component regardless of collision.
From what I understand collision just adds extra cycles so it can recheck the other attached components against the one it is currently checking.
Collision adds more cost but a good amount of the cost comes simply from the components existing.
From what I can tell this is unavoidable without completely re-coding how movement works, which is why I want to turn multiple StaticMeshes into a single StaticMesh at runtime. If I can do that then I can allow the player to build custom designs, then convert that hierarchy of attached StaticMeshes into a single StaticMesh to improve performance.

Merge Actors wasn’t “officially” supported till 4.12.x, so the version you have may be completely busted.

Is that something I could look at its code in VS? If so where is it?

There’s just be a MergeActor module in 4.16, no idea where it is in 4.9. It’s likely under the Plugins/Experimental in 4.9.

Found it.
Thanks.
I was able to figure out where it was by the name.
I should have known MergeActor was the folders actual name. :stuck_out_tongue: lol

Dunno if I can make it doable, but at least I can look into it now.