Hey there, it really depends on the complexity you want to achieve. In my game i fire actual projectiles (and dont use line traces) because i want to take into account the gravity drop, ricochet, etc. To do ejecting bullets i used a particle system and i do a anim notify to spawn that particle system in a specific frame of the fire animation, like the muzzle flash and smoke. For the ammo clip it would be part of the weapon and taken out using the animation, but at some point (ideally outside of the players fov) you would swap it by a clip actor that would have physics simulation and drop to the floor.