Need help with clarity?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

501 Stars 101 Forks BSD 3-Clause "New" or "Revised" License 765 Commits 64 Opened issues


Comically fast Dota 2 & CSGO replay parser written in Java.

Services available


Need anything else?

Contributors list

Clarity 2

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

January 26, 2021: New releases and versioning model update!

Starting today, I will switch to a semantic versioning theme (MAJOR.MINOR.PATCH)

  • MAJOR will probably not change in a long time
  • MINOR will be increased when there are changes that I believe to be disruptive (and want you to test them first)
  • PATCH will be for bugfixes, like we had with the latest 7.28 update.

Today, I made two releases: * Version 2.5: this is simply the last snapshot as a release * Version 2.6.0: the first version using the new scheme

There will be no bugfix releases for 2.5, so please migrate your code in a timely manner.

Changes in 2.6.0

  • lots of restructuring / code cleanup regarding the field update parsing code (should not be noticeable)
  • package rename
    (global search/replace should suffice)
  • package rename
    (global search/replace should suffice)
  • new event
    , which is raised when the amount of properties in an entity changed
  • with ControllableRunner (seeking), improved
    to only contain FieldPaths that have been changed
  • small performance increase for BitStream
  • added proper handling of a special case with Dota 2 console recorded replays, which would throw an exception before

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 (for 2.4) or 8 (2.5 and later)
  • Maven


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


Example Code

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


See LICENSE in the project root.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.