With player speed, you really need to plan ahead to keep it synched to your animations.
For bullet spread, here’s how it’s done; remember that you’re spawning projectiles from an socket.
Lethality is tied to the code that you’ve written for the projectile itself.
And as far as modular weapon upgrades goes, I think that this should work.