Gloomhaven Helper

Gloomhaven Helper is the officially licensed companion application for playing the Gloomhaven board game and Forgotten Circles expansion, without losing the board game feel. It tracks initiative, monsters, and characters so you can focus on playing the game rather than bookkeeping. Playing the game becomes faster, as does setup and tear down.

Gloomhaven Helper eliminates the need for the following Gloomhaven components:

monster ability card decks

monster stat sheets and sleeves

the monster attack modifier deck

monster damage tokens

monster and character condition tokens

the element infusion board, element discs, and round tracker

character HP/XP dials

character boards

Besides making setup easier, Gloomhaven Helper also improves play in many new ways:

Devices running Gloomhaven Helper can be synchronized over the network so each player can view and change the game state from their own personal device.

Rows are sorted using the initiative order, making it clear who is next.

Monster abilities report the numbers to use, so there is no math or stat lookup ( Attack 3 instead of Attack + 1 ).

instead of ). Monsters with ranged attacks always specify the range, so it can't be forgotten and doesn't need to be looked up.

When a monster is flying, the monster ability card shows the "flying wings" icon for movement rather than the usual "boot".

Monsters can be marked as "summoned" so you know they should not drop a coin when they die.

Monster stats are hidden until the monster appears.

Tracking element infusions prevents forgeting to move the element down.

Character current and max HP is easily visible to all players.

Gallery

Check out the gallery to see Gloomhaven Helper setups by community members!

Download

Android

Gloomhaven Helper is available on Android through the Google Play store as a free app. The free app has ads but an in-app purchase can be used to remove ads. Ads are annoying but at least this setup allows the choice to use it without paying and those who really don't like the ads or who would like to contribute to the app's development can do so.

Gloomhaven Helper can be installed from Google Play or by downloading the APK:

Google Play is used for ad removal on Android, which is tied to a Google account. If multiple devices use the same Google account for Google Play, then the app will have ads removed on those devices with just one in-app purchase. Devices with different Google accounts for Google Play will need to each purchase the app to remove ads.

The APK can be used to run the app on devices without Google Play, such as Amazon Fire devices. However, Google Play is required to remove the ads. Likely Google Play can be installed on any device, with some Googling and effort.

iOS

Gloomhaven Helper is available on iOS through the Apple app store as a paid app. It does not have ads.

Gloomhaven Helper can be installed from the Apple app store.

Desktop

Gloomhaven Helper runs on Windows, Mac, and Linux. You can download it here:

To run the desktop version, Java 8 is required. If you don't want to install Java, you can go to this page, click the radio button to accept the license agreement, then click to download the .tar.gz for your OS (Windows x64, macOS, or Linux x64). Decompress the file (eg with 7zip or via the command line) and you'll end up with a simple folder full of files. You can run Java out of that folder without needing to install anything -- no Java updater, no Java browser plugins.

To run Gloomhaven Helper from the command line (which lets you see the logs) on Windows use:

cd C:\path-to-gloomhaven-helper java -jar ghh.jar

On macOS:

cd /path/to/gloomhaven-helper java -XstartOnFirstThread -jar ghh.jar

Or, using Homebrew on macOS, you can both download and run the app like this:

brew cask install gloomhaven-helper gloomhaven-helper

On Linux:

cd /path/to/gloomhaven-helper java -jar ghh.jar

If you get an error about Error: Unable to access jarfile ghh.jar , it means Java can't find the ghh.jar file. Either change directory to where the JAR file is (the cd C:\path-to-gloomhaven-helper shown above) or use an absolute path to the JAR file, for example:

java -jar C:\path-to-gloomhaven-helper\ghh.jar

If you get an error about UnsupportedClassVersionError , it means your version of Java is too old. You need Java 8+. If you have installed Java 8+ and continue to get the same error, likely you still have an older Java version on your path. You can check using java -version . Try specifying an absolute path to the newer Java installation, for example:

C:\path-to-java\bin\java.exe -jar C:\path-to-gloomhaven-helper\ghh.jar

Web

You can use Gloomhaven Helper in a web browser here. This version is identical to other platforms, except it does not support network synchronization.

Browser zoom affects the app and may need to be adjusted to get 2 columns or prevent scrolling. Try ctrl+'+' and ctrl+'-' .

and . If the images are scrambled in the web version, clear your browser cache. Try ctrl+shift+delete and check only Cache .

