Effective Recoil Routing 1.20.1 - Herbertofury/Advent-of-Ascension GitHub Wiki
Recoil: a constructor argument is not the effective path
AoA 3.7.1 / Minecraft 1.20.1. Static inspection only. Updated October 20, 2026.
The released gun constructors store a recoil argument, but the inspected BaseGun.getRecoilModifier() returns a fixed value of approximately 0.35. None of the 180 mapped registrations using this recoil API overrides that getter. Do not label a constructor-column value as the final recoil modifier without tracing its use.
The actual method routes
- 169 registrations: the shared per-shot formula.
- Darkener and Wrecker: for player shooters, multiply the shared result by food level divided by 20. Non-player shooters use the shared result.
- Rocker Rifle: return 0.25 while isShiftKeyDown is true; otherwise use the shared result. This is the mapped shift flag, not a test of every possible crouched pose or forced movement state.
- 8 thrown registrations: return zero from the thrown-weapon per-shot override.
The shared formula checks whether getDamage() equals zero. If so, its damage factor is one; otherwise it raises the stored damage field to the released exponent (approximately 1.4), casts that result to float, and multiplies by the getter (approximately 0.35).
For Aqua Magnum, the constructor stores approximately 0.95, but that is not the getter used by this shared formula. Preserve both values with honest labels. A readable data table should distinguish stored input, resolved method owner and state-dependent behavior.
Why this is not a camera-distance chart
This method result is still an input to the recoil delivery/application path. It does not alone specify rendered displacement, visual recoil animation, sensitivity, view state or client-side effects. No native camera measurement or performance result is claimed.
The 180-row coverage applies only to the inspected gun-derived API. It does not imply blasters, staves, bows, melee weapons or every later version use this implementation.
Regression checks for the combined AoA + TaCZ target
- Compare original and overridden presentation without modifying the original recoil calculation.
- Test Darkener/Wrecker at distinct food levels and with non-player shooters where supported.
- Test Rocker Rifle’s shift flag during state changes, aiming and firing.
- Confirm thrown weapons do not accidentally receive the firearm recoil default.
- Check zero-damage and subclass behavior rather than deriving all values from a constructor table.
- Measure authoritative firing and client response separately, including rejected attempts, repeated use, swaps and remote observers.
Provenance and reading route
Original factual analysis of the released AoA 3.7.1 artifact, checked against the named first-target source pin 0be2106bebb3851c5ba2cc9974e57936a867244d. The inspection records nearest declaring classes and released class hashes; no upstream class files or JARs are redistributed on this page. AoA is by Tslat and contributors.
Official source · Weapon mechanisms and animation QA · Weapon overhaul