Modes & Waves

Four ways to play. Classic and Random share one 25-wave script and differ only in where the enemies come from; Endless continues past it; New Game+ replays the whole thing harder.

Classic

Entrances sit on the top row in fixed, evenly spread positions — you choose how many, and that choice is the difficulty setting.

EntrancesPositions (column)Difficulty
15Easy
20, 10Normal
30, 5, 10Hard
40, 3, 7, 10Impossible

The board runs through all 5 biomes, one per five waves, and the run ends in victory after wave 25 — or continues into Endless if you choose.

BiomeWavesCharacter
🌿 Plains1–5The battle begins on open grasslands.
🏜️ Desert6–10The battlefield shifts to scorching desert sands.
❄️ Tundra11–15A frozen tundra stretches before you. The cold bites deep.
🌲 Forest16–20Dense forest canopy closes in around the battlefield.
🏔️ Mountains21–25Rocky mountain peaks tower above. The final stand awaits.

All 25 waves

Wave n allows up to n÷5 rounded up enemy types, so compositions widen as the run goes on. The HP column is the multiplier applied to every enemy's base stat block that wave.

WaveBiomeCompositionCountSpawn gapHP
1🌿 PlainsGrunt×880.8s×1
2🌿 PlainsGrunt×14140.65s×1.22
3🌿 PlainsRunner×12120.6s×1.44
4🌿 PlainsGrunt×18180.55s×1.66
5🌿 PlainsFlyer×10100.5s×1.88
6🏜️ DesertGrunt×14 Runner×10240.5s×2.1
7🏜️ DesertSplitter×6 Grunt×16220.55s×2.32
8🏜️ DesertRunner×16 Flyer×8240.5s×2.54
9🏜️ DesertHealer×4 Grunt×18220.45s×2.76
10🏜️ DesertSplitter×8 Runner×16240.45s×2.98
11❄️ TundraTank×6 Grunt×16 Runner×10320.4s×3.2
12❄️ TundraSplitter×6 Flyer×12 Healer×4220.4s×3.42
13❄️ TundraBrute×4 Tank×6 Grunt×16260.35s×3.64
14❄️ TundraRunner×16 Splitter×8 Healer×5290.35s×3.86
15 BOSS❄️ TundraBoss×2 Tank×8 Flyer×10200.4s×4.08
16🌲 ForestBrute×5 Runner×18 Tank×8 Splitter×6370.3s×4.3
17🌲 ForestHealer×5 Grunt×18 Tank×10 Brute×4370.3s×4.52
18🌲 ForestFlyer×16 Splitter×8 Tank×10 Runner×12460.3s×4.74
19🌲 ForestBrute×6 Healer×5 Runner×20 Tank×10410.25s×4.96
20 BOSS🌲 ForestBoss×3 Grunt×16 Tank×10 Brute×5340.35s×5.18
21🏔️ MountainsFlyer×18 Tank×12 Runner×14 Brute×6 Splitter×6560.25s×5.4
22🏔️ MountainsGrunt×20 Healer×6 Tank×12 Brute×6 Runner×14580.22s×5.62
23🏔️ MountainsRunner×18 Tank×14 Flyer×12 Splitter×8 Brute×6580.22s×5.84
24🏔️ MountainsFlyer×20 Tank×14 Healer×6 Brute×7 Splitter×8550.2s×6.06
25 BOSS🏔️ MountainsBoss×5 Runner×18 Tank×14 Flyer×14 Brute×7580.25s×6.28

From wave 21 onward, spawns rotate round-robin across every entrance rather than picking one — with 4 entrances that is four simultaneous streams.

Random

Identical waves, different geography. Entrances are placed randomly instead of on the top row, at least 5 cells apart (Manhattan distance) and never in the bottom 6 rows. A cave that spawns halfway down the board gives you far less maze to work with, and you cannot plan a layout in advance. Random keeps its own leaderboard.

Endless

Past wave 25 the game generates waves procedurally. Boss count climbs by one per wave to a ceiling of 10, every other group scales by 30% per wave past the end, and the spawn gap tightens by 0.01s per wave down to a 0.1s floor.

WaveCompositionCountSpawn gapHP
26Boss×4 Tank×18 Brute×9 Runner×23 Flyer×18720.24s×6.5
27Boss×5 Tank×22 Brute×11 Runner×28 Flyer×22880.23s×6.72
28Boss×6 Tank×26 Brute×13 Runner×34 Flyer×261050.22s×6.94
29Boss×7 Tank×30 Brute×15 Runner×39 Flyer×301210.21s×7.16
30Boss×8 Tank×35 Brute×17 Runner×45 Flyer×351400.2s×7.38
31Boss×9 Tank×39 Brute×19 Runner×50 Flyer×391560.19s×7.6
32Boss×10 Tank×43 Brute×21 Runner×55 Flyer×431720.18s×7.82
33Boss×10 Tank×47 Brute×23 Runner×61 Flyer×471880.17s×8.04
34Boss×10 Tank×51 Brute×25 Runner×66 Flyer×512030.16s×8.26
35Boss×10 Tank×56 Brute×28 Runner×72 Flyer×562220.15s×8.48

Shown here to wave 35; the formula continues indefinitely.

New Game+

Offered after a victory. Each NG+ level multiplies enemy HP by 1 + 0.5 × N and adds 10g to your starting gold, with freshly randomised entrances. The wave script is unchanged — only the arithmetic moves.

NG+ levelEnemy HPStarting gold
NG+1×1.530g
NG+2×240g
NG+3×2.550g
NG+4×360g
NG+5×3.570g

NG+ runs are scored on their own leaderboard section.