Overidden Parent Class Function not running on child

Either create a variable reference for each specific weapon in the class or use an interface. You can create a custom interface for each weapon or use common interface event names.

Array → get a copy(index) → Call BPI event