One key to Gloomhaven success is pacing. Because you lose cards every rest and can't recover from losing all your cards, your cards are your most important resource. Too aggressive a pace, and your adventure will end prematurely. Too conservative, and you won't contribute as much as you can. You may miss out on valuable XP as well.
You have two general ways to influence your pace. Playing onesie cards accelerates your character, with fewer but more powerful turns. Recovering cards from the discard/lost piles can give you extra turns. The core of this guide will be on the former, but some attention will be paid to the latter.
Let's calculate turn counts for Gloomhaven characters. First, we have to get nerdy and write a Python function. If you don't care about the gory details, skip the code blocks.
countturns takes as input two parameters:
def countturns(handsize, lostcards = None):
if lostcards == None:
lostcards = [] #setting default parameter = [] gives unexpected behavior. this is safer.
n, ret = handsize, 0
while True:
ret += n // 2
n = n - 1
if len(lostcards) > 0:
n = n - lostcards[0]
lostcards = lostcards[1:]
if n <=0:
break
return ret
Now that we have our function, let's run three scenarios.
Note that if you have only two cards in your hand, you won't have a second rest to lose cards from. We will omit that scenario.
for i in range(3, 15):
print('{}: {}, {}, {}'.format(i, countturns(i), countturns(i, [1]), countturns(i, [1,1])))
3: 2, 1, 1 4: 4, 3, 3 5: 6, 4, 3 6: 9, 7, 6 7: 12, 9, 7 8: 16, 13, 11 9: 20, 16, 13 10: 25, 21, 18 11: 30, 25, 21 12: 36, 31, 27 13: 42, 36, 31 14: 49, 43, 38
By now, you might notice a pattern. By losing a card, you lose turns equal to (cards - 1) / 2, rounded down.
The lesson here isn't to never lose cards. Onesies are powerful abilities, and the game will often end before you've reached your max turns. But the longer you can wait to use your one-shot cards, the less of a cost you have to pay. With 10 cards in hand, the cost of losing a card is 4 turns. But you only have to "spend" 2 turns if you've got 6 cards in your hand.
Let's look at another case. If you lose a card before each rest, how long can you last?
for i in range(3, 15):
print('{}: {}'.format(i, countturns(i, [1]*20)))
3: 1 4: 3 5: 3 6: 6 7: 6 8: 10 9: 10 10: 15 11: 15 12: 21 13: 21 14: 28
What just happened? This doesn't make any sense. Why don't you lose many more turns than when you just lose 2 cards early? And what's with this repeating numbers business? Does handsize not matter any more? Let's look at someone with 9 cards as an example. The first rest-group, this player will have 4 turns. After spending 1 onesie and losing 1 card to rest they will have 7 cards. Then 3 turns, down to 5 cards. Then 2 turns, down to 3 cards. Then 1 turn, down to 1 card. Then done. 4+3+2+1 = 10. What about someone with 8 cards? They will get 4 turns, and have 6 cards for the next go-around. Then 3 turns with 4 cards remaining. 2 turns, recover 2 turns. 1 turn left and they are exhausted. 4+3+2+1=10.
Again, losing cards isn't a terrible strategy. Losing cards early is painful.
You also see that having an odd number of cards in your hand isn't particularly helpful. You want to recover an even number of cards.
Say you start the game with 9 cards. You save all your cards the first round and then lose 1 card between each rest thereafter. How many turns do you get?
countturns(9, [0,1,1,1,1,1])
14
That might give you enough turns to make it all the way through. You'd get to spend 4 of your 1-shot cards. 9 cards is the lowest for any starting character, with one exception. If you can make it like this with 9, the strategy will also work with higher card counts. If you have more cards, you get even more flexibility. You can last longer than the 9-card player, cleaning up at the end. Or you can nova harder, possibly losing 3 cards at a shot rather than just 1. Try to stay on even numbers if you can help it.
Keep in mind you'll accelerate your loss cards as the dungeon progresses. Say you have 10 cards and take my advice and play 1 lost card between each rest. And say you play that lost card as soon as you possibly can. You would play lost cards on rounds 1, 6, 10, 13, 14, 15. You're really going to nova at the end, and timing will be everything.
Count your "net cards" (hand + discount + active-and-going-to-discard). If it's even, you can play a one-shot card. If it's odd, see if you can hold off. Of course there are exceptions and you should adjust for your play style (see below). But if there's one thing that you should take away from this guide as general advice, it's this tactic.
How many turns does this strategy give you?
print('Handcount: Turns until exhaustion')
for i in range(2, 15):
print('{}: {}'.format(i,countturns(i,[(i+1)%2]+[1]*6)))
Handcount: Turns until exhaustion 2: 1 3: 2 4: 3 5: 5 6: 6 7: 9 8: 10 9: 14 10: 15 11: 20 12: 21 13: 27 14: 28
Notice that your turn budget still changes quite a bit as you increase your handsize. If you're finding you have too many cards left with a handsize of 12, try playing 3 one-shot cards before you take your first rest to clear out that big room. See how that goes.
I'm trying to help you be more efficient. But sometimes that's not what you want. Did the boss flip a crit and hit you for 14 damage? I don't care what your hand size is, you lose a card. Likewise, if you're in the last few turns and have plenty of cards left, go for broke. Throw down all your XP cards because it's now or never. You don't know how many turns you'll need until you see your final objective. That's usually when you open the last door. If you play with the room tiles revealed, this timing will be much easier. Hopefully, you'll be in a good position at that point. Regardless, your objective will be clear. You will know whether you want to stretch or nova. You should also adjust to your personal situation. Each player, class, group, scenario is different. Set a goal for one-shot cards for a scenario and a general timing. If you're ending with excess cards, play some one-shot cards sooner or add some one-shot cards for the end. Vice versa if you're getting exhausted too early.
countturns(8) + countturns(7)
28
That ability gives the spellweaver an equivalent hand size of about 10.5, assuming no onesies. That's not bad, but it gets better. How many turns will the spellweaver get by following our strategy?
countturns(8,[1,1,1,1,1])+countturns(7,[0,1,1,1,1])
19
Still quite a few turns. And the spellweaver will be able to use a total of 7 one-shot abilities. Powerful magic right there. I've played a spellweaver through level 5. My current approach has been to play two onesies before the first rest, then two before the second rest. The first room can be one of the more difficulty rooms. Because your allies are penalized so heavily for losing cards early, the spellweaver can pick up the slack. Additionally, all those AOE attacks work well with all the baddies out. That strategy still typically gives you enough turns:
countturns(8,[2,2,1,1,1])+countturns(7,[0,1,1,1,1])
16
There are several ways to recover cards from your discard. Every two cards you recover this way gives you one additional turn. Also, if you have an odd number of cards in your hand and recover and odd number of cards, you will also get one additional turn. Take the Minor Stamina Potion (MSP) starting item as an example. You can use it to recover two cards and play them your next turn. You will then be at the same place you were, but one round later.
There's two general uses for the MSP. One is to retrieve key cards that you would you like to use again. This is a situationally powerful ability that usually comes up. For instance, if you really need healing, you might want to reuse your heal card without waiting for a rest. But until that key situation arises, you're going to want to wait to use the MSP. Unlike the other items, this card is most valuable later and can add value even if unused. Remember how you end up play most of your onesies cards at the end? By using your stamina potion early, you're pushing back your end game nova. I like to keep my stamina potion for the end, and I can have it if I need an extra turn in that last room. By having that card in by back pocket, it lets me play more aggressive early.
The tinkerer has some abilities that let allies get things back. I'm generally not a fan of those because they tend to be a net 0 for the party. However there are specific cards which work well. I'd love to get into some specifics from this class and others, but most will have to wait until I can figure out how to do spoilers in jupyter.
Volatile Concoction. This card lets a nearby ally recover a card from their discard, or two if you consume a snowflake. It would have been much better if it would let an ally recover two cards. Keeping an even net hand size isn't difficult, and if they can consistently do that, this card doesn't actually give them any additional turns. If your allies aren't keeping even handsizes, this can be a way to consistently give them more turns, so it depends on how optimally they are playing. Armed with a volatile concoction, you can cover a multitude of transgressions.
Reinvigorating Elixer. This card lets a nearby ally recover all their discarded cards. Recovering all your discarded cards is about equal to saving a lost card. You're losing a card to save them from losing a card. Because you have a bigger hand size then your allies, it could help a bit. But there's other issues. This card is very timing-dependent and location-dependent. You have to be in the right place (adjacent) at the right time (when they have played their last cards), as well as when no enemies are present. But if there's no enemies present, you want to move towards the next room, and this card doesn't let you do that.