arrow_back All field notes
// F.07 · Replay review

The 2D mini replay: reviewing a Dota 2 scrim without opening the client

Every hero, ward, courier and building position from a parsed replay, replayed on a minimap in your browser — no client, no download, no waiting for a lobby to load.

Published 2026-08-10Updated 2026-08-108 min read

The problem with reviewing in the game client

Reviewing a scrim in the Dota 2 client is slow in a way that is easy to stop noticing. You load a replay, wait, scrub to roughly the right minute, overshoot, scrub back, switch to the player you actually wanted to watch, realise the camera was on the wrong side of the map for the rotation you were trying to see, and start again. Ten minutes of review time buys you maybe two moments worth talking about.

The other problem is that the client shows you one camera at a time. Most of what decides a Dota game is not in frame: the offlaner walking to a ward spot, the courier flying a Blink into the wrong lane, the support who stopped covering the Roshan approach three minutes before the enemy took it. A team review needs the whole map at once, and it needs to be scrubbable at the speed of conversation.

The mini replay is the answer to both. It is a 2D playback of the parsed replay rendered on a minimap: everything on the map, every second, in a browser tab you can pause, scrub and share.

What is actually on the map

The viewer draws a layer stack, bottom to top, so the things you argue about stay readable over the things that are just context.

Heroes
One marker per hero per second, with level, KDA, net worth, health and mana. Dead heroes grey out and carry a respawn countdown; a hero the enemy cannot currently see is drawn with a dashed fog ring, so you can watch your vision of them come and go.
Creeps
Every living creep as a small dimmed dot in its team colour. Individually they are noise; as a mass they are the lane state — you can see a wave get pulled, a push stall, or a lane go permanently one-sided.
Wards
Observers and sentries appear when placed and fade as their lifetime runs down, so a ward about to expire looks different from one that just went in. Wards are paired by handle, so a deward is a ward disappearing, not a gap in the data.
Buildings
Towers, barracks and forts with their destroyed state, plus outposts and who captured them. Hovering a building tells you what it is.
Roshan, runes and couriers
Roshan’s position and state, rune spawns by type, and each courier with the player it belongs to — including the moment it dies somewhere it should never have been.

A tune icon on the map opens a layer panel: heroes, buildings, wards, couriers and creeps can each be hidden or scaled. Reviewing a teamfight, you turn creeps off. Reviewing a lane, you turn them up.

1S RESOLUTION · FULL MAP · HEROES + CREEPS + WARDS + BUILDINGS + ROSHAN + RUNES

How the data gets there

When a replay is parsed, the positions are read straight out of the replay entities on Dota’s world-cell grid — the same read a public parser like OpenDota performs. The viewer projects that grid onto the minimap art, which is extracted from the game client per patch rather than taken from a community image, so the terrain you are looking at is the terrain the game was played on.

The result is stored as two kinds of track. Positions are dense: one entry per second for every hero and every living creep. Events are sparse: wards, buybacks, item changes, courier moves, Roshan, buildings, runes and the Aegis are stored once per change, not once per second. That split is why a full game loads as a single file and still scrubs instantly — the viewer folds the sparse tracks up to wherever you dropped the playhead, using a snapshot every sixty seconds so it never has to replay the whole match to answer "what did the map look like at 31:20?".

Playback starts before the horn. Game time runs negative during the pre-horn period, so the mini replay opens on the lane assignments, the block, and the first ward — the part of the game most reviews skip because scrubbing to it in the client is annoying.

How to actually review with it

A few review patterns that the 2D view makes fast and the client makes painful:

Play the fight backwards
Find the fight, then scrub thirty seconds earlier and watch the positions that made it happen. Most lost fights are lost before the first spell — someone is too far forward, or the fifth is still walking back from a ward.
Watch one hero for ten minutes
Follow a single marker through the midgame and ignore everything else. Rotations that feel productive in the moment often read as a lot of walking when you watch them from above.
Check the map before every objective
Pause at the second Roshan starts. Where are their five, and what did you have vision on? The dashed fog ring answers the second half of that question directly.
Compare the two vision maps
Wards fading by lifetime make it obvious when your coverage was about to lapse — which is usually the window the enemy chose to move.

Because the playhead is in the URL, any moment is a link. You can paste "watch from here" into your team chat and everyone opens on the same second, which is the difference between a review call that moves and one that spends its first two minutes getting everybody to the right timestamp.

The scoreboard is part of the argument

The map is flanked by a live scoreboard — Radiant on the left, Dire on the right — that follows the playhead. Level, KDA, net worth, health and mana bars, current items, buyback availability and cost, Aegis holder, respawn timer. Everything updates as you scrub.

This matters more than it sounds. "We should have gone" and "we could not have gone" are usually an argument about buyback gold and item timings, not about positioning, and having both on the same screen at the same second ends the argument quickly. Buyback cost is derived from net worth, so it is correct at every point in the game, not just at the moment somebody happened to check.

Under it runs a chronological feed of what happened — kills, objectives, wards, Roshan, runes — with the most recent at the top. Clicking any entry seeks the map to it, so the feed doubles as a table of contents for the game.

Where it fits in a review

The mini replay is not a replacement for watching the client — mechanical detail like spell usage, item activation order and animation cancels lives there, and always will. It is a replacement for the *searching* part of review: finding the moments worth watching properly, and settling the questions about position and timing that do not need a 3D camera.

The workflow most teams land on is to run the mini replay first, collect five or six timestamps worth discussing, and only then open the client on those exact seconds. That turns a ninety-minute review into a thirty-minute one, which is the difference between reviewing every scrim block and reviewing the ones you lost badly enough to be annoyed about.

Questions

Do I need to upload a replay file?

You need a parsed match. Upload the .dem file through the parser, or parse by match id if the match is available from Valve. Once parsing finishes, the mini replay is available on the match page under the Replay tab.

Does it work for scrims, or only for public matches?

Scrims are the point. Uploading the replay file is how a private lobby gets into the system at all, and the mini replay is built from that same parse. Nothing about it depends on the match being public.

Can other teams see my scrim replays?

No. Matches are scoped to your team, enforced server-side. There are no public match pages, so a mini replay link only opens for people on your roster.

How accurate are the positions?

They are read from the replay entities on Dota’s own world coordinate grid at one-second resolution, so positions are exact to the second rather than interpolated from events. Movement between two seconds is smoothed for playback.

Can I see it before signing up?

Yes — a short looping clip runs on the landing page with no account required. It uses the same viewer component as the real thing, just with a trimmed demo match behind it.

Run this on your own scrims

Upload a replay and the whole workspace runs on your game. Create a team — visible to your roster only, never public.

Read next
© 2026 Scrimlog Labs · Built in ViennaField notesPrivacy