Collection of JavaScript packages for parsing and playing back Valve Source 2 demo / replay data in Node.js, Deno, Bun, and browsers.
The parsing stack depends only on:
protobufjs— Protobuf decoding.snappyjs— Snappy decompression.
| Package | Description |
|---|---|
@deademx/engine |
Shared, game-agnostic engine: parser, replay player, interceptor pipeline, broadcast client, configuration. |
deadem |
Original Deadlock implementation built on top of @deademx/engine. |
@deademx/cs2 |
Counter-Strike 2 implementation built on top of @deademx/engine. |
@deademx/dota2 |
Dota 2 implementation built on top of @deademx/engine. |
| Package | Description |
|---|---|
@deademx/examples-common |
Shared helpers, fixtures, and support code used by the example packages. |
@deademx/examples-node-deadem |
Node.js example scripts, benchmarks, and diagnostics for deadem. |
@deademx/examples-node-cs2 |
Node.js example scripts, benchmarks, and diagnostics for @deademx/cs2. |
@deademx/examples-node-dota2 |
Node.js example scripts, benchmarks, and diagnostics for @deademx/dota2. |
@deademx/ui |
Published web app at deadem.com demonstrating the libraries. |
npm installScripts live under packages/examples-node-<game>/scripts. Pass --demo=<path> to parse your own .dem replay:
node ./packages/examples-node-deadem/scripts/100_parse.js --demo=./match.dem
node ./packages/examples-node-cs2/scripts/100_parse.js --demo=./match.dem
node ./packages/examples-node-dota2/scripts/100_parse.js --demo=./match.demnpm start # UI dev server
npm preview # UI production preview @deademx/engine— shared model and API reference (start here).deadem— Deadlock.@deademx/cs2— Counter-Strike 2.@deademx/dota2— Dota 2.
This project is licensed under the MIT License.
Inspired by and built upon the work of:
- dotabuff/manta — Dotabuff's Dota 2 replay parser in Go
- saul/demofile-net — CS2 / Deadlock replay parser in C#