-.\" $NHDT-Branch: master $:$NHDT-Revision: 1.188 $ $NHDT-Date: 1449420465 2015/12/06 16:47:45 $
+.\" $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.264 $ $NHDT-Date: 1524690677 2018/04/25 21:11:17 $
+.\"
+.\" This is an excerpt from the 'roff' man page from the 'groff' package.
+.\" NetHack's Guidebook.mn currently does *not* adhere to these guidelines.
+.\"|||
+.\"| o Never include empty or blank lines in a roff document. Instead, use
+.\"| the empty request (a line consisting of a dot only) or a line comment
+.\"| .\" if a structuring element is needed.
+.\"| o Never start a line with whitespace because this can lead to unexpect-
+.\"| ed behavior. Indented paragraphs can be constructed in a controlled
+.\"| way by roff requests.
+.\"| o Start each sentence on a line of its own, for the spacing after a dot
+.\"| is handled differently depending on whether it terminates an abbrevi-
+.\"| ation or a sentence. To distinguish both cases, do a line break af-
+.\"| ter each sentence.
+.\"|||
+.\"
.ds h0 "NetHack Guidebook
.ds h1
.ds h2 %
.ds vr "NetHack 3.6
.ds f0 "\*(vr
.ds f1
-.ds f2 "December 7, 2015
+.ds f2 "April 27, 2018
+.
.\" labeled paragraph start (should be part of tmac.n, but I don't want to
.\" make changes to that file)
.\" .PS word
.br
\\h'|-\\n(PYu'\\$1\\h'|-\\n(PXu'\ -\ \\c \" back up, output the label, then
. \" skip to width-of(" - ") before the
-. \" normal indentation, output the " - "
+. \" normal indentation, output the " - "
. \" then attach the next line (the
. \" text) without stopping (\c: nroff
. \" section 4.2)
.\" the full width of the column, print " - " and the definition
\\h'|\\n(CYu'\\fB\\$1\\fP\\h'|\\n(CZu'\ -\ \\$2
..
+.\" '.UX' is verbatim copy of tmac.n's '.ux' with the exception that
+.\" the trademark owner for "UNIX" has been updated. (tmac.n contains
+.\" a comment asking that modified versions not be distributed, so we
+.\" are using this substitute instead of modifying that file.)
+.de UX \" print "UNIX"
+.ie \\n(ux \\&\\$2\\s-1UNIX\\s0\\$1
+.el \{\
+. nr ux +1 \" mark footnote as dropped
+\\&\\$2\\s-1UNIX\\s0\\*(rg\\$1
+. fn \" put out the footnote
+\\&\\*(rgUNIX is a registered trademark of The Open Group.
+. ef \" short and sweet ...
+.\}
+..
+.
+.\" A note on some special characters:
+.\" \(dq = double quote character
+.\" - = hyphen \- = minus sign
+.\" \(em = M-sized dash
+.\" ^ = small circumflex punctuation \(ha = larger circumflex character
+.\" ~ = small tilde punctuation \(ti = larger tilde character
+.
+.
+.\" finally, start the actual Guidebook...
+.
.mt
A Guide to the Mazes of Menace
(Guidebook for NetHack)
.au
Original version - Eric S. Raymond
(Edited and expanded for 3.6 by Mike Stephenson and others)
-.hu
-Preface - Version 3.6
-.pg
-This version of the game is special in a particular way. Near the end of
-the development of 3.6, one of the significant inspirations for many of the
-humorous and fun features found in the game, author \fITerry Pratchett\fP,
-passed away. We have dedicated this version of the game in his memory.
.hn 1
Introduction
.pg
-Recently, you have begun to find yourself unfulfilled and distant
-in your daily occupation. Strange dreams of prospecting, stealing,
-crusading, and combat have haunted you in your sleep for many months,
-but you aren't sure of the reason. You wonder whether you have in
-fact been having those dreams all your life, and somehow managed to
+Recently, you have begun to find yourself unfulfilled and distant
+in your daily occupation. Strange dreams of prospecting, stealing,
+crusading, and combat have haunted you in your sleep for many months,
+but you aren't sure of the reason. You wonder whether you have in
+fact been having those dreams all your life, and somehow managed to
forget about them until now. Some nights you awaken suddenly
-and cry out, terrified at the vivid recollection of the strange and
-powerful creatures that seem to be lurking behind every corner of the
-dungeon in your dream. Could these details haunting your dreams be real?
-As each night passes, you feel the desire to enter the mysterious caverns
-near the ruins grow stronger. Each morning, however, you quickly put
-the idea out of your head as you recall the tales of those who entered
-the caverns before you and did not return. Eventually you can resist
-the yearning to seek out the fantastic place in your dreams no longer.
-After all, when other adventurers came back this way after spending time
-in the caverns, they usually seemed better off than when they passed
-through the first time. And who was to say that all of those who did
+and cry out, terrified at the vivid recollection of the strange and
+powerful creatures that seem to be lurking behind every corner of the
+dungeon in your dream. Could these details haunting your dreams be real?
+As each night passes, you feel the desire to enter the mysterious caverns
+near the ruins grow stronger. Each morning, however, you quickly put
+the idea out of your head as you recall the tales of those who entered
+the caverns before you and did not return. Eventually you can resist
+the yearning to seek out the fantastic place in your dreams no longer.
+After all, when other adventurers came back this way after spending time
+in the caverns, they usually seemed better off than when they passed
+through the first time. And who was to say that all of those who did
not return had not just kept going?
-
+.
.pg
Asking around, you hear about a bauble, called the Amulet of Yendor by some,
which, if you can find it, will bring you great wealth. One legend you were
told even mentioned that the one who finds the amulet will be granted
immortality by the gods. The amulet is rumored to be somewhere beyond the
Valley of Gehennom, deep within the Mazes of Menace. Upon hearing the
-legends, you immediately realize that there is some profound and
-undiscovered reason that you are to descend into the caverns and seek
-out that amulet of which they spoke. Even if the rumors of the amulet's
-powers are untrue, you decide that you should at least be able to sell the
-tales of your adventures to the local minstrels for a tidy sum, especially
-if you encounter any of the terrifying and magical creatures of
-your dreams along the way. You spend one last night fortifying yourself
-at the local inn, becoming more and more depressed as you watch the odds
-of your success being posted on the inn's walls getting lower and lower.
-
-.pg
- In the morning you awake, collect your belongings, and
-set off for the dungeon. After several days of uneventful
-travel, you see the ancient ruins that mark the entrance to the
-Mazes of Menace. It is late at night, so you make camp at the entrance
-and spend the night sleeping under the open skies. In the morning, you
-gather your gear, eat what may be your last meal outside, and enter the
+legends, you immediately realize that there is some profound and
+undiscovered reason that you are to descend into the caverns and seek
+out that amulet of which they spoke. Even if the rumors of the amulet's
+powers are untrue, you decide that you should at least be able to sell the
+tales of your adventures to the local minstrels for a tidy sum, especially
+if you encounter any of the terrifying and magical creatures of
+your dreams along the way. You spend one last night fortifying yourself
+at the local inn, becoming more and more depressed as you watch the odds
+of your success being posted on the inn's walls getting lower and lower.
+.
+.pg
+In the morning you awake, collect your belongings, and
+set off for the dungeon. After several days of uneventful
+travel, you see the ancient ruins that mark the entrance to the
+Mazes of Menace. It is late at night, so you make camp at the entrance
+and spend the night sleeping under the open skies. In the morning, you
+gather your gear, eat what may be your last meal outside, and enter the
dungeon...
-
+.
.hn 1
What is going on here?
.pg
replaces the ``You see ...'' descriptions of text adventure games.
Figure 1 is a sample of what a NetHack screen might look like.
The way the screen looks for you depends on your platform.
-
+.
+.ft CR \" set font to constant-width Roman
.TS S
center tab(~);
a.
_
.TE
+.ft \" revert to previous font
.ce 1
Figure 1
-
+.
.hn 2
The status lines (bottom)
.pg
.lp Constitution
Constitution affects your ability to recover from injuries and other
strains on your stamina.
+When strength is low or modest, constitution also affects how much you
+can carry. With sufficiently high strength, the contribution to
+carrying capacity from your constitution no longer matters.
.lp Intelligence
Intelligence affects your ability to cast spells and read spellbooks.
.lp Wisdom
monsters react toward you. Monsters of a like alignment are more likely
to be non-aggressive, while those of an opposing alignment are more likely
to be seriously offended at your presence.
-.lp "Dungeon Level
+.lp "Dungeon Level"
How deep you are in the dungeon. You start at level one and the number
increases as you go deeper into the dungeon. Some levels are special,
and are identified by a name and not a number. The Amulet of Yendor is
.lp "Gold "
The number of gold pieces you are openly carrying. Gold which you have
concealed in containers is not counted.
-.lp "Hit Points
+.lp "Hit Points"
Your current and maximum hit points. Hit points indicate how much
damage you can take before you die. The more you get hit in a fight,
the lower they get. You can regain hit points by resting, or by using
Spell points. This tells you how much mystic energy (\fImana\fP)
you have available for spell casting. Again, resting will regenerate the
amount available.
-.lp "Armor Class
+.lp "Armor Class"
A measure of how effectively your armor stops blows from unfriendly
creatures. The lower this number is, the more effective the armor; it
-is quite possible to have negative armor class.
+is quite possible to have negative armor class.
.lp Experience
Your current experience level and experience points. As you
adventure, you gain experience points. At certain experience point
The number of turns elapsed so far, displayed if you have the
.op time
option set.
-.lp "Hunger status
-Your current hunger status, ranging from \fBSatiated\fP down to
-\fBFainting\fP. If your hunger status is normal, it is not displayed.
-.pg
-Additional status flags may appear after the hunger status: \fBConf\fP
-when you're confused, \fBFoodPois\fP or \fBIll\fP
-when sick, \fBBlind\fP when you can't
-see, \fBStun\fP when stunned, and \fBHallu\fP when hallucinating.
+.lp "Status "
+Hunger:
+your current hunger status.
+Values are \fBSatiated\fP, \fBNot Hungry\fP (or \fBNormal\fP),
+\fBHungry\fP, \fBWeak\fP, and \fBFainting\fP.
+.\" not mentioned: Fainted
+Not shown when \fBNormal\fP.
+.lp ""
+Encumbrance:
+an indication of how what you are carrying affects your ability to move.
+Values are \fBUnencumbered\fP, \fBEncumbered\fP, \fBStressed\fP,
+\fBStrained\fP, \fBOvertaxed\fP, and \fBOverloaded\fP.
+Not shown when \fBUnencumbered\fP.
+.lp ""
+Fatal conditions:
+\fBStone\fP (aka \fBPetrifying\fP, turning to stone),
+\fBSlime\fP (turning into green slime),
+\fBStrngl\fP (being strangled),
+\fBFoodPois\fP (suffering from acute food poisoning),
+\fBTermIll\fP (suffering from a terminal illness).
+.lp ""
+Non-fatal conditions:
+\fBBlind\fP (can't see), \fBDeaf\fP (can't hear),
+\fBStun\fP (stunned), \fBConf\fP (confused), \fBHallu\fP (hallucinating).
+.lp ""
+Movement modifiers:
+\fBLev\fP (levitating), \fBFly\fP (flying), \fBRide\fP (riding).
+.lp ""
+Other conditions and modifiers exist, but there isn't enough room to
+display them with the other status fields. The `^X' command shows
+all relevant status conditions.
.hn 2
The message line (top)
.pg
The top line of the screen is reserved for messages that describe
things that are impossible to represent visually. If you see a
-``\fB--More--\fP'' on the top line, this means that NetHack has
+``\fB\-\-More\-\-\fP'' on the top line, this means that NetHack has
another message to display on the screen, but it wants to make certain
that you've read the one that is there first. To read the next message,
just press the space bar.
various graphics options to change some of the symbols the game uses;
otherwise, the game will use default symbols. Here is a list of what the
default symbols mean:
-.lp "- and |
+.lp "\\- and | "
The walls of a room, or an open door. Or a grave (|).
.lp .
The floor of a room, ice, or a doorless doorway.
Your character or a human.
.lp $
A pile of gold.
-.lp ^
+.lp \(ha \" ^
A trap (once you have detected it).
.lp )
A weapon.
A potion.
.lp (
A useful item (pick-axe, key, lamp...).
-.lp """
+.lp \(dq \" \(dq == double quote
An amulet or a spider web.
.lp *
A gem or rock (possibly valuable, possibly worthless).
A fountain.
.lp }
A pool of water or moat or a pool of lava.
-.lp "\e
+.lp \\\\
An opulent throne.
-.lp "a-zA-Z and other symbols
+.lp "a-zA-Z and other symbols"
Letters and certain other symbols represent the various inhabitants
of the Mazes of Menace. Watch out, they can be nasty and vicious.
Sometimes, however, they can be helpful.
.lp I
This marks the last known location of an invisible or otherwise unseen
-monster. Note that the monster could have moved. The 'F' and 'm' commands
-may be useful here.
+monster. Note that the monster could have moved.
+The `F' and `m' commands may be useful here.
.pg
You need not memorize all these symbols; you can ask the game what any
symbol represents with the `/' command (see the next section for
more info).
-
+.
.hn 1
Commands
.pg
-Commands are initiated by typing one or two characters. Some commands,
+Commands can be initiated by typing one or two characters to which
+the command is bound to, or typing the command name in the extended
+commands entry. Some commands,
like ``search'', do not require that any more information be collected by
NetHack. Other commands might require additional information, for
example a direction, or an object to be used. For those commands that
option.
.pg
For example, a common question, in the form ``What do you want to
-use?\ [a-zA-Z\ ?*]'', asks you to choose an object you are carrying.
-Here, ``a-zA-Z'' are the inventory letters of your possible choices.
+use?\ [a\-zA\-Z\ ?*]'', asks you to choose an object you are carrying.
+Here, ``a\-zA\-Z'' are the inventory letters of your possible choices.
Typing `?' gives you an inventory list of these items, so you can see
what each letter refers to. In this example, there is also a `*'
indicating that you may choose an object not on the list, if you
.pg
The list of commands is rather long, but it can be read at any time
during the game through the `?' command, which accesses a menu of
-helpful texts. Here are the commands for your reference:
+helpful texts. Here are the default key bindings for your reference:
.lp ?
Help menu: display one of several help texts available.
.lp /
-Tell what a symbol represents. You may choose to specify a location
+The ``whatis'' command, to
+tell what a symbol represents. You may choose to specify a location
or type a symbol (or even a whole word) to explain.
Specifying a location is done by moving the cursor to a particular spot
on the map and then pressing one of `.', `,', `;',
.op help
option is on, and then you will be asked to pick another location;
`,' will explain the symbol but skip any additional
-information; `;' will skip additional info and also not bother asking
+information, then let you pick another location;
+`;' will skip additional info and also not bother asking
you to choose another location to examine; `:' will show additional
info, if any, without asking for confirmation. When picking a location,
pressing the ESC key will terminate this command, or pressing `?'
will give a brief reminder about how it works.
-.pg
+.lp ""
+If the
+.op autodescribe
+option is on, a short description of what you see at each location is
+shown as you move the cursor. Typing `#' while picking a location will
+toggle that option on or off.
+The
+.op whatis_coord
+option controls whether the short description includes map coordinates.
+.lp ""
Specifying a name rather than a location
always gives any additional information available about that name.
+.lp ""
+You may also request a description of nearby monsters,
+all monsters currently displayed, nearby objects, or all objects.
+The
+.op whatis_coord
+option controls which format of map coordinate is included with their
+descriptions.
.lp &
Tell what a command does.
.lp <
one-step movement commands cause you to fight monsters; the others
(below) are ``safe.''
.sd
+.\" note: the two number pad layouts are separated by a tab on each line;
+.\" converting those tabs to spaces will screw up the formatting;
+.\" the '(if ... set)' line starts with <backslash><space><tab>
.TS S
center;
c c.
h- . -l 4- . -6
/ | \e / | \e
b j n 1 2 3
- (if \fBnumber_pad\fP is set)
+\ (if \fBnumber_pad\fP is set)
.TE
.ed
.ce 1
Figure 2
-
+.
.lp [YUHJKLBN]
Go in that direction until you hit a wall or run into something.
.lp m[yuhjklbn]
Prefix: move without picking up objects or fighting (even if you remember
-a monster there)
+a monster there).
+.lp ""
+A few non-movement commands use the `m' prefix to request operating
+via menu (to temporarily override the
+.op menustyle:Traditional
+option).
+Primarily useful for `,' (pickup) when there is only one class of
+objects present (where there won't be any ``what kinds of objects?'' prompt,
+so no opportunity to answer `m' at that prompt).
+.lp ""
+A few other commands (eat food, offer sacrifice, apply tinning-kit) use
+the `m' prefix to skip checking for applicable objects on the floor
+and go straight to checking inventory,
+or (for ``#loot'' to remove a saddle),
+skip containers and go straight to adjacent monsters. The prefix will
+make ``#travel'' command show a menu of interesting targets in sight.
.lp F[yuhjklbn]
-Prefix: fight a monster (even if you only guess one is there)
+Prefix: fight a monster (even if you only guess one is there).
.lp M[yuhjklbn]
Prefix: move far, no pickup.
-.lp "g[yuhjklbn]
+.lp "g[yuhjklbn]"
Prefix: move until something interesting is found.
-.lp "G[yuhjklbn] or <CONTROL->[yuhjklbn]
+.lp "G[yuhjklbn] or <CONTROL->[yuhjklbn]"
Prefix: same as `g', but forking of corridors is not considered interesting.
.lp _
Travel to a map location via a shortest-path algorithm.
previously traversed). If there is no known path, a guess is made instead.
Stops on most of
the same conditions as the `G' command, but without picking up
-objects, similar to the `M' command. For ports with mouse
-support, the command is also invoked when a mouse-click takes place on a
+objects, similar to the `M' command. For ports with mouse
+support, the command is also invoked when a mouse-click takes place on a
location other than the current position.
.lp .
-Rest, do nothing for one turn.
+Wait or rest, do nothing for one turn.
.lp a
Apply (use) a tool (pick-axe, key, lamp...).
+.lp ""
+If used on a wand, that wand will be broken, releasing its magic in the
+process. Confirmation is required.
.lp A
Remove one or more worn items, such as armor.
.lp ""
-Use `T' (take off) to take off only one piece of armor
+Use `T' (take off) to take off only one piece of armor
or `R' (remove) to take off only one accessory.
.lp ^A
Redo the previous command.
.lp ""
``What kinds of things do you want to drop? [!%= BUCXaium]''
.lp ""
-you should type zero or more object symbols possibly followed by
+you should type zero or more object symbols possibly followed by
`a' and/or `i' and/or `u' and/or `m'. In addition, one or more of
the blessed/uncursed/cursed groups may be typed.
-.sd
-.si
-DB - drop all objects known to be blessed.
-DU - drop all objects known to be uncursed.
-DC - drop all objects known to be cursed.
-DX - drop all objects of unknown B/U/C status.
-Da - drop all objects, without asking for confirmation.
-Di - examine your inventory before dropping anything.
-Du - drop only unpaid objects (when in a shop).
-Dm - use a menu to pick which object(s) to drop.
-D%u - drop only unpaid food.
-.ei
-.ed
+.PS D%u
+.PL DB
+drop all objects known to be blessed.
+.PL DU
+drop all objects known to be uncursed.
+.PL DC
+drop all objects known to be cursed.
+.PL DX
+drop all objects of unknown B/U/C status.
+.PL Da
+drop all objects, without asking for confirmation.
+.PL Di
+examine your inventory before dropping anything.
+.PL Du
+drop only unpaid objects (when in a shop).
+.PL Dm
+use a menu to pick which object(s) to drop.
+.PL D%u
+drop only unpaid food.
+.PE
+The last example shows a combination.
+There are three categories of object filtering: class (`!' for
+potions, `?' for scrolls, and so on), shop status (`u' for unpaid, in
+other words, owned by the shop), and bless/curse state (`B', `U',
+`C', and `X' as shown above).
+If you specify more than one value in a category (such as `!?' for
+potions and scrolls or `BU' for blessed and uncursed), an inventory
+object will meet the criteria if it matches any of the specified
+values (so `!?' means `!' or '?').
+If you specify more than one category, an inventory object must meet
+each of the category criteria (so `%u' means class `%' and unpaid `u').
+Lastly, you may specify multiple values within multiple categories:
+`!?BU' will select all potions and scrolls which are known to be
+blessed or uncursed.
+(In versions prior to 3.6, filter combinations behaved differently.)
.lp ^D
Kick something (usually a door).
.lp e
Eat food.
+.lp ""
+Normally checks for edible item(s) on the floor, then if none are found
+or none are chosen, checks for edible item(s) in inventory.
+Precede `e' with the `m' prefix to bypass attempting to eat
+anything off the floor.
.\" Make sure Elbereth is not hyphenated below, the exact spelling matters
.hw Elbereth
.lp E
Engrave a message on the floor.
.sd
.si
-E- - write in the dust with your fingers.
+E- - write in the dust with your fingers.
.ei
.ed
.lp ""
Engraving the word ``Elbereth'' will cause most monsters to not attack
you hand-to-hand (but if you attack, you will rub it out); this is
-often useful to give yourself a breather. (This feature may be compiled out
-of the game, so your version might not have it.)
+often useful to give yourself a breather.
.lp f
Fire one of the objects placed in your quiver (or quiver sack, or that you
have at the ready). You may select
.lp I
List selected parts of your inventory, usually be specifying the character
for a particular set of objects, like `[' for armor or `!' for potions.
-.sd
-.si
-I* - list all gems in inventory;
-Iu - list all unpaid items;
-Ix - list all used up items that are on your shopping bill;
-IB - list all items known to be blessed;
-IU - list all items known to be uncursed;
-IC - list all items known to be cursed;
-IX - list all items whose bless/curse status is known;
-I$ - count your money.
-.ei
-.ed
+.PS IX
+.PL I*
+list all gems in inventory;
+.PL Iu
+list all unpaid items;
+.PL Ix
+list all used up items that are on your shopping bill;
+.PL IB
+list all items known to be blessed;
+.PL IU
+list all items known to be uncursed;
+.PL IC
+list all items known to be cursed;
+.PL IX
+list all items whose bless/curse status is known;
+.PL I$
+count your money.
+.PE
.lp o
Open a door.
.lp O
The available options
are listed later in this Guidebook. Options are usually set before the
game rather than with the `O' command; see the section on options below.
+.lp ^O
+Show overview or show dungeon layout
+.lp ""
+In normal play and in explore mode, a shortcut for the ``#overview''
+extended command to list interesting dungeon levels visited.
+.lp ""
+In debug mode, an extra command which lists the placement of all special
+levels.
.lp p
Pay your shopping bill.
.lp P
.lp ""
(In versions prior to 3.6 this was the command to switch from normal
play to "explore mode", also known as "discovery mode", which has now
-been moved to ``#explore''.)
+been moved to ``#exploremode''.)
.lp ^X
Display basic information about your character.
.lp ""
.ed
.lp ^Z
Suspend the game
-.ux " versions with job control only)." (
+.\" .UX: print "UNIX" now and a trademark footnote at bottom of current page;
+.\" 2nd arg (literal '(') _precedes_ it, 1st arg (quoted string) follows it
+.UX " versions with job control only)." (
.lp :
Look at what is here.
.lp ;
Toggle the
.op autopickup
option on and off.
-.lp ^
-Ask for the type of a trap you found earlier.
+.lp \(ha \" ^
+Ask for the type of an adjacent trap you found earlier.
.lp )
Tell what weapon you are wielding.
.lp [
Tell what armor you are wearing.
.lp =
Tell what rings you are wearing.
-.lp """
+.lp \(dq \" \(dq == double quote
Tell what amulet you are wearing.
.lp (
Tell what tools you are using.
list or by picking one spell from the menu then picking another to swap
places with it. Swapping pairs of spells changes their casting letters,
so the change lasts after the current `+' command finishes. Sorting
-the whole list is temporary. To make the most recent sort order persist
+the whole list is temporary.
+To make the most recent sort order persist
beyond the current `+' command, choose the sort option again and then
-pick "reassign casting letters". (Any spells learned after that will
+pick ``reassign casting letters''.
+(Any spells learned after that will
be added to the end of the list rather than be inserted into the sorted
ordering.)
-.lp "\e
+.lp \\\\
Show what types of objects have been discovered.
.lp `
Show discovered types for one class of objects.
.lp #
Perform an extended command.
.lp ""
+.pg
As you can see, the authors of NetHack
used up all the letters, so this is a way to introduce the less frequently
used commands.
.lp #adjust
Adjust inventory letters (most useful when the
.op fixinv
-option is ``on'').
+option is ``on''). Autocompletes. Default key is 'M-a'.
.lp ""
This command allows you to move an item from one particular inventory
slot to another so that it has a letter which is more meaningful for you
or that it will appear in a particular location when inventory listings
are displayed.
+You can move to a currently empty slot, or if the destination is
+occupied \(em and won't merge \(em the item there will swap slots with the one
+being moved.
``#adjust'' can also be used to split a stack of objects; when
choosing the item to adjust, enter a count prior to its letter.
+.lp ""
+Adjusting without a count used to collect all compatible stacks when
+moving to the destination. That behavior has been changed; to gather
+compatible stacks, ``#adjust'' a stack into its own inventory slot.
+If it has a name assigned, other stacks with the same name or with
+no name will merge provided that all their other attributes match.
+If it does not have a name, only other stacks with no name are eligible.
+In either case, otherwise compatible stacks with a different name
+will not be merged. This contrasts with using ``#adjust'' to move
+from one slot to a different slot. In that situation, moving (no
+count given) a compatible stack will merge if either stack has a
+name when the other doesn't and give that name to the result, while
+splitting (count given) will ignore the source stack's name when
+deciding whether to merge with the destination stack.
.lp #annotate
Allows you to specify one line of text to associate with the current
-dungeon level. All levels with annotations are displayed by the
+dungeon level.
+All levels with annotations are displayed by the
``#overview'' command.
+Autocompletes.
+Default key is 'M-A', and '^N' if
+.op number_pad
+is on.
+.lp #apply
+Apply (use) a tool such as a pick-axe, a key, or a lamp. Default key is 'a'.
+.lp ""
+If the tool used acts on items on the floor, using the `m' prefix skips
+those items.
+.lp ""
+If used on a wand, that wand will be broken, releasing its magic in the
+process. Confirmation is required.
+.lp #attributes
+Show your attributes. Default key is '^X'.
+.lp #autopickup
+Toggle the autopickup -option on/off. Default key is '@'.
+.lp #call
+Call (name) a monster, or an object in inventory, on the floor,
+or in the discoveries list, or add an annotation for the
+current level (same as ``#annotate''). Default key is 'C'.
+.lp #cast
+Cast a spell. Default key is 'Z'.
.lp #chat
-Talk to someone.
+Talk to someone. Default key is 'M-c'.
+.lp #close
+Close a door. Default key is 'c'.
.lp #conduct
List voluntary challenges you have maintained.
+Autocompletes.
+Default key is 'M-C'.
.lp ""
See the section below entitled ``Conduct'' for details.
.lp "#dip "
-Dip an object into something.
+Dip an object into something. Autocompletes. Default key is 'M-d'.
+.lp #down
+Go down a staircase. Default key is '>'.
+.lp #drop
+Drop an item. Default key is 'd'.
+.lp #droptype
+Drop specific item types. Default key is 'D'.
+.lp "#eat "
+Eat something. Default key is 'e'.
+The `m' prefix skips eating items on the floor.
+.lp #engrave
+Engrave writing on the floor. Default key is 'E'.
.lp #enhance
-Advance or check weapon and spell skills.
+Advance or check weapon and spell skills. Autocompletes. Default key is 'M-e'.
+.lp #exploremode
+Enter the explore mode.
+.lp #fire
+Fire ammunition from quiver. Default key is 'f'.
.lp #force
-Force a lock.
+Force a lock. Autocompletes. Default key is 'M-f'.
+.lp #glance
+Show what type of thing a map symbol corresponds to. Default key is ';'.
+.lp #help
+Show the help menu. Default key is '?', and 'h' if
+.op number_pad
+is on.
+.lp #herecmdmenu
+Show a menu of possible actions in your current location.
+.lp #history
+Show long version and game history. Default key is 'V'.
+.lp #inventory
+Show your inventory. Default key is 'i'.
+.lp #inventtype
+Inventory specific item types. Default key is 'I'.
.lp #invoke
-Invoke an object's special powers.
+Invoke an object's special powers. Autocompletes. Default key is 'M-i'.
.lp #jump
Jump to another location.
+Autocompletes.
+Default key is 'M-j', and 'j' if
+.op number_pad
+is on.
+.lp #kick
+Kick something.
+Default key is '^D', and 'k' if
+.op number_pad
+is on.
+.lp #known
+Show what object types have been discovered. Default key is '\\'.
+.lp #knownclass
+Show discovered types for one class of objects. Default key is '`'.
+.lp #levelchange
+Change your experience level. Autocompletes. Wizard-mode only.
+.lp #lightsources
+Show mobile light sources. Autocompletes. Wizard-mode only.
+.lp #look
+Look at what is here, under you. Default key is ':'.
.lp #loot
-Loot a box or bag on the floor beneath you, or the saddle
-from a steed standing next to you.
+Loot a box or bag on the floor beneath you, or the saddle
+from a steed standing next to you. Autocompletes.
+Precede with the `m' prefix to skip containers at your location
+and go directly to removing a saddle.
+Default key is 'M-l', and 'l' if
+.op number_pad
+is on.
+.lp #monpolycontrol
+Control monster polymorphs. Autocompletes. Wizard-mode only.
.lp #monster
Use a monster's special ability (when polymorphed into monster form).
+Autocompletes. Default key is 'M-m'.
.lp #name
-Name a monster, an individual object, or a type of object. Same as `C'.
+Name a monster, an individual object, or a type of object. Same as #call.
+Autocompletes. Default keys are 'N', 'M-n', and 'M-N'.
.lp #offer
-Offer a sacrifice to the gods.
+Offer a sacrifice to the gods. Autocompletes. Default key is 'M-o'.
+The `m' prefix skips offering items on the altar.
.lp ""
You'll need to find an altar to have any chance at success.
Corpses of recently killed monsters are the fodder of choice.
+.lp #open
+Open a door. Default key is 'o'.
+.lp #options
+Show and change option settings. Default key is 'O'.
.lp #overview
Display information you've discovered about the dungeon. Any visited
level (unless forgotten due to amnesia) with an annotation is included,
and many things (altars, thrones, fountains, and so on; extra stairs
leading to another dungeon branch) trigger an automatic annotation.
If dungeon overview is chosen during end-of-game disclosure, every visited
-level will be included regardless of annotations.
+level will be included regardless of annotations. Autocompletes.
+Default keys are '^O', and 'M-O'.
+.lp #panic
+Test the panic routine. Autocompletes. Wizard-mode only.
+.lp "#pay "
+Pay your shopping bill. Default key is 'p'.
+.lp #pickup
+Pick up things at the current location. Default key is ','.
+The `m' prefix forces use of a menu.
+.lp #polyself
+Polymorph self. Autocompletes. Wizard-mode only.
.lp #pray
-Pray to the gods for help.
+Pray to the gods for help. Autocompletes. Default key is 'M-p'.
.lp ""
Praying too soon after receiving prior help is a bad idea.
(Hint: entering the dungeon alive is treated as having received help.
by default, and you can reset the
.op paranoid_confirmation
option to disable it.
+.lp #prevmsg
+Show previously displayed game messages. Default key is '^P'.
+.lp #puton
+Put on an accessory (ring, amulet, etc). Default key is 'P'.
+.lp #quaff
+Quaff (drink) something. Default key is 'q'.
.lp #quit
-Quit the program without saving your game.
+Quit the program without saving your game. Autocompletes. Default key is 'M-q'.
.lp ""
Since using this command by accident would throw away the current game,
you are asked to confirm your intent before quitting. By default a
response of 'y' acknowledges that intent. You can set the
.op paranoid_confirmation
-option to require a response of "yes" instead.
+option to require a response of ``yes'' instead.
+.lp #quiver
+Select ammunition for quiver. Default key is 'Q'.
+.lp #read
+Read a scroll, a spellbook, or something else. Default key is 'r'.
+.lp #redraw
+Redraw the screen.
+Default key is '^R', and '^L' if
+.op number_pad
+is on.
+.lp #remove
+Remove an accessory (ring, amulet, etc). Default key is 'R'.
.lp #ride
-Ride (or stop riding) a saddled creature.
+Ride (or stop riding) a saddled creature. Autocompletes. Default key is 'M-R'.
.lp "#rub "
-Rub a lamp or a stone.
+Rub a lamp or a stone. Autocompletes. Default key is 'M-r'.
+.lp #save
+Save the game. Default key is 'S'.
+.lp #search
+Search for traps and secret doors around you. Default key is 's'.
+.lp #seeall
+Show all equipment in use. Default key is '*'.
+.lp #seeamulet
+Show the amulet currently worn. Default key is '\(dq'. \" double quote
+.lp #seearmor
+Show the armor currently worn. Default key is '['.
+.lp #seegold
+Count your gold. Default key is '$'.
+.lp #seenv
+Show seen vectors. Autocompletes. Wizard-mode only.
+.lp #seerings
+Show the ring(s) currently worn. Default key is '='.
+.lp #seespells
+List and reorder known spells. Default key is '+'.
+.lp #seetools
+Show the tools currently in use. Default key is '('.
+.lp #seetrap
+Show the type of an adjacent trap.
+Default key is '\(ha'.
+.lp #seeweapon
+Show the weapon currently wielded. Default key is ')'.
+.lp #shell
+Do a shell escape. Default key is '!'.
.lp "#sit "
-Sit down.
+Sit down. Autocompletes. Default key is 'M-s'.
+.lp #stats
+Show memory statistics. Autocompletes. Wizard-mode only.
+.lp #suspend
+Suspend the game. Default key is '^Z'.
+.lp #swap
+Swap wielded and secondary weapons. Default key is 'x'.
+.lp #takeoff
+Take off one piece of armor. Default key is 'T'.
+.lp #takeoffall
+Remove all armor. Default key is 'A'.
+.lp #teleport
+Teleport around the level. Default key is '^T'.
.lp #terrain
Show bare map without displaying monsters, objects, or traps.
+Autocompletes.
+.lp #therecmdmenu
+Show a menu of possible actions in a location next to you.
+.lp #throw
+Throw something. Default key is 't'.
+.lp #timeout
+Look at the timeout queue. Autocompletes. Wizard-mode only.
.lp "#tip "
Tip over a container (bag or box) to pour out its contents.
+Autocompletes. Default key is 'M-T'.
+The `m' prefix makes the command use a menu.
+.lp #travel
+Travel to a specific location on the map. Default key is '_'.
+Using the ``request menu'' prefix shows a menu of interesting targets in sight
+without asking to move the cursor. When picking a target with cursor and
+the
+.op autodescribe
+option is on, the top line will show ``(no travel path)'' if
+your character does not know of a path to that location.
.lp #turn
-Turn undead.
+Turn undead away. Autocompletes. Default key is 'M-t'.
.lp #twoweapon
-Toggle two-weapon combat on or off.
+Toggle two-weapon combat on or off. Autocompletes. Default keys
+are 'X', and 'M-2'.
.lp ""
Note that you must
use suitable weapons for this type of combat, or it will
be automatically turned off.
.lp #untrap
Untrap something (trap, door, or chest).
+Default key is 'M-u', and 'u' if
+.op number_pad
+is on.
.lp ""
In some circumstances it can also be used to rescue trapped monsters.
+.lp "#up "
+Go up a staircase. Default key is '<'.
+.lp #vanquished
+List vanquished monsters. Autocompletes. Wizard-mode only.
.lp #version
Print compile time options for this version of NetHack.
+Autocompletes. Default key is 'M-v'.
+.lp #versionshort
+Show version string. Default key is 'v'.
+.lp #vision
+Show vision array. Autocompletes. Wizard-mode only.
+.lp #wait
+Rest one move while doing nothing. Default key is '.', and ' ' if
+rest_on_space is on.
+.lp #wear
+Wear a piece of armor. Default key is 'W'.
+.lp #whatdoes
+Tell what a key does. Default key is '&'.
+.lp #whatis
+Show what type of thing a symbol corresponds to. Default key is '/'.
+.lp #wield
+Wield a weapon. Default key is 'w'.
.lp #wipe
-Wipe off your face.
+Wipe off your face. Autocompletes. Default key is 'M-w'.
+.lp #wizdebug_bury
+Bury objects under and around you. Autocompletes. Wizard-mode only.
+.lp #wizdebug_traveldisplay
+Toggle travel display. Autocompletes. Wizard-mode only.
+.lp #wizdetect
+Search a room. Autocompletes. Wizard-mode only. Default key is '^E'.
+.lp #wizgenesis
+Create a monster. Autocompletes. Wizard-mode only. Default key is '^G'.
+.lp #wizidentify
+Identify all items in inventory. Autocompletes. Wizard-mode only.
+Default key is '^I'.
+.lp #wizintrinsic
+Set intrinsic. Autocompletes. Wizard-mode only.
+.lp #wizlevelport
+Teleport to another level.
+Autocompletes.
+Wizard-mode only.
+Default key is '^V'.
+.lp #wizmap
+Map the level. Autocompletes. Wizard-mode only. Default key is '^F'.
+.lp #wizrumorcheck
+Verify rumor boundaries. Autocompletes. Wizard-mode only.
+.lp #wizsmell
+Smell monster. Autocompletes. Wizard-mode only.
+.lp #wizwhere
+Show locations of special levels. Autocompletes. Wizard-mode only.
+.lp #wizwish
+Wish for something. Autocompletes. Wizard-mode only. Default key is '^W'.
+.lp #wmode
+Show wall modes. Autocompletes. Wizard-mode only.
+.lp "#zap "
+Zap a wand. Default key is 'z'.
.lp "#? "
Help menu: get the list of available extended commands.
+.lp ""
.pg
If your keyboard has a meta key (which, when pressed in combination
with another key, modifies it by setting the `meta' [8th, or `high']
two character sequence consisting of an \fBEscape\fP
followed by the other key, you may set the
.op altmeta
-option to have nethack combine them into meta+key.
+option to have NetHack combine them into meta+key.
.lp M-?
#? (not supported by all platforms)
.lp M-2
-#twoweapon (unless the number_pad option is enabled)
+#twoweapon (unless the
+.op number_pad
+option is enabled)
.lp M-a
#adjust
.lp M-A
#version
.lp M-w
#wipe
+.lp ""
.pg
If the
.op number_pad
option is on, some additional letter commands are available:
.lp h
-Help menu: display one of several help texts available, like ``?''.
+#help
.lp j
-Jump to another location. Same as ``#jump'' or ``M-j''.
+#jump
.lp k
-Kick something (usually a door). Same as `^D'.
+#kick
.lp l
-Loot a box or bag on the floor beneath you, or the saddle
-from a steed standing next to you. Same as ``#loot'' or ``M-l''.
+#loot
.lp N
-Name a monster, an individual object, or a type of object. Same
-as ``#name'' (or ``M-n'') which is the same as the `C'
-command.
+#name
.lp u
-Untrap a trap, door, or chest. Same as ``#untrap'' or ``M-u''.
-
+#untrap
+.
.hn 1
Rooms and corridors
.pg
Rooms and corridors in the dungeon are either lit or dark.
-Any lit areas within your line of sight will be displayed;
+Any lit areas within your line of sight will be displayed;
dark areas are only displayed if they are within one space of you.
Walls and corridors remain on the map as you explore them.
.pg
Secret doors are hidden. You can find them with the `s' (search)
command. Once found they are in all ways equivalent to normal doors.
.hn 2
-Traps (`^')
+Traps (`\(ha')
.pg
There are traps throughout the dungeon to snare the unwary delver.
For example, you may suddenly fall into a pit and be stuck for a few
Sokoban. Some allowances are permitted in case the player gets stuck;
however, they will lower your luck.
.hn 2
-Stairs (`<', `>')
+Stairs and ladders (`<', `>')
.pg
In general, each level in the dungeon will have a staircase going up
(`<') to the previous level and another going down (`>') to the next
you travel up or down stairs, and occasionally one of these creatures
will displace you during the climb. When that occurs, the pet or other
monster will arrive on the staircase and you will end up nearby.
-.hn 2
-Ladders (`<', `>')
.pg
Ladders serve the same purpose as staircases, and the two types of
inter-level connections are nearly indistinguishable during game play.
While the shopkeeper watches you like a hawk, he will generally ignore
any other customers.
.lp * 2
-If a shop is "closed for inventory", it will not open of its own accord.
+If a shop is ``closed for inventory'', it will not open of its own accord.
.lp * 2
Shops do not get restocked with new items, regardless of inventory depletion.
-
+.
.hn 1
Monsters
.pg
very well).
.pg
The commands `/' and `;' may be used to obtain information about those
-monsters who are displayed on the screen. The command ``#name'', or
-its synonym `C', allows you
+monsters who are displayed on the screen. The command ``#name''
+(by default bound to `C'), allows you
to assign a name to a monster, which may be useful to help distinguish
one from another when multiple monsters are present. Assigning a name
which is just a space will remove any prior name.
Remember: discretion is the better part of valor.
.pg
In most circumstances, if you attempt to attack a peaceful monster by
-moving into its location, you'll be asked to confirm your intent. By
+moving into its location, you'll be asked to confirm your intent. By
default an answer of 'y' acknowledges that intent,
which can be error prone if you're using 'y' to move. You can set the
.op paranoid_confirmation
-option to require a response of "yes" instead.
+option to require a response of ``yes'' instead.
.pg
If you can't see a monster (if it is invisible, or if you are blinded),
the symbol `I' will be shown when you learn of its presence.
.pg
Some types of creatures in the dungeon can actually be ridden if you
have the right equipment and skill. Convincing a wild beast to let
-you saddle it up is difficult to say the least. Many a dungeoneer
+you saddle it up is difficult to say the least. Many a dungeoneer
has had to resort to magic and wizardry in order to forge the alliance.
-Once you do have the beast under your control however, you can
-easily climb in and out of the saddle with the `#ride' command. Lead
-the beast around the dungeon when riding, in the same manner as
+Once you do have the beast under your control however, you can
+easily climb in and out of the saddle with the ``#ride'' command. Lead
+the beast around the dungeon when riding, in the same manner as
you would move yourself. It is the beast that you will see displayed
on the map.
.pg
-Riding skill is managed by the `#enhance' command. See the section
+Riding skill is managed by the ``#enhance'' command. See the section
on Weapon proficiency for more information about that.
+.pg
+Use the `a' (apply) command and pick a saddle in your inventory to
+attempt to put that saddle on an adjacent creature. If successful,
+it will be transferred to that creature's inventory.
+.pg
+Use the ``#loot'' command while adjacent to a saddled creature to
+try to remove the saddle from that creature. If successful, it will
+be transferred to your inventory.
.hn 2
Bones levels
.pg
however, they are likely to be cursed. Beware of whatever killed the
former player; it is probably still lurking around, gloating over its
last victory.
-
+.
+.hn 2
+Persistence of Monsters
+.pg
+Monsters (a generic reference which also includes humans and pets) are only
+shown while they can be seen or otherwise sensed.
+Moving to a location where you can't see or sense a monster any more
+will result in it disappearing from your map, similarly if it is the
+one who moved rather than you.
+.pg
+However, if you encounter a monster which you can't see or sense \(em
+perhaps it is invisible and has just tapped you on the noggin \(em
+a special ``remembered, unseen monster'' marker will be displayed at
+the location where you think it is.
+That will persist until you have
+proven that there is no monster there, even if the unseen monster
+moves to another location or you move to a spot where the marker's
+location ordinarily wouldn't be seen any more.
+.
.hn 1
-Objects
+Objects
.pg
When you find something in the dungeon, it is common to want to pick
it up. In NetHack, this is accomplished automatically by walking over
option (see below), or move with the `m' prefix (see above)), or
manually by using the `,' command.
.pg
-If you're carrying too many items, NetHack will tell you so and you won't
+If you're carrying too many items, NetHack will tell you so and you won't
be able to pick
up anything more. Otherwise, it will add the object(s) to your pack and tell
you what you just picked up.
As you add items to your inventory, you also add the weight of that object
to your load. The amount that you can carry depends on your strength and
your constitution. The
-stronger you are, the less the additional load will affect you. There comes
+stronger and sturdier
+you are, the less the additional load will affect you. There comes
a point, though, when the weight of all of that stuff you are carrying around
with you through the dungeon will encumber you. Your reactions
will get slower and you'll burn calories faster, requiring food more frequently
will remember what it is for you. If its effect isn't extremely
obvious, you will be asked what you want to call this type of object
so you will recognize it later. You can also use the ``#name''
-command, or its synonym `C', for the same purpose at any time, to name
+command, for the same purpose at any time, to name
all objects of a particular type or just an individual object.
When you use ``#name'' on an object which has already been named,
specifying a space as the value will remove the prior name instead
of damage such a hit will do, depends upon many factors. Among them are:
type of weapon, quality of weapon (enchantment and/or erosion), experience
level, strength, dexterity, encumbrance, and proficiency (see below). The
-monster's armor class - a general defense rating, not necessarily due to
-wearing of armor - is a factor too; also, some monsters are particularly
+monster's armor class \(em a general defense rating, not necessarily due to
+wearing of armor \(em is a factor too; also, some monsters are particularly
vulnerable to certain types of weapons.
.pg
Many weapons can be wielded in one hand; some require both hands.
.pg
Some characters have the ability to fire a volley of multiple items in a
single turn. Knowing how to load several rounds of ammunition at
-once -- or hold several missiles in your hand -- and still hit a
+once \(em or hold several missiles in your hand \(em and still hit a
target is not an easy task. Rangers are among those who are adept
at this task, as are those with a high level of proficiency in the
relevant weapon skill (in bow skill if you're wielding one to
But first you need to have a weapon in each hand.
(Note that your two weapons are not fully equal; the one in the
hand you normally wield with is considered primary and the other
-one is considered secondary. The most noticeable difference is
-after you stop--or before you begin, for that matter--wielding
+one is considered secondary. The most noticeable difference is
+after you stop \(em or before you begin, for that matter \(em wielding
two weapons at once. The primary is your wielded weapon and the
secondary is just an item in your inventory that's been designated
as alternate weapon.)
Each suit of armor which exists in AD&D gives the same protection in
NetHack. Here is an (incomplete) list of the armor classes provided by
various suits of armor:
-
+.
.TS S
center;
a n.
chain mail 5
orcish chain mail 6
scale mail 6
+dragon scales 7
studded leather armor 7
ring mail 7
orcish ring mail 8
.hn 2
Wands (`/')
.pg
-Magic wands usually have multiple magical charges. Some wands are
-directional\(emyou must give a direction in which to zap them. You can also
+Wands usually have multiple magical charges.
+Some types of wands require a direction in which to zap them.
+You can also
zap them at yourself (just give a `.' or `s' for the direction). Be warned,
-however, for this is often unwise. Other wands are nondirectional\(emthey
+however, for this is often unwise.
+Other types of wands
don't require a direction. The number of charges in a wand is random and
decreases by one whenever you use it.
.pg
rings, one on each ring finger.
.pg
Most rings also cause you to grow hungry more rapidly, the rate
-varying with the type of ring.
+varying with the type of ring.
.pg
The commands to use rings are `P' (put on) and `R' (remove).
.hn 2
.pg
Casting a spell calls forth magical energies and focuses them with
your naked mind. Some of the magical energy released comes from within
-you, and casting several spells in a row may tire you.
+you.
+Casting temporarily drains your magical power, which will slowly be
+recovered, and causes you to need additional food.
Casting of spells also requires practice. With practice, your
skill in each category of spell casting will improve. Over time, however,
your memory of each spell will dim, and you will need to relearn it.
.pg
-Some spells are
-directional\(emyou must give a direction in which to cast them. You can also
-cast them at yourself (just give a `.' or `s' for the direction). Be warned,
-however, for this is often unwise. Other spells are nondirectional\(emthey
-don't require a direction.
+Some spells require a direction in which to cast them, similar to wands.
+To cast one at yourself, just give a `.' or `s' for the direction.
+A few spells require you to pick a target location rather than just specify
+a particular direction.
+Other spells don't require any direction or target.
.pg
Just as weapons are divided into groups in which a character can become
proficient (to varying degrees), spells are similarly grouped.
.pg
Very large humanoids (giants and their ilk) have been known to use boulders
as weapons.
+.pg
+For some configurations of the program, statues are no longer shown as `\`'
+but by the letter representing the monster they depict instead.
.hn 2
Gold (`$')
.pg
There are a number
of monsters in the dungeon that may be influenced by the amount of gold
you are carrying (shopkeepers aside).
-
+.
+.hn 2
+Persistence of Objects
+.pg
+Normally, if you have seen an object at a particular map location and
+move to another location which can't directly see that object any
+more, if will continue to be displayed on your map.
+That remains the case even if it is not actually there any more \(em
+perhaps a monster has picked it up or it has rotted away \(em
+until you can see or feel that location again.
+One notable exception is that if the object gets covered by the
+``remembered, unseen monster'' marker and that marker is later removed
+after you've verified that no monster is there, you will forget that
+there was any object there regardless of whether the unseen monster
+actually took the object.
+If the object is still there, then once you see or feel that location
+again you will re-discover the object and resume remembering it.
+.pg
+The situation is the same for a pile of objects, except that only the
+top item of the pile is displayed.
+The
+.op hilite_pile
+option can be enabled in order to show an item differently when is
+the top one of a pile.
+.
.hn 1
Conduct
.pg
an artifact (even if the artifact immediately disappears). When the
game offers you an opportunity to make a wish for an item, you may
choose ``nothing'' if you want to decline.
-
+.
.hn 1
Options
.pg
.pg
Options may be set in a number of ways. Within the game, the `O'
command allows you to view all options and change most of them.
-You can also set options automatically by placing them in the
-NETHACKOPTIONS environment variable or in a configuration file.
+You can also set options automatically by placing them in a configuration
+file, or in the NETHACKOPTIONS environment variable.
Some versions of NetHack also have front-end programs that allow
you to set options before starting the game or a global configuration
for system administrators.
.hn 2
+Using a configuration file
+.pg
+.\" hw: don't hyphenate file names
+.hw .nethackrc defaults.nh nethack.exe nethackW.exe
+The default name of the configuration file varies on different
+operating systems.
+On DOS and Windows, it is ``defaults.nh''
+in the same folder as nethack.exe or nethackW.exe.
+On
+.UX ,
+Linux,
+and Mac OS X it is ``.nethackrc'' in the user's home directory.
+The file may not exist, but it is a normal ASCII text file and
+can be created with any text editor.
+.pg
+Any line in the configuration file starting with `#' is treated as a comment.
+Empty lines are ignored.
+.pg
+Any line beginning with `[' and ending in `]' is considered a section
+marker. The text between the square brackets is the section name.
+Lines after a section marker belong to that section, and are
+ignored unless a CHOOSE -statement was used to select that section.
+Section names are case insensitive.
+.pg
+You can use different configuration statements in the file, some
+of which can be used multiple times. In general, the statements are
+written in capital letters, followed by an equals sign, followed by
+settings particular to that statement. Here is a list of allowed statements:
+.lp OPTIONS
+There are two types of options, boolean and compound options.
+Boolean options toggle a setting on or off, while compound options
+take more diverse values.
+Prefix a boolean option with `no' or `!' to turn it off.
+For compound options, the option name and value are separated by a colon.
+Some options are persistent, and apply only to new games.
+You can specify multiple OPTIONS statements, and multiple options
+in a single OPTIONS statement.
+.pg
+Example:
+.sd
+\fBOPTIONS=dogname:Fido\fP
+.\" '\(dq' == double quote; including a literal double quote here works
+.\" for formatting but confuses Emacs' nroff-mode into thinking
+.\" that the \fP is part of a string rather than a font toggle
+\fBOPTIONS=!legacy,autopickup,pickup_types:$\(dq=/!?+\fP
+.ed
+.lp HACKDIR
+Default location of files NetHack needs. On Windows HACKDIR
+defaults to the location of the NetHack.exe or NetHackw.exe file
+so setting HACKDIR to override that is not usually necessary or recommended.
+.lp LEVELDIR
+The location that in-progress level files are stored. Defaults to HACKDIR,
+must be writeable.
+.lp SAVEDIR
+The location where saved games are kept. Defaults to HACKDIR, must be
+writeable.
+.lp BONESDIR
+The location that bones files are kept. Defaults to HACKDIR, must be
+writeable.
+.lp LOCKDIR
+The location that file synchronization locks are stored. Defaults to
+HACKDIR, must be writeable.
+.lp TROUBLEDIR
+The location that a record of game aborts and self-diagnosed game problems
+is kept. Defaults to HACKDIR, must be writeable.
+.lp AUTOCOMPLETE
+Enable or disable an extended command autocompletion.
+Autocompletion has no effect for the X11 windowport.
+You can specify multiple autocompletions. To enable
+autocompletion, list the extended command. Prefix the
+command with ``!'' to disable the autocompletion
+for that command.
+.pg
+Example:
+.sd
+\fBAUTOCOMPLETE=zap,!annotate\fP
+.ed
+.lp AUTOPICKUP_EXCEPTION
+Set exceptions to the
+.op pickup_types
+option. See the ``Configuring Autopickup Exceptions'' section.
+.lp BINDINGS
+Change the key bindings of some special keys, menu accelerators, or
+extended commands. You can specify multiple bindings. Format is key
+followed by the command, separated by a colon.
+See the ``Changing Key Bindings`` section for more information.
+.pg
+Example:
+.sd
+\fBBIND=^X:getpos.autodescribe\fP
+.ed
+.lp CHOOSE
+Chooses at random one of the comma-separated parameters as an active
+section name. Lines in other sections are ignored.
+.pg
+Example:
+.sd
+\fBOPTIONS=color\fP
+\fBCHOOSE=char A,char B\fP
+\fB[char A]\fP
+\fBOPTIONS=role:arc,race:dwa,align:law,gender:fem\fP
+\fB[char B]\fP
+\fBOPTIONS=role:wiz,race:elf,align:cha,gender:mal\fP
+.ed
+.lp MSGTYPE
+Change the way messages are shown in the top status line.
+See the ``Configuring Message Types`` section.
+.lp MENUCOLOR
+Highlight menu lines with different colors.
+See the ``Configuring Menu Colors`` section.
+.lp SYMBOLS
+Override one or more symbols in the symbols files.
+See the ``Modifying NetHack Symbols'' section.
+.pg
+Example:
+.sd
+\fBSYMBOLS=S_boulder:0\fP
+.ed
+.lp WIZKIT
+Wizard-mode extra items, in a text file containing item names,
+one per line, up to a maximum of 128 lines. Each line is processed
+by the function that handles wishing.
+.pg
+Example:
+.sd
+\fBWIZKIT=\(ti/wizkit.txt\fP \" \(ti == '~'
+.ed
+.lp SOUNDDIR
+Define the directory that contains the sound files.
+See the ``Configuring User Sounds'' section.
+.lp SOUND
+Define a sound mapping. See the ``Configuring User Sounds'' section.
+.pg
+Here is a short example of config file contents:
+.sd
+\fB# Set your character's role, race, gender, and alignment.\fP
+\fBOPTIONS=role:Valkyrie, race:Human, gender:female, align:lawful\fP
+\fB#\fP
+\fB# Turn on autopickup, and set automatically picked up object types\fP
+\fBOPTIONS=autopickup,pickup_types:$"=/!?+\fP
+\fB# Show colored text if possible\fP
+\fBOPTIONS=color\fP
+\fB# Show lit corridors differently\fP
+\fBOPTIONS=lit_corridor\fP
+\fB#\fP
+\fB# No startup splash screen. Windows GUI only.\fP
+\fBOPTIONS=!splash_screen\fP
+.ed
+.hn 2
Using the NETHACKOPTIONS environment variable
.pg
The NETHACKOPTIONS variable is a comma-separated list of initial
values for the various options. Some can only be turned on or off.
You turn one of these on by adding the name of the option to the list,
-and turn it off by typing a `!' or ``no'' before the name. Others take a
+and turn it off by typing a `!' or ``no'' before the name. Others take a
character string as a value. You can set string options by typing
the option name, a colon or equals sign, and then the value of the string.
The value is terminated by the next comma or the end of string.
$ \fBexport NETHACKOPTIONS\fP
.ed
in \fIsh\fP or \fIksh\fP.
-.hn 2
-Using a configuration file
-.pg
-Any line in the configuration file starting with `#' is treated as a comment.
-Any line in the configuration file starting with ``OPTIONS='' may be
-filled out with options in the same syntax as in NETHACKOPTIONS.
-Any line starting with ``SYMBOLS=''
-is taken as defining the corresponding symbol
-in a different syntax, a sequence of decimal numbers giving
-the character position in the current font to be used in displaying
-each entry. Such a sequence can be continued to multiple lines by putting a `\e'
-at the end of each line to be continued.
-.pg
-Any line starting with ``AUTOPICKUP_EXCEPTION='' is taken
-as defining an exception to the
-.op pickup_types
-option.
-There is a section of this Guidebook that discusses that.
.pg
-The default name of the configuration file varies on different
-operating systems, but NETHACKOPTIONS can also be set to
-the full name of a file you want to use (possibly preceded by an `@').
+NETHACKOPTIONS can also be set to the full name of a configuration file you
+want to use (possibly preceded by an `@').
.hn 2
Customization options
.pg
Your starting alignment (align:lawful, align:neutral,
or align:chaotic). You may specify just the first letter.
The default is to randomly pick an appropriate alignment.
-If you prefix a `!' or ``no'' to the value, you can
+If you prefix the value with `!' or ``no'', you will
exclude that alignment from being picked randomly.
Cannot be set with the `O' command. Persistent.
+.lp autodescribe
+Automatically describe the terrain under cursor when asked to get a location
+on the map. The
+.op whatis_coord
+option controls whether the description includes map coordinates.
.lp autodig
Automatically dig if you are wielding a digging tool and moving into a place
that can be dug (default false). Persistent.
quality of the weapon; you are free to manually fill your quiver or quiver sack
or make ready
with the `Q' command instead. If no weapon is found or the option is
-false, the `t' (throw) command is executed instead. Persistent. (default false)
+false, the `t' (throw) command is executed instead.
+Persistent. (default false)
.lp blind
Start the character permanently blind. Persistent. (default false)
.lp bones
Allow saving and loading bones files. Persistent. (default true)
.lp boulder
-Set the character used to display boulders (default is rock class symbol).
+Set the character used to display boulders (default is the ``large rock''
+class symbol, `\`').
.lp catname
Name your starting cat (ex. ``catname:Morris'').
Cannot be set with the `O' command.
.lp character
-Pick your type of character (ex. ``character:Monk'');
-synonym for ``role''. See ``name'' for an alternate method
-of specifying your role. Normally only the first letter of
-the value is examined; the string ``random'' is an exception.
+Synonym for ``role'' to pick the type of your character
+(ex. ``character:Monk'').
+See
+.op role
+for more details.
.lp checkpoint
Save game state after each level change, for possible recovery after
program crash (default on). Persistent.
.lp checkspace
Check free disk space before writing files to disk (default on).
You may have to turn this off if you have more than 2 GB free space
-on the partition used for your save and level files.
+on the partition used for your save and level files
+(because too much space might overflow the calculation and end up
+looking like insufficient space).
Only applies when MFLOPPY was defined during compilation.
.lp clicklook
Allows looking at things on the screen by navigating the mouse
over them and clicking the right mouse button (default off).
.lp cmdassist
-Have the game provide some additional command assistance for
+Have the game provide some additional command assistance for
new players if it detects some anticipated mistakes (default on).
.lp "confirm "
Have user confirm attacks on pets, shopkeepers, and other
.CC - "do not disclose it and do not prompt."
.ei
.ed
+The listing of vanquished monsters can be sorted,
+so there are two additional choices for `v':
+.sd
+.si
+.CC ? "prompt you and default to ask on the prompt;"
+.CC # "disclose it without prompting, ask for sort order."
+.ei
+.ed
+Asking refers to picking one of the orderings from a menu.
+The `+' disclose without prompting choice,
+or being prompted and answering `y' rather than `a',
+will default to showing monsters in the traditional order,
+from high level to low level.
+.lp ""
Omitted categories are implicitly added with `n' prefix.
Specified categories with omitted prefix implicitly use `+' prefix.
Order of the disclosure categories does not matter, program display for
.lp extmenu
Changes the extended commands interface to pop-up a menu of available commands.
It is keystroke compatible with the traditional interface except that it does
-not require that you hit Enter. It is implemented only by the tty port
+not require that you hit Enter. It is implemented only by the tty port
(default off), when the game has been compiled to support tty graphics.
.lp female
An obsolete synonym for ``gender:female''.
An object's inventory letter sticks to it when it's dropped (default on).
If this is off, dropping an object shifts all the remaining inventory letters.
Persistent.
+.lp force_invmenu
+Commands asking for an inventory item show a menu instead of
+a text query with possible menu letters. Default is off.
.lp "fruit "
Name a fruit after something you enjoy eating (ex. ``fruit:mango'')
(default ``slime mold''). Basically a nostalgic whimsy that NetHack uses
still denote your gender using the ``male'' and ``female''
options, the ``gender'' option will take precedence.
The default is to randomly pick an appropriate gender.
-If you prefix a `!' or ``no'' to the value, you can
+If you prefix the value with `!' or ``no'', you will
exclude that gender from being picked randomly.
Cannot be set with the `O' command. Persistent.
+.lp "goldX "
+When filtering objects based on bless/curse state (BUCX), whether to
+treat gold pieces as X (unknown bless/curse state, when `on')
+or U (known to be uncursed, when `off', the default).
+Gold is never blessed or cursed, but it is not described as ``uncursed''
+even when the
+.op implicit_uncursed
+option is `off'.
.lp "help "
If more information is available for an object looked at
with the `/' command, ask if you want to see it (default on). Turning help
off makes just looking at things faster, since you aren't interrupted with the
``More info?'' prompt, but it also means that you might miss some
interesting and/or important information. Persistent.
+.lp herecmd_menu
+When using a windowport that supports mouse and clicking on yourself or
+next to you, show a menu of possible actions for the location.
+Same as herecmdmenu and therecmdmenu commands.
.lp hilite_pet
Visually distinguish pets from similar animals (default off).
The behavior of this option depends on the type of windowing you use.
In text windowing, text highlighting or inverse video is often used;
with tiles, generally displays a small plus-symbol beside the object
on the top of the pile.
+.lp hitpointbar
+Show a hit point bar graph behind your name and title.
+Only available for TTY and Windows GUI, and only when statushilites is on.
.lp horsename
Name your starting horse (ex. ``horsename:Trigger'').
Cannot be set with the `O' command.
.lp menu_deselect_page
Menu character accelerator to deselect all items on this page of a menu.
Implemented by the Amiga, Gem and tty ports.
-Default '\e'.
+Default '\\'.
.lp menu_first_page
Menu character accelerator to jump to the first page in a menu.
Implemented by the Amiga, Gem and tty ports.
-Default '^'.
+Default '\(ha'.
.lp menu_headings
Controls how the headings in a menu are highlighted.
Values are 'none', 'bold', 'dim', 'underline', 'blink', or 'inverse'.
.lp menu_invert_page
Menu character accelerator to invert all items on this page of a menu.
Implemented by the Amiga, Gem and tty ports.
-Default '~'.
+Default '\(ti'. \" ~
.lp menu_last_page
Menu character accelerator to jump to the last page in a menu.
Implemented by the Amiga, Gem and tty ports.
.lp menu_objsyms
Show object symbols in menu headings in menus where
the object symbols act as menu accelerators (default off).
-.lp menu_previous_page
+.lp menu_overlay
+Do not clear the screen before drawing menus, and align
+menus to the right edge of the screen. Only for the tty port.
+(default on)
+.lp menu_previous_page
Menu character accelerator to goto the previous menu page.
Implemented by the Amiga, Gem and tty ports.
Default '<'.
Set your character's name (defaults to your user name). You can also
set your character's role by appending a dash and one or more letters of
the role (that is, by suffixing one of
-.op "-A -B -C -H -K -M -P -Ra -Ro -S -T -V -W" ).
+.op "\-A \-B \-C \-H \-K \-M \-P \-Ra \-Ro \-S \-T \-V \-W" ).
If
-.op "-@"
+.op "\-@"
is used for the role, then a random one will be automatically chosen.
Cannot be set with the `O' command.
.lp "news "
(Settings 2 and 4 are for compatibility with MSDOS or old PC Hack;
in addition to the different behavior for `5', `Alt-5' acts as `G'
and `Alt-0' acts as `I'.
-Setting -1 is to accommodate some German keyboards which have the
+Setting -1 is to accommodate some QWERTZ keyboards which have the
location of the `y' and `z' keys swapped.)
When moving by numbers, to enter a count prefix for those commands
which accept one (such as ``12s'' to search twelve times), precede it
with the letter `n' (``n12s'').
.lp packorder
-Specify the order to list object types in (default ``")[%?+!=/(*`0_'').
+.\" \(dq == double quote; literal '"' formats ok but confuses Emacs' nroff-mode
+Specify the order to list object types in (default ``\(dq)[%?+!=/(*`0_'').
The value of this option should be a string containing the
symbols for the various object types. Any omitted types are filled in
at the end from the previous order.
.lp paranoid_confirmation
A space separated list of specific situations where alternate
prompting is desired. The default is paranoid_confirmation:pray.
-.PS Confirm
+.PS Were-change
.PL Confirm
-for any prompts which are set to require "yes" rather than 'y', also
-require "no" to reject instead of accepting any non-yes response as no
+for any prompts which are set to require ``yes'' rather than 'y', also
+require ``no'' to reject instead of accepting any non-yes response as no
.PL quit
-require "yes" rather than 'y' to confirm quitting
+require ``yes'' rather than 'y' to confirm quitting
the game or switching into non-scoring explore mode;
.PL die
-require "yes" rather than 'y' to confirm dying (not
+require ``yes'' rather than 'y' to confirm dying (not
useful in normal play; applies to explore mode);
.PL bones
-require "yes" rather than 'y' to confirm saving
+require ``yes'' rather than 'y' to confirm saving
bones data when dying in debug mode;
.PL attack
-require "yes" rather than 'y' to confirm attacking a peaceful monster;
+require ``yes'' rather than 'y' to confirm attacking a peaceful monster;
+.PL wand-break
+require ``yes'' rather than 'y' to confirm breaking a wand;
+.PL Were-change
+require ``yes'' rather than 'y' to confirm changing form due to lycanthropy
+when hero has polymorph control;
.PL pray
require 'y' to confirm an attempt to pray rather
than immediately praying; on by default;
-.PL wand
-require "yes" rather than 'y' to confirm breaking a wand;
.PL Remove
require selection from inventory for 'R' and 'T'
commands even when wearing just one applicable item.
+.PL all
+turn on all of the above.
.PE
By default, the pray choice is enabled, the others disabled.
To disable it without setting
.lp pickup_types
Specify the object types to be picked up when
.op autopickup
-is on. Default is all types. You can use
+is on. Default is all types. You can use
.op autopickup_exception
configuration file lines to further refine
.op autopickup
behavior. Persistent.
.lp pile_limit
When walking across a pile of objects on the floor, threshold at which
-the message "there are few/several/many objects here" is given instead
-of showing a popup list of those objects. A value of 0 means "no limit"
-(always list the objects); a value of 1 effectively means "never show
-the objects" since the pile size will always be at least that big;
-default value is 5. Persistent.
+the message ``there are few/several/many objects here'' is given instead
+of showing a popup list of those objects.
+A value of 0 means ``no limit''
+(always list the objects); a value of 1 effectively means ``never show
+the objects'' since the pile size will always be at least that big;
+default value is 5.
+Persistent.
.lp playmode
Values are `normal', `explore', or `debug'.
Allows selection of explore mode (also known as discovery mode) or debug
become wielded. Persistent.
.lp "race "
Selects your race (for example, ``race:human''). Default is random.
-If you prefix a `!' or ``no'' to the value, you can
+If you prefix the value with `!' or ``no'', you will
exclude that race from being picked randomly.
Cannot be set with the `O' command. Persistent.
.lp rest_on_space
-Make the space bar a synonym for the `.' (rest) command (default off).
+Make the space bar a synonym for the `.' (#wait) command (default off).
Persistent.
.lp "role "
Pick your type of character (ex. ``role:Samurai'');
synonym for ``character''. See ``name'' for an alternate method
of specifying your role. Normally only the first letter of the
value is examined; `r' is an exception with ``Rogue'', ``Ranger'',
-and ``random'' values. If you prefix a `!' or ``no'' to the value, you can
-exclude that role from being picked randomly. Persistent.
+and ``random'' values.
+If you prefix the value with `!' or ``no'', you will
+exclude that role from being picked randomly.
+Cannot be set with the `O' command. Persistent.
.lp roguesymset
This option may be used to select one of the named symbol sets found within
``symbols'' to alter the symbols displayed on the screen on the rogue level.
.lp rlecomp
-When writing out a save file, perform run length compression of the map.
+When writing out a save file, perform run length compression of the map.
Not all ports support run length compression. It has no
effect on reading an existing save file.
.lp runmode
like walk, but pause briefly after each step.
.PE
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
+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. Persistent.
.lp safe_pet
Display a sparkly effect when a monster (including yourself) is hit by an
attack to which it is resistant (default on). Persistent.
.lp standout
-Boldface monsters and ``\fB--More--\fP'' (default off). Persistent.
+Boldface monsters and ``\fB\-\-More\-\-\fP'' (default off). Persistent.
.lp statushilites
-Enable coloring of status fields (default off).
-See ``Configuring Status Hilites'' for futher information.
+Controls how many turns status hilite behaviors highlight
+the field. If negated or set to zero, disables status hiliting.
+See ``Configuring Status Hilites'' for further information.
+.lp status_updates
+Allow updates to the status lines at the bottom of the screen (default true).
.lp suppress_alert
This option may be set to a NetHack version level to suppress
-alert notification messages about feature changes for that
+alert notification messages about feature changes for that
and prior versions (ex. ``suppress_alert:3.3.1'').
.lp symset
This option may be used to select one of the named symbol sets found within
``symbols'' to alter the symbols displayed on the screen.
+Use ``symset:default'' to explicitly select the default symbols.
.lp "time "
Show the elapsed game time in turns on bottom line (default off). Persistent.
.lp timed_delay
mouse clicks on the map window. Persistent.
.lp verbose
Provide more commentary during the game (default on). Persistent.
+.lp whatis_coord
+When using the `/' or `;' commands to look around on the map with
+.op autodescribe
+on, display coordinates after the description.
+Also works in other situations where you are asked to pick a location.
+.lp ""
+The possible settings are:
+.sd
+.si
+.CC c "compass ('east' or '3s' or '2n,4w');"
+.CC f "full compass ('east' or '3south' or '2north,4west');"
+.CC m "map <x,y> (map column x=0 is not used);"
+.CC s "screen [row,column] (row is offset to match tty usage);"
+.CC n "none (no coordinates shown) [default]."
+.ei
+.ed
+.lp ""
+The
+.op whatis_coord
+option is also used with
+the `/m', `/M', `/o', and `/O' sub-commands of `/',
+where the `none' setting is overridden with `map'.
+.lp whatis_filter
+When getting a location on the map, and using the keys to cycle through
+next and previous targets, allows filtering the possible targets.
+.lp ""
+.sd
+.si
+.CC n "no filtering [default]"
+.CC v "in view only"
+.CC a "in same area only"
+.ei
+.ed
+.lp ""
+The area-filter tries to be slightly predictive \(em if you're standing
+on a doorway,
+it will consider the area on the side of the door you were last moving towards.
+.lp ""
+Filtering can also be changed when getting a location with the
+``getpos.filter'' key.
+.lp 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)
+.lp 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)
.lp windowtype
Select which windowing system to use, such as ``tty'' or ``X11''
(default depends on version).
Cannot be set with the `O' command.
.lp zerocomp
-When writing out a save file, perform zero-comp compression of the
-contents. Not all ports support zero-comp compression. It has no effect
+When writing out a save file, perform zero-comp compression of the
+contents. Not all ports support zero-comp compression. It has no effect
on reading an existing save file.
.hn 2
Window Port Customization options
.lp align_status
Where to align or place the status window (top, bottom, left, or right).
.lp ascii_map
-NetHack should display an ascii character map if it can.
-.lp color
-NetHack should display color if it can for different monsters,
-objects, and dungeon features
-.lp eight_bit_tty
-NetHack should pass eight-bit character values (for example, specified with the
+If NetHack can, it should display an ascii character map if it can.
+.lp color
+If NetHack can, it should display color if it can for different monsters,
+objects, and dungeon features.
+.lp eight_bit_tty
+If NetHack can, it should pass eight-bit character values (for example,
+specified with the
.op traps
option) straight through to your terminal (default off).
-.lp font_map
-NetHack should use a font by the chosen name for the map window.
-.lp font_menu
-NetHack should use a font by the chosen name for menu windows.
-.lp font_message
-NetHack should use a font by the chosen name for the message window.
-.lp font_status
-NetHack should use a font by the chosen name for the status window.
-.lp font_text
-NetHack should use a font by the chosen name for text windows.
-.lp font_size_map
-NetHack should use this size font for the map window.
-.lp font_size_menu
-NetHack should use this size font for menu windows.
-.lp font_size_message
-NetHack should use this size font for the message window.
+.lp font_map
+if NetHack can, it should use a font by the chosen name for the map window.
+.lp font_menu
+If NetHack can, it should use a font by the chosen name for menu windows.
+.lp font_message
+If NetHack can, it should use a font by the chosen name for the message window.
+.lp font_status
+If NetHack can, it should use a font by the chosen name for the status window.
+.lp font_text
+If NetHack can, it should use a font by the chosen name for text windows.
+.lp font_size_map
+If NetHack can, it should use this size font for the map window.
+.lp font_size_menu
+If NetHack can, it should use this size font for menu windows.
+.lp font_size_message
+If NetHack can, it should use this size font for the message window.
.lp font_size_status
-NetHack should use this size font for the status window.
-.lp font_size_text
-NetHack should use this size font for text windows.
+If NetHack can, it should use this size font for the status window.
+.lp font_size_text
+If NetHack can, it should use this size font for text windows.
.lp fullscreen
-NetHack should try and display on the entire screen rather than in a window.
-.lp large_font
-NetHack should use a large font.
-.lp map_mode
-NetHack should display the map in the manner specified.
+If NetHack can, it should try and display on the entire screen rather than
+in a window.
+.lp large_font
+If NetHack can, it should use a large font.
+.lp map_mode
+If NetHack can, it should display the map in the manner specified.
.lp mouse_support
Allow use of the mouse for input and travel.
.lp player_selection
-NetHack should pop up dialog boxes, or use prompts for character selection.
-.lp popup_dialog
-NetHack should pop up dialog boxes for input.
+If NetHack can, it should pop up dialog boxes, or use prompts for character
+selection.
+.lp popup_dialog
+If NetHack can, it should pop up dialog boxes for input.
.lp preload_tiles
-NetHack should preload tiles into memory.
+If NetHack can, it should preload tiles into memory.
For example, in the protected mode MSDOS version, control whether tiles
get pre-loaded into RAM at the start of the game. Doing so
enhances performance of the tile graphics, but uses more memory. (default on).
Cannot be set with the `O' command.
.lp scroll_amount
-NetHack should scroll the display by this number of cells
+If NetHack can, it should scroll the display by this number of cells
when the hero reaches the scroll_margin.
.lp scroll_margin
-NetHack should scroll the display when the hero or cursor
+If NetHack can, it should scroll the display when the hero or cursor
is this number of cells away from the edge of the window.
.lp selectsaved
-NetHack should display a menu of existing saved games for the player to
-choose from at game startup, if it can. Not all ports support this option.
+If NetHack can, it should display a menu of existing saved games for the
+player to choose from at game startup, if it can.
+Not all ports support this option.
.lp softkeyboard
-Display an onscreen keyboard. Handhelds are most likely to support this option.
+Display an onscreen keyboard.
+Handhelds are most likely to support this option.
.lp splash_screen
-NetHack should display an opening splash screen when it starts up (default yes).
-.lp tiled_map
-NetHack should display a tiled map if it can.
+If NetHack can, it should display an opening splash screen when it starts
+up (default yes).
+.lp tiled_map
+If NetHack can, it should display a tiled map if it can.
.lp tile_file
Specify the name of an alternative tile file to override the default.
.lp tile_height
.lp use_darkgray
Use bold black instead of blue for black glyphs (TTY only).
.lp use_inverse
-NetHack should display inverse when the game specifies it.
+If NetHack can, it should display inverse when the game specifies it.
.lp vary_msgcount
-NetHack should display this number of messages at a time in
+If NetHack can, it should display this number of messages at a time in
the message window.
.lp windowcolors
-NetHack should display windows with the specified foreground/background
-colors if it can.
+If NetHack can, it should display windows with the specified
+foreground/background colors if it can.
.lp wraptext
-NetHack port should wrap long lines of text if they don't fit in
+If NetHack can, it should wrap long lines of text if they don't fit in
the visible area of the window.
.hn 2
Platform-specific Customization options
.pg
-Here are explanations of options that are used by specific platforms or ports
+Here are explanations of options that are used by specific platforms or ports
to customize and change the port behavior.
.lp altkeyhandler
Select an alternate keystroke handler dll to load (Win32 tty NetHack only).
-The name of the handler is specified without the .dll extension and without any
-path information.
+The name of the handler is specified without the .dll extension and without
+any path information.
Cannot be set with the `O' command.
.lp altmeta
On Amiga, this option controls whether typing `Alt' plus another key
functions as a meta-shift for that key (default on).
.lp altmeta
On other (non-Amiga) systems where this option is available, it can be
-set to tell nethack to convert a two character sequence beginning with
+set to tell NetHack to convert a two character sequence beginning with
ESC into a meta-shifted version of the second character (default off).
.lp ""
This conversion is only done for commands, not for other input prompts.
Note that typing one or more digits as a count prefix prior to a
-command--preceded by \fBn\fP if the
+command \(em preceded by \fBn\fP if the
.op number_pad
-option is set--is also subject to this conversion, so attempting to
-abort the count by typing ESC will leave nethack waiting for another
-character to complete the two character sequence. Type a second ESC to
-finish cancelling such a count. At other prompts a single ESC suffices.
+option is set \(em is also subject to this conversion, so attempting to
+abort the count by typing ESC will leave NetHack waiting for another
+character to complete the two character sequence.
+Type a second ESC to finish cancelling such a count.
+At other prompts a single ESC suffices.
.lp "BIOS "
Use BIOS calls to update the screen
display quickly and to read the keyboard (allowing the use of arrow
Set the video mode used (PC NetHack only).
Values are `autodetect', `default', or `vga'.
Setting `vga' (or `autodetect' with vga hardware present) will cause
-the game to display tiles.
+the game to display tiles.
Cannot be set with the `O' command.
.lp videocolors
Set the color palette for PC systems using NO_TERMS
possible to compile NetHack without regular expression support on a platform
where there is no regular expression library. While this is not true of any
modern platform, if your NetHack was built this way, patterns are instead glob
-patterns.
+patterns. This applies to Autopickup exceptions, Message types, Menu colors,
+and User sounds.
.hn 2
Configuring Autopickup Exceptions
.pg
You can further refine the behavior of the
.op autopickup
-option beyond what is available through the
+option beyond what is available through the
.op pickup_types
-option.
+option.
.pg
-By placing
+By placing
.op autopickup_exception
lines in your configuration
file, you can define patterns to be checked when the game is about to
autopickup something.
.lp autopickup_exception
-Sets an exception to the
+Sets an exception to the
.op pickup_types
option.
The
match against the singular form of the description of an object at your
location.
.lp ""
-In addition, some characters are treated specially if they occur as the first
+In addition, some characters are treated specially if they occur as the first
character in the pattern, specifically:
.sd
.si
The last example results in the exclusion of items known to be cursed from
autopickup.
.hn 2
+Changing Key Bindings
+.pg
+It is possible to change the default key bindings of some special commands,
+menu accelerator keys, and extended commands, by using BIND stanzas in the
+configuration file.
+Format is key, followed by the command to bind to, separated by a colon.
+The key can be a single character (``x''), a control key (``^X'',
+``C-x''), a meta key (``M-x''), or a three-digit decimal ASCII code.
+.pg
+For example:
+.sd
+.si
+BIND=^X:getpos.autodescribe
+BIND={:menu_first_page
+BIND=v:loot
+.ei
+.ed
+.pg
+.lp "Extended command keys"
+You can bind multiple keys to the same extended command. Unbind a key by
+using ``nothing'' as the extended command to bind to. You can also bind
+the ``<esc>'', ``<enter>'', and ``<space>'' keys.
+.lp "Menu accelerator keys"
+The menu control or accelerator keys can also be rebound via OPTIONS-lines
+in the config file. You cannot bind object symbols into menu accelerators.
+.lp "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 "context", and if bound
+to same keys, only one of those commands will be available. Special command
+can only be bound to a single key.
+.pg
+.lp count
+Prefix key to start a count, to repeat a command this many times.
+With
+.op number_pad
+only.
+Default is 'n'.
+.lp doinv
+Show inventory.
+With
+.op number_pad
+only.
+Default is '0'.
+.lp fight
+Prefix key to force fight a direction. Default is 'F'.
+.lp fight.numpad
+Prefix key to force fight a direction.
+With
+.op number_pad
+only.
+Default is '-'.
+.lp getdir.help
+When asked for a direction, the key to show the help. Default is '?'.
+.lp getdir.self
+When asked for a direction, the key to target yourself. Default is '.'.
+.lp getdir.self2
+When asked for a direction, the key to target yourself. Default is 's'.
+.lp getpos.autodescribe
+When asked for a location, the key to toggle autodescribe. Default is '#'.
+.lp getpos.all.next
+When asked for a location, the key to go to next closest interesting thing.
+Default is 'a'.
+.lp getpos.all.prev
+When asked for a location, the key to go to previous closest interesting
+thing.
+Default is 'A'.
+.lp getpos.door.next
+When asked for a location, the key to go to next closest door or doorway.
+Default is 'd'.
+.lp getpos.door.prev
+When asked for a location, the key to go to previous closest door or doorway.
+Default is 'D'.
+.lp getpos.help
+When asked for a location, the key to show help. Default is '?'.
+.lp getpos.mon.next
+When asked for a location, the key to go to next closest monster.
+Default is 'm'.
+.lp getpos.mon.prev
+When asked for a location, the key to go to previous closest monster.
+Default is 'M'.
+.lp getpos.obj.next
+When asked for a location, the key to go to next closest object.
+Default is 'o'.
+.lp getpos.obj.prev
+When asked for a location, the key to go to previous closest object.
+Default is 'O'.
+.lp getpos.menu
+When asked for a location, and using one of the next or previous keys to
+cycle through targets, toggle showing a menu instead.
+Default is '!'.
+.lp getpos.moveskip
+When asked for a location, and using the shifted movement keys or meta-digit
+keys to fast-move around, move by skipping the same glyphs instead of
+by 8 units.
+Default is '*'.
+.lp getpos.filter
+When asked for a location, change the filtering mode when using one of
+the next or previous keys to cycle through targets. Toggles between no
+filtering, in view only, and in the same area only.
+Default is '\(dq'. \" double quote
+.lp getpos.pick
+When asked for a location, the key to choose the location, and possibly
+ask for more info.
+Default is '.'.
+.lp getpos.pick.once
+When asked for a location, the key to choose the location, and skip asking
+for more info.
+Default is ','.
+.lp getpos.pick.quick
+When asked for a location, the key to choose the location, skip asking for
+more info, and exit the location asking loop.
+Default is ';'.
+.lp getpos.pick.verbose
+When asked for a location, the key to choose the location, and show more
+info without asking.
+Default is ':'.
+.lp getpos.self
+When asked for a location, the key to go to your location.
+Default is '@'.
+.lp getpos.unexplored.next
+When asked for a location, the key to go to next closest unexplored location.
+Default is 'x'.
+.lp getpos.unexplored.prev
+When asked for a location, the key to go to previous closest unexplored
+location.
+Default is 'X'.
+.lp getpos.valid
+When asked for a location, the key to go to show valid target locations.
+Default is '$'.
+.lp getpos.valid.next
+When asked for a location, the key to go to next closest valid location.
+Default is 'z'.
+.lp getpos.valid.prev
+When asked for a location, the key to go to previous closest valid location.
+Default is 'Z'.
+.lp nopickup
+Prefix key to move without picking up items. Default is 'm'.
+.lp redraw
+Key to redraw the screen. Default is '^R'.
+.lp redraw.numpad
+Key to redraw the screen.
+With
+.op number_pad
+only.
+Default is '^L'.
+.lp repeat
+Key to repeat previous command. Default is '^A'.
+.lp reqmenu
+Prefix key to request menu from some commands. Default is 'm'.
+.lp run
+Prefix key to run towards a direction. Default is 'G'.
+.lp run.nopickup
+Prefix key to run towards a direction without picking up items on the way.
+Default is 'M'.
+.lp run.numpad
+Prefix key to run towards a direction.
+With
+.op number_pad
+only.
+Default is '5'.
+.lp rush
+Prefix key to rush towards a direction. Default is 'g'.
+.hn 2
Configuring Message Types
.pg
You can change the way the messages are shown in the message area, when
.si
MSGTYPE=type "pattern"
.ei
-.PS "message type"
+.PS "pattern"
.PL type
how the message should be shown;
.PL pattern
The pattern should be a regular expression.
.lp ""
Allowed types are:
-.sd
-.si
-show - show message normally.
-hide - never show the message.
-stop - wait for user with more-prompt.
-norep - show the message once, but not again if no other message is shown in between.
-.ei
-.ed
+.PS "norep"
+.PL show
+show message normally;
+.PL hide
+never show the message;
+.PL stop
+wait for user with more-prompt;
+.PL norep
+show the message once, but not again if no other message is shown in between.
+.PE
.lp ""
Here's an example of message types using NetHack's internal
pattern matching facility:
MSGTYPE=hide "You displaced *."
.ei
.ed
-specifies that whenever a message "You feel hungry" is shown,
+specifies that whenever a message ``You feel hungry'' is shown,
the user is prompted with more-prompt, and a message matching
-"You displaced <something>." is not shown at all.
+``You displaced <something>.'' is not shown at all.
+.\" historical trivia: "You displaced Fido." was the sort of message you
+.\" got when swapping places with your pet, but that was changed long ago...
.lp ""
The order of the defined MSGTYPE-lines is important; the last matching
rule is used. Put the general case first, exceptions below them.
MENUCOLOR="* cursed *(being worn)"=red&underline
.ei
.ed
-specifies that any menu line with " blessed " contained
-in it will be shown in green color, lines with " cursed " will be
-shown in red, and lines with " cursed " followed by "(being worn)"
+specifies that any menu line with `` blessed '' contained
+in it will be shown in green color, lines with `` cursed '' will be
+shown in red, and lines with `` cursed '' followed by ``(being worn)''
on the same line will be shown in red color and underlined.
You can have multiple MENUCOLOR entries in your config file,
and the last MENUCOLOR-line in your config file that matches
a menu line will be used for the line.
.pg
Note that if you intend to have one or more color specifications match
-" uncursed ", you will probably want to turn the
+`` uncursed '', you will probably want to turn the
.op implicit_uncursed
option off so that all items known to be uncursed are actually
displayed with the ``uncursed'' description.
.hn 2
Configuring User Sounds
.pg
-Some platforms allow you to define sound files to be played when a message
+Some platforms allow you to define sound files to be played when a message
that matches a user-defined pattern is delivered to the message window.
At this time the Qt port and the win32tty and win32gui ports support the
use of user sounds.
Configuring Status Hilites
.pg
Your copy of NetHack may have been compiled with support for ``Status Hilites''.
-If so, you can customize your game display by setting thresholds to
+If so, you can customize your game display by setting thresholds to
change the color or appearance of fields in the status display.
.pg
+The format for defining status colors is:
+.si
+.lp "OPTION=hilite_status: field-name/behavior/color&attributes"
+.ei
+.pg
For example, the following line in your config file will cause
the hitpoints field to display in the color red if your hitpoints
drop to or below a threshold of 30%:
.si
-.lp "OPTION=hilite_status: hitpoints/30%/red/normal"
+.lp "OPTION=hilite_status: hitpoints/<30%/red/normal"
.ei
.pg
For another example, the following line in your config file will cause
wisdom to be displayed red if it drops and green if it rises.
.si
-.lp "OPTION=hilite_status: wisdom/updown/red/green"
+.lp "OPTION=hilite_status: wisdom/down/red/up/green"
.ei
.pg
You can adjust the display of the following status fields:
.\"TABLE_END Do not delete this line.
.TE
.lp ""
+The pseudo-field `characteristics' can be used to set all six
+of Str, Dex, Con, Int, Wis, and Cha at once. `HD' is `hit dice',
+an approximation of experience level displayed when polymorphed.
+`experience', `time', and `score' are conditionally displayed
+depending upon your other option settings.
+.lp ""
+Instead of a behavior, `condition' takes the following condition flags:
+stone, slime, strngl, foodpois, termill, blind, deaf, stun, conf, hallu,
+lev, fly, and ride. You can use `major_troubles' as an alias
+for stone through termill, `minor_troubles' for blind through hallu,
+`movement' for lev, fly, and ride, and `all' for every condition.
+.lp ""
+Allowed behaviors are "always", "up", "down", "changed", a
+percentage or absolute number threshold, or a text to match against.
+.si
+.lp "*"
+"always" will set the default attributes for that field.
+.lp "*"
+"up" and "down" set the field attributes for when the field
+value changes upwards or downwards. This attribute times out after
+statushilites turns.
+.lp "*"
+"changed" sets the field attribute for when the field value
+changes. This attribute times out after statushilites turns.
+.lp "*"
+percentage sets the field attribute when the field value
+matches the percentage. If the percentage is prefixed with '<'
+or '>', it also matches when value is below or above the percentage.
+Only valid for `power' and `hitpoints' fields.
+.lp "*"
+absolute value sets the attribute when the field value
+matches that number. If the number is prefixed with '<'
+or '>', it also matches when value is below or above.
+.lp "*"
+text match sets the attribute when the field value
+matches the text. Text matches can only be used for `alignment',
+`carrying-capacity', and `dungeon-level'.
+.ei
+.lp ""
Allowed colors are black, red, green, brown, blue, magenta, cyan, gray,
orange, lightgreen, yellow, lightblue, lightmagenta, lightcyan, and white.
.lp ""
-Allowed attributes are bold, inverse, normal.
+Allowed attributes are bold, inverse, underline, blink, dim, and normal.
Note that the platform used may interpret the attributes any way it
wants.
.lp ""
-Behaviours can occur based on percentage thresholds, updown, or absolute values.
The in-game options menu can help you determine the correct syntax for a
config file.
.lp ""
-The whole feature can be disabled by setting option statushilites off.
+The whole feature can be disabled by setting option
+statushilites to 0.
+.lp ""
+Example hilites:
+.sd
+.si
+OPTION=hilite_status: gold/up/yellow/down/brown
+OPTION=hilite_status: characteristics/up/green/down/red
+OPTION=hilite_status: hitpoints/100%/gray&normal
+OPTION=hilite_status: hitpoints/<100%/green&normal
+OPTION=hilite_status: hitpoints/<66%/yellow&normal
+OPTION=hilite_status: hitpoints/<50%/orange&normal
+OPTION=hilite_status: hitpoints/<33%/red&bold
+OPTION=hilite_status: hitpoints/<15%/red&inverse
+OPTION=hilite_status: condition/major/orange&inverse
+OPTION=hilite_status: condition/lev+fly/red&inverse
+.ei
+.ed
.pg
.hn 2
-Modifying NetHack Symbols
+Modifying NetHack Symbols
.pg
NetHack can load entire symbol sets from the symbol file.
.pg
on the rogue level.
.pg
You can also override one or more symbols using the SYMBOLS config
-file option. Symbols are specified as name:value pairs. Note that
+file option. Symbols are specified as name:value pairs.
+Note that
NetHack escape-processes the value string in conventional C fashion.
-This means that \e is a prefix to take the following character literally. Thus
-\e needs to be represented as \e\e.
-The special escape form
-\em switches on the meta bit in the symbol value, and the \e^ prefix causes the
-following character to be treated as a control
-character.
+This means that \\ is a prefix to take the following character literally.
+Thus \\ needs to be represented as \\\\.
+The special prefix form \\m switches on the meta bit in the symbol value,
+and the \(ha prefix causes the following character to be treated as a
+control character.
.pg
.TS S
center;
c s s
c1 l1 l.
.\"TABLE_START
-NetHack Symbols
+.\" because description is wide, centered title seems off, so pad it a bit
+.\" note that each backslash precedes one space of padding (including the
+.\" last one; in other words, there's a trailing space here)
+NetHack Symbols\ \ \ \ \ \ \
Default Symbol Name Description
\_ \_ \_
- S_air (air)
+\ S_air (air)
\&_ S_altar (altar)
-" S_amulet (amulet)
+\(dq S_amulet (amulet)
A S_angel (angelic being)
a S_ant (ant or other insect)
-^ S_anti_magic_trap (anti-magic field)
+\(ha 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)
+\(ha S_arrow_trap (arrow trap)
0 S_ball (iron ball)
# S_bars (iron bars)
B S_bat (bat or bird)
-^ S_bear_trap (bear trap)
-- S_blcorn (bottom left corner)
+\(ha S_bear_trap (bear trap)
+\- S_blcorn (bottom left corner)
b S_blob (blob)
+ S_book (spellbook)
) S_boomleft (boomerang open left)
( S_boomright (boomerang open right)
-` S_boulder (boulder)
-- S_brcorn (bottom right corner)
+\` S_boulder (boulder)
+\- S_brcorn (bottom right corner)
C S_centaur (centaur)
\&_ S_chain (iron chain)
# S_cloud (cloud)
c S_cockatrice (cockatrice)
$ S_coin (pile of coins)
# S_corr (corridor)
-- S_crwall (wall)
-^ S_dart_trap (dart trap)
+\- S_crwall (wall)
+# S_darkroom (dark room)
+\(ha S_dart_trap (dart trap)
& S_demon (major demon)
* S_digbeam (dig beam)
> S_dnladder (ladder down)
; S_eel (sea monster)
E S_elemental (elemental)
/ S_explode1 (explosion top left)
-- S_explode2 (explosion top center)
-`\e' S_explode3 (explosion top right)
+\- S_explode2 (explosion top center)
+\\ S_explode3 (explosion top right)
| S_explode4 (explosion middle left)
- S_explode5 (explosion middle center)
+\ S_explode5 (explosion middle center)
| S_explode6 (explosion middle right)
-`\e' S_explode7 (explosion bottom left)
-- S_explode8 (explosion bottom center)
+\\ S_explode7 (explosion bottom left)
+\- S_explode8 (explosion bottom center)
/ S_explode9 (explosion bottom right)
e S_eye (eye or sphere)
-^ S_falling_rock_trap (falling rock trap)
+\(ha S_falling_rock_trap (falling rock trap)
f S_feline (cat or other feline)
-^ S_fire_trap (fire trap)
+\(ha 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)
+\ S_ghost (ghost)
H S_giant (giant humanoid)
G S_gnome (gnome)
' S_golem (golem)
| S_grave (grave)
g S_gremlin (gremlin)
-- S_hbeam (wall)
+\- S_hbeam (horizontal beam [zap animation])
# S_hcdbridge (horizontal raised drawbridge)
-+ S_hcdoor (closed door)
-. S_hodbridge (horizontal lowered drawbridge)
-| S_hodoor (open door)
-^ S_hole (hole)
++ S_hcdoor (closed door in horizontal wall)
+\. S_hodbridge (horizontal lowered drawbridge)
+| S_hodoor (open door in horizontal wall)
+\(ha S_hole (hole)
@ S_human (human or elf)
h S_humanoid (humanoid)
-- S_hwall (horizontal wall)
-. S_ice (ice)
+\- S_hwall (horizontal wall)
+\. S_ice (ice)
i S_imp (imp or minor demon)
+I S_invisible (invisible monster)
J S_jabberwock (jabberwock)
j S_jelly (jelly)
k S_kobold (kobold)
K S_kop (Keystone Kop)
-^ S_land_mine (land mine)
+\(ha S_land_mine (land mine)
} S_lava (molten lava)
l S_leprechaun (leprechaun)
-^ S_level_teleporter (level teleporter)
+\(ha S_level_teleporter (level teleporter)
L S_lich (lich)
y S_light (light)
# S_litcorr (lit corridor)
: S_lizard (lizard)
-`\e' S_lslant (wall)
-^ S_magic_portal (magic portal)
-^ S_magic_trap (magic trap)
+\\ S_lslant (diagonal beam [zap animation])
+\(ha S_magic_portal (magic portal)
+\(ha S_magic_trap (magic trap)
m S_mimic (mimic)
] S_mimic_def (mimic)
M S_mummy (mummy)
N S_naga (naga)
-. S_ndoor (doorway)
+\. S_ndoor (doorway witout door)
n S_nymph (nymph)
O S_ogre (ogre)
o S_orc (orc)
p S_piercer (piercer)
-^ S_pit (pit)
+\(ha S_pit (pit)
# S_poisoncloud (poison cloud)
-^ S_polymorph_trap (polymorph trap)
+\(ha 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)
+\` S_rock (boulder or statue)
r S_rodent (rodent)
-^ S_rolling_boulder_trap (rolling boulder trap)
-. S_room (floor of a room)
-/ S_rslant (wall)
-^ S_rust_trap (rust trap)
+\(ha S_rolling_boulder_trap (rolling boulder trap)
+\. S_room (floor of a room)
+/ S_rslant (diagonal beam [zap animation])
+\(ha S_rust_trap (rust trap)
R S_rustmonst (rust monster or disenchanter)
? S_scroll (scroll)
# S_sink (sink)
-^ S_sleeping_gas_trap (sleeping gas trap)
+\(ha S_sleeping_gas_trap (sleeping gas trap)
S S_snake (snake)
s S_spider (arachnid or centipede)
-^ S_spiked_pit (spiked pit)
-^ S_squeaky_board (squeaky board)
+\(ha S_spiked_pit (spiked pit)
+\(ha S_squeaky_board (squeaky board)
0 S_ss1 (magic shield 1 of 4)
# S_ss2 (magic shield 2 of 4)
@ S_ss3 (magic shield 3 of 4)
* S_ss4 (magic shield 4 of 4)
-^ S_statue_trap (statue trap)
- S_stone (dark part of a room)
-- S_sw_bc (swallow bottom center)
-`\e' S_sw_bl (swallow bottom left)
+\(ha S_statue_trap (statue trap)
+\ S_stone (dark part of a room)
+] S_strange_obj (strange object)
+\- S_sw_bc (swallow bottom center)
+\\ S_sw_bl (swallow bottom left)
/ S_sw_br (swallow bottom right)
| S_sw_ml (swallow middle left)
| S_sw_mr (swallow middle right)
-- S_sw_tc (swallow top center)
+\- S_sw_tc (swallow top center)
/ S_sw_tl (swallow top left)
-`\e' S_sw_tr (swallow top right)
-- S_tdwall (wall)
-^ S_teleportation_trap (teleportation trap)
-\ S_throne (opulent throne)
-- S_tlcorn (top left corner)
+\\ S_sw_tr (swallow top right)
+\- S_tdwall (wall)
+\(ha S_teleportation_trap (teleportation trap)
+\\ S_throne (opulent throne)
+\- S_tlcorn (top left corner)
| S_tlwall (wall)
( S_tool (useful item (pick-axe\, key\, lamp...))
-^ S_trap_door (trap door)
+\(ha S_trap_door (trap door)
t S_trapper (trapper or lurker above)
-- S_trcorn (top right corner)
+\- S_trcorn (top right corner)
# S_tree (tree)
T S_troll (troll)
| S_trwall (wall)
-- S_tuwall (wall)
+\- S_tuwall (wall)
U S_umber (umber hulk)
u S_unicorn (unicorn or horse)
< S_upladder (ladder up)
< S_upstair (staircase up)
V S_vampire (vampire)
-| S_vbeam (wall)
+| S_vbeam (vertical beam [zap animation])
# S_vcdbridge (vertical raised drawbridge)
-+ S_vcdoor (closed door)
-. S_venom (splash of venom)
-^ S_vibrating_square (vibrating square)
-. S_vodbridge (vertical lowered drawbridge)
-- S_vodoor (open door)
++ S_vcdoor (closed door in vertical wall)
+\. S_venom (splash of venom)
+\(ha 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)
} S_water (water)
) S_weapon (weapon)
-" S_web (web)
+\(dq S_web (web)
w S_worm (worm)
-~ S_worm_tail (long worm tail)
+\(ti S_worm_tail (long worm tail)
W S_wraith (wraith)
x S_xan (xan or other mythical/fantastic insect)
X S_xorn (xorn)
.\"TABLE_END Do not delete this line.
.TE
.pg
+There is one additional class of object, described as ``strange object'',
+which will occasionally be the shape taken on by mimics and shown as `]'
+for maps displayed as text characters.
+Although the displayed character is the same as the default value for
+`S_mimic_def', it is a different symbol and there is no corresponding
+`S_strange_object' symbol nor any way to assign an alternate value for it.
+.pg
.hn 2
Configuring NetHack for Play by the Blind
.pg
These co-ordinates are often useful in giving players a better sense of the
overall location of items on the screen.
.pg
+NetHack can also be compiled with support for sending the game messages
+to an external program, such as a text-to-speech synthesizer. If the #version
+extended command shows ``external program as a message handler'', your NetHack
+has been compiled with the capability. When compiling NetHack from source
+on Linux and other POSIX systems, define MSGHANDLER to enable it. To use
+the capability, set the environment variable NETHACK_MSGHANDLER to an
+executable, which will be executed with the game message as the program's
+only parameter.
+.pg
While it is not difficult for experienced users to edit the \fBdefaults.nh\fP
file to accomplish this, novices may find this task somewhat daunting.
-Included within the ``symbols'' file of all official distributions of NetHack
+Included within the ``symbols'' file of all official distributions of NetHack
is a symset called \fBNHAccess\fP. Selecting that symset in your
-configuration file will cause the game to run in a manner accessible
-to the blind. After you have gained some experience with the game
-and with editing files, you may want to alter settings via \fBSYMBOLS=\fP
-in your configuration file to better suit your preferences.
+configuration file will cause the game to run in a manner accessible
+to the blind. After you have gained some experience with the game
+and with editing files, you may want to alter settings via \fBSYMBOLS=\fP
+in your configuration file to better suit your preferences.
The most crucial settings to make the game accessible are:
.pg
.lp symset:NHAccess
Load a symbol set appropriate for use by blind players.
.lp roguesymset:NHAccess
-Load a symbol set for the rogue level that is appropriate for
+Load a symbol set for the rogue level that is appropriate for
use by blind players.
.lp menustyle:traditional
This will assist in the interface to speech synthesizers.
+.lp nomenu_overlay
+Show menus on a cleared screen and aligned to the left edge.
.lp 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
+If this is the case, disable the
+.op number_pad
+option and use the traditional
Rogue-like commands.
+.lp autodescribe
+Automatically describe the terrain under the cursor when targeting.
+.lp mention_walls
+Give feedback messages when walking towards a wall or when travel command
+was interrupted.
+.lp whatis_coord:compass
+When targeting with cursor, describe the cursor position with coordinates
+relative to your character.
+.lp whatis_filter:area
+When targeting with cursor, filter possible locations so only those in
+the same area (eg. same room, or same corridor) are considered.
+.lp whatis_moveskip
+When targeting with cursor and using fast-move, skip the same glyphs instead
+of moving 8 units at a time.
+.lp nostatus_updates
+Prevent updates to the status lines at the bottom of the screen, if
+your screen-reader reads those lines. The same information can be
+seen via the #attributes command.
.hn 2
Global Configuration for System Administrators
.pg
set uses a compiled-in default (which may not be appropriate for your
system).
.pg
+.\" '\ =\ Word' follow each option name with space+equals+space+first
+.\" word of sentence in a way that won't have spaces inserted
+.\" there if that line is padded from left to right;
+.\" essentially, "OPTION = Word" becomes one token as far
+.\" as filling and justifying are concerned
.lp
-WIZARDS
-A space-separated list of user names who are allowed to play in wizard
+WIZARDS\ =\ A space-separated list of user names who are allowed to
+play in wizard
mode (the debugging mode, not the magic-using role). A value of a single
asterisk (*) allows anyone to start a game in wizard mode.
.lp
-SHELLERS
-A list of users who are allowed to use the shell escape command (!). The
-syntax is the same as WIZARDS.
+SHELLERS\ =\ A list of users who are allowed to use the shell
+escape command (!). The syntax is the same as WIZARDS.
.lp
-EXPLORERS
-A list of users who are allowed to use the explore mode. The
+EXPLORERS\ =\ A list of users who are allowed to use the explore mode. The
syntax is the same as WIZARDS.
.lp
-MAXPLAYERS
-Limit the maximum number of games that can be running at the same time.
+MAXPLAYERS\ =\ Limit the maximum number of games that can be running
+at the same time.
.lp
-SUPPORT
-A string explaining how to get local support (no default value).
+SUPPORT\ =\ A string explaining how to get local support (no default value).
.lp
-RECOVER
-A string explaining how to recover a game on this system (no default value).
+RECOVER\ =\ A string explaining how to recover a game on this system
+(no default value).
.lp
-SEDUCE
-0 or 1 to disable or enable, respectively, the SEDUCE option (see the source
-for details on this function).
+SEDUCE\ =\ 0 or 1 to disable or enable, respectively, the SEDUCE option.
+When disabled, incubi and succubi behave like nymphs.
.lp
-CHECK_SAVE_UID
-0 or 1 to disable or enable, respectively, the UID checking for savefiles.
+CHECK_PLNAME\ =\ Setting this to 1 will make the EXPLORERS, WIZARDS, and
+SHELLERS check for the player name instead of the user's login name.
+.lp
+CHECK_SAVE_UID\ =\ 0 or 1 to disable or enable, respectively, the UID
+(used identification number) checking for save files (to verify that the
+user who is restoring is the same one who saved).
.pg
The following options affect the score file:
.pg
.lp
-PERSMAX
-Maximum number of entries for one person.
+PERSMAX\ =\ Maximum number of entries for one person.
+.lp
+ENTRYMAX\ =\ Maximum number of entries in the score file.
.lp
-ENTRYMAX
-Maximum number of entries in the score file.
+POINTSMIN\ =\ Minimum number of points to get an entry in the score file.
.lp
-POINTSMIN
-Minimum number of points to get an entry in the score file.
+PERS_IS_UID\ =\ 0 or 1 to use user names or numeric userids, respectively,
+to identify unique people for the score file.
.lp
-PERS_IS_UID
-0 or 1 to use user names or numeric userids, respectively, to identify
-unique people for the score file.
+MAX_STATUENAME_RANK\ =\ Maximum number of score file entries to use for
+random statue names (default is 10).
.lp
-MAX_STATUENAME_RANK
-Maximum number of score file entries to use for random statue names
-(default is 10).
+DUMPLOGFILE\ =\ A filename where the end-of-game dumplog is saved.
+Not defining this will prevent dumplog from being created. Only available
+if your game is compiled with DUMPLOG. Allows the following placeholders:
+.\" note: %M is not an entry in the table, but 'M' is the widest letter
+.PS %M
+.PL %%
+literal '%'
+.PL %v
+version (eg. "3.6.1-0")
+.PL %u
+game UID
+.PL %t
+game start time, UNIX timestamp format
+.PL %T
+current time, UNIX timestamp format
+.PL %d
+game start time, YYYYMMDDhhmmss format
+.PL %D
+current time, YYYYMMDDhhmmss format
+.PL %n
+player name
+.PL %N
+first character of player name
+.PE
+.
.hn 1
Scoring
.pg
all your gold, but if you swing and live, you might find more.
.pg
If you just want to see what the current top players/games list is, you
-can type \fBnethack -s all\fP on most versions.
-
+can type \fBnethack \-s all\fP on most versions.
+.
.hn 1
Explore mode
.pg
.pg
There are two ways of enabling explore mode. One is to start the game
with the
-.op -X
+.op \-X
command-line switch or with the
.op playmode:explore
option. The other is to issue the ``#exploremode'' extended command while
program rather than to provide god-like powers to your character, and
players who attempt debugging are expected to figure out how to use it
themselves. It is initiated by starting the game with the
-.op -D
+.op \-D
command-line switch or with the
.op playmode:debug
option.
And on any system, the program might have been configured to omit debug
mode entirely. Attempting to start a game in debug mode when not allowed
or not available will result in falling back to explore mode instead.
-
+.
.hn
Credits
.pg
-The original \fIhack\fP game was modeled on the Berkeley
-.ux
+The original \fIhack\fP game was modeled on the Berkeley
+.UX
\fIrogue\fP game. Large portions of this paper were shamelessly
cribbed from \fIA Guide to the Dungeons of Doom\fP, by Michael C. Toy
and Kenneth C. R. C. Arnold. Small portions were adapted from
.pg
NetHack is the product of literally dozens of people's work.
Main events in the course of the game development are described below:
-
+.
.pg
\fBJay Fenlason\fP wrote the original Hack, with help from
\fBKenny Woodland\fP, \fBMike Thome\fP and \fBJon Payne\fP.
\fBAndries Brouwer\fP did a major re-write, transforming Hack into a
very different game, and published (at least) three versions (1.0.1,
1.0.2, and 1.0.3) for
-.ux
+.UX
machines to the Usenet.
.pg
\fBDon G. Kneller\fP ported Hack 1.0.3 to Microsoft C and MS-DOS, producing PC
The final update to 3.2 was the bug fix release 3.2.3, which was released
simultaneously with 3.3.0 in December 1999 just in time for the Year 2000.
.pg
-The 3.3 development team, consisting of \fBMichael Allison\fP, \fBKen Arromdee\fP,
-\fBDavid Cohrs\fP, \fBJessie Collet\fP, \fBSteve Creps\fP, \fBKevin Darcy\fP,
-\fBTimo Hakulinen\fP, \fBKevin Hugo\fP, \fBSteve Linhart\fP, \fBKen Lorber\fP,
-\fBDean Luick\fP, \fBPat Rankin\fP, \fBEric Smith\fP, \fBMike Stephenson\fP,
-\fBJanet Walz\fP, and \fBPaul Winner\fP, released 3.3.0 in
+The 3.3 development team, consisting of
+\fBMichael Allison\fP, \fBKen Arromdee\fP,
+\fBDavid Cohrs\fP, \fBJessie Collet\fP, \fBSteve Creps\fP, \fBKevin Darcy\fP,
+\fBTimo Hakulinen\fP, \fBKevin Hugo\fP, \fBSteve Linhart\fP, \fBKen Lorber\fP,
+\fBDean Luick\fP, \fBPat Rankin\fP, \fBEric Smith\fP, \fBMike Stephenson\fP,
+\fBJanet Walz\fP, and \fBPaul Winner\fP, released 3.3.0 in
December 1999 and 3.3.1 in August of 2000.
.pg
-Version 3.3 offered many firsts. It was the first version to separate race
-and profession. The Elf class was removed in preference to an elf race,
-and the races of dwarves, gnomes, and orcs made their first appearance in
-the game alongside the familiar human race. Monk and Ranger roles joined
-Archeologists, Barbarians, Cavemen, Healers, Knights, Priests, Rogues, Samurai,
+Version 3.3 offered many firsts. It was the first version to separate race
+and profession. The Elf class was removed in preference to an elf race,
+and the races of dwarves, gnomes, and orcs made their first appearance in
+the game alongside the familiar human race. Monk 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, and was the first version to have a publicly
-available web-site listing all the bugs that had been discovered. Despite
+to allow you to ride a steed, and was the first version to have a publicly
+available web-site listing all the bugs that had been discovered. Despite
that constantly growing bug list, 3.3 proved stable enough to last for
more than a year and a half.
.pg
The 3.4 development team initially consisted of
\fBMichael Allison\fP, \fBKen Arromdee\fP,
\fBDavid Cohrs\fP, \fBJessie Collet\fP, \fBKevin Hugo\fP, \fBKen Lorber\fP,
-\fBDean Luick\fP, \fBPat Rankin\fP, \fBMike Stephenson\fP,
-\fBJanet Walz\fP, and \fBPaul Winner\fP, with \fB Warwick Allison\fP joining
+\fBDean Luick\fP, \fBPat Rankin\fP, \fBMike Stephenson\fP,
+\fBJanet Walz\fP, and \fBPaul Winner\fP, with \fB Warwick Allison\fP joining
just before the release of NetHack 3.4.0 in March 2002.
.pg
As with version 3.3, various people contributed to the game as a whole as
\fBDean Luick\fP, \fBMark Modrall\fP, and \fBKevin Hugo\fP maintained and enhanced the
Macintosh port of 3.4.
.pg
-\fBMichael Allison\fP, \fBDavid Cohrs\fP, \fBAlex Kompel\fP, \fBDion Nicolaas\fP, and
-\fBYitzhak Sapir\fP maintained and enhanced 3.4 for the Microsoft Windows platform.
-\fBAlex Kompel\fP contributed a new graphical interface for the Windows port.
+\fBMichael Allison\fP, \fBDavid Cohrs\fP, \fBAlex Kompel\fP,
+\fBDion Nicolaas\fP, and
+\fBYitzhak Sapir\fP maintained and enhanced 3.4 for the Microsoft Windows
+platform.
+\fBAlex Kompel\fP contributed a new graphical interface for the Windows port.
\fBAlex Kompel\fP also contributed a Windows CE port for 3.4.1.
.pg
\fBRon Van Iwaarden\fP was the sole maintainer of NetHack for OS/2 the past
several releases. Unfortunately Ron's last OS/2 machine stopped working in
-early 2006. A great many thanks to Ron for keeping NetHack alive on OS/2
+early 2006. A great many thanks to Ron for keeping NetHack alive on OS/2
all these years.
.pg
-\fBJanne Salmijarvi\fP and \fBTeemu Suikki\fP maintained and
-enhanced the Amiga port of 3.4 after \fBJanne Salmijarvi\fP resurrected
+\fBJanne Salmijarvi\fP and \fBTeemu Suikki\fP maintained and
+enhanced the Amiga port of 3.4 after \fBJanne Salmijarvi\fP resurrected
it for 3.3.1.
.pg
-\fBChristian ``Marvin'' Bressler\fP maintained 3.4 for the Atari after he
+\fBChristian ``Marvin'' Bressler\fP maintained 3.4 for the Atari after he
resurrected it for 3.3.1.
.pg
-The release of NetHack 3.4.3 in December 2003 marked the beginning of a
+The release of NetHack 3.4.3 in December 2003 marked the beginning of a
long release hiatus. 3.4.3 proved to be a remarkably stable version that
-provided continued enjoyment by the community for more than a decade. The
-devteam slowly and quietly continued to work on the game behind the scenes
-during the tenure of 3.4.3. It was during that same period that several new
-variants emerged within the NetHack community. Notably sporkhack by
-\fBDerek S. Ray\fP, unnethack by \fBPatric Mueller\fP, nitrohack and its
-successors originally by \fBDaniel Thaler\fP and then by \fBAlex Smith\fP,
-and Dynahack by \fBTung Nguyen\fP. Some of those variants continue to be
+provided continued enjoyment by the community for more than a decade. The
+devteam slowly and quietly continued to work on the game behind the scenes
+during the tenure of 3.4.3. It was during that same period that several new
+variants emerged within the NetHack community. Notably sporkhack by
+\fBDerek S. Ray\fP, unnethack by \fBPatric Mueller\fP, nitrohack and its
+successors originally by \fBDaniel Thaler\fP and then by \fBAlex Smith\fP,
+and Dynahack by \fBTung Nguyen\fP. Some of those variants continue to be
developed, maintained, and enjoyed by the community to this day.
.pg
-At the beginning of development for what would eventually get released
-as 3.6.0, the development team consisted of \fBWarwick Allison\fP,
-\fBMichael Allison\fP, \fBKen Arromdee\fP,
-\fBDavid Cohrs\fP, \fBJessie Collet\fP,
-\fBKen Lorber\fP, \fBDean Luick\fP, \fBPat Rankin\fP,
-\fBMike Stephenson\fP, \fBJanet Walz\fP, and \fBPaul Winner\fP.
-Leading up to the release of 3.6.0 in early 2015, new members
-\fBSean Hunt\fP, \fBPasi Kallinen\fP, and \fBDerek S. Ray\fP
-joined the NetHack development team.
-.pg
-In September 2014, an interim snapshot of the code under development was
-released publicly by other parties. Since that code was a work-in-progress
+In September 2014, an interim snapshot of the code under development was
+released publicly by other parties. Since that code was a 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 NetHack release. An announcement
stating that there would never be a 3.4.4, 3.5, or 3.5.0 official release
version.
.pg
-In November 2014, preparation began for the release of NetHack 3.6. The 3.6
-version merges work done by the development team since the previous release
-with some of the beloved community patches. Many bugs were fixed and a
-large amount of code was restructured.
+In January 2015, preparation began for the release of NetHack 3.6.
+.pg
+At the beginning of development for what would eventually get released
+as 3.6.0, the development team consisted of \fBWarwick Allison\fP,
+\fBMichael Allison\fP, \fBKen Arromdee\fP,
+\fBDavid Cohrs\fP, \fBJessie Collet\fP,
+\fBKen Lorber\fP, \fBDean Luick\fP, \fBPat Rankin\fP,
+\fBMike Stephenson\fP, \fBJanet Walz\fP, and \fBPaul Winner\fP.
+In early 2015, ahead of the release of 3.6.0, new members
+\fBSean Hunt\fP, \fBPasi Kallinen\fP, and \fBDerek S. Ray\fP
+joined the NetHack development team.
+.pg
+Near the end of the development of 3.6.0, one of the significant inspirations for many of
+the humorous and fun features found in the game, author Terry Pratchett,
+passed away. NetHack 3.6.0 introduced a tribute to him.
+.pg
+3.6.0 was released in December 2015, and merged work done by the development
+team since the release of 3.4.3 with some of the beloved community
+patches. Many bugs were fixed and some code was restructured.
+.pg
+In late April 2018, several hundred bug fixes for 3.6.0 and
+some new features were assembled and released as NetHack 3.6.1.
+The development team at the time of release of 3.6.1 consisted of
+\fBWarwick Allison\fP, \fBMichael Allison\fP, \fBKen Arromdee\fP,
+\fBDavid Cohrs\fP, \fBJessie Collet\fP, \fBPasi Kallinen\fP,
+\fBKen Lorber\fP, \fBDean Luick\fP, \fBPatric Mueller\fP,
+\fBPat Rankin\fP, \fBDerek S. Ray\fP, \fBAlex Smith\fP,
+\fBMike Stephenson\fP, \fBJanet Walz\fP, and \fBPaul Winner\fP.
+.pg
+The development team, as well as \fBSteve VanDevender\fP and
+\fBKevin Smolkowski\fP, ensured that NetHack 3.6 continued to operate on
+various
+.UX
+flavors and maintained the X11 interface.
+.pg
+\fBKen Lorber\fP, \fBHaoyang Wang\fP, \fBPat Rankin\fP, and \fBDean Luick\fP
+maintained the port of NetHack 3.6 for Mac OSX.
.pg
-\fBThe development team, as well as \fBSteve VanDevender\fP and
-\fBKevin Smolkowski\fP ensured that NetHack 3.6.0 continued to operate on
-various Unix flavors and maintained the X11 interface.
+\fBMichael Allison\fP, \fBDavid Cohrs\fP, \fBBarton House\fP,
+\fBPasi Kallinen\fP, \fBAlex Kompel\fP, \fBDion Nicolaas\fP,
+\fBDerek S. Ray\fP and \fBYitzhak Sapir\fP maintained the port of
+NetHack 3.6 for Microsoft Windows.
.pg
-\fBKen Lorber\fP, \fBHaoyang Wang\fP, \fBPat Rankin\fP, and \fBDean Luick\fP
-maintained the port of NetHack 3.6.0 for Mac.
+\fBPat Rankin\fP attempted to keep the VMS port running for NetHack 3.6.1,
+hindered by limited access. \fBKevin Smolkowski\fP has updated and tested it
+for the most recent version of OpenVMS (V8.4 as of this writing) on Alpha
+and Integrity (aka Itanium aka IA64) but not VAX.
.pg
-\fBMichael Allison\fP, \fBDerek S. Ray\fP, \fBYitzhak Sapir\fP,
-\fBAlex Kompel\fP, and \fBDion Nicolaas\fP maintained the port of
-NetHack 3.6.0 for Microsoft Windows.
+\fBRay Chason\fP resurrected the msdos port for 3.6.1 and contributed the
+necessary updates to the community at large.
.pg
The official NetHack web site is maintained by \fBKen Lorber\fP at http://www.nethack.org/.
.pg
-SHOUT-OUTS
+.hn 2
+SPECIAL THANKS
.pg
-The devteam would like to give a special "shout-out" to thank the generous
-people primarily responsible for the public NetHack servers available for
-playing the game at nethack.alt.org and devnull.net. In addition to providing
-a way for the public to play a game of NetHack from almost anywhere, they
-have hosted annual NetHack tournaments for many, many years.
-.pg
-On behalf of the NetHack community, thank you very much to
-\fBM. Drew Streib\fP, \fBPasi Kallinen\fP and \fBRobin Bandy\fP.
+On behalf of the NetHack community, thank you very much once
+again to \fBM. Drew Streib\fP, \fBPasi Kallinen\fP and \fBRobin Bandy\fP
+for providing public NetHack servers at nethack.alt.org and devnull.net
+and/or for hosting annual NetHack tournaments.
.pg
- - - - - - - - - - -
+.ce
+- - - - - - - - - -\ \ \ \ \" when centered, the dashes look a little too far
+. \" to the right, so pad them with a few spaces
.pg
From time to time, some depraved individual out there in netland sends a
particularly intriguing modification to help out with the game. The Gods of
the Dungeon sometimes make note of the names of the worst of these miscreants
in this, the list of Dungeoneers:
-
+.
.TS S
center;
c c c.
.\"TABLE_START
-Adam Aronow Janet Walz Nathan Eady
-Alex Kompel Janne Salmijarvi Norm Meluch
+Adam Aronow J. Ali Harlow Mikko Juola
+Alex Kompel Janet Walz Nathan Eady
+Alex Smith Janne Salmijarvi Norm Meluch
Andreas Dorn Jean-Christophe Collet Olaf Seibert
Andy Church Jeff Bailey Pasi Kallinen
Andy Swanson Jochen Erwied Pat Rankin
-Ari Huttunen John Kallen Paul Winner
-Barton House John Rupley Pierre Martineau
-Benson I. Margulies John S. Bien Ralf Brown
-Bill Dyer Johnny Lee Ray Chason
-Boudewijn Waijers Jon W{tte Richard Addison
-Bruce Cox Jonathan Handler Richard Beigel
-Bruce Holloway Joshua Delahunty Richard P. Hughey
-Bruce Mewborne Keizo Yamamoto Rob Menke
-Carl Schelin Ken Arnold Robin Bandy
-Chris Russo Ken Arromdee Robin Johnson
-David Cohrs Ken Lorber Roderick Schertler
-David Damerell Ken Washikita Roland McGrath
-David Gentzel Kevin Darcy Ron Van Iwaarden
-David Hairston Kevin Hugo Ronnen Miller
-Dean Luick Kevin Sitze Ross Brown
-Del Lamb Kevin Smolkowski Sascha Wostmann
-Derek S. Ray Kevin Sweet Scott Bigham
-Deron Meranda Lars Huttar Scott R. Turner
-Dion Nicolaas Leon Arnott Sean Hunt
-Dylan O'Donnell M. Drew Streib Stephen Spackman
-Eric Backus Malcolm Ryan Stefan Thielscher
-Eric Hendrickson Mark Gooderum Stephen White
-Eric R. Smith Mark Modrall Steve Creps
-Eric S. Raymond Marvin Bressler Steve Linhart
-Erik Andersen Matthew Day Steve VanDevender
-Frederick Roeber Merlyn LeRoy Teemu Suikki
-Gil Neiger Michael Allison Tim Lennan
-Greg Laskin Michael Feir Timo Hakulinen
-Greg Olson Michael Hamel Tom Almy
-Gregg Wonderly Michael Sokolov Tom West
-Hao-yang Wang Mike Engber Warren Cheung
-Helge Hafting Mike Gallop Warwick Allison
-Irina Rempt-Drijfhout Mike Passaretti Yitzhak Sapir
-Izchak Miller Mike Stephenson
-J. Ali Harlow Mikko Juola
+Ari Huttunen John Kallen Patric Mueller
+Barton House John Rupley Paul Winner
+Benson I. Margulies John S. Bien Pierre Martineau
+Bill Dyer Johnny Lee Ralf Brown
+Boudewijn Waijers Jon W{tte Ray Chason
+Bruce Cox Jonathan Handler Richard Addison
+Bruce Holloway Joshua Delahunty Richard Beigel
+Bruce Mewborne Keizo Yamamoto Richard P. Hughey
+Carl Schelin Ken Arnold Rob Menke
+Chris Russo Ken Arromdee Robin Bandy
+David Cohrs Ken Lorber Robin Johnson
+David Damerell Ken Washikita Roderick Schertler
+David Gentzel Kevin Darcy Roland McGrath
+David Hairston Kevin Hugo Ron Van Iwaarden
+Dean Luick Kevin Sitze Ronnen Miller
+Del Lamb Kevin Smolkowski Ross Brown
+Derek S. Ray Kevin Sweet Sascha Wostmann
+Deron Meranda Lars Huttar Scott Bigham
+Dion Nicolaas Leon Arnott Scott R. Turner
+Dylan O'Donnell M. Drew Streib Sean Hunt
+Eric Backus Malcolm Ryan Stephen Spackman
+Eric Hendrickson Mark Gooderum Stefan Thielscher
+Eric R. Smith Mark Modrall Stephen White
+Eric S. Raymond Marvin Bressler Steve Creps
+Erik Andersen Matthew Day Steve Linhart
+Frederick Roeber Merlyn LeRoy Steve VanDevender
+Gil Neiger Michael Allison Teemu Suikki
+Greg Laskin Michael Feir Tim Lennan
+Greg Olson Michael Hamel Timo Hakulinen
+Gregg Wonderly Michael Sokolov Tom Almy
+Hao-yang Wang Mike Engber Tom West
+Helge Hafting Mike Gallop Warren Cheung
+Irina Rempt-Drijfhout Mike Passaretti Warwick Allison
+Izchak Miller Mike Stephenson Yitzhak Sapir
.\"TABLE_END Do not delete this line.
.TE
-
+.pg
.\"Microsoft and MS-DOS are registered trademarks of Microsoft Corporation.
.\"Lattice is a trademark of Lattice, Inc.
.\"Atari and 1040ST are trademarks of Atari, Inc.