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)
female         deprecated; use compound option gender:female      [False]
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_decor  give feedback when walking across stairs, altars,  [False]
               fountains, and such even when not obscured by objects
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]
menucolors     enable MENUCOLOR pattern matching to highlight     [False]
               lines in object menus like inventory; might highlight with
               bold, inverse, &c even when color is unavailable or toggled off
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
quick_farsight usually skip the chance to browse the map when     [False]
               randomly triggered clairvoyance takes place
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]
safe_wait      require use of 'm' prefix before '.' or 's' to      [True]
               wait or search when adjacent to a hostile monster
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]
tips           show some helpful tips during gameplay              [True]
tombstone      print tombstone when you die                        [True]
toptenwin      print topten in a window rather than stdout        [False]
travel         enables travelling via mouse click if supported;    [True]
               can be toggled off to prevent mouse clicks on the map from
               attempting to move the hero; does not affect travel via '_'
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 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 or curses 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 if ALTMETA was set at compile time:
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 TILES_IN_GLYPHMAP set at compile time (MSDOS):
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]

Boolean option if TTY_SOUND_ESCCODES was set at compile time (tty only):
vt_sounddata   insert sound data escape code markers into output  [False]

Boolean options which may be available depending upon which interfaces
the program has been built to support.  If it supports multiple such,
some of these may show as available for setting but not do anything if
you happen to be using a different interface than the one(s) they're for:
ascii_map      show map as text, forces tiles_map Off; Qt, X11
guicolor       curses
hitpointbar    curses, tty, Windows GUI if statushilites enabled;
               Qt without statushilites; X11 if 'fancy_status' disabled
               (via X application defaults) and statushilities enabled
popup_dialog   curses, Qt, Windows GUI
selectsaved    tty (Qt and Windows GUI do this unconditionally)
splash_screen  curses, Qt, Windows GUI
tiled_map      show map as tiles, forces ascii_map Off; Qt, X11

Boolean options available when running in debug mode (aka wizard mode):
menu_tab_sep   menu formatting--do not touch
monpolycontrol have player choose shape-changing monsters' new shapes
montelecontrol let player choose destination for teleported monsters
travel_debug   show state of travel pathfinding algorithm on the map
wizweight      include item weights in inventory display

Any Boolean option can be set to True by including it among options being
set, or negated (set to False) by prefixing its name with a '!' or 'no'.
Alternatively, the compound option syntax can be used: 'optname:true' and
'optname:false'.

 - - - - -

Compound options are written as option_name:option_value.

Compound options which can be set during the game are:

autounlock    when attempting to open a locked door or loot     [Apply-Key]
              a locked container, specifies an action to take: can be
              None, or one or more of Untrap + Apply-Key + Kick + Force;
              if Untrap is included, it will be handled first; the
              others apply if you answer "no" to "check for traps?";
              for "yes", it won't necessary find anything even when a
              trap happens to be present and will use up the rest of
              the current move regardless of whether it finds anything;
              Kick is only useful for doors and Force is only useful for
              containers; either will only be attempted if Untrap is
              omitted or skipped and Apply-Key is omitted or you aren't
              carrying an unlocking tool or you decline to use one
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
              and achievements, 'o' dungeon overview)
fruit         the name of a fruit you enjoy eating             [slime mold]
              (basically a whimsy which NetHack uses from time to time).
hilite_status specifies a rule for highlighting a status field           []
              (multiple instances are allowed)
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.)
msg_window    behavior of ^P message recall for tty interface:          [s]
              single      -- one message at a time
              full        -- full window with all saved top line messages
              reverse     -- full with messages printed most-recent-first
              combination -- first two of consecutive ^P commands show
                             single messages, third yields full set
msg_window    behavior of ^P message recall for curses interface:       [r]
              reverse     -- full window, most recent first
              full        -- full with messages printed least recent first,
                             initially positioned on last page to start
                             with most recent messages in view
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 -- "qwertz"; 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_confirm:pray swim]
              of situations where alternate prompting is desired
              Confirm -- when requiring "yes", also require "no" to reject;
                      also requires yes rather than y for pray, trap, Autoall
              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
              trap    -- y to enter a known trap unless it is harmless;
              swim    -- require m prefix to move into water or lava when
                      hero has seen it and isn't impaired; on by default;
              AutoAll -- y to confirm if using menustyle:Full and choice 'A'
                      in the object class filtering menu is selected;
              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.
sortdiscoveries preferred order when viewing list of discovered objects [o]
              o -- in order of discovery within each class
              s -- sortloot's "loot" order
              c -- alphabetized within each class
              a -- alphabetized across all classes
sortloot      preferred order when examining a set of objects           [n]
              none -- no sorting
              loot -- sort piles of objects on floor and in containers
              full -- 'loot' plus objects in inventory
sortvanquished preferred order when viewing vanquished monsters list    [t]
              t -- traditional, order by monster level
              d -- order by monster difficulty rating
              a -- alphabetical, first any unique monsters then others
              c -- order by class, low to high level within each class
              n -- order by count, high to low
              z -- order by count, low to high
statushilites whether to display status highlights (when non-zero) and  [0]
              also how many turns to display temporary highlights (for
              'up', 'down', and 'changed' hilite_status rules)
statuslines   whether to use expanded (3) or condensed (2) status       [2]
              (for tty and curses; 2 is traditional, 3 is recommended;
              also for Qt, where 3 is traditional and 2 is recommended)
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    name of your starting pet if it is a kitten               [none]
dogname    name of your starting pet if it is a little 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  name of your starting pet if it is a pony                 [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:
           (t is tty, c is curses, w is Windows GUI, x is X11, q is Qt)
           menu_first_page    jump to the first page in a menu     [^](tcwxq)
           menu_last_page     jump to the last page in a menu      [|](tcwxq)
           menu_next_page     advance to the next menu page        [>](tcwxq)
           menu_previous_page back up to the previous menu page    [<](tcwxq)
           menu_shift_left    pan view to left (perm_invent only)  [{](cx)
           menu_shift_right   pan view to right (perm_invent only) [}](cx)
           menu_select_all    select all items in a menu           [.](tcwxq)
           menu_select_page   select all items on this menu page   [,](tcwq)
           menu_deselect_all  deselect all items in a menu         [-](tcwxq)
           menu_deselect_page deselect all items on this menu page [\](tcwq)
           menu_invert_all    invert all items in a menu           [@](tcwxq)
           menu_invert_page   invert all items on this menu page   [~](tcwq)
           menu_search        prompt for target text and invert    [:](tcwxq)
                              items which match that
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.
           Some 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.

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
