Warheads and damage
How a blast chooses the objects it damages, how much strength each one loses, and what else the blast does to the ground.
Damage reaches an object in two stages. First, a blast goes off at one point on the map and collects the objects near it. A blast carries a raw damage figure, a warhead, and the object credited with anything it kills. A landing shell raises a blast. So do a chain-reacting Tiberium field, an exploding barrel, a lightning bolt from an ion storm, and the C4 charge an infantryman sets on a bridge. Second, each object the blast collected converts the raw figure into the strength it loses. This conversion also runs for damage that comes from no blast, such as the damage a base takes while it is short of power.
This page covers both stages. Firing geometry and beam weapons sets the raw figure a shot carries. Projectile flight and impact sets where the blast goes off and how many blasts one shot raises. Destruction and debris covers what a destroyed object leaves behind.
Warheads in brief
Section titled “Warheads in brief”A WarheadType is a rules section that describes what damage does once it arrives. The rules [Warheads] list registers each one, and a weapon’s Warhead= names the one its shots use. The Warhead= page covers a name that no section declares and a weapon with no warhead.
The weapon sets how much damage a shot deals, and the projectile sets how the shot travels. The warhead sets how much of that damage each armor class takes and how quickly the damage thins with distance. It also sets every effect the blast has on the ground.
[MyShellWH] ; a WarheadType registered in [Warheads]Verses=100%,80%,60%,40%,20% ; against none, wood, light, heavy and concrete armorSpread=5 ; how slowly the damage thins with distanceProneDamage=50% ; what reaches an infantryman lying downAnimList=MYBANG16,MYBANG24 ; example AnimTypesVerses lists five percentages in a fixed order, one for each armor class an object type can have. The warhead above deals its whole figure to an unarmored target and a fifth of it to a concrete one. The values are examples.
Three warhead settings replace blast damage entirely:
- A shot whose warhead is
EMEffect=yesraises a pulse instead of a blast. - A shot whose warhead is
Webby=yesspreads a web over the surrounding cells instead of raising a blast. - A weapon whose warhead sets
LimpetFactorto1or more never fires a shot at a vehicle, infantryman, aircraft or structure. TheLimpetFactorpage covers what it does instead.
What a blast reaches
Section titled “What a blast reaches”A blast first collects its full list of candidates, and only then damages any of them. Two sweeps fill the list. The cell sweep always runs, and the airborne sweep runs only when the blast is above the ground. Every candidate from either sweep then faces the same tests.
The nine cells
Section titled “The nine cells”The cell sweep collects everything standing in the blast’s cell and the eight cells around it: structures, vehicles, infantry, landed aircraft and trees. It never reaches further than one cell from the blast’s cell, whatever Spread says.
The cell sweep leaves out two kinds of candidate:
- the object credited with the blast, so a shot cannot damage its firer through this sweep;
- a vehicle whose type is listed in
HarvesterUnit, while the harvester truce or the scenario’sHarvesterImmuneflag is on.
A blast centered on a veinhole monster’s cell also collects the monster, provided its overlay sets IsVeinholeMonster=yes.
The blast’s cell decides whether the sweep collects objects on bridge decks or objects on the ground, and that choice applies to all nine cells. A lepton is the engine’s distance unit, and a cell is 256 leptons across. When the blast’s cell lies under a bridge and the blast is more than 208 leptons above the ground there, the sweep collects what stands on the bridge decks. Otherwise it collects what stands on the ground. A blast on a bridge therefore misses everything on the ground in the neighboring cells, and a blast under a bridge misses everything on the deck.
The airborne sweep
Section titled “The airborne sweep”When the blast is above the ground level at the center of its cell, a second sweep runs. It checks three whole lists of objects, not cells: every aircraft, every infantryman whose type is JumpJet=yes, and every vehicle whose type is Jellyfish=yes. It collects each one that meets all of:
- it is placed on the map;
- it has strength left;
- it is less than one cell from the blast, measured in three dimensions, so height counts the same as ground distance.
This sweep is the only way a blast reaches a flying object. An aircraft in flight and a jumpjet infantryman in the air are not listed in any cell, so the cell sweep cannot find them however close the blast lands. A shell that explodes one lepton above the ground runs this sweep just as an airburst overhead does. A shot that explodes at ground level does not run it.
The sweep’s conditions have three consequences:
- The sweep does not check whether a candidate is actually in the air. A landed aircraft or a jumpjet infantryman standing on the ground can be found by both sweeps, but it is collected only once.
- The sweep does not leave out the object credited with the blast, so an aircraft can be damaged by a blast credited to it.
- Each cell of a wide-area blast goes off exactly at ground level, so a wide-area blast never runs this sweep and never reaches a flying object.
Which candidates are damaged
Section titled “Which candidates are damaged”Each candidate is then tested in the order below. It is damaged only if it meets all of:
- it is still in play;
- it is not a structure whose type is
InvisibleInGame=yes; - its strength is above zero;
- it is placed on the map and not in limbo;
- it is less than one and a half cells from the blast, measured as the distance section describes;
- any of:
- the warhead is not the one
IonStormWarheadnames; - the candidate is not an infantryman, vehicle or aircraft;
- the candidate belongs to no team;
- the candidate’s team type is not
IonImmune=yes.
- the warhead is not the one
What the target loses
Section titled “What the target loses”Every candidate receives the same raw figure and then reduces it separately, so two objects in the same explosion can lose very different amounts. The steps run in this order:
- Prone infantry. An infantryman lying down keeps only the warhead’s
ProneDamagefraction of the figure, rounded down but never below one point. - Web. A
Webby=yeswarhead entangles any infantryman whose type is notIsWebImmune=yes. The figure becomes zero, so the hit does nothing else. - Armor multipliers. The figure is divided by the owning house’s armor multiplier and by the object’s crate armor multiplier, then rounded down. The crate multiplier stays
1until an armor crate raises it. In a campaign, the house multiplier is the difficulty’sArmor=. In any other game, it is that figure multiplied by the country’sArmor=. Difficulty settings shows how the two combine. - Veteran armor. An object with the
STRONGERability divides the figure again by one plusVeteranArmor, rounded down. - Minimum of one. If steps 3 and 4 left less than one point, the figure becomes one point. Armor multipliers cannot reduce a hit to nothing.
- Type immunity. An object whose type is
TypeImmune=yestakes no damage from a credited attacker of the same type owned by the same house. - Object immunity. An object whose type is
Immune=yestakes no damage. Neither does an object already at zero strength. - Armor table. The figure is multiplied by the warhead’s
Versesentry for the target’sArmor=class and rounded down. A result of zero becomes one point. - Distance. The result is divided by the number of distance steps between the blast and the target, as the next section explains.
MinDamagefloor. When the target is fewer than four distance steps away, the result is raised to at leastMinDamage.MaxDamageceiling. The result is capped atMaxDamage. The cap applies to each object separately, not to the blast as a whole.- Strength lost. The result is taken off the target’s strength, but never more than the strength it had. A killing blow therefore counts only the strength the target had left.
Steps 3 to 6 apply only to vehicles, infantry, aircraft and structures, so a tree or a veinhole monster skips them.
A tree takes no damage at all unless the warhead is Wood=yes.
A blast never deals forced damage. The engine deals forced damage directly, for example when a C4 charge destroys a structure. Forced damage skips step 1 and steps 3 to 11, so of the numbered steps only the web of step 2 and step 12 apply. It still does nothing to an object already at zero strength. Refusals that belong to a particular kind of object also still apply, such as a tree’s need for a Wood=yes warhead and a harvester’s protection under the harvester truce.
Unforced damage with no warhead, or any unforced damage in a scenario with Inert=yes, does nothing, because step 8 gives zero. An ordinary blast in either case damages nothing and has none of the ground effects below. A wide-area blast in an Inert=yes scenario can still crater the ground at its center.
How distance thins the damage
Section titled “How distance thins the damage”The distance used for a target differs from its plain distance to the point of impact in three ways:
- A height difference of less than one terrain level (104 leptons) is ignored. A target slightly above or below the blast counts as level with it.
- An aircraft counts at half its true distance, so it takes more damage than a vehicle at the same distance. The halved distance is also used for the one-and-a-half-cell reach test, but the airborne sweep’s one-cell limit uses the true distance.
- A structure in the blast’s cell counts as a direct hit, at distance zero, however far its center is from the impact. This applies only while no other object stands in that cell. If an infantryman shares the cell, for example, the structure’s distance is measured normally.
The distance in leptons is then converted to a number of distance steps. It is divided by three times the warhead’s Spread, rounded down, and held between 0 and 16. The damage is then divided by the number of steps and rounded down. At 0 steps the damage is not divided.
Because both divisions round down, damage falls at the fixed distances below instead of smoothly. Each distance is in leptons and scales with Spread.
| Distance | |
|---|---|
| Full damage out to | 6 × Spread − 1 |
| Halved from | 6 × Spread |
| Down to a sixteenth from | 48 × Spread |
MinDamage floor applies below | 12 × Spread |
At the default Spread=1, damage halves 6 leptons from the impact, about a fortieth of a cell, so any target not hit directly loses much of the damage. Damage drops to a sixteenth at 48 leptons, well within the blast’s one-and-a-half-cell reach. At Spread=8 or more, the sixteenth step lies beyond that reach and never applies.
Healing
Section titled “Healing”A weapon with a negative Damage= heals. A healing figure skips every reduction above: the prone fraction, the armor multipliers, veteran armor, type immunity, the armor table, distance thinning, MinDamage and MaxDamage. The target regains the whole figure, up to its type’s maximum strength, if it meets all of:
- it is less than 8 leptons from the blast, a thirty-second of a cell, so a healing shot repairs only what it hits and nothing beside it;
- it is not
Immune=yes; - it still has strength left, so nothing destroyed is revived.
No trigger event springs from a heal, and the healed object does not fire back at the healer.
Healing also clears every limpet mark from a vehicle, infantryman, aircraft or structure. This happens to every such object the blast reached within one and a half cells, before the 8-lepton and immunity tests. A healing blast therefore strips limpet marks from everything around it but repairs only what it hits.
What one blast does besides damage
Section titled “What one blast does besides damage”After it damages objects, a blast acts on the ground in the order below. Every threshold below is compared with the blast’s raw figure, not with the damage any object took. Armor and distance therefore never decide whether those effects happen.
Rocker=yesrocks every object drawn as a voxel in the seven-by-seven block of cells around the blast, when the raw figure is above 30. No setting changes that threshold.- A Tiberium overlay in the blast’s cell that sets
ChainReaction=yesmay chain-react when the warhead isTiberium=yes. The same hit takes a tenth of the raw figure off that cell’s Tiberium. A chain-reactive overlay that is not Tiberium does not react on the flag alone, as theChainReactionpage explains. Several blasts the engine raises itself, including the blasts of a chain reaction, skip this step. - A wall overlay in the blast’s cell may drop one damage level, and one blast never takes it down more than one. The warhead must be
Wall=yes, orWood=yesagainst a wood-armored wall. The wall always drops when the raw figure is at least the overlay’sStrength. Below that, the chance is about the raw figure divided by thatStrength. - A bridge span at the blast’s cell may be damaged, when
DestroyableBridges=yesand the warhead isWall=yes.BridgeStrengthsets the chance. - An
Explodes=yesoverlay in the blast’s cell is removed and explodes forAmmoCrateDamage, whatever the warhead. - The ground may be cratered when the raw figure is above
DeformThreshhold.Deformsets the chance. - A destroyable cliff at the blast’s cell may collapse, with a chance of
CollapseChance, whatever the warhead. - The warhead’s
Particlesystem releases one particle at the blast. - A
Wall=yesorFire=yeswarhead cracks the ice beneath the blast, unless the blast is up on a bridge.
The explosion animation and the lighting flash are not blast effects. AnimList, the SplashList animation that Conventional=yes uses over water, and the Bright=yes flash are chosen by whatever raised the blast. Whether they appear therefore depends on what caused the explosion as well as on the warhead.
Three more warhead settings act on the damaged object. Each is described on the page that covers its effect:
InfDeathpicks the death animation a killed infantryman plays.Sparky=yeschooses the flames a structure shows as it drops a damage level, and sets a struck tree alight.Veinhole=yesgives a damaged object something to fire back at when no attacker is credited. Target selection covers when a damaged object fires back.
The wide-area blast
Section titled “The wide-area blast”A wide-area blast raises an ordinary blast in every cell of a square block. The center cell’s blast carries the full raw figure. Every other cell’s blast carries the figure scaled by that cell’s distance from the center, so the figure rises toward the rim instead of falling. ExpSpread gives the size of the block and the scale.
No landing shot raises a wide-area blast. Two deaths do:
- the collateral blast of a dying object whose type is
Explodes=yesor that has theEXPLODESability; - the extra blast a destroyed harvester adds for the Tiberium it carries, under
TiberiumExplosive=yes, unless the harvester truce or the scenario’sHarvesterImmuneflag is on.
A nuclear detonation has a fallback route to a wide-area blast for when its explosion animation cannot be created. AtomDamage explains why that route is never taken.
Related settings
46 of 46
| Key | Description | Value | When omitted |
|---|---|---|---|
AmmoCrateDamageglobal rules | Raw damage of the blast an exploding overlay leaves behind when it is set off. | integer | 100 |
AnimListWarheadType | The impact animations of the warhead, chosen by the damage the blast deals. | list of AnimTypes | none |
ArmorNo effect in some scopes14 applicable types | An object type's armor class, or on a country or difficulty setting the divisor of the damage its objects take. | ArmorType | Varies by type |
AtomDamageNo effectglobal rules | Raw damage of a fallback nuclear blast that never occurs in play. | integer | 1000 |
BridgeStrengthglobal rules | How hard a bridge is to bring down, and the damage a demolition charge does to one. | integer | 1000 |
BrightWeaponType, WarheadType | Lights the ground around an explosion with a brief flash. | boolean | no |
ChainReactionOverlayType | Whether damage to the overlay's cell can set off the Tiberium standing there. | boolean | no |
CollapseChanceglobal rules | Percent chance that a destroyable cliff comes down when something reaches its cell. | integer | 100 |
ConventionalWarheadType | A blast landing on water plays a splash from the shared list instead of the warhead's own animations. | boolean | no |
DamageAnimType, ParticleType, VoxelAnimType, WeaponType | A weapon's damage per shot, or the damage an animation, particle or voxel animation deals. | floating point | Varies by type |
DeformWarheadType | The chance, in percentage points per point of damage, that a blast lowers the ground under it. | floating point | 0 |
DeformThreshholdWarheadType | Damage at or below this figure never craters the ground. | integer | 0 |
DestroyableBridgesscenarios | Whether a wall-destroying blast can bring a bridge span down. | boolean | yes |
EMEffectWarheadType | A projectile carrying the warhead creates an EM pulse where it detonates instead of dealing blast damage. | boolean | no |
ExpSpreadglobal rules | Divisor that turns an exploding object's collateral damage into the radius of its death blast. | floating point | .5 |
Explodes5 applicable types | Blasts the surroundings when an object of this type is destroyed, or detonates an overlay when any explosion reaches its cell. | boolean | no |
FireWarheadType | The blast cracks the ice it lands on, and the attack cursor stops offering destroyable cliffs. | boolean | no |
HarvesterUnitglobal rules | UnitTypes the engine treats as a house's harvesters when it counts or replaces them. | typelist | none |
ImmuneNo effect in some scopes12 applicable types | Exempts the type from every damage path that is not applied as forced. | boolean | Varies by type |
Inertscenarios | Stops ordinary weapon hits in the scenario from doing damage. | boolean | no |
InfDeathWarheadType | The death sequence an infantryman killed by the warhead performs. | integer | 0 |
InvisibleInGameBuildingType | Hides a structure from every player, keeps it off the radar and out of targeting, and lets units pass through it. | boolean | no |
IonImmuneTeamType | Exempts the team's members from ion storm lightning damage and from being aimed at. | boolean | no |
IonStormWarheadglobal rules | The WarheadType every ion storm lightning bolt detonates with. | class | none |
IsVeinholeMonsterOverlayType | Lets explosions centered on the veinhole monster's cell damage it. | boolean | no |
JellyfishUnitType | Replaces a vehicle's whole firing behavior with an automatic sting on everything in the cells around it. | boolean | no |
JumpJetInfantryType | Marks the InfantryType as a jumpjet, so it routes, is targeted and dies as an air unit. | boolean | no |
LimpetFactorWarheadType | The percentage of a vehicle's speed a limpet attachment takes away. | floating point | 0 |
MaxDamageglobal rules | The most strength one object can lose to one hit of ordinary damage. | integer | 1000 |
MinDamageglobal rules | The smallest damage a warhead may deal to a target close to the impact. | integer | 1 |
ParticleWarheadType | The particle system released where the warhead detonates. | class | none |
ProneDamageWarheadType | The fraction of the damage a prone infantryman takes, where one is the full amount. | floating point | 1 |
RockerWarheadType | The blast tips the vehicles around it, with the force taken from the damage. | boolean | no |
SparkyWarheadType | Buildings knocked down a damage level burn with the fire set, and terrain objects struck catch fire. | boolean | no |
SplashListglobal rules | The animations played where something comes down in water. | typelist | (empty) |
SpreadWarheadType, Tiberium | How slowly a warhead's damage thins with distance, or the frames a Tiberium type waits between spread passes. | integer | Varies by type |
TiberiumOverlayType, WarheadType, random map generation | Marks an overlay as Tiberium, lets a warhead set Tiberium off, or sets how much Tiberium a generated map receives. | boolean | Varies by type |
TiberiumExplosiveNo effect in some scopesglobal rules, scenarios | Makes a destroyed harvester detonate its load; the scenario flag of the same name is stored and never read. | boolean | no |
TypeImmuneAircraftType, BuildingType, InfantryType, UnitType | Stops an object taking damage from any object of exactly its own type and house, including itself. | boolean | no |
VeinholeWarheadType | Lets an object damaged with no credited attacker fire back at the veinhole monster that owns the veins under it or just ahead of it. | boolean | no |
VersesWarheadType | The percentage of a weapon's damage the warhead delivers against each armor class, in armor order. | string | 100%,100%,100%,100%,100% |
VeteranArmorglobal rules | Damage taken by an object holding the STRONGER ability is divided by this value plus one. | floating point | 1 |
WallBuildingType, OverlayType, WarheadType | Turns a BuildingType into a wall segment, marks an OverlayType as wall, or lets a WarheadType destroy walls. | boolean | no |
WarheadAnimType, ParticleType, VoxelAnimType, WeaponType | The WarheadType a weapon's shot uses, or the one an animation, particle or voxel animation delivers its own damage through. | class | none |
WebbyWarheadType | The warhead entangles the infantry it catches instead of damaging them. | boolean | no |
WoodWarheadType | Lets the warhead damage terrain objects, and wall overlays whose armor is wood. | boolean | no |
No keys match the current filters.