lockfu

Data & assumptions

Every number on this site comes from the game files of a specific client build. What no file states is an explicit assumption below — the simulator lets you change most of them.

Sources

  • Heroes (starting stats, per-boon growth, spirit scaling, investment bonuses, level table, weapon), every ability (properties, scale functions, upgrade tiers, tooltip text) and every item (properties, sections, components), generic data (item prices, shop groups) and convars (starting souls). Parsed from the game's own files for each client version, so past builds can be re-imported.

  • Steam News (app 1422450)Authoritative (what Valve says)

    Valve's patch notes, parsed line by line and linked to heroes, abilities and items.

  • Patch post index (via deadlock-api.com), for links.

  • deadlock-api.com — match statisticsObserved matches (sampled)

    Last 30 days of hero wins, picks, KDA, net worth and shots hit/missed by rank bracket; item purchase win rates. Used for win-rate tiers and the default accuracy.

  • deadlock.wikiCommunity (CC BY-NC-SA)

    Game mechanics no file states: how resistances, cooldown reduction and lifesteal stack, the bullet damage formula, headshot multiplier, falloff, build-up rates. Never numbers.

Assumptions

Rules and scenario defaults no game file has. Each has an id the code cites (src/lib/engine/assumptions.ts).

Resistances multiplyresist-stacking
Total resist = 1 − Π(1 − rᵢ); resist reduction sources combine the same way and are then subtracted from the total (it can go below 0).
deadlock.wiki "Damage Resistance" (Calculation).
Cooldown reduction multipliescdr-stacking
Total reduction = 1 − Π(1 − cᵢ); the ultimate also takes ultimate cooldown reduction on top. Items take only item cooldown reduction.
deadlock.wiki "Ability Cooldown".
Lifesteal multiplieslifesteal-stacking
Total lifesteal = 1 − Π(1 − lᵢ), per bullet and spirit lifesteal.
deadlock.wiki "Lifesteal".
Damage-taken amplifiers add upamp-stacking
"Target takes +x% damage" debuffs add before multiplying damage.
No source states it; additive is the conservative reading of the in-game numbers.
Bullet damageweapon-formula
[(base + boons + spirit-scaled base) × (1 + weapon damage) + flat] × falloff × (1 − resist) × headshot multiplier.
deadlock.wiki "Weapon Damage" (Weapon Damage Formula). Spirit-scaled hero bullet damage (Vindicta, Grey Talon, Solomon) is counted as base damage: the game names it EBulletDamage, the base stat.
Fire cyclefire-cycle
Shots per second = burst ÷ (cycle + burst × intra-burst delay), × (1 + fire rate). Matches the data source's own DPS for every hero (engine test).
Game weapon data; verified against deadlock-api's computed DPS.
Damage fallofffalloff
Full damage to the falloff start, then linear down to the weapon's end scale (10% for most) at the falloff end; falloff range bonuses move both out, and the max range with them. A hero whose gun doesn't reach the distance closes to its max range.
deadlock.wiki "Falloff Range"; ranges converted at 39.37 engine units per meter (787 u = the 20 m designers set).
Headshotsheadshotadjustable
Headshot multiplier = 1 + (crit bonus − 1 + headshot damage bonus) × target crit resist (1 for a generic target). A share of hits lands on the head (adjustable).
deadlock.wiki "Weapon Damage" (Crit Multiplier). The share is a scenario choice.
Accuracyaccuracyadjustable
A share of bullets (each pellet separately) hits. Defaults to the hero's average shots hit ÷ shots fired in recent matches, else 45% (90% for a weapon that locks on to its target).
deadlock-api match statistics (shots hit/missed per hero). A lock-on weapon (Graves) has none: it hits while attached, and the 10% covers lost locks (cover, range). Real duels vary; adjust it.
Ability hitsability-accuracyadjustable
Damage abilities and item actives hit this share of the time (default 85%).
No statistics exist for ability hit rates; a scenario choice so gun and spirit builds are compared on equal terms.
Investment bonusesinvestment
Souls spent per category (the full price of each item owned in it) grant the highest of the hero's cost-bonus tiers reached: weapon → +% weapon damage, vitality → +% base health, spirit → flat spirit power. The tiers jump at 4,800 souls and grow more slowly after it, so every build and tier score already pays for the diminishing return on souls past 4,800 in one category.
Game data (cost_bonuses); deadlock.wiki "Items" (Investment bonuses). That vitality multiplies base health (hero base + boons) is the wiki's description.
Level from net worthlevels
Level = highest threshold reached by net worth, counting the starting souls; every level gives a boon, unlock levels an ability unlock, the rest an ability point.
Game data (level_info, citadel_player_starting_gold); deadlock.wiki "Boon".
Net worth is spentall-spent
The item budget is the whole net worth (unspent souls ignored); a component's cost counts toward the item it upgrades into.
Modelling choice for comparing builds at equal souls.
Item slotsslotsadjustable
9 slots, plus the 3 extra slots walkers unlock: assumed at 18k, 28k and 38k net worth (adjustable).
deadlock.wiki "Items": nine slots plus three unlocked by destroying Walkers. When walkers fall varies by match; these thresholds are an estimate.
Fight lengths in build scoresfight-lengths
Builds are compared on their average score over a short skirmish, the standard fight and an extended fight (½×, 1× and 2× the fight length: 5, 10 and 20 s by default).
Modelling choice: a single window lets one long-cooldown ultimate define a hero; real fights range from a quick pick to an extended teamfight. The simulator page shows the one fight length you set.
Distances in build scoresdistancesadjustable
Builds are compared on their average score at close, standard and long range (½×, 1× and 1.5× the distance: 10, 20 and 30 m by default), so falloff, close- and long-range items and travel-time effects all count. The simulator page shows the one distance you set.
Modelling choice: most guns lose damage from 17–20 m (their falloff start) and close-range items stop at 15 m; a single distance would either ignore falloff or apply it to every fight. Real fights move between ranges.
Fights in a matchengagementsadjustable
Build scores average a fight that starts with everything ready and one that starts 60 s after the previous fight, where abilities and actives with longer cooldowns are still recovering. The simulator page shows the fight you set (default: everything ready).
Modelling choice: a 100 s ultimate or Refresher isn't up for every fight of a match. 60 s between fights is an estimate of mid-game rhythm.
Expected values, no dicedeterministic
Chance-based effects add their expected value; whole-number procs are spaced by an accumulator, so every result is reproducible and builds one item apart compare without noise.
Modelling choice (as in wowfu).
Rotationrotation
Buffs first, then every damaging ability on cooldown by priority; the gun fires whenever no cast or channel blocks it. Casts block the gun for their cast delay plus channel time.
Modelling choice: a sustained duel at the chosen distance.
Damage over timedot-ticks
Damage over time ticks at the ability's own tick rate when it has one, else every 0.5 s; its total over the duration is exact either way.
Game data where present (TickRate); 0.5 s otherwise only spaces the damage in time.
Reference targettargetadjustable
Health = the average hero's base health at the same boons with a third of the net worth in vitality; resists from the scenario (defaults rise with net worth). It doesn't heal.
Illustrative: a typical enemy at equal souls. Every field is adjustable, or pick an enemy hero instead (assumption enemy).
Fighting an enemy heroenemyadjustable
Picking an enemy hero fights its generated build at your net worth (interpolated between checkpoints; its best-scoring build unless you choose one): its health, resists and healing per second become the target's, and the damage it deals (gun and spirit, raw before the reference resists it was measured against) becomes your incoming damage and its bullet share. Its crowd control is measured as the seconds its disables and weakening deny damage in a fight — shown, not applied to you.
Modelling choice: the generated builds are the simulator's own best guess at what each hero buys. Real enemies vary; every field stays adjustable.
Counter itemscounters
Items whose main effect only pays off against a kind of enemy (Return Fire and Metal Skin vs guns, cleanses vs crowd control, Healbane vs healing, parries…) are situational counters: generated builds and tier lists leave them out, and the optimiser considers them only against a chosen enemy. Items with a counter rider (Toxic Bullets' healing reduction, resist items) stay in. A counter kind's best targets are the heroes whose best builds have the most of it (gun DPS, spirit DPS, healing, disables, ultimate damage).
Modelling choice: a duel against an average enemy credits a counter every game; players buy them for the matchup.
Survivabilitysurvivaladjustable
Effective health = (health + barriers + healing during the fight) ÷ the share of incoming damage your permanent resists let through, plus the raw damage temporary defences (buffs, invulnerability, slowing the target's fire rate) kept off you during the fight. Build scores weigh it by the survivability weight.
Modelling choice: the duel index (damage per second × effective health) ranks builds that kill fast and survive long. Temporary defences count for what they block in the fight, so an invulnerable window adds its duration's damage instead of multiplying health. Default 50/50 incoming damage mix.
Shooting into Return Firereflect-counterplayadjustable
Enemies keep attacking into an active Return Fire for the first half of it, then hold off: damage is reflected only for that share of its duration. The damage you take is unchanged (the incoming stream is the enemy's average damage over the fight).
No statistics exist. Return Fire has an obvious visual and players learn to stop shooting into it; half its duration is an estimate of reaction time plus shots already committed. Without it a duel has the enemy shooting into every reflection.
Crowd controlcrowd-control
A stunned, petrified or frozen target deals no damage, a silenced one no spirit damage and a disarmed one no weapon damage for the duration (× the chance the ability landed). It counts in survivability like a fire-rate slow. Sleep is not counted (your own damage wakes the target). Point-and-click (unit-targeted) abilities always land.
Modelling choice: the duel's target has an incoming-damage stream (assumption incoming); crowd control is the time it can't add to it. Mobility, displacement and slows stay unscored.
Conditional effectsconditional
Effects that need a state the duel doesn't have (low health, out of combat, airborne, several enemies) are off unless the scenario turns them on; utility (stuns, mobility, vision) is listed but not scored.
Modelling choice: the score is damage and survival, not team value.
Defaults: 10 s fights at 20 m, 15% headshots, 85% ability hits, 50% bullet damage taken, survivability weight 0.6, zone uptime 50% (large auras 80%). Build checkpoints: 5k (lane), 12k (early mid), 20k (mid game), 32k (late game), 45k (very late).

What the simulator models

Abilities (176)
  • Fully simulated47
  • Partly simulated120
  • Utility9
  • Not modelled0
Shop items (156)
  • Fully simulated70
  • Stats only18
  • Partly simulated46
  • Utility22
  • Not modelled0
  • Always from the data: every hero's gun (damage, pellets, bursts, fire cycle, magazine, reload, falloff, spin-up), growth per boon, investment bonuses, and every item's innate stats.
  • Per model: what abilities and item passives/actives do in a fight — written against property names, never numbers, so patches flow through. Each says what it doesn't cover; hover them anywhere on the site.
  • Not scored: crowd control, mobility, vision, invisibility, team buffs, melee (not in the default fight), and anything that needs an enemy to act.

This build

Client version
6815
Build date
2026-10-22
Captured
2026-10-22 21:26
Kind
captured
heroes
44
abilities
176
items
173
streetBrawlItems
17
Import notes (1)
  • Ability tier costs (1, 2 and 5 points) are the game's upgrade rules, not in the asset files (deadlock.wiki "Abilities").

Builds on file

Past builds are re-imported from deadlock-api.com by client version; the Patches page diffs consecutive ones.

Patch day

  1. npm run import: fetch every source, build a validated snapshot for the new client version, re-parse patch notes and diff against the previous build, regenerate builds and tier lists.
  2. npm test: every model is checked against the new data; a renamed or removed property fails loudly.
  3. Commit data/ and push: CI tests, builds and deploys.

Numbers live in the data, behaviour in code: a patch that changes values needs no code change.

Item win rates

See Items: win rates of players who bought each item, which skew toward late, expensive items.