Skip to content

Physics Profiles

messire edited this page Oct 10, 2026 · 1 revision

These fields describe Axiomata's projectile and block-material profiles. The mod using the library chooses their resource directories, IDs and format version, registers the reload listeners and supplies the catalogs. Axiomata does not load a global collection of physics profiles on its own.

To override a profile, use the namespace and path documented by that mod. Keeping its ID matters: axiomata:example does not replace siegeworks:example.

Projectile profiles

{
  "mass": 0.5,
  "dragCoefficient": 1.5,
  "diameter": 0.03,
  "hardness": 3.0,
  "entity": {
    "damage": 1.35,
    "armorPiercing": 0.75,
    "structure": 0.7
  }
}
Field Meaning
mass Projectile mass in kg; greater than zero. Default 1.
diameter Diameter in metres; greater than zero. If omitted, the projectile entity's width is used.
dragCoefficient Dimensionless air-drag coefficient. Default 0.47. This is not a per-tick velocity multiplier.
hardness Maximum block projectile resistance it can penetrate; also affects shattering. Default 6.
motor.thrust Rocket thrust in newtons.
motor.burnTime Motor burn time in seconds. Both motor values must be greater than zero.
entity.damage Multiplier on the weapon's base direct-hit damage. Default 1.
entity.armorPiercing Armour mitigation bypass, from 0 to 1. Default 0.
entity.structure Direct-hit damage multiplier for structure targets. Default 0.7.
shock.radius Reference area-damage radius in blocks; scales with impact speed.
shock.damage Area-damage multiplier on the weapon's base damage; also scales with speed.
blast.energy Chemical energy released when the projectile stops, in joules.
fire.radius Fire-placement radius in blocks.
fire.chance Fire-placement probability near the centre, from 0 to 1.

Omitting motor, shock, blast or fire disables that effect. All numbers must be finite; fields other than the strictly positive mass, diameter and motor values may be zero but not negative.

Block materials

Each rule selects either one block or one tag, never both, and supplies at least one material value.

{
  "block": "minecraft:stone_bricks",
  "strength": 16700000.0,
  "drag": 625.0,
  "fractureEnergy": 80000.0,
  "projectileResistance": 6.0
}
Field Meaning
strength Material penetration strength in pascals.
drag Material's inertial penetration resistance in kg/m³, not air drag.
fractureEnergy Energy needed to fracture a cubic metre of solid material, in J/m³. Overrides the integrating mod's default calculation for matching blocks.
projectileResistance Resistance compared with projectile hardness. Defaults to the block's vanilla blast resistance.
priority Integer rule priority; defaults to 0 in the codec. A consuming mod may require an explicit value for tag rules.

For a tag rule, replace block with, for example, "tag": "#minecraft:stone_bricks". The bare tag ID is accepted too.

Exact block rules take precedence over tag rules. Within each group, higher priority wins; equal priorities are ordered by rule ID. Only the first matching rule is used. Omitted material fields use the default calculation, not another rule's values.

strength, drag and fractureEnergy must be finite and greater than zero. projectileResistance may be zero. Collision volume and porosity still affect the impact calculation; assigning material values does not bypass block protection.

See Ballistics for the calculations these profiles control, or Siegeworks Data Pack Reference for a complete datapack example with paths and format versions.

Clone this wiki locally