Ballistics - mess1re/axiomata GitHub Wiki

Axiomata supplies flight, penetration and block-impact calculations for mods that use its ballistics API. The consuming mod supplies the weapons, ammunition, launch speeds, damage settings and terrain permissions.

Flight

One block is treated as one metre. Launch speeds are in m/s; entity movement uses blocks per tick, at 20 ticks per second.

Gravity is 9.81 m/s². Air resistance depends on mass, diameter and drag coefficient, and increases with speed. A rocket motor adds thrust for its configured burn time; after that, the projectile continues under drag and gravity.

Penetration and impacts

Penetration depends on projectile mass, diameter and impact speed, the material's strength and resistance, and the thickness of its collision shape. The projectile loses speed while passing through material. Its hardness also limits which blocks it can penetrate.

Blocks that stop a projectile can still take damage. Energy lost at the impact produces a crater and cracks around it. A hard projectile and a brittle stone payload do not leave the same crater, even at the same kinetic energy. An explosive payload adds chemical energy separately; a solid projectile does not need an explosive charge to break blocks.

Unbreakable blocks remain protected. The consuming mod can also protect blocks through its own tags, permissions and claim checks.

Contact impacts

A blunt strike uses a contact footprint and kinetic energy, calculated as 0.5 × mass × speed². That energy is shared between the blocks touched by the footprint and connected surface blocks within the configured spread. Nearby blocks receive less than those struck directly.

The spread does not jump across air gaps or apply the same damage to every block in a square. Increasing it distributes the available energy over a wider area; it does not add energy. This is a contact-damage model, not a simulation of structural stress throughout a wall.

Cracks and debris

Block damage accumulates at each position and uses the vanilla break-stage overlay. It is saved with the world and does not heal over time. Removing the block or changing its state clears its damage.

Destroyed blocks may produce flying debris. Limiting debris does not change block destruction or projectile damage.

Profiles

Physics Profiles describes projectile and material fields and their units. Profile locations and IDs belong to the consuming mod; installing Axiomata does not move them into the axiomata namespace.

For Siegeworks ammunition, terrain settings and datapack paths, see its Ballistics and Data Pack Reference.