Left Click to fire. R to reload. Space to change RPM. Scratch seems to have a hard time calculating different rates of fire, so the only relevant ones that actually work properly are >900rpm, 700rpm, 400rpm and 250rpm. All other values in between will get rounded towards those values. Probably because of frame timing, idk and I don't really care either. 900rpm itself will work with some lag, >900rpm will round to 900rpm with no lag.
Base spread determines the initial accuracy of the weapon, hence the term "base". Spread values begin at this number and will always return to this number. Spread Increase Per Shot (otherwise referred to as SIPS) determines the recoil value increase per shot. This is the variable that controls how inaccurate the weapon is/becomes during sustained fire. SpreadVALUE is just a co-efficient used to determine how much SIPS increases per shot. Changing this will change how much additional spread per shot the weapon experiences. This value also determines the rate at which spread DECREASES, using a calculation of [ 0 - SpreadVALUE multiplied by a factor of 1.2] at the same speed as RATE OF FIRE. Based on the calculation within the script, this means spread will always decrease slightly faster than it will increase. MAXspread determines how much spread is allowed to increase to. The lower the value, the less spread will be allowed to increase.