Download

Tracking Hearthstone stats since 2013!
Introduction
I play a lot of Hearthstone, or arena to be precise. I wanted to tool to automatically record and keep track of my performance. Hereby, let me introduce the Hearthstone stats tracking app, the HearthTracker. It will keep track of your Hearthstone stats (almost) without your interventions. I'd designed it to be easy to use.


How does it work
The app uses the least invasive, image recognition technique to obtain information on the screen. It doesn't inject dll, read/modify Hearthstone process memory in any way nor parse the game packets. It is basically functioning as it is a screen recording/screenshot tool and nothing more.  It is probably the safest way you can extract stats from Blizzard games.


Features
  • Support all Hearthstone languages 
  • Support all resolutions
  • OBS/Xsplit supported, output as text files 
  • easy to use UI
  • track ranked/casual/arena/challenge/practice stats
  • track win rate by deck (with minimal intervention) 
  • able to recognize which deck is selected
  • able to recognize classes
  • able to recognize wins and losses
  • able to recognize who goes first/second
  • able to recognize your opponent hero
  • able to recognize victory/defeat
  • Overview of win rate and 6+ wins rate.
  • Live stats of the current game
  • cross platforms (windows/osx/linux) only tested on Windows though.

Upcoming Features
  • UI Cosmetic changes
  • Web app for collective and your own private stats
  • More stats and better breakdown of stats 
  • Beautiful graphs

Known Limitations
  • Due to the nature of image recognition technique, the app can be fooled (but i doubt anyone wanted to cheat on your own stats).
  • Also, due to the nature of image recognition technique, there is no way to track the stats in 100% precision, but I'd put a lot of efforts in order to apply the best strategies to give you the best results.
  • You must give it enough time to scan for images (usually a split second is more than enough)

Requirement
  • Java virtual machine must be installed before launching the app, get it from http://www.java.com
  • Hearthstone client (obviously!)

Installation & Usage
  • Download and extract it into a folder of your choice
  • Double click on "HearthTracker.jar" to run
  • Make sure your Hearthstone is running in Windowed mode (uncheck Fullscreen in Hearthstone options)
  • Make sure your Hearthstone is running with the correct resolution
  • Remember to backup the data folder (this is where your stats are kept) regularly

Upgrade from older versions
  • Backup your existing data folder.
  • delete everything else except for data folder
  • extract new version into the existing hearthstone folder
  • copy the backup contents of data folder back into the original data folder

Support the project!
  • The easiest way to support the project is by spreading the words! Tell your Hearthstone friends to use the app!
  • Donations are welcomed and appreciated! I need to pay my bills and fund the stats tracking website! 
  • Give me your feedback! email me at

Download links   Tips: Always backup your data before upgrading!

Mirror (Mediafire)Mirror (MEGA)
HearthTracker v1.2.1HearthTracker v1.2.1
HearthTracker v1.2.0HearthTracker v1.2.0
HearthTracker v1.1.9HearthTracker v1.1.9


You can still download the older versions hereAlso, HearthTracker seeks your help, read the details here if you think you can help!

Donate to support the project!
My Bitcoin address: 13pCxFXmJHt1PqX6yrfuYJUtbKqJfV3X7S

Support the project!If you find my app useful, please consider tossing me a few coins to keep the project alive, I've spent a lot of time and effort on it.

There are tons of update & new features undergo heavy development, I promise that HearthTracker will get much better with your support!
I accept Paypal and Bitcoin.

If you're a bitcoin user, you can donate to my Bitcoin address as well @ 
13pCxFXmJHt1PqX6yrfuYJUtbKqJfV3X7S

