Guides
Practical guides for using gem's public Python API, CLI, and lower-level parser hooks. Each guide assumes gem is installed and you have a decompressed Dota 2 .dem replay.
You can download replays from OpenDota or from the Dota 2 client under Watch -> Recent Games.
Start here
| Guide | Use it when you want to |
|---|---|
| Quickstart | Install gem, parse one replay, and export data |
| Full Match Data | Understand the ParsedMatch and ParsedPlayer fields |
| Time-Series & DataFrames | Work with pandas tables, positions, and advantage curves |
Analyze replay events
| Guide | Use it when you want to |
|---|---|
| Combat Log | Filter damage, healing, kills, item uses, and modifiers |
| Teamfight Detection | Use Gem and OpenDota-compatible fight windows |
| Laning Analysis | Read lane roles, lane efficiency, and 10-minute advantages |
| Entity State | Subscribe to raw entity lifecycle and field updates |
Export and extend
| Guide | Use it when you want to |
|---|---|
| CLI Reference | Run parse, batch, and report asset-cache commands |
| JSON Output Shape | Understand the nested JSON structure returned by to_json() |
| Custom Extractors | Register parser callbacks and collect custom outputs |
Internals
Parser internals live in dedicated pages: