Boolean options not under specific compile flags (with default values in []):
(You can learn which options exist in your version by checking your current
option setting, which is reached via the 'O' command.)

acoustics      can your character hear anything                   [TRUE]
autodescribe   describe the terrain under cursor                  [FALSE]
autodig        dig if moving and wielding digging tool            [FALSE]
autoopen       walking into a door attempts to open it            [TRUE]
autopickup     automatically pick up objects you move over        [TRUE]
autoquiver     when firing with an empty quiver, select some      [FALSE]
               suitable inventory weapon to fill the quiver
BIOS           allow the use of IBM ROM BIOS calls                [FALSE]
blind          your character is permanently blind                [FALSE]
bones          allow loading bones files                          [TRUE]
clicklook      look at map by clicking right mouse button         [FALSE]
cmdassist      give help for errors on direction & other commands [TRUE]
confirm        ask before hitting tame or peaceful monsters       [TRUE]
dark_room      show floor not in sight in different color         [TRUE]
eight_bit_tty  send 8-bit characters straight to terminal         [FALSE]
extmenu        tty, curses: use menu for # (extended commands)    [FALSE]
               X11: menu has all commands (T) or traditional subset (F)
fixinv         try to retain the same letter for the same object  [TRUE]
force_invmenu  commands asking for inventory item show a menu     [FALSE]
goldX          when filtering objects by bless/curse state,       [FALSE]
               whether to classify gold as X (unknown) or U (uncursed)
help           print all available info when using the / command  [TRUE]
herecmd_menu   show menu of some possible commands when clicking
               on yourself or next to you with mouse              [FALSE]
ignintr        ignore interrupt signal, including breaks          [FALSE]
implicit_uncursed  omit "uncursed" from inventory, if possible    [TRUE]
legacy         print introductory message                         [TRUE]
lit_corridor   show a dark corridor as lit if in sight            [FALSE]
lootabc        use a/b/c rather than o/i/b when looting           [FALSE]
mail           enable the mail daemon                             [TRUE]
mention_walls  give feedback when walking against a wall          [FALSE]
menu_objsyms   show object symbols in menus if it is selectable   [FALSE]
menu_overlay   overlay menus on the screen and align to right     [TRUE]
nudist         start your character without armor                 [FALSE]
null           allow nulls to be sent to your terminal            [TRUE]
               try turning this option off (forcing NetHack to use its own
               delay code) if moving objects seem to teleport across rooms
perm_invent    keep inventory in a permanent window               [FALSE]
pickup_thrown  override pickup_types for thrown objects           [TRUE]
pushweapon     when wielding a new weapon, put your previously    [FALSE]
               wielded weapon into the secondary weapon slot
rawio          allow the use of raw I/O                           [FALSE]
rest_on_space  count the space bar as a rest character            [FALSE]
safe_pet       prevent you from (knowingly) attacking your pet(s) [TRUE]
sanity_check   perform data sanity checks                         [FALSE]
showexp        display your accumulated experience points         [FALSE]
showrace       show yourself by your race rather than by role     [FALSE]
silent         don't use your terminal's bell sound               [TRUE]
sortpack       group similar kinds of objects in inventory        [TRUE]
sparkle        display sparkly effect for resisted magical        [TRUE]
               attacks (e.g. fire attack on fire-resistant monster)
standout       use standout mode for --More-- on messages         [FALSE]
status_updates update the status lines                            [TRUE]
time           display elapsed game time, in moves                [FALSE]
tombstone      print tombstone when you die                       [TRUE]
toptenwin      print topten in a window rather than stdout        [FALSE]
travel         enable the command to travel to a map location via [TRUE]
               a shortest-path algorithm, usually invoked by '_'.
use_darkgray   use bold black instead of blue for black glyphs.   [TRUE]
use_inverse    display detected monsters in highlighted manner    [FALSE]
verbose        print more commentary during the game              [TRUE]
whatis_menu    show menu when getting a map location              [FALSE]
whatis_moveskip skip same glyphs when getting a map location      [FALSE]


There are further boolean options controlled by compilation flags.

Boolean option if INSURANCE was set at compile time:
checkpoint     save game state after each level change, for       [TRUE]
               possible recovery after program crash

Boolean option if NEWS was set at compile time:
news           print any news from game administrator on startup  [TRUE]

Boolean option if MFLOPPY was set at compile time:
checkspace     check free disk space before writing files to disk [TRUE]

Boolean option if SCORE_ON_BOTL was set at compile time:
showscore      display your approximate accumulated score         [FALSE]

Boolean options if TEXTCOLOR was set at compile time:
color          use different colors for objects on screen [TRUE for micros]
hilite_pet     display pets in a highlighted manner               [FALSE]
hilite_pile    display item piles in a highlighted manner         [FALSE]

