You would add a script to the reload sequence, and a delay. There are many different ways to add a delay, some are better visually, some are harder to circumvent. I suggest putting a delay in the image states as well as an extra check before it fires, so that they can't beat the delay with clever eventing. I think that there is a default way to do that by setting something on the projectile, or you could use the difference between getSimTime() when it started being reloaded by that player or that client and the current getSimTime() to find the number of 1000ths of a second that have passed.