On the cusp of understanding this - Weapon Base system

  1. For your first question, it depends. Reload/Fire operate in a similar fashion regardless of the gun type? If so then you can implement the gun base functions and each extended version will use that code when reload/fire events are triggered. However if each gun type needs its own reload/fire functionality then you’ll want to override it in their blueprints.

  2. You need to spawn the gun’s specific blueprint. That way it calls that blueprint’s overridden interface.

  3. I would recommend you create a similar setup as you did for the guns. Base bullet class with an extended version for each gun type that needs different functionality.