Usage

When the app first loads, you will need to add character and monster rows by clicking the menu in the upper left of the app. You can set a scenario by number to add the required monsters automatically.

Next, spawn the monsters in the first room by clicking the + buttons.

Rounds

Each round, you first choose two character ability cards from your hand, then click Draw in the bottom left corner of the app. This causes the monsters ability cards to be shown and the monster rows are automatically sorted in initiative order.

Next, move the character rows to the correct place in the initiative order by dragging the portraits, then take turns starting at the top row. As each turn completes, you may optionally click that row's portrait to gray it out.

When all turns are finished, click `Next Round` in the bottom left corner of the app.

Menus

Clicking a monster box or character row opens a menu for adjusting the HP, XP, loot, blesses, curses, and conditions. You can drag left or right on the HP, XP, or loot buttons to adjust them more easily.

A faster way to adjust the HP without opening the menu is to simply drag left or right on a monster box or character row.

The summon icon indicates the monster was summoned, so should not drop a coin when it dies. The summon icon has an X on it to indicate it was summoned this turn and should not perform any actions. The X is automatically removed at the end of the current round. It is also convenient to lay summoned monsters on their side for the first turn they are in play.

Click the level icon (the crown) to open the monster level menu where the level and HP can be adjusted:

The star icon indicates a monster is special or "named". Named monsters are not considered normal or elite and so are not affected by character abilities that target only normal or elite monsters (such as abilities that execute a normal or elite monster). Gloomhaven Helper knows about many special scenario rules and adjusts the HP of specific monsters when the star icon is applied.

The level icon for a character opens the character level menu where the name can be set and the level and HP adjusted:

The plus icon on a character row opens the summon menu:

To add a summon, choose the color then the standee number. Afterward you can set the HP, movement, attack, and range.

Settings

Help When unchecked, the helpful messages won't be shown.

When unchecked, the helpful messages won't be shown. Hide stats When checked, stats for monsters that have not been spawned are hidden. Press and hold stats to show. Uncheck if you prefer to see what you are up against before encountering the monsters.

When checked, stats for monsters that have not been spawned are hidden. Press and hold stats to show. Uncheck if you prefer to see what you are up against before encountering the monsters. Calculate stats When checked, the monster ability cards show calculated values (eg, Attack 4 instead of Attack +1 ).

When checked, the monster ability cards show calculated values (eg, instead of ). Elites first When checked, elite monsters are sorted first for each monster row. When unchecked, they are sorted only by standee number.

When checked, elite monsters are sorted first for each monster row. When unchecked, they are sorted only by standee number. Drag HP When checked, monster and character rows can be dragged left/right to adjust HP. Uncheck this if you accidentally drag left/right or otherwise don't use the dragging.

When checked, monster and character rows can be dragged left/right to adjust HP. Uncheck this if you accidentally drag left/right or otherwise don't use the dragging. Track standees When unchecked, the individual monsters for each row are not shown. Use this for when you want to track monster HP and conditions some other way.

When unchecked, the individual monsters for each row are not shown. Use this for when you want to track monster HP and conditions some other way. Random standees When unchecked, adding a monster will automatically choose one of the unused standee numbers at random.

When unchecked, adding a monster will automatically choose one of the unused standee numbers at random. Expire conditions When checked, conditions that expire at the end of the turn will be removed automatically. When using this, it is important to click each row's portrait after taking each turn so that end-of-turn conditions can be managed properly.



Conditions added on the current turn do not expire at the end of the turn. Gloomhaven Helper knows a row is the current turn when it is the first row that has not been grayed out by clicking the portrait. The portrait for the current turn is highlighted with a cyan glow.



Care must be taken in some uncommon situations. For example, when a monster affects another monster of the same type, before that other monster's turn, the app interprets the condition as being applied during the monster's turn and will expire the condition one turn late.

When checked, conditions that expire at the end of the turn will be removed automatically. When using this, it is important to click each row's portrait after taking each turn so that end-of-turn conditions can be managed properly. Conditions added on the current turn do not expire at the end of the turn. Gloomhaven Helper knows a row is the current turn when it is the first row that has not been grayed out by clicking the portrait. The portrait for the current turn is highlighted with a cyan glow. Care must be taken in some uncommon situations. For example, when a monster affects another monster of the same type, before that other monster's turn, the app interprets the condition as being applied during the monster's turn and will expire the condition one turn late. Ability cards When unchecked, ability cards for monsters are not shown. Use this when you want to track monster HP and conditions, but not ability cards.