79 comments:

  1. Nice work! i see that my monitor resolution is not supported. i play in window mode 2560x1440

    ReplyDelete
    Replies
    1. it doesn't matter, the app will be able to detect your game resolution with the auto detect game resolution.

      if case it failed to detect you can add the resolution manually by editing configs/gameResolutions.xml

      Delete
  2. Hi, nice work! i can help you to support italian lang, for many people would be nice

    ReplyDelete
  3. I saw you on reddit talking about people with 2 monitors having a problem with it trying to track the wrong monitor. The program always tries to use your main display. You said you couldn't recreate the problem so that should help, just set your other monitor to your main display and it'll do it.

    ReplyDelete
    Replies
    1. Alright, I have finally figured out the issue. It appears that the library I am using messed up the coordinates when you change your main display to monitor other than first. In the mean time, I will provide a workaround in the Perferences by next version. Thank you for the excellent bug report.

      Delete
    2. I have included a workaround for the issue. Please check latest update.

      Delete
  4. Are you sure the spanish version is working correctly ?

    It's impossible for me to get it working, it gets the resolution, but it never scans anything.

    ReplyDelete
    Replies
    1. It should work, at least the game mode will always be correct since it is not using any language specific parts of the game.

      What does the diagnostic tab say?

      Delete
  5. Will there be support for playmode, too?

    ReplyDelete
  6. This comment has been removed by the author.

    ReplyDelete
  7. Hi there.
    I've downloaded the tracker, correct resolution is typed in 1366x768, english is set, the game is minimized, tracker is running, yet it will not gather my data.
    Any clue as to why?

    ReplyDelete
    Replies
    1. hi, your game need to be visible, minimizing it will not work.

      Delete
  8. Hello, maybe a stupid question, but what folder is my data folder? Is it called "my"?

    ReplyDelete
    Replies
    1. Sorry, I couldn't understand your question. Can you rephase it?

      Delete
  9. I have two computers, works great on 1920x1080, on other one (1440x900) it detects the window correctly but fails to gather any data.

    ReplyDelete
    Replies
    1. I just tried it on 1440x900 resolution (both desktop and game client), and I couldn't reproduce it. Can you be more specific?

      Delete
    2. I also have a 1920x1080 screen, which I play on, and a 1440x900 screen. No data is gathered it seems, what am I suppose to put in the Override Offsets if that is suppose to help it?

      Delete
  10. This is incredible! Out of curiousity, why can it not work in windowed mode? Also, have you considered making this project open source? I'd love to contribute to this myself.

    ReplyDelete
    Replies
    1. I suppose you mean full screen mode. It is possible, but it requires DirectX api hooking (dll injection) - which is something that I don't wish to do.

      Delete
    2. You're right, I meant full screen mode. Thank you for answering my question. By the way, when I click "Play" in play mode (not arena or practice), it often says that I have deck 8 selected, when I don't. If I press cancel, it picks up the correctly selected deck, but it will often go back to deck 8 while looking for opponents. Would it be possible to get an update that has better detection of which deck I am using? Also, in preferences, what does Scan Speed mean? Does a slower scan yield more accurate results? Thank you for entertaining my questions.

      Delete
    3. Bug confirmed, I will fix it by next version.

      Delete
  11. Doesn't work for me. Tracker is detecting class, deck, enemy, mode and first/second correctly, but doesn't detect final result.

    I let the screen with the class portrait and "Victory!" banner open for almost a min and no record.

    ReplyDelete
    Replies
    1. May I know what was the resolution? did you somehow block the class portrait with your mouse cursor?

      Delete
    2. 1920x1080 windowed. I have like 5 games now and never recorded the data although rest works fine upfront. I didn't block the portrait.

      I just continued my previous arena with 2-2 stats and hearthtracker got that correctly. After the game now I have 3-2 but it still says 2-2. Also the "Last seen" is always on 3 minutes.

      Delete
  12. This comment has been removed by the author.

    ReplyDelete
  13. Mine just keeps closing instantly, "could not find the main class" or something

    ReplyDelete
    Replies
    1. you need to make sure you have the latest Java Runtime Environment installed.

      Delete
  14. This comment has been removed by the author.

    ReplyDelete
  15. Works great, other than one minor setback. The resolution of the app itself is awkward. A lot of the texts are cut off, is there anyway to fix this? I use a 1920x1080 laptop screen.

    ReplyDelete
    Replies
    1. It is a known issue that the UI elements look awkward on Windows 8. I will try to fix it but designing UI isn't my main skill :P

      Delete
  16. Not getting this to open on mac. Saying "The Java JAR file "HeathTracker.jar" could not be launched. Check the Console for possible error messages."

    Perfectly willing to help you test if it means we could get this working on OSX.

    ReplyDelete
    Replies
    1. in order to run on Mac, you need to make sure you have the latest jre and fire up your console, cd into hearthtracker directory, type "java -XstartonFirstThread -jar HearthTracker.jar" without quotes.

      Delete
    2. Sadly that didn't seem to fix anything. Here's what I got.

      ":HearthTracker-v1.1.8 Stefan$ java -XstartonFirstThread -jar HearthTracker.jar
      Unrecognized option: -XstartonFirstThread
      Could not create the Java virtual machine."

      Delete
    3. And yes, I double checked that I've installed the JRE.

      Delete
    4. Try: java -XstartOnFirstThread -jar HearthTracker.jar

      Notice the capital "O". But for me it still won't work. :(

      user$ java -version
      java version "1.7.0_51"
      Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
      Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

      Delete
  17. Just installed a Java update, and now the app won't launch. Wondering if it's something I did? Or if it was related to the update?

    ReplyDelete
    Replies
    1. Figured out the problem - reinstalling JRE fixed whatever issue was going on.

      Delete
  18. I'd like to talk to you about partnering with http://HearthStats.net and integrating auto-export to the site from your app.

    Great work!

    ReplyDelete
  19. I'm having a problem opening this.

    I've tried what MegaGaming mentioned to run it on a mac, and I'm getting the following error

    Tonys-MacBook-Air:HearthTracker-v1.1.8 tony$ java -XstartOnFirstThread -jar HearthTracker.jar
    Exception in thread "main" java.lang.UnsupportedClassVersionError: my/hearthtracking/app/MainLoader : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:249)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)

    ReplyDelete
    Replies
    1. You need to install latest Java runtime environment (which is JRE 7). I think you're running JRE 6.

      Delete
    2. I had just downloaded and installed the latest one, JRE 7u51 x64, prior to downloading hearthtracker

      Delete
    3. try typing "java -version" at console.
      and paste the output.
      definitely has something to do with your jre version/environments path

      Delete
    4. Tonys-MacBook-Air:HearthTracker-v1.1.8 tony$ java -version
      java version "1.6.0_65"
      Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
      Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)

      Delete
    5. And I was right, you're still running JRE 6 (1.6.0_65).
      JRE 7 should show 1.7.0_45

      Delete
    6. I just tried installing JRE 7 again, the Oracle website shows this message
      http://i.imgur.com/fQ0n2Vd.png

      But version still says 1.6.0_65

      Delete
  20. How i start to use this program?
    I just start the program and the game and play?

    ReplyDelete
    Replies
    1. yes, just start and play games, make sure your game screen is visible all the time.

      Delete
    2. no work only if i put the score whit my hands ... i start the program i set the corect resolution i start the game and i play and after the game nothing....

      Delete
    3. are you running the game in window mode? it can only scan when the game is running in window mode.

      Delete
  21. i run in win mode 1024x768 and no work ...

    ReplyDelete
  22. I have seena chinese version that shows the cards you have and what you are playing...anything like that you could come with? Something that shows the cards you've played and the cards your opponent has played?

    ReplyDelete
    Replies
    1. es I do know about the chinese version, i am kind of reluctant to implement card counting feature because I feel like it is defeating the purpose of the HearthTracker. I do not want it to effect the gameplay in anyway especially it gives the users who use it a clear advantage which debatably sounds like cheating.

      The new engine has the capabilities to recognize the cards, I could implement something like that, but it wont show the card draw probabilities, just keep a log of the played cards.

      Delete
  23. I have some issues with this app.

    This app seems to work only for few minutes.
    Then he detects nothing and "Last seen" is > 10 minutes.

    My resolution is 1

    ReplyDelete
  24. Thank you for the app. Would you mind making it so newest comments are on top so we don't have to scroll all the way down?

    ReplyDelete
  25. Hi, great job on the app, its really useful.

    I detected a problem, In arena at 9 wins:
    Live Arena status
    Score: Unknown
    Playing as Druid

    I could not confirm for 8 because I was not looking, but for 10 and 11 it recognizes. (12 no idea xD)

    ReplyDelete
  26. MacOSX guide:

    1. Go download the latest JDK (not JRE!): http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
    2. Install jdk-7u51-macosx-x64.dmg
    3. Open the Terminal (press CMD-space, type in "term", enter)
    4. In the Terminal type "cd ", including the space behind it
    5. Then drag the HearthTracker-v1.2.1 folder into your Terminal window. It will automatically type the path to the HearthTracker-v1.2.1 folder. Then press enter.
    6. Type the following into the Terminal and press enter: java -XstartOnFirstThread -jar HearthTracker.jar
    7. Now it starts! =D

    Note: I first tried downloading the latest JRE, but that didn't work. (http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1880261.html) So after that I did the above steps, and then I could start the "HearthTracker.jar" file. I don't know for sure if you need both JDK and JRE, since I had already installed JRE. =D

    TO THE DEVELOPER: Please do a proper java build for MacOSX. Then people won't need to download JDK and run it from the command line. U_U

    ReplyDelete
    Replies
    1. Awesome! Version 1.2.1 works for me on OS X!

      Delete
    2. No, my mistake. I works only on the first startup of the program. Afterwards (unless I delete the contents of the data directory) it starts and then hangs before any window is displayed. :(

      Delete
    3. So you have to do this EVERY TIME you want to use it?

      Delete
  27. What happened to the button that would show me where my multi-monitor offset is set to?

    ReplyDelete
  28. After clicking hearthtracker.jar and having hearthstone opened and visible in windowed mode, the app just doesn't launch. I don't even get an error message. What do you mean by correct resolution? None of the offered resolutions for Hearthstone actually fill up the screen entirely for me.

    ReplyDelete
  29. It seems to count all "runs" in the arena as 3 losses. I played once (1-3) and then started a second time and it show my arena record as 1-6. It would seem that if someone went 12-1 or whatever then the record would show incorrectly.

    ReplyDelete
  30. I have a bug since the latest patch. It totally screw up my win/loss of my arena games. And when I add an arena run (for example 5-3) it doesnt update my total arena stats with that class anymore.

    ReplyDelete
  31. This comment has been removed by the author.

    ReplyDelete
  32. I concede a game in a arena run that it did not detect. Can't it detect that or was i moving to fast away from the screen?

    ReplyDelete
  33. I assume that you are aware of another tool called "Hearthstone Stats". What seems to be the major difference between you two, from your perspective?

    ReplyDelete
  34. You probably said it before but when a mac version will be released ?
    I hope there will be one this software is really awesome i need it !

    ReplyDelete
  35. Hello, first I wanted to say thanks for the app, it looks awesome I just wish I could use it! I cant get the program to record anything. When I maximize/minimize I get the pop-up from Hearthtracker. All my settings are correct, NA - English - Auto Detect enabled - Resolution is correct - Scanner enabled - Scan speed, fast - Forced scanning enabled - Log level, Info. I have the latest version of Java 64-bit , I don't minimize when I play the game. Its in windowed mode, is there something im missing? Sorry I don't mean to pester anyone but I've exhausted every outlet in finding a solution. Thanks again

    ReplyDelete
  36. Hey,

    I'm testing this on OS X Mavericks (10.9) and it's throwing the following error when trying to open it.

    davemac@Dave HearthTracker-v1.2.1 :) $ java -jar HearthTracker.jar
    Jun 22, 2014 12:02:15 AM my.hearthtracking.app.HearthLogger info
    INFO: Starting up.
    Jun 22, 2014 12:02:15 AM my.hearthtracking.app.HearthLogger info
    INFO: SWT dependcies loaded!
    Jun 22, 2014 12:02:15 AM my.hearthtracking.app.HearthLogger info
    INFO: Loading xml files...
    Jun 22, 2014 12:02:15 AM my.hearthtracking.app.HearthLogger info
    INFO: Done loading xml files.
    Jun 22, 2014 12:02:15 AM my.hearthtracking.app.HearthLogger info
    INFO: Done loading xml files.
    Jun 22, 2014 12:02:15 AM my.hearthtracking.app.HearthLogger info
    INFO: Game server not selected, launching UI for that!
    Jun 22, 2014 12:02:15 AM my.hearthtracking.app.HearthLogger info
    INFO: Game server not selected, launching UI for that!
    ***WARNING: Display must be created on main thread due to Cocoa restrictions.

    ReplyDelete
    Replies
    1. Jun 22, 2014 12:02:16 AM my.hearthtracking.app.HearthLogger severe
      SEVERE: Invalid thread access
      Jun 22, 2014 12:02:16 AM my.hearthtracking.app.HearthLogger severe
      SEVERE: Invalid thread access

      **sorry didn't notice another part of the log**

      Then it crashes

      Delete
  37. I just downloaded this and Norton 360 flagged hearthtracker.exe as having Suspicious.Cloud.9. I was downloading HearthTracker v1.2.1 from the MediaFire mirror.

    ReplyDelete
  38. hi, download the app today but it doesnt keep up with the arena matches, only records the first one

    ReplyDelete
  39. Hi

    i just download the tracker, but it doesnt work at all..

    it doesnt show me any sign... i setup java and check it work well..
    what should i do?

    ReplyDelete