Mechanics & Systemssource backed10 minute read

Elemental Resistance and Vulnerability

How physical, fire, earth, energy, ice, holy, death, life drain, mana drain, and field modifiers are represented and applied in a TFS 1.6 ruleset.

Reference profileTFS 1.6 player and monster resistance reference
Reviewed
Evidence3 primary references

At a glance

Quick facts

Player equipment
Each enabled item applies its absorption percentage sequentially
Monster elements
Positive values reduce damage; negative values increase damage
Rounding
Player item absorption uses ceiling at each item step
Field protection
Can be stored and consumed separately from direct-hit absorption

Damage families are independent channels

A combat event can contain primary and secondary damage components. Physical and elemental portions are not automatically merged before protection. Each component is evaluated against its own combat type, allowing a weapon to produce physical damage plus fire damage while the target resists the two parts differently.

Common combat channels in TFS-derived servers
ChannelTypical sourcesCommon protection
PhysicalMelee, distance, physical runes, monster attacksArmor when enabled; physical absorption
FireSpells, runes, fields, weapon elementsFire immunity or fire absorption
EarthPoison-style spells, fields, weapon elementsEarth immunity or earth absorption
EnergySpells, beams, waves, weapon elementsEnergy immunity or energy absorption
IceSpells, waves, weapon elementsIce immunity or ice absorption
Holy / deathVocation spells, runes, monstersMatching holy or death absorption
Life / mana drainMonster abilities and custom effectsDedicated drain immunity or absorption

Equipment protection stacks sequentially

For players in TFS 1.6, the engine loops through enabled equipment. Each non-zero absorption percentage removes the ceiling of that percentage from the current remaining damage. Two 10% items therefore do not produce a flat 20% reduction. They leave 90% and then 90% of the remainder, for 81% remaining damage before integer-rounding effects.

Idealized sequential stacking
D_after = D_before x (1 - r1) x (1 - r2) x ... x (1 - rn)
  • ri is the decimal protection on one enabled item.
  • The exact engine applies ceil(current damage x ri) after each item, so small hits can differ from the continuous formula.
  • Effective protection is 1 - product(1 - ri), not the arithmetic sum of item percentages.
Two 10% items against a 1,000-damage component
StepCalculationDamage remaining
First item1,000 - ceil(1,000 x 0.10)900
Second item900 - ceil(900 x 0.10)810
Combined effect1 - (0.90 x 0.90)19% protection

Monster resistance percentages

Monster definitions store an element modifier by combat type. The TFS 1.6 monster block code multiplies damage by (100 - modifier) / 100 and rounds the result. A positive 80 means the monster receives 20% of that damage type. A negative 10 means it receives 110%, creating a 10% vulnerability. Explicit immunities are checked earlier and reduce the matching damage to zero.

Monster element modifier
D_after = round(D_before x ((100 - P) / 100))
  • P = 80 means 80% resistance and 20% damage remains.
  • P = -10 means 10% vulnerability and 110% damage remains.
  • An immunity is not the same as P = 100 in data semantics, even though both can result in zero damage.

Evaluate a loadout by encounter, not by total percentage

  1. 01

    List incoming channels

    Separate melee physical, distance physical, waves, beams, fields, conditions, and mana drain.

  2. 02

    Estimate channel share

    A 15% fire item matters little in an encounter where almost all incoming damage is physical.

  3. 03

    Apply stacking correctly

    Use multiplicative sequential protection and engine-specific rounding.

  4. 04

    Include opportunity cost

    Compare lost armor, skill, speed, capacity, or another element when changing equipment.

  5. 05

    Verify charges

    Some absorption consumes charges, making sustained-hunt economics different from a short boss attempt.

Apply the guide

Find servers using this profile

Server names, protocol labels, and map labels do not guarantee matching mechanics. Use these filters to find candidates, then verify the listing, owner documentation, and deployed ruleset.

custom itemsbossesreal maphigh rateelemental protection