# Forge Master Game Model This document is the source of truth for game-specific rules, stat assumptions, formulas, and known limitations used by the optimizer. ## Equipment model A build contains: - 8 fixed core items - 1 mount - 3 pets - 1 skill base-stat entry Core item names and base stat types are fixed. Their base values are currently hardcoded from the player's known setup: | Slot | Item | Base stat | | --- | --- | ---: | | Item 1 | Helmet | 1,930,000 health | | Item 2 | Armor | 1,890,000 health | | Item 3 | Gloves | 237,000 damage | | Item 4 | Collar | 237,000 damage | | Item 5 | Ring | 244,000 damage | | Item 6 | Weapon | 398,000 damage | | Item 7 | Boots | 1,850,000 health | | Item 8 | Belt | 1,150,000 health | Mounts and pets provide both damage and health base stats. Skill provides damage and health base stats only and has no effects. ## Effects Items, mounts, and pets may have zero, one, or two effects depending on rarity. Effects start at `1%` and roll up to their cap. | Effect | Maximum | Optimizer id | | --- | ---: | --- | | Crit chance | 12% | `critChance` | | Crit damage | 80% | `critDamage` | | Block chance | 5% | `blockChance` | | Health regen | 4% | `healthRegen` | | Lifesteal | 20% | `lifesteal` | | Double chance | 20% | `doubleChance` | | Damage | 15% | `damage` | | Melee damage | 50% | `meleeDamage` | | Ranged damage | 15% | `rangedDamage` | | Attack speed | 40% | `attackSpeed` | | Skill damage | 30% | `skillDamage` | | Skill cooldown reduction | 7% | `skillCooldown` | | Health | 15% | `health` | Effects stack additively within their own effect type, then each type contributes as a multiplier in the formulas below. ## DPS formula The current DPS model is: ```text single hit = base damage * (1 + damage%) * (1 + selected style damage%) crit hit = single hit * (1 + crit damage%) DPS = single hit * ((1 + attack speed%) / 2) * (1 + double chance%) * (1 + crit chance% * crit damage%) * skill cooldown multiplier, only for Skill style ``` Attack speed assumption: base `100%` attack speed means about one hit every two seconds, or `0.5` hits per second. Therefore the attack-rate term is `(1 + attack speed%) / 2`. Crit damage has no effect until crit chance is above `0%` because the crit multiplier is `1 + crit chance% * crit damage%`. The selected combat style controls which specialized damage bonus is used: - Melee uses melee damage. - Ranged uses ranged damage. - Skill uses skill damage and skill cooldown reduction. Skill cooldown multiplier: ```text 1 / max(0.05, 1 - skill cooldown reduction%) ``` The `0.05` floor prevents division by zero or unrealistic infinite DPS if future inputs exceed known caps. ## Regen formula The Regen metric estimates healing from health regen and lifesteal: ```text max health = base health * (1 + health%) health regen healing = max health * health regen% lifesteal healing = DPS * lifesteal% regen = health regen healing + lifesteal healing ``` The metric is a comparison estimate, not a full combat simulator. ## Survivability estimate Some effect-total comparisons still use an estimated survivability value: ```text survivability = max health * (1 / max(0.05, 1 - block chance%)) * (1 + health regen%) * (1 + lifesteal%) ``` This is used only to compare marginal defensive effects in the effect totals panel. ## Additive stacking examples If a build already has `+100% melee damage`, adding a max `+50% melee damage` changes the melee multiplier from `2.0x` to `2.5x`. ```text 2.5 / 2.0 - 1 = +25% DPS ``` That is why the optimizer displays marginal value, not raw roll value. ## Replacement model Players cannot directly increment or adjust an existing effect. They roll replacement items and decide whether to swap. The app models this with the New item comparison panel: - Select what the new roll would replace. - Enter the new roll's base stat and effects. - The app shows DPS and Regen change separately. - If `Pet` is selected, the app chooses the current worst pet by piece score as the replacement target. ## Profiles Profiles change sacrifice scoring and tie-breaking weights: - Lifesteal: prioritizes DPS and lifesteal-based healing. - Regen: prioritizes health and health-regeneration based healing. DPS and Regen calculations themselves do not change by profile. ## Known limitations - Exact Forge Master combat internals are not fully known. - Enemy defense, uptime, overkill, proc timing, animation locks, and fight length are not modeled. - Block chance is represented as effective-health style mitigation in survivability estimates only. - Health regen timing is assumed to be comparable as a per-second-style value. - Lifesteal assumes all displayed DPS can convert into healing.