CORRUPTMIND is a Lovecraftian roguelike MUD played entirely over SSH. There is no client to install - your terminal is your only game client.
/help for
commands.
To create an account, use the signup form on the website. You will choose a username (3-20 characters, letters, numbers, and underscores only) and provide an email address. Your email is only used for account verification/activation and password resets.
New accounts start in a pending state. Activation is completed by clicking a verification link sent to your email. The verification link expires after 24 hours, after which the unverified account is removed.
Once activated, you can log in via SSH using the password generated during signup, or by registering an SSH key (see below).
SSH keys let you log in without typing a password every time. This is both more convenient and more secure than password authentication.
authorized_keys format (e.g., the contents of
~/.ssh/id_ed25519.pub).
ssh-ed25519, ssh-rsa,
ecdsa-sha2-nistp256/384/521.
Once registered, SSH will use your key automatically. See your
profile page for the connection command.
If your private key is not in a default location, specify it with
-i ~/.ssh/my_key.
Connect to the game via SSH using your account credentials. The connection command is on your profile page.
The game starts in Move mode. Use the following keys to navigate the world:
WASD follows conventional game movement. HJKL follows Vim conventions (h=left, j=down, k=up, l=right). Both key sets work identically.
Movement has a short cooldown (250ms). You cannot move while in combat.
The world is divided into biomes, each with its own terrain symbol on the map:
.) - Open, passable
terrain.
♣) - Dense
woodland. Grants doubled health regeneration.
~) - Dry, passable
terrain with no special effects.
^) - Impassable. These
peaks cannot be crossed.
The interface has two primary modes: Move mode (for navigation) and Command mode (for chat and slash commands).
/ pre-filled
On first login - and after every death - you choose a
class, then allocate
4 bonus points across six ability scores. All stats
start at 10, and the modifier for any stat is
(score − 10) / 2 (so 10 = +0, 12 = +1, 14 = +2).
These points are permanent for that character.
| Stat | Modifier Affects |
|---|---|
| STR (Strength) | Weapon damage with strength-scaled heavy weapons (greatswords, axes, clubs, etc.). |
| DEX (Dexterity) | Effective AC, initiative, and flee checks - plus weapon damage with dexterity-scaled light/ranged weapons (bows, daggers, thrown blades, etc.). |
| CON (Constitution) |
Idle HP regeneration per tick and HP gained on level-up -
higher CON means you heal faster and gain more HP each level.
Regen also scales with level (min(level÷5, floor(√level)) + CON modifier).
|
| INT (Intelligence) |
Defend action (/defend grants temporary AC bonus of 2 + INT modifier) -
plus weapon damage with intelligence-scaled magical weapons (staves, wands, focus rods, etc.).
|
| WIS (Wisdom) |
Saving throws against tagged monster attacks, maximum sanity
(80 + WIS modifier × 15) -
plus weapon damage with wisdom-scaled sacred weapons (psalms, litanies, relics, etc.).
|
| CHA (Charisma) |
Bonus XP on kills - after standard XP is calculated,
CHA modifier × monster level is added as
bonus XP.
|
Navigate the allocation modal using W/K (up) and S/J (down). Press D/L to add a point and A/H to remove one. You must distribute all 4 points before entering the game. Stats cannot be changed after allocation - you must create a new character to reallocate them.
On first login - and after every death - you must choose a class before allocating stats. Your class determines which ability scores improve automatically as you level up. The choice is permanent for that character; you must create a new character to choose again.
| Class | Major Stat (+2 per 5 levels) | Minor Stat (+1 per 5 levels) | Role |
|---|---|---|---|
| Bulwark | STR | DEX | An unyielding presence against the tide of horrors. Strength fuels devastating strikes; dexterity improves evasion and initiative. |
| Voidweaver | INT | WIS | One who reaches into the emptiness and pulls out power. Intelligence enhances defensive insight; wisdom guards against supernatural attacks. |
| Stalker | DEX | STR | A swift hunter whose dexterity ensures evasion, while strength guarantees lethal damage. |
| Harbinger | WIS | INT | Wisdom and intelligence form a bulwark against the dangers of the outer reaches. |
Every 5 levels, your class grants +2 to your major stat and +1 to your minor stat. These bonuses are spread across individual level-ups (at most +1 per level-up) so that progression feels steady rather than burst. The cycle begins at level 2 and repeats every 5 levels.
| Level-Up | Bonus |
|---|---|
| 2, 7, 12, 17, 22, 27, 32, 37 | +1 Major stat |
| 3, 8, 13, 18, 23, 28, 33, 38 | +1 Minor stat |
| 4, 9, 14, 19, 24, 29, 34, 39 | No class bonus |
| 5, 10, 15, 20, 25, 30, 35, 40 | +1 Major stat |
| 6, 11, 16, 21, 26, 31, 36 | No class bonus |
By level 5, every class has gained exactly +2 major and +1 minor. This pattern repeats at levels 10, 15, 20, and so on, up to the level cap of 40. Class stat bonuses are applied automatically on level-up and are shown in the level-up notification.
Each class also has two active abilities unlocked at levels 1 and 10. See the Class Abilities section below for details.
Each class has two active combat abilities with cooldowns measured in
combat rounds. Use /ability (alias /ab) to
list available abilities and /ability <name> to use
one in combat.
Every ability carries a Lovecraftian cost. Drawing on forbidden power erodes your sanity or risks acquiring a bane. The void always takes its cut.
| Class | Ability | Level | Cooldown | Effect | Cost |
|---|---|---|---|---|---|
| Bulwark | Grave Grip | 1 | 3 rounds | 1d8 + STR mod damage, stuns monster (skips next turn) | 1 sanity |
| Bulwark | Unyielding Flesh | 10 | 4 rounds | +AC equal to 2x proficiency bonus for 2 rounds | 2 sanity |
| Voidweaver | Void Bolt | 1 | 3 rounds | 2d6 + INT mod damage, ignores monster defense | 2 sanity |
| Voidweaver | Phase Shift | 10 | 5 rounds | Untargetable for 1 round (monster skips attacking you) | 15% bane risk |
| Stalker | Shadow Vein | 1 | 3 rounds | Weapon damage + DEX mod, +4 attack, crit 18-20, +1d6 shadow damage | 1 sanity |
| Stalker | Flee into the Dark | 10 | 4 rounds | Guaranteed successful flee with no opportunity attack | 10% bane risk |
| Harbinger | Eldritch Smite | 1 | 3 rounds | 1d12 + WIS mod damage + 2 sanity recovery. If sanity below 50%, damage doubled but no sanity recovered | None (recovers sanity) |
| Harbinger | Revelation | 10 | 5 rounds | Restore 1d6 + WIS mod sanity to all active combat participants | 10% bane risk per target |
/autoability (alias /aab) toggles automatic
ability use: on your turn, the first available (off-cooldown) ability
is used after a 2-second countdown. If all abilities are on cooldown,
it falls back to a normal attack. This is mutually exclusive with
/autoattack and /autodefend.
When you are out of combat and below maximum HP, your body mends on a timed interval (every 10 seconds). The rate depends on your Constitution and your surroundings.
Base healing per tick is max(1, min(level÷5, floor(√level)) + CON modifier), then
multiplied by a location bonus. At low levels the level÷5 term
dominates; at higher levels the square-root term slows growth so that
combat damage remains impactful.
| Location | Multiplier | Effect |
|---|---|---|
| Rest Point (Campfire) | x3 | The campfire at the origin offers the highest recovery rate. |
| Forest | x2 | Forest biome grants doubled health regeneration. |
| Other Biomes | x1 | Plains, desert, and other terrain offer no recovery bonus. |
Bonuses do not stack - the campfire bonus takes priority over the forest bonus.
Defeating monsters awards XP, split evenly among active combat participants (when a monster's XP is smaller than the group size, every participant instead receives the monster's full XP). When you accumulate enough, you level up automatically.
XP required per level follows a polynomial curve:
floor(100 × level1.5). Each level costs
more than the last.
| Level | XP Cost | Cumulative Total |
|---|---|---|
| 1 → 2 | 100 | 100 |
| 2 → 3 | 282 | 382 |
| 3 → 4 | 519 | 901 |
| 4 → 5 | 800 | 1,701 |
| 5 → 6 | 1,118 | 2,819 |
| 6 → 7 | 1,469 | 4,288 |
| 7 → 8 | 1,852 | 6,140 |
| 8 → 9 | 2,262 | 8,402 |
| 9 → 10 | 2,700 | 11,102 |
| 10 → 11 | 3,162 | 14,264 |
| 11 → 12 | 3,648 | 17,912 |
| 12 → 13 | 4,156 | 22,068 |
| 13 → 14 | 4,687 | 26,755 |
| 14 → 15 | 5,238 | 31,993 |
| 15 → 16 | 5,809 | 37,802 |
| 16 → 17 | 6,400 | 44,202 |
| 17 → 18 | 7,009 | 51,211 |
| 18 → 19 | 7,636 | 58,847 |
| 19 → 20 | 8,281 | 67,128 |
Each level-up grants:
max(1, 4d3 + CON modifier) added to MaxHP (and current
HP).
| Level Range | Weapon Dice |
|---|---|
| 1–4 | 1d8 |
| 5–8 | 1d10 |
| 9–12 | 1d12 |
| 13–16 | 2d6 |
| 17–20 | 2d8 |
| 21–24 | 2d10 |
| 25–28 | 3d8 |
| 29–32 | 3d10 |
| 33–36 | 4d8 |
| 37+ | 4d10 |
The maximum level is 40. XP continues accumulating at cap for leaderboard scoring purposes, but no further level-ups occur.
Monster XP is reduced when the monster is below your level: 10% less per level gap, reaching 0 XP at a gap of 10+ levels. Kills still count and loot still drops regardless.
After level-diff scaling is applied,
CHA modifier × monster level is added as bonus XP.
A character with 14 CHA (+2 modifier) killing a level 5 monster earns
+10 bonus XP. Low CHA does not penalize - it simply grants no
bonus.
Type commands in Command mode (press
i or / to
enter it). Commands start with /.
| Command | Aliases | Description |
|---|---|---|
/help |
Show available commands and their aliases | |
/me <message> |
/emote |
Send an emote to players on your tile |
/look |
Observe your surroundings, including corpses | |
/inspect |
Inspect current tile or a corpse for details | |
/attack |
/a |
Attack the monster in your current combat |
/autoattack |
/aa |
Toggle auto-attack: automatically attacks each turn after a 2-second countdown (Esc to cancel). Mutually exclusive with auto-defend. |
/autodefend |
/ad |
Toggle auto-defend: automatically defends each turn after a 2-second countdown (Esc to cancel). Mutually exclusive with auto-attack. |
/defend |
/d |
Take a defensive stance (+2 AC + INT modifier, minimum +1, until next turn) |
/flee |
/run |
Attempt to escape combat (DEX roll) |
/combat |
Show current combat status and turn order | |
/character |
/char |
Show your stats, HP, AC, level, XP, and kills |
/equipment |
/eq |
List all equipped items and their stat bonuses |
/loot |
Claim loot from a corpse at your location | |
/need |
Need roll d100 for pending loot (higher priority than greed) | |
/greed |
Greed roll d100 for pending loot (lower priority than need) | |
/pass |
Pass on pending loot | |
/scrap |
Scrap loot at your location for scrap currency | |
/reforge <slot> |
Re-roll stats on an equipped item (costs scrap) | |
/dice <NdS[+/-M]> |
Roll dice for roleplaying (e.g., /dice 2d6 or /dice 1d20+3) | |
/leaderboard |
/lb |
View death scores: top, recent, or
me
|
/sshkeys |
List your registered SSH keys | |
/echoes |
Open the Echoes shop overlay; /echoes buy <key> to purchase |
|
/ability |
/ab |
List or use class abilities in combat (/ability <name>) |
/autoability |
/aab |
Toggle automatic class-ability use in combat |
/meditate |
Meditate at a sanity-recovery landmark to restore 25% max sanity (per-location cooldown) | |
/mind |
/sanity |
Show your current sanity, threshold, and active boons/banes |
/quest |
Open quest overlay; /quest available shows quests at landmark; accept, abandon, history also available |
Any text that does not start with / is sent as chat to
players on your tile.
Combat begins the moment you step onto a tile occupied by a monster, or when one spawns beneath your feet. While in combat, you cannot move - you fight, you flee, or you die.
/attack, /defend, or
/flee. Use /autoattack to attack
automatically each turn after a 2-second delay, or
/autodefend to defend automatically.
/defend grants a temporary AC bonus of
2 + INT modifier (minimum +1) until your next turn. A
character with high Intelligence reads the enemy's pattern and
positions more effectively.
/flee attempt provokes an opportunity attack
from the monster.
Some monsters possess supernatural capabilities beyond mere physical attack - mind-altering whispers, dimensional rifts, temporal distortions. When one of these tagged creatures (psychological, dimensional, or time) hits you, a WIS saving throw is triggered:
d20 + WIS modifier + proficiency bonus
8 + monster agility modifier + proficiency bonus
The save is rolled automatically when a tagged monster lands a hit. No action is required - your Wisdom stat and proficiency determine your resistance. Monsters without these special tags deal normal damage with no save.
Combat state is fully database-backed. If you disconnect mid-fight, you can reconnect and resume from where you left off.
When a monster is defeated, it may drop loot. Drops are probabilistic and vary by creature; not every kill yields loot.
/loot to claim it.
/need,
/greed, or /pass. Need rolls always
beat greed rolls. Among need rollers, the highest d100 wins. If
nobody needs the item, greed rollers compete by d100. Ties are
re-rolled automatically. Missing responses are treated as
/pass after a timeout.
/loot, including bystanders who didn't participate in
the fight.
Defeated monsters remain as visible corpses for five minutes. Use
/look to see nearby corpses and /inspect to
examine a corpse for remaining loot.
/loot on the corpse's tile to claim the item.
/scrap to destroy unclaimed loot on your tile
without equipping it, converting it directly into scrap.
/character output. It resets on death.
Not all items are created equal. When loot drops, it carries two layers of rarity: the item's fixture rarity (how powerful the base item is) and a randomly rolled drop rarity (how lucky the roll was). The rarer of the two determines the displayed rarity tag and color.
Every loot drop rolls a random drop rarity, which may upgrade the displayed tag above the item's base fixture rarity:
| Drop Rarity | Chance | Effect on Item Stats |
|---|---|---|
| Standard | 55% | Base fixture stats unchanged |
| Enhanced | 25% | +1 to one existing stat; displays at least Uncommon |
| Superior | 14% | +1 to one existing stat and +1 to one new stat, armor slots get +1 AC; displays at least Rare |
| Exalted | 6% | Budget of 3–4 bonus points across stats, armor slots get +1 AC; displays at least Epic |
Each item template has a base fixture rarity that determines its starting stats and how common it is in loot tables:
| Fixture Rarity | Description |
|---|---|
| Common | Baseline items found throughout the world |
| Uncommon | Slightly better base versions (also produced by Enhanced drops on Common items) |
| Rare | Stronger base items with more stat budget |
| Epic | Powerful items with significant stat bonuses |
| Legendary | The most powerful items in the game |
A drop's displayed rarity is always at least as high as the item's fixture rarity. A Standard roll on a Legendary item displays as Legendary. An Exalted roll on a Common item displays as Epic. Drop rarity can only upgrade the display, never downgrade it.
Weapons display two additional properties that are critical for comparing them: their scaling stat (STR, DEX, INT, or WIS) and their damage dice (e.g., 2d8). The scaling stat determines which of your ability modifiers is added to weapon damage, so a weapon that matches your class's major stat is far more effective for your build. The damage dice override replaces your level-based default dice when present.
Once you have scrap, you can spend it to re-roll an equipped item's
stat bonuses with /reforge <slot>. The cost in scrap
equals the item's current gear score. Reforging is blocked while you
are in combat.
Below are examples showing how rarity affects the same base item type. Stats are generated using the game's live rarity logic.
Armor-like slots (head, body, hands, feet) always have a base AC bonus. This AC is inherent to the slot type and does not consume a rarity bonus slot. Rare and Epic items on armor slots receive an additional +1 AC on top of their normal rarity bonuses.
Weapon and jewelry items never provide AC. Trinkets never provide AC either - their value lies in their stat bonuses.
Item names are color-coded by effective rarity in the TUI and loot messages:
You carry seven equipment slots on your person - no more, no less. There is no backpack or stash. Only equipped items persist - upon death, everything is lost.
2d8). If absent, your level determines the dice instead.
Equipping a new item into an occupied slot destroys the old item permanently. The equip confirmation sidebar shows a side-by-side comparison before you decide - study it carefully. There is no unequip command; items are only removed by replacement or by death.
Permanent death strips all equipment. You return to the origin with no gear.
Every equipped item has a gear score based on its tier (higher-tier items from deeper regions score more), its displayed rarity (common through legendary), and the total of its stat bonuses. Your Gear Score is the sum of scores for all equipped items.
Gear score is shown on your character panel (GS), the
/character and /equipment commands, and when
other players inspect you. It also contributes to your total
leaderboard score on death - better gear means a higher final
score.
The world of CORRUPTMIND is procedurally generated and stretches without end in every direction. Biomes, creatures, and terrain are determined algorithmically from your coordinates - the same location always looks the same, no matter when you visit. Biomes and difficulty scale endlessly in every direction.
The world grows more hostile the further you travel from the origin
(0,0). Distance is measured by Manhattan distance (|x| + |y|), and creatures in the outer reaches scale accordingly.
| Zone | Distance | Monster Tiers |
|---|---|---|
| The Safe Zone | 0 – 14 | Level 1 only. No dangerous spawns. |
| The Stirring | 15 – 60 | Tier 1 (Levels 1–3) |
| The Creeping | 61 – 100 | Tier 2 (Levels 6–8) |
| The Manifesting | 101 – 150 | Tier 3 (Levels 11–13) |
| The Unraveling | 151 – 200 | Tier 4 (Levels 16–18) |
| The Fraying | 201 – 400 | Tier 5 (Levels 20–23) |
| The Dissolution | 401 – 700 | Tier 6 (Levels 26–29) |
| The Abyssal Verge | 701 – 1200 | Tier 7 (Levels 31–34) |
| The Final Dark | 1201+ | Tier 8 (Levels 36–40) |
From distance 201 onward, deeper-tier monsters join the spawn pool alongside lingering Tier 4 threats, so the frontier is always more dangerous than the zone you just left. Monster levels continue to scale with distance beyond their base tier.
Each base monster has a rare variant with boosted stats and better loot, identifiable by its distinct name. These These rare variants spawn less frequently but drop better loot.
Monster scaling mode (linear or exponential) is server-configured. The further you go, the harder things get - but the loot improves to match.
CORRUPTMIND is a shared world. Other players share the same world and are visible on the minimap.
/need, /greed, and /pass
system (Need-before-Greed) rather than
auto-assignment.
In Command mode, any text that does not begin with / is
sent as local chat, visible only to players on your tile.
Chat is local to your current tile.
/me <message> - Send an emote (e.g.,
/me peers into the darkness).
/ without
triggering a command, prefix it with // (e.g., typing
//shrug sends /shrug as chat).
Sanity is a secondary resource that tracks your mental resilience as you face the horrors of the abyss.
Your maximum sanity is 80 + WIS modifier × 15, so
a wise mind holds out longer before breaking.
Your sanity is shown as a percentage bar in the sidebar. As it drops, your mind crosses four tiers:
max(1, monster level / 2).d6 + monster level), halved on a successful WIS save./meditate at certain landmarks restores 25% max sanity. Landmarks are marked in the world and have a per-location cooldown./mind (alias /sanity) shows your current sanity, threshold, and active boons/banes.As you delve deeper, you may acquire Boons (beneficial traits) and Banes (curses). These modify your combat, movement, and sanity.
When your HP reaches zero, your character dies permanently. There is no resurrection - you start over at level 1 with no equipment.
/leaderboard. The
leaderboard shows each player's highest-scoring death; your full
death history is available via /leaderboard me.
The leaderboard tracks both alive and dead players. Alive players' scores update in real time as they gain XP, kill monsters, explore further, or equip better gear. Each entry is marked with a status icon:
The leaderboard shows all alive players first (sorted by score),
then fills remaining slots with each player's highest-scoring death
(sorted by score), up to a total of 50 entries (configurable via
CM_LEADERBOARD_LIMIT). If there are 50 or more alive
players, no dead records are shown.
Distance is the furthest Manhattan distance you reached during that life, not merely where you died. SurvivalMinutes is the time since your current character was created (resets to 0 on death). Gear Score is the sum of your equipped items' gear scores. The same formula applies to both alive and dead entries.
/leaderboard top - Alive players first, then each
player's highest-scoring death (up to 50 total)
/leaderboard recent - Each player's highest-scoring
death (sorted by score)
/leaderboard me - Your full personal death history
Every recorded death has a public obituary page on the website. The register grades each death by how memorable it was: Unremembered, Remembered, Distinguished, or Immortal. The verdict line on your death screen tells you whether the register took note, and the style of your obituary reflects the grade. Records from before the register existed still have pages, holding only the plain numbers.
Death is permanent, but it is not wasted. Each death earns Echoes - an account-bound currency that persists across lives. Spend Echoes on permanent starting bonuses that apply to every future run.
When you die, you earn Echoes based on your death score. The formula
is max(1, floor(score / 500)), so even a short run earns
at least 1 Echo. Your Echoes balance is displayed on the death screen.
Use /echoes to open the shop overlay. Navigate the
unlock table with W/S (or j/k), and press Enter to purchase the
selected unlock directly. You can also use
/echoes buy <key> from the command line. Unlocks
are permanent and apply to all future runs:
| Unlock | Key | Cost | Max | Effect |
|---|---|---|---|---|
| Extra Starting HP | extra_hp |
15 | 3 | +5 MaxHP at run start |
| Bonus Stat Point | bonus_stat |
30 | 4 | +1 point during stat allocation |
| Starting Scrap | starting_scrap |
9 | 5 | +50 scrap at run start |
| Starting Boon Slot | starting_boon |
45 | 1 | Begin run with 1 random boon |
| Campfire Echo | campfire |
120 | 3 | +1 HP regen per tick per rank |
| Meditative Insight | meditative |
100 | 2 | +5% sanity restored on meditate per rank |
| Lucky Find | lucky_find |
130 | 3 | +2% loot drop chance per rank |
| Echo Resonance | echo_resonance |
200 | 2 | +5% Echoes earned on death per rank |
| Forged in Death | forged_death |
140 | 2 | Start run with a random item (common r1, uncommon r2) |
| Second Boon | second_boon |
220 | 1 | Begin run with 2 random boons instead of 1 |
| Extended Breath | deep_breath |
110 | 2 | -2 min passive sanity regen interval per rank |
After class and stat allocation, if you have unspent Echoes you will
see a prompt reminding you to use /echoes.
Quests provide directed goals tied to existing gameplay: kill monsters, explore deeper, meditate at landmarks, and reach new levels. Quests are offered at landmarks in the world and must be accepted before progress counts.
/quest available to open an overlay showing quests offered at your current location. Navigate with W/S (or j/k) and press Enter to accept./quest accept <key> from the command line.CM_QUEST_MAX_ACTIVE).Quest stages reward Echoes (the meta-progression currency from the Echoes system), scrap, XP, and sometimes temporary boons. When a stage is completed, an overlay appears showing the quest name, the completed objective, and the rewards you received.
Quests are per-life: they are cleared on death and must be re-accepted each run. This gives each life a structured progression arc rather than a single repeating loop.
/quest: open overlay showing active quests with progress. Navigate with W/S (or j/k), press a to abandon./quest available: open overlay showing quests at your current landmark. Press Enter to accept./quest accept <key>: accept a quest (command line)./quest abandon <key>: abandon a quest (command line, no refund)./quest history: show completed quests this life.To exit the game and close your SSH session, press Ctrl+C.
Your character's state is fully persisted in the database. You can safely reconnect later and resume from where you left off - your position, stats, equipment, and even mid-combat state are preserved.