Symset

From NetHackWiki
Jump to: navigation, search

Starting in NetHack 3.6.0, the symset option selects one of several symbol sets for display of a text-mode map for the normal dungeon. The roguesymset option does the same for the Rogue level. The file "symbols", placed in the directory where NetHack is installed, defines the available symbol sets. The user may edit this file to change existing symbol sets or to define new symbol sets.

The symset option supersedes IBMgraphics, DECgraphics and MACgraphics. Those options are still recognized for backward compatibility. It also replaces the variables named under Custom map symbols, except that BOULDER is still accepted.

Available symbol sets

Normal dungeon

The following symbol sets are available for the normal dungeon and for the Rogue level:

  • Default symbols -- plain ASCII. This set is coded directly and not defined in the symbols file.
  • DECgraphics
  • IBMgraphics
  • IBMGraphics_1 -- displays walls as solid lines and all other characters the same way as ASCII
  • IBMGraphics_2 -- rolls back certain symbols to ASCII, for consistent display with code pages other than 437. The IBMgraphics article discusses code pages at length.
  • MACgraphics
  • NHAccess -- an ASCII-compatible symbol set intended for visually impaired players.

Rogue level

In addition to the above symbol sets, the following symbol sets are available for the Rogue level:

  • RogueIBM
  • RogueEpyx
  • RogueWindows

Of these, only RogueEpyx displays in color. RogueIBM and RogueWindows are in fact identical.

The symbols file supports limiting a symbol set to the main dungeon, but no preconfigured symbol set is restricted this way.

File format

The symbols file is a plain text file and can be edited by the user. Blank lines are ignored. Comments begin with '#' and continue to the end of the line. Lines consist of either the keyword "finish" standing alone or a keyword, a colon or equals sign, and a value. Keywords are not case sensitive.

A symbol set consists of:

  • a single line with keyword "start" or "begin" and a value constituting the name of the symbol set
  • a single line with keyword "handling" and a value of either "DEC" or "IBM"; the provided symbols file uses "MAC" for MACgraphics, but the source code does not recognize this value
  • an optional single line with keyword "description" and a line to be displayed in the options menu, to describe the symbol set
  • an optional single line with keyword "color" or "colour" and a value of any of "true", "yes", "on", "false", "no" or "off"; the default is to enable color in the main dungeon and disable it in the Rogue level
  • an optional single line with keyword "restrictions" and a value of "primary" or "rogue"; the default is no restriction
  • zero or more lines in which the keyword is a symbol name and the value is the character to be displayed; symbols for which no line is defined will be displayed as ASCII
  • a single line with keyword "finish" and no value

The character may be a single printable character other than backslash (which begins an escape), caret (which indicates a control character; you probably don't want this) or '#' (which begins a comment), or it may be an escape sequence. C-style escape sequences of the form '\123' are interpreted as octal, '\x45' as hex and '\d123' as decimal. '\Mx' gives a "meta" character, with the eighth bit set.

Recognized symbol names are as follows:

Default (ASCII) Name Description
Walls, doors etc.
- S_blcorn bottom left corner (of a room)
- S_brcorn bottom right corner (of a room)
- S_crwall wall
- S_hwall horizontal wall
- S_tdwall wall
- S_tlcorn top left corner (of a room)
| S_tlwall wall
- S_trcorn top right corner (of a room)
| S_trwall wall
- S_tuwall wall
| S_vwall vertical wall
# S_corr corridor
# S_litcorr lit corridor
<space> S_stone dark part of a room or solid rock
. S_ice ice
. S_room floor of a room
. S_ndoor doorway (with no or broken door)
+ S_hcdoor closed door (in horizontal wall)
| S_hodoor open door (in horizontal wall)
+ S_vcdoor closed door (in vertical wall)
- S_vodoor open door (in vertical wall)
> S_dnladder ladder down
> S_dnstair staircase down
< S_upladder ladder up
< S_upstair staircase up
Dungeon features
<space> S_air air
_ S_altar altar
# S_bars iron bars
# S_cloud cloud
{ S_fountain fountain
| S_grave grave
# S_hcdbridge horizontal raised drawbridge
. S_hodbridge horizontal lowered drawbridge
# S_vcdbridge vertical raised drawbridge
. S_vodbridge vertical lowered drawbridge
} S_lava molten lava
# S_poisoncloud poison cloud
# S_sink sink
\ S_throne opulent throne
# S_tree tree
} S_pool water
} S_water water
Traps
^ S_anti_magic_trap anti-magic field
^ S_arrow_trap arrow trap
^ S_bear_trap bear trap
^ S_dart_trap dart trap
^ S_falling_rock_trap falling rock trap
^ S_fire_trap fire trap
^ S_hole hole
^ S_land_mine land mine
^ S_level_teleporter level teleporter
^ S_magic_portal magic portal
^ S_magic_trap magic trap
^ S_pit pit
^ S_polymorph_trap polymorph trap
^ S_rolling_boulder_trap rolling boulder trap
^ S_rust_trap rust trap
^ S_sleeping_gas_trap sleeping gas trap
^ S_spiked_pit spiked pit
^ S_squeaky_board squeaky board
^ S_statue_trap statue trap
^ S_teleportation_trap teleportation trap
^ S_trap_door trap door
^ S_vibrating_square vibrating square
" S_web web
Items
" S_amulet amulet
[ S_armor or S_armour suit or piece of armor
0 S_ball iron ball
+ S_book spellbook
` S_boulder boulder
_ S_chain iron chain
$ S_coin pile of coins
% S_food piece of food
* S_gem gem or rock
! S_potion potion
= S_ring ring
` S_rock boulder or statue
? S_scroll scroll
S_tool (useful item (pick-axe, key, lamp...)
/ S_wand wand
) S_weapon weapon
Monsters
<space> S_ghost ghost
A S_angel angelic being
B S_bat bat or bird
C S_centaur centaur
D S_dragon dragon
E S_elemental elemental
F S_fungus fungus or mold
G S_gnome gnome
H S_giant giant humanoid
J S_jabberwock jabberwock
K S_kop Keystone Kop
L S_lich lich
M S_mummy mummy
N S_naga naga
O S_ogre ogre
P S_pudding pudding or ooze
Q S_quantmech quantum mechanic
R S_rustmonst rust monster or disenchanter
S S_snake snake
T S_troll troll
U S_umber umber hulk
V S_vampire vampire
W S_wraith wraith
X S_xorn xorn
Y S_yeti apelike creature
Z S_zombie zombie
a S_ant ant or other insect
b S_blob blob
c S_cockatrice cockatrice
d S_dog dog or other canine
e S_eye eye or sphere
f S_feline cat or other feline
g S_gremlin gremlin
h S_humanoid humanoid
i S_imp imp or minor demon
j S_jelly jelly
k S_kobold kobold
l S_leprechaun leprechaun
m S_mimic mimic
] S_mimic_def mimic
n S_nymph nymph
o S_orc orc
p S_piercer piercer
q S_quadruped quadruped
r S_rodent rodent
s S_spider arachnid or centipede
t S_trapper trapper or lurker above
u S_unicorn unicorn or horse
v S_vortex vortex
w S_worm worm
~ S_worm_tail long worm tail
x S_xan xan or other mythical/fantastic insect
y S_light light
z S_zruty zruty
& S_demon major demon
' S_golem golem
: S_lizard lizard
; S_eel sea monster
@ S_human human or elf
Effects
) S_boomleft boomerang open left
S_boomright boomerang open right
* S_digbeam dig beam
/ S_explode1 explosion top left
- S_explode2 explosion top center
\ S_explode3 explosion top right
| S_explode4 explosion middle left
S_explode5 explosion middle center
| S_explode6 explosion middle right
\ S_explode7 explosion bottom left
- S_explode8 explosion bottom center
/ S_explode9 explosion bottom right
! S_flashbeam flash beam
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_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_tl swallow top left
\ S_sw_tr swallow top right
- S_hbeam horizontal beam
| S_vbeam vertical beam
/ S_rslant diagonal beam (NE/SW)
\ S_lslant diagonal beam (NW/SE)
. S_venom splash of venom

