diff --git a/doc/Guidebook.txt b/doc/Guidebook.txt index 1a362eb63..13e160360 100644 --- a/doc/Guidebook.txt +++ b/doc/Guidebook.txt @@ -5038,6 +5038,15 @@ it when not allowed or not possible results in explore mode instead. Default is normal play. + price_quotes + Whenever the game mentions the name of an object you haven't identi- + fied yet, it also mentions the range of buy and sell prices you have + seen for that item (to help narrow down what it could be). The + price shown is the unit price for one item (even when you are look- + ing at a stack of multiple items). Many players may want to turn + this on while identifying objects, and then turn it back off again + for general play. Default is off. + pushweapon Using the `w' (wield) command when already wielding something pushes the old item into your alternate weapon slot (default off). Like- @@ -5065,15 +5074,6 @@ prompted unless role forces a choice for race. Cannot be set with the `O' command. Persistent. - reroll - Allows rerolling your character's starting inventory and attributes - (default false). Persistent. - - Note that rerolling your character is not a recommended way to play - if aiming merely to win (a lucky start has a much smaller influence - on whether or not you win the game than your actions later in the - game). This option exists partly as an acknowledgement that some - players will insist on doing so anyway, and partly because rerolling NetHack 3.7.0 February 11, 2026 @@ -5086,6 +5086,15 @@ + reroll + Allows rerolling your character's starting inventory and attributes + (default false). Persistent. + + Note that rerolling your character is not a recommended way to play + if aiming merely to win (a lucky start has a much smaller influence + on whether or not you win the game than your actions later in the + game). This option exists partly as an acknowledgement that some + players will insist on doing so anyway, and partly because rerolling may be necessary for certain types of challenge games. rest_on_space @@ -5131,15 +5140,6 @@ teleport - update the map after movement has finished; run - update the map after every seven or so steps; - walk - update the map after each step; - crawl - like walk, but pause briefly after each step. - - This option only affects the game's screen display, not the actual - results of moving. The default is "run"; versions prior to 3.4.1 - used "teleport" only. Whether or not the effect is noticeable will - depend upon the window port used or on the type of terminal. Per- - sistent. - NetHack 3.7.0 February 11, 2026 @@ -5152,6 +5152,15 @@ + walk - update the map after each step; + crawl - like walk, but pause briefly after each step. + + This option only affects the game's screen display, not the actual + results of moving. The default is "run"; versions prior to 3.4.1 + used "teleport" only. Whether or not the effect is noticeable will + depend upon the window port used or on the type of terminal. Per- + sistent. + safe_pet Prevent you from (knowingly) attacking your pets (default on). Per- sistent. @@ -5198,15 +5207,6 @@ interface or your terminal emulator window displays fewer than 25 lines. Persistent. - silent - Suppress terminal beeps (default on). Persistent. - - sortdiscoveries - Controls the sorting behavior for the output of the `\' and ``' com- - mands. Persistent. - - - NetHack 3.7.0 February 11, 2026 @@ -5218,6 +5218,13 @@ + silent + Suppress terminal beeps (default on). Persistent. + + sortdiscoveries + Controls the sorting behavior for the output of the `\' and ``' com- + mands. Persistent. + The possible values are: o - list object types by class, in discovery order within each @@ -5265,13 +5272,6 @@ index; z - order by count, low to high; ties broken by internal index. - Can be interactively set via the `m O' command or via using the `m' - prefix before either the #vanquished command or the #genocided com- - mand. - - sounds - Allow sounds to be emitted from an integrated sound library (default - on). NetHack 3.7.0 February 11, 2026 @@ -5284,6 +5284,14 @@ + Can be interactively set via the `m O' command or via using the `m' + prefix before either the #vanquished command or the #genocided com- + mand. + + sounds + Allow sounds to be emitted from an integrated sound library (default + on). + sparkle Display a sparkly effect when a monster (including yourself) is hit by an attack to which it is resistant (default on). Persistent. @@ -5330,14 +5338,6 @@ tombstone Draw a tombstone graphic upon your death (default on). Persistent. - toptenwin - Put the ending display in a NetHack window instead of on stdout - (default off). Setting this option makes the score list visible - when a windowing version of NetHack is started without a parent win- - dow, but it no longer leaves the score list around after game end on - a terminal or emulating window. - - NetHack 3.7.0 February 11, 2026 @@ -5350,6 +5350,13 @@ + toptenwin + Put the ending display in a NetHack window instead of on stdout + (default off). Setting this option makes the score list visible + when a windowing version of NetHack is started without a parent win- + dow, but it no longer leaves the score list around after game end on + a terminal or emulating window. + travel Allow the travel command via mouse click (default on). Turning this option off will prevent the game from attempting unintended moves if @@ -5396,14 +5403,7 @@ Filtering can also be changed when getting a location with the "get- pos.filter" key. - whatis_menu - When getting a location on the map, and using a key to cycle through - next and previous targets, use a menu instead to pick a target. - (default off) - whatis_moveskip - When getting a location on the map, and using shifted movement keys - or meta-digit keys to fast-move, instead of moving 8 units at a NetHack 3.7.0 February 11, 2026 @@ -5416,6 +5416,14 @@ + whatis_menu + When getting a location on the map, and using a key to cycle through + next and previous targets, use a menu instead to pick a target. + (default off) + + whatis_moveskip + When getting a location on the map, and using shifted movement keys + or meta-digit keys to fast-move, instead of moving 8 units at a time, move by skipping the same glyphs. (default off) windowtype @@ -5462,14 +5470,6 @@ Where to align or place the status window (top, bottom, left, or right). - ascii_map - If NetHack can, it should display the map using simple characters - (letters and punctuation) rather than tiles graphics. In some - cases, characters can be augmented with line-drawing symbols; use - the symset option to select a symbol set such as DECgraphics or - IBMgraphics if your display supports them. Setting ascii_map to - True forces tiled_map to be False. - NetHack 3.7.0 February 11, 2026 @@ -5482,6 +5482,14 @@ + ascii_map + If NetHack can, it should display the map using simple characters + (letters and punctuation) rather than tiles graphics. In some + cases, characters can be augmented with line-drawing symbols; use + the symset option to select a symbol set such as DECgraphics or + IBMgraphics if your display supports them. Setting ascii_map to + True forces tiled_map to be False. + color If NetHack can, it should display color if it can for different mon- sters, objects, and dungeon features (default on). @@ -5528,14 +5536,6 @@ fullscreen If NetHack can, it should try to display on the entire screen rather - than in a window. - - guicolor - Use color text and/or highlighting attributes when displaying some - non-map data (such as menu selector letters). Curses interface - only; default is on. - - NetHack 3.7.0 February 11, 2026 @@ -5548,6 +5548,13 @@ + than in a window. + + guicolor + Use color text and/or highlighting attributes when displaying some + non-map data (such as menu selector letters). Curses interface + only; default is on. + large_font If NetHack can, it should use a large font. @@ -5595,13 +5602,6 @@ When set to 3, the tty interface moves some fields around and mainly shows status conditions on their own line. A display capable of - showing at least 25 lines is recommended. The value can be toggled - back and forth during the game with the `O' command. - - The curses interface does likewise if the align_status option is set - to top or bottom but ignores statuslines when set to left or right. - - NetHack 3.7.0 February 11, 2026 @@ -5614,6 +5614,12 @@ + showing at least 25 lines is recommended. The value can be toggled + back and forth during the game with the `O' command. + + The curses interface does likewise if the align_status option is set + to top or bottom but ignores statuslines when set to left or right. + The Qt interface already displays more than 3 lines for status so uses the statuslines value differently. A value of 3 renders status in the Qt interface's original format, with the status window spread @@ -5663,12 +5669,6 @@ If NetHack can, it should display this number of messages at a time in the message window. - windowborders - Whether to draw boxes around the map, status area, message area, and - persistent inventory window if enabled. Curses interface only. - Acceptable values are - - NetHack 3.7.0 February 11, 2026 @@ -5680,6 +5680,11 @@ + windowborders + Whether to draw boxes around the map, status area, message area, and + persistent inventory window if enabled. Curses interface only. + Acceptable values are + 0 - off, never show borders 1 - on, always show borders 2 - auto, on if display is at least (24+2)x(80+2) [default] @@ -5728,12 +5733,7 @@ OPTION=crash_email:email_address - OPTION=crash_name:your_name - These options are used only to save you some typing on the - crash report and #bugreport forms. - OPTION=crash_urlmax:bytes - This option is used to limit the length of the URLs generated NetHack 3.7.0 February 11, 2026 @@ -5746,6 +5746,12 @@ + OPTION=crash_name:your_name + These options are used only to save you some typing on the + crash report and #bugreport forms. + + OPTION=crash_urlmax:bytes + This option is used to limit the length of the URLs generated and is only needed if your browser cannot handle arbitrarily long URLs. @@ -5794,12 +5800,6 @@ video Set the video mode used (PC NetHack only). Values are "autodetect", - "default", "vga", or "vesa". Setting "vesa" will cause the game to - display tiles, using the full capability of the VGA hardware. Set- - ting "vga" will cause the game to display tiles, fixed at 640x480 in - 16 colors, a mode that is compatible with all VGA hardware. Third - party tilesets will probably not work. Setting "autodetect" - attempts "vesa", then "vga", and finally sets "default" if neither NetHack 3.7.0 February 11, 2026 @@ -5812,6 +5812,12 @@ + "default", "vga", or "vesa". Setting "vesa" will cause the game to + display tiles, using the full capability of the VGA hardware. Set- + ting "vga" will cause the game to display tiles, fixed at 640x480 in + 16 colors, a mode that is compatible with all VGA hardware. Third + party tilesets will probably not work. Setting "autodetect" + attempts "vesa", then "vga", and finally sets "default" if neither of those modes works. Cannot be set with the `O' command. video_height @@ -5861,12 +5867,6 @@ In addition, some characters are treated specially if they occur as the first character in the pattern, specifically: - < - always pickup an object that matches rest of pattern; - > - never pickup an object that matches rest of pattern. - - The autopickup_exception rules are processed in the order in which - they appear in your configuration file, thus allowing a later rule - NetHack 3.7.0 February 11, 2026 @@ -5878,6 +5878,11 @@ + < - always pickup an object that matches rest of pattern; + > - never pickup an object that matches rest of pattern. + + The autopickup_exception rules are processed in the order in which + they appear in your configuration file, thus allowing a later rule to override an earlier rule. Exceptions can be set with the `O' command, but because they are not @@ -5926,11 +5931,6 @@ You can bind "mouse1" or "mouse2" to "nothing", "therecmdmenu", "clicklook", or "mouseaction". - Special command keys - Below are the special commands you can rebind. Some of them can be - bound to same keys with no problems, others are in the same "con- - text", and if bound to same keys, only one of those commands will be - available. Special command can only be bound to a single key. @@ -5944,6 +5944,12 @@ + Special command keys + Below are the special commands you can rebind. Some of them can be + bound to same keys with no problems, others are in the same "con- + text", and if bound to same keys, only one of those commands will be + available. Special command can only be bound to a single key. + count Prefix key to start a count, to repeat a command this many times. With number_pad only. Default is `n'. @@ -5991,13 +5997,7 @@ getpos.help When asked for a location, the key to show help. Default is `?'. - getpos.mon.next - When asked for a location, the key to go to next closest monster. - Default is `m'. - getpos.mon.prev - When asked for a location, the key to go to previous closest mon- - ster. Default is `M'. NetHack 3.7.0 February 11, 2026 @@ -6010,6 +6010,14 @@ + getpos.mon.next + When asked for a location, the key to go to next closest monster. + Default is `m'. + + getpos.mon.prev + When asked for a location, the key to go to previous closest mon- + ster. Default is `M'. + getpos.obj.next When asked for a location, the key to go to next closest object. Default is `o'. @@ -6055,14 +6063,6 @@ When asked for a location, the key to choose the location, and show more info without asking. Default is `:'. - getpos.self - When asked for a location, the key to go to your location. Default - is `@'. - - getpos.unexplored.next - When asked for a location, the key to go to next closest unexplored - location. Default is `x'. - @@ -6076,6 +6076,14 @@ + getpos.self + When asked for a location, the key to go to your location. Default + is `@'. + + getpos.unexplored.next + When asked for a location, the key to go to next closest unexplored + location. Default is `x'. + getpos.unexplored.prev When asked for a location, the key to go to previous closest unex- plored location. Default is `X'. @@ -6123,14 +6131,6 @@ user is prompted with more-prompt, and a message matching "You dis- placed ." is not shown at all. - The order of the defined MSGTYPE lines is important; the last match- - ing rule is used. Put the general case first, exceptions below them. - - 9.12. Configuring Menu Colors - - Some platforms allow you to define colors used in menu lines when - the line matches a user-defined pattern. At this time the tty, - NetHack 3.7.0 February 11, 2026 @@ -6142,6 +6142,13 @@ + The order of the defined MSGTYPE lines is important; the last match- + ing rule is used. Put the general case first, exceptions below them. + + 9.12. Configuring Menu Colors + + Some platforms allow you to define colors used in menu lines when + the line matches a user-defined pattern. At this time the tty, curses, win32tty and win32gui interfaces support this. In general, the configuration file entries to describe the menu @@ -6186,15 +6193,8 @@ implicit_uncursed option off so that all items known to be uncursed are actually displayed with the "uncursed" description. - 9.13. Configuring User Sounds - Some platforms allow you to define sound files to be played when - a message that matches a user-defined pattern is delivered to the mes- - sage window. At this time the Qt port and the win32tty and win32gui - ports support the use of user sounds. - The following configuration file entries are relevant to mapping - user sounds to messages: @@ -6208,6 +6208,16 @@ + 9.13. Configuring User Sounds + + Some platforms allow you to define sound files to be played when + a message that matches a user-defined pattern is delivered to the mes- + sage window. At this time the Qt port and the win32tty and win32gui + ports support the use of user sounds. + + The following configuration file entries are relevant to mapping + user sounds to messages: + SOUNDDIR The directory that houses the sound files to be played. @@ -6252,16 +6262,6 @@ OPTION=hilite_status:hitpoints/<=30%/red/normal (That example is actually specifying red&normal for <=30% and no- - color&normal for >30%.) - - For another example, the following line in your configuration - file will cause wisdom to be displayed red if it drops and green if it - rises: - - OPTION=hilite_status:wisdom/down/red/up/green - - Allowed colors are black, red, green, brown, blue, magenta, cyan, - gray, orange, light-green, yellow, light-blue, light-magenta, light- NetHack 3.7.0 February 11, 2026 @@ -6274,6 +6274,16 @@ + color&normal for >30%.) + + For another example, the following line in your configuration + file will cause wisdom to be displayed red if it drops and green if it + rises: + + OPTION=hilite_status:wisdom/down/red/up/green + + Allowed colors are black, red, green, brown, blue, magenta, cyan, + gray, orange, light-green, yellow, light-blue, light-magenta, light- cyan, and white. And "no-color", the default foreground color on the display, which is not necessarily the same as black or white or any of the other colors. @@ -6319,16 +6329,6 @@ hallu, "movement" for lev, fly, and ride, and "all" for every condi- tion. - Allowed behaviors are "always", "up", "down", "changed", a percent- - age or absolute number threshold, or text to match against. For the - hitpoints field, the additional behavior "criticalhp" is available. - It overrides other behavior rules if hit points are at or below the - major problem threshold (which varies depending upon maximum hit - points and experience level). - - * "always" will set the default attributes for that field. - - NetHack 3.7.0 February 11, 2026 @@ -6340,6 +6340,15 @@ + Allowed behaviors are "always", "up", "down", "changed", a percent- + age or absolute number threshold, or text to match against. For the + hitpoints field, the additional behavior "criticalhp" is available. + It overrides other behavior rules if hit points are at or below the + major problem threshold (which varies depending upon maximum hit + points and experience level). + + * "always" will set the default attributes for that field. + * "up", "down" set the field attributes for when the field value changes upwards or downwards. This attribute times out after statushilites turns. @@ -6384,15 +6393,6 @@ met, a criticalhp rule takes precedence over all other hit- points rules. - * text match sets the attribute when the field value matches the - text. Text matches can only be used for "alignment", "carry- - ing-capacity", "hunger", "dungeon-level", and "title". For - title, only the role's rank title is tested; the character's - name is ignored. - - The in-game options menu can help you determine the correct syn- - tax for a configuration file. - @@ -6406,6 +6406,15 @@ + * text match sets the attribute when the field value matches the + text. Text matches can only be used for "alignment", "carry- + ing-capacity", "hunger", "dungeon-level", and "title". For + title, only the role's rank title is tested; the character's + name is ignored. + + The in-game options menu can help you determine the correct syn- + tax for a configuration file. + The whole feature can be disabled by setting option statushilites to 0. @@ -6450,15 +6459,6 @@ NetHack Symbols Symbol Name Description ----------------------------------------------------------------- - S_air (air) - _ S_altar (altar) - " S_amulet (amulet) - A S_angel (angelic being) - a S_ant (ant or other insect) - ^ S_anti_magic_trap (anti-magic field) - [ S_armor (suit or piece of armor) - [ S_armour (suit or piece of armor) - ^ S_arrow_trap (arrow trap) @@ -6472,6 +6472,15 @@ + S_air (air) + _ S_altar (altar) + " S_amulet (amulet) + A S_angel (angelic being) + a S_ant (ant or other insect) + ^ S_anti_magic_trap (anti-magic field) + [ S_armor (suit or piece of armor) + [ S_armour (suit or piece of armor) + ^ S_arrow_trap (arrow trap) 0 S_ball (iron ball) # S_bars (iron bars) B S_bat (bat or bird) @@ -6516,15 +6525,6 @@ - S_expl_bc (explosion bottom center) / S_expl_br (explosion bottom right) e S_eye (eye or sphere) - ^ S_falling_rock_trap (falling rock trap) - f S_feline (cat or other feline) - ^ S_fire_trap (fire trap) - ! S_flashbeam (flash beam) - % S_food (piece of food) - { S_fountain (fountain) - F S_fungus (fungus or mold) - * S_gem (gem or rock) - S_ghost (ghost) @@ -6538,6 +6538,15 @@ + ^ S_falling_rock_trap (falling rock trap) + f S_feline (cat or other feline) + ^ S_fire_trap (fire trap) + ! S_flashbeam (flash beam) + % S_food (piece of food) + { S_fountain (fountain) + F S_fungus (fungus or mold) + * S_gem (gem or rock) + S_ghost (ghost) H S_giant (giant humanoid) G S_gnome (gnome) ' S_golem (golem) @@ -6582,15 +6591,6 @@ p S_piercer (piercer) ^ S_pit (pit) # S_poisoncloud (poison cloud) - ^ S_polymorph_trap (polymorph trap) - } S_pool (water) - ! S_potion (potion) - P S_pudding (pudding or ooze) - q S_quadruped (quadruped) - Q S_quantmech (quantum mechanic) - = S_ring (ring) - ` S_rock (boulder or statue) - r S_rodent (rodent) @@ -6604,6 +6604,15 @@ + ^ S_polymorph_trap (polymorph trap) + } S_pool (water) + ! S_potion (potion) + P S_pudding (pudding or ooze) + q S_quadruped (quadruped) + Q S_quantmech (quantum mechanic) + = S_ring (ring) + ` S_rock (boulder or statue) + r S_rodent (rodent) ^ S_rolling_boulder_trap (rolling boulder trap) . S_room (floor of a room) / S_rslant (diagonal beam [zap animation]) @@ -6648,15 +6657,6 @@ S_unexplored (unexplored terrain) u S_unicorn (unicorn or horse) < S_upladder (ladder up) - < S_upstair (staircase up) - V S_vampire (vampire) - | S_vbeam (vertical beam [zap animation]) - # S_vcdbridge (vertical raised drawbridge) - + S_vcdoor (closed door in vertical wall) - . S_venom (splash of venom) - ^ S_vibrating_square (vibrating square) - . S_vodbridge (vertical lowered drawbridge) - - S_vodoor (open door in vertical wall) @@ -6670,6 +6670,15 @@ + < S_upstair (staircase up) + V S_vampire (vampire) + | S_vbeam (vertical beam [zap animation]) + # S_vcdbridge (vertical raised drawbridge) + + S_vcdoor (closed door in vertical wall) + . S_venom (splash of venom) + ^ S_vibrating_square (vibrating square) + . S_vodbridge (vertical lowered drawbridge) + - S_vodoor (open door in vertical wall) v S_vortex (vortex) | S_vwall (vertical wall) / S_wand (wand) @@ -6715,15 +6724,6 @@ The window port that is active needs to provide support for dis- playing UTF-8 character sequences and explicit red-green-blue colors - in order for the glyph representation to be visible. For example, the - following line in your configuration file will cause the glyph repre- - sentation for glyphid G_pool to use Unicode codepoint U+224B and the - color represented by R-G-B value 0-0-160: - - OPTIONS=glyph:G_pool/U+224B/0-0-160 - - The list of acceptable glyphid's can be produced by nethack --dumpg- - lyphids. Individual NetHack glyphs can be specified using the G_ pre- NetHack 3.7.0 February 11, 2026 @@ -6736,6 +6736,15 @@ + in order for the glyph representation to be visible. For example, the + following line in your configuration file will cause the glyph repre- + sentation for glyphid G_pool to use Unicode codepoint U+224B and the + color represented by R-G-B value 0-0-160: + + OPTIONS=glyph:G_pool/U+224B/0-0-160 + + The list of acceptable glyphid's can be produced by nethack --dumpg- + lyphids. Individual NetHack glyphs can be specified using the G_ pre- fix, or you can use an S_ symbol for a glyphid and store the custom representation for all NetHack glyphs that would map to that particu- lar symbol. @@ -6780,16 +6789,7 @@ menustyle:traditional This will assist in the interface to speech synthesizers. - nomenu_overlay - Show menus on a cleared screen and aligned to the left edge. - number_pad - A lot of speech access programs use the number-pad to review the - screen. If this is the case, disable the number_pad option and use - the traditional Rogue-like commands. - - paranoid_confirmation:swim - Prevent walking into water or lava. NetHack 3.7.0 February 11, 2026 @@ -6802,6 +6802,17 @@ + nomenu_overlay + Show menus on a cleared screen and aligned to the left edge. + + number_pad + A lot of speech access programs use the number-pad to review the + screen. If this is the case, disable the number_pad option and use + the traditional Rogue-like commands. + + paranoid_confirmation:swim + Prevent walking into water or lava. + accessiblemsg Adds direction or location information to messages. @@ -6843,6 +6854,20 @@ showdamage Give a message of damage taken and how many hit points are left. + + + + + NetHack 3.7.0 February 11, 2026 + + + + + + NetHack Guidebook 105 + + + 9.18. Global Configuration for System Administrators If NetHack is compiled with the SYSCF option, a system adminis- @@ -6856,18 +6881,6 @@ WIZARDS = A space-separated list of user names who are allowed to play in debug mode (commonly referred to as wizard mode). A value of a single asterisk (*) allows anyone to start a game in debug - - - NetHack 3.7.0 February 11, 2026 - - - - - - NetHack Guidebook 105 - - - mode. SHELLERS = A list of users who are allowed to use the shell escape @@ -6909,6 +6922,18 @@ POINTSMIN = Minimum number of points to get an entry in the score file. + + + NetHack 3.7.0 February 11, 2026 + + + + + + NetHack Guidebook 106 + + + PERS_IS_UID = 0 or 1 to use user names or numeric userids, respec- tively, to identify unique people for the score file. @@ -6922,18 +6947,6 @@ ity for players to set S_pet_override and S_hero_override symbols in their configuration file. - - - NetHack 3.7.0 February 11, 2026 - - - - - - NetHack Guidebook 106 - - - PORTABLE_DEVICE_PATHS = 0 or 1 Windows OS only, the game will look for all of its external files, and write to all of its output files in one place rather than at the standard locations. @@ -6975,6 +6988,18 @@ NetHack maintains a list of the top scores or scorers on your machine, depending on how it is set up. In the latter case, each + + + NetHack 3.7.0 February 11, 2026 + + + + + + NetHack Guidebook 107 + + + account on the machine can post only one non-winning score on this list. If you score higher than someone else on this list, or better your previous score, you will be inserted in the proper place under @@ -6988,18 +7013,6 @@ only hear about 90% of your gold when your corpse is discovered (adventurers have been known to collect finder's fees). So, consider whether you want to take one last hit at that monster and possibly - - - NetHack 3.7.0 February 11, 2026 - - - - - - NetHack Guidebook 107 - - - live, or quit and stop with whatever you have. If you quit, you keep all your gold, but if you swing and live, you might find more. @@ -7040,6 +7053,19 @@ start a game in debug mode when not allowed or not available will result in falling back to explore mode instead. + + + + NetHack 3.7.0 February 11, 2026 + + + + + + NetHack Guidebook 108 + + + 12. Credits The original hack game was modeled on the Berkeley UNIX rogue @@ -7054,18 +7080,6 @@ Jay Fenlason wrote the original Hack, with help from Kenny Wood- land, Mike Thome, and Jon Payne. - - - NetHack 3.7.0 February 11, 2026 - - - - - - NetHack Guidebook 108 - - - Andries Brouwer did a major re-write while at Stichting Mathema- tisch Centrum (now Centrum Wiskunde & Informatica), transforming Hack into a very different game. He published the Hack source code for use @@ -7106,6 +7120,18 @@ Olaf Seibert ported NetHack 2.3 and 3.0 to the Amiga. Norm Meluch, Stephen Spackman and Pierre Martineau designed overlay code for PC NetHack 3.0. Johnny Lee ported NetHack 3.0 to the Macintosh. + + + NetHack 3.7.0 February 11, 2026 + + + + + + NetHack Guidebook 109 + + + Along with various other Dungeoneers, they continued to enhance the PC, Macintosh, and Amiga ports through the later revisions of 3.0. @@ -7120,18 +7146,6 @@ Janet Walz, the NetHack Development Team which now included Ken Arromdee, David Cohrs, Jean-Christophe Collet, Kevin Darcy, Matt Day, Timo Hakulinen, Steve Linhart, Dean Luick, Pat Rankin, Eric Raymond, - - - NetHack 3.7.0 February 11, 2026 - - - - - - NetHack Guidebook 109 - - - and Eric Smith undertook a radical revision of 3.0. They re-struc- tured the game's design, and re-wrote major parts of the code. They added multiple dungeons, a new display, special individual character @@ -7172,6 +7186,18 @@ just their classes. He contributed them to the NetHack Development Team which rechristened them "tiles", original usage which has subse- quently been picked up by various other games. NetHack's tiles sup- + + + NetHack 3.7.0 February 11, 2026 + + + + + + NetHack Guidebook 110 + + + port was then implemented on other platforms (initially MS-DOS but eventually Windows, Qt, and X11 too). @@ -7186,18 +7212,6 @@ thirteen members of the original NetHack Development Team remained on the team at the start of work on that release. During the interval between the release of 3.1.3 and 3.2.0, one of the founding members of - - - NetHack 3.7.0 February 11, 2026 - - - - - - NetHack Guidebook 110 - - - the NetHack Development Team, Dr. Izchak Miller, was diagnosed with cancer and passed away. That release of the game was dedicated to him by the development and porting teams. @@ -7239,6 +7253,17 @@ retrieval of old character names to use for random ghost and statue names in the current game.) + + NetHack 3.7.0 February 11, 2026 + + + + + + NetHack Guidebook 111 + + + The 3.3 NetHack Development Team, consisting of Michael Allison, Ken Arromdee, David Cohrs, Jessie Collet, Steve Creps, Kevin Darcy, Timo Hakulinen, Kevin Hugo, Steve Linhart, Ken Lorber, Dean Luick, Pat @@ -7252,18 +7277,6 @@ and Ranger roles joined Archeologists, Barbarians, Cavemen, Healers, Knights, Priests, Rogues, Samurai, Tourists, Valkyries and of course, Wizards. It was also the first version to allow you to ride a steed, - - - NetHack 3.7.0 February 11, 2026 - - - - - - NetHack Guidebook 111 - - - and was the first version to have a publicly available web-site list- ing all the bugs that had been discovered. Despite that constantly growing bug list, 3.3 proved stable enough to last for more than a @@ -7304,6 +7317,19 @@ Christian "Marvin" Bressler maintained 3.4 for the Atari after he resurrected it for 3.3.1. + + + + NetHack 3.7.0 February 11, 2026 + + + + + + NetHack Guidebook 112 + + + The release of NetHack 3.4.3 in December 2003 marked the begin- ning of a long release hiatus. 3.4.3 proved to be a remarkably stable version that provided continued enjoyment by the community for more @@ -7318,18 +7344,6 @@ In September 2014, an interim snapshot of the code under develop- ment was released publicly by other parties. Since that code was a - - - NetHack 3.7.0 February 11, 2026 - - - - - - NetHack Guidebook 112 - - - work-in-progress and had not gone through the process of debugging it as a suitable release, it was decided that the version numbers present on that code snapshot would be retired and never used in an official @@ -7369,6 +7383,19 @@ Kompel, Dion Nicolaas, Derek S. Ray and Yitzhak Sapir maintained the port of NetHack 3.6 for Microsoft Windows. + + + + NetHack 3.7.0 February 11, 2026 + + + + + + NetHack Guidebook 113 + + + Pat Rankin attempted to keep the VMS port running for NetHack 3.6, hindered by limited access. Kevin Smolkowski has updated and tested it for the most recent version of OpenVMS (V8.4 as of this @@ -7385,17 +7412,6 @@ Rankin, Derek S. Ray, Alex Smith, Mike Stephenson, Janet Walz, and Paul Winner. - - NetHack 3.7.0 February 11, 2026 - - - - - - NetHack Guidebook 113 - - - In early May 2019, another 320 bug fixes along with some enhance- ments and the adopted curses window port, were released as 3.6.2. @@ -7431,22 +7447,6 @@ - - - - - - - - - - - - - - - -