Boolean option if TIMED_DELAY was set at compile time (tty interface only):
timed_delay    on unix and VMS, use a timer instead of sending    [TRUE]
               extra screen output when attempting to pause for
               display effect.  on MSDOS without the termcap
               lib, whether or not to pause for visual effect.

Boolean option for Amiga, or for others if ALTMETA was set at compile time:
altmeta        For Amiga, treat Alt+key as Meta+key.              [TRUE]
altmeta        For unix and VMS, treat two character sequence
               "ESC c" as M-c (Meta+c, 8th bit set) when nethack  [FALSE]
               obtains a command from player's keyboard.

Boolean option if USE_TILES was set at compile time (MSDOS protected mode):
preload_tiles  control whether tiles get pre-loaded into RAM at   [TRUE]
               the start of the game.  Doing so enhances performance
               of the tile graphics, but uses more memory.

Boolean option if TTY_TILES_ESCCODES was set at compile time (tty only):
vt_tiledata    insert extra data escape code markers into output  [FALSE]

Any Boolean option can be negated by prefixing it with a '!' or 'no'.


Compound options are written as option_name:option_value.

Compound options which can be set during the game are:

boulder       override the default boulder symbol                       [`]
disclose      the types of information you want         [ni na nv ng nc no]
              offered at the end of the game
              (space separated list of two-character values;
              prefix: '+' always disclose, '-' never disclose,
              'n' prompt with default "no", 'y' prompt with default "yes",
              'a' prompt to select sorting order (for suffix 'v' only);
              suffix: 'i' inventory, 'a' attributes, 'v' vanquished
              monsters, 'g' genocided and extinct monsters, 'c' conduct,
              'o' dungeon overview)
fruit         the name of a fruit you enjoy eating             [slime mold]
              (basically a whimsy which NetHack uses from time to time).
menustyle     user interface for selection of multiple objects:      [Full]
              Traditional -- prompt for classes of interest, then
                             prompt item-by-item for those classes;
              Combination -- prompt for classes of interest, then
                             use a menu for choosing items;
              Full        -- menu for classes of interest, then item menu;
              Partial     -- skip class filtering, use menu of all items;
              only the first letter ('T','C','F','P') matters
              (With Traditional, many actions allow pseudo-class 'm' to
              request a menu for choosing items: one-shot Combination.)
number_pad    alphabetic versus numeric control over movement:          [0]
               0 -- traditional hjkl + yubn movement (default);
               1 -- digits control movement, for use with numeric keypad;
               2 -- same as 1, but '5' works as 'g' prefix rather than 'G';
               3 -- numeric for phone keypad (1,2,3 above, 7,8,9 below);
               4 -- phone keypad (3) combined with '5' preference (2);
              -1 -- alphabetic movement but 'z' swapped with 'y'.
              Setting number_pad (to a positive value) affects how all
              digit keys are handled, not just those on numeric keypad.
packorder     a list of default symbols for kinds of       [")[%?+!=/(*`0_]
              objects that gives the order in which your inventory (and
              some other things) gets shown if the 'sortpack' option is on
              (If you specify only some kinds of items, the others from the
              default order will be appended to the end.)
paranoid_confirmation  space separated list    [paranoid_confirmation:pray]
              of situations where alternate prompting is desired
              Confirm -- when requiring "yes", also require "no" to reject
              quit    -- yes vs y to confirm quitting or to enter explore mode
              die     -- yes vs y to confirm dying (for explore or debug mode)
              bones   -- yes vs y to confirm saving bones data in debug mode
              attack  -- yes vs y to confirm attacking a peaceful monster
              wand-break  -- yes vs y to confirm breaking a wand
              eating  -- yes vs y to confirm whether to continue eating
              Were-change -- yes vs y to confirm changing form due to
                      lycanthropy when hero has polymorph control;
              pray    -- y to confirm an attempt to pray; on by default
              Remove  -- always pick from inventory for 'R' and 'T' even when
                      wearing just one applicable item to remove or take off
pickup_burden when you pick up an item that exceeds this encumbrance    [S]
              level (Unencumbered, Burdened, streSsed, straiNed, overTaxed,
              or overLoaded), you will be asked if you want to continue.
pickup_types  a list of default symbols for kinds of objects to          []
              autopickup when that option is on; empty list means "all"
pile_limit    for feedback when walking across floor objects,           [5]
              threshold at which "there are objects here" is displayed
              instead of listing them.  (0 means "always list objects.")
runmode       controls how often the map window is updated for        [run]
              multi-step movement (various running modes or travel command):
              teleport -- don't update map until movement stops;
              run      -- periodically update map (interval is seven steps);
              walk     -- update map after every step;
              crawl    -- like walk, but delay after making each step.
              (This only affects screen display, not actual movement.)
