Heavy hits now radiate. When a big sub-level slams the ground hard
enough, a stylised shockwave rolls outward from the contact point —
dust ring, "пшшш" sweep sound, then graded damage by distance.
What changed
- New: Shockwave effect. Triggered when total impact kinetic energy
passes shockwaveMinEnergy (default 250 kJ ≈ 4000 kg @ 11 m/s).
Bigger impacts produce bigger waves — radius scales as
sqrt(E / shockwaveReferenceEnergy) × shockwaveRadiusMultiplier,
hard-capped at shockwaveMaxRadius.
- 3-tier graded damage:
- Plants & flowers: trampled out to the full radius. Tall grass,
saplings, ferns, mushrooms, sugar cane, lily pads, sweet berry
bushes, glow lichen, moss carpets, nether sprouts, roots — all
of these get flattened.
- Leaves: 35% per-block break chance inside the inner 70%
of the radius (linear falloff with distance).
- Weak blocks: only on really heavy hits (≥ 5 MJ by default).
60% chance per block inside the inner 35%, restricted to
structurally weak blocks (snow, fire, carpets, candles, redstone
wire, vines, wool, hay, cobwebs, torches, ladders) AND capped
at shockwaveBlockToughnessCeiling. Nothing serious gets griefed.
- Visual: 3 expanding rings of POOF + CLOUD particles plus a single
block-dust burst sampled from the actual ground colour underneath
the impact, so a wave on grass looks green-brown and a wave on
sand looks tan.
- Audio: layered SAND_BREAK + WOOL_BREAK + low-pitched explosion for
the satisfying "пшшш … thump" sweep.
- Crash-safety: shockwave never spawns sub-levels, never touches
tile entities, never breaks bedrock-class blocks, all mutations
wrapped in try/catch. Failure of the visual pipeline never blocks
the destruction pipeline.
New tuning knobs (all auto-persisted to
config/sabledestructive-common.toml, all live-reloadable):
- shockwaveEnabled (default true)
- shockwaveMinEnergy (default 250000.0)
- shockwaveReferenceEnergy (default 1000000.0)
- shockwaveRadiusMultiplier (default 6.0)
- shockwaveMaxRadius (default 32)
- shockwaveVerticalRange (default 3)
- shockwavePlantChance (default 1.0)
- shockwavePlantRadiusFraction (default 1.0)
- shockwaveLeafChance (default 0.35)
- shockwaveLeafRadiusFraction (default 0.7)
- shockwaveBlockChance (default 0.6)
- shockwaveBlockRadiusFraction (default 0.35)
- shockwaveBlockEnergyThreshold (default 5000000.0)
- shockwaveBlockToughnessCeiling (default 30.0)
- shockwaveParticlesPerBlock (default 18)
- shockwaveMaxParticles (default 800)
- shockwaveSoundVolume (default 1.0)
Compatibility
- No breaking changes for end users. Existing 1.2.0 worlds load
as-is. The Addon API is unchanged (API_VERSION still 1).
- To completely disable: /sable-dv set shockwaveEnabled false
- To raise the threshold so only enormous hits trigger:
/sable-dv set shockwaveMinEnergy 5000000.0
Requirements
- Minecraft 1.21.1
- NeoForge 21.1.227+
- Sable 1.1.3+
Credits
- Code: Xylos_Official
- Visuals: Viaquelt
- Built on top of Sable by ryanhcode
License
- MIT
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }