All weapons in the template are child classes from 1 base class. The provided examples are there to showcase how you would make a pistol, a shotgun, a sniper. etc.
In general there is no need to make any changes to the base class, unless you want to implement new features that each child class should have.
Child classes have all the functionality from the base class, plus something else that it’s supposed to do, see the provided example weapons on how to tweak a child class to behave a certain way.
The weapon system is fairly advanced, its features include:
-bullet spread while aiming
-critical hit damage
-both projetile and linetrace (hitscan) variations
To make new weapons, please check out the tutorial from HERE.
To see a few examples that extend beyond that of the base class, see the add-ons HERE.