Hit points

From NetHackWiki
Jump to navigation Jump to search

Hit points, abbreviated to HP or hp, are a statistic in NetHack represent the life force of the hero and monsters alike.

Description

A hero or monster whose hit points reach zero will usually die, with the following exceptions:

  • Reaching 0 HP with an amulet of life saving put on will cause the amulet to activate, restoring the hero or monster wearing it to life and destroying the amulet.
  • A vampire that is shapeshifted into another form will arise in their base form if killed by any means.[1]
  • A hero that is polymorphed and has their HP reduced to 0 will return to base form, unless they are wearing an amulet of unchanging or have 0 HP in their base form as well.[2][3]
  • A player in wizard mode or explore mode can choose to have the hero survive when they would die from their HP reaching 0.

There are several forms of instant death that will kill a hero or monster regardless of their hit points at the time, and some such as stoning and intelligence drain can also kill even a polymorphed hero.

Both the hero and monsters will slowly recover or "regenerate" their hit points with the passage of time if they are below their maximum—this is different from the regeneration property, which accelerates this natural recovery and is an intrinsic that certain monsters have.

A user has suggested improving this page or section as follows:

"Consider moving information about HP impacting the hero's abilities and monster behavior here."

The hero's HP

A hero's starting HP at the beginning of a game is the sum of their role and race's base HP statistics.[4][5]

The amount of HP that a hero gains whenever they gain an experience level is determined by their race, role and current constitution, including the "cutoff" level associated with that role:[6][7] if the hero's experience level is less than their role "cutoff" level prior to gaining a level, the amount of HP gained is randomized based on the roll of a die, with Barbarians using a d10, Rangers using a d6, and all other roles using a d8, and otherwise the hero will gain a set amount of HP based on their role[8][9]—a bonus or penalty based on constitution is applied in either case. The hero will always gain at least one hit point per level, even when they are already at the maximum experience level of 30.[10]

The HP gains from race, role and constitution when gaining an experience level are detailed in the tables below:

Role[11] Cutoff Pre-cutoff Post-cutoff Starting
Arc 14 d8 1 11
Bar 10 d10 2 14
Cav 10 d8 2 14
Hea 20 d8 1 11
Kni 10 d8 2 14
Mon 10 d8 1 12
Pri 10 d8 1 12
Rog 11 d8 1 10
Ran 12 d6 1 13
Sam 11 d8 1 13
Tou 14 d8 0 8
Val 10 d8 2 14
Wiz 12 d8 1 10
Race[12] Pre-cutoff Post-cutoff Starting
Human d2 1 2
Elf d1 1 1
Dwarf d3 2 4
Gnome d1 0 1
Orc d1 0 1
Con Modifier[13]
≤ 3 -2
≤ 6 -1
≤ 14 0
≤ 16 +1
17 +2
18 +3
≥ 19 +4

Hit point recovery

The hero's natural HP-healing rate functions as follows:[14][15] a hero below experience level 10 will recover one hit point every (42 / (XL + 2)) + 1 turns, while a hero at XL 10 or above will recover HP every third turn; if their constitution is 12 or lower they will recover one hit point, and otherwise will regain an amount of HP equal to a roll on a constitution-sized die (or d[Con]), up to a maximum of (XL - 9). A hero whose encumbrance level is Stressed or worse will only recover hit points on turns when they are not moving. A hero with the regeneration property will gain one hit point on any turn where they did not recover HP as above.

A hero that is polymorphed, and is also not in the form of a sea monster while outside of water, will recover one hit point every 20 turns.[16][17] A hero that is in the form of a sea monster and not within water instead gradually loses HP, with the HP loss rate slowing down as the hero's HP becomes lower.[18]

Natural regeneration for the hero is described in the chart below:

Level Turns HP
1 15 1
2 11 1
3 9 1
4 8 1
5 7 1
6 6 1
7 5 1
8 5 1
9 4 1
10+ 3 1 or d(Con)

The following information pertains to an upcoming version (NetHack 3.7.0). If this version is now released, please verify that the information below is still accurate, then update the page to incorporate it.

