promotional bannermobile promotional banner

Crashy!

What if your house could become a weapon?
Back to Files

crashy-1.21.1-1.1+neoforge.jar

File namecrashy-1.21.1-1.1+neoforge.jar
Uploader
pycodderpycodder
Uploaded
Jul 29, 2026
Downloads
14
Size
227.4 KB
Mod Loaders
NeoForge
File ID
8532045
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:crashy-1627716:8532045"

Learn more about Curse Maven

What's new

Crashy! 1.1

Destruction is no longer something only the launcher can cause: anything with physics that comes down hard now breaks, Create: Aeronautics airships included. Damage depends on what actually hit you, big crashes no longer take the server down, and three crashes are gone.


Added

Anything with physics crashes, not just what you fired. An airship that loses its lift, a build you switched physics on and simply dropped, a contraption another mod is moving — all of it now breaks on impact the same way a launched object does, and digs the same craters.

There is no dependency on any of those mods. Everything Sable simulates is a sub-level, so this mod watches sub-levels; whichever mod built the thing is not its business. Create: Aeronautics is built on Sable, which is why its airships are covered without a line of code that knows they exist.

An object is picked up once it is heavier than 8 kg — roughly a kilogram per block — and moving faster than 7 m/s. Both numbers, and the switch that turns the whole thing off, live under [unlaunched] in config/crashy-server.toml. The speed only has to rule out setting something down: how much a hit actually breaks is decided by mass and speed together, so a heavy airship at cruising speed digs a real crater, while a small build at the same speed does not reach the minimum crater size and nothing happens at all.

After breaking something, an object is left alone for five seconds before it may crash again. Otherwise a hull grinding along a slope would crash on every tick of contact.

"Debris lies for" on the F7 screen — how long shards stay as physics blocks after coming to rest, from 0 to 120 seconds, ten by default. Set it high if you want the wreckage to stay put.


Changed

Damage scales with mass, not just speed. A single block and a 400-block tower travelling at the same speed used to dig identical craters. Crater size and breaking force now both come from kinetic energy, so at full launch speed:

Object Crater Breaking force
1 block ~1 block 12 — glass, planks, barely cobblestone
20 blocks ~3 blocks 25 — cobblestone comfortably
400 blocks the configured maximum 60 — everything short of obsidian

Crater volume scaling with energy is roughly how it works in reality, and it happens to give the numbers the game wants.

The force column only bites in Realistic mode, where it is weighed against each block's blast resistance. Instant mode breaks whatever is inside the radius by definition, obsidian included.

Bedrock is never destroyed, in any mode. Nor is anything else with a hardness of -1 — barriers, command blocks, end portal frames, structure blocks. They are skipped before any force is calculated.

Objects keep going after breaking through. Something with enough behind it to punch through a floor stays tracked and keeps breaking what it meets instead of being written off after the first hit, up to three impacts. Each one is weighed on what is left of the object, so it digs less as it sheds blocks, and impacts are spaced six ticks apart so ploughing through a floor reads as one crash rather than one per tick of contact.

One launch may break 500 blocks in total, shared across every impact it makes. Per-impact caps alone could not bound this: an object going through several floors simply multiplied the work by the number of floors.

Large crashes are spread over time rather than done at once. A 400-block build hitting the ground used to ask for over five hundred separate physics bodies inside a single tick — each one a Sable plot, a chunk and a rigid body — and the server went down under the allocation. Shattering is now queued and processed at a fixed budget per tick, so the crater forms over about a second.

There is still a ceiling on how much debris may be alive at once, but reaching it no longer throws the rest of the crash away. The oldest shards are settled back into the world early to make room, which keeps the number of live bodies exactly where it was while letting the next crash through. Before, for as long as a crater took to settle, nothing anywhere in the world could break — you could throw a house at a wall in that window and watch it bounce off.

Craters no longer heal themselves seconds after the hit. Debris lies where it landed for the configured time, and is thrown clear hard enough that it does not simply drop back into the hole it came from.


Fixed

Large objects registering no impact at all. Impact detection swept the whole volume of an object's bounding box, and gave up — reporting that nothing had been hit — once that volume grew past its scan budget. An airship's bounding box passes that budget on its own, so a ship could come down on solid ground and land without a scratch. Only the faces travelling forwards are scanned now, which makes the work depend on how wide an object is rather than how big it is, and every such face is scanned rather than only the one leading most strongly. A ship easing down as it flies is checked along its underside and its nose, so the mountain in front of it counts.

RuntimeException: Body has been removed, taking the server down mid-flight. Removing a physics body only flags it; Sable clears flagged bodies out in the middle of its physics tick. That tick begins by unloading bodies whose chunks have gone away, and unloading one serialises it together with every body its bounding box touches — without checking whether those are still alive. A crater is exactly that arrangement: dozens of overlapping shards, several of them retired every tick. The flag is now never allowed to outlive the tick that set it.

Rapier native panic: No center of mass for body!, usually followed by PoisonError. When an assembly came out with no usable mass, this mod declined to use the result — but by then the body was already in the physics scene, and Rapier's next step aborts the entire process over it. Such a body is now handed straight back. The PoisonError further down the log is the second failure, the poisoned lock, not the cause.


Notes

Existing worlds keep their current settings; a new world starts from settleDelayTicks in the config file.

New icon, while I was at it.

If a big crash still stutters on your hardware, lower shattersPerTick — the crater takes longer to form but each tick does less work. If you have headroom and want bigger craters, raise maxBlocksPerLaunch and maxDestructionRadius together: raising the radius alone will just run into the launch budget, and raising the block caps alone will just run into the debris ceiling.

If airships break more easily than you would like, raise unlaunchedMinSpeed. If they should never break unless you fire them yourself, set crashUnlaunchedObjects = false.

This mod has no related projects