DLTimes field guide / Beyond the economy
Deadlock mechanics.
Card by card.
Damage, defenses, items, movement and the world around you. The non-economy systems in our collected research, explained one piece at a time.
64 of 64 cards · Choose a chapter or browse below.
Try the numbers / 23 mini-simulators
Small inputs. Clear curves.
Use one to three fields. Bonus fields also accept individual contributions such as 40 + 60. Read the result on the left and the curve on the right. The dot marks your inputs; the other inputs stay fixed along each curve.
In the same build-6698 weapon-increase pool, you move from 2× to 2.8× base damage: 2.8 ÷ 2 − 1 = 40%. You still gained 80 percentage points of bonus—not a hidden penalty. Keep the other damage group fixed and exclude post-scale flat damage. Adding 80 raw damage to a 100-damage shot is a different question: that is an 80% increase.
Read the label. Build 6698 rules are bounded executable reconstructions, not live gameplay tests or complete builds. Enter only active contributions; do not add consumed components again. Arithmetic models, Rift rules and September settings are labeled separately. Input ranges are calculator limits, not game caps unless a cap is explicitly stated.
Showing 23 of 23 charts.
More weapon damage
The same extra damage bonus is a smaller percentage of a larger existing total. Its absolute contribution has not disappeared.
One value or individual contributions, e.g. 40 + 60. Adds in this pool. Total: 100%.
One value or individual contributions, e.g. 40 + 60. Adds in this pool. Total: 80%.
Your inputs: 100 → 40 %
Build 6698: eligible nonnegative weapon increases in the same pool. Base and later multiplier group stay fixed; no post-scale flat damage, range/NPC bonuses or inherited stats.
Show the math
Relative gain = added bonus ÷ (100 + existing bonus) × 100%
More fire rate
The same extra firing cycles per second bonus is a smaller percentage of a larger existing total. Its absolute contribution has not disappeared.
One value or individual contributions, e.g. 40 + 60. Adds in this pool. Total: 50%.
One value or individual contributions, e.g. 40 + 60. Adds in this pool. Total: 25%.
Your inputs: 50 → 16.67 %
Build 6698: positive fire-rate bonuses, no slows, cycle-percentage modifier or time scaling. Plain firing cycles only; burst spacing, reloads and sustained DPS are separate.
Show the math
Relative gain = added bonus ÷ (100 + existing bonus) × 100%
Two weapon-damage groups
Weapon increases add together. All-damage and bullet-damage multipliers add in a later group; the two groups multiply each other.
One value or individual contributions, e.g. 40 + 60. Adds in this pool. Total: 60%.
One value or individual contributions, e.g. 40 + 60. Adds in this pool. Total: 30%.
Your inputs: 60 → 208
Ordinary nonnegative build-6698 branch. Base includes level damage; excludes post-scale flat damage, inherited stats, range/NPC conditions, critical hits and mitigation. Enter active contributions only, never consumed components twice.
Show the math
Damage = base × (1 + increase total / 100) × (1 + later multiplier total / 100)
Fire-rate bonuses and slows
Slows combine through remaining fractions, then subtract from additive bonuses. A negative fire-rate stat uses a different interval formula.
One value or individual contributions, e.g. 40 + 60. Adds in this pool. Total: 0%.
One value or individual contributions, e.g. 30 + 20. Combines remaining fractions, not a sum. Total: 50%.
Your inputs: 0 → 0.67 ×
Build 6698 normal state, default minimum stat −50, no inherited stats, cycle-percentage modifier or time scaling. The minimum is configurable; this is not a sustained-DPS simulation.
Show the math
q = max(−50, bonuses − combined slow); interval = 1/(1+q/100) if q>0, otherwise 1−q/100
Linear Spirit scaling
See how a base value and a Spirit coefficient contribute to one ability property.
Your inputs: 100 → 180
Only for a property known to scale linearly. This does not infer a formula from an unresolved scale-function name.
Show the math
Value = base value + coefficient × Spirit Power
Reloading lowers sustained DPS
A high firing DPS is not your long-run DPS when part of each cycle is spent reloading.
Your inputs: 5 → 71.43
Continuous fire then reload; constant firing DPS. No misses, burst ramp-up, procs or animation overlap.
Show the math
Sustained DPS = firing DPS × firing time ÷ (firing time + reload time)
Whole ticks, not partial ticks
A little extra duration only adds damage when it reaches another complete tick.
Your inputs: 5 → 100
First tick after one interval; a tick exactly at the end is included. Real effects can have different first-tick and expiry rules.
Show the math
Total = damage per tick × floor(duration ÷ interval)
Fractional damage can accumulate
Small fractions can eventually become a whole point of health lost instead of being discarded on every hit.
Your inputs: 3 → 1
Earlier-build float32 carry illustration, starting at zero carry. Positive processed damage only; not September runtime validation.
Show the math
Each hit: apply whole damage, retain fraction, carry one point when remainder ≥ 1
More health on a bigger health pool
A flat health bonus adds the same HP, but becomes a smaller relative increase as your current health pool grows.
Your inputs: 1,000 → 25 %
Enter the actual HP added after any scaling. No resistance, barriers, healing or percentage-health interactions.
Show the math
Relative gain = extra health ÷ current maximum health × 100%
Damage after a final resistance
Compare the resistance stage for the same Bullet or Spirit hit. Negative resistance increases its damage.
Your inputs: 40 → 60
Build 6698 ordinary resistance stage: enter final resistance, not individual item values. No amplification, other reduction, absorption, bypass or special states. This is processed damage, before integer health rounding.
Show the math
Damage after resistance = max(0, incoming hit × (1 − final resistance ÷ 100))
Resistance and effective health
Effective health measures how much raw damage one health pool can withstand against one damage category.
Your inputs: 40 → 1,666.67
Derived from the build-6698 ordinary resistance multiplier. No mixed damage, healing, barriers, other reductions, bypass or invulnerability; a continuous estimate, not exact integer health loss.
Show the math
Effective health = health ÷ (1 − final resistance ÷ 100)
Combining resistance sources
A new resistance contribution applies to the unprotected fraction. 30% and 20% combine to 44%, not 50%.
One value or individual contributions, e.g. 30 + 20. Combines remaining fractions, not a sum. Total: 30%.
One value or individual contributions, e.g. 30 + 20. Combines remaining fractions, not a sum. Total: 20%.
Your inputs: 30 → 14 pp
Build 6698 Bullet/Spirit positive resistance pool, zero innate/inherited stats, no reduction or NPC branch. Not a universal anti-heal or cooldown rule; each contribution must actually be active.
Show the math
Combined = 100 × [1 − (1 − current ÷ 100) × (1 − added ÷ 100)]
Resistance versus resistance reduction
Combine resistance sources in one pool and reduction magnitudes in another, then subtract the pools. Do not make one mixed-sign product.
One value or individual contributions, e.g. 30 + 20. Combines remaining fractions, not a sum. Total: 44%.
One value or individual contributions, e.g. 30 + 20. Combines remaining fractions, not a sum. Total: 28%.
Your inputs: 44 → 84
Build 6698 Bullet/Spirit path, zero innate/inherited stats and no NPC branch. Eligible contributions only; no absorption, amplification, other reductions, bypass or special states. Result precedes integer health rounding.
Show the math
Each pool = 100 × [1 − product(1 − contribution/100)]; net resistance = resistance pool − reduction pool; damage = hit × (1 − net/100)
Healing and healing reduction
Keep the size of the base heal separate from the final amplification and reduction applied to it.
Your inputs: 35 → 312
Illustrates the two supplied final multipliers. Does not establish real healing-channel eligibility, modifier stacking or health-cap behavior.
Show the math
Heal = base × (1 + bonus ÷ 100) × (1 − reduction ÷ 100)
Restorative Locket's base heal
The captured definition has 16 healing per stack and a maximum of 25 stacks.
Your inputs: 10 → 160
Builds 6697/6698 configuration. Base arithmetic only: no healing modifiers, missing-health cap or charge-earning simulation.
Show the math
Base heal = 16 × stored stacks; stored stacks ≤ 25
Shorter cooldowns, more uses
A percentage cut in seconds and a percentage increase in long-run cast frequency are not the same number.
Your inputs: 30 → 21 s
Enter final reduction values. Assumes base × (1 − reduction), immediate recasting and no cast/channel time; not an item-stacking formula.
Show the math
Cooldown = base × (1 − reduction ÷ 100); use rate ∝ 1 ÷ cooldown
Ability duration
Turn a final duration bonus into seconds before considering ticks, refreshes or interruptions.
Your inputs: 25 → 10 s
Only when the property uses base × (1 + bonus). This does not resolve individual duration scale functions or bonus stacking.
Show the math
Duration = base duration × (1 + final bonus ÷ 100)
Radius grows area faster
A 20% larger radius covers 44% more circular ground area—not just 20% more.
Your inputs: 12 → 452.39
Perfect flat circle only. No walls, vertical bounds, target filters or assumption that every ability uses a circle.
Show the math
Area = π × radius²; relative area gain = (new radius ÷ old radius)² − 1
Movement speed versus travel time
Adding the same speed saves fewer seconds when you are already moving quickly.
Your inputs: 7 → 14.29 s
Constant straight-line speeds. No acceleration, terrain, stamina, combat slow, dash or zipline behavior.
Show the math
Travel time = distance ÷ speed
A simple stamina refill
Calculate the waiting time for a chosen number of points at a constant recovery pace.
Your inputs: 3 → 15 s
Points recover sequentially with no initial delay or temporary recovery penalties. Not a reconstruction of Deadlock's full stamina system.
Show the math
Wait = missing points × seconds per point
The Rift resistance ceiling
The maximum contribution rises by one percentage point per minute, then stops growing.
Your inputs: 20 → 30 %
Reconstructed September Rift path at full bias. This is an aura contribution, not total resistance or an Urn effect.
Show the math
Maximum resistance = min(10 + elapsed minutes, 40)%
The Rift's live deficit scaling
The eligible team receives a fraction of the time-based maximum, reaching full strength at a 15% relative deficit.
Your inputs: 7.5 → 15 %
Deficit = 100 × (1 − own team net worth ÷ opposing net worth). Team eligibility was fixed at spawn; catching up changes strength, not team selection.
Show the math
Resistance = clamp(deficit ÷ 15, 0, 1) × min(10 + minutes, 40)%
Rift Troopers arrive in whole numbers
The count climbs in steps from five to fourteen as the stored spawn bias increases.
Your inputs: 50 → 9
Ordinary reconstructed branch. Use stored spawn bias, not the changing live deficit used by the resistance aura.
Show the math
Troopers = floor(5 + 9 × spawn bias ÷ 100)
No numeric simulator is invented for unresolved collision, targeting, cleanse or immunity rules. These remain explained in the reference cards below.
Damage & resistance
Start with the damage category. Resistance, reduced resistance, absorption and immunity are different mechanisms—not interchangeable names for one defensive stat.
A hit has several stages
The build-6698 Bullet/Spirit resistance stage multiplies damage by 1 − net resistance/100, then clamps negative damage to zero. Negative resistance increases damage. Amplification, other reductions, absorption and special states are separate stages; the processed floating-point amount is not necessarily the integer health loss.
A 100-damage hit with 16% net resistance leaves 84 damage at this stage. That is not a guarantee of 84 HP lost through every shield or damage hook.
Still open. Complete effect-specific shield, bypass and penetration behavior remains unresolved.
Source note
Build 6698 combat reconstruction: ordinary damage consumer
Bullet, Spirit & melee
Weapon damage, Spirit damage and melee have separately named properties and reporting categories. An ability's animation does not tell you which protection applies: a projectile is a delivery method, not a damage type. Read the effect and its damage category separately.
Rift Trooper data specifies Spirit and melee resistance separately.
Source note
Modifier property categories; Rift Trooper tier arrays
Resistance contributions
In build 6698, ordinary Bullet and Spirit resistance contributions combine through their remaining fractions: 1 − (1 − 0.30)(1 − 0.20) = 44%. Eligible resistance-reduction magnitudes combine in a separate pool, which is subtracted afterward. Item ownership alone does not establish which contributions are active.
30 and 20 resistance give 44%; 10 and 20 reduction give 28%. Net resistance is 16%. Without resistance, it is −28%.
Still open. This shortcut excludes innate/inherited stats and the NPC branch; component replacement and activation still need item-specific rules.
Source note
Resistance stat helpers; modifiers 32/33 and 34/35
Resistance reduction & penetration
The item data has target-side armor reduction, while the bullet-processing survey also identifies a penetration field. These are distinct inputs. The name of a field does not establish whether it subtracts percentage points, multiplies a value, affects a surface, or runs before another modifier.
The armor-reduction aura definition contains −10 Bullet Armor Reduction and a separate single-target player multiplier of 2.
Still open. The aura's complete evaluator and the penetration field's meaning are not established by those numbers.
Source note
upgrade_bullet_armor_reduction_aura; earlier bullet-origin server-authority research
Conditional defense
Some protection is conditional rather than permanently active. Keep its trigger, its bonus and any duration together when comparing items. In particular, a low-health bonus is not automatically an extra bonus at full health, and a post-cast buff is not an always-on resistance.
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.
Source note
upgrade_improved_bullet_armor; upgrade_warp_stone
The Rift's three resistances
The Rift aura contributes Bullet, Spirit and Status Resistance to its eligible team's nearby heroes. Here q is the team's current relative deficit, scaled from zero to full strength at a 15% deficit. The team is chosen when the Rift spawns; its resistance strength follows the live gap.
At minute 20, the maximum is 30%. Half-strength bias gives 15%; catching up can reduce the contribution to zero.
Still open. This is the Rift contribution—not total resistance, and not an Urn buff.
Source note
Comeback research §4: live deficit remap and three modifier callbacks
Health, healing & survival
Separate your health pool from how damage arrives, how health returns, and which temporary effect is protecting you.
Small hits can retain a remainder
The earlier health-mutation path uses integer health but retains fractional damage between applications. It floors the processed damage, combines the fraction with the stored remainder and carries a whole point when that sum reaches one. Rounding every hit independently would describe a different system.
The illustration assumes three positive 0.4-damage applications, an initial remainder of zero and no intervening modifiers or lethal clamps.
Still open. This is an earlier-build code finding, not a fresh September measurement.
Source note
TakeDamageOld fractional accumulator
Healing, regeneration & lifesteal
Direct healing, regeneration over time and damage-linked lifesteal have separate properties. A bonus to one should not be treated as a blanket multiplier to all three. Cast-side healing amplification, received healing and regeneration also have distinct fields.
Healing Booster declares 20 for cast healing amplification and regeneration amplification, with separate regeneration bonuses.
Source note
upgrade_healing_booster; healing scale-function families
Anti-heal has scope and duration
Healing reduction is not damage and is not a reduction to maximum health. Keep the affected healing channel and the debuff duration beside the percentage. The captured settings can describe both received-healing and regeneration penalties without proving how several anti-heal sources combine.
Healbane declares −35 received-healing and regeneration penalties, an 8-second duration and a separate heal-on-kill value of 275.
Still open. The combined anti-heal cap and stacking order remain unresolved.
Source note
upgrade_healbane
Stored healing stacks
A charge-based heal has at least three questions: how charges are earned, how many can be stored and what a charge is worth. Do not confuse the storage cap with the amount healed by one activation. Other healing modifiers may still affect the result.
Restorative Locket declares 16 healing per stack and a maximum of 25 stacks: 400 is the unmodified arithmetic product, not a guaranteed final heal.
Source note
upgrade_restorative_locket: HealPerStack, MaxStacks, AbilityCooldown
Barriers, immunity & evasion
Absorption tracks damage taken by a protective layer; evasion describes an avoided hit; immunity or a damageability gate can prevent an eligible damage application. None is simply extra maximum health. Their exact interaction with resistance and damage categories needs effect-specific rules.
The captured result schema has separate absorbed-damage and evaded fields.
Still open. A universal barrier-versus-resistance order is not established.
Source note
CTakeDamageResult; unresolved mitigation virtual path
Reflection & deferred damage
Reflection creates a separate question about damage returned to the attacker. Deferral moves some damage into a later process. Neither means that the original hit was automatically erased. Source attribution and timing matter when interpreting these effects or a death recap.
Return Fire declares 65% bullet reflection and 25% Spirit reflection, with a 6.5-second duration. Those are separate configured channels.
Still open. Reflection mitigation and deferred-damage settlement are not fully mapped.
Source note
upgrade_return_fire; citadel_ability_shiv_defer_damage
Items & stat bonuses
Read an item as a bundle: base stats, conditional effects, active behavior, targeting and timing. The captured catalog includes old and inactive definitions as well as usable items.
An item's parts
An item can grant an intrinsic modifier, listen for a trigger and expose an active ability. Tier, shop filters and tooltip grouping describe it, but do not themselves execute the effect. A passive stat and an active buff on the same item may have different lifetimes.
Warp Stone combines an 11m cast range, a 16-second cooldown, a 6-second caster buff and a Bullet Resist property of 30.
Source note
upgrade_warp_stone
Components & upgrades
A component link connects item definitions; it is not permission to add every stat of every linked record together. To evaluate a finished build, distinguish the item actually owned from its components and any consumed-component state. Tier is a classification, not a universal stat multiplier.
The inventory schema tracks consumed components separately from purchased items.
Still open. Full component-consumption and duplicate-item rules are outside the reconstructed scope.
Source note
ConsumedComponentState_t; purchase and upgrade survey
Weapon bonuses use two groups
Ordinary weapon and bullet increases add within one group. All-damage and bullet-damage multipliers add within a later group; the groups multiply each other. Flat level damage comes before scaling, while a separate flat bullet modifier comes afterward. Different activation conditions do not automatically create separate arithmetic pools.
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.
Still open. Range/NPC branches, inherited values and upgrade replacement are excluded from the simple calculator.
Source note
Build 6698 weapon constructor; upgrade_glass_cannon.BaseAttackDamagePercent binding
Active duration versus cooldown
Duration describes an effect's window; cooldown describes its reuse constraint. There may also be a cast delay or a separate buff duration. Dividing duration by cooldown does not establish real uptime when cast timing, interruptions or recharge rules are unknown.
Metal Skin declares a 5-second ability duration and a 24-second cooldown. Its movement penalties are separate properties.
Source note
upgrade_metal_skin
Ability and item cooldown bonuses
The captured items distinguish ability-cooldown reduction from item-cooldown reduction. A number on one channel cannot automatically be applied to the other. Charges and the gap between uses add another timing layer, so one generic haste equation would leave out important behavior.
Cooldown Reduction declares 20; Transcendent Cooldown declares 25 for ability cooldowns and 25 for item cooldowns.
Still open. The universal combination formula, limits and final rounding are not established.
Source note
upgrade_cooldown_reduction; upgrade_transcendent_cooldown
Range, radius & duration bonuses
Cast range limits where an effect can be placed or targeted. Radius describes its area. Duration describes how long it lasts. These have separate properties, even when an item affects more than one. Imbued or selected-ability effects also require the correct recipient.
Magic Reach declares 20 for both range and radius multipliers; Duration Extender declares 20 for ability duration.
Still open. These are configured bonuses, not proof that every ability scales or combines them identically.
Source note
upgrade_magic_reach; upgrade_duration_extender; upgrade_imbued_duration_extender
Weapons, bullets & melee
Damage per shot is only one part of a weapon. Delivery, spread, hit location, range, ammunition and recovery all matter.
Shots, bursts & sustained fire
Build-6698 fire-rate bonuses add; slows combine through remaining fractions and subtract from them. Positive stats shorten the firing interval reciprocally, but negative stats lengthen it linearly. The ordinary default minimum stat is −50. Burst spacing, magazines, reloads and missed pellets still affect sustained damage.
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.
Still open. The minimum is configurable. The shortcut excludes cycle-percentage modifiers, inherited stats and gameplay-time scaling.
Source note
Build 6698 fire-rate stat and piecewise cycle-interval conversion
Falloff & critical hits
Weapon data distinguishes damage-falloff start and end ranges and critical-hit parameters. Range is therefore more than whether a crosshair can point at a target. A headshot indicator or a range warning is useful feedback, but not a complete calculation of final damage.
Compare range endpoints and critical parameters per weapon rather than borrowing one curve for every hero.
Still open. Interpolation, per-weapon critical rules and their order with mitigation remain incomplete.
Source note
Shooting/aiming inventory; weapon schema
Spread, recoil & aim
Aiming, bullet spread, recoil and projectile origin are separate parts of firing. Zoom state and weapon-specific settings can change the presentation or firing context. A tidier crosshair is not evidence that server-side spread has changed.
The survey identifies zoom state, zoom timing, custom crosshair settings and server-side bullet work separately.
Source note
Shooting/aiming and crosshair inventories; bullet-origin reconstruction
Projectile delivery & collision
A projectile can carry damage, apply a modifier or create an area effect. Travel speed, collision and targeting are distinct from the damage type and amount. A visible impact is not enough to tell whether direct damage, a later tick, or both caused the health change.
In the earlier Shiv investigation, dagger impact damage was configured as zero while a bleeding modifier produced the damaging ticks.
Still open. That historical example is not a claim about every September projectile.
Source note
Shiv thrown-dagger investigation
Ricochet & secondary targets
A bounced shot needs target eligibility, a search radius and a damage setting. The original target and a secondary target are not interchangeable. The captured Ricochet definition excludes invisible targets and allows small deployables; other chaining effects may use different filters.
Ricochet declares a 13m radius and 65% damage. Its displayed target count is 2 in a tooltip-only property.
Still open. The tooltip-only count is not independent proof of the runtime target-selection loop.
Source note
upgrade_ricochet: RicochetRadius, RicochetDamagePercent, target flags
Melee & parry are distinct actions
Heroes bind a melee ability separately from their primary weapon. Melee damage, reach, timing and a parry interaction must be read from the appropriate action, not inferred from gun damage. Movement also has separate settings for a parry-cancel transition.
The dash definition contains separate 0.4-second parry-cancel slide and air-glide settings.
Still open. These transition settings are not the parry hit window or a universal melee timing formula.
Source note
Hero melee-slot bindings; citadel_ability_dash parry-cancel fields
Abilities & scaling
Base values are the beginning of an ability calculation. Upgrades, scaling, timing, targeting and the active modifier determine what those values can mean.
Use the ability actually equipped
A hero's slot binding identifies which definition belongs to that slot. Internal names, alternate versions and unused abilities can coexist in the files. Finding a definition with an impressive effect does not establish that the playable hero uses it.
The September catalog resolves 900 hero-slot bindings to 361 distinct ability definitions, including shared actions and development entries.
Source note
Hero-slot binding catalog
A coefficient is not the whole formula
Scaling can reference one stat, several stats, a curve, healing rules or a specialized ability function. A coefficient alone does not settle the operation order, limits or rounding. The general scale-function implementations have not all been reconstructed, so this guide does not turn every coefficient into a damage formula.
The snapshot has 5,947 property rows with scale functions; their evaluator semantics remain unresolved in the catalog.
Source note
Formula-property catalog and unresolved scale-function coverage
Upgrade bonuses have a target
An upgrade can change damage, charges, duration or another property rather than multiplying the whole ability. It may change a coefficient as well as a base value. Read the upgraded property and its operation before applying the bonus to an entire tooltip.
The earlier Shiv analysis distinguished a base bleed value from an upgrade to both that value and its Spirit coefficient.
Still open. The historical coefficients should not be reused as current balance values.
Source note
Shiv dagger property and upgrade analysis
Charges, recharge & use spacing
Charge count describes how many uses can be stored. Recharge describes how uses return. A separate between-charge cooldown can limit consecutive activations. A full stock therefore does not necessarily allow every use at once, and a recharge bonus is not the same as adding a charge.
The data has distinct ability-charge, recharge-function and between-charge timing properties.
Source note
AbilityCharges; AbilityCooldownBetweenCharge; recharge scale-function family
Cast delay, channel & interruption
Abilities can enable different states before, during and after a cast, and declare states that interrupt them. A channel does not automatically grant immunity. Movement permissions, shooting restrictions and interruption rules need to be checked independently.
Dash lists immobilized, stunned, asleep and movement-ability-restricted states as interrupters.
Source note
citadel_ability_dash state masks; ability behavior fields
Damage over time
A ticked effect has an amount, a cadence, a lifetime and sometimes stacks. Those are separate variables. In the earlier Shiv code path, a tick multiplies evaluated bleed DPS per stack by the tick scalar and stack count, then sends that amount through the damage pipeline.
A longer effect may produce more ticks, but boundary timing and refresh behavior still need to be known.
Still open. Do not assume every effect applies an immediate first tick or shares Shiv's refresh behavior.
Source note
ThrownShivDamageDebuff tick path
Movement & traversal
Movement is a collection of states and transitions. A speed bonus, an extra stamina point and a shorter recovery timer solve different problems.
Speed and stamina are separate
Movement speed changes travel; stamina supplies a resource for movement actions; stamina recovery governs replenishment. Air-movement bonuses are another property. Combining all of these into one mobility number hides their different uses and conditions.
Superior Stamina declares +2 stamina, 18 stamina-cooldown reduction and 23 for air-movement increase.
Source note
upgrade_superior_stamina
Ground dash versus air dash
Dash data separates ground and air behavior, including acceleration, drag, end velocity and interruption. The velocity left after an action matters as well as its starting speed. A distance seen in one context does not establish the distance in another.
Air-dash end-velocity scale and ground-dash airborne drag are separate settings in the captured definition.
Source note
citadel_ability_dash movement fields
Dash-jump timing
The jump definition has separate start and end timing parameters for a dash-jump, plus a distance parameter. These describe an intended transition window, not a promise that every input at those times succeeds regardless of state, collision or latency.
The same definition declares a 19m dash-jump distance parameter.
Still open. These are configuration values, not measured travel distances.
Source note
citadel_ability_jump: m_flDashJumpStartTime, m_flDashJumpEndTime, m_flDashJumpDistanceInMeters
Slides, wall jumps & recovery
Slide entry and exit have their own timing settings. Jump data also declares a hidden wall-jump stamina-regeneration modifier. The action and its temporary recovery effect should be considered separately; a hidden modifier can matter without being a visible ability icon.
That modifier references a −25 stamina-regeneration property and a 5-second duration property.
Still open. The complete application and stacking behavior is not established by the declaration.
Source note
citadel_ability_jump: wall-jump modifier and stamina-regeneration properties
Ziplines, boosts & teleporters
Zipline traversal, boosts and teleporters have their own world and movement settings. Camera-facing direction and movement direction are distinct attachment inputs in the earlier survey. Travel effects and the camera that follows them should not be treated as the same mechanic.
The September data separates no-lane zipline and teleporter parameters; the survey also records a zipline-boost modifier.
Still open. Static route placements do not prove when a route is active in a live match.
Source note
m_NoLaneZip; m_TeleporterParams; earlier camera and zipline survey
Status effects & stacks
A status can change what you may do, modify a stat, or both. Duration, repeated applications and removal are separate rules.
Stun, sleep, immobilize & silence
The data names separate control states rather than one universal crowd-control switch. An action's interrupting-state mask determines which restrictions it checks. Preventing movement, interrupting an ability and preventing shooting are different questions—even when one effect does several of them.
Warp Stone lists immobilized, stunned and asleep as interrupting states. Dash includes an additional movement-ability restriction.
Source note
upgrade_warp_stone; citadel_ability_dash interrupting-state masks
Status Resistance
Status Resistance is a separate modifier property from Bullet and Spirit Resistance. An effect can grant one, several or none of them. Its presence does not by itself provide a complete duration-reduction equation for every stun, slow or other debuff.
The Debuff Reducer definition declares 25 Status Resistance. The Rift supplies all three resistance categories through separate callbacks.
Still open. Universal duration scaling, caps and stacking are not established.
Source note
upgrade_debuff_reducer; Rift resistance callbacks
Stacks versus separate instances
A modifier can have a stack counter, a maximum and attributes allowing multiple instances. These describe different ways an effect may accumulate. A visible stack count alone does not prove whether repeated applications refresh one timer, add another instance or extend a shared duration.
Restorative Locket has a declared maximum of 25; that limit is not a cap for unrelated modifiers.
Source note
CBaseModifier stack fields; modifier attributes; upgrade_restorative_locket
Refresh, expiration & cleanup
A short-lived child modifier can be kept alive by an aura refreshing it. Leaving the area stops eligibility for refresh, rather than necessarily deleting the effect on the exact boundary-crossing frame. Persistent and timed modifiers require different lifetime handling.
The Rift's child aura modifier has a one-second provided duration and is refreshed while eligible.
Source note
Rift comeback aura lifecycle
Cleanse, suppression & prevention
Removing an existing debuff, suppressing an effect while a state lasts and preventing a new application are different operations. An active item can also grant a heal or a movement buff independently of its removal behavior. An item's name is not a complete list of what it removes.
The Reduce Debuff Duration item definition declares a 250 activation heal and a separate 3-second movement buff.
Still open. A complete dispel eligibility and immunity interaction matrix is not available.
Source note
upgrade_reduce_debuff_duration
Vision & targeting
Seeing something, selecting it, reaching it and being allowed to affect it are four different questions.
Visible does not mean targetable
Visibility state, target filters, line-of-sight checks and damageability gates belong to different systems. An entity can be drawn by the client without satisfying an ability's target rules. Conversely, a legal target still has to pass the relevant damage or effect application checks.
The captured targeting and visibility survey tracks these fields separately from the health-mutation path.
Source note
Targetability/visibility inventory; damage pipeline gates
Friendly, enemy & unit filters
Targeting distinguishes team relationships and unit classes such as heroes, troopers, bosses, minions, props and neutrals. A hero-targeted heal and a bouncing weapon effect therefore need different candidate sets. Being inside the area is not enough when the type filter excludes you.
Restorative Locket specifies friendly heroes; Ricochet lists several enemy unit classes and neutrals.
Source note
upgrade_restorative_locket; upgrade_ricochet target types
Invisibility & detection exceptions
An explicit no-invisible-target flag is evidence about that effect's targeting rules. It is not a global statement that invisible entities cannot be damaged, revealed or affected by an area. Detection and application rules must be checked independently.
Ricochet's captured target flags include no invisible targets and allow small deployables.
Source note
upgrade_ricochet target flags
Range, radius, cone & height
A range chooses reach; a radius chooses spread; cones add angle; cylinders add vertical bounds. Ground previews can omit information that matters in a three-dimensional fight. The effect's actual target shape should be kept separate from the artwork that illustrates it.
Restorative Locket declares a 45-degree targeting cone. The Rift aura uses a cylinder with a vertical offset and half-height.
Source note
upgrade_restorative_locket targeting; Rift aura geometry
Collision & line of sight
Camera occlusion checks, projectile collision and target visibility serve different purposes. A camera repositioning around an obstacle does not establish a clear firing path. Likewise, a targeting preview is not proof that a later projectile will avoid world geometry.
The interface survey identifies a dedicated cylinder trace for hard camera occlusion.
Source note
Camera hard-occlusion trace setting; targetability and shooting surveys
Objectives & the world
These cards cover non-Soul behavior. Reward amounts and comeback payouts remain in the separate economy guide.
Rift capture speed
The reconstructed Rift capture path uses spawn-selected bias to favor one side and hinder the other. Its capture timing is separate from the live-gap resistance calculation: changing the current gap does not mean every spawn-time decision is recomputed.
The documented endpoints are 6 seconds for a fully favored side and 18 seconds for an unfavored side at zero bias.
Source note
Rift capture lifecycle and spawn snapshots
Rift Trooper count & cadence
The stored spawn bias determines the ordinary Rift Trooper count, from five to fourteen. Spawning is paced rather than treated as one simultaneous award. A Rift modifier and a stored Rift identity connect the Troopers to the event that produced them.
At q = 0.5, the count is floor(9.5) = 9. This q is the stored spawn bias, not the aura's live resistance bias.
Still open. This is the reconstructed ordinary branch; alternative selector behavior is discussed in the economy guide.
Source note
Rift Trooper count, interval and modifier assignment
Rift Troopers have tiered stats
The captured Rift modifier has tier arrays rather than one stat package for every wave. Health and damage settings, resistance and model scale are separate fields. A larger model is not a formula for health or collision size.
The four Spirit-resistance values are 30/35/40/45; melee resistance is 25 at each tier. Health and damage arrays are 100/120/140/160.
Still open. Array values alone do not establish the final health or damage evaluator.
Source note
Authored Rift Trooper tier arrays
Rejuvenator lifetime & respawn settings
The Rejuvenator has separate drop, warning, buff and respawn settings. Its buff lifetime is not the same as the time needed for the object to drop. Respawn modifiers also need to be distinguished from the underlying respawn timer.
The captured settings declare a 180-second buff, a 30-second expiration warning and respawn factors of 0.5/0.4/0.3.
Still open. These settings do not by themselves settle tier selection or full respawn-timer arithmetic.
Source note
generic_data.vdata: m_RejuvParams
Troopers, neutrals & structures
Lane units, neutral camps, bosses and defensive structures should not share an assumed health, attack, targeting or lifecycle rule. The world catalog separates NPC units from other entities. A definition is evidence of a configured unit, not a guarantee that it spawns in every mode.
The September catalog contains 58 NPC-unit definitions and 97 miscellaneous entity definitions.
Source note
npc_units.vdata; misc.vdata
Breakables, explosions & loot
Props, explosion types and loot tables are separate data families. Breaking a prop does not make every listed loot entry certain; an explosion's visual presentation is not its entire damage or targeting rule. Conditions, selection and runtime activation still matter.
The catalog includes 82 prop-data definitions, 16 explosion types and 18 loot tables. Soul amounts are covered separately.
Still open. Loot probabilities and complete runtime interaction rules are not reconstructed.
Source note
propdata.vdata; explosion_types.vdata; loot_tables.vdata
Game modes, death & respawn
A lethal-damage path and a respawn schedule are separate systems. Mode-specific timing arrays should not be applied to every queue. Likewise, an objective or route found in map data does not prove that its activation conditions are met in a particular match.
Street Brawl has its own respawn and overtime arrays; those are not Normal-match respawn rules.
Still open. The complete Normal-match respawn formula and objective lifecycle coverage remain open.
Source note
generic_data.vdata: m_StreetBrawl; static map inventory
Heroes, summons & special cases
Shared systems explain the vocabulary. Individual heroes and summoned entities still need their own bindings and rules.
Hero stats & progression
Hero definitions contain their own base statistics, weapon links and ability slots. Growth, ability upgrades and purchased stats are different sources of change. An internal hero entry can be a template or development character, so the file count is not the playable roster count.
The September catalog has 59 hero definitions and one hero template. The earlier 63-record catalog is a different snapshot.
Source note
heroes.vdata; versioned hero-binding coverage
Summons & deployables
A summoned unit or deployable is an entity with its own lifetime and targeting category. Ownership connects it to a hero but does not imply that it inherits every hero stat, item proc or protection. Small-deployable exceptions can be explicitly allowed by an effect.
Ricochet's target flags specifically allow small deployables.
Still open. Universal summon inheritance, proc sharing and despawn rules are not established.
Source note
NPC and ability bindings; upgrade_ricochet target flags
Grey Talon's guided bird
The Talon survey separates the bird-related ability and entity evidence from camera and steering controls. That distinction matters when reading a replay: following a guided entity is not the same as observing the hero's ordinary weapon view.
The collected bird material is a bounded topic survey, not a complete steering or impact formula.
Source note
Grey Talon / archer / bird topic inventory
A dramatic ultimate is not immunity
In the earlier Mina investigation, the bound Batswarm channel listed movement and shooting restrictions but no declared defensive state of the kinds inspected. That was not a proof that every possible incoming-damage interaction had been eliminated or that a later patch could not change the ability.
Use the bound ability and its actual modifiers, not an alternate ultimate left in the files.
Still open. Absence of a defensive declaration is not a complete runtime proof of vulnerability.
Source note
Mina Batswarm binding and channel-state investigation
Camera, aim & feedback
What the game shows helps you act, but presentation should not be mistaken for the authoritative combat calculation.
Zoom, field of view & sensitivity
Zoom state, zoom timing, field of view and zoom sensitivity are separately represented. Camera changes can alter how fast motion appears or how much of the world is visible without themselves proving a change to weapon damage, projectile spread or target eligibility.
The earlier survey distinguishes absolute and relative zoom-FOV settings.
Source note
Camera and crosshair surveys; primary-weapon zoom fields
Movement and ability cameras
Dash, zipline boost and individual abilities can declare camera sequences or overrides. These control presentation during a state or action. A change in camera angle or distance should not be used on its own to infer an equivalent change in the hero's hitbox or speed.
Ground and air dash have separately named camera sequences.
Source note
CAbilityDashVData; zipline-boost and ability camera sequences
Crosshairs & hit markers
The crosshair has customization, clipping, range-warning and hit-marker settings. These describe visual feedback and can be weapon-specific. They do not expose the complete resistance calculation or prove the exact amount of health removed by an individual hit.
Out-of-range distance and hit-marker duration are distinct settings in the survey.
Source note
Crosshair UI topic inventory
Previews, effects & audio cues
Ability previews, damage indicators, healing sounds and other feedback help communicate events. Their assets and timing are not the underlying combat rule. Cosmetic definitions, sound tags, decals and lighting were catalogued too, but are not counted as additional damage or movement mechanics.
The global data separates damage-indicator, damage-received and healing-received sound groups.
Source note
generic_data.vdata sound groups; preview and presentation inventories
Communication & spectating
The final layer is how positions and events are communicated—and which viewpoint you are actually watching.
Pings & position communication
Ping-wheel messages, target information and position-related communication are represented separately from aiming and damage. A map marker communicates a location or request; it is not itself proof that a unit remains there or is currently visible and targetable.
The captured data includes 53 ping-wheel message definitions.
Source note
ping_wheel_messages.vdata; player-position communication survey
Four spectator viewpoints
The earlier client survey names four spectator modes: directed viewing, free camera, hero chase and player view. The viewpoint changes what the camera follows; it does not make a spectator camera interchangeable with the player's exact input or the server's hit calculation.
The surveyed mode control labels them 0, 1, 2 and 3 respectively.
Source note
Spectator mode setting and observer-service fields
Observer targets & camera behavior
Observer state tracks a target separately from camera parameters and the currently observed team. Automatic camera alignment, roaming speed and chase distance concern how the view is presented. A camera motion in a replay should not automatically be attributed to a player's aim input.
The survey records target locking, automatic target-view alignment and separate spectator distance/FOV settings.
Source note
CPlayer_ObserverServices; spectator camera controls
Replays are observations, not omniscience
A replay or broadcast can expose an entity state without revealing the complete decision that produced it. Missing updates are not zero values. A partial broadcast is also different from a complete demo, and a displayed build number is not an attestation of the remote executable.
Use observations to check a specific question; do not infer an unseen item proc or damage source from a health change alone.
Source note
Replay field survey; bounded observation methodology
The boundaries of the guide
Coverage without guesswork.
This guide covers the captured non-economy families, not every solved interaction or a tooltip for every individual item. The full September inventory contains 1,882 definitions across 77 parsed data files. Repeated properties, templates, unused content and presentation data are not thousands of independently proven mechanics.
- 414
- Ability definitions
- 282
- Item definitions
- 88
- Weapon definitions
- 80
- Modifier definitions
Hero bindings, global rules, NPCs, props, explosions, loot, map placements and the interface survey supply the remaining families. Sounds, decals, lighting and development-tool data are accounted for as support data, not extra player-facing rules. Static map placement does not establish live spawning or activation.
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.
Reference material
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 and the ordinary Bullet/Spirit resistance stage. These are bounded code paths, not live gameplay tests or a complete item-build simulation. Identical 6697/6698 scripts do not prove identical executables.
Reference material
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.
Reference material
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.
Reference material
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.
Reference material
Broad mechanics evidence and seven topic inventories: shooting/aiming, crosshair, camera, spectator, player-position communication, targetability and Grey Talon.
What we cannot yet give you as a universal formula
Complete shield and penetration behavior; healing and anti-heal stacking; cooldown stacking; every scaling evaluator; all cleanse and immunity interactions; summon inheritance; and complete objective or respawn lifecycles. The bounded combat rules above do not settle these other systems or every item's activation and replacement rules.
Build 6698 combat formulas & boundaries ↗
Public schema snapshot ↗