
Sable: Destructive
Sable: Destructive makes Sable physics blocks actually break. Real kinetic energy, inertial penetration, density-aware self-damage, radial shockwaves on heavy hits — fast hammers dig deep into dirt, soft hammers shatter against stone, big drops radiate.
Список изменений
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
