I'm not sure if this is a bug, an oversight or undefined behaviour but there is a not very well documented function of the "numbullets" field of A_FireBullets that when set to a negative number, stops the first shot from being 100% accurate.
This works all well and fine for weapons that only fire one bullet. But for weapons that fire more than that, setting it to something like -9, just fires one bullet instead.
I have attached a runnable example with 2 defined shotguns. One uses -9 for its numbullets field, and the other is my workaround by calling A_FireBullets 9 times with numbullets set to -1.
I feel it shouldn't have to be that way.