As of commit f3408b87, the HP recovery formula is now simply a (xlevel + Con)% chance of recovering 1 HP each turn. Also, the regeneration property heals 1 HP unconditionally on all turns, rather than any turn where a hero did not recover HP, so the two sources stack together.

Monster hit points

A monster's HP is determined by the monster level they are generated at, then subjected to any applicable modifications:[19][20] by default, monsters are generated with 1d4 hit points if they are created at level 0, and otherwise generate with an mount of HP equal to ML(d8).[21]

Elementals

An elemental's hit points are calculated normally, except that on its home elemental plane they are tripled.[22]

Golems

Golems' hit points are fixed and determined by type:[23][24]

Hit points Golems
20 paper golem, straw golem
30 rope golem
40 flesh golem, gold golem, leather golem
50 clay golem, wood golem
60 glass golem, stone golem
80 iron golem

Riders

Riders are a very special case; from the source code[25]:

We want low HP, but a high mlevel so they can attack well

Their hp is 10d8

Adult dragons

An adult dragon's hp depends on whether or not the player is in the endgame.[26]

Not in endgame
hp = (monster level)d4 + 4 * (monster level)
In endgame
hp = 8 * (monster level)

Player monsters

A player monster normally has (monsterlevel)d10 + 30 HP. If generated in the endgame (in practice, the Astral Plane in vanilla NetHack), it gets an extra d30 HP.[27]

Guardian angel

The hero's guardian angel on the Astral Plane uses the same hit point formula as the player monsters on that level:[28]

hp = (monster level)d10 + d30 + 30

Special

Some other monsters have fixed hit points. Any monster with a defined level of 50-127 calculates its hp by:[29]

hp = 2 * ((monster level) - 6)

Their actual level is then approximated by:

level = hp / 4

Those monsters are the named demons and the mail daemon. The complete table for vanilla NetHack is as follows:

Monster Hit points Level
& Juiblex 88 22
& Yeenoghu 100 25
& mail daemon 100 25
& Orcus 120 30
& Geryon 132 33
& Dispater 144 36
& Baalzebub 166 41
& Asmodeus 198 49
& Demogorgon 200 50

Raising monster maximum hit points

Main article: Monster level

Monsters (including pets) gain levels by raising their hit points. Thus advancing levels and increasing hit points are one and the same goal for them.

A monster's HP is determined by the monster level they are generated at. In lieu of gaining experience their HP is incremented by a minimum of 1 each time they kill another monster, with their level increasing so that their HP is always at least 8 times that level—the maximum level a monster can reach this way is 32 times their base monster level. A monster that quaffs a non-cursed potion of gain level will increase their monster level, with their HP being increased accordingly, and their HP is also lowered when subjected to level drain—a monster drained below level 0 will die regardless of HP.

Gaining and restoring hit points

Besides those listed above, there are several methods for a hero or monster to increase their current and maximum hit points:

  • Quaffing healing potions increase the drinker's maximum hit points if doing so would heal them for more than the difference between their current and maximum HP (including when at full HP):
  • A successful prayer while the hero's maximum HP is no more than 5 * (2+XL), their god will increase their maximum HP by a random amount and fully heal them.
  • Successfully praying to the hero's god at a co-aligned altar may grant a favor that surrounds them with a "golden glow", fully healing them if possible and increasing maximum HP by 5 similar to a blessed potion of full healing—the effect can also restore a lost experience level.
  • A nurse that is healing the hero (i.e. hitting them while they are not wielding a weapon and wearing no armor) has a 17 chance of increasing their maximum HP by 1, provided that this maximum is less than a roll of 5 * XL + (2 + XL)d10.

Strategy

Characters should always have an escape plan or emergency healing method for situations where their health is low, regardless of their strength level, and should be able to judge when it is safe to heal by waiting and when it is preferable to use a spell or item, especially characters with pets. Some weak starting characters might deliberately lower their HP in order to pray for an increase to max HP on turn 101.

Nurse dancing is a commonplace strategy that uses one or more nurses (typically from reverse genocide) in order to massively increase HP.

Messages

