Shotgun Pellets Spread and Special Effects 1.12.2 - Herbertofury/Advent-of-Ascension GitHub Wiki
Home · Gun inputs · Ammunition pitfalls
Historical shotguns: pellets, spread and special effects
Minecraft 1.12.2 / AoA 3.3.6. Seventeen direct shotgun registrations are checked against their released constructors. The base behavior and eight selected subclass methods are inspected separately. These are not measured DPS, hit-rate or runtime compatibility results.

Choose by behavior, not a single damage number
Open a gun below and expand 1.12.2 shotgun inputs · pellets and spread. The item browser also offers a Historical shotgun inputs family filter for this release. All 17 panels are lazy and reuse the existing release data.
Damage and pellet count are separate constructor inputs. Multiplying them does not establish how much health one trigger pull removes: pellets may miss, collide or follow special impact logic, and target immunity/defenses and other modifiers still matter. Discharge Shotgun has a zero damage input but a separate explosion path, so a zero-input ranking would misrepresent it.
| Shotgun and portrait | Damage input | Pellets | Delay · ticks | Durability | Knockback factor | Recoil input |
|---|---|---|---|---|---|---|
| Abyssro | 18.5 | 2 | 46 | 1100 | 0.3 | 18 |
| Amplifier | 9 | 5 | 56 | 1100 | 0.2 | 25 |
| Blast Barrel | 13 | 3 | 62 | 740 | 0.4 | 23 |
| Blue Barrel | 14.5 | 3 | 54 | 1120 | 0.4 | 16 |
| Boulder | 11.5 | 4 | 58 | 1080 | 0.4 | 30 |
| Brown Blaster | 6 | 3 | 54 | 300 | 0.4 | 16 |
| Demolisher | 8.5 | 4 | 58 | 730 | 0.4 | 30 |
| Destruction Shotgun | 10.5 | 3 | 56 | 690 | 0.4 | 14 |
| Discharge Shotgun | 0 | 4 | 55 | 160 | 0 | 15 |
| Gimmick | 4.5 | 10 | 68 | 800 | 0.2 | 28 |
| Ginger Blaster | 7 | 5 | 60 | 720 | 0.4 | 19 |
| Long Shot | 15.5 | 2 | 54 | 730 | 0.2 | 12 |
| Mechyro | 13 | 2 | 46 | 720 | 0.3 | 18 |
| Purity Shotgun | 15 | 3 | 56 | 1090 | 0.4 | 14 |
| Purple Punisher | 20.5 | 2 | 52 | 1120 | 0.785 | 23 |
| Red Rocket | 11.5 | 2 | 52 | 500 | 0.785 | 23 |
| Vivo | 7 | 3 | 36 | 710 | 0.3 | 8 |
Make Spreadshot
The released shaped recipe produces 5 Spreadshot:
| Empty | Limonite Bullet | Empty |
|---|---|---|
| Limonite Bullet | Gunpowder | Limonite Bullet |
| Empty | Limonite Ingot | Empty |
Open the illustrated exact recipe.
Sixteen of these seventeen classes inherit the base shotgun ammunition method: it requests 1 + Greed level Spreadshot through the shared inventory helper. Discharge Shotgun overrides this with Discharge Capsules. The projectile object returned by the ammo method is used as a non-null success check; the actual pellet loop constructs its own projectiles. Do not infer that the returned Metal Slug is the pellet spawned by every base shotgun.
The historical inventory-consumption warning also matters for these helper calls. Test exact payment across split stacks before trusting a multi-item cost in a target build.
Firing and spread
The selected BaseShotgun right-click method requires the hand selected by getGunHand and a fully cooled attack strength. Unlike the inspected BaseGun implementation, it calls its ammunition method before its world.isRemote check; only the fireShotgun call is inside that explicit server-side branch.
This is a client/server inventory synchronization test target. It does not prove that the authoritative inventory is charged twice, nor that client prediction necessarily produces a persistent loss.
For the base server firing call:
- Form contribution is 0.15 × Form enchantment level.
- The supplied spread factor is 0.1 × pelletCount × (1 − Form contribution).
- Each pellet receives separate
(randomFloat − 0.5) × spreadFactoroffsets for x, y and z. - The loop attempts the declared number of pellets. A spawn attempt is not a guarantee that every projectile is accepted.
These offsets are constructor inputs, not a measured angle in degrees or an exact range in blocks. Do not clamp or reinterpret them while claiming unchanged behavior without target-build testing.
The successful-ammo branch handles sound, durability, cooldown and recoil, then returns PASS; missing ammo returns FAIL in this method. A PASS result is therefore not itself evidence that the shotgun failed to shoot.
Special cases worth knowing
| Weapon | Checked subclass behavior | What not to assume |
|---|---|---|
| Amplifier | Its impact-effect hook calls the explosion helper with strength argument 1.0 after the base successful-damage gate. | This is not a guaranteed blast radius, terrain destruction rule or total damage value. |
| Blast Barrel | Same selected hook pattern, with strength argument 2.0. | Compare actual helper settings and target behavior before treating it as a simple damage multiplier. |
| Destruction Shotgun | One nextInt(5) == 0 draw occurs before its pellet loop; that volley uses multiplier 1.5 when charged, otherwise 1.0. |
This is one 1-in-5 draw for the volley, not an independent draw for every pellet or a guaranteed every-fifth-shot cycle. |
| Purity Shotgun | The same selected charged-volley branch as Destruction. | The shared branch does not establish identical overall item balance, acquisition or all effects. |
| Long Shot | Its selected Limonite Bullet constructor call passes 6 in the argument position where the base loop passes 4. | No exact distance or lifetime guarantee is derived from that difference alone here. |
| Discharge Shotgun | Builds Discharge Shot projectiles, consumes Discharge Capsules, and its impact method calls the explosion helper with 2.5. | The zero ordinary damage input does not make the explosion harmless; acquisition remains a separate question. |
The base impact method applies its knockback helper only when damage succeeds, the factor is positive and the target is living, then calls the effect hook. It does not apply a universal unconditional knockback distance to every pellet or target.
Small-test checklist
- Select the exact release and item; inspect its ammunition and special-case row.
- Bring a small known supply and test in a safe open area away from valuable builds.
- Compare physical ammo counts and durability, especially with Greed or split stacks.
- Check the correct hand, attack-strength readiness and cooldown before assuming missing ammo.
- Test Form, Control and Brace separately, then together; preserve their actual arithmetic when porting.
- For an overhaul, test client prediction, server acceptance, rejected pellet spawns, projectile collision, impact effects and resource payment. Static references do not certify those systems.
Released registration windows, base methods, eight subclass methods and Spreadshot recipe · Source-model crop provenance.