Example

The following defines the traditional IBMgraphics symbol set:

start: IBMgraphics
        Handling: IBM
        S_vwall: \xb3                   # meta-3, vertical rule
        S_hwall: \xc4                   # meta-D, horizontal rule
        S_tlcorn: \xda                  # meta-Z, top left corner
        S_trcorn: \xbf                  # meta-?, top right corner
        S_blcorn: \xc0                  # meta-@, bottom left
        S_brcorn: \xd9                  # meta-Y, bottom right
        S_crwall: \xc5                  # meta-E, cross
        S_tuwall: \xc1                  # meta-A, T up
        S_tdwall: \xc2                  # meta-B, T down
        S_tlwall: \xb4                  # meta-4, T left
        S_trwall: \xc3                  # meta-C, T right
        S_ndoor: \xfa                   # meta-z, centered dot
        S_vodoor: \xfe                  # meta-~, small centered square
        S_hodoor: \xfe                  # meta-~, small centered square
        S_bars: \xf0                    # equivalence symbol
        S_tree: \xf1                    # plus or minus symbol
        S_room: \xfa                    # meta-z, centered dot
        S_corr: \xb0                    # meta-0, light shading
        S_litcorr: \xb1                 # meta-1, medium shading
        S_fountain: \xf4                # meta-t, integral top half
        S_pool: \xf7                    # meta-w, approx. equals
        S_ice: \xfa                     # meta-z, centered dot
        S_lava: \xf7                    # meta-w, approx. equals
        S_vodbridge: \xfa               # meta-z, centered dot
        S_hodbridge: \xfa               # meta-z, centered dot
        S_water: \xf7                   # meta-w, approx. equals
        S_vbeam: \xb3                   # meta-3, vertical rule
        S_hbeam: \xc4                   # meta-D, horizontal rule
        S_sw_ml: \xb3                   # meta-3, vertical rule
        S_sw_mr: \xb3                   # meta-3, vertical rule
        S_explode4: \xb3                # meta-3, vertical rule
        S_explode6: \xb3                # meta-3, vertical rule
finish

Screenshots

Main dungeon

Here are four screenshots of the same scene, using the three IBMgraphics variants and also DECgraphics.

With IBMgraphics

IBMgraphics-360.png

Note that the floor symbol is centered with respect to the @ sign on the left.

With IBMgraphics_2

IBMgraphics 2-360.png

The moat, the floor and the fountain are displayed with their ASCII symbols. The floor is an ASCII period, and displays low with respect to the @ sign on the left.

With IBMgraphics_1

IBMgraphics 1-360.png

The doors are displayed with their ASCII symbols.

With DECgraphics

DECgraphics-360.png

Rogue level

Here are two screenshots of the same scene, using the two Rogue level symbol sets.

With RogueIBM/RogueWindows

RogueIBM.png

With RogueEpyx

RogueEpyx.png