When unchecked, ability cards for monsters are not shown. Use this when you want to track monster HP and conditions, but not ability cards. Ability numbers When checked, monster ability cards will show their card number in the bottom left corner.

When checked, monster ability cards will show their card number in the bottom left corner. Auto scroll When checked, the app will automatically scroll to the active row. This can be useful on a TV or other device where it would be awkward to scroll up and down manually.

When checked, the app will automatically scroll to the active row. This can be useful on a TV or other device where it would be awkward to scroll up and down manually. Hide monsters When checked, monsters will not appear on this device. This can be useful when using network synchronization to have some devices display only the players.

Character Initiative

Numpad When checked, click a character portrait to set the initiative number. All character initiatives must be set before Draw can be clicked.

When checked, click a character portrait to set the initiative number. All character initiatives must be set before can be clicked. Drag number When checked, drag a character portrait to the right to set the initiative number. If Required is checked, all character initiatives must be set before Draw can be clicked.

With two columns of characters and monsters, this setting may interfere with dragging a row to the left or right. In that case, first drag the character row up or down before dragging it left or right.

When checked, drag a character portrait to the right to set the initiative number. If is checked, all character initiatives must be set before can be clicked. With two columns of characters and monsters, this setting may interfere with dragging a row to the left or right. In that case, first drag the character row up or down before dragging it left or right. Drag order When checked, drag a character portrait to the appropriate initiative order after clicking Draw . This setting is fast, but when multiple character initiatives fall between the same monsters, you may need to ask the other players what their initiative number is.

Zoom

This setting scales the app up or down. Zooming out can provide more vertical space and reduce or remove the need for scrolling. When there is sufficient horizontal space and more rows than fit vertically, Gloomhaven Helper will arrange the rows in two (or more) columns.

On the desktop you can zoom using the up or down arrow keys.

Network Sync

By having one device (cell phone, tablet, laptop, desktop, etc) run a server inside the app, other devices can connect to it so Gloomhaven Helper is synchronized across all the devices. Any changes made on any of the devices will appear on all the others. Any number of clients can connect to a server.

Server When checked, the app runs a server on the port shown to accept connections from other devices. A server icon appears at the bottom of the screen: gray means no clients are connected, green means at least one client is connected.

When checked, the app runs a server on the port shown to accept connections from other devices. A server icon appears at the bottom of the screen: gray means no clients are connected, green means at least one client is connected. Client When checked, the app connects to a server using the IP or host name and port shown. The app attempts to automatically detect a server running on the local network and, if found, will set the host and port automatically. The app tries to connect to the server repeatedly, every few seconds, until it succeeds. Client icons appear at the bottom of the screen: red means the server could not be connected, green means the server is connected.

The server and all clients must be on the same version of Gloomhaven Helper. You can see the version at the bottom of the main menu. The devices can be on different operating systems (eg, Android devices can connect to an iOS server and vice versa).

The app uses standard TCP sockets to communicate. The server and clients can be on different networks or across the internet, but you will need to configure your router that the server is behind to forward incoming connections to the device running the server.

Clients must be on the same network for automatic server discovery, otherwise you will need to enter the IP address of the server manually. Also, even if they are on the same network, some routers block automatic discovery. The app shows the server's IP (there may be multiple), otherwise you can find its IP in your device settings or your router's administration page.

If your clients are on the same network but still unable to connect to the server, it is almost certainly a problem with your network configuration or the devices themselves. If you are using a "guest" WIFI or your WIFI has "wireless isolation" enabled, it will block connecting to the server. Some devices have poor networking hardware and may need to be rebooted.

When a client connects to the server, the client's game state is replaced by the server's state. In the unlikely event that the server crashes and the game state is lost, any clients that still have the game state can be used as the server so the state is preserved. Don't let such a client reconnect to the server, as it will replace its state with the server's empty state!

Synchronization is done by sending the entire game state any time there is a change. Receiving a new game state causes menus to close, so many groups designate a single person to make most of the changes.

Tips

The monster attack modifier deck does not need to be shuffled manually. A lot of people get this wrong. Per the rules (page 11), it is shuffled at the end of the round if a card with the shuffle icon was drawn during that round. The only other time it is shuffled is if the attack modifier deck is empty. This is true for both monsters and characters.

