Special Pickaxes Charging and Mining Safety 1.21.1 - Herbertofury/Advent-of-Ascension GitHub Wiki
Special pickaxes: charging, drops and mining safety
Minecraft 1.21.1 · AoA 3.7.16.1. Choose the effect you need, then check acquisition separately. This guide covers eight selected special implementations in the inspected archive; this scan found shipped output recipes for four of them. A retained class or item picture does not prove a complete survival route.

For the separately retained Goofy Pickaxe, Axe and Shovel, see Goofy tools and Chainsaw behavior.
Recipes and availability

The pictured tag members are examples from included tag data. The # placeholders keep external membership unresolved rather than inventing a substitute. In particular, the Skeletal pattern accepts the active aoa3:precasian_bone tag, not just the pictured Chestbone Fragment. Its inspected local members are Chestbone, Footbone, Legbone and Skullbone Fragments.
| Tool | Shipped output recipe in this scan |
|---|---|
| Gemcracker | Open exact shaped recipe |
| Pickmax | Open exact shaped recipe |
| Emberstone Pickaxe | Open exact shaped recipe |
| Occult Pickaxe | No output recipe found; acquisition remains separate |
| Energistic Pickaxe | No output recipe found; acquisition remains separate |
| Soulstone Pickaxe | No output recipe found; acquisition remains separate |
| Skeletal Pickaxe | Open exact shaped recipe |
| Ornamyte Pickaxe | No output recipe found; acquisition remains separate |
Four absent output recipes do not prove the items are unobtainable. Loot, trade, commands, datapacks and restoration work are separate routes that need their own evidence. Use the ore guide for mining-tier and deposit references; special behavior does not bypass tool-tier requirements automatically.
Energistic: charge before expecting the speed bonus
- The charge component defaults to 0; maximum charge is 2000.
- At least 5 charge is required for the bonus. If the ordinary tool speed is not exactly 1, the charged implementation returns three times that base speed.
- Using the tool on the server transfers up to 20 Spirit into it, limited by available Spirit and remaining charge capacity.
- Mining an eligible block subtracts 5 charge with forced clamping at 0. The speed test and charge subtraction are distinct: a partially charged tool with 4 charge receives no bonus, but that eligible mine call can still drain its remaining 4.
| Before | Ordinary speed | Returned speed input | Charge after mine callback |
|---|---|---|---|
| Charge 0 | 8 | 8 | 0 |
| Charge 4 | 8 | 8 | 0 |
| Charge 5 | 8 | 24 | 0 |
| Charge 6 | 8 | 24 | 1 |
| Charge 2000 | 1 | 1 | 2000 |
At charge 1999 with 20 Spirit, the modeled transfer is only 1. At charge 0 with 3 Spirit, it is 3, still below the bonus threshold. These are input arithmetic examples, not measured block-breaking times. Tool tier, hardness, effects, enchantments and durability still matter.
Pickmax: a volume, not just a flat mining face
The inspected mine callback considers the 26 neighbors in a 3×3×3 cube around the original block, excluding its center. This is not merely the eight neighbors of a flat 3×3 face.
The extra-harvest branch requires server-side execution, a player who is not a FakePlayer, and an original state tagged as stone or cobblestone. Each neighbor must also carry one of those tags and pass a destroy-progress ratio comparison. It then calls the shared extra-harvest helper.
That helper checks interaction permission and a cancellable server block-break hook before removal. This is useful protection integration, not a guarantee that every claim/protection mod works. The Pickmax override itself has no crouching bypass, so do not assume sneak disables the area effect.
Keep valuable stone/cobblestone builds away from testing. The ratio reads the current center position's world state during the callback; its timing and actual neighbor-removal outcomes need target-build testing. No guarantee of 26 successful breaks, exact durability cost or claim-mod compatibility is made here.
Emberstone: smelts drops, with different XP arithmetic
Its loot callback requires a non-air block, nonempty generated loot and effective tool speed above 1. For each existing loot stack with a matching smelting recipe, it copies that recipe's result and multiplies the result count by the original stack count.
The experience call receives the recipe XP cast to an integer, once for that matched stack. It is not multiplied by the input stack count in this callback. For example, 0.7 becomes 0 and 2.5 becomes 2 before the experience-spawn call. Do not promise the same XP behavior as manually smelting that whole stack in a furnace.
A drop with no matching smelting recipe stays unchanged. Recipe-manager selection, tag changes and other loot modifiers can alter the actual result.
Gemcracker: the first eligible drop matters
The loot callback requires a non-air ore-tagged block, nonempty loot and tool speed above 1. It inspects the first loot stack. It does not boost that stack when it is the mined block's own item or belongs to the raw-materials item tag.
For an eligible primary stack, it asks for an additional amount of 1 + RandomUtil.numberUpTo(currentCount), using the shared stack-growth helper. That helper either grows the original stack or returns additional bounded stacks when the addition would exceed its maximum stack size. Other stacks in the loot list are not all independently multiplied.
The bundled TME 1.0.0 helper delegates to RandomSource.nextInt(n), with an exclusive upper bound. For a positive primary count n, the added amount is therefore 1 through n, giving n+1 through 2n total items across the resulting stacks. A count of 1 becomes 2; a count of 4 becomes 5–8. Silk-Touch-like block drops and raw-metal drops can take different branches because of the identity/tag checks. Modded empty-primary-stack cases need testing because the random helper requires a positive bound.
Soulstone: Spirit-funded stone drops
This callback requires stone/cobblestone tags, usable tool speed, nonempty loot and a ServerPlayer in the loot context. It prefers a loot stack whose item equals the mined block's item; otherwise it selects the first stack.
If the 5-Spirit consumption succeeds, it doubles that selected stack's count. It does not double every output stack or every ore. Unlike Gemcracker's shared overflow helper, this path directly sets the doubled count; unusual high-count loot and other modifiers should be tested for delivery/stack handling rather than assumed safe.
Skeletal: bonus bones are conditional
After the non-air, nonempty-loot and tool-speed gates, it invokes oneInNChance(10). On success, a 50-bound random choice selects a bone fragment at 0, Bone Meal below 10, or Bone otherwise. The fragment branch chooses among Skullbone, Chestbone, Legbone and Footbone Fragments.
The bundled helper checks a random float against 1/10, then chooses an integer from 0 through 49. Conditional on the bonus gate passing, the branch shares are 1/50 fragment, 9/50 Bone Meal and 40/50 Bone. Under normal uniform draws, those correspond to approximately 0.2%, 1.8% and 8% per qualifying callback, respectively. They are nominal rates, not a guarantee per mined block; prior gates and floating-point discretization still matter. The fragment branch chooses among four entries. The bonus is appended to existing loot.
Ornamyte: hard-block speed input
When the block's default destroy-time value is at least 50, this override returns ten times the ordinary tool efficiency. Otherwise it leaves that efficiency unchanged.
That threshold is not a promise of instant mining, correct drops from every block or permission to break unbreakable blocks. It does not replace the rest of Minecraft's harvesting, tool-tier and hardness rules.
Occult: temporary ore outlines, with bounded initial scans
Use activates a client-side block scan. Each coordinate loop starts at integer truncation of position−4 and ends before integer truncation of position+4. It collects ore-tagged states and submits an outline batch with deadline GlobalEvents.tick + 150.
This is a box-like scan, not a spherical four-block radius. Truncation toward zero makes fractional positions crossing the coordinate origin asymmetric: the checked examples visit 343, 392, 448 or 512 positions. The maximum in this range model is 512 positions per activation.
The renderer appends batches and removes expired entries by tick. It also rechecks retained block states on odd ticks. Repeated activations can leave overlapping batches until expiration; the inspected add method does not deduplicate them. That is a profiling and regression-test target, not a measured FPS loss or a fix already implemented.
Why a loot effect might not trigger
The shipped global modifier list includes aoa3:loot_modifying_items, with an empty condition list in its own resource. The modifier selects the loot-context tool when present, or a held item from a living attacker in the fallback branch, then invokes the interface only for a matching item type.
The block helper verifies required block-loot parameters; otherwise it returns an air state. The tool-specific checks above can therefore decline non-block or incomplete contexts. A tooltip alone is not proof that every chest, entity or custom loot event receives the effect.
Test and restoration checklist
- Verify exact acquisition separately for the four tools without an output recipe found here.
- Test 0/4/5 charge boundaries, charging near capacity and zero/low Spirit on copied saves.
- Test Pickmax on expendable terrain, with creative/survival modes, protection hooks and nearby valuable blocks.
- Compare Emberstone item counts and XP with real recipe overrides.
- Test modified large loot stacks and delivery for Gemcracker/Soulstone.
- Profile repeated Occult activations, expiration and renderer compatibility; do not claim a measured performance improvement from this inspection.
Fourteen AoA class selections, two bundled helper classes, four recipes and 574 bounded cases · Image and recipe-pattern evidence
Original AoA item art: Tslat and contributors. Source-model crops and explanatory recipe diagrams are not game screenshots. No Java/game code was executed, and runtime mining, economy, compatibility and performance certification remain separate.