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.

Four historical shotgun previews with exact pellet, timing and recoil inputs

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) × spreadFactor offsets 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

  1. Select the exact release and item; inspect its ammunition and special-case row.
  2. Bring a small known supply and test in a safe open area away from valuable builds.
  3. Compare physical ammo counts and durability, especially with Greed or split stacks.
  4. Check the correct hand, attack-strength readiness and cooldown before assuming missing ammo.
  5. Test Form, Control and Brace separately, then together; preserve their actual arithmetic when porting.
  6. 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.