This datapack depends on: DrakonCore
Arrow Salvage introduces a mechanic that allows players to pick up arrows fired by hostile mobs, including Skeletons, Illusioners, Pillagers, and Strays. However, all non-tipped arrows (and the Stray's Slowness arrows) have a chance to break upon hitting a block. The chance of an arrow breaking is based on the entity who shot it:
Creative Mode players / Infinity-enchanted Bow: 0% (but cannot be picked up)
Players and Dispensers: 30%
Skeletons, Illusioners, Pillagers, and Piglins: 70%
Strays: 90% (but drop special Tipped Slowness arrows!)
This mechanic enhances arrow depletion, but also rewards players for dodging or blocking enemy arrows with extra ammunition. Tipped, spectral, and Infinity-enchanted arrows remain unaffected.
To make this compatible with other datapacks that want to detect an arrow landing (such as Special Arrows, for example), this datapack actually destroys the arrow on the tick after it hits a block. This has no discernible gameplay difference and should allow other datapacks to use the embedded arrow on the tick before it's destroyed.
Stray arrows show the Slowness effect twice in their tooltips