Whenever a bullet is fired, a random variance factor is generated. The variance factor starts with a value of 1. If the player is moving, the variance factor is set to 4, if the player is moving AND firing full auto, the variance factor is set to 7. If the player is not moving and the No Recoil perk is applied, the variance is set to 0 (perfect accuracy).
The bullet's spawn angle is calculated by taking the muzzle's true angle then randomly adding or subtracting the variance factor.
For example, a player is facing 90 degrees (straight down) and they are moving but not firing full auto. Their bullets will have a variance value of 4. This means that their bullets will be spawned anywhere between 86 and 94 degrees.
+Accuracy decreases variance factor by 50%.