Combat
Every roll happens on the server. The client only sends “I want to attack this monster”; the server decides what happened.
Hit resolution
Section titled “Hit resolution”Attacks roll a d20:
d20 + attack bonus > target Guard → hitd20 + attack bonus ≤ target Guard → missNote it’s strictly greater. Rolling exactly the target’s Guard is a miss.
Attack bonus:
- Base =
floor(level / 2) - Player melee adds your STR modifier
- Monsters use their data value if they have one, otherwise the level default
Hit chance
Section titled “Hit chance”Columns are the target’s Guard, rows are your total attack bonus.
| Attack bonus | Guard 8 | Guard 9 | Guard 10 | Guard 11 | Guard 13 | Guard 15 |
|---|---|---|---|---|---|---|
| +0 | 60% | 55% | 50% | 45% | 35% | 25% |
| +1 | 65% | 60% | 55% | 50% | 40% | 30% |
| +2 | 70% | 65% | 60% | 55% | 45% | 35% |
| +3 | 75% | 70% | 65% | 60% | 50% | 40% |
| +4 | 80% | 75% | 70% | 65% | 55% | 45% |
| +5 | 85% | 80% | 75% | 70% | 60% | 50% |
| +6 | 90% | 85% | 80% | 75% | 65% | 55% |
| +7 | 95% | 90% | 85% | 80% | 70% | 60% |
| +8 | 100% | 95% | 90% | 85% | 75% | 65% |
| +9 | 100% | 100% | 95% | 90% | 80% | 70% |
| +10 | 100% | 100% | 100% | 95% | 85% | 75% |
Hitting each monster
Section titled “Hitting each monster”Look up your total attack bonus (half your level, plus your STR modifier):
| Monster | Guard | +0 | +2 | +4 | +6 | +8 |
|---|---|---|---|---|---|---|
| Kobold | 8 | 60% | 70% | 80% | 90% | 100% |
| Goblin | 9 | 55% | 65% | 75% | 85% | 95% |
| Stalker | 10 | 50% | 60% | 70% | 80% | 90% |
| Female Orc | 10 | 50% | 60% | 70% | 80% | 90% |
| Orc | 11 | 45% | 55% | 65% | 75% | 85% |
| Goblin Chief | 11 | 45% | 55% | 65% | 75% | 85% |
| Orc Warlord | 13 | 35% | 45% | 55% | 65% | 75% |
Monsters hitting you
Section titled “Monsters hitting you”The other direction, by your Guard (DEX base plus equipment):
| Monster | To-hit | Your Guard 10 | Your Guard 14 | Your Guard 18 | Your Guard 22 | Damage on hit |
|---|---|---|---|---|---|---|
| Kobold | +0 | 50% | 30% | 10% | 0% | 1d4 |
| Goblin | +1 | 55% | 35% | 15% | 0% | 1d4 |
| Stalker | +1 | 55% | 35% | 15% | 0% | 1d6 |
| Orc | +2 | 60% | 40% | 20% | 0% | 1d6 |
| Female Orc | +3 | 65% | 45% | 25% | 5% | 1d6 |
| Goblin Chief | +2 | 60% | 40% | 20% | 0% | 1d8 |
| Orc Warlord | +6 | 80% | 60% | 40% | 20% | 2d8 |
Stacking Guard pays off very directly — each +1 costs the attacker 5% hit chance. A full plate set (19 Guard total) makes you nearly unhittable by low-level monsters.
Damage
Section titled “Damage”Damage is only rolled on a hit. Dice notation is {count}d{sides}:
2d6 → roll two six-sided dice and sum (2–12)Player melee adds your STR modifier.
Weapon damage
Section titled “Weapon damage”| Weapon | Damage | Min | Avg | Max | Weight |
|---|---|---|---|---|---|
| Iron Sword | 1d8 | 1 | 4.5 | 8 | 3 kg |
| Worn Iron Sword | 1d6 | 1 | 3.5 | 6 | 3 kg |
| Spear | 1d6 | 1 | 3.5 | 6 | 4 kg |
| Dagger | 1d4 | 1 | 2.5 | 4 | 1 kg |
| Goblin Sword | 1d4 | 1 | 2.5 | 4 | 2 kg |
| Small Sword | 1d4 | 1 | 2.5 | 4 | 1.5 kg |
| Torch | 1d4 | 1 | 2.5 | 4 | 1 kg |
| Worn Torch | 1d4 | 1 | 2.5 | 4 | 1 kg |
The STR modifier applies to every hit, so it lifts low-damage weapons proportionally more: STR 18 (+4) with a Dagger (1d4, average 2.5) actually averages 6.5 — 2.6× the base.
The Guard scale
Section titled “The Guard scale”Guard is NetHack’s AC inverted — higher is better.
| Guard | Meaning |
|---|---|
| 0–7 | Barely defended |
| 8–9 | Light defence |
| 10 | Ordinary |
| 11–13 | Solid |
| 14+ | Heavy armor and up |
Against NetHack: Guard = 10 − AC.
Experience
Section titled “Experience”XP per kill
Section titled “XP per kill”XP = 1 + level² + max(Guard - 10, 0) × 2Guard above 10 earns a bonus — harder monsters pay more.
| Monster | Level | Guard | XP | Health | XP / health |
|---|---|---|---|---|---|
| Kobold | 1 | 8 | 2 | 5 | 0.40 |
| Goblin | 2 | 9 | 5 | 9 | 0.56 |
| Stalker | 3 | 10 | 10 | 14 | 0.71 |
| Female Orc | 4 | 10 | 17 | 18 | 0.94 |
| Orc | 4 | 11 | 19 | 18 | 1.06 |
| Goblin Chief | 5 | 11 | 28 | 23 | 1.22 |
| Orc Warlord | 10 | 13 | 107 | 120 | 0.89 |
XP / health is the efficiency column — higher means more XP per point of health you have to chew through. The Orc Warlord gives the most XP but takes 120 health to get there, so it isn’t the most efficient.
XP to level
Section titled “XP to level”XP(n) = 20 × 2^(n-2) (n ≥ 2)Every level costs exactly twice the last — a pure exponential with no easing.
| Level | Cumulative XP | This level costs | Orcs, roughly |
|---|---|---|---|
| 1 | 0 | — | — |
| 2 | 20 | 20 | 2 |
| 3 | 40 | 20 | 2 |
| 4 | 80 | 40 | 3 |
| 5 | 160 | 80 | 5 |
| 6 | 320 | 160 | 9 |
| 7 | 640 | 320 | 17 |
| 8 | 1,280 | 640 | 34 |
| 9 | 2,560 | 1,280 | 68 |
| 10 | 5,120 | 2,560 | 135 |
| 11 | 10,240 | 5,120 | 270 |
| 12 | 20,480 | 10,240 | 539 |
| 13 | 40,960 | 20,480 | 1,078 |
| 14 | 81,920 | 40,960 | 2,156 |
| 15 | 163,840 | 81,920 | 4,312 |
| 16 | 327,680 | 163,840 | 8,624 |
| 17 | 655,360 | 327,680 | 17,247 |
| 18 | 1,310,720 | 655,360 | 34,493 |
| 19 | 2,621,440 | 1,310,720 | 68,986 |
| 20 | 5,242,880 | 2,621,440 | 137,971 |
The last column converts to Orcs (level 4, Guard 11, 19 XP each). Past the first ten levels, grinding on the current monster roster gets very slow — the game’s content today lines up with roughly the first ten levels.
The death penalty
Section titled “The death penalty”Dying costs no equipment but does cost XP:
level band = XP(L+1) - XP(L)penalty = max(1, floor(band × 0.15))That’s 15% of your progress through the current level.
Losing a level
Section titled “Losing a level”If the deduction drops you below the level’s starting XP you lose a level. Two protections:
- At most one level per death.
- Level 1 never drops.
After a drop your XP is floored at 30% through the lower band, so you don’t end up stuck just short of relevelling over and over.
| Level | Level band | Lost on death | Orcs to recover |
|---|---|---|---|
| 2 | 20 | 3 | 1 |
| 3 | 40 | 6 | 1 |
| 4 | 80 | 12 | 1 |
| 5 | 160 | 24 | 2 |
| 6 | 320 | 48 | 3 |
| 7 | 640 | 96 | 6 |
| 8 | 1,280 | 192 | 11 |
| 9 | 2,560 | 384 | 21 |
| 10 | 5,120 | 768 | 41 |
| 11 | 10,240 | 1,536 | 81 |
| 12 | 20,480 | 3,072 | 162 |
| 13 | 40,960 | 6,144 | 324 |
Losing a level costs health too
Section titled “Losing a level costs health too”So that repeatedly levelling up and down can’t be farmed for health, the distribution of health lost on a level-down is identical to the health gained on a level-up:
roll the hit die, guarantee at least half, add the CON modifierThe long-run expectation is therefore zero — no statistical gain from cycling. Health also never drops below your level 1 value.
| Hit die | Classes | Expected gain / loss |
|---|---|---|
| d10 | Barbarian, Caveman, Knight, Valkyrie | 6.50 |
| d8 | Ranger, Samurai, Monk, Priest | 5.25 |
| d6 | Archaeologist, Healer, Rogue, Wizard | 4.00 |
| d4 | Tourist | 2.75 |
If you didn’t lose a level, you don’t lose health.
Respawning
Section titled “Respawning”Request a respawn and the server confirms your health is 0, refills it and
returns you to the origin (0, 0, 0). Satiation resets to 300 — the bottom of
the Well-Fed band — so you don’t respawn starving and immediately go Weak.
Monster AI
Section titled “Monster AI”Monster AI runs on the client, but attack resolution always goes to the server.
| State | Meaning |
|---|---|
idle | Waiting (30% chance to wander) |
walk | Moving |
run | Chasing a player (within chase range) |
attack | Attacking (within attack range) |
hit | Stagger from being hit (~800 ms) |
dead | Dead |
A dead monster is removed after 30 seconds. Per-monster chase ranges and attack intervals are in Monster index.