Explosion

An explosion is a physical event in the Minecraft world, caused by a primed TNT, an exploding creeper, a bed in The Nether or in The End, an Ender Crystal, a Wither's projectile/activation, or a Ghast's fireball. An explosion can destroy nearby blocks, propel and damage nearby entities, and cause one or more fires. Explosions produce shockwave particles, but before 1.8 they produced smoke particles.

Properties

 * Position . For example, A TNT explosion happens at the center of a primed TNT, which is a 0.98 × 0.98 × 0.98 cube. A bed explosion happens at the center of the bed block (not destroyed before the explosion).
 * Power.
 * {| class="wikitable"

! Explosion source !! Power
 * Nuke || 10
 * Wither (on creation) || 7
 * Ender Crystal || 6
 * Charged Creeper || 6
 * Bed (in Nether or End) || 5
 * TNT || 4
 * Creeper || 3
 * Ghast fireball || 1
 * Black Wither skull || 1
 * Blue Wither skull || 1
 * }
 * Blue Wither skulls treat all blocks (except bedrock and end portal frames) as having a blast resistance of no more than 4.
 * Creeper || 3
 * Ghast fireball || 1
 * Black Wither skull || 1
 * Blue Wither skull || 1
 * }
 * Blue Wither skulls treat all blocks (except bedrock and end portal frames) as having a blast resistance of no more than 4.
 * Blue Wither skull || 1
 * }
 * Blue Wither skulls treat all blocks (except bedrock and end portal frames) as having a blast resistance of no more than 4.
 * Blue Wither skulls treat all blocks (except bedrock and end portal frames) as having a blast resistance of no more than 4.


 * Ability to generate fire . Ghast fireball and bed explosions will start fires. Ender Crystals may leave a fire in their original position (on top of the Bedrock) after exploding.





Model of block destruction
An explosion can destroy nearby blocks. Its blast effect is evaluated independently on many explosion rays originating from the explosion center, as shown in the right figure.


 * Each ray has an initial blast force randomized in [0.7 × power, 1.3 × power ].
 * The effect of the blast force is examined at checkpoints on the ray with step length of 0.3.
 * The blast force is absorbed (block resistance / 5 + 0.3) × step length by the non-air block (no matter whether destroyed) at each checkpoint, and attenuated by step length × 0.75 between checkpoints, until completely absorbed or attenuated.
 * A block is considered destroyed if it can't completely absorb the blast force at any checkpoint in it (air blocks can be destroyed too).

From the above process, the following results can be deduced:


 * The blast radius in the air of an explosion (i.e. only attenuated, not absorbed by blocks) = ⌊1.3 × power / (step length × 0.75)⌋ × step length = 10.2 (charged creepers), 6.9 (TNT), 5.1 (creepers), 1.5 (fireballs). For example, a TNT explosion can destroy a torch 7 blocks away. But how many blocks an explosion can destroy is non-deterministic and also dependent on the specific location of the explosion.
 * The minimum block resistance required to absorb maximum blast force of an explosion happening in nearby air = ((1.3 × power - attenuation steps × step length × 0.75) / step length - 0.3) × 5 . To not be destroyed, a block has to absorb all blast force at the first checkpoint in it.
 * The attenuation steps is subject to collision restrictions. For explosion in air, there is at least one attenuation step. TNT and creeper explosion are always 0.49 and 0.5 meter away from nearest block (2 att. steps), but fireball explosion can happen anywhere (1 att. step).
 * Thus, the block resistances are 121.00 (charged creepers), 77.67 (TNT), 56.00 (creepers), 16.42 (fireballs).
 * So water, lava (Note: Only the stationary block) obsidian, and bedrock are always indestructible, and fences and less blast-resistant blocks can be destroyed by fireballs. These are theoretical values, and in reality less resistant blocks are not always destroyed, and since Minecraft is supposed to be simple, there is no such mechanic.

Note that the effect of multiple explosions, no matter how simultaneous, on one block is evaluated independently and serially per explosion, and blocks don't have "temporary health" and such properties across explosion history. That means explosions have no cumulative effect on blocks.

Destroyed blocks have a 1/ power chance of being dropped as items later. Because of that,it is not recommended to use TNT as a resource gatherer, as 75% of the blocks will be lost.

Interaction with entities
An explosion has different effects on entities than blocks. Entities are damaged and propelled by an explosion if within its damage radius of 2 × power. Note that the "damage radius" is different from the blast radius of explosion effect on blocks.
 * For each entity within the radius, define impact = (1 - distance from the explosion / radius) × exposure.
 * Apply (impact2 + impact) × 8 × power + 1 point (half-heart, so we don't have to divide by 2 everywhere) of damage to the entity.
 * Propel the entity so that its velocity increases by impact in the direction from explosion to the entity.

From the above process, the following results can be deduced:


 * Entities will always get at least 1 point of damage if they are within the radius, regardless of their explosion exposure.
 * The maximum damage that entities can take (at the explosion center with 100% exposure) = (1 × 1 + 1) × 8 × power + 1 point of damage = 97 (charged creeper), 65 (TNT), 49 (creepers), 17 (fireballs). When entities are away or covered by blocks from the explosion center, they take less damage.
 * The maximum velocity gain that an entity can obtain from a TNT explosion is 1, at the explosion center with 100% exposure.

Different damage effects will ensue. For example, existing items will be destroyed, and the armor on the player will absorb part of the damage. Items dropped in the process of, or actually after, the explosion are not affected because they have no interaction between the explosion.

The propulsion effect is often used for TNT cannons.



Calculation of explosion exposure
Explosion exposure is simply how much an entity is visible from the explosion center, and is approximated with the ratio of visible sample points on the entity. The approximation algorithm has sampling error that results in directional asymmetry of propulsion. For example, a typical TNT Cannon has maximum range in the west direction partly because the primed TNT has largest sampled exposure in that direction.

Causing fire
If the explosion has the ability, it randomly starts fires in 1/3 of all destroyed air blocks that are above opaque blocks.

Permanent lag
Permanent lag is essentially lag-fallout from an explosion, this consists of drops, liquid-physics, and increased render-complexity of the crater. It is recommended that when making a large creative-mode explosion, one uses the command "/gamerule doTileDrops false" to stop drops from being generated by explosions.

Blast resistance
[]

Typical damage radius
The player will get certain damage if within these radii of a 100% exposure ground 1-, 2-, or 4-TNT explosion, as shown in the following figures with the amount of damage shown on each circle.



Trivia

 * Explosions more powerful than 100 look mostly the same from the outside, as only certain lines are used to determine if a block breaks. However, some of those lines continue underground.


 * An explosion powerful enough to break bedrock would have a blast radius of over 30,000,000 blocks. If it were an uninterrupted blast, it would cover 238,775,501.2 blocks. However, explosions only follow certain lines, not every block (see previous).


 * Any explosion going off in flowing water will apply propulsion to entities, but it will not affect any block, whether the blast resistance of that block is low or high.


 * Explosions in or under water won't create smoke particles.


 * Explosions can redirect projectiles including Ender Pearls.


 * Explosions can break blocks through blocks that meet at an edge and aren't destroyed.