Internal design

This article aims to function as an in-depth reference to Hearthstone's internal program design.

For an overview of Hearthstone's game design and development, see Design and development of Hearthstone.

Enumerations
This is a work-in-progress list of all types of objects, actions, descriptions, and tags that fall under a specific Hearthstone attribute or concept. These pages do not contain actual source code from the Hearthstone client, but rather simply represent a reverse-engineered set of values.


 * GameTag - A large set of entity attributes applied to game objects at various stages of play.
 * GameType - A set of the different game types including Ranked, Unranked, and Arena.
 * Mulligan - Different phases of the mulligan cycle.
 * Step - The different phases of gameplay including shuffle, draws, combat, and game cleanup.
 * Zone - Possible locations for a game entity.

HearthSim team

 * #HearthSim on the Freenode IRC Network. A chatroom for highly-technical Hearthstone discussion, not just for HearthSim development.
 * HS-Bugs, a repository for Hearthstone bugs
 * Python-Hearthstone, a Hearthstone datatype library for Python
 * HSReplay, an XML Hearthstone replay format with parsers in Python and C#. Maintained in a partnership with the Hearthstone Deck Tracker Team.
 * Fireplace, a Hearthstone simulator