A Deadlock replay is a .demfile: Valve's Source 2 recording of everything the server sent during a match. This viewer reads that file in your browser and draws the whole match on the minimap, so you can watch where every hero was, when the fights happened and which side took each objective.
Getting a replay file from Valve
Valve hosts replays of public matches on its replay servers. A replay's address is made from the match ID and a per-match “replay salt”, so you can't build it from the match ID alone. The third-party deadlock-api.com service looks the salt up for you:
https://api.deadlock-api.com/v1/matches/<match id>/salts
The response has a demo_url field. When the service knows the salt, it is a direct link to the replay on a Valve host (an address like http://replay192.valve.net/1422450/<match id>_<salt>.dem.bz2). For many matches it is null, which means no replay address is known for that match and this route won't get you a file.
This guide does not cover where the game client shows a match ID or whether it can save a replay for you: we haven't verified those menus, so we won't describe them.
Or open it by match ID
The viewer does that lookup for you. Type the match ID into the folder on the Deadlock replay viewer: it asks deadlock-api.com for the replay address, downloads the file and opens it. If no address is known for that match, it says so.
The download is compressed
The file Valve serves ends in .dem.bz2, but it is compressed with zstd, not bzip2. You don't need to decompress it: the viewer reads it as it is. Expect a big file: a 30-minute match downloads as about 200 MB and decompresses to about 300 MB, and the viewer reads it in slices, so size is not a problem for it.
Open it in the viewer
- Go to the Deadlock replay viewer.
- Choose the
.dem(or Valve's.dem.bz2) with the Choose .dem button, or drop the file anywhere on the page. - The first time, the browser downloads the parser (about 3 MB). The replay opens once the first minute of game is read, and the rest keeps arriving while you watch.
- When parsing finishes, the match is saved and you get a link to share it.
What you see
- Every hero on the minimap with their health, sampled twice a second for the whole match.
- Kills, and each Guardian, Walker, Base Guardian and Patron as it falls, plus Mid-Boss kills, on a timeline drawn over the souls lead.
- Click a hero to follow it with a 20-second trail. Click an event to replay it. Drag the timeline to scrub.
- A scoreboard per team: K/D/A, souls, last hits and denies, hero damage and the item build.
- Keyboard:
Spaceplays or pauses, the arrow keys step 10 seconds,[and]change speed (1x to 32x),Ntoggles hero names.
Two limits worth knowing. Kills are rebuilt from the scoreboard counters (a death matched with an enemy's kill on the same tick), not read from a combat log, so a death with no matching kill shows no killer. Troopers, neutral camps and ability timings are not shown yet.
Your demo stays on your machine
The parser is compiled to WebAssembly and runs in your browser, so the .dem is never uploaded. Only the parsed match (positions, kills, objectives and the scoreboard, around a megabyte) is saved, to give the replay its share link.
Browse saved replays
Every saved match is listed on the home page, and each hero has a page with the saved replays they appear in: see all Deadlock heroes.
Open a replay