Skip to content

Campaigns

Tower Craft ships with two campaign maps. Pick one from the LEVEL dropdown on the Campaign screen — each map has its own waypoints, tower-slot layout, wave list, and victory drops.

MapWavesDifficultyVictory drops
Desolate Depths30Medium15 % × mithril_lump
Crystalline Caverns50Extreme15 % × void_touched_shard

Custom levels built in the level editor continue to be supported alongside the campaign maps and use their own (editor-defined) paths and waves. Custom-level runs don't grant account drops and don't appear on the campaign leaderboards.

Map registry

Campaign maps are defined in shared/campaign-maps.ts as CAMPAIGN_MAPS. Each entry carries:

  • waypoints — the path enemies follow
  • towerSlots — tower placement slots
  • waves — 30+ wave definitions
  • totalWaves — what the HUD denominator reads
  • backgroundPreset — which TD background to render
  • roadTexture — which path texture to use
  • difficulty / difficultyColor / description — dropdown metadata
  • victoryDrops — the DropRoll[] table the server rolls on victory

Adding a third map (Volcanic Rift, for example) is a data-only edit: register a new entry in CAMPAIGN_MAPS and it appears in the dropdown automatically.

Victory drops

On the tick when the TD game transitions to gameWon, the server rolls each map's victoryDrops table independently per player. Rolls persist atomically to meta_progression.state_json alongside the leaderboard write, and an ACCOUNT_DROPS_AWARDED message is sent to each player so the Game Over screen can surface the panel.

Tower Craft is in closed beta.