Comically fast Java Dota 2 replay parser.
Latest commit 71cade3 Apr 22, 2017 Martin Schrodt fix a bug with running under JDK 1.7 (thanks Julien)

Clarity 2

Clarity is a parser for Dota 2 replay files written in Java.

Attention: New Journey update

Breakage occurs with the new 7.00 update. I already pushed a new 2.2-SNAPSHOT, as well as a 2.1.1 release which should fix it. Please update and report any remaining issues!

Replay Data

clarity produces the following data you might be interested in from a replay. Choose from:

  • combat log: a detailed log of events that happened in the game
  • entities: in-game things like heroes, players, and creeps
  • modifiers: auras and effects on in-game entities
  • temporary entities: fire-and-forget things the game server tells the client about*
  • user messages: many different things, including spectator clicks, global chat messages, overhead events (like last-hit gold, and much more), particle systems, etc.*
  • game events: lower-level messages like Dota TV control (directed camera commands, for example), etc.*
  • voice data: commentary in pro matches*
  • sounds: sounds that occur in the game*
  • overview: end-of-game summary, including players, game winner, match id, duration, and often picks/bans

* unprocessed: data is provided as original protobuf message object


  • Java 7 or newer
  • Maven


Fetch the current stable version (2.1.1) from Maven Central with


Clarity 2.2 is work in progress and only available as a snapshot, so you got to add a pointer to the repository to your pom.xml (see the pom.xml of clarity-examples, which already does that)

To add the snapshot repository, add the following:

		<name>Sonatype OSS Snapshot Repository</name>

and then fetch the dependency with:


Example Code

For example code, please see the the separate project clarity-examples.


See LICENSE in the project root.