Glad to be of help.
And yes, spawning lots of static meshes uses a good amount of performance. That’s why instances are a way to generate a lot of objects without the downside of tearing your performance down. Instances are however more difficult to set up, because they have limited options to modify an instance. The downside of instances are that you can’t use different materials on individual instances. Because instances are basicly just a copy of the main mesh it was copied from, they share the same material and the same properties.
Multiple colliders can also mean a slow down of your performance. If you continue to use static meshes, try to make them less complex and more efficient. Make lesser sessions and generally optimize your blueprint. You are also running it in the construction script with two for loops, which are executed on a frame by frame timing. So it is pretty normal that you get lags. If you don’t want the sections to be generated every time you move your blueprint, you can create a bool and set a branch right after your “Construction Script” node. Call it “Generate meshes?” or whatever you want. Then expose the bool to the editor (click on the closed eye icon on the left side of your bool variable). Set the initial bool value to false and plug your newly created bool variable into your “branch” red condition pin.
In the details panel of your blueprint in the world outliner will appear a bool called “Generate meshes?” or whatever you called the bool. If you then tick the box of the bool, it will then first generate your meshes. And if you want to move it again just untick the bool.
Have fun with your project! :).