Deadlock mechanics / See the trade-off
Damage in. Health out.
Compare damage, shred and fire rate. Model anti-heal. Follow tower defenses and Trooper health over match time.
6722 revalidation · changed healing stage; retained core inputs
September 30 check: all 38 reload presets, the six progression profiles and selected item/objective inputs match their older declarations. Selected weapon construction, resistance pools, fire-rate conversion, Trooper HP initialization and Guardian/Walker timed modifiers were rebound to current code. This is bounded reconstruction, not live-game validation or a blanket update of all 64 reference rules.
Changed receiving stage: the checked 6722 callback no longer applies a separate anti-heal-resistance input. The healing tool defaults to that stage; its historical 6698 profile remains available. Medic heal declarations still match, but its current ability binding and lifecycle have not been revalidated.
New permanent pickups add Bullet/Spirit Resist, range and speed—not new stacking formulas. Compare the pickup tiers → Default waves are 30s → 25s strictly after 20m → 20s strictly after 35m: cadence, not HP growth. Per-model evidence & remaining limits ↗
Damage & resistance
Damage, shred & fire rate
Your additions · DPS while firing against the same target
Chart help
Axes stay fixed while you edit. Use “Fit chart” to rescale. Hover, touch or use the slider to inspect. The dot marks your inputs; inspection does not change them.
Filled colors: All additions. Green strip: target resistance.
Reading the colors
The filled slices build up DPS one effect at a time. The green strip marks the target’s resistance. Row values below answer a different question: what changes if you remove that effect?
Value of +1% at 30% resistance
Base build · 800 DPS while firing
Move over the chart, or use its inspection slider, to compare another resistance.
What +1% means
One extra independent shred source, or one percentage point added to gun damage or fire rate. Uses Base effects only, not your proposed additions. The bars share a zero baseline; the longest gives the largest DPS gain. This is per stat point, not per Soul spent.
Other damage stages & exact formula
Use the source-type menu above to add target amplification or a later damage multiplier.
D = [(base + boon flat) × (1 + increases/100) × (1 + later group/100) + post-flat] × (1 + taken-amp/100) × (1 − (resistance − shred)/100)
Relative gain = (new damage ÷ current damage − 1) × 100%
Target solver, stacking rules & model limits
Add 22.22% shred to reach this target. This accounts for the shred you already have.
Don’t count each headshot as another debuff
The headshot preset comes from a definition with −12 Bullet resistance, 12s duration and a 0.5 diminishing parameter. We have not confirmed its Crippling Headshot name, stack limit or refresh rules. One row per hit would invent stacks we haven’t verified.
Assumes every shot hits. Excludes critical hits, falloff, bursts, ramp-up, procs, barriers and NPC-specific defenses. Resistance and fire-rate formulas use build 6698; magazine timing is a continuous-fire estimate, not animation timing. Enter active effects, not consumed upgrade components. A weapon hit between 0 and 1 is raised to 1 before target modifiers; an already-scaled incoming hit skips that step. Fire-rate slows use the default −50 minimum stat. Effects that change firing-cycle percentage directly are not included.
Reloads & sustained DPS
Build 6698 base reload presets. Changing the seconds field switches to Custom; larger typed values remain allowed.
DPS with and without reloads
Both use the same resistance and damage. Only the firing/reload average changes.
Chart help
Axes stay fixed while you edit. Use “Fit chart” to rescale. Hover, touch or use the slider to inspect. The dot marks your inputs; inspection does not change them.
Base: 6s firing + 2s reload. Upgraded: 4.8s firing + 2s reload. Slopes are firing; plateaus are reloads.
Continuous-fire estimate. Bursts, ramp-up, first-shot timing and reload animation tricks are not included.
Optional hero inputs
Shop investment & boons
These are captured 6697/6698 values, not the older hero-page fallback. Investment totals jump at thresholds; they do not accumulate each threshold's displayed bonus.
Gun base = weapon base + boon count × flat bullet growth
Health model = (base HP + boon HP) × (1 + vitality investment/100)
Spirit contribution = boon Spirit + Spirit investment
- Weapon base
- 3.6 / bullet or pellet
- Boon flat bullet source
- +1 (10 × 0.1)
- Weapon investment source
- +46%
- Base HP + boon HP
- 800 + 490
- Vitality investment source
- +38% → 1,780.2 HP in this model
- Boon + investment Spirit sources
- 11 + 38 = 49 Spirit
Chart help
Axes stay fixed while you edit. Use “Fit chart” to rescale. Hover, touch or use the slider to inspect. The dot marks your inputs; inspection does not change them. Dense steps are sampled at large ranges; inspected values are calculated directly.
The six profiles have stat rewards at boons 1–35. This is a configuration-based progression illustration like the hero reference, not a complete build: item passives, purchase-tier effects, ability upgrades, extra Spirit scaling, selling and refunds are excluded. HP totals are model arithmetic, not a newly traced max-health consumer. Bullet amounts are per bullet/pellet, not per full shotgun shot.
Stacking rules & limits (5)
Check the damage type, then the target’s defenses.
Resistance contributions30% and 20% → 44%, not 50%
30% resistance leaves 70% of a hit. Another 20% blocks a fifth of that remainder, giving 44% total resistance. Shred combines the same way on its own, then subtracts from resistance. Only count active effects.
30 and 20 resistance give 44%; 10 and 20 reduction give 28%. Net resistance is 16%. Without resistance, it is −28%.
This shortcut excludes innate/inherited stats and the NPC branch; component replacement and activation still need item-specific rules.
Build 6698 code · Resistance stat helpers; modifiers 32/33 and 34/35 · Permalink ↗
Resistance reduction & penetrationDebuff the target ≠ alter a shot
Armor reduction changes the target’s resistance. A separate penetration field appears in the bullet code, but its behavior is not verified here. Don’t treat the two as synonyms.
The armor-reduction aura definition contains −10 Bullet Armor Reduction and a separate single-target player multiplier of 2.
The aura's complete evaluator and the penetration field's meaning are not established by those numbers.
Configured · upgrade_bullet_armor_reduction_aura; earlier bullet-origin server-authority research · Permalink ↗
Conditional defenseA threshold is part of the effect
Only count a low-health bonus below its threshold, or a post-cast buff while it lasts. The calculator does not activate conditional item effects for you.
Improved Bullet Armor declares a health threshold of 50 and a below-threshold Bullet Resist value of 15. Warp Stone declares a 6-second caster buff.
Configured · upgrade_improved_bullet_armor; upgrade_warp_stone · Permalink ↗
Weapon bonuses use two groupsBase × increase group × later group
Weapon bonuses add together: +100% plus +80% makes +180%, or 2.8× base damage. A separate damage multiplier applies afterward. Level damage is part of the base; post-scale flat damage is added later.
Glass Cannon declares +80 weapon increase. Adding it to an active +100 pool gives +180: 2× → 2.8× base, or 40% more with other factors fixed and no post-scale flat damage.
Range/NPC branches, inherited values and upgrade replacement are excluded from the simple calculator.
Build 6698 code · Build 6698 weapon constructor; upgrade_glass_cannon.BaseAttackDamagePercent binding · Permalink ↗
Shots, bursts & sustained fireFire-rate bonus ≠ sustained DPS
Fire-rate bonuses add, while attack slows reduce the total. At the default −50 minimum stat, firing takes 1.5× as long: two-thirds speed. The gun calculator includes reload time, but not burst timing or missed shots.
20% and 30% slows combine to 44%. At a −50 fire-rate stat, the interval is 1.5× base: two-thirds of the original cycle rate, not half.
The minimum is configurable. The shortcut excludes cycle-percentage modifiers, inherited stats and gameplay-time scaling.
Build 6698 code · Build 6698 fire-rate stat and piecewise cycle-interval conversion · Permalink ↗
Healing & anti-heal
Healing & anti-heal
Chart help
Axes stay fixed while you edit. Use “Fit chart” to rescale. Hover, touch or use the slider to inspect. The dot marks your inputs; inspection does not change them.
Colors show received healing, anti-heal losses and unused HP.
Healing Booster, regeneration & calculation limits
The rechecked 6722 Healing Booster declaration still supplies +20% caster healing, +20% regeneration, +3 HP/s regeneration and a separate +1 out-of-combat regen parameter. The regen effects are not included in this direct-heal chart. The old unvalued anti-heal-resistance property is absent; the preset never invents one.
Caster rows represent a supplied additive bonus, not a verified item-stacking rule. Enter zero caster bonus if your incoming amount already includes it. The HP cap here is a simple missing-health limit; healing-block states, exempt regeneration, integer rounding and item activation are not simulated.
35% and 30% anti-heal leave 45.5% of the heal: 400 becomes 182. A +20% receiving bonus gives 262; an assumed +20% caster bonus gives 218.4 instead. They are different effects.
Receiving factor = max(0, 1 + bonus/100 − anti-heal/100). Receiving bonuses and anti-heal each combine their sources’ unmodified remainders. The checked 6722 receiving callback has no separate anti-heal-resistance stage.
Changed: with 35% + 30% anti-heal and a hypothetical 20% protection input, the old model gives 225.6 HP from 400; the checked 6722 stage gives 182 HP. This does not prove every healing source or protection effect was removed. Revalidation scope →
Historical receiver research · Rechecked Healing Booster declaration
Stacking rules & limits (2)
See how much HP a heal restores after anti-heal and bonuses.
Healing, regeneration & lifestealThree routes back to health
A bonus can affect the healer’s output, the recipient’s healing, or regeneration. Healing Booster declares caster and regen bonuses—not a universal bonus to every heal you receive.
Healing Booster declares 20 for cast healing amplification and regeneration amplification, with separate regeneration bonuses.
Configured · upgrade_healing_booster; healing scale-function families · Permalink ↗
Anti-heal has scope and duration35% and 30% → 54.5% receiving penalty
35% and 30% anti-heal leave 45.5% of a heal, so 400 becomes 182. A receiving-heal bonus offsets that penalty. A bonus on the caster changes the incoming amount instead.
From 400 entering healing, receiving penalties of 35 and 30 leave 182. A positive receiving bonus of 20 changes that to 262. Healbane declares penalties in both receiving and regeneration channels; this does not prove applying it twice to every heal.
Full caster/regen/lifesteal composition, exempt regeneration, missing-health caps and item activation/lifecycles remain outside this stage.
Build 6698 code · Build 6698 receiving-heal stage; upgrade_healbane channel declarations · Permalink ↗
Objective timelines
Objectives. Changes over match time.
Tower damage reduction changes continuously; ordinary Trooper spawn health steps up at 36:00.
Tower resistance over match time
Guardian: 12-minute ramp (14 in the alternate branch). Walker: 18-minute ramp.
Chart help
Axes stay fixed while you edit. Use “Fit chart” to rescale. Hover, touch or use the slider to inspect. The dot marks your inputs; inspection does not change them.
Timed modifier only—not total tower armor. Negative values amplify damage; other defenses still apply.
Timing rules & evidence
These are continuous match-clock ramps, not whole-minute steps. Guardian crosses zero at 6:00 (12-minute branch) or 7:00 (14-minute branch); Walker at 9:00. The Guardian’s branch selector is not inferred from the clock or presented as a live-match prediction.
No Street Brawl, custom clock offset, or combined Bullet/Spirit resistance model. The Base Guardian handler does not contain this same ramp, so it is not assigned one here.
R(t) = start + (end − start) × clamp(t / end-minute, 0, 1); damage multiplier at this stage = 1 − R(t) / 100
Frozen server 6698: Guardian damage handler 0xbcd790; Walker 0xbcd3d0; elapsed-clock helper 0x91e2d0; clamped interpolation 0x2acd70. Evidence and exclusions ↗
Trooper health at spawn
Chart help
Axes stay fixed while you edit. Use “Fit chart” to rescale. Hover, touch or use the slider to inspect. The dot marks your inputs; inspection does not change them. Dense steps are sampled at large ranges; inspected values are calculated directly.
Formula & limits
Spawn HP = trunc(base HP × (floor(minutes) > 35 ? 1.5 : 1)); with shrine-down buff: trunc(spawn HP × 1.4)
This uses the ordinary spawn calculation, not continuous health growth. The shrine checkbox assumes the buff is active; it does not infer which lane or team receives it from a Shrine kill. Mode and experiment overrides are excluded.
Both multiplications round to binary32 before truncating. Rejuvenator’s 1.7 / 2.0 / 2.3 health multipliers are excluded because their ordering is untraced. The shrine damage-scale setting 60 is not interpreted here as ×60 or +60%.
Medic healing settings
Medic Trooper. More than another health bar.
350 base HP. Its bound heal ability targets friendly heroes and Troopers. The captured definition separates their healing amounts:
- Hero heal setting
- 40
- Trooper heal setting
- 80
- Post-lane hero heal setting
- 80
6s authored cooldown · 15m cast range. Nearby-hero and secondary-hero checks have separate range settings of 30m and 25m.
Configuration, not guaranteed received HP or a heal every 6 seconds. Target selection, the post-lane switch and secondary-heal behavior have not been reconstructed here. The three ranges are not one universal healing radius.
Medic source
Build 6698: npc_units.vdata / trooper_medic binds ability_medic_trooper_heal in abilities.vdata. Heal_Players 40; Heal_Troopers 80; Heal_Players_Post_Lane 80; AbilityCooldown 6; AbilityCastRange 15m; HeroNearbyRange 30m; SecondaryHealHeroRange 25m.
Other structure defenses & exclusions
Structures. Different defenses.
Flat HP, attacker-specific resistance, range armor and backdoor protection are separate rules.
Guardian
5,500 HPPlayer-damage resist −25%; Trooper-damage resist 42.5%
Attacker-specific settings, not universal Bullet/Spirit armor.
Base Guardian
4,000 HPPlayer −25%; Trooper 42.5%. Backdoor Bullet resistance 40; reduction per hero 20
Backdoor activation and hero-count evaluator are separate.
Walker
6,000 / 9,000 / 12,000 HPBase / empowered I / empowered II. Nearby-enemy resistance array: 0, 0, 0, 20, 30, 40, 50
Empowerment triggers and array indexing are not established here. Ranged Bullet armor also exists.
Patron
12,000 each phase HPRanged armor: Bullet maximum 100%; Spirit maximum 0%
These are range-dependent maxima, not permanent resistance. Phase I growth settings: 250/min after start 20; phase II: 450/min after start 1; both tick every 60s. Timing origins remain unresolved.
Shrine
Not establishedNo verified flat HP/resistance value in this scoped extraction
Do not substitute a Patron or base-Guardian definition for a Shrine.
Sources, versions & what the calculators leave out
These are frozen build-6698 rules, not necessarily the current patch. Inputs are eligible effects—not every owned item or every repeated hit. Calculators report a stage’s result, not guaranteed final health loss or healing. UI limits are not game caps.
September configuration
Item, ability, hero, modifier and world settings captured for builds 6697 and 6698. Their script data is identical. Numbers describe these definitions, including inactive and development entries; they are not a current shop list or proof of every in-match interaction.
abilities.vdata, heroes.vdata, modifiers.vdata, npc_units.vdata, misc.vdata and generic_data.vdata; resolved property and hero-slot catalogs.
Build 6698 combat reconstruction
Frozen-server reconstruction of weapon-damage groups, fire-rate bonuses and slows, resistance pools, the ordinary Bullet/Spirit resistance stage, receiving healing and bounded Trooper health scaling. These are bounded code paths, not live gameplay tests or a complete item-build simulation. Identical 6697/6698 scripts do not prove identical executables.
deadlock_combat_stat_formulas_6698.md: weapon constructor, stat dispatch, cycle conversion and damage processor. Other reductions, absorption, bypass flags and special states remain separate stages.
September Rift reconstruction
The Unstable Rift's resistance, aura and capture paths were reconstructed separately from its Soul rewards. These rules belong to the Rift, not the Urn. A resistance contribution is not the complete damage-mitigation calculation.
September 17 comeback-system research, sections 4 and 8; versioned comparison with the September 18 build.
Earlier combat reconstruction
The June damage-pipeline and Shiv/Mina investigation establishes bounded code behavior in that earlier snapshot. Those findings are dated here rather than silently promoted to verified September combat rules.
June 12 damage-pipeline refresh; damage pipeline + Shiv/Mina first pass. The general resistance, shield and barrier calculation remains incompletely mapped.
Earlier interface survey
The shooting, camera, crosshair, communication, spectator and targetability survey identifies settings, fields and controls. It is a bounded survey, not a complete explanation of every client or server decision.
Broad mechanics evidence and seven topic inventories: shooting/aiming, crosshair, camera, spectator, player-position communication, targetability and Grey Talon.
Crippling Headshot’s name binding and stack/refresh rules, full healing-channel composition, Medic target selection and post-lane switching, and complete objective lifecycles remain unverified.
Build 6698 formulas and research boundaries ↗
Wiki: Damage Resistance · Wiki: Healing. Wiki patch and channel assumptions can differ from this reference.