I am currently working on weapons. I've made a really simple optimized system for projectiles and explosions.
Basically, instead of instancing a projectile each time a weapon fire, all projectiles are generated at the very beginning. They are simply hidden and deactivated until a weapon request one of them.
That way you use more RAM but a lot less CPU. And it works great with the networking system in Godot since the nodes always exist and are never destroyed.
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!