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).
  • 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 can be installed from Google Play or by downloading the APK: v8.3.1, v8.3.0, v8.2.1, v8.0

iOS

Gloomhaven Helper can be installed from the Apple app store.

Desktop

Gloomhaven Helper runs on Windows, Mac, and Linux. You can download it here: v8.3.1, v8.3.0, v8.2, v8.0

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 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+'-'.
  • 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.

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.
  • 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.
  • Calculate stats When checked, the monster ability cards show calculated values (eg, Attack 4 instead of Attack +1).
  • Elites first 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.
  • 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.
  • Random standees 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • Choosing Custom on the Set Scenario 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.
  • A laptop can be rotated 90 degrees to get more vertical real estate. Try ctrl+alt+right arrow to rotate the screen contents.
  • Press arrow up or arrow down to zoom in/out.

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:

  • 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.

Links

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.3.1 (unreleased)

• Russian fixes (missing letter, translations, layout, monster sorting).

8.3.0 (unreleased)

• Added support for Russian.
• Versioning is now major.minor.patch.
• Required network version is major.minor, so .patch releases don't break network synchronization.
• Diviner abilities are now shown when no characters are in play.
• Fixed boss stat layouts.

8.2.1

• Set scenario brings all characters back to life.
• Compatible with 8.2 clients.
• Fixed Android in-app purchasing automatic refunds, hopefully.

8.2

• Fixed scenario 34 and 46 monsters based on errata.
• Added initiative network message for 3rd party apps (eg gloomhaven-helper-rfid).
• Fixed FC boss stats.

8.1

• Better denote chosen level versus suggested level.

8.0

• Fixed removing ads on Android.

7.9

• Timer for how long players have been choosing cards.
• Setting to scroll to the row for the current turn.
• Checkbox to not add monsters when setting the scenario.
• Setting to not show monsters ability cards.
• Crash fixes.
• Updated Google libraries (Android).

7.8

• Added Diviner reveal options to cover all cases.
• Fixed bug with starting HP.
• Improved some portrait images and icons.

7.7

• Forgotten Circles support! Diviner, monsters, bosses, regenerate, scenario sections.
• Added secret from base game.
• Added viewing discard piles.
• Sort conditions beneficial first.
• Fixed scenario info not syncing to network clients.
• Ensure space taken by ads is removed when ads are removed.
• Crash fixes.
• Hide system navigation buttons.
• Player summons always default to 2 HP.
• Player summons are never sorted, they use the order they were summoned.

7.6

• Improved zoom reset behavior.
• Ooze "Split" can only be used once per round.
• Fixed some crashes.
• Added message when network sync rejects a change.

7.5

• Added "Split" button for Ooze (also applies wound damage and respects stun).
• Added "Hide monsters" setting for seeing only players on a device.
• Added "Drag HP" setting to disable drag HP adjustments.
• Less change of a conflict when adjusting monster HP with network synchronization.
• Zoom level is now saved.
• Click the scenario info to change the scenario level.
• Fixed removing a monster box while it is moving.
• Fixed layout issues on narrow width screens.
• Minor performance improvements.
• Remove monster button no longer prompts.
• Fixed monster menu not showing in the correct position.
• Fixed "Drag number" initiative not updating other clients.
• If the game state cannot be loaded, it is no longer erased (until a change is made!). The app can be restarted to try loading the data again.

7.3

• Fixed a few crashes.
• Reduced memory usage slightly.
• End of round ad reduced to every 3rd round and not more often than 20 minutes.

7.2

• Fixed undo/redo when using network synchronization.
• Fixed character "+" button highlight.
• Choosing "Remove Ads" when already purchased really is fixed now.
• End of round ad reduced to every other round.

7.1

• Choosing "Remove Ads" when already purchased removes ads immediately.

7.0

• Fixed attack on Inox Bodyguard ability cards.
• Fixed undo/redo crashes.
• Ads on Android with an in-purchase to remove them.
• Released on iOS.

6.5

Synch'ed desktop and Android versions.

6.3

• Some crash fixes.

6.2

• Fixed some boss attack calculated values.
• Remember fullscreen setting across app runs.
• Player summons are no longer sorted by standee number.

6.1

• Fixed undo with network synchronization.
• Darker circle for recommended level.

6.0

• Faster network synchronization when dragging to adjust values.
• Added 25 levels of undo.
• Added redo.
• Keyboard entry for initiative (desktop).
• Escort and objective initiative is not reset each round.
• Fixed recommended scenario when an escort or objective is in the party.

5.9

• Scroll to keep add monster menu on-screen.
• Fixed crash creating a level 7 solo scenario.
• Fixed a monster have melee AOE but showing a range.

5.7

• Fixed crash when network sync clients take an action at the same time.
• Fixed monster attack modifier cards not animating for network sync clients.

5.6

• Fixed objectives/escorts counting as players.

5.5

• Fixed monster initiative numbers showing incorrectly.
• Fixed characters being gray after setting a new scenario.

5.2

• Don't show initiative numbers to network clients until drawing monster ability cards.
• Added drag left/right to adjust XP without opening the player menu.
• Flash the shield icon when a monster with shield takes damage.
• Fixed adding monster conditions not wrapping monster boxes to the next line.
• Fixed Add Characters button being over the settings button.
• Fixed Track Standees hiding player summons.