scores        the parts of the score list you wish    [!own/3 top/2 around]
              to see when the game ends.  You choose a combination of
              top scores, scores around the top scores, and all of your
              own scores.
suppress_alert disable various version-specific warnings about changes   []
              in game play or the user interface, such as notification given
              for the 'Q' command that quitting is now done via #quit
              (e.g., use suppress_alert:3.3.1 to stop that and any other
              notifications added in that version or earlier)
whatis_coord  controls whether to include map coordinates when          [n]
              autodescribe is active for the '/' and ';' commands.
              Value is the first letter of one of
              compass      -- (relative to you; 'east' or '3s' or '2n,4w')
              full compass -- ('east' or '3south' or '2north,4west')
              map          -- <x,y>        (map column x=0 is not used)
              screen       -- [row,column] (row is offset to match tty usage)
              none         -- no coordinates shown.
whatis_filter controls how to filter eligible map coordinates when      [n]
              getting a map location for eg. the travel command.
              Value is the one of
              n - no filtering
              v - locations in view only
              a - locations in same area (room, corridor, etc)

Compound options which may be set only on startup are:

align      Your starting alignment (lawful, neutral, chaotic,      [random]
           or random).  Many roles restrict the choice to a subset.
           You may specify just the first letter.
catname    the name of your first cat                                [none]
dogname    the name of your first dog                                [none]
           Several roles who start with a dog have one whose name is
           pre-set (for example, "Hachi" for Samurai), but that name
           will be overridden if you specify dogname.
gender     Your starting gender (male, female, or random).         [random]
           You may specify just the first letter.  Although you can
           still denote your gender using the old "male" and "female"
           boolean options, the "gender" option will take precedence.
horsename  the name of your first horse                              [none]
menu_*     specify single character accelerators for menu commands.
           Here is a list of all commands with their default keystroke
           followed by a list of window-ports that implement them:
           'x' is X11, 't' is tty, 'g' is Gem, 'a' is Amiga.
           menu_deselect_all  deselect all items in a menu         [-](xtga)
           menu_deselect_page deselect all items on this menu page [\](tga)
           menu_first_page    jump to the first page in a menu     [^](tga)
           menu_invert_all    invert all items in a menu           [@](xtga)
           menu_invert_page   invert all items on this menu page   [~](tga)
           menu_last_page     jump to the last page in a menu      [|](tga)
           menu_next_page     goto the next menu page              [>](tga)
           menu_previous_page goto the previous menu page          [<](tga)
           menu_search        search for a menu item               [:](xtga)
           menu_select_all    select all items in a menu           [.](xtga)
           menu_select_page   select all items on this menu page   [,](tga)
msghistory number of top line messages to save                         [20]
name       the name of your character      [defaults to username on multi-
           user systems, asks "who are you?" on single-user systems or if
           the username is classified as generic like "games"]
           MS Windows is treated as single-user even though it supports
           usernames.  If character name is specified on the command
           line (typically via 'nethack -u myname' depending upon type
           of system and method of access to it), that name overrides
           'name' from your options.
pettype    your preferred type of pet (cat, dog, horse, random,    [random]
           or none), if your role allows more than one type (or if you
           want to avoid a starting pet).  Most roles allow dog or cat
           but not horse.  For roles which force a particular type,
           pettype is ignored unless it specifies 'none'.
playmode   normal play or non-scoring explore mode or debug mode   [normal]
race       Your starting race (e.g., race:Human, race:Elf).        [random]
           Most roles restrict race choice to a subset.
role       Your starting role (e.g., role:Barbarian, role:Valk).   [random]
           Although you can specify just the first letter(s), it will
           choose only the first role it finds that matches; thus, it
           is recommended that you spell out as much of the role name
           as possible.  You can also still denote your role by
           appending it to the "name" option (e.g., name:Vic-V), but
           the "role" option will take precedence.
windowtype windowing system to be used    [depends on operating system and
           compile-time setup]    if more than one choice is available.
           Most instances of the program support only one window-type;
           when that is the case, you don't need to specify anything.
           The list of supported window-types in your program can be
           seen while the program is running by using the #version
           command or from outside the program by examining the text file
           named 'options' which is generated when building it.

Compound option if TTY_GRAPHICS was set at compile time:
msg_window the type of message window to use:                      [single]
           single      -- One message at a time
           full        -- Full window with all saved top line messages
           reverse     -- Same as full, but messages printed most-recent-first
           combination -- Two single messages, then as full


Some sample options lists are:
!autopickup,!tombstone,name:Gandalf,scores:own/3 top/2 around
female,nonews,dogname:Rover,rest_on_space,!verbose,menustyle:traditional