You hear the howling of the CwnAnnwn...
You have less than 110 of your total HP left.
Valkyrie/Wizard/Elf, your life force is running out.
As above, while you are a Valkyrie, Wizard or elven character, and have fewer than four intrinsics. This and other similar messages are references to the Gauntlet franchise of video games.
Valkyrie/Wizard/Elf, all of your powers will be lost...
As above, but you have at least four intrinsics.
You hear the wailing of the Banshee...
You have only 1 hit point left.
Valkyrie/Wizard/Elf is about to die.
As above while you are a Valkyrie, Wizard or elven character.
Once you have seen one of the above messages, you will not see another for 50 turns.[30]
You don't have enough stamina to move.
Your encumbrance is stressed or higher while you are under your hit point maximum and have less than 5 hit points if polymorphed, or less than 10 otherwise. This does not occur if you are on the Plane of Air, nor if you are overloaded.[31]

Variants

FIQHack

Main article: FIQHack/New HP growth

In FIQHack, the HP regeneration rate has been modified as follows:

  • +1hp/turn for regen
  • +0.33hp/turn for healers
  • +0.03*level hp/turn
  • +0.03*(constitution - 5) hp/turn
  • min cap is +0.01 hp/turn

In addition, hunger from the ring of regeneration only applies when you are not at maximum HP. See the linked article at the top of the section for more information.

External links

References

  1. Jump up src/mon.c in NetHack 3.6.7, line 2190: if (!vamp_stone(mdef)) is used to exclude shifted vampires from instant death by stoning
  2. Jump up src/polyself.c in NetHack 3.6.7, line 1070
  3. Jump up src/polyself.c in NetHack 3.6.7, line 1086
  4. Jump up src/allmain.c in NetHack 3.6.7, line 608
  5. Jump up src/u_init.c in NetHack 3.6.7, line 635
  6. Jump up src/attrib.c in NetHack 3.6.7, line 981
  7. Jump up include/you.h in NetHack 3.6.7, line 23
  8. Jump up src/exper.c in NetHack 3.6.7, line 292: newhp() is called before your level is incremented
  9. Jump up src/attrib.c in NetHack 3.6.7, line 999: Both lofix are always 0; both hirnd are always 0
  10. Jump up src/attrib.c in NetHack 3.6.7, line 1028
  11. Jump up role.c in NetHack 3.4.3, line 27
  12. Jump up role.c in NetHack 3.4.3, line 406
  13. Jump up attrib.c in NetHack 3.4.3, line 649
  14. Jump up src/allmain.c in NetHack 3.6.7, line 204: Normal HP recovery
  15. Jump up src/allmain.c in NetHack 3.6.7, line 458
  16. Jump up src/allmain.c in NetHack 3.6.7, line 465
  17. Jump up src/allmain.c in NetHack 3.6.7, line 475
  18. Jump up src/allmain.c in NetHack 3.6.7, line 468
  19. Jump up src/makemon.c in NetHack 3.6.7, line 983
  20. Jump up src/makemon.c in NetHack 3.6.7, line 1212
  21. Jump up src/makemon.c in NetHack 3.6.7, line 1008-L1013
  22. Jump up makemon.c in NetHack 3.4.3, line 938
  23. Jump up makemon.c in NetHack 3.4.3, line 918
  24. Jump up makemon.c in NetHack 3.4.3, line 1534
  25. Jump up makemon.c in NetHack 3.4.3, line 920
  26. Jump up makemon.c in NetHack 3.4.3, line 930
  27. Jump up src/mplayer.c in NetHack 3.6.7, line 143
  28. Jump up do.c in NetHack 3.4.3, line 1406
  29. Jump up makemon.c in NetHack 3.4.3, line 923
  30. Jump up hack.c in NetHack 3.4.3, line 2102
  31. Jump up hack.c in NetHack 3.4.3, line 884

This page may need to be updated for the current version of NetHack.

It may contain text specific to NetHack 3.4.3. Information on this page may be out of date.

Editors: After reviewing this page and making necessary edits, please change the {{nethack-343}} tag to the current version's tag or {{noversion}} as appropriate.