Player Input action -> Weapon Class Event
Firing a weapon is typically all coded in the weapon class. The input action (in pawn) calls an event in the weapon class. Said event processes the logic.
e.g.
Pawn class, Input action Fire
https://i.imgur.com/S5qlisq.jpg
Weapon Class, Fire Weapon Event
https://i.imgur.com/LJY3Fhc.jpg
Weapon class, firing mode logic
https://i.imgur.com/gtTlcuW.jpg
Each of these firing mode events call “Fire Weapon Sequence function”. This function spawns the projectile, handles recoil, animation (montage), sound fx, muzzle flash, ammo deduction etc.