5.1

• Show multiple local IPs when hosting a server.
• Improved zoom.

5.0

• Added hotkeys to zoom (up/down arrow keys).

4.9

• Fixed ability cards not flipping sometimes.
• Reduce download size.

4.8

• Fixed an incorrect boss immunity.
• Renamed "Players" to "Characters".
• "Set scenario" defaults to the last scenario level rather than using the characters level.
• Don't keep screen on while app is in the background.
• Escort and Objective moved to top of list.
• Monster rows share ability decks when appropriate.
• Scroll to top on draw and next round.

4.7

• Fixed monster stat layouts.
• Fixed zoom from being lost when window is minimized on desktop.

4.6

• Fixed initiative sorting ignoring characters when adding a new monster mid-round.
• Added "exhausted" button for characters (so HP can still be tracked for permadeath).
• Fixed saving app state on Android.

4.5

• Fixed remove monster not updating the network.
• Fixed character numpad initiative not updating the network.
• Show stats menu after adding a character summon.
• Numpad is now default for character initiative.
• Added undo (one level).
• Added highlight for current turn.

4.4

• Fixed monsters spawning automatically.
• Improved add monster animations.

4.3

• Added numeric input for character initiatives.
• Added "monkey face" condition.
• Fixed "bear face" using scenario level instead of character level.
• Fixed layout for Spitting Drake AOE.
• Sort character conditions.
• Better help messages.

4.2

• Removed "Summon" as a monster that can be added.
• Fixed crashes adding escort or objective.
• Fixed other rare crashes.

4.1

• Ability cards are back to being shown automatically when a new monster is added (summons draw for initiative, even if they don't take the action).
• Fixed minor layout problem with 2 columns.
• Smoother progress bar when loading web version.

4.0

• Improvements for "bear face" class when setting a new scenario.
• Added move, attack, and range stats to summons.
• Fixed sorting character summons.
• Fixed card 747.
• Allow setting character initiative number any time.
• Fixed character initiative numbers setting not being saved.

3.9

• Added character summon tracking.
• Fixed character row highlight when menu is open.
• Fixed crash with monster remove menu.
• Fixed state not being saved locally when received from network sync.
• Write config and state to a temp file, only replacing the real file when writing is successful.
• Added logging to a log.txt file on desktop.
• Ability cards are no longer shown automatically when a new monster is added (it may be summoned and takes no action this turn). Click the ability card back to draw.
• Fixed bugs with character initiative number sorting.

3.8

• Added "Character initiative" settings.
• Improved background graphics.

3.7

• Fixed network sync bugs.
• Allow setting name and max HP for character rows.
• Added escort and objective "character" rows.
• Add escort automatically for scenario #19.
• Fixed zoom causing scaling artifacts.
• Added reset zoom option.

3.6

• Fixed network sync crash regarding simultaneous actions.
• Fixed scaling artifacts.
• Changed thresholds for HP drag adjustments.
• Reduces HP adjustment mistaps when dragging character rows.
• Added "Ability numbers" setting to show monster ability card numbers.

3.5

• Fixed crash on older Android versions.

3.4

• Press on stats to show them.
• Improved HP drag adjustment to prevent mistaps.

3.3

• Curse innate ability now shows up on ability cards.
• "Add monster" defaults to scenario level.
• Monster "set level" now changes the whole row.
• Menu to add/remove blessings and curses when "track standees" is unchecked.

3.2

• Landscape support (multiple columns, if they fit).
• Never upscale, only downscale if the screen isn't wide enough.
• The "Zoom" setting now downscales instead of adding black bars.
• When "Track standees" is unchecked, drawing monster ability cards can be on/off.
• Other minor fixes and improvements.

2.8

• Faster initial loading.
• Fixed stat calculation for boss specials for negative values.
• Web version.

2.7

• Much better legibility for HP text.

2.6

• Larger HP text size.

2.5

• Network sync improvements.
• Added monster level button and max hp adjustment.
• Condition reminder animations.
• Larger menu buttons.
• Add monster level defaults to scenario.
• Scroll when row is dragged to screen edge.
• Set scenario resets characters.
• Sort after adding new monster during turns.
• Added remove monster button.
• Don't set turn to complete if no monster boxes.
• Redid sliding animations.

2.4

• Added summon condition for the 1st round in play to indicate it should not take actions.
• Added "Random standees" setting.
• Ending a turn by clicking a portrait ends all turns of rows above.
• Undoing a turn by clicking a portrait again undoes all turns of rows below.
• Fixed a Flame Demon card text.
• Fixed scenario level with network sync.
• Fixed swiping to set monster HP.
• Improved sliding animations.
• End of round warning is only shown when expiring conditions are active.

2.3

• Fixed resource clean up after using client or server settings.

2.2

• Clients attempt to automatically connect to the first server found running on the LAN.
• Local IP is shown when server is started.
• Special case for scenario #67.
• Better sorting for conditions on popup menus.

2.0

• Added network synchronization.
• Many improvements.

1.0

• Initial release.