

Some computers have a problem creating the shortcut, this is an issue with the installer library Squirrel/Squirrel.Windows509. HSTracker is a Swift library typically used in Utilities, SDK applications. I needed to implement them in Java in order to have them work with my app, but this was my starting place. HSTracker has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. HSTracker is an automatic deck tracker and deck manager for Hearthstone on macOS.
Hstracker mac code#
Hstracker deckstring code#ĭon't worry if you're confused after reading that I'll go into more detail below.Ī deck code (or deckstring) is simply a string of bytes that have been encoded into Base64. The bytes themselves represent integers, each of which are encoded as "varints". What is a varint, you ask? If you're a programmer, you may be already familiar with the primitive data types "int" and "long" an "int" is an integer that always uses 4 bytes (so "30" would be encoded as 0x0000001E, where each "00" is one byte in hexidecimal), while a "long" is an integer that is too big for 4 bytes, so it always uses 8 bytes (so "30" would be encoded as 0x000000000000001E).

A varint is simply a data type that uses exactly as many bytes as it needs (so "30" would just be 0x1E). I was able to find a Java method here for encoding an integer as a varint, and I'm sure you can find similar functions for whichever language your using. The deckstring is a base64-encoded byte string.
Hstracker mac full#
We also need a full list of DBF IDs for all collectible cards and heroes. Unless specified otherwise, every value that follows is an integer, encoded as an unsigned varint. The deckstring begins with the byte 0x00. These are unique ID numbers that Hearthstone uses to identify pretty much every object in the game. Hearthstone Deck Tracker (or for Mac, HSTracker ), which is an all-purpose deck/replay tracker and collection manager, and Arena Tracker, which is a deck tracker specially built for Arena. To get you started, here are the dbfIDs for each of the starting heroes:įinally, you need to separate all the cards in the deck into two piles: single-copy cards, and double-copy cards. In the below example, I've placed all cards with only one copy in the deck into an ArrayList called "deck1", and all cards with exactly two copies in the deck into "deck2". Launch HSTracker before Hearthstone Create a new deck from the Deck Manager or import it from a deckstring.

I also sorted the cards by DBF ID, though that's not entirely necessary.
