1.3.0
Compatibility
Changes
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
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:s8kSCCgD:NNCbbo3W"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:s8kSCCgD:NNCbbo3W"
}

