Hearthstone Simulators

The HearthSim Developer Community has produced several different Hearthstone simulators in various languages, with varying amounts of gameplay implemented in each.


Fireplace is a Python 3 simulator and one of the original HearthSim projects. It capitalizes on the Hearthstone CardDefs XML files in order to stub most of the game’s cards and have a default implementation of all simple minions. It also features an extremely extensive test suite and was used to create the Kettle protocol, in order to play simulated games online and on the official client.


Sabberstone is a simulator written in C# Net Core. It has currently more than 95% of the Standard Cards implemented (Year of the Mammoth). Sabberstone has been developed to give Hearthstone addicts and AI Devs, a possibility to implement fast AIs, an example game tree search is already implemented. Cloning in any game state is possible. Sabberstone uses a simple declarative task system to implement card mechanics. Sabberstone ships a builtin Kettle server, which lets it communicate with the real Hearthstone client through Stove, or play games with the Joust web interface.


Hearthbreaker is another simulator written in Python 3, with most cards implemented up until Blackrock Mountain. It also includes a ncurses interface. Along with Fireplace, it is another one of the original HearthSim projects.

It was used by the DeepMind team at Google for Hearthstone card generation.

This project is no longer maintained.


HearthShroud is a Haskell-based Hearthstone engine, including a playable console UI.

This project is no longer maintained.


Soot was an attempt at building a Clojure-based Hearthstone Card DSL with a C engine.

This project is no longer maintained.


Brazier was a Java approach to simulation, using a JSON-based card format.

This project is no longer maintained.

Other simulators


The HearthSim simulator is a Java imperative simulator and, ironically, not a HearthSim project. Oyachai, its original author, has kindly allowed HearthSim to reuse the name, which is where it came from.

This project is no longer maintained.