At the top of the Add Characters menu, an escort or objective row can be added.

menu, an escort or objective row can be added. An Android device can display the app on a TV using a Chromecast. This is done by casting your whole screen using Google Home.

Double tap an element to set it to waning.

Drag left or right on a monster box or character row to quickly adjust HP. This also works on the monster dialog HP buttons.

Drag left or right on the rightmost part of a character row to adjust XP.

When adjusting HP, the poison, wound, and shield icons flash as a reminder to consider those conditions for attacks and heals. The app never adjusts HP automatically.

The circled level on the Set Scenario dialog is the recommended level based on the character levels.

dialog is the recommended level based on the character levels. Choosing Custom on the Set Scenario dialog sets the scenario level, but doesn't add any monsters.

on the dialog sets the scenario level, but doesn't add any monsters. Your progress is automatically saved every time any change is made.

Run the desktop version with the command line paramter -verbose to have more information logged.

to have more information logged. A laptop can be rotated 90 degrees to get more vertical real estate. Try ctrl+alt+right arrow to rotate the screen contents.

to rotate the screen contents. Press arrow up or arrow down to zoom in/out.

Translations

If you'd like to use the app in your language, you can submit a translated data file. To get the data file to translate, download the desktop version and unzip the ghh.jar file. The data files are named data-xy.json . Choose one of the non-English data files and that is what needs to be translated.

It is very important that some of the text in the file stays English because it is used by the app internally. See one of the existing translations, for example look at data-ko.json (Korean) and any English you there find must not be translated in your file. Specifically, do not translate the names in the monsterAbilities section, tokens like %attack% or %move% , or the values named english: .

The data is not really JSON, but it is close. Quotes are optional for text with no spaces or special characters. Also, some of the data has special characters which must not be changed, such as ^ to control font sizes and alignment.

In addition to the data file, it would also be great if you can translate this app description text.

Support

A good resource to resolve problems is BoardGameGeek's Gloomhaven subforum or Reddit's r/Gloomhaven. If you are still really stuck, you can send an email, but please allow a few days for a response.

Wish List

The following features may be considered in the future:

Setting to not show monster ability cards until the monster's turn.

Overscan setting for TVs that cut off the edge of the app.

Setting for confirmation when hitting next round.

Allow up/down drag to adjust HP if the rows are not scrolling vertically.

Fix zoom cancelling when held if the settings dialog scrolls.

Improve Ooze split by clicking it once per ooze.

Allow marking each monster as "turn taken".

When "expire conditions" is used, if a monster has taken its turn and more are added (eg a room was revealed), mark them as "new" somehow.

Menu for adjusting HP and conditions for all monsters of the same type.

A round log to track down mistakes (eg, updating the wrong standee).

A reminder when a specified round number is reached.

Remember "show names".

Better modding support: easier to add new monsters and characters, load loose image files, send data to clients so mobile clients can get modded data from a PC server.

If you are interested in how Gloomhaven Helper came to be, check out these links:

Donations

This app was developed as a fun side project. Initially all versions were provided for free because not having paid customers is pretty great: there is no obligation for work, maintenance, or support and no guilt if those are lacking. However, many people requested further development. One year later, to justify spending more time and effort on the app, ads were added to the Android version with an in-app purchase to remove them and a paid iOS version was released. That should be sufficient and no one needs to feel obligated to do more, just giving a 5 star rating and a nice review on Google Play would be great. If you would still really like to give extra, you may donate with a debit/credit card using this form:

Donation amount: USD

Alternatively, you can donate via PayPal. Your support is appreciated very much!

Changelog

8.4.6

8.4.5

8.4.4

8.4.3

8.4.1

8.3.6

8.3.1

8.3.0

8.2.1

8.2

8.1

8.0

7.9

7.8

7.7

7.6

7.5

7.3

7.2

7.1

7.0

6.5

6.3

6.2

6.1

6.0

5.9

5.7

5.6

5.5

5.2

5.1

5.0

4.9

4.8

4.7

4.6

4.5

4.4

4.3

4.2

4.1

4.0

3.9

3.8

3.7

3.6

3.5

3.4

3.3

3.2

2.8

2.7

2.6

2.5

2.4

2.3

2.2

2.0

1.0