Each character maintains a single saving_throw score that starts at zero whenever stats are recalculated, representing their baseline resilience against hostile magic and effects.【F:src/handler.c†L548-L576】
Gear, spells, and other effects that use any of the APPLY_SAVING_* locations all feed into that same score, so multiple resistances stack together regardless of the saving throw type listed on the item or affect.【F:src/handler.c†L599-L629】【F:src/handler.c†L707-L737】
Lower (more negative) saving throw values are better: the saving throw check subtracts twice the stored score from its success threshold, so reducing the number increases the odds of shrugging off attacks.【F:src/magic.c†L194-L211】
Building saving throws
When armor and stat modifiers are rebuilt, the engine clears saving_throw and then applies bonuses from worn equipment by iterating over every object’s innate and enchanted affects.【F:src/handler.c†L548-L629】
Active spell effects contribute next; each effect with APPLY_SAVING_* adds its modifier, letting buffs grant flat bonuses and debuffs impose penalties that persist until removed.【F:src/handler.c†L707-L737】
Some abilities temporarily modify saving throws directly (for example, berserk status raises the target’s effective save mid-check), but these adjustments happen during resolution rather than during the rebuild step.【F:src/magic.c†L198-L204】
How saving throws are resolved
saves_spell starts with 50 + (victim level − caster level) × 5 as the base chance to succeed, applies the stored saving throw modifier, and clamps the result between 5% and 95% before rolling percentile dice.【F:src/magic.c†L194-L211】
Resistances, immunities, and vulnerabilities shift that chance by ±2 (or auto-success for full immunity) based on the damage type being resisted, using check_immune to inspect the victim’s flags.【F:src/magic.c†L204-L211】【F:src/handler.c†L166-L238】
The berserk affect adds half of the victim’s level to the save threshold on the fly, representing their heightened tenacity while enraged.【F:src/magic.c†L198-L201】
Key takeaways
Stack as many negative saving throw modifiers as possible; each point improves save chances by roughly 2%, capped so there is always at least a small chance to fail or succeed.【F:src/handler.c†L599-L737】【F:src/magic.c†L194-L211】
Spell level and character level both matter: being higher level than the attacker directly raises the success threshold before any equipment or status bonuses apply.【F:src/magic.c†L194-L199】
Immunities and resistances provide a final layer of defense by altering or bypassing the save entirely, so combining them with strong saving throw gear yields the most reliable protection.【F:src/magic.c†L204-L211】【F:src/handler.c†L166-L238】