Skip to content

Equipment & Gear

Tower Craft now has an account-level gear system. Rare drops from campaign victories feed a crafting tab accessed from the title screen; crafted gear sits in your account inventory and can be equipped into slots that apply to every future run.

The EQUIPMENT button on the title menu opens the panel.

What gear does

Equipped gear modifies your combat loadout in the Crystalline Caverns dimension. The server authoritatively loads your equipped gear when the run starts — damage numbers, swing speed, and reach all come from the equipped item, not the client.

Slots

Slotv1 status
SWORDActive — basic/iron/mithril are available
ARMORGhosted, coming soon
TRINKETGhosted, coming soon

If no sword is equipped, the Basic Sword (15 damage, 0.8 s swing, 28 px reach) is assumed. It's always available and never needs crafting.

Sword progression

SwordDamageSwingReachCrafted from
Basic Sword150.80 s28 pxAlways equipped by default
Mithril Sword260.76 s30 px1 × mithril_lump
Void Sword360.70 s32 px2 × mithril_lump, 1 × void_touched_shard

Gear recipes only accept rare, campaign-victory drops — not run-inventory staples like iron or steel. Gear is a persistent reward for clearing maps, not something you can grind inside a single run.

  • mithril_lump drops from Desolate Depths victories (15 % chance).
  • void_touched_shard drops from Crystalline Caverns victories (15 % chance).

Rare drops

When your party clears a campaign map, the server rolls drops from the map's victory-drop table. Each player rolls independently — if four of you beat Desolate Depths, all four receive their own mithril lump. Drops are persisted to your account inventory immediately.

The Game Over screen shows a YOU RECEIVED panel listing any drops awarded that run.

Current drop tables

Only two rare resources exist, one per map, both 15 % chance:

MapRare drop
Desolate Depths15 % chance: 1 × mithril_lump
Crystalline Caverns15 % chance: 1 × void_touched_shard

Rare drops are stored separately from the run inventory — they never appear in the left panel, never enter crafting recipes, and can't be granted by dev cheats like /infinite. They persist to the account meta blob and feed gear crafting exclusively.

Custom levels do not grant account drops.

Using the Equipment panel

  1. Click EQUIPMENT on the title menu.
  2. The top strip shows your three slots with the currently equipped item's sprite and stats. Armor and Trinket are ghosted.
  3. The middle section lists every gear instance you've crafted. Click [ EQUIP ] on any row to slot it; click again on a different one to swap.
  4. The right column shows craftable recipes plus your current account inventory. Recipes with enough inputs show a green CRAFT button; insufficient inputs grey it out.
  5. Crafted gear lands in the owned-gear grid immediately. It's yours until you explicitly delete it (UI for deletion coming later).

Server-authoritative notes

  • All meta-state mutations go through two endpoints: POST /api/meta/craft-gear and POST /api/meta/equip. The server validates the recipe, deducts inputs atomically, and writes the updated meta blob to SQLite.
  • The client never computes damage. At run start the server looks up your equipment slot, resolves the sword stats from GEAR_DEFS, and applies them to the player's combat loadout. A tampered client can't hand itself a 10 000 damage sword.
  • Basic Sword is implicit — equipment.sword = undefined resolves to the basic sword stats. There's no gear instance for the default.

Future slots

The data model already supports Armor and Trinket slots:

  • Armor (planned): flat damage reduction; useful in dangerous caverns runs.
  • Trinket (planned): situational bonuses — max-HP boost, crit chance, resource drop rate.

Both slots render in the panel today so you can see where they'll plug in; they're disabled pending gear definitions and drop sources.

Tower Craft is in closed beta.