It may be beneficial to not use a physical object for this. If you wish to add a bullet for animation reasons, then I recommend using tweening and a very slow period. However, for your gun itself, it would be much smarted to use ray casting. Blocks take up an okay chunk of work to do ( imaging if a game full of people were shooting, you could have hundreds of fast moving blocks with scripts ).
Using recasting, you can easily determine is the bullet will hit somebody, figure out who, preform all calculations ahead of time, and instead use a bullet purely for animation reasons. I've had poor experience for the touched event.
You can find a tutorial by Roblox here, which'll show you how to make a ray gun, that implements raycasting. Once you get the hang of it, you can replace the code with your current system, and possibly add a bullet that travels from A to B.
https://developer.roblox.com/articles/Making-a-ray-casting-laser-gun-in-Roblox