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.
| Entrances | Positions (column) | Difficulty |
|---|---|---|
| 1 | 5 | Easy |
| 2 | 0, 10 | Normal |
| 3 | 0, 5, 10 | Hard |
| 4 | 0, 3, 7, 10 | Impossible |
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.
| Biome | Waves | Character |
|---|---|---|
| 🌿 Plains | 1–5 | The battle begins on open grasslands. |
| 🏜️ Desert | 6–10 | The battlefield shifts to scorching desert sands. |
| ❄️ Tundra | 11–15 | A frozen tundra stretches before you. The cold bites deep. |
| 🌲 Forest | 16–20 | Dense forest canopy closes in around the battlefield. |
| 🏔️ Mountains | 21–25 | Rocky 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.
| Wave | Biome | Composition | Count | Spawn gap | HP |
|---|---|---|---|---|---|
| 1 | 🌿 Plains | Grunt×8 | 8 | 0.8s | ×1 |
| 2 | 🌿 Plains | Grunt×14 | 14 | 0.65s | ×1.22 |
| 3 | 🌿 Plains | Runner×12 | 12 | 0.6s | ×1.44 |
| 4 | 🌿 Plains | Grunt×18 | 18 | 0.55s | ×1.66 |
| 5 | 🌿 Plains | Flyer×10 | 10 | 0.5s | ×1.88 |
| 6 | 🏜️ Desert | Grunt×14 Runner×10 | 24 | 0.5s | ×2.1 |
| 7 | 🏜️ Desert | Splitter×6 Grunt×16 | 22 | 0.55s | ×2.32 |
| 8 | 🏜️ Desert | Runner×16 Flyer×8 | 24 | 0.5s | ×2.54 |
| 9 | 🏜️ Desert | Healer×4 Grunt×18 | 22 | 0.45s | ×2.76 |
| 10 | 🏜️ Desert | Splitter×8 Runner×16 | 24 | 0.45s | ×2.98 |
| 11 | ❄️ Tundra | Tank×6 Grunt×16 Runner×10 | 32 | 0.4s | ×3.2 |
| 12 | ❄️ Tundra | Splitter×6 Flyer×12 Healer×4 | 22 | 0.4s | ×3.42 |
| 13 | ❄️ Tundra | Brute×4 Tank×6 Grunt×16 | 26 | 0.35s | ×3.64 |
| 14 | ❄️ Tundra | Runner×16 Splitter×8 Healer×5 | 29 | 0.35s | ×3.86 |
| 15 BOSS | ❄️ Tundra | Boss×2 Tank×8 Flyer×10 | 20 | 0.4s | ×4.08 |
| 16 | 🌲 Forest | Brute×5 Runner×18 Tank×8 Splitter×6 | 37 | 0.3s | ×4.3 |
| 17 | 🌲 Forest | Healer×5 Grunt×18 Tank×10 Brute×4 | 37 | 0.3s | ×4.52 |
| 18 | 🌲 Forest | Flyer×16 Splitter×8 Tank×10 Runner×12 | 46 | 0.3s | ×4.74 |
| 19 | 🌲 Forest | Brute×6 Healer×5 Runner×20 Tank×10 | 41 | 0.25s | ×4.96 |
| 20 BOSS | 🌲 Forest | Boss×3 Grunt×16 Tank×10 Brute×5 | 34 | 0.35s | ×5.18 |
| 21 | 🏔️ Mountains | Flyer×18 Tank×12 Runner×14 Brute×6 Splitter×6 | 56 | 0.25s | ×5.4 |
| 22 | 🏔️ Mountains | Grunt×20 Healer×6 Tank×12 Brute×6 Runner×14 | 58 | 0.22s | ×5.62 |
| 23 | 🏔️ Mountains | Runner×18 Tank×14 Flyer×12 Splitter×8 Brute×6 | 58 | 0.22s | ×5.84 |
| 24 | 🏔️ Mountains | Flyer×20 Tank×14 Healer×6 Brute×7 Splitter×8 | 55 | 0.2s | ×6.06 |
| 25 BOSS | 🏔️ Mountains | Boss×5 Runner×18 Tank×14 Flyer×14 Brute×7 | 58 | 0.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.
| Wave | Composition | Count | Spawn gap | HP |
|---|---|---|---|---|
| 26 | Boss×4 Tank×18 Brute×9 Runner×23 Flyer×18 | 72 | 0.24s | ×6.5 |
| 27 | Boss×5 Tank×22 Brute×11 Runner×28 Flyer×22 | 88 | 0.23s | ×6.72 |
| 28 | Boss×6 Tank×26 Brute×13 Runner×34 Flyer×26 | 105 | 0.22s | ×6.94 |
| 29 | Boss×7 Tank×30 Brute×15 Runner×39 Flyer×30 | 121 | 0.21s | ×7.16 |
| 30 | Boss×8 Tank×35 Brute×17 Runner×45 Flyer×35 | 140 | 0.2s | ×7.38 |
| 31 | Boss×9 Tank×39 Brute×19 Runner×50 Flyer×39 | 156 | 0.19s | ×7.6 |
| 32 | Boss×10 Tank×43 Brute×21 Runner×55 Flyer×43 | 172 | 0.18s | ×7.82 |
| 33 | Boss×10 Tank×47 Brute×23 Runner×61 Flyer×47 | 188 | 0.17s | ×8.04 |
| 34 | Boss×10 Tank×51 Brute×25 Runner×66 Flyer×51 | 203 | 0.16s | ×8.26 |
| 35 | Boss×10 Tank×56 Brute×28 Runner×72 Flyer×56 | 222 | 0.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+ level | Enemy HP | Starting gold |
|---|---|---|
| NG+1 | ×1.5 | 30g |
| NG+2 | ×2 | 40g |
| NG+3 | ×2.5 | 50g |
| NG+4 | ×3 | 60g |
| NG+5 | ×3.5 | 70g |
NG+ runs are scored on their own leaderboard section.
Campaign
The campaign is a separate 25-level progression with hand-built maps, per-level arsenals and star ratings — it does not use the wave script above. See all 25 levels →