BoonΒΆ
Boon is a fast Deadlock demo parser. The Rust core has native Python bindings. Boon reads Source 2 .dem files and returns Polars DataFrames.
Demo compatibility: Use Boon 0.10.0 or earlier for demos recorded before the City Never Sleeps update (September 29, 2026). Use Boon 0.11.0 or later for demos recorded with that update or later.
Get startedΒΆ
Install with uv add boon-deadlock or pip install boon-deadlock.
Read π Getting Started for dataset queries and π Examples for complete examples.
Use Calculate hero stats for hero values, Ability stats and imbues for ability bonuses and imbues, and Player states for recorded states. Set a boon-data version for these queries; see Game data downloads. The guides list accepted strings and enum members.
Read Known Issues for calculation limits. Report errors on GitHub or Discord.
Useful linksΒΆ
Deadlock β official home page
r/DeadlockTheGame β Reddit community
- π Getting Started
- π Examples
- Resolving IDs to names
- Stats, states, and ammo
- Healing and barrier absorption in the summary
- Match summary
- Kill feed
- Net worth over time
- Damage breakdown
- Item build order
- Item upgrades
- Current upgrades
- Enemy minimap icons
- Objective timeline
- Heatmap data
- Active modifiers (buffs/debuffs)
- Street brawl scores
- π API Reference
- π» CLI
- Game data downloads
- Calculate hero stats
- Select the game data
- Python
- Select baseline or current effects
- Select ticks and players
- Results
- Shared inputs
- Weapon damage
- Ammo equation
- Bullet velocity equation
- Falloff range
- Melee damage
- Melee distance bonus
- Reload time
- Fire-rate increase or decrease
- Slide distance, bullet evasion, and gravity scale
- Stamina and ordinary dashes
- Move speed and sprint speed
- Debuff resistance
- Damage resistance
- Lifesteal
- Unresolved inputs
- Rust
- Ability stats and imbues
- Player states
- Replay verification checklist
- Performance benchmarks
- β FAQ
- Where do I get demo files?
- Why does boon return Polars DataFrames instead of pandas?
- Why do DataFrames use integer IDs instead of names?
- How do I see what datasets are available?
- What is the difference between a property and
load()? - Why is
player_ticksmissing some heroes? - Are old demos supported?
- What is
trooper_boss? - How do I work with street brawl demos?
- How do I convert a tick to a timestamp?
- What does
damageinclude? - Can I use boon without Python?
- Something is not working. Where do I report it?
- Known Issues
- Stat calculations
- Spirit power and modifier bindings
- Client 6712 stat inputs
- Ammo and barrier snapshots
- Battle Vest health condition
- Weapon damage coverage
- Melee damage coverage
- Movement and evasion stat coverage
- Stamina and dash stat coverage
- Move and sprint speed coverage
- Damage resistance coverage
- Lifesteal coverage
- Debuff resistance coverage
- Barrier pool snapshots are not grant events
- Recorded stat bonuses
- Banned heroes are frequently missing
- Item upgrade links
- Ability bonuses and Arcane Surge
- Modifier lifetimes
- Urn returns
- Low-level format limits
- π§ Reference
- π¬ Demo File Internals
- π Roadmap
- π€ Contributors
- Changelog