        Microsoft Windows specific help file for NetHack 5.0
        Copyright (c) NetHack PC Development Team 1993-2025.
        NetHack may be freely distributed.  See license for details.
                   (Last Revision: August 19, 2025)

This file details some specifics for NetHack built for Windows.

New players should be sure to read GuideBook.txt which contains
essential information about playing NetHack. It can be found in the
same directory as your NetHack executable.

The NetHack for Windows port supports some additional or enhanced
commands as well as some NetHack config file options.

The active NetHack config file is stored in the nethack subfolder of the
user's User Profile Folder. The config file can be referenced
in the legacy CMD command prompt as:
    %USERPROFILE%\nethack\.nethackrc

Under powershell, the User's config file can be referenced
as:
    $env:USERPROFILE\nethack\.nethackrc

Some options are applicable only to the "Graphical Interface."
These are discussed separately in their own section.

Contents
1. ALT Key Combinations
2. Graphical Interface - Options you can assign a value to
3. Graphical Interface - Additional/Enhanced Commands
4. Graphical Interface - Menus
5. Numeric Keypad (for number_pad mode)


1. ALT Key Combinations
----------------------------------------------
The non-graphical (tty) interface always operates in "NetHack mode",
while the "NetHack for Windows - Graphical Interface" lets you
toggle the mode.  In non-NetHack mode, all ALT-key combinations
are sent to the Windows itself, rather than to NetHack.

While playing in NetHack mode you can press the ALT key in
combination with another key to execute an extended command
as an alternative method to pressing a # key sequence.
The available commands are:

    Alt-2    #twoweapon      - toggle two-weapon combat (unavailable
                               if number_pad mode is set)
    Alt-a    #adjust         - adjust inventory letters.
    Alt-c    #chat           - talk to someone or something.
    Alt-d    #dip            - dip an object into something.
    Alt-e    #enhance        - enhance your skill with a weapon.
    Alt-f    #force          - force a lock.
    Alt-i    #invoke         - invoke an object's powers.
    Alt-j    #jump           - jump to a location.
    Alt-l    #loot           - loot a box on the floor.
    Alt-m    #monster        - use a monster's special ability.
    Alt-n    #name           - name an item or type of object.
    Alt-o    #offer          - offer a sacrifice to the gods.
    Alt-p    #pray           - pray to the gods for help.
    Alt-q    #quit           - quit the game. (Same as #quit)
    Alt-r    #rub            - rub a lamp.
    Alt-s    #sit            - sit down.
    Alt-t    #turn           - turn undead.
    Alt-u    #untrap         - untrap something.
    Alt-v    #version        - list compile time options for this version of
                               NetHack.
    Alt-w    #wipe           - wipe off your face.
    Alt-?    #?              - display list of extended menu commands

2. Options that you assign a value to (Graphical Interface only)
----------------------------------------------------------------

"NetHack for Windows - Graphical Interface" recognizes the following
additional options, which the non-graphical (tty) version will
silently ignore.  These are options that specify attributes of various
windows.  The windows that you can tailor include menu windows (such
as the inventory list), text windows (such as "It is written in the
book of ..." screens), the message window (where events of the game are
displayed), the status window (where your character name
and attributes are displayed), and the map window (where the map
is drawn).

Window Alignment options:

    align_message  Specifies at which side of the NetHack screen the
                   message window is aligned. This option can be used
                   to align the window to "top" or "bottom".
                   Default: [TOP]

    align_status   Specifies at which side of the NetHack screen the
                   status window is aligned. This option can be used
                   to align the window to "top" or "bottom".
                   Default: [BOTTOM]

Map Window options:

    map_mode       Specifies which map mode to use.
                   The following map modes are available:
                   tiles (display things on the map with colored tiles),
                   ascii4x6, ascii6x8, ascii8x8, ascii16x8, ascii7x12,
                   ascii8x12, ascii16x12, ascii12x16, ascii10x18
                   (which use that size font to display things on
                   the map), or fit_to_screen (an ascii mode which
                   forces things to fit on a single screen).
                   Default: [tiles]

    scroll_margin  Specifies the number of map cells from the edge
                   of the map window where scrolling will take place.
                   Default: [5]

    tile_file      An alternative file containing bitmap to use for
                   tiles. This file should be a .bmp file and should
                   be organized as 40 rectangular tiles wide. It is
                   beyond the scope of this document to describe the
                   exact contents of each tile in the .bmp, which must
                   match the object lists used when building NetHack.

    tile_height    Used with tile_file to specify the height of each
                   tile in pixels. This option may only be specified
                   in the defaults.nh config file.
                   Default: [16]

    tile_width     Used with tile_file to specify the width of each
                   tile in pixels. This option may only be specified
                   in the defaults.nh config file.
                   Default: [16]

