At a glance
Quick facts
- Reference profile
- The Forgotten Server 1.6, targeted health combat
- Primary stages
- Eligibility, base roll, blocking, resistance, PvP scaling, critical, health change
- Most common OT override
- Lua spell formulas, vocation multipliers, custom critical systems, and PvP scaling
- Universal across servers
- No. Confirm the engine tag, data pack, and local scripts.
Read the profile before the formula
Open Tibia does not have one universal combat equation. The engine establishes an execution pipeline, while XML, Lua, configuration, and fork-specific C++ determine the numbers fed into it. This article documents the targeted health-combat path in The Forgotten Server 1.6. It is a reproducible baseline for server comparison, not a claim that every 7.4, 8.6, 10.98, or current-protocol server behaves identically.
The targeted-hit pipeline
- 01
Combat eligibility
The engine checks world type, protection level, tile zone, target state, aggression rules, and whether the action is allowed. A rejected action never reaches the damage roll.
- 02
Base damage
A weapon, rune, instant spell, condition, monster attack, or script produces primary and optional secondary damage components. Their formulas may depend on level, skill, magic level, attack value, or explicit min/max values.
- 03
Shield and armor checks
When the combat parameters request them, defense is rolled first and armor is rolled after it. A defense roll that reduces damage to zero prevents the armor roll for that hit.
- 04
Immunity and resistance
Immunity can cancel the component. Monster element percentages or equipped-item absorption then modify surviving damage according to the target implementation.
- 05
Player-versus-player scaling
In the TFS 1.6 targeted path, damage against another player is halved unless the target has a black skull. This occurs before the standard targeted critical-hit bonus.
- 06
Critical-hit evaluation
Eligible direct damage can receive an additive percentage bonus when the attacker passes the configured critical chance roll.
- 07
Final resource change
The resulting signed value is applied to health or mana, followed by death, leech, messages, visual effects, conditions, and event callbacks as applicable.
D_final = HealthChange(Critical(PvP(Resistance(Armor(Defense(D_base))))))- D_base is the damage produced by the weapon, spell, rune, condition, or scripted attack.
- Each function may be disabled by combat parameters or replaced by custom scripts.
- Rounding is stage-specific; delaying rounding until the end can produce a different result.
Worked example without hidden rounding
Assume an eligible direct physical hit begins at 420 damage. The target rolls 70 defense reduction, then 18 armor reduction. A single equipped item absorbs 10% physical damage. The target is another normal player, and the attacker has a 10% critical chance with 50% extra critical damage. If the critical roll succeeds, the reference calculation proceeds as follows.
| Stage | Operation | Result |
|---|---|---|
| Base damage | Given | 420 |
| Defense | 420 - 70 | 350 |
| Armor | 350 - 18 | 332 |
| 10% resistance | 332 - ceil(332 x 0.10) | 298 |
| PvP reduction | integer division by 2 | 149 |
| Successful +50% critical | 149 + round(149 x 0.50) | 224 |
How to audit a real server
- Identify the engine family, exact tag or commit, protocol distribution, and data pack.
- Read weapon and spell definitions for level, skill, magic-level, and min/max coefficients.
- Inspect vocation damage, defense, and armor multipliers.
- Check world type, protection level, PvP damage reduction, frag timers, and custom combat callbacks.
- Record all equipment absorption, imbuement, critical, leech, reflection, and charge behavior.
- Run controlled hits against fixed armor and resistance, retaining raw server logs instead of relying on floating client text alone.
A trustworthy server page should publish the resulting ruleset profile and the date it was verified. Marketing labels such as real map, old school, or global do not establish mechanical parity.
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.
