I’ve recently done something similar. I used to spawn them like you, by Spawn Actor of Class, but since each actor is a separate BP, with 200+ of them I experienced huge performance drop.
So I went ahead and converted the system from spawning actors to spawning components to make use of the UE instancing system. Here’s what it looks like:
So it creates a component that is not attached to anything, simulates physics, and has no gravity affecting it. The component is then launched, and then I bind to the component hit event that allows me to destroy it and affect the actor that it hits.
The Count section adds all the spawned components into an array, and once the number exceeds 250, it starts destroying the components that were spawned first, if they still exist, and newly spawned components take their places in the array.
Overall it resulted in a great performance boost compared to spawning actors.