Physics-based spear throwing for Minecraft Java Edition 1.21.11.
A vanilla datapack that makes spears throwable with real momentum-based damage. No mods, no resource packs.

Sneak + Right-click with any spear to throw it.
| Action | Result |
|---|---|
| Sneak + Right-click (standing) | Normal throw |
| Sneak + Right-click (sprinting) | Faster throw, bonus damage |
| Sneak + Right-click (jumping) | Higher arc |
| Sneak + Right-click (wind charge launch) | Inherits blast momentum |
| Sneak + Right-click (in water) | Slowed by drag, low damage |
Cannot be thrown while elytra gliding — swap to a chestplate to throw again.
The spear flies as an item and can be picked up after landing.
Additions:
Critical (>1.8 throw velocity): extra particles, louder hit sound, metallic ring
throwable_spears into your world's datapacks/ folder/reload or re-enter the world[Throwable Spears] Loaded. Sneak + right-click to throw!Edit data/throwable_spears/functions/utils/config.mcfunction:
| Variable | Default | Description |
|---|---|---|
#min_vel |
15 | Min velocity (×100) to deal damage |
#crit_vel |
180 | Velocity threshold for critical effects |
#throw_power |
100 | Base throw speed (×100) |
#momentum_pct |
100 | Player velocity inheritance % |
#mom_keep |
80 | Peak-speed memory kept per tick (×100) |
#throw_cooldown |
10 | Cooldown between throws (ticks) |