Files
forge-master/GAME.md
T
2026-06-17 22:35:50 +02:00

4.5 KiB

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, base stat types, and base values are fixed for this optimizer. The canonical definitions live in app.js as FIXED_ITEMS so the app and documentation do not drift.

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:

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:

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:

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:

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.

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.
  • Pressing Swap exchanges the new roll with the current target. The replaced target becomes the New item candidate, so pressing Swap again restores the previous state.

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.