Damage
Overview
In Factorio, entities have health, can die/be destroyed, and have resistances. Damage is defined as the concept of lowering an entity's health by using an attack, such as a gun firing at it, or a biter chewing on it. An entity's resistances will define exactly how much damage the entity will take off of an arbitrary attack.
Achievements
- Main article: Achievements
The concept of damage is directly connected to the following achievements:
- Golem
Take 500 damage in one hit and survive.
- Pyromaniac
Destroy 10k trees with fire.
- Run Forrest run
Destroy 100 trees by impact.
- Steamrolled
Destroy 10 spawners by impact.
- Watch your step
Get killed by a moving locomotive.
Damage Types
Damage type | Used by |
---|---|
Physical | Bullets (regular/piercing), shotgun (regular/piercing), biters, axe (iron/steel), collision (of train/car) |
Fire | Flamethrower |
Acid | Worm Turrets, Spitters |
Poison | Poison capsule |
Explosion | Rockets, Explosive Rockets, Grenade, Cluster grenade |
Laser | Laser turrets, distraction/destroyer robots, personal laser defense |
Resistance
Resistance has two aspects:
- Percentile resistance
Percentile resistance is applied first and will just reduce the damage by the specified percent. If the percentage is 100%, the entity is immune to the damage. As an example, an entity having 25% resistance to 100 bullet damage would take 75 damage instead.
- Decrease, or "flat" resistance
Decrease resistance decreases the damage by specified number as long as the result damage wouldn't be less than zero. If the result damage would be less than 0, the extra resistance is used as denominator in the fraction of damage that is going to be dealt.
Display of resistances
In Factorio, resistances are displayed as such:
Decrease resistance/Percent resistance
So, an entity displaying 10/20% resistance to fire means that that entity has 10 flat resistance and 20% percentile resistance to fire. So, if said entity were to take 30 fire damage, they would instead take 14 damage, after resistances were applied.
Formulas
Decrease < Damage
Result damage = (Damage - Decrease) * (1 - Percentage)
Decrease >= Damage
Result damage = 1 / (2 + Decrease - Damage) * (1 - Percentage)
An example table of different resistances and what the result damage would be:
Damage | Resistance | Result damage (0% damage loss) |
---|---|---|
5 | 0 | 5 |
5 | 1 | 4 |
5 | 2 | 3 |
5 | 3 | 2 |
5 | 4 | 1 |
5 | 5 | 1/2 |
5 | 6 | 1/3 |
5 | 7 | 1/4 |
5 | 8 | 1/5 |
... | ... | ... |