Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Boon

Discord Docs License: MIT

Python   PyPI PyPI Downloads Python 3.11+

Rust   crates.io crates.io Downloads

CLI   GitHub Release CLI Downloads

Boon is a fast Deadlock demo / replay parser written in Rust with native Python bindings. It returns Polars DataFrames for easy analysis.

Installation

We recommend using uv:

uv add boon-deadlock

You can also use pip:

pip install boon-deadlock

Requires Python 3.11+.

Quick Start

from boon import Demo

demo = Demo("match.dem")

# Match metadata
print(demo.match_id)         # 28309863
print(demo.map_name)         # "dl_midtown"
print(demo.total_ticks)      # 54000
print(demo.total_clock_time) # "30:00"
print(demo.winning_team_num) # 2

# Name lookups (module-level — no demo required)
from boon import hero_names, team_names, ability_names, modifier_names

print(hero_names())      # {0: "Base", 1: "Infernus", ...}
print(team_names())      # {1: "Spectator", 2: "Hidden King", 3: "Archmother"}
print(ability_names())   # {46922526: "inherent_base", ...}
print(modifier_names())  # {2059539911: "timer", ...}

# Player info
print(demo.players)
# shape: (12, 5)
# ┌─────────────┬──────────────┬─────────┬──────────┬────────────┐
# │ player_name ┆ steam_id     ┆ hero_id ┆ team_num ┆ start_lane │
# ...

# Datasets (Polars DataFrames — all lazy-loaded on first access)
player_ticks     = demo.player_ticks      # per-player state every tick
world_ticks      = demo.world_ticks       # world state every tick
kills            = demo.kills             # kill events
damage           = demo.damage            # damage events
item_purchases   = demo.item_purchases    # item shop transactions
ability_upgrades = demo.ability_upgrades  # skill point spending
abilities        = demo.abilities         # ability usage events
flex_slots       = demo.flex_slots        # flex slot unlocks
chat             = demo.chat              # chat messages
objectives       = demo.objectives        # objective health per tick
mid_boss         = demo.mid_boss          # mid boss lifecycle events
troopers         = demo.troopers          # lane trooper state per tick
neutrals         = demo.neutrals          # neutral creep state changes
stat_modifier_events = demo.stat_modifier_events  # permanent stat bonus change events
active_modifiers = demo.active_modifiers  # buff/debuff modifier events
urn              = demo.urn               # urn lifecycle and delivery events

Features

  • Parse Deadlock .dem demo files at native speed via Rust
  • 17 built-in datasets covering players, combat, economy, objectives, and map state
  • Access to match metadata, player info, entity state, game events, and post-match summaries
  • All data returned as Polars DataFrames

Documentation

Full documentation is available at boon.readthedocs.io.

License

MIT — see LICENSE for details.