Other Window options:

    windowcolors   Specifies the colors for various windows
                   This option may only be specified in the
                   defaults.nh config file and has the following
                   format:
                       window-type foreground/background
                   Notes:
                      - Both foreground and background colors are
                        required, and a slash must separate them.
                      - "window-type" is either "message" or "status"
                        (Short forms are: "msg" or "sts").
                      - "foreground" and "background" may be specified as
                        a color name (such as "blue"), or by a six
                        digit hexadecimal RGB color value (such as
                        "#8F8F8F")
                      - The following color names are available:
                        black, red, green, brown, blue, magenta,
                        cyan, gray (or grey), orange, brightgreen,
                        yellow, brightblue, brightmagenta, brightcyan,
                        white, trueblack, purple, silver, maroon, fuchsia,
                        lime, olive, navy, teal, aqua. In addition, you
                        can use the following names to refer to default
                        Windows settings: activeborder, activecaption, \
                        appworkspace, background, btnface, btnshadow, btntext,
                        captiontext, graytext, highlight, highlighttext,
                        inactiveborder, inactivecaption, menu, menutext,
                        scrollbar, window, windowframe, windowtext.

                        Example:
                        OPTIONS=windowcolors:sts #00FF80/blue msg menutext/menu

    font_menu      Specifies the name of the menu font.
    font_message   Specifies the name of the message font.
    font_status    Specifies the name of the status font.
    font_text      Specifies the name of the text font.

    font_size_menu Specifies the size of the menu font.

    font_size_message
                   Specifies the size of the message font.

    font_size_status
                   Specifies the size of the status font.

    font_size_text Specifies the size of the text font.

Miscellaneous options:

    vary_msgcount  Number of lines to display in message window.


3. NetHack for Windows - Graphical Interface, Additional/Enhanced Commands
-------------------------------------------------------------------------

The following function keys are active in
the "NetHack for Windows - Graphical Interface":

    F4             Toggle level overview mode on/off
                   This key will toggle the map between a view that
                   is mapped to fit exactly to the window, and the
                   view that shows the various symbols in their
                   normal size. This is useful for getting an idea
                   of where you are in a level.

    F5             Toggle tiled display on/off.
                   This key switches between the tiled and the
                   traditional ASCII display. This is equivalent to
                   using the "map_mode" option.

    F10            Activate menu bar.
                   This key will activate the menu bar, allowing you
                   to select between the menus: File, Map,
                   Window Settings, and Help.

4. Graphical Port Menus
-----------------------

File
  Save - Allows you to save and exit the game
  Quit - Allows you to quit the game

Map - Provides for selection of map mode. Equivalent to using
the map_mode option.

Window Settings - Changes your logged-on user's settings for NetHack.
Only one setting is available: NetHack mode, which can be
checked or unchecked. NetHack mode allows you to use the ALT key for
game key commands [see list above]. You can use F10 to access the
menu bar while in NetHack mode. You can also clear your logged-on
user's settings for NetHack. Settings in this window are saved in
your logged-on user's registry.

Help - Provides help about various portions of NetHack.


5. Numeric Keypad (for "OPTION=number_pad" mode)
------------------------------------------------

The numeric keypad and surrounding characters act as macros for different
commands in NetHack.  The Num Lock should be toggled to "on" to make the
most of these keys:

          Key         Normal       Shift-Key
       ----------   ----------    -------------
       1, 2, 3, 4   Move In       Run In
       6, 7, 8, 9   Direction     Direction

        0 (Ins)     Inventory     Categorized
                                  Inventory

        . (Del)     Wait Turn     : - Look Here

        +           Spell List    P - Put on an
                                  accessory

        -           m - Move      Previous
                    Only          Message

    NetHack for Windows - tty Interface Specific Behavior:
    ------------------------------------------------------

      In the non-graphical (tty) interface, when you use the Ctrl key with a
      directional key (1, 2, 3, 4, 6, 7, 8, 9) it means "go in specified
      direction until you hit a wall or run into something interesting."

    NetHack for Windows - Graphical Interface Specific Behavior:
    ------------------------------------------------------------

      It is possible to scroll or pan the map in a specific direction:

        Ctrl-Shift-Left  (4)     Scroll (Pan) map left
        Ctrl-Shift-Right (6)     Scroll (Pan) map right
        Ctrl-Shift-Up    (8)     Scroll (Pan) map up
        Ctrl-Shift-Down  (2)     Scroll (Pan) map down
        Ctrl-Shift-Home  (7)     Scroll (Pan) map left to leftmost corner
        Ctrl-Shift-End   (1)     Scroll (Pan) map left to rightmost corner
        Ctrl-Shift-PgUp  (9)     Scroll (Pan) map left to uppermost corner
        Ctrl-Shift-PgDn  (3)     Scroll (Pan) map left to lowermost corner


