目录
- 1. 介绍
- 2. 这里发生了什么?
- 3. 屏幕上的东西都是什么意思?
- 4. 命令
- 5. 房间与走廊
- 6. 怪物
- 7. 物品
- 7.1. 诅咒与祝福
- 7.2. 神器
- 7.3. 圣物
- 7.4. 武器(‘)’)
- 7.5. 护甲(‘[’)
- 7.6. 食物(‘%’)
- 7.7. 卷轴(‘?’)
- 7.8. 药水(‘!’)
- 7.9. 魔杖(‘/’)
- 7.10. 戒指(‘=’)
- 7.11. 魔法书(‘+’)
- 7.12. 工具(‘(’)
- 7.13. 护身符(‘"’)
- 7.14. 宝石(‘*’)
- 7.15. 巨石(‘`’)
- 7.16. 金币(‘$’)
- 7.17. 物品的保持显示
- 8. 挑战(Conduct)
- 9. 选项
- 9.1. 设置选项
- 9.2. 使用配置文件
- 9.3. Using the NETHACKOPTIONS environment variable
- 9.4. Customization options
- 9.5. Window Port Customization options
- 9.6. Crash Report Options
- 9.7. Platform-specific Customization options
- 9.8. Regular Expressions
- 9.9. Configuring Autopickup Exceptions
- 9.10. Changing Key Bindings
- 9.11. Configuring Message Types
- 9.12. Configuring Menu Colors
- 9.13. Configuring User Sounds
- 9.14. Configuring Status Hilites
- 9.15. Modifying NetHack Symbols
- 9.16. Customizing Map Glyph Representations Using Unicode
- 9.17. Configuring NetHack for Play by the Blind
- 9.18. Global Configuration for System Administrators
- 10. Scoring
- 11. Explore mode
| NetHack 5.0.0 | 2026.06.21 | [目录] |
1. 介绍
最近,你开始发现自己在日常工作中感到无所适从、心不在焉。探矿,偷窃,十字军和战斗等奇异梦境困扰了你数月,然而你却不知这是为何。你不禁怀疑,这些是否本是真实的记忆,只是直到此刻才重新浮现。有些夜晚,你从梦中惊醒,泪水涟涟,回想起那些在梦境中奇异而强大的生物,你不禁感到恐惧,这些生物似乎潜伏在梦境中地牢的每个角落。这些萦绕不去的梦境,究竟是真实的吗?每当夜幕降临,一种想要踏入远郊废墟深处那座神秘洞穴的冲动便愈发强烈。然而到了清晨,那些关于“有去无回的探险者”的惨痛传说,又会让你将这疯狂的念头强压下去。最终,你抑制住了寻找那个在梦境中的神秘之地的想法。毕竟,那些在洞中待了一段时日、循原路返回的探险者,往往比初入时更显从容。谁能说那些没有回来的人不是在继续探索着呢?
经过四处打听,你得知一个叫做岩德护身符(Amulet of Yendor)的宝物。如果你能找到它,它能为你带来巨大的财富。还有传说称“寻得此符者,将蒙诸神赐予永生”。有传言说护身符位于地狱(Gehennom)之外,在险境迷宫(Mazes of Menace)内的深处。听到这些传说后,你立即意识到有一些深远而隐秘的原因,你要下到洞穴里去寻找他们所说的护身符。即使关于护身符力量的谣言是不真实的,你还是决定至少应该能够将冒险经历的故事以可观的价格卖给当地的吟游诗人,特别是在一路上遭遇到的任何恐怖或者神奇的生物。你在当地酒馆度过了最后一夜,望着墙上愈发低落的成功率数字,心中不免沉重。
早晨你醒来,收拾好你的东西,动身前往地牢。数日平淡无奇的跋涉后,你看到了古老的遗迹,它们标志着险境迷宫的入口。夜深了,你就在门口扎营,在空旷的天空下过夜。早上,你再次收拾好你的装备,在洞外用了也许是最后一顿的早餐,然后你进入了地牢……
| NetHack 5.0.0 | 2026.06.21 | [目录] |
2. 这里发生了什么?
你刚刚开启了一段NetHack的游戏旅程。你的目标就是尽可能多的获取财宝,寻回岩德的护身符,并且活着逃离险境迷宫。
你应对这场危险冒险所展现的能力与力量因随着你的背景和训练的不同而不同:
考古学家(Archeologist)非常了解地牢,这使得他们移动速度非常快,同时可以偷偷接近那些地牢中险恶的事物。他们开始游戏时装备着适合于科学探险的工具,而且能够解读古代语言。
野蛮人(Barbarian)是内陆的勇士,对战争冷血无情。他们踏上征程时,除了一身非凡的力气、一件可靠的锁子甲和一把巨大的双手剑外一无所有。
穴居人(Caveman/Cavewoman)拥有卓越的力量,但不幸的是他们只有新石器时代的武器。
医生(Healer)在医学和药水学方面十分博学。他们熟知可以恢复体力、减轻疼痛、麻醉以及中和毒药的草药。借助他们的器械,他们可以推断生物的健康或生病状态。他们在医学方面的经验为他们挣得的金钱相当可观,他们便把这笔钱带入了地牢。
骑士(Knight)不同于一般的游击兵,以他们卓越的盔甲和对骑士精神典范的虔诚。
武僧(Monk)是苦行者,他们通过严格的身心修习,已能不依赖武器却能像使用武器一样有效地战斗。他们不穿盔甲,但凭借更强的机动性弥补了这一不足。
祭司(Priest/Priestess)是好战的牧师和十字军战士,通过武器、护甲和法术推进正义事业。他们通过祈祷与神交流的能力有时可以将他们从危险中解决出来,但有时也会使他们陷入其中。
游侠(Ranger)十分熟悉森林的环境,有人认为他们在地牢中有些不合适。不过他们精通射箭,在追踪和暗中移动上也是如此。
盗贼(Rogue)是敏捷和悄无声息的小偷,精通开锁、设陷和毒药。他们的优势在于行动出其不意,并能将这一优势发挥得淋漓尽致。
武士(Samurai)是日本封建时代的精英战士。 他们轻装上阵、迅捷,带着“大小”(だいしょう,大刀和小刀),——两把有着最致命的刀锋的刀。
游客(Tourist)携带着大量金币(可以用来买东西)、一张信用卡、大量食物、一些地图以及一架昂贵的相机开始旅程。大部分怪物不喜欢被拍照。
女武神(Valkyrie)是强壮的女战士。她们在严酷的北国中被养育成人,这些经历使她们身强体壮,能够忍受极寒,并使她们练就了隐蔽行动和狡黠的本领。
巫师(Wizard)初始便掌握魔法知识,拥有若干魔法物品,并对魔法术法有着特殊的亲和力。尽管看上去似乎实力薄弱,很容易被打败,但经验丰富的巫师却是致命的敌人。
你同样可以选择你的种族(有一定的限制,大多数角色都限制了哪些种族适合他们):
矮人(Dwarf)比人类以及精灵更矮小一点,矮人最显著的特征是他们在采矿和金属加工方面拥有高超的技艺。矮人的护甲质量据说仅次于精灵族的秘银护甲。
精灵(Elf)具备敏捷、迅速的特质和敏锐的洞察力。极少会有什么发生的事情逃过精灵的眼睛。精灵在武器和护甲上优良的建造技艺通常会给他们带来很巨大的优势。
侏儒(Gnome)比起矮人要矮小一点不过除此之外通常和矮人很接近。侏儒以采矿专家著称,据传在险境迷宫中存在一座由该种族建造的秘密矿井,那里既充满财富,也暗藏危险。
人类(Human)是目前为止地表世界上最常见的种族。因而经常作为基准与其他的种族进行比较。尽管他们没有什么特别的能力,但是他们可以胜任任何的角色。
兽人(Orc)是残忍和野蛮的种族,他们憎恨所有的生物(包括其他的兽人)。兽人对于精灵族的憎恨尤为深重,他们会不惜一切代价,抓住任何机会杀死精灵。兽人打造的盔甲和武器通常质量低劣。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
3. 屏幕上的东西都是什么意思?
在屏幕上维持着一个地图,上面显示了你在地牢当前层已经到过的位置以及已经见过的东西;随着你继续探索这一层,剩余的部分将会逐渐展示在你的屏幕上。
当NetHack的鼻祖Rogue(一款同样类型的游戏)首次出现的时候,它的屏幕样式在各种电脑幻想游戏中几乎都是独一无二的。从那以后,这类游戏屏幕样式已经成为常态而非例外;NetHack保持了这一优良的传统。不同于接收以伪英文构成的命令,然后用文字解释结果的文字冒险类游戏,NetHack的命令全都有一个或两个按键构成,并且结果会以图形展示在屏幕上。对于这个游戏,推荐最小的屏幕尺寸为24x80;如果游玩的屏幕比这更大,只有21x80的区域会被用于展示地图。
NetHack甚至可以让盲人玩家在盲人阅读器或者是语音合成器的帮助下进行游玩,关于如何配置适用于盲人游玩的介绍放在本文档的后面。
每当你进行一场游戏的时候,NetHack会生成新的地牢;即使是在作者已经通关了几次NetHack之后,仍然觉得它是一个有趣且充满刺激的游戏。
NetHack提供各种各样的现实选项。这些选项对于你的获取来说,会随着不同的移植而不同,这取决于你的硬件和软件的的能力,以及当你的可执行文件生成时,各种编译时候的选项是否开启。三种可能的显示选项为:一种单色的字符界面、一种彩色的字符界面以及使用一种叫做tiles的小图象的图形界面。两种字符界面允许替换为其他字符的字体,不过默认的配置是使用的标准ASCII字符集去呈现一切的东西。从游戏的角度来讲,各种的显示选项相互之间没有任何的区别。因为我们在本篇指南中无法呈现以使用的tiles或者是彩色的界面,并且默认的单色ASCII字符界面对于所有的移植都是共通的,所以我们将在提及你在游戏中可能在屏幕上看到的东西的时候,使用默认的单色ASCII字符。
为了搞清楚在游戏中发生了什么,你首先需要明白NetHack对屏幕上的内容都做了什么。NetHack的屏幕代替了文字冒险类游戏中的“You See...”之类的描述。图1是NetHack中的屏幕可能看到的内容的事例。你的屏幕所呈现的样式取决于你的平台。
| The bat bites! |
| ------ |
| |....| ---------- |
| |.<..|####...@...$.| |
| |....-# |...B....+ |
| |....| |.d......| |
| ------ -------|-- |
| Player the Rambler St:12 Dx:7 Co:18 In:11 Wi:9 Ch:15 Neutral |
| Dlvl:1 $:993 HP:9(12) Pw:3(3) AC:10 Exp:1/19 T:752 Hungry Conf |
图1
| .\" Use trailing spaces to force the same width as Figure 1. |
| Player the Rambler St:12 Dx:7 Co:18 In:11 Wi:9 Ch:15 |
| Neutral $:993 HP:9(12) Pw:3(3) AC:10 Exp:1/19 Hungry |
| Dlvl:1 T:752 Conf |
图2
| NetHack 5.0.0 | 2026.06.21 | [目录] |
3.1. 状态行(底部)
屏幕底部的两行(或三行)包含若干晦涩难懂的信息,用于描述您的当前状态。图1展示了地图下方传统的两行状态区域。图2仅展示了状态区域,此时已设置了statuslines:3选项(并非所有接口都支持此选项)。
如果任何状态行的宽度超过屏幕宽度,您可能无法看到其全部内容,因为内容会被截断。当数字变大且存在多个条件时,两行格式会在第二行空间不足,但statuslines:2是默认设置,因为基本的24行终端高度不足以显示第三行。
以下是对各种状态项含义的解释:
在冒险过程中,你会获得经验值。当经验值累积到一定数值时,你就会提升一个经验等级。经验越丰富,你的战斗能力就越强,抵御魔法攻击的能力也越强。(当你的等级达到两位数时,显示等级所对应的经验值的意义会大幅降低。你可以使用‘O’命令关闭showexp,以避免占用有限的状态栏空间。)
如果你当前的状态是正常的,这里将不会有任何显示。
负载:显示你当前所携带的物品会如何影响你的行动能力。对应值有无负重(Unencumbered)、负重(Burdened)、吃力(Stressed)、受压(Strained)、高压(Overtaxed)和超载(Overloaded)。如果你当前无负重(Unencumbered),这里将不会有任何显示。
致命情形:石化(Stone,又叫Petrifying)、黏液化(Slime)、窒息(Strngl,即strangulation)、食物中毒(FoodPois,即food poisoning)、不治之症(TermIll,即terminal illness)。
非致命情形:失明(Blind)、失聪(Deaf)、眩晕(Stun)、混乱(Conf)、幻觉(Hallu)。
特殊移动方式:飘浮(Lev)、飞行(Fly)、骑乘(Ride)。
对于还存在一些其他的情形和标识,但是在状态区域没有足够的空间去展示它们的情况,可以使使用‘^X’(Ctrl+X)来展示所有相关的状态情况。
#attributes命令(默认键位为\(^X) 将显示所有当前状态信息,且不使用缩写形式。此外,它还会显示其他信息——如果状态行有更多空间,这些信息本可能包含在其中。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
3.2. 消息行(顶部)
在屏幕顶部一行是预留用来展示那些无法使用图像来描述的信息的。如果你在顶部看到一行“--More--”(更多),这意味着NetHack还有另外的消息需要在屏幕上显示,不过NetHack想要确认你已经阅读了第一条信息。想要阅读下一条消息,你只需要按下空格键。
要改变消息行的显示方式以及显示内容,请查看“配置消息类型”以及verbose选项。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
3.3. 地图(屏幕的余下部分,符号含义)
屏幕的余下部分是目前为止你在当前地牢层已经探索过的地图。在屏幕上呈现的每一个符号都表示了某些东西。你可以设置各种各样的图形选项来改变这些符号在游戏中用途。否则,游戏将使用默认的符号。这里将列举这些符号默认的含义:
注:走廊中的铭文也显示为#,但显示颜色与普通走廊位置不同。
注意:雕像显示出来的字符和其所描绘的怪物一样,因此不会显示为钝音符(又叫“反引号”)。
你不需要记下这些所有的字符;你可以使用‘/’命令(来向NetHack查询任何的字符所代表的含义(更多的信息见下一节)。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
4. 命令
命令可以由键入该命令所绑定的一个或两个字符发起,或者通过扩展的命令入口键入命令名称。一些命令,例如search(查询),NetHack不需要任何更多的信息即可执行。还有一些其他的命令可能需要额外的信息,例如一个方向,或者需要用到的物品。对于这些需要额外信息的命令,NetHack将会向你呈现一个供你选择的菜单或者一个命令行提示以要求更多的信息。向你呈现哪一种形式主要取决于你如何设置menustyle选项。
举个例子,一个形式为“What do you want to use? [a-zA-Z ?*]”的常见问题,让你选择一个你当前携带的物品。在这里,“a-zA-Z”指示在你的物品清单中的你可能选择的物品的字母。键入‘?’会为你展示物品清单中的这些物品,因此你可以看到每个字母所指代的物品。在这个例子中,这里有个‘*’指示了如果你想要使用一些意料之外的物品,你可能会选择一个不在列表里面的物品。键入‘*’会列出你的整个物品清单,因此你可以看到在物品清单里面你所携带的所有物品以及对应的指代字母。最后,如果你改变了你的想法决定不想继续执行这个命令,你可以按下ESC键来中止这条命令。
你可以在一些命令前加上一个数字来重复执行它们数次;例如,“10s”将会搜索10次。如果你启用了number_pad选项,你必须在次数前加上‘n’作为前缀,所以对于上面的例子你应该输入“n10s”来实现其效果。
那些对于次数没有意义的命令,这些命令将会忽略这些数字。 此外,移动命令可以添加前缀来进行更好的控制(见下方)。按下ESC键以取消次数或者前缀。下方这些命令列表将会特别长,但是可以通过‘?’命令在游戏中的任何时候阅读它们,‘?’命令会访问一个有帮助文本信息的菜单。下面是以默认按键绑定的供你参考的命令:
‘,’会解释符号但会跳过任何额外的信息,然后让你选择下一个位置;‘;’将会跳过额外的信息并且也会跳过询问你让你选择下个地点;‘:’将会不经过 “More Info?” 确认就显示额外的信息,如果有的话。当正在选择一个位置的时候,按下ESC键将会中止这个命令,或者按下‘?’将会给出它如何工作的简明提示。
如果autodescribe选项启用,当你光标移动的时候,光标所在位置的会显示一个简短的描述。
当选择位置的时候键入‘#’将会对于autodescribe选项进行动态开启或关闭。whatis_coord选项会控制简短描述信息是否包含该位置在地图上的坐标。
指定名称而非位置总会提供关于该名称的所有可用附加信息。
您还可以请求获取附近怪物的描述、当前显示的所有怪物、附近物体的描述,或所有物体的描述。whatis_coord选项用于控制在描述中包含哪种格式的地图坐标。
| y k u | 7 8 9 |
| \ | / | \ | / |
| h−.−l | 4−.−6 |
| / | \ | / | \ |
| b j n | 1 2 3 |
| (关闭number_pad) | (开启number_pad) |
图3
一些非移动命令使用‘m’前缀来通过菜单进行行动(可以暂时覆盖menustyle:Traditional)。在当这里显示只有一种物品时,它主要用于‘,’(捡起)(这将不会出现“What kinds of objects?”的提示,因此没有机会对那个问题回答‘m’。
还有一些其他的命令(进食,进行献祭,使用开罐器)使用‘m’前缀来跳过检查在地上的合适的物品而是直接去检查物品清单,或者(使用“#loot”,掠夺命令,卸下马鞍),将会跳过容器直接朝怪物。这个前缀将会使“#travel”命令展示一个列有当前视野中的感兴趣目标的菜单。在调试模式(巫师模式)下,‘m’ 前缀可用于“#teleport”(传送)和“#wizlevelport”命令。
注意:<Control>+<key>指的是打字时按下<Shift>一样按下<Control>或者<Ctrl>,然后再按下<key>,松开<key>,再松开<Control>。说明手册里的^<key>意思是一样的。Control加的字母是大小写无关的,所以^x和^X一样的。
M’作为一个移动前缀,结合了‘m’和<Control>+<direction>。 这个前缀已经不再支持,但是可以用‘m’和G<direction>组合实现类似的效果。 m也可以和g<direction>、<Control>+<direction>或者<Shift>+<direction>组合起来。该最短路径由英雄已知的地图位置计算得出(例如看到的或先前走过的)。如果这里无法计算出一个最短路径,那么会使用一个猜测的路径来替代。其停止条件大多数情况和‘G’前缀类似,但是不会捡起物品,因此隐式地强制使用‘m’前缀。对于支持鼠标的移植,当在非当前位置鼠标点击发生时,同样会被调用。
如果选择一把魔杖,该魔杖将会被破坏,并在这个过程中施放它的魔法。操作前会要求确认。
使用‘T’来卸下一件护甲或者‘R’来卸下一件配饰。
同拓展命令“#name”。
例如“d7a”意味着丢掉7件a物品。
为了回答问题
“What kinds of things do you want to drop? [!%= BUCXPaium]”
你需要键入零个或者多个物品字符,紧接着按下‘a’和/或‘i’和/或‘u’和/或‘m’键。此外,可以键入一个或者多个被祝福的/被受诅咒的/被诅咒的分组。
最后一个例子展示了一个组合。这里有个四种类别物品过滤:类别((‘!’,用于毒药;‘?’,用于卷轴,等等),商店状态(‘u’用于未付款,换句话说,仅用于购物),祝福/诅咒状态(如上所示的‘B’、‘U’、‘C’以及‘X’),还有新版的‘P’,最近捡起的物品;通过捡起或放下物品来控制,而非受时间因素影响)。
如果你在一项类别上,指定了不止一个值(例如“!?”对于毒药和卷轴或者是“BU”对于被祝福的和未被诅咒的),一项物品如果它匹配了指定值的任意一个将会满足条件(因此“!?”意味着‘!’或者‘?’)。如果你指定了多个类别,物品将会匹配每个类别的条件(因此“%u”意味着种类‘%’和未付款‘u’)。最后,你可能会在多个类别中指定多个值:“!?BU”将会选择所有被祝福或未被诅咒的毒药和卷轴。(在3.6之前,过滤组合的行为是不一样的。)
通常优先检查在地上的可食用物品,如果找不到可选择的,就检查在物品清单中的。在‘e’之前使用‘m’前缀将会直接忽视去吃地上的食物。
如果你试图在已经处于饱腹状态的时候进食,你可能会因为噎住窒息而死。如果你冒这个险,那么如果你在第一口活了下来,你将会被询问“continue eating?”。你可以设置paranoid_confirmation:eating选项:要求在回应时输入\f(CRyes\fP来替代\f(CRy\fP。
刻下“Elbereth”将会造成大多数的怪物在接近你的时候不会攻击你(但是一旦你进行了攻击,你将破坏你的刻字);这个方法通常有助于给你自己争取喘息的机会。
如果当前持有的武器具有“投掷并返回”属性,且你的箭袋为空,并且autoquiver为false,则会投掷该武器,而非将箭袋填满。
如果装备了长柄武器,系统也会自动使用该武器。如果fireassist为true,射击时系统会自动尝试装备与箭袋中弹药匹配的发射器(例如,弓或投石器);此过程可能需要多个回合,并可能被怪物打断。
请记住,事后请切换回你的主要近战武器。
查阅‘t’(throw)以获取更多关于一般投射或者开火。
一个展示当前选项值的菜单将会被显示出来。对于大多数的值你可以通过选择所给出的项的菜单入口进行方便地修改。(通过键入对应项的字母或者点击该选项,这取决于你的界面)。对于非布尔值,一旦你在选择后关闭了菜单,将会进入一步出现额外的菜单或者提示。那些可用的选项将会在指南的后面列出来。选项通常在游戏前被设置而不是使用‘O’命令;参见关于选项的部分。在‘O’前面添加‘m’前缀以显示高级选项。
“#overview”简单来说就是:显示已经探索过的值得注意的地牢层。
(在3.6.0之前,‘^O’曾是调试模式命令,该命令展示所有特殊的地牢层的位置。使用“#wizwhere”去执行那个命令。)
这个命令也可能被用于穿护甲。询问想要使用哪一件物品的提示只会列出饰品,但是选择一个未被列出的护甲物品也将会尝试穿上它。(查看下面的‘W’命令。它会列出护甲作为物品清单选项,但是也会接受一件饰品并且尝试穿上。)
在之前消息后的‘^P’将会重复之前的消息。对于某些用户界面来说,这个行为将会随着msg_window选项而有所不同。
当出现喷泉或水槽时,系统会询问是否要从那里喝水。如果拒绝,则会提供从背包中选择一瓶药水的机会。在‘q’前面加上‘m’前缀,即可跳过关于是否从喷泉或水槽喝水的询问。
(在3.3之前,这个命令用于退出游戏,现在已经迁移至“#quit”命令。)
如果你正戴着不止一件,你会被提示需要移除哪一件。当你只戴着一件,默认情况下你将被不会询问而是直接移除,但是你可以设置paranoid_confirmation:Remove选项来提示。
这个命令也可能被用于脱下护甲。提示希望哪一件物品被移除只会列出正戴着的饰品,但是正穿着的护甲也能选择。(见下方‘T’命令。该命令列出物品清单中的护甲,但是也可选择饰品且会试图移除它。)
该命令也能用于了解是否这里临近还有怪物。
对于一般的游玩,一旦保存的游戏被重新加载后,用于存放游戏进展的文件将被删除。在探索模式中,一旦重新加载完成,你将被询问删除还是继续保存游戏文件。保存游戏文件可以让你在游玩一阵子后在不保存游戏进度的情况下退出游戏,也能重新加载它。
这里不存在“保存当前游戏并继续游玩”的命令,即使是在探索模式下保存的游戏文件能够持久化并被再次读取使用的情况。
这里没有一个单独的叫做“shoot”的命令。如果你手持弓来投出一只箭时,你则是在射箭,并且任何对于武器技巧的增益或者减益都会被应用起来。如果你在抛出一只箭时并没有手持弓,那么你就是使用手来抛出它,并且这样通常比起使用弓射出有更少的效果。
另见使用‘f’来在使用‘Q’之前选择一个物品,然后在额外辅助下将其投掷或射出。
如果你正穿着不止一件护甲,你将被提示到底要脱下哪件护甲。(注意如果你在T恤外面穿了护甲,或者在护甲外面穿了斗篷,系统会将底下的物品视为不存在。)当你只穿着一件护甲的时候,默认的情况下不会进行确认而是直接脱下,但是你可以设置paranoid_confirmation:Remove选项来要求给出确认提示。
这个命令也可以被用于移除饰品。哪一件物品需要被移除的提示只会列出穿着的护甲,但是一件被戴着的饰品也可以被选择。(查看上面的‘R’命令。它会列出物品清单中的饰品作为选项,但是也会接收一件护甲物品并试图脱下它。)
‘v’曾用于显示游戏版本号。现在请改用‘V’来实现此功能。
“V”曾用于显示游戏历史。现在可以用“#history”。
有的角色可以一次性手持两把武器;使用‘X’命令(或者“#twoweapon”扩展命令)来实现。
这个命令也可以被用于戴上一件饰品(戒指,护身符,或者眼罩)。提示哪一件物品要被穿上的物品清单中只会列出护甲,但是选择一个未被列出的饰品也会尝试戴上它。(查阅上方的‘P’命令。它列出所有物品中的饰品但是也会接受一件护甲并且试图穿上它。)
当你正在进行双持武器进行战斗的时候,后者将会成为你的副武器。需要注意的是如果主要或者副武器槽是空的,交换依然会进行。
(在3.6版本之前,这个键位曾用于开启“探索模式”,也被称作“发现模式”,现在被迁移至“#exploremode”和M-X。)
展示名称,角色,种族,性别(除非角色名称已经能够指明,例如穴居人(Caveman)或者牧师(Preiestess),和阵营,连同你的神和他或她的敌人。该命令也显示来自于状态行的各种各样的信息在一个简洁的表格里,包括一系列额外的因为显示空间有限而没有出现在正常状态显示栏的东西。
在正常的游戏中,‘^X’会显示所有的东西。在探索模式中,角色与状态的反馈信息通过被启蒙魔法提供的信息而被增强显示。
可以在命令前加一个`m`来强制出现一个选择菜单。
该命令组合了先前的五个命令。
使用这个命令,你也可以对所列出来的已知咒语进行重排序,既可以对整个列表进行重排序也可以选择菜单中其中的一个咒语然后选择另外的一个咒语将它们进行位置交换。交换一对咒语也会改变施放它们时候按下的对应的字母,因此这个改变将会在当前‘+’命令完成后一直持续。对整个列表进行排序只是临时的。为了让排序后的列表在当前的‘+’命令之外永久有效,需要再次选择排序选项,然后选择“reassign casting letters(重新分配施法字母)。(任何的法术咒语在学习后将会被添加到咒语列表的最后,而不是插入到已经排序完成的列表中。)
前面添加‘m’以选择显示顺序。
前面添加‘m’以选择显示顺序。
允许使用menu_first_page、menu_previous_page、menu_next_page和menu_last_page键(默认键位分别为 ‘^’、‘<’、‘>’、‘|’)。某些界面还支持menu_shift_left和menu_shift_right键(默认键位分别为 ‘{’ 和 ‘}’)。使用Return(即 Enter)或 Escape 键来恢复游戏。
许多终端都有一个选项可以交换<delete>和<backspace>键的功能,因此按下<del>键可能无法执行此命令。如果发生这种情况,您可以改用扩展命令“#terrain”。
正如你所看到,NetHack的作者用尽了所有的字符,因此这是一种方式(扩展命令)来使用低频使用的命令。什么样的扩展命令可以使用取决于当前游戏所编译版本拥有的特性。
自动完成。默认按键为“M-a”。
这个命令允许你将一个物品项从一个指定的槽移动到另一个槽以至于让该物品对应的字母对于你来说更有意义或事在物品清单展示的时候让该物品出现在指定的位置。你可以将物品移动到当前一个空白的槽,或者目标位置已经被占用了(不会被合并),对应位置的物品将和当前物品进行交换。“#adjust”也可被用于分离一堆的物品;当选择要被调整的一堆物品时,需要在对应字母前输入一个数量来进行分离。
在移动到目标位置的时候,不输入任何的数量将会收集所有匹配的物品堆合并到一起。这个行为已经改变了;为了收集所有匹配的物品堆,“#adjust”调整一个物品堆到它当前自己的槽就能够实现上述的匹配收集效果。如果它已经被分配了一个名称,其他拥有相同名称或者没有名称但是属性匹配的物品堆将会被合并。如果这个物品堆本身没有名字,那么只有那些没有名称的物品堆会被选中。在上述任何一种情况下可以进行合并,然而相互匹配的物品堆但是是不同的名称是不会被合并到一起。这种用法和使用“#adjust”来调整一个物品移动到另一个物品槽的用法有所差别。在后者的情况下,如果一堆有名称而另一堆没有名称,移动(不设置数量)一组相匹配的物品堆将会合并并且赋予另一堆相同的名称,而分离一堆物品(设置数量)当决定是否合并到目标物品堆的时候,将会忽略源物品堆的名称。
在#annotate前加上‘m’前缀和等同于加上‘m’前缀的#overview。
如果这个工具作用于在地上的物品,使用‘m’前缀来跳过这个物品。
如果选择一把魔杖,该魔杖将会被破坏,并在这个过程中施放它的魔法。操作前会要求确认。
默认按键为‘@’。
查看下文标题为“Conduct”的部分获取详细信息。
‘m’前缀会可跳过关于是否浸入喷泉或水池的水的询问。则无需下水。
会进行确认;默认的回应是n(no)。想要真正的切换到探索模式,需要回答y。你可以通过设置paranoid_confirmation:quit选项来要求输入\f(CRyes\fP而不是\f(CRy\fP来回答。
显示顺序同#vanquished.‘m’前缀会弹出一个包含可用排序方式的菜单,而无论对#genocided还是#vanquished执行此操作,都会同时更改两者的排列顺序。
如果排序顺序是“从高到低”或者“从低到高”(适用于#vanquished),#genocided会忽略它们,转而使用字母排序。当用于#genocided时,菜单中会省略这两个选项。
自动完成。默认按键‘M-g’.
如果允许了鼠标,而且herecmd_menu选项为On,点击英雄(或者你骑上的坐骑)会执行这个命令。
‘m’前缀可用于为sortdiscoveries选项赋予新值,以控制发现结果的显示顺序。
‘m’前缀和“#known”效果相同.
你需要找到一个祭坛才能够有机会进入下一步。你最近杀死的怪物的尸体是这个祭坛的敲门砖。
‘m’作为命令的前缀将会跳过提供任何在祭坛上的物品。
BINDING=O:optionsfull导致‘O’从简单选项切换回传统高级选项的情况。)在#overview前面添加‘m’前缀,即可将地下城概览以菜单形式显示,您可以在其中选择任何已访问的层,从而添加或删除注释,而无需返回该层。此操作还将强制显示所有已访问的层,而不仅仅是“interesting”子集。
自动完成。默认按键为‘^O’,and “M-O”。." DON'T PANIC!
会被要求进行确认;默认是n(no);继续游戏。为了真正的恐慌,需要回答y。你可以设置选项paranoid_confirmation:quit来要求用\f(CRyes\fP替代y进行回答。
系统会提示您输入菜单滚动快捷键,例如‘>’和‘<’。按下Return或Escape回到正常游戏。默认按键为‘|’.
在先前获得帮助后立马再次进行祈祷不是一个好主意。(注意:活着进入地牢被认为已经获得了帮助。你不应该在开启新一轮游戏后立马进行祈祷。)偶然的使用这个命令会造成麻烦,因此这里有个选项可以让你确认你想要进行祈祷的意图。该选项默认开启,你可以重置paranoid_confirmation选项来禁用它。
‘m’前缀会跳过喝你的位置的喷泉或者水槽里的水。
一旦偶然使用了这个命令游戏将会直接退出,你将会被询问你是否需要退出。默认的回应是n(no);游戏继续。想要真正退出,回答y。你可以设置paranoid_confirmation:quit选项来要求回答\f(CRyes\fP。
即使菜单中只有一个正在使用的物品,也会将其显示出来。
使用前缀‘m’将强制在菜单中显示已佩戴的护身符,而不是仅显示一条消息。
即使菜单中只有一个正在穿着的防具,也会将其显示出来。
如果佩戴了两个戒指(或者只有一个,且是肉戒指而非“真正的” 戒指),则会在菜单中显示这些戒指。使用‘m’前缀可强制为单个戒指显示菜单。
如果正在使用一个工具(佩戴眼罩、毛巾或隐形眼镜,点燃的灯和/或蜡烛,以及/或系在宠物身上的牵引绳),则会在消息中显示结果。如果正在使用多个工具,或者该命令前带有 ‘m’ 前缀,则会显示一个菜单。
如果进行双持,系统会显示一条关于副武器的单独提示。使用‘m’前缀将强制弹出菜单,该菜单将包含主武器、备用武器(即使未进行双持时也是如此),以及当前分配给箭袋槽位的任何物品。
exit’返回游戏。默认按键为‘!’。fg’返回游戏。 默认按键为‘^Z’。如果视野中可见气体云,在决定是显示气体云还是其下方的地面时,会将其视为陷阱。
在探索模式下,你可以选择查看完整地图,而不仅仅是其已探索的部分。在调试模式下,还有其他选项。
自动完成。默认按键是‘<del>’或者‘<delete>’(见上方的Del)。
前缀‘m’会使该命令跳过地面上的容器,并从库存中选择一个,但menustyle \f(CR:traditional\fP这种特殊情况除外;当存在两个或更多容器时,该情况将从地面容器菜单开始。
自动完成。默认按键为“M-T”。
例如:
See also #retravel.
需要注意的是你必须要使用合适的武器来进行这种类型的战斗,否则双持武器模式将会自动关闭。
在某些情形下(circumstance)该命令也可以用于解救被陷阱困住的怪物。
请注意,被击败的怪物列表中包含所有被陷阱、其他怪物以及你本人击杀的怪物,但排除了那些在未被击杀的情况下被移出游戏(例如因种族灭绝,或因被安抚后的商人驱散了召唤出的警卫)的怪物,以及在放置到地图上时已是尸体的怪物。
在#vanquished命令前使用“request menu”前缀,将弹出一个可用的排序顺序菜单(前提是被击败的怪物列表中至少包含两种类型的怪物)。无论选择哪种排序顺序,都会被分配给sortvanquished选项,因此会在后续的#vanquished请求中被记住。
“#genocided”命令也使用相同的排序顺序。
在游戏结束信息显示阶段,当被问及是否显示已击败的怪物时,输入‘a’将允许你从排序菜单中进行选择。
自动完成。调试模式专属。默认按键为‘M-V’.
第二段列出了包含的用户界面。如果有多个用户界面,您可以在运行时配置文件中使用windowtype选项来选择所需的用户界面。
默认按键为“M-v”。
m’前缀以覆盖。 自动完成。调试模式专属。此外还展示了第一、第二和最后的随机的刻字、墓志铭,以及令人恍惚的怪兽。
自动完成。调试模式专属。
m’前缀以显示愿望历史记录菜单。如果你的键盘拥有一个meta键(当与其他的键一同作为组合键按下的时候,会设置另一个键的“meta”【第8,或“更高位”】比特),你可以通过给字母前加上meta键来调用任何的扩展命令。
在Windows和MS-DOS中,可以用“Alt”键实现这个特性。在其他系统中“Alt”加另一个键 发送一个由转义符和随后另一个键组成的两个字符序列,你可以设置altmeta选项以让NetHack结合成meta+
(这种组合操作仅在NetHack等待执行某条命令时才会发生,而在接受命名或许愿的输入时则不会发生。)
与控制字符不同,控制字符中^x\)和^X\)表示相同的内容,而meta字符则区分大小写:M-x和M-X表示不同的内容。某些可通过元字符执行的命令要求该字母必须大写,因为小写形式已被用于另一个命令,因此需要使用meta+Shift+<letter>这三个键的组合。
如果启用了number_pad选项,还有一些额外的字母命令可用:
| NetHack 5.0.0 | 2026.06.21 | [目录] |
5. 房间与走廊
房间和走廊在地牢里面都是有明有暗的。任何在你的视线所照亮的区域都将显示出来;黑暗的区域只会在距离你一格的地方被显示。当你探索到墙和走廊,它们会一直保持在地图上。
暗道正常情况下是看不见的,显示和坚硬的岩石一样。当你位于它们附近时,可以使用 ‘s’(搜索)命令找到它们。可能需要多次尝试搜索。搜索成功后,暗道会变成普通的开放走廊。魔法地图会揭示暗道,因此会将其转换为普通走廊,并以普通走廊的形式显示出来。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
5.1. 门口
默认情况下,autoopen选项处于启用状态,因此只需尝试走到关闭的门所在的位置,系统就会尝试将其打开,无需输入‘o’。
如果你处于混乱(Conf)或眩晕(Stun)状态,或者具有笨拙(fumbling)属性,则通过autoopen打开门的功能将无法生效。
门口连接了房间和走廊。当然有一些门口是没有门的;你可以直接走过去。另外一些门口会有门存在,门可以打开,关上,或者锁上。使用‘o’命令开门;使用‘c’命令关门。
你可以使用一些工具然后使用‘a’命令来打开锁上的门,或者使用‘^D’命令来直接踢开它。
在打开门后无法斜着进入门;你必须要有接近它们然后垂直或水平地直着走进去。没有门的门口不受这个限制,除了一个特殊关卡。
解锁魔法确实存在,但通常在游戏初期无法使用。你无需魔法也能打开上锁的门:先使用‘a’(应用)命令使用解锁工具,然后打开门。默认情况下,autounlock选项也处于启用状态,因此如果你在携带开锁工具时尝试通过‘o’或autoopen打开一扇上锁的门,系统会询问你是否要将开锁工具用于该门的锁上。
此外,你还可以通过执行 ‘^D’(踢)命令,用脚踢开一扇关闭的门(无论是否上锁)。踢开一扇门会将其破坏,并产生巨大噪音,这可能会惊醒正在睡觉的怪物。
某些关闭的门设有机关陷阱,若尝试打开(当门未上锁时)、解锁(当门已上锁时)或踹开,门将会爆炸。与踹门一样,爆炸会摧毁门并产生巨大噪音。可使用 “#untrap” 命令检查门上是否设有陷阱,但可能需要多次尝试才能发现。一旦发现陷阱,系统会询问你是否尝试拆除。若你同意,成功将消除该陷阱,但失败则会触发陷阱爆炸。(若你拒绝,你实际上会忘记该处曾发现过陷阱。)
关闭的门有助于阻挡怪物。大多数怪物无法打开关闭的门,尽管少数怪物无需如此,(例如,幽灵可以穿过门,雾云可以从门下流过)。一些能打开门的怪物还可以使用开锁工具。还有一些(如巨人)可以砸开门。
密门是隐藏的,从房间内部看,它看起来像是一面普通墙壁,从外部看则像是一块坚实的岩石。你可以使用 ‘s’(搜索)命令来找到它们,但可能需要多次尝试(如果运气不佳,可能需要多次尝试)。一旦找到,它们在各方面都与普通门完全相同。绘图魔法无法揭示密门。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
5.2. 陷阱(‘^’)
在地牢中自始至终都存在陷阱,惩罚粗心的闯入者。例如你可能会突然掉进一个坑里被陷住然后耗费数回合后才能爬上来(见下方)。(如果运气不佳,可能需要多次尝试)。暗门探测魔杖(wand of secret door detection)和“探测隐形”(detect unseen)咒语能在一定半径范围内揭示陷阱,但前提是该陷阱也必须位于视线范围内(无论当时你是否能看到)。外还有其他魔法可以揭示陷阱。
怪物也可以因为陷阱被捕获,这是一种很有用的防御策略。不幸的是,陷阱也可能对你的宠物造成伤害。怪物(包括宠物)如果之前曾遇到过地图上显示的某种陷阱,通常会避免踏入该陷阱。
陷阱不会显示在你的地图上,直到你移动到该陷阱上面触发后,或看到一些东西是掉入到里面,或者你使用‘s’命令发现它。
有些陷阱,比如坑洞、熊陷阱和蜘蛛网,会将你困在原地。只需尝试移动到相邻的位置,并根据需要重复此操作,最终你就能脱身。
其他陷阱可能会将你传送到不同的位置。传送门会将你传送到同一地牢层内的其他位置。层间传送装置会将你传送到一个随机的地牢层,目的地从比当前层低几个层一直到顶层中随机选择。这些陷阱每次触发时都会选择一个新的目的地。陷阱门和洞穴也会将你传送到另一个层,但该层总是位于当前层下方。通常是下一层,但也可能更深。与传送门不同,特定陷阱门或洞的目的地层是固定的,因此每次掉入其中都会将你传送到同一层,尽管未必是该层上的同一位置。魔法传送门的行为类似,但存在一些额外变化。有些传送门是双向的,其远端目的地始终相同:另一个能将你送回的传送门。另一些则是单向的,会将你传送到特定的目标层,但未必会将你传送到该层上的特定位置。
地牢中有一个特殊的多层分支,其各层布局已预先绘制好,其设计灵感源自经典电脑游戏“推箱子”(Sokoban)。它的目标是将巨石推入坑洞中。经过思考后,你能够通过传统的推箱子方式来完成所有的地牢层。如果玩家被困住,也有一些补救的措施;不过那样做会降低你的幸运值。在这款游戏中,你将扮演一名仓库工人(日语:倉庫番(そうこばん)),负责推动货箱绕过障碍物,并将它们放置在指定位置。在NetHack中,目标是将巨石推入坑洞或深坑,直到这些陷阱全部被消除,从而通往陷阱后方的区域。在推箱子游戏中,你只能沿四个基本方向移动,而到达最终位置的箱子会阻挡你进一步进入该位置。在NetHack的推箱子关卡中,你可以进行对角线移动(除非这会让你穿过两块相邻的巨石之间),但你只能将巨石推向四个正方向;当一块巨石填满坑洞时,巨石和陷阱都会被移除,从而打开通往该位置的正常通道。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
5.3. 楼梯和梯子(‘<’,‘>’)
通常,地牢每一层都会有一个往上(‘<’)通往上一层和一个往下(‘<’)通往下一层的楼梯。这里也有一些例外。例如,在地牢探索的早期,你将会发现一层会有两个往下的楼梯,其中一个依然是直接通往下一层,另一个则是进入一个被称为“侏儒矿坑”的区域。这些矿区最终会导致死亡结局,所以在完成对这些矿区的探索后(如果你选择这样做),你需要爬回到主地牢层。
当你穿越了一些楼梯,或者触发一个陷阱导致将你送往其他一层,你离开的地牢层将会失效并将数据保存为一个文件存放到硬盘上。如果你移动到先前你曾访问过的地牢层,该层的数据将从硬盘上的文件中加载到游戏中并再次生效。如果你移动到你从未访问过的地牢层,该层将被生成(大多数地牢层是随机生成的地牢层,有些特殊层从模板中生成,遗骨层会从先前游戏所留下的东西中加载出来。稍后会详细描述)。怪物只会在当前层激活;在其他层的怪物事实上是停滞不动的。
通常当你爬上楼梯后,你将会到达你目的地的楼梯口。然而,宠物(见下文)和一些其他的怪物在当你上楼或下楼时如果离你足够的近的话将会一直跟随你,并有时在你爬楼梯时和你换位。当这样的情况发生时,宠物或者其他的怪物将会到达楼梯口而你则会在附近停下。
梯子提供和楼梯一样的效果,并且这两种用于地牢层间连接的东西在游戏中几乎没有区别。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
5.4. 商店与购物
有时你将会进入一个房间,房间里面会有一位商店主以及很多摆放在地上的物品。你可以通过捡起它们然后使用‘p’命令来购买。你可以在捡起它们之前使用“#chat”命令打听物品的价格。在付款前就使用该物品会招来商店主的指责,并且商店主在你付款之前是不会让你离开商店的。
你可以丢掉一些东西在商店的地上来向商店主出售它们。商店主会给出一个价格并且询问你是否愿意以该价格卖掉它们,或者是告诉你他对这件东西不感兴趣(通常,你的东西需要和商店售卖的东西的类型相符)。
如果你不小心把一些东西丢到了地上,商店主会直接宣布该物品的所有权而不会提供任何的报价。如果想要重新再获得这个物品,你必须付款购买它。
商店主有时候会花光他的钱。当这种情况出现时,当你想要试图售卖一些东西你会得到一定信用而不是金币。信用可以用于付款,但是信用只能在获得信用的那个的商店用;其他的商店主不会承认。(如果你在地牢里面偶然发现了一张信用卡,不要试图用它来进行付款;店主不会承认它。)
‘$’命令会显示你当前携带的金币的数量,该命令也会显示在商店里的欠款或者信用值。“Iu”命令会列出所有未付款的物品(这些物品还属于商店)当你拿着它们。“Ix”命令会以清单风格显示未付款但是用掉的物品,以及其他商店的费用,如果有的话。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
5.4.1. 商店的特性
有些商店会有出乎意料的行为。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
5.5. 移动反馈
在地图上移动时,通常不会收到任何反馈,—除了将英雄绘制到新位置之外,或者你踩到一个或多个物体,或者踩到陷阱,或者试图移动到有怪物驻守的位置。有几种选项可以用来增强常规反馈。
选项pile_limit控制一个堆中可以包含多少个物品,这些物品位于同一地图位置,以便游戏显示“此处有物品”而非列出具体物品。
默认值为5。将其设置为1时,系统将始终显示该提示,而非列出任何物品。将其设置为0属于特殊情况,无论堆栈规模多大,系统都会始终列出所有物品。请注意,该数字指的是当前存在的独立物品堆栈的数量,而非这些堆栈中物品数量的总和(因此,7支箭或25金币各自都将计为1,而非分别计为7和25,当两者位于同一位置时,总计为2)。
命令前缀“nopickup”(默认‘m’)可置于移动方向之前,用于踩过物体,同时不尝试自动拾取,也不显示相关反馈。
选项mention_walls控制当你试图撞向墙壁、实心石块或地图边缘时,是否会收到反馈。
通常情况下不会发生任何反应(除非英雄处于失明状态且墙壁未显示,此时被撞到的墙壁会在地图上显示出来)。当冲刺或奔跑因某些不明显的原因停止时,该选项也会提供反馈。
选项mention_decor选项控制在踏上\(lq家具\(rq时是否会收到反馈。
通常情况下,踏上楼梯、喷泉、祭坛或其他各种物体时,除非这些物体被一个或多个其他物体覆盖——即在地图上被遮挡——否则不会触发任何反馈。将此选项设为true后,即使这些物体未被遮挡,系统也会进行描述。没有门的门洞和敞开的门不被视为值得提及;而关闭的门(如果你能移动到其位置上)和破损的门则会被提及。假设你能够做到这一点,移动到水、熔岩或冰上时,如果当前尚未处于该类型地形,系统会给出提示;但当你从水域移动到另一个水域、从熔岩移动到熔岩,或从冰面移动到冰面时,系统不会重复提示,(除非期间有其他消息插入)。从上述任何地形移回“正常”地形时也会显示一条提示信息,除非此时正有关于一个或多个物体的反馈,在这种情况下,“回到陆地”的情况将被默认。
选项confirm和safe_pet这些控制当你试图移动到和平怪物或驯服怪物的位置时会发生什么。
“nopickup” 命令前缀(默认 ‘m’)也是“移动而不攻击”的前缀,可用于尝试踏入可见怪物的位置,而该移动不会被视为攻击(参见下文怪物中的战斗 小节)。“fight” 命令前缀(默认 ‘F’;若number_pad已启用,则为‘\f(CR\-\fP’)可用于强制发动攻击,例如在猜测未被发现的怪物位置时,或故意攻击和平或驯服的生物时。run_mode选项控制在单条命令中移动超过一步时(例如冲刺、奔跑或旅行)地图重绘的频率。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
5.6. Rogue层
主地牢的中后期,大约第15至19层有一个向其前身游戏hack的灵感来源rogue致敬的地牢层。
该层通常与其他层显示方式不同:可能以文字形式显示而非图块,或者如果已以文字形式显示则不带线条符号;此外,金币显示为*而不是$,楼梯显示为%而不是< 和>。实际游戏玩法上也存在一些细微差异:门洞没有门;在房间内使用卷轴、魔杖或照明法术时,会照亮整个房间,而非仅照亮角色周围的半径范围。此外,在Rogue层中,由小写字母表示的怪物不会随机生成。
这一关卡中那种微妙的怪异感是一种特色,而非缺陷……
| NetHack 5.0.0 | 2026.06.21 | [目录] |
6. 怪物
怪物不会在屏幕上显示因此你无法看到它们。当心!你可能忽然进入到一个黑暗的地方。某些魔法物品可以帮助你在你被它们定位到你之前定位到它们(某些怪物定位能力很强)。
命令‘/’和‘;’能够帮助你的获取关于显示在屏幕上的怪物的信息。命令“#name”(默认按键为‘C’)允许你给一个怪物命名,这个命令或许可以帮你在很多怪物同时出现时区分你指定的其中一个怪物。命名一个空白的名称会移除先前的名字。
扩展命令“#chat”能够用于和你临近的怪物进行交互。这将不会有实际的对话框(换句话说,你无法获得你要对话的选项),但是和某些怪物(?)例如商店主,或神谕者会得到有用的结果。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
6.1. 战斗
若你看见一个怪物并希望和它进行战斗,你可以直接试着走向它。大多数你发现的怪物只会自顾自除非你发攻击它。其中的一些怪物在生气的时候会非常危险。记住:退让是勇气的体现。
在大多数的情况下,若你试图通过移动到一个和平的怪物的位置来攻击它,你会被询问以确认你的意图。通过默认的回答‘y’来确认,然而‘y’可能会因为移动命令而误用。你可以设置paranoid_confirmation:attack选项来要求回答“yes”来确认。
如果你无法看见一个怪物(若该怪物是不可见的,或者你是眼盲的),符号‘I’将会在当你感知到它的存在时显示。若你试图走入它,你就会试着把它视为一个可以看见的怪物一样攻击它;当然,如果怪物离开了,你就会试着攻击空气。若你猜到怪物已经离开了并且你不希望进行攻击,你可以使用‘m’命令来移动而不是攻击;同样的,你若忘记了怪物位置仅仅是想进行攻击,你可以使用‘F’命令。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
6.2. 你的宠物
你开始游戏的时候会带着一只小狗(‘d’),一只小猫(‘f’),或者一匹小马(‘u’)。你的宠物会在地牢里一直跟着你并且和你一起与怪物战斗。和你一样,你的宠物也需要食物以存活。小狗或者小猫通常喂给它们新鲜的腐肉或者一些其他的肉;小马需要的则是难以得到的素食。如果你担心你的宠物(饥饿)或者想要训练它,你可以给它喂食,也可以直接把食物扔给它。一只训练有素的宠物能够在某些环境下很有用。
你的宠物也会在杀死怪物后获取经验值,同时成长,获取更多的生命值,并造成更多的伤害。在一开始,你的宠物甚至比起你更容易杀死一些东西,这使得宠物对于低等级的角色很有帮助。
你的宠物如果在当你移动时比较靠近你时会和你一同上下楼梯。否则你的宠物可能停滞并且或许变得狂野。同样的,当你触发某个类型的陷阱改变你的位置(例如,一个会将你丢到更下一层的陷阱门)任何临近的宠物会陪你一起,任何非临近的宠物将会被丢下。你的宠物也可能触发这样的陷阱;在这样的情况下,即使你就在旁边也不会被一同带走。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
6.3. 坐骑
在地牢中有些生物可以被驾驭如果你有适当的装备和技巧。退一步讲,说服一个野兽来让你驾驭它是一件十分困难的事情。许多地牢的成员都需要凭借魔法和巫术来促成这一结盟。一旦你真正控制了一只野兽,你就可以十分容易的使用“#ride”命令来爬上或者离开载具。当在乘骑时引导野兽在地牢里走动就如同你自己移动一样。当乘骑时,在你屏幕上显示的是野兽。
乘骑的技能可以通过“#enhance”命令来进行管理。请查看“武器熟练度”部分来获取更多的信息。
使用‘a’命令并选择你物品清单中的一个鞍来尝试将一个鞍放到临近的一个生物上。如果成功了,这个生物将会放到你的物品清单中。
当对一个临近的上了鞍的怪物使用“#loot”命令会试着移除该生物的鞍。如果成功了,这个鞍会放入你的物品清单中。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
6.4. 遗骨层
你可能会遇到其他冒险者的鬼魂和尸体(甚至是你自己之前的身体)和他们个人的财产。幽灵很难杀死,但却很容易避开,因为它们行动缓慢伤害很低。你可以夺取这死去的冒险者的财产;然而,它们可能被诅咒了。当心这些先前被杀死的玩家,它们可能仍然潜伏在附近,为他们上一次的胜利沾沾自喜。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
6.5. 怪物的保持显示
怪物(这通常包括了人类和宠物)只会在能够被看到或者被感知到的情况下才会显示出来。移动到一个你不再能够看到或者感知到怪物的地方将会让怪物消失在你的地图上,这样的规则同样适用于其他的生物。
然而,如果你遇到一个你无法看见或者感知到的怪物——或许它无法被看见并且刚刚轻轻碰了你一下——一个特殊的“记住的,未被看见的怪物(remembered,unseen monster)”标记将会显示在一个你认为该出现的地方。那个标记将会一直持续直到你证明该处没有怪物,即使未被看见的怪物移动到其他的位置或者你移动到一个标记无法被看到的地方。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7. 物品
当你在地牢里面发现了一些东西,通常都会捡起它们。在NetHack中,这是通过‘,’命令来实现的。在NetHack中,如果你打开了autopickup选项,你就会自动捡起来,除非使用‘m’前缀进行移动。
如果你携带了太多的东西,NetHack将会告诉你并且你无法在携带更多的东西。否则,这个东西将会被添加到你的背包并且告诉你你刚刚捡起了什么东西。
当你添加物品到你的物品清单时,你也同时增加了你的负载。你能够携带的负重取决于你的力量和你当时的情况。你越强壮(sturdy),额外的负载对你的影响对你就越小。需要注意一点,你携带的全部的物品的重量在你通过地牢时会拖累你。你的行动将会越来越慢并且你消耗品你的卡路里会越来越快,你会越来越频繁地需要食物来应对这种情况。最终,你会变得超负荷因此你需要丢弃一些你正携带的东西或被这些重量压垮。
NetHack将会告诉你你现在的负载状况有多糟糕。如果你现在处于负载状态,下方的状态行会显示“负重”(Burdened),“吃力”(Stressed),“受压”(Strained),“高压”(Overtaxed)或“超载”(Overloaded)。
当你捡起一个物品的时候,该物品会被分配一个物品清单中的字母。许多操作物品的命令都会询问你哪一个物品你想要使用。当NetHack询问你来选择一个你当前携带的指定的物品,通常会显示一个你的物品清单组成的字母列表供你选择(查看先前的命令部分)。
一些物品,比如武器,非常容易区分。其他的,比如卷轴和药水,会因为各种各样的类型而提供描述。在同一局游戏中,任何两个拥有相同描述的物品都是同一类的。然而,不同局游戏中的物品描述是不一样的。
当你使用物品的时候,如果它的效果是显而易见的,NetHack将会为你记住它的效果。如果它的效果不明显,你将会被询问你想要给这类物品命名什么以便之后能够识别它。你也可以使用“#name”命令来来对一类指定的物品或者单个的物品进行命名以达到实现相同的效果。当你对一个已经命名的物品进行命名的时候,指定空白的值将会移除先前的名字而不是命名一个新的。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7.1. 诅咒与祝福
任何你发现的物品可能会被诅咒,即使这个物品是有用的。诅咒通常的效果就是你会和它们牢牢绑定在一起。被诅咒的武器会将它和你的手绑定在一起,因此你无法卸下它。任何你穿着的被诅咒的物品都无法在一般意义上被移除。此外,被诅咒的武器和护甲通常,但不总是,拥有负效应的魔法使得它们在战斗中有弱的效果。其他被诅咒的物品呈现低效的或者有害的效果。
物品也可以被祝福。被祝福的物品效果的更好或者比起被诅咒的物品更有益。例如,一件被祝福的武器在对抗恶魔的时候将会造成更多的伤害。
一件既没有被诅咒也没有被祝福的物品被认为是未被诅咒的(uncursed)。它同样也可被称作未被祝福的(unblessed),不过你在游戏中只会看到未被诅咒的名称。“这个杯子是半满的还是半空的”这种情况;你自己决定吧。
这里存在给物品附上或移除诅咒的魔法,因此即使你和被诅咒的物品绑定在一起,你依然可以消除诅咒来移除它。牧师拥有对这一属性先天的感知力,因此他们比起其他的角色能够更加容易地避免被诅咒的物品。
一件在你物品清单的未知状态的物品将不会有任何的前缀。一件在你物品清单的已知状态的物品将会以“被诅咒的”(cursed)。“未被诅咒的”(uncursed)或“被祝福的”(blessed)描述来区分。在某些情况下,“未被诅咒的”将会因为其他足够多的信息被忽略。implicit_uncursed选项可以用于控制这个情况;关闭这个选项使得即使该属性能被其他属性推断出也依然显示该描述。
有时,物体的被祝福或被诅咒状态被称为其“BUC”属性(分别代表“被祝福”、“未被诅咒”或“被诅咒”状态),或“BUCX”(分别代表“被祝福”、“未被诅咒”、“被诅咒”或“未知”状态)。(偶尔也会用“beatitude”。)
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7.2. 神器
有些物品被赋予了特殊力量,被称为神器(Artifact)。它们有特定的类型(例如长剑(long sword)或兽人匕首(orcish dagger)),并拥有独特的名称,比如Giantslayer、Grimtooth。神器武器通常比普通武器造成的伤害更高。有些对所有怪物都能造成额外伤害,有些则仅对特定类型的怪物有效,因此面对其他类型的怪物时,其效果并不优于普通武器。有些在挥舞时能提供防御能力,或具备其他未在此列出的能力。
你可能会发现它们就这么散落在地上,包括但不限于商店内部,或者作为向你的守护神在祭坛上通过“#offer”献祭的奖励获得。少数武器可能由怪物掉落,也可能通过为同类普通物品赋予正确名称而转化而来。或者,如果你恰好获得了一个许愿机会,也可以许愿获得这些武器,但此类愿望可能会失败。
有些神器具有特定的阵营属性,有些则没有。你无法通过献祭获得与自身阵营不同的神器,若试图对这类神器许愿,或发现后尝试使用,可能会受到电击。
每个职业都有一件独特的神器,位于任务分支中。这些通常被称为任务神器。它们均具有明确的阵营属性,且大多数为非武器类物品。这些神器不会随机出现。
‘\\’和‘`a’命令将列出你已完全鉴定过的神器(仅知晓名称和物品类型是不够的)。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7.3. 圣物
有三件独特的物品,它们各有名称且拥有有限的特殊能力,但并不被归类为神器。每件物品都由特定的怪物守护,你需要收集全部三件,才能在游戏后期使用。这些遗物的排列顺序与神谕中关于它们的描述顺序一致,而非进行召唤时所需使用的顺序。它们分别是开启之铃(Bell of Opening)、死亡之书(Book of the Dead),以及呼唤烛台(Candelabrum of Invocation)。在尚未被鉴定时,它们的描述分别为:“银铃”、“纸莎草魔法书”和“烛台”。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7.4. 武器(‘)’)
假如有机会,在险境迷宫中大多数的怪物都无条件想要杀死你。你需要一件武器自保(首先是要杀死他们)。没有武器的话,你每次只能造成1到2点伤害(加上加成,如果有的话)。武僧是个例外;比起使用武器,他们使用拳头(或拳套)会造成更多的伤害。
这里面有手持的武器,例如狼牙棒(mace)和剑(sword),也有可投掷的武器例如弓箭(arrow)和矛(spear)。想要使用武器来攻击怪物,你需要手持武器然后来攻击它们,或者朝它们投掷。你可以简单的选择投掷一只矛。为了射出一只箭,你需要首先手持一把弓(bow),之后投掷箭。弩(crossbow)会发射弩箭(crossbow bolt)。投石器可以抛投大石块和石头。
施加魔法后的武器拥有一个附加值(或者攻击增强,可以是增强或者削弱)会增加你击中的的概率或者对怪物的伤害。唯一确定一把武器的魔法能力就是通过某种魔法鉴定。大多数的武器会受到某种类型的损害,例如生锈。“腐蚀”等损害是可以修复的。
攻击一个怪物命中的成功率,和命中后造成的伤害值,取决于很多因素:武器的类型,武器的质量(附魔和/或腐蚀程度),经验等级,力量,敏捷,负重,以及熟练度(见下文)。怪物的护甲等级——通常的防御等级,并不一定真的穿了护甲——也是一个因素;此外,一些怪物也会因为某些特定类型的武器而受影响。
许多的武器都能够被单手持有;有一些需要双手。当手持一把双手武器的时候,你无法装备一个盾牌,反之亦然。当手持一把单手武器的时候,你可以使用‘x’命令来让另一把武器待命,该命令可以交换你的主武器和准备好的武器。如果你熟练掌握“双持战斗”(two-weapon combat)技巧,你可以同时装备主手和副手武器;使用‘X’命令来使用或解除。只有某些角色(例如野蛮人)拥有这个必备的技能。即使拥有这个技能,双持武器战斗比起单持会在攻击你的目标的时候收到一定的惩罚(削弱)。
会存在某些情况下你不想要手持任何的武器。想要实现那样的效果,使用‘-’,也可以使用‘A’命令来让你卸下当前的武器,此外也可以卸下其他穿着的装备。
那些AD&D(专家级龙与地下城)的读者玩家,请注意每一件存在于AD&D的武器在NetHack中都会造成相似的伤害。一些更加费解的武器(例如链棒(aklys),苜蓿锤(lucern hammer),以及鸦啄战锤(bec-de-corbin))被定义在AD&D的附录《Unearthed Arcana》(被发掘的奥秘)中。
有的界面支持weaponstatus选项。
该选项启用后,将显示一个额外的状态提示,描述当前装备的武器。
使用武器的命令有‘w’(手持),‘t’(投掷),‘f’(发射),‘Q’(装配箭袋),‘x’(交换武器),‘X’(双持),以及“#enhance”(增强)(见下方)。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7.4.1. 投掷与射击
你可以通过‘t’命令来投掷任何的东西。该动作将会给出提示要投掷的物品;按下‘?’将会列出在你物品清单中被认为可以投掷的物品,或者按下‘*’来显示你整个物品清单。在你选择好想要投掷的物品后,你将会被提示选择一个方向而不是一个目标。物品能够被人出去的距离主要取决于物品的种类和你的力量。箭可以直接用手投掷,但是通过手持一把弓来射出能够让它射的更远也更有可能集中目标。
某些武器在投掷后会飞回。回力镖(boomerang)(前提是它未击中任何目标)便是显而易见的例子。如果在挥舞链棒时将其投掷,它仍会飞回,即使击中了目标也是如此。力量足够强大的英雄可以投掷战锤Mjollnir;当由女武神 投掷时,它也会返回。然而,链棒和Mjollnir偶尔会无法返回。返回的投掷物有时无法被接住,有时甚至会击中投掷者,但一旦接住,它们就会被重新握在手中。
你可以通过‘Q’命令选择你想要抛出的投掷物,然后使用‘f’命令投掷它来简化投掷操作。你会像上面一样被提示选择一个方向,但是在使用‘f’时候你无需指定一个物品来抛出。这里也同样有一个autoquiver,选项该选项会让NetHack游戏在你使用‘Q’然后抛出物品后自动的装填你的箭袋。
如果你的箭袋是空的,autoquiver为false,且你正在持有一把投掷后会返回的武器,你将投掷该武器,而不是填充箭袋。
“fire”命令还提供额外辅助:如果fireassist处于开启状态,它会尝试持有一把与箭袋中弹药匹配的发射器。
某些角色能够一次同时发射/投掷多个物品。掌握如何一次性装填一些火药——或者一手持有多枚子弹——并且依然能够击中目标绝非易事。游侠则对于这些非常擅长,同样对于相关的武器熟练度有着高的技能等级(如果你手持弓去射箭那么你会用到弓的技巧,如果你手持十字弩去射出弩箭那么你会用到十字弩的技巧,或者如果你在使用投石器投射石块那么你会用到投石器的使用技巧)。角色有机会发射的物品的数量取决于不同的回合。你可以通过使用一个数字作为‘t’或者‘f’命令的前缀来显示地限制投射的数量。例如,“2f”(如果使用了number_pad模式则是“n2f”)将会确保你只会最多射出2只箭即使你能够发射3只。
如果你的指定了一个更大的数字来射击(例如“4f”),你将只会最终射出和未限制时射出的数量(这里就是3只)。如果第一个已经发射,所有发射物都会朝同一方向发射;如果第一只箭射死了怪物,那么其他剩余的箭将会继续飞出超过那个目标点。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7.4.2. 武器熟练度
你会在可用武器中有着不同的技能程度。武器熟练度,或者说武器技巧,影响着你有多擅长使用某种武器,并且随着游戏的进行,你将能够逐渐提升你的技巧,当然这取决于你的角色,你的经验等级,和武器的使用程度。
为了熟练度,武器被分为了不同的分组例如匕首(dagger),阔剑(broadsword),以及长柄武器(polearm)。每个角色对于每个武器组能达到的熟练度都有限制。例如,巫师在匕首或者魔杖方面的熟练度能够达到很高的技能等级但是在剑或者弓方面却达不到很高。
“#enhance”(增强)扩展命令用来查看当前武器熟练度以及去选择一项或多项当你使用的足够多后能够进行提升的技能。技能等级有‘无’(none)(有时候也叫做“受限”(restricted),因为你无法进行提升),“无技能”(unskilled),基本”(basic),“熟练”(skilled),和“专家”(expert)。受限的技能不会显示在通过“#enhance”打开的菜单。(在神的干预下某些特殊的技能能够取消受限,在这种情况下该技能起始于无技能但上限于基本。)某些角色能够增强他们的无武器战斗或者武艺技能突破专家级达到“master(大师)”或者“grand master(宗师)”。
使用一些你受限的或者无技能的武器将会导致一定的惩罚,该惩罚主要影响击中怪物的几率和集中怪物的伤害;在“基本”等级下,不会有惩罚和加成;在“熟练”等级下,你将在命中率和攻击伤害中得到少许的提升;在“专家”等级会得到更多的提升。一次成功的命中将有机会促进你的技能等级进入下一等级(除非该技能已经达到了上限)。一旦这样的训练让技能达到进入下一等级,你将会被告诉你对于你的技能更加有信心。在那个时刻你可以使用“#enhance”来提升你的一个或多个技能。技能不会自动地提升因为对于你所有的技能会有一个总共的上限,因此你需要主动的选择提升某些技能以及忽略另外的技能。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7.4.3. 双持战斗
某些角色能够一次使用两把武器。这样做似乎很麻烦,但是一旦使用起来就会成为你的第二天性。为了手持两把,你需要使用“#twoweapon”命令。但是首先你需要在双手都持有武器。(需要注意你的两把武器并不一样;在你常用的手中持有的一把被认为是主武器而另一把则认为是副武器。最值得注意的不同点是当你停下来时——或者在你开始之前——会立刻进行武器双持。主武器是你手持的武器,副武器仅仅是一件在你物品清单的被指定的替代武器。
如果你手持了主武器但是你的副手是空的或者拿的是错误的武器,使用‘x’,‘w’,‘x’的按键顺序来首先交换你的主武器到你的副手上,手持一个你想使用的武器作为副武器,然后交换他们到期望的手上。如果你的副武器或者替代位置的武器是正确的但是你的主武器不是,只需要简单地使用‘w’来手持主武器。最后,如果两只手都不是正确的武器,使用‘w’,‘x’,‘w’来首先手持一个武器作为副武器,然后交换它到副手,最后手持一把武器作为主武器。
上述整个过程可以通过使用pushweapon选项来简化。当它启用时,使用‘w’来手持武器可以让当前手持的武器变为你的副武器。因此序列‘w’,‘w’能够用首先手持你打算作为次要的武器,然后使用你想要作为主武器的武器,这将会让第一个武器推到次要位置。
当处于双武器战斗(two-weapon)模式的时候,使用‘X’命令切换回单武器(single-weapon)模式。扔出或者丢掉任意一把武器或者其中一把武器被偷走或者毁掉都将使你切回单武器模式。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7.5. 护甲(‘[’)
有很多不友善的生物潜伏着;你需要护甲来保护你自己免受它们的攻击。有些类型的护甲比起其他的更加具有保护作用。你的护甲等级用于计量这种保护能力。护甲等级(AC)和专家级龙与地下城(AD&D)一样用于计量防御力,值为10等同于没有护甲,越低的数值意味着越强的护甲。每一件存在于AD&D中的护甲都在NetHack中有,并且有同样的防御力。这里是一份(不完整)列表显示不同护甲套装以及它们提供的护甲等级:
| 龙鳞甲(Dragon Scale Mail) | 1 |
| 板甲(Plate Mail),水晶板甲(Crystal Plate Mail) | 3 |
| 黄铜板甲(Bronze Plate Mail),板条甲(Splint Mail),带链甲(Banded Mail) | 4 |
| 矮人秘银胶衣(Dwarvish Mithril-Coat) | 4 |
| 锁子甲(Chain Mail),精灵秘银胶衣(Elven Mithril-Coat) | 5 |
| 鳞甲(Scale Mail),兽人锁子甲(Orcish Chain Mail) | 6 |
| 龙鳞片(Dragon Scales) | 7 |
| 嵌皮甲(Studded Leather Armor) | 7 |
| 锁环甲(Ring Mail) | 7 |
| 皮甲(Leather Armor),兽人锁环甲(Orcish Ring Mail) | 8 |
| 皮夹克(Leather Jacket) | 9 |
| 无护甲(No Armor) | 10 |
你还可以穿戴其他护甲部件(如披风盖在盔甲外、衬衫穿在盔甲内、头盔、手套、靴子、盾牌),从而进一步降低你的护甲值。其中大多数装备能使AC提高1或2点(从而使总值变小,最终甚至变为负值),但也可以进行附魔。衬衫是个例外;除非经过附魔,否则它不会提供任何防护。有些斗篷在未附魔时也不会提高AC,但所有斗篷都能为内层穿戴的盔甲提供一定的防锈或防腐蚀保护,并能抵御某些怪物的摸攻击。
如果一件护甲被附魔,那么这个护甲的防御力比起普通的护甲更加强(或弱),同时它们的‘加’(或‘减’)的值会从你的护甲等级中减去。例如,一件+1的锁子甲比起一般的锁子甲会提供更强的防御力,是你的AC进一步减少一个单位达到4。当你穿上一件护甲的时候,你会立刻了解你的护甲等级和护甲提供的加成。被诅咒的护甲通常带有负的减少值并且通常无法移除。
许多类型的护甲都会受限于某种损坏比如生锈。这样的损坏可以被修复。某些类型的护甲会限制咒语的施放。
选项nudist可以在游戏开始前设置该,尝试在整个游戏过程中不穿任何护甲(这是一项自我设定的挑战,但要完成起来极其困难)。
某些界面支持armorstatus选项。
启用该选项后,将显示一个额外的状态条,汇总显示当前穿戴的护甲。
使用护甲的命令有‘W’(穿上)和‘T’(脱下)。‘A’命令也可以用于像其他穿着的物品一样对护甲进行脱下。同时,通常用于配饰的‘P’(戴上)‘R’(移除)也可以用于护甲,但护甲部件不会在选择穿上或脱下什么的提示中显示为可能的选项。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7.6. 食物(‘%’)
食物对于生存来说是十分重要的。如果你长时间行动而没有进食你将会变得头晕目眩,最终因为饥饿而死亡。某些食物会因为没有保护而变质,吃下后会不利于健康。食物保存在冰盒或者罐头里面能够保持新鲜,但是冰盒很重,罐头打开需要时间。
当你杀死怪物后,它们通常会留下尸体,这些尸体也是“食物”。这些尸体大多数,但不是全部是可食用的;某些尸体在你食用后会给你特殊的力量。一个经验法则是“吃什么补什么”。
一些角色和一些怪物是素食主义者(vegetarian)。素食主义的怪物完全不会吃任何动物的尸体,然而素食主义的玩家可能会,但是会伴随一些不好的副作用、。
你可以给你喜欢吃的食物使用fruit选项来命名。
进食的命令是‘e’。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7.7. 卷轴(‘?’)
卷轴上标有各种标题,这些标题很可能是古代巫师们为了好玩而选的(例如“READ ME”,或者反过来的“THANX MAUD”)。卷轴将会在你阅读完后消失(除非是一个没有魔法在上面的空白卷轴)。
卷轴中最有用的就是鉴定卷轴(scroll of identify),这种卷轴可以用于确定某个物品具体的一些内容:是否被诅咒或者被祝福,还有多少次能够使用。一些物品难以察觉的附魔在没有这种卷轴的帮助下将难以被鉴定。
如果卷轴的名称已知,即使英雄失明也能读取它。如果发现了一卷卷轴,它会在物品栏中按类型而非名称列出,但在这种情况下,即使名称未显示,其名称也是已知的。
许多卷轴在受到祝福或诅咒时,或者在英雄处于混乱状态下被读取时,会产生与平时不同的效果。
在某些编译时选择了这个选项的版本中传信小鬼(Mail Daemon)可能会出现然后送达一份邮件卷轴。要想使用有这个NetHack邮件送达由电子邮件出现在你的系统邮箱时触发邮件送达的特性的版本,你必须要设置“MAIL”环境变量指明你的邮箱文件夹名(译者:这个涉及到本地邮箱系统的知识)来让NetHack知道需要在哪里寻找新的邮件。你可能也想设置“MAILREADER”环境变量来指明你喜欢的阅读器,从而能够在你阅读邮件卷轴时让NetHack能脱离到shell环境中调用该阅读器来进行阅读。在某些游戏中随机生成邮件的NetHack的版本中,这些环境变量将会忽略。你可以通过关闭mail选项来禁用传信小鬼。
阅读卷轴的命令是‘r’。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7.8. 药水(‘!’)
药水通过在药水瓶中的液体颜色来进行区分。在你喝掉它们后,它们就会消失。
透明的药水(clear potion)就是水(potions of water)。有时候药水会被祝福或者被诅咒,这样的药水会成为圣水(holy water)或者邪水(unholy water)。圣水是不死族(undead)的灾难,因此圣水是扔向不死族的不错的投掷物。有时候将一个物品浸入(“#dip”)药水中也是有用的。
喝药水的命令是‘q’。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7.9. 魔杖(‘/’)
魔杖通常有许多次魔法能量。某些类型的魔杖需要提供一个攻击方向来挥舞它。你也可以朝着你自己挥舞魔杖(只需要提供‘.’或者是‘s’作为方向)。需要注意的是这样做是不明智的。还有一些其他类型的魔杖不需要提供方向来使用。一根魔杖的能量值是随机的并且随着你使用它,它的能量值会慢慢减少。
当魔杖里的能量值为零的时候,尝试使用该魔杖通常不会产生任何的效果。有时,或许可以使用这个魔杖时挤出这个魔杖中仅剩的最后一点魔力值,然后这个魔杖就会被毁坏。一根魔杖或许可以通过使用一个适当的魔法来重新充能,但是这样做可能会有爆炸的风险。爆炸的风险几率一开始会很低,但是随着每一次的重新充能几率会逐渐增加。
在一些十分危急的情况时,当你到了穷途末路,你可能会不顾一切地选择折断你的魔杖。这不是给胆小的人尝试的。这样做会无疑会造成魔杖能量的灾难性的释放。
当你完全鉴定了一个魔杖的时候,你的物品清单中该魔杖的显示将会在一个括号中包括额外的信息:该魔杖被充能的次数,随后是一个冒号,最后是当前的能量。当前能量值为-1是一个特殊的情况,它表明该魔杖已经被取消了。
使用一根魔杖的命令是‘z’。想要折断一根魔杖,可以使用命令‘z’。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7.10. 戒指(‘=’)
戒指是一个非常有用的物品,因为它们相对拥有永久的魔力,不像药水,卷轴或者魔杖等只拥有短暂的效果。wands.
当戴上一个戒指后,就会激活它的魔力。你只能戴两个戒指,每一个戒指分别戴在每根无名指上。
大多数戴上的戒指也会加快你变饥饿的速度。不同类型的戒指有不同的速率。
戴手套时,戒指需戴在手套内。如果手套被诅咒了,就无法戴上戒指,且已戴上的戒指也无法取下。如果戴在手上的手套未被诅咒,你无需在戴上或取下戒指前手动脱下手套,也无需在之后再重新戴上。这些操作会自动完成,以避免不必要的繁琐。
使用戒指的命令是‘P’(戴上)和‘R’(移除)。也可以使用‘A’)、‘W’和‘T’;参见护身符。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7.11. 魔法书(‘+’)
魔法书是一本厚重的有魔法的书。当使用命令‘r’来学习的时候,它们会给读者传输咒语知识(然后最终变为不可读状态)——除非这一操作没有成功。阅读一本被诅咒的魔法书或者一本有着超出你阅读能力的神秘铭文的魔法书将会对你的健康有害!
施放法术时,即使你已经学会了也可能适得其反。如果你尝试施放一个在你经验等级之上的咒语,或者如果你相应类型的咒语只有少量的技巧,又或者当你施放一个咒语的时候你的幸运值相当的差,你可能会浪费掉施放时需要的能量和时间。
施放一个咒语会产生魔法能量以及你会用你的意念来聚集它们。某些魔法能量的施放来源于你的内在。施放咒语会暂时用掉你的魔法值(你的魔法值会慢慢回答),让你需要额外的食物。施放咒语也需要练习。通过不断地练习,你的每一类施放咒语的技巧将会提升。随着时间的流逝,你的关于每一个咒语的记忆会变得模糊,因此你需要重新学习它们。
某些咒语需要你提供一个方向以便施放它们,和使用魔杖类似。想要朝你自己施放,只需要在方向上使用‘.’或者‘s’。少部分的咒语需要你选取一个目标点而不仅仅是指定一个方向。还有一些咒语则既不需要方向也不需要目标。
正如武器会被分为不同的组类,角色对于不同组的武器有不同的熟练度一样(达到不同的程度),咒语也类似。成功施放一个咒语将会锻炼这一咒语对应组类;使用“#enhance”命令来提升一个已经经过足够锻炼的技能将会影响在这个组中的所有咒语。提升后的咒语技能可能会提升咒语的威力,降低施放失败的风险,并且提升对于这些咒语在你的记忆中停留时间。咒语技能和武器技能共享技能槽。(查阅“武器熟练度”一节。)
施放咒语也需要灵活的移动,穿着各种各样的护甲将会影响到移动。
阅读魔法书的命令和阅读卷轴的一样,‘r’。‘+’命令会列出每一个你已知的咒语和它的等级,技能分类,施放时的失败率,以及对它的记忆程度。使用‘Z’命令来施放咒语。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7.12. 工具(‘(’)
工具就是有着各种各样功能目标的的东西。某些工具类似于魔杖能量有着使用的次数。例如,灯燃烧一会儿就会灭掉。另外还有一类工具是容器,可以用来装东西或者从里面拿取东西。
某些工具(例如眼罩(blindfold))可以佩戴,其穿戴和摘除方式与其他饰品(戒指、护身符)相同;参见护身符。其他工具(例如镐(pick-axe))除了用于其常规用途外,还可以作为武器挥舞,而在某些情况下(同样以镐为例),即使在进行常规操作时,也会被视为武器来挥舞。
选项blind可在游戏开始前设置,尝试在整个游戏过程中不看屏幕进行游戏(这是一项自我设定的挑战,但要完成起来非常困难)。
使用工具的命令是‘a’。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7.12.1. 容器
你或许会在旅程中遇到包(bag),盒子(box),以及箱子(chest)。像是这一系列的工具你可以站在它们上面(在同一个位置点)使用扩展命令“#loot”来打开,或者当你携带它们的时候使用‘a’命令来打开。然而,宝箱通常被锁着的,且它无论如何都是笨重的不可手持的物品。你必须首先将它放在地上,然后使用钥匙或者是开锁工具结合命令‘a’来打开,或者使用‘^D’命令来踢开它,或者使用武器结合“#force”命令来强行打开它。
某些箱子其实是陷阱,在你打开它们的时候会造成不好的事情发生。你可以检查并试着用“#untrap”扩展命令解除它们。
当容器的内容已知时,该容器将被描述为类似于“装有3件物品的袋子”(a sack containing 3 items)的形式。在此示例中,数字3指的是相容物品的stacks数量,而非单个物品的总数。因此,一个装有2个天蓝色药水、7支箭和350金币的麻袋,其描述应为包含3件物品,而非10件或359件。而且,你需要预留3个未使用的背包格子,才能将所有物品取出(前提是取出后的物品不会与你已携带的物品合并成更大的堆栈)。
如果一个箱子或大盒子被描述为“坏锁的”(broken),这意味着它无法上锁,而非其作为容器的功能已失效。
#apply和#loot命令允许你在单次操作中取出和/或放入任意数量的物品。如果你想将容器中的所有物品取出,可以使用“#tip”命令将内容物倾倒在地面上。如果你的双手被诅咒的双持武器卡住,这可能是你取出物品的唯一方法。当双手未被占用时,你可以将内容物倾倒至另一个容器中。(截至本文撰写之时,另一个容器必须是正在携带的,而非置于地面上的。)
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7.13. 护身符(‘"’)
护身符和戒指非常类似,且经常更加强大。和戒指一样,护身符有着各种各样的魔法属性,有些戒指有增益效果,有些戒指则有减益效果。当戴上它们的时候,它们的属性效果就会立刻激活。
你的脖子上只能戴一个护符。
使用护符的命令和使用戒指一样,‘P’(戴上)和‘R’(移除)。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7.14. 宝石(‘*’)
某些宝石是有价值的,能够买很多的金子。它们也是你携带大量财富的有效(efficient)方式。当你在携带有价值的宝石结束游戏的时候,会增加你的分数。
还有一些其他的小石头也宝石一样进行分类,但是它们就没有那么有价值了。然而,所有的石头都能够被作为投掷武器(当你有投石器的时候)。在一些紧急的情况下,你可以用手来投掷它们。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7.15. 巨石(‘`’)
雕像和巨石不是特别有用,并且通常很重。有传言说一些雕像并非它们看上去的那样。
巨石偶尔会挡住你的去路。当其路径上没有任何障碍物时,你可以将其向前推(尝试走到其所在位置),或者你可以使用破坏性魔法或镐将其砸成一堆碎石。在满足特定条件的情况下,你可以移动到巨石所在的位置;通常其中一个条件是,将其再推得更远会受到阻碍。在移动方向前使用“移动而不拾取”前缀(默认按键为‘m’))将尝试移动到巨石的位置,同时不将其推开,此外该前缀还会执行其常规操作——即在目的地防止自动拾取。
非常巨大的类人生物(巨人和他们的近亲)会捡起巨石,并用作投掷武器。
与巨石不同,雕像无法被推开,但也没有必要推开,因为它们不会阻碍移动。不过,它们可以被砸成碎石。
对于一些这个程序的配置,雕像不是用‘`’显示而是显示某些怪物的符号。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7.16. 金币(‘$’)
金币会添加到你的分数中,同时你可以在商店里面用它们来买东西。在地牢里面有许多的怪物都受到你携带的金币数的影响(商店主除外)。
金币是唯一一种不受祝福/诅咒状态影响的物品。它们始终处于未受诅咒状态,但即使你关闭了implicit_uncursed选项,也不会被描述为“未受诅咒”。
如果你希望金币被视为具有祝福/诅咒状态,而非被明确标记为“无诅咒”,可以设置goldX选项。
unknown仅在使用能够按“BUCX”状态进行筛选的物品选择提示时才起作用。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
7.17. 物品的保持显示
通常,如果你已经在某个地图上的位置看到了某个东西,然后你移动到另外的你不再能够看到那个东西的地方,那个物品会一直显示在你的地图上。这种情况将会持续即使该物品实际上已经不在那个位置了——或许一个怪物捡起了它,又或者它已经腐烂消失了——直到你再次看到那个位置。一个需要提醒的额外情形时如果这个东西被“记住的,未被看见的怪物”标记覆盖了。当那个标记在稍后被移除了,你确认了那个位置没有怪物了,你将会忘记那个位置还有东西,不管那个东西是被未被看见的怪物已经拿走了还是没有。如果那个东西还在那儿,一旦你看见或者感觉到了那个地点你将会再次发现那个物品并且再次记住它。
这样的情况同样适用于一堆物品,只有这堆东西顶上的才会被显示。可以启用hilite_pile选项,以便当某个东西位于一堆东西的顶部的时候以不同的方式显示该物品。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
8. 挑战(Conduct)
似乎要在NetHack中取得胜利并不难,于是某些玩家会通过在游戏的方式上施加一些限制来作为挑战。这个游戏会自动的追踪一些挑战,这些挑战可以在游戏中使用“#conduct”扩展命令或者在游戏结束时查看。当你在进行某些行动的时候违反了某些挑战,它将不在被列出来(在查看的列表中)。带着这些挑战而赢得了游戏将给玩家带来额外的“炫耀的资本”。需要注意的是在赢得这场游戏而不带有挑战是完全可以接受的,并且玩家第一次赢得这个游戏就带有这个挑战是不常见的。
有一系列的挑战是和进食行为相关的。其中最难的挑战就是无食物挑战。尽管生物能够在在不进食的情况下存活相当长的一段时间,但是仍然在生理上有对水的需要;因此对于引用是没有限制的,即使水能够提供很少量的食物方面给的好处。在你饥饿的时候召唤你的神来获得帮助同样不会违反任何的挑战。
一个严格的素食主义者(vegan)总是会避免食用任何由动物产生的食物。主要的营养来源于水果和蔬菜。液滴(blob,‘b’)、凝胶(jelly,‘j’)和真菌(fungus,‘F’)的尸体和罐头同样算作素食。某些人类食物是未使用动物产品而制成的;即兰巴斯片(lembas wafers)、压缩口粮(cram ration)、口粮/兵粮丸(food ration/gunyoki)、K-口粮(K-ration)和C-口粮(C-ration)。金属或者其他通常不能吃的材料在使用变形药水变为一种可以消化它的生物的时候仍然是为素食。不过需要注意的是,吃这类的东西仍被视为违反无食物(foodless)挑战。
素食主义者(vegetarian)不会吃动物;然而,他们对于动物的副产品的选择比起素食更少。除上面列出的素食之外,他们可能会吃除了黑色布丁团(black pudding)之外的其他布丁团(‘P’),蛋(egg)和用蛋制成的食物(幸运饼干(fortune cookie)和煎饼(pancake)),用牛奶制作的食物(奶油派(cream pie)和糖果(candy bar)),皇家果冻(royal jelly)。武僧和素食者的饮食习惯一样。
吃任何的肉类将会违反素食主义(vegetarian),严格素食主义(vegan)以及无食物(foodless)挑战。这些肉类包括牛肚(tripe ration),任何怪物的尸体或者做成的罐头等上面没有提到的在地牢的东西。当处于变身的时候吞下然后消化一个怪物会算作是你吃掉了生物的尸体。当变身为一个可以消化皮革,龙皮,或者骨头时的怪物吃掉它们,或变身为夺心魔(mind flayer)时吃掉一个怪物的大脑,都被算作吃掉一个动物,尽管蜡油被认为是动物的副产品。
即使不考虑行为,仍然有一些东西是不可以吃的,而另外一些吃下的话会很危险。使用吞下——消化来攻击一个怪物等同于吃怪物的尸体。需要注意的是“严格素食”(vegan)一词仅仅用于饮食语境中。你依然可以自由地不选择使用或穿来自于动物的(例如皮革,龙皮,骨头,角,珊瑚等)东西,但是游戏将不会追踪这一行为。另外也要注意的是,“乳白色药水”(milky potion)或许是一种略微透明的白色,但是它们并不包含牛奶,因此它们同样适用于素食主义者的饮食。黏菌(slime mold)或者玩家定义的“水果”,尽管它们可以是从“樱桃”到“猪排”的任意词汇,仍被算作是严格素食的。
无神论者(atheist)是反对宗教信仰的。这意味着你无法使用“#pray”祈祷,使用“#offer”来向任何神献祭,使用“#turn”来驱赶不死族,使用“#chat”来和神父对话。特别挑剔的读者可能会主张玩武僧或者牧师,这样则会违反这个挑战(无神论);当然,这个留给玩家自己去选择。将岩德的护身符献祭给你的神是赢得这个游戏的关键,所以这样做不会打破无神论挑战。你当然也不会因为生气的神,祭司或者其他宗教人士主动向你说话而受到惩罚;一个真正的无神论者只会听他们的话但是不会附加这些话语其他的意义。
贫民(pauper)在游戏开始时一无所有,既没有法术,也没有武器或法术技能(如果扮演骑士,你的小马也不会配有马鞍)。只能通过在运行时配置文件中设置OPTIONS=pauper或通过NETHACKOPTIONS环境变量来启动新游戏。一旦游戏开始,你就可以像往常一样获取和使用物品、法术和技能。
大多数的玩家手持武器(或者手持但是作为武器的工具)来进行战斗。另一个挑战就是在不手持任何武器(weaponless)的情况下赢得游戏。你依然被允许利用投掷类武器,发射或者踢武器;使用魔杖,咒语,或者其他类型的;或者用你的拳头或者脚来战斗。
在NetHack中,和平主义者(pacifist)拒绝造成任何其他怪物的死亡(换言之,你会从该死亡中获取经验)。这是一个相当困难的挑战,尽管你依然有可能从其他的方式中获取经验。
文盲(illiterate)不能阅读或者书写文字。这包括了阅读卷轴,魔法书,幸运饼干的消息和T恤(T-shirt);写卷轴;或者标记一个除了一个简单的‘X’(文盲角色进行标记的传统符号)以外的铭文。阅读一个铭文,或者一个对于这个游戏至关重要的东西,不算在违反这一行为。卷轴的标识和魔法书的标识(和咒语知识)在你初始的物品清单中被假定为是在游戏开始前从你老师那里学习而来的。
主地牢中有一条支线,名为“推箱子”(Sokoban),在前文关于陷阱的章节中曾简要提及。如前所述,目标是将巨石推入坑洞中,以填塞这些坑洞,从而既能清除障碍,又能绕过陷阱。在该地牢分支中,会生效一些特殊的 “规则”。其中一些规则无法规避,例如无法对巨石进行对角线推动。而其他规则则可以规避,例如不使用魔法或工具击碎巨石,但若违反此规则,会导致你受到运气惩罚。当时不会显示相关提示,但这会被记录为一种行为。#conduct命令和游戏结束时的披露信息会报告你是否遵守了推箱子的特殊规则,若未遵守,则会显示你违反了多少次,这为你提供了一种发现哪些行为会导致厄运的方式,从而让你能更好地判断是否应避免在未来重复这些行为。(注:只有当你在当前游戏中进入地牢的“推箱子”分支时,才会显示“推箱子”行为记录。一旦进入该分支,即使你在此处未进行任何值得注意的操作,该行为记录也会被纳入最终披露的行为记录中。若你在游戏结束时显示“从未违反推箱子规则” 这一行为,且同时成功达成“获得推箱子奖品”成就,则该行为最具意义(参见下文成就)。)
还有一些其他的挑战被游戏所追踪。有可能通过灭绝(genocide)的方式来消除一个或多个怪物;不使用这样的特性(genocideless)来游玩游戏被视为一项挑战。当游戏给你提供一个机会来灭绝怪物的时候,如果你想要拒绝,你可以使用“none”。通过魔杖,咒语或者变形药水,你可以把一个物品变形成另一个同类型的物品(polypiling)或者把自己变形成另一种生物(polyself);避免进行这样的操作(polyless)将会被视为一项挑战。将怪物进行变形,包括宠物,不会被认为是破坏这样的挑战。最后,你或许会有机会许愿;在游戏中不尝试进行许愿任何的东西(即使这个东西会立刻消失)(wishless)被视为一项挑战。当游戏中提供你一个可以许愿的机会的时候,你可以选择“nothing”来进行拒绝。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
8.1. 成就
游戏结束时的信息披露环节还将显示各种成就,这些成就代表着通往最终升天的进度(如有达成)。它们虽与行为表现无直接关联,但因同属“炫耀的资本”这一类别,且为减少披露环节中的提问数量,故将其归入此处。此处列出的成就大致按难度排序,但不一定是你实际达成它们的顺序。
| Rank | \- | 获得了头衔Rank。 |
| Shop | \- | 进入了一个商店。 |
| Temple | \- | 进入了一个神庙。 |
| Mines | \- | 进入了侏儒矿坑。 |
| Town | \- | 进入了矿洞镇。 |
| Oracle | \- | 询问了德尔斐的神谕者。 |
| Novel | \- | 读了一本碟形世界小说。 |
| Sokoban | \- | 进入了推箱子关卡。 |
| Big Room | \- | 进入了大房间。 |
| Soko-Prize | \- | 探索到了推箱子关卡的顶层,并在那里发现了一个特殊道具。 |
| Mines' End | \- | 探索到了侏儒矿坑的最深处,并在那里发现了一件特殊物品。 |
| Medusa | \- | 击败了美杜莎。 |
| Tune | \- | 发现了可以开关城堡吊桥的旋律。 |
| Bell | \- | 获得了开启之铃。 |
| Gehennom | \- | 进入了地狱。 |
| Candle | \- | 获得了呼唤烛台。 |
| Book | \- | 获得了死亡之书。 |
| Invocation | \- | 进入了地狱的最底层。 |
| Amulet | \- | 获得了假的岩德护身符。 |
| Endgame | \- | 到达了元素位面。 |
| Astral | \- | 到达了星界。 |
| Blind | \- | 天生失明。 |
| Deaf | \- | 天生失聪。 |
| Nudist | \- | 从未穿戴任何盔甲。 |
| Pauper | \- | 以一无所有开局。 |
| Ascended | \- | 将护身符送达其最终目的地。 |
成就将按照你在当前游戏中达成时的顺序进行记录并随后显示,而非此处列出的顺序。
每个角色都有九个<Rank>头衔,分别在经验等级1、3、6、10、14、18、22、26和30时授予。经验等级1对应的头衔不作为成就记录。即使因等级下降而降回较低等级,也不会取消相应的成就。
无法保证会出现小说,因此阅读它的成就可能并非总是可获得的(除非通过许愿)。同样,大房间关卡也并非总是存在。与小说不同,无法通过“许愿”获得这一机会。
隐藏在矿洞底和推箱子中的“特殊物品”中隐藏的“特殊物品”并非唯一,但被视为探索这些关卡的奖品或奖励,因为探索这些关卡并非通关的必要条件。找到其他相同的物品不会记录相应的成就。
只要美杜莎(Medusa)因任何原因死亡,即使并非由你直接导致,且仅当她死亡时,该成就才会被记录。
5音符的曲调可以通过反复尝试,用乐器在距离城堡关卡吊桥足够近(但不要太近!)的地方演奏来习得,也可以通过祈祷恩赐获得。
盲人(Blind)、聋人(Deaf)、裸通(Nudist),以及贫民(Pauper)也是行为挑战,且只能通过在游戏开始前,在NETHACKOPTIONS文件或运行时配置文件中设置相应名称的选项来启用。对于 Blind 和 Deaf,该选项还会强制执行该行为模式。除非/直到你在地牢中取得相当大的进展,否则这些并不算真正的成就。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
9. 选项
由于各种各样玩家的风格和NetHack本身的一些概念,这里有一些你可以自定义设置的选项来决定NetHack的行为。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
9.1. 设置选项
选项可以通过很多种方式进行设置。在游戏中,`O`命令允许你查看所有的选项并且改变他们中的大多数。你也可以把这些选项放置在配置文件中,或者设置在`NETHACKOPTIONS`环境变量中来自动加载它们。某些版本的NetHack也有前端程序来让你在游戏启动的时候设置或者对于系统管理员的全局配置。
| NetHack 5.0.0 | 2026.06.21 | [目录] |
9.2. 使用配置文件
配置文件的默认名称取决于不同的操作系统。
在UNIX,Linux和macOS上,它是“.nethackrc”并且位于用户的目录下。这个文件或许不存在,但是它是一个ASCII文本文件并且你可以用任何文本编辑器来创建它。
在Windows上,它是“.nethackrc”并位于文件夹“\%USERPROFILE%\NetHack\”。这个文件或许不存在,但是它是一个ASCII文本文件并且你可以用任何文本编辑器来创建它。在第一次运行了NetHack之后,你将会发现一个名为“.nethackrc.template”的文件在“\%USERPROFILE%\NetHack\”.中。如果你没有创建配置文件,NetHack将会使用模版配置文件来创建一个简单的配置文件来供你使用。
在MS-DOS上,它是“defaults.nh”并位于nethack.exe同目录下。
在配置文件中所有以‘#’开头的行将被视为注释。空行会被忽略。
任何以‘[’开头,‘]’结尾的行将被视为一个章节标记。(结尾处的“]”后面可以跟上空格,然后是任意以“#”开头的注释。)章节标记仅在CHOOSE指令之后有效,且其名称不区分大小写。章节标记后的行属于该章节,直到另一个章节开始、遇到无名的标记或文件结束为止。章节内的行将被忽略,除非CHOOSE指令已选中该章节。
你可以使用不同的配置声明在配置文件中,其中某些声明可以多次使用。通常,配置声明使用大写字母书写,紧跟着一个等于符号,再跟着对于该声明指定的设置。
下面是允许使用的声明:
例如(先翻译到这里吧(瘫倒)):
Example:
Example:
AUTOCOMPLETE=zap,!annotateSee the “Configuring Autopickup Exceptions” section.
Example:
BIND=^X:getpos.autodescribeExample:
If [] is present, the preceding section is closed and no newsection begins; whatever follows will be common to all sections.Otherwise the last section extends to the end of the options file.
Example:
# replace small punctuation (tick marks) with digits
SYMBOLS=S_golem:7Example:
WIZKIT=~/wizkit.txt \" ~ == '~'\" dummy paragraph to force some separation [.BR isn't working as intended]
\" another dummy paragraph [.BR 2]
| NetHack 5.0.0 | 2026.06.21 | [目录] |
9.3. Using the NETHACKOPTIONS environment variable
The NETHACKOPTIONS variable is a comma-separated list of initialvalues 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 character string as a value.You can set string options by typingthe 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.
For example, to set up an environment variable so thatcolor is on,legacy is off,character name is set to “Blue Meanie”,and named fruit is set to “lime”,you would enter the command
% setenv NETHACKOPTIONS "color,\\!leg,name:Blue Meanie,fruit:lime"in csh (note the need to escape the ‘!’ since it's specialto that shell), or the pair of commands
$ NETHACKOPTIONS="color,!leg,name:Blue Meanie,fruit:lime"
$ export NETHACKOPTIONSin sh, ksh, or bash.
The NETHACKOPTIONS value is effectively the same as a single OPTIONSdirective in a configuration file.The “OPTIONS=” prefix is implied and comma separated options areprocessed from right to left.Other types of configuration directives such as BIND or MSGTYPE arenot allowed.
Instead of a comma-separated list of options,NETHACKOPTIONS can be set to the full name of a configuration file youwant to use.If that full name doesn't start with a slash, precede it with ‘@’(at-sign) to let NetHack know that the rest is intended as a file name.If it does start with ‘/’, the at-sign is optional.
| NetHack 5.0.0 | 2026.06.21 | [目录] |
9.4. Customization options
Here are explanations of what the various options do.Character strings that are too long may be truncated.Some of the options listed may be inactive in your dungeon.
Some options are persistent, and are saved and reloaded along withthe game. Changing a persistent option in the configuration fileapplies only to new games.
align:lawful, align:neutral, or align:chaotic). You may specify just the first letter. Many roles and the non-human races restrict which alignments are allowed. Seerolefor a description of how to use negation to exclude choices.If align is not specified, there is no default value;player will be prompted unless role and/or race forces a choice for alignment.Cannot be set with the ‘O’ command.Persistent.
For the usual case where more than one piece of armor is worn, a list ofletters is shown in the following order:
G - gloves;
C - cloak;
A - suit;
U - shirt;
H - helmet;
B - boots;
S - shield.Seepickup_typesand alsoautopickup_exceptionfor ways to refine the behavior.
Note: prior to version 3.7.0, the default forautopickupwas \fIon\fP.
Omitting the value is treated as if autounlock:apply-key.Preceding autounlock with ‘!’ or “no” is treated asautounlock:none.
Applying a key might set off a trap if the door or container is trapped.Successfully kicking a door will break it and wake up nearby monsters.Successfully forcing a container open will break its lock and might alsodestroy some of its contents or damage your weapon or both.
The default is Apply-Key.Persistent.
O’ command.Each disclosure possibility can optionally be preceded by a prefix whichlets you refine how it behaves. Here are the valid prefixes:
The listings of vanquished monsters and of genocided types can be sorted,so there are two additional choices for ‘v’ and ‘g’:
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 order specified by thesortvanquishedoption.
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 forend-of-game disclosure follows a set sequence.
(for example “disclose:yi na +v -g o”)The example setsinventory to prompt and default to yes,attributes to prompt and default to no,vanquished to disclose without prompting,genocided to not disclose and not prompt,conduct to implicitly prompt and default to no, andoverview to disclose without prompting.
Note that the vanquished monsters list includes all monsters killed bytraps and each other as well as by you.And the dungeon overview shows all levels you had visited but does notreveal things about them that you hadn't discovered.
O’ command.For the X11 interface, which always uses a menu for choosing an extendedcommand, it controls whether the menu shows all available commands (on)or just the subset of commands which have traditionally been consideredextended ones (off).
gender:female”. Cannot be set with the ‘O’ command.gender:male or gender:female). You may specify just the first letter. Although you can still denote your gender using either of the deprecatedmaleandfemaleoptions, if thegenderoption is also present it will take precedence.Seerolefor a description of how to use negation to exclude choices.
If gender is not specified, there is no default value;player will be prompted unless role and/or race forces a choice for gender.Cannot be set with the ‘O’ command.Persistent.
With the tty or curses interface, thepetattroption controls how to highlight pets and setting it will turn thehilite_petoption on or off as warranted.
The “curses” interface supports it even if the status highlightingfeature has been disabled when building the program.The “tty” and “mswin” (aka “Windows GUI”) interfacessupport it only if status highlighting is left enabled when building.You don't need to set up any highlighting rules in order to displaythe bar.If there is one for hitpoints in effect and it specifies color, thatcolor will be used for the bar.However if it specifies video attributes, they will be ignored infavor of inverse.For tty and curses, blink will also be used if the currenthitpoint value is at or below the critical HP threshold.
The “Qt” interface also supports hitpointbar, by drawinga solid bar above the name and title with a hard-coded color scheme.(As of this writing, having the bar enabled unintentionally inhibitsresizing the status panel.To resize that, use the #optionsfull command to toggle thehitpointbar option off, perform the resize while it's off, thenuse the same command to toggle it back on.)
O’ command.If you use menu coloring, you may want to turn this off.
gender:male”. Cannot be set with the ‘O’ command.O’ command. Persistent.Drop (aka droptype) command, for instance). The value specified should be the first letter of one of the following: traditional, combination, full, or partial. Default is full. Persistent.Traditional was the only method available for veryearly versions; it consists of a prompt for object class characters,followed by an object-by-object prompt for all items matching the selectedobject class(es).Combination starts with a prompt for object class(es)of interest, but then displays a menu of matching objects rather thanprompting one-by-one.Full displays a menu ofobject classes rather than a character prompt, and then a menu of matchingobjects for selection.(Choosing its ‘A’ (Autoselect-All) choice skips the second menu.To avoid choosing that by accident,set paranoid_confirm:AutoAll to require confirmation.)Partial skips the object class filtering andimmediately displays a menu of all objects.
." [originally menu_objsyms was a boolean]." Show object symbols in menu headings in menus where." the object symbols act as menu accelerators (default off).Inventory and other object menus are normally separated by object class(weapons, armor, and so forth), with a menu header line at the beginningof each group.You can have menus add the display symbol for the class of objects foreach header line.You can also add the display symbol for the individual item in each menuentry.For a tiles map, that would be a small rendition of an object's tile.For a text map, it is the same character as is used for the object'sclass, which would be most useful when there are no headers separatingobjects among classes.Possible values are
Supported by tty and curses.When setting the value, it can be specified by digit or keyword.The default value is Conditional (4).
Default ‘{’.
Default ‘}’.." .lp menu_tab_sep." Format menu entries using TAB to separate columns (default off).." Only applicable to some menus, and only useful to some interfaces.." Debug mode only.
Omitting a value is the same as specifying 1and negatingmouse_supportis the same as specifying 0.
O’ command.f’ and ‘r’ choices, default ‘r’). The possible values are:For backward compatibility, no value needs to be specified (which defaultsto “full”), or it can be negated (which defaults to “single”).
On some systems, the default is the player's user name;on others, there is no default and the player will be prompted.The former can made to behave like the latter by specifying a generic namesuch as ``player''.Cannot be set with the ‘O’ command.
yuhjklbn” \" = constant-width Roman font For backward compatibility, omitting a value is the same as specifying 1and negatingnumber_padis the same as specifying 0.
(Settings 2 and 4 are for compatibility with MS-DOS or old PC Hack;in addition to the different behavior for ‘5’, ‘Alt-5’ actsas ‘G’ and ‘Alt-0’ acts as ‘I’.Setting -1 is to accommodate some QWERTZ keyboards which have thelocation of the ‘y’ and ‘z’ keys swapped.)When moving by numbers, to enter a count prefix for those commandswhich accept one (such as “12s” to search twelve times), precede itwith the letter ‘n’ (“n12s”).
Specify the order to list object types in (default “")[%?+!=/(*`0_”).The value of this option should be a string containing thesymbols for the various object types.Any omitted types are filled in at the end from the previous order.
apply command; m’ movement prefix; m’ movement prefix when adjacent); menustyle:Full; (to require “yes” rather than just ‘y’, set Confirm too); By default, the pray, swim, and trap choices are enabled, the others disabled.To disable them without settingany of the other choices, use paranoid_confirmation:none.To keep them enabled while setting any of the others, you caninclude them in the new list, such asparanoid_confirmation:attack pray swim Removeor you can precede the first entry in the list with a plus sign,paranoid_confirmation:+attack Remove.To remove an entry that has been previously set without removing others,precede the first entry in the list with a minus sign,paranoid_confirmation:-swim.To both add some new entries and remove some old ones, you can usemultiple paranoid_confirmation option settings, or you canuse the ‘+’ form and list entries to be added by their nameand entries to be removed by ‘!’ and name.The positive (no ‘!’) and negative (with ‘!’) entriescan be intermixed.
Also start with no spells or skills, which are tied to starting equipment.Does not inhibit acquiring and using items, spells, and skills once playhas started.
This onlymakes sense for windowing system interfaces that implement this feature.For those that do, theperminv_modeoption can be used to refine what gets displayed
for perm_invent.Setting that to a value other than nonewhile perm_invent is false will change it to true.
Value is one of
none -behave as if perm_invent is false; all -show all inventory except for gold; full -show full inventory including gold; in-use -only show items which are in use (worn, wielded, lit lamp). Default is none but if perm_invent gets set to truewhile it is none it will be changed to all.
Note: if gold has been equipped in quiver/ammo-pouch then it will beincluded for all despite that mode normally omitting gold.
Curses or tty interface only; value is one ofnone, bold, dim, underline, italic, blink, and inverse.Some of those choices might not work,depending upon terminal hardware or terminal emulation software.
O’ command.aren't inpickup_typesor match an autopickup exception.
Default is on.Persistent.
Default is on.Persistent.
Default is all types.Persistent.
The value is a list of object symbols, such aspickup_types:$?! to pick up gold, scrolls, and potions.You can useautopickup_exceptionconfiguration file lines to further refine \f(CRautopickup\fP behavior.
There is no way to set pickup_types to “none”.(Setting it to an empty value reverts to “all”.)If you want to avoid automatically picking up any types of items but dowant to have autopickup on in order to haveautopickup_exception settings control what you do and don't pickup, you can set pickup_types to ‘.’.That is the type symbol for venom and you won't come acrossany venom items so won't unintentionally pick such up.
race:human). Choices are human, dwarf, elf, gnome, and orc but most roles restrict which of the non-human races are allowed. Seerolefor a description of how to use negation to exclude choices.If race is not specified, there is no default value;player will be prompted unless role forces a choice for race.Cannot be set with the ‘O’ command.Persistent.
Note that rerolling your character is not a recommended way to play if aimingmerely to win (a lucky start has a much smaller influence on whether or notyou win the game than your actions later in the game). This option existspartly as an acknowledgement that some players will insist on doing so anyway,and partly because rerolling may be necessary for certain types of challengegames.
role:Samurai); synonym forcharacter.Seenamefor an alternate method of specifying your role.This option can also be used to limit selection when role is chosenrandomly.Use a space-separated list of roles and either negate each one or negatethe option itself instead.Negation is accomplished in the same manner as with boolean options,by prefixing the option or its value(s) with ‘!’ or “no”.
Examples:
There can be multiple instances of theroleoption if they're all negations.
If role is not specified, there is no default value;player will be prompted.Cannot be set with the ‘O’ command.Persistent.
This option only affects the game's screen display, not the actualresults of moving.The default is “run”; versions prior to 3.4.1 used “teleport” only.Whether or not the effect is noticeable willdepend upon the window port used or on the type of terminal.Persistent.
status information, unless you're using NetHack's Qt interfaceor your terminal emulator window displays fewer than 25 lines.Persistent.
Theversinfooption provides limited control over what informationshowversdisplays.
\\’ and ‘`’ commands. Persistent.The possible values are:sortlootclassification: by class, by sub-class within class for classes which
o -list object types by class, in discovery order within each class; default; s -list object types by c -list by class, alphabetically within each class; a -list alphabetically across all classes. have substantial groupings (like helmets, boots, gloves, and so forthfor armor), with object types partly-discovered via assigned name comingbefore fully identified types;Can be interactively set via the ‘O’ command or via usingthe ‘m’ prefix before the ‘\\’or ‘`’ command.
The possible values are:
The possible values are:
t -traditional—order by monster level; ties are broken by internal monster index; default; d -order by monster difficulty rating; ties broken by internal index; a -order alphabetically, first any unique monsters then all the others; c -order by monster class, by low to high level within each class; n -order by count, high to low; ties are broken by internal monster index; z -order by count, low to high; ties broken by internal index. Can be interactively set via the ‘m O’ command or via usingthe ‘m’ prefix before either the #vanquished commandor the #genocided command.
_’ (“#travel”) command. Persistent.." .lp travel_debug." Display intended path during each step of travel (default off).." Debug mode only.
Some possible displayed values are:
bare-hnds - no weapon and no gloves;
empty-hnd - no weapon but gloves are worn;
dual-weps - wielding two weapons.Also works in other situations where you are asked to pick a location.
The possible settings are:
Thewhatis_coordoption is also used with the \(lq/m\(rq, \(lq/M\(rq, \(lq/o\(rq,
and “/O” sub-commands of ‘/’,where the “none” setting is overridden with “map”.
The area-filter tries to be slightlypredictive—ifyou're standing on a doorway, it will consider the area on the side ofthe door you were last moving towards.
Filtering can also be changed when getting a location with the“getpos.filter” key.
O’ command.When used, it should be the first option set since its value mightenable or disable the availability of various other options.For multiple lines in a configuration file, that would be the firstnon-comment line.For a comma-separated list in NETHACKOPTIONS or an OPTIONS line in aconfiguration file,that wouldbe the rightmost option in the list.
| NetHack 5.0.0 | 2026.06.21 | [目录] |
9.5. Window Port Customization options
Here are explanations of the various options that areused to customize and change the characteristics of thewindowtype that you have chosen.Character strings that are too long may be truncated.Not all window ports will adjust for all settings listedhere. You can safely add any of these options to your configurationfile, and if the window port is capable of adjusting tosuit your preferences, it will attempt to do so. If itcan't it will silently ignore it. You can find out if anoption is supported by the window port that you are currentlyusing by checking to see if it shows up in the Options list.Some options are dynamic and can be specified during the gamewith the ‘O’ command.
If NetHack can, it should display the map using simplecharacters (letters and punctuation) rather than tiles graphics.In some cases, characters can be augmented with line-drawing symbols;use thesymsetoption to select a symbol set such as \fIDECgraphics\fP
or IBMgraphics if your display supports them.Settingascii_mapto \fITrue\fP forcestiled_mapto be \fIFalse\fP.
O’ command.2 and 3 (default is 2).When set to 3, the tty interface moves some fields around andmainly shows status conditions on their own line.A display capable of showing at least 25 lines is recommended.The value can be toggled back and forth during the game with the‘O’ command.
The curses interface does likewise if thealign_statusoption is set to \fItop\fP or \fIbottom\fP but ignoresstatuslineswhen set to \fIleft\fP or \fIright\fP.
The Qt interface already displays more than 3 lines for statusso uses thestatuslinesvalue differently.
A value of 3 renders status in the Qt interface'soriginal format, with the status window spread out vertically.A value of 2 makes status be slightly condensed, moving somefields to different lines to eliminate one whole line, reducing theheight needed.(If NetHack has been built using a version of Qtolder than qt-5.9,statuslinescan only be set in the run-time configuration file or via NETHACKOPTIONS,
not during play with the ‘O’ command.)
Note: the X11 interface uses X resources rather than NetHack's optionsto select an alternate tile file.See NetHack.ad, the sample X “application defaults” file.
(The 26x82 size threshold for ‘2’ refers to number of rows andcolumns of the display.A width of at least 110 columns (80+2+26+2) is needed to show borders ifalign_statusis set to \f(CRleft\fP or \f(CRright\fP.)
The persistent inventory window, when enabled, can grow until it istoo big to fit on most displays, resulting in truncation of its contents.If borders are forced on (1) or the display is big enough to show them (2),setting the value to 3 or 4 instead will keep borders for the map, message,and status windows but have room for two additional lines of inventoryplus widen each inventory line by two columns.
OPTION=windowcolors:style foreground/background"where style is one of “menu”, “message”, “status”,or “text”, andforeground and background are colors, either numeric (hashsign followed by three pairs of hexadecimal digits, #rrggbb),one of the named colors (black, red, green, brown,blue, magenta, cyan, orange, bright-green, yellow, bright-blue,bright-magenta, bright-cyan, white, gray, purple,silver, maroon, fuchsia, lime, olive, navy, teal, aqua),or (for Windows only) one of Windows UI colors (trueblack, activeborder,activecaption, appworkspace, background, btnface, btnshadow, btntext,captiontext, graytext, greytext, highlight, highlighttext,inactiveborder, inactivecaption, menu, menutext, scrollbar,window, windowframe, windowtext).
| NetHack 5.0.0 | 2026.06.21 | [目录] |
9.6. Crash Report Options
Please note that NetHack does not send any information off yourcomputer unless you manually click submit on a form.
These options are used only to save you some typing on the crashreport and #bugreport forms.
This option is used to limit the length of the URLs generated and is onlyneeded if your browser cannot handle arbitrarily long URLs.
| NetHack 5.0.0 | 2026.06.21 | [目录] |
9.7. Platform-specific Customization options
Here are explanations of options that are used by specific platforms or portsto customize and change the port behavior.
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 acommand—preceded by n if thenumber_padoption is set\(emis
also subject to this conversion, so attempting toabort the count by typing ESC will leave NetHack waiting for anothercharacter to complete the two character sequence.Type a second ESC to finish cancelling such a count.At other prompts a single ESC suffices.
O’ command.O’ command.O’ command.O’ command.O’ command.| NetHack 5.0.0 | 2026.06.21 | [目录] |
9.8. Regular Expressions
Regular expressions are normally POSIX extended regular expressions. It ispossible to compile NetHack without regular expression support on a platformwhere there is no regular expression library. While this is not true of anymodern platform, if your NetHack was built this way, patterns are instead globpatterns; regardless, this document refers to both as ‘regularexpressions.’This applies to Autopickup exceptions, Message types, Menu colors,and User sounds.
| NetHack 5.0.0 | 2026.06.21 | [目录] |
9.9. Configuring Autopickup Exceptions
You can further refine the behavior of theautopickupoption beyond what is available through thepickup_typesoption.
By placingautopickup_exceptionlines in your configuration
file, you can define patterns to be checked when the game is about toautopickup something.
Theautopickup_exceptionoption should be followed by a regular expression to be used as a pattern to
match against the singular form of the description of an object at yourlocation.
In addition, some characters are treated specially if they occur as the firstcharacter in the pattern, specifically:
Theautopickup_exceptionrules are processed in the order in which they appear in your configuration
file, thus allowing a later rule to override an earlier rule.
Exceptions can be set with the ‘O’ command, but because they are notincluded in your configuration file, they won't be in effect if you saveand then restore your game.autopickup_exceptionrules and not saved with the game.
The first example above will result in autopickup of any type of arrow.The second example results in the exclusion of any corpse from autopickup.The last example results in the exclusion of items known to be cursed fromautopickup.
| NetHack 5.0.0 | 2026.06.21 | [目录] |
9.10. Changing Key Bindings
It is possible to change the default key bindings of some special commands,menu accelerator keys, and extended commands, by using BIND stanzas in theconfiguration 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”), a mouse button,or a three-digit decimal ASCII code.
For example:
Default is ‘n’.
,’) or the getpos.pick key (default ‘.’) to finish as if performing a left or right click. Only useful when using the #therecmdmenu command. Default is ‘_’. \" underscore| NetHack 5.0.0 | 2026.06.21 | [目录] |
9.11. Configuring Message Types
You can change the way the messages are shown in the message area, whenthe message matches a user-defined pattern.
In general, the configuration file entries to describe the message typeslook like this:
The pattern should be a regular expression.
Allowed types are:
Here's an example of message types using NetHack's internalpattern matching facility:
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.
The order of the defined MSGTYPE lines is important; the last matchingrule is used. Put the general case first, exceptions below them.
| NetHack 5.0.0 | 2026.06.21 | [目录] |
9.12. Configuring Menu Colors
Some platforms allow you to define colors used in menu lines when theline matches a user-defined pattern.At this time the tty, curses, win32tty andwin32gui interfaces support this.
In general, the configuration file entries to describe the menu color mappingslook like this:
The pattern should be a regular expression.
Allowed colors are black, red, green, brown, blue, magenta, cyan, gray,orange, light-green, yellow, light-blue, light-magenta, light-cyan, and white.And no-color, the default foreground color, which isn't necessarilythe same as any of the other colors.
Allowed attributes are none, bold, dim, italic, underline, blink, and inverse.“Normal” is a synonym for “none”.Note that the platform used may interpret the attributes any way itwants.
Here's an example of menu colors using NetHack's internalpattern matching facility:
specifies that any menu line with “ blessed ” containedin it will be shown in green color, lines with “ cursed ” will beshown in red, and lines with “ cursed ” followedby “(being worn)”on the same line will be shown in red color and underlined.You can have multiple MENUCOLOR entries in your configuration file,and the last MENUCOLOR line that matchesa menu line will be used for the line.
Note that if you intend to have one or more color specifications match“ uncursed ”, you will probably want to turn theimplicit_uncursedoption off so that all items known to be uncursed are actually
displayed with the “uncursed” description.
| NetHack 5.0.0 | 2026.06.21 | [目录] |
9.13. Configuring User Sounds
Some platforms allow you to define sound files to be played when a messagethat matches a user-defined pattern is delivered to the message window.At this time the Qt port and the win32tty and win32gui ports support theuse of user sounds.
The following configuration file entries are relevant to mapping user soundsto messages:
The pattern should be a regular expression.
For example:
| NetHack 5.0.0 | 2026.06.21 | [目录] |
9.14. Configuring Status Hilites
Your copy of NetHack may have been compiled with support for“Status Hilites”.If so, you can customize your game display by setting thresholds tochange the color or appearance of fields in the status display.
The format for defining status colors is:
OPTION=hilite_status:field-name/behavior/color&attributesFor example, the following line in your configuration file will causethe hitpoints field to display in the color red if your hitpointsdrop to or below a threshold of 30%:
OPTION=hilite_status:hitpoints/<=30%/red/normal(That example is actually specifying red&normal for <=30%and no-color&normal for >30%.)
For another example, the following line in your configuration file will causewisdom to be displayed red if it drops and green if it rises:
OPTION=hilite_status:wisdom/down/red/up/greenAllowed colors are black, red, green, brown, blue, magenta, cyan, gray,orange, light-green, yellow, light-blue, light-magenta, light-cyan, and white.And “no-color”, the default foreground color on the display, whichis not necessarily the same as black or white or any of the other colors.
Allowed attributes are none, bold, dim, underline, italic, blink, and inverse.“Normal” is a synonym for “none”; they should not be used incombination with any of the other attributes.
To specify both a color and an attribute, use ‘&’ to combine them.To specify multiple attributes, use ‘+’ to combine those.For example: “magenta&inverse+dim”.
Note that the display may substitute or ignore particular attributesdepending upon its capabilities, and in general may interpret theattributes any way it wants.For example, on some display systems a request for bold might yieldblink or vice versa.On others, issuing an attribute request while another is alreadyset up will replace the earlier attribute rather than combine with it.Since NetHack issues attribute requests sequentially (at least withthe tty interface) rather than all at once, the only way asituation like that can be controlled is to specify just one attribute.
You can adjust the appearance of the following status fields:
| .\"TABLE_START | ||
| title | dungeon-level | experience-level |
| strength | gold | experience |
| dexterity | hitpoints | HD |
| constitution | hitpoints-max | time |
| intelligence | power | hunger |
| wisdom | power-max | carrying-capacity |
| charisma | armor-class | condition |
| alignment | score | |
| .\"TABLE_END Do not delete this line. |
The pseudo-field “characteristics” can be used to set all sixof 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 conditionallydisplayed depending upon your other option settings.
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 aliasfor stone through termill, “minor_troubles” for blind through hallu,“movement” for lev, fly, and ride, and “all” for every condition.
Allowed behaviors are “always”, “up”, “down”,“changed”, a percentage or absolute number threshold, ortext to match against.For the hitpoints field, the additional behavior “criticalhp”is available.It overrides other behavior rules ifhit points are at or below the major problem threshold(which varies depending upon maximum hit points and experience level).
>-1%
and <101% are allowed.)
Only four fields support percentage rules.
Percentages for “hitpoints” and “power” are
straightforward; they're based on the corresponding maximum field.
Percentage highlight rules are also allowed for “experience level”
and “experience points” (valid when the
.op showexp
option is enabled).
For those, the percentage is based on the progress from the start of
the current experience level to the start of the next level.
So if level 2 starts at 20 points and level 3 starts at 40 points,
having 30 points is 50% and 35 points is 75%.
100% is unattainable for experience because you'll gain a level and
the calculations will be reset for that new level, but a rule for
=100% is allowed and matches the special case of being
exactly 1 experience point short of the next level.
.lp "*"
absolute value sets the attribute when the field value matches
that number.
The number must be 0 or higher, except for “armor-class’ which
allows negative values, and may optionally be preceded by ‘=’.
If the number is preceded by ‘<=’ or ‘>=’ instead,
it also matches when value is below or above.
If the prefix is ‘<’ or ‘>’, only match when strictly
above or below.
.lp "*"
criticalhp only applies to the hitpoints field and only
when current hit points are below a threshold (which varies by maximum
hit points and experience level).
When the threshold is met, a criticalhp rule takes precedence over all
other hitpoints rules.
.lp "*"
text match sets the attribute when the field value
matches the text.
Text matches can only be used for “alignment”,
“carrying-capacity”, “hunger”, “dungeon-level”,
and “title”.
For title, only the role's rank title
is tested; the character's name is ignored.The in-game options menu can help you determine the correct syntax for aconfiguration file.
The whole feature can be disabled by setting optionstatushilitesto 0.
Example hilites:
| NetHack 5.0.0 | 2026.06.21 | [目录] |
9.15. Modifying NetHack Symbols
NetHack can load entire symbol sets from the symbol file.
The options that are used to select a particular symbol set from thesymbol file are:
You can also override one or more symbols using the SYMBOLS andROGUESYMBOLS configuration file options.Symbols are specified as name:value pairs.Note thatNetHack escape-processes the value string in conventional C fashion.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 ^ prefix causes the following character to be treated as acontrol character.
| .\"TABLE_START | |||||
| NetHack Symbols | |||||
| \ \ | Symbol Name | Description | |||
| \_ | \_ | \_ | |||
| \ | S_air | (air) | |||
| \&_ | S_altar | (altar) | |||
| \(dq | S_amulet | (amulet) | |||
| A | S_angel | (angelic being) | |||
| a | S_ant | (ant or other insect) | |||
| \(ha | S_anti_magic_trap | (anti-magic field) | |||
| [ | S_armor | (suit or piece of armor) | |||
| [ | S_armour | (suit or piece of armor) | |||
| \(ha | S_arrow_trap | (arrow trap) | |||
| 0 | S_ball | (iron ball) | |||
| # | S_bars | (iron bars) | |||
| B | S_bat | (bat or bird) | |||
| \(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_brdnladder | (branch ladder down) | |||
| > | S_brdnstair | (branch staircase down) | |||
| < | S_brupladder | (branch ladder up) | |||
| < | S_brupstair | (branch staircase up) | |||
| 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_darkroom | (dark room) | |||
| \(ha | S_dart_trap | (dart trap) | |||
| & | S_demon | (major demon) | |||
| * | S_digbeam | (dig beam) | |||
| > | S_dnladder | (ladder down) | |||
| > | S_dnstair | (staircase down) | |||
| d | S_dog | (dog or other canine) | |||
| D | S_dragon | (dragon) | |||
| ; | S_eel | (sea monster) | |||
| E | S_elemental | (elemental) | |||
| # | S_engrcorr | (engraving in a corridor) | |||
| \` | S_engroom | (engraving in a room) | |||
| / | S_expl_tl | (explosion top left) | |||
| \- | S_expl_tc | (explosion top center) | |||
| \\ | S_expl_tr | (explosion top right) | |||
| | | S_expl_ml | (explosion middle left) | |||
| \ | S_expl_mc | (explosion middle center) | |||
| | | S_expl_mr | (explosion middle right) | |||
| \\ | S_expl_bl | (explosion bottom left) | |||
| \- | S_expl_bc | (explosion bottom center) | |||
| / | S_expl_br | (explosion bottom right) | |||
| e | S_eye | (eye or sphere) | |||
| \(ha | S_falling_rock_trap | (falling rock trap) | |||
| f | S_feline | (cat or other feline) | |||
| \(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) | |||
| H | S_giant | (giant humanoid) | |||
| G | S_gnome | (gnome) | |||
| \' | S_golem | (golem) | |||
| | | S_grave | (grave) | |||
| g | S_gremlin | (gremlin) | |||
| \- | S_hbeam | (horizontal beam [zap animation]) | |||
| # | S_hcdbridge | (horizontal raised drawbridge) | |||
| + | 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) | |||
| 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) | |||
| \(ha | S_land_mine | (land mine) | |||
| } | S_lava | (molten lava) | |||
| } | S_lavawall | (wall of lava) | |||
| l | S_leprechaun | (leprechaun) | |||
| \(ha | S_level_teleporter | (level teleporter) | |||
| L | S_lich | (lich) | |||
| y | S_light | (light) | |||
| # | S_litcorr | (lit corridor) | |||
| : | S_lizard | (lizard) | |||
| \\ | 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 without door) | |||
| n | S_nymph | (nymph) | |||
| O | S_ogre | (ogre) | |||
| o | S_orc | (orc) | |||
| p | S_piercer | (piercer) | |||
| \(ha | S_pit | (pit) | |||
| # | S_poisoncloud | (poison cloud) | |||
| \(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) | |||
| r | S_rodent | (rodent) | |||
| \(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) | |||
| \(ha | S_sleeping_gas_trap | (sleeping gas trap) | |||
| S | S_snake | (snake) | |||
| s | S_spider | (arachnid or centipede) | |||
| \(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) | |||
| \(ha | S_statue_trap | (statue trap) | |||
| \ | S_stone | (solid rock) | |||
| ] | 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_tl | (swallow top left) | |||
| \\ | 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...)) | |||
| \(ha | S_trap_door | (trap door) | |||
| t | S_trapper | (trapper or lurker above) | |||
| \- | S_trcorn | (top right corner) | |||
| # | S_tree | (tree) | |||
| T | S_troll | (troll) | |||
| | | S_trwall | (wall) | |||
| \- | S_tuwall | (wall) | |||
| U | S_umber | (umber hulk) | |||
| \ | S_unexplored | (unexplored terrain) | |||
| u | S_unicorn | (unicorn or horse) | |||
| < | S_upladder | (ladder up) | |||
| < | S_upstair | (staircase up) | |||
| V | S_vampire | (vampire) | |||
| | | S_vbeam | (vertical beam [zap animation]) | |||
| # | S_vcdbridge | (vertical raised drawbridge) | |||
| + | 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) | |||
| \(dq | S_web | (web) | |||
| w | S_worm | (worm) | |||
| \(ti | S_worm_tail | (long worm tail) | |||
| W | S_wraith | (wraith) | |||
| x | S_xan | (xan or other extraordinary insect) | |||
| X | S_xorn | (xorn) | |||
| Y | S_yeti | (apelike creature) | |||
| Z | S_zombie | (zombie) | |||
| z | S_zruty | (zruty) | |||
| \ | S_pet_override | (any pet if ACCESSIBILITY=1 is set) | |||
| \ | S_hero_override | (hero if ACCESSIBILITY=1 is set) | |||
| .\"TABLE_END Do not delete this line. |
| NetHack 5.0.0 | 2026.06.21 | [目录] |
9.16. Customizing Map Glyph Representations Using Unicode
If your platform or terminal supports the display of UTF-8 charactersequences, you can customize your game display by assigning Unicodecodepoint values and red-green-blue colors to glyphrepresentations. The customizations can be specified for use with a symset thathas a UTF8 handler within the symbols file such as the enhanced1 set, orindividually within your nethack.rc file.
The format for defining a glyph representation is:
The window port that is active needs to provide support for displayingUTF-8 character sequences and explicit red-green-blue colors in orderfor the glyph representation to be visible.For example, the following line in your configuration file will causethe glyph representation for glyphid G_pool to use Unicode codepointU+224B and the color represented by R-G-B value 0-0-160:
The list of acceptable glyphid's can be produced bynethack --dumpglyphids.Individual NetHack glyphs can be specified using the G_ prefix,or you can use an S_ symbol for a glyphid and store the customrepresentation for all NetHack glyphs that would map to thatparticular symbol.
You will need to select a symset with a UTF8 handler to enable thedisplay of the customizations, such as the Enhanced symset.
| NetHack 5.0.0 | 2026.06.21 | [目录] |
9.17. Configuring NetHack for Play by the Blind
NetHack can be set up to use only standard ASCII characters for makingmaps of the dungeons. This makes even the MS-DOS versions of NetHack(which use special line-drawing characters by default) completelyaccessible to the blind who use speech and/or Braille access technologies.Players will require a good working knowledge of their screen-reader'sreview features, and will have to know how to navigate horizontally andvertically character by character. They will also find the searchcapabilities of their screen-readers to be quite valuable. Be certain toexamine this Guidebook before playing so you have an idea what the screenlayout is like. You'll also need to be able to locate the PC cursor. It isalways where your character is located. Merely searching for an @-sign willnot always find your character since there are other humanoids representedby the same sign. Your screen-reader should also have a function whichgives you the row and column of your review cursor and the PC cursor.These co-ordinates are often useful in giving players a better sense of theoverall location of items on the screen.
NetHack can also be compiled with support for sending the game messagesto an external program, such as a text-to-speech synthesizer.If the “#version” extended command shows “external program as amessage 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 usethe capability, set the environment variable NETHACK_MSGHANDLER to anexecutable, which will be executed with the game message as the program'sonly parameter.
The most crucial settings to make the game more accessible are:
Rogue-like commands.
| NetHack 5.0.0 | 2026.06.21 | [目录] |
9.18. Global Configuration for System Administrators
If NetHack is compiled with the SYSCF option, a system administratorshould set up a global configuration; this is a file in thesame format as the traditional per-user configuration file (see above).This file should be named sysconf and placed in the same directory asthe other NetHack support files.The options recognized in this file are listed below. Any option notset uses a compiled-in default (which may not be appropriate for yoursystem).
WIZARDS = A space-separated list of user names who are allowed toplay in debug mode (commonly referred to as wizard mode).A value of a singleasterisk (*) allows anyone to start a game in debug mode.
SHELLERS = A list of users who are allowed to use the shellescape command (!). The syntax is the same as WIZARDS.
EXPLORERS = A list of users who are allowed to use the explore mode.The syntax is the same as WIZARDS.
MSGHANDLER = A path and filename of executable. Whenever a message-windowmessage is shown, NetHack runs this program. The program will getthe message as the only parameter.
MAXPLAYERS = Limit the maximum number of games that can be runningat the same time.
SUPPORT = A string explaining how to get local support (no default value).
RECOVER = A string explaining how to recover a game on this system(no default value).
SEDUCE = 0 or 1 to disable or enable, respectively, the SEDUCE option.When disabled, incubi and succubi behave like nymphs.
CHECK_PLNAME = Setting this to 1 will make the EXPLORERS, WIZARDS, andSHELLERS check for the player name instead of the user's login name.
CHECK_SAVE_UID = 0 or 1 to disable or enable, respectively, the UID(used identification number) checking for save files (to verify that theuser who is restoring is the same one who saved).
The following four options affect the score file:
PERSMAX = Maximum number of entries for one person.
ENTRYMAX = Maximum number of entries in the score file.
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.
HIDEUSAGE = 0 or 1 to control whether the help menu entry for commandline usage is shown or suppressed.
MAX_STATUENAME_RANK = Maximum number of score file entries to use forrandom statue names (default is 10).
ACCESSIBILITY = 0 or 1 to disable or enable, respectively, the abilityfor players to set S_pet_override and S_hero_override symbols in theirconfiguration file.
PORTABLE_DEVICE_PATHS = 0 or 1 Windows OS only, the game will lookfor all of its external files, and write to all of its output files inone place rather than at the standard locations.
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:
%% -literal ‘%’ %v -version (eg. “3.7.0-0”) %u -game UID %t -game start time, UNIX timestamp format %T -current time, UNIX timestamp format %d -game start time, YYYYMMDDhhmmss format %D -current time, YYYYMMDDhhmmss format %n -player name %N -first character of player name LIVELOG = A bit-mask of types of events that should be written tothe livelog file if one is present.The sample sysconf file accompanying the program contains acomment which lists the meaning of the various bits used.Intended for server systems supporting simultaneous play by multipleplayers (to be clear, each one running a separate single player game),for displaying their game progress to observers.Only relevant if the program was built with LIVELOG enabled.When available, it should be left commented out on single playerinstallations because over time the file could grow to be extremelylarge unless it is actively maintained.
CRASHREPORTURL = If set tohttps://www.nethack.org/links/cr-37BETA.htmland support is compiled in, brings up a browser window pre-populated withthe information needed to report a problem if the game panics or endsup in an internally inconsistent state, or if the #bugreport command isinvoked.
| NetHack 5.0.0 | 2026.06.21 | [目录] |
10. Scoring
NetHack maintains a list of the top scores or scorers on your machine,depending on how it is set up. In the latter case, each account onthe machine can post only one non-winning score on this list. Ifyou score higher than someone else on this list, or better yourprevious score, you will be inserted in the proper place under yourcurrent name. How many scores are kept can also be set up whenNetHack is compiled.
Your score is chiefly based upon how much experience you gained, howmuch loot you accumulated, how deep you explored, and how the gameended. If you quit the game, you escape with all of your gold intact.If, however, you get killed in the Mazes of Menace, the guild willonly hear about 90% of your gold when your corpse is discovered(adventurers have been known to collect finder's fees). So, considerwhether you want to take one last hit at that monster and possiblylive, or quit and stop with whatever you have. If you quit, you keepall your gold, but if you swing and live, you might find more.
If you just want to see what the current top players/games list is, youcan type nethack -s all on most versions.
| NetHack 5.0.0 | 2026.06.21 | [目录] |
11. Explore mode
NetHack is an intricate and difficult game.Novices might falterin fear, aware of their ignorance of the means to survive.Well, fear not.Your dungeon comes equipped with an “explore” or “discovery”mode that enables you to keep old save files and cheat death, at thepaltry cost of not getting on the high score list.
There are two ways of enabling explore mode.One is to start the game with the\-Xcommand-line switch or with theplaymode:exploreoption.
The other is to issue the “#exploremode” extended command whilealready playing the game.Starting a new game in explore mode provides yourcharacter with a wand of wishing in initial inventory; switchingduring play does not.The other benefits of explore mode are left forthe trepid reader to discover.
| NetHack 5.0.0 | 2026.06.21 | [目录] |
11.1. Debug mode
Debug mode, also known as wizard mode, is undocumented aside from thisbrief description and the various “debug mode only” commands listedamong the command descriptions.It is intended for tracking down problems within theprogram rather than to provide god-like powers to your character, andplayers who attempt debugging are expected to figure out how to use itthemselves.It is initiated by starting the game with the\-Dcommand-line switch or with theplaymode:debugoption.
For some systems, the player must be logged inunder a particular user name to be allowed to use debug mode; for others,the hero must be given a particular character name (but may be any role;there's no connection between “wizard mode” and the Wizard role).Attempting to start a game in debug mode when not allowedor not available will result in falling back to explore mode instead.
11.2. Credits
The original hack game was modeled on the Berkeley UNIX rogue game. Large portions of this document were shamelesslycribbed from A Guide to the Dungeons of Doom, by Michael C. Toyand Kenneth C. R. C. Arnold. Small portions were adapted fromFurther Exploration of the Dungeons of Doom, by Ken Arromdee.
NetHack is the product of literally scores of people's work.Main events in the course of the game development are described below:
Jay Fenlason wrote the original Hack, with help fromKenny Woodland, Mike Thome, and Jon Payne.
Andries Brouwer did a major re-write while atStichting Mathematisch Centrum (now Centrum Wiskunde & Informatica),transforming Hack into a very different game.He published the Hack source code for use on UNIX systems by posting that to Usenetnewsgroup net.sources (later renamed comp.sources)releasing version 1.0 in December of 1984, then versions 1.0.1, 1.0.2,and finally 1.0.3 in July of 1985.Usenet newsgroup net.games.hack (laterrenamed rec.games.hack, eventually replacedby rec.games.roguelike.nethack)was created for discussing it.
Don G. Kneller ported Hack 1.0.3 to Microsoft C and MS-DOS, producing PCHACK 1.01e, added support for DEC Rainbow graphics in version 1.03g, and wenton to produce at least four more versions (3.0, 3.2, 3.51, and 3.6;note that these are old Hack version numbers, not contemporary NetHack ones).
R. Black ported PC HACK 3.51 to Lattice C and the Atari 520/1040ST,producing ST Hack 1.03.
Mike Stephenson merged these various versions back together,incorporating many of the added features, and produced NetHack version 1.4in 1987.He then coordinated a cast of thousands in enhancing and debuggingNetHack 1.4 and released NetHack versions 2.2 and 2.3.Like Hack, they were released by posting their source code to Usenet wherethey remained available in various archives accessiblevia ftp and uucp after expiring from the newsgroup.
Later, Mike coordinated a major re-write of the game, heading ateam which included Ken Arromdee, Jean-Christophe Collet,Steve Creps, Eric Hendrickson, Izchak Miller,Eric S. Raymond, John Rupley,Mike Threepoint, and Janet Walz, to produce NetHack 3.0c.
NetHack 3.0 was ported to the Atari by Eric R. Smith, to OS/2 byTimo Hakulinen, and to VMS by David Gentzel. The three of themand Kevin Darcy later joined the main NetHack Development Team to producesubsequent revisions of 3.0.
Olaf Seibert ported NetHack 2.3 and 3.0 to the Amiga.Norm Meluch, Stephen Spackman and Pierre Martineau designedoverlay code for PC NetHack 3.0. Johnny Lee portedNetHack 3.0 to the Macintosh. Along with various other Dungeoneers, theycontinued to enhance the PC, Macintosh, and Amiga ports through the laterrevisions of 3.0.
Version 3.0 went through ten relatively rapidly released “patch-level”revisions.Versions at the time were known as 3.0 for the base release and variouslyas “3.0a” through “3.0j”,“3.0 patchlevel 1” through “3.0 patchlevel 10”,or “3.0pl1” through “3.0pl10”rather than 3.0.0 and 3.0.1 through 3.0.10;the three component numbering scheme began to be used with 3.1.0.
Headed by Mike Stephenson and coordinated by Izchak Miller andJanet Walz, the NetHack Development Team which now includedKen Arromdee,David Cohrs, Jean-Christophe Collet, Kevin Darcy,Matt Day, Timo Hakulinen, Steve Linhart, Dean Luick,Pat Rankin, Eric Raymond, and Eric Smith undertook aradical revision of 3.0.They re-structured the game's design, and re-wrote majorparts of the code.They added multiple dungeons, a new display, specialindividual character quests, a new endgame and many other new features, andproduced NetHack 3.1.Version 3.1.0 was released in January of 1993.
Ken Lorber, Gregg Wonderly and Greg Olson, with helpfrom Richard Addison, Mike Passaretti, and Olaf Seibert,developed NetHack 3.1 for the Amiga.
Norm Meluch and Kevin Smolkowski, with help fromCarl Schelin, Stephen Spackman, Steve VanDevender,and Paul Winner, ported NetHack 3.1 to the PC.
Jon W{tte and Hao-yang Wang, with help from Ross Brown,Mike Engber, David Hairston, Michael Hamel,Jonathan Handler, Johnny Lee, Tim Lennan, Rob Menke,and Andy Swanson, developed NetHack 3.1 for the Macintosh,porting it for MPW. Building on their development, Bart Houseadded a Think C port.
Timo Hakulinen ported NetHack 3.1 to OS/2. Eric Smithported NetHack 3.1 to the Atari. Pat Rankin, with help fromJoshua Delahunty, was responsible for the VMS version of NetHack 3.1.Michael Allison ported NetHack 3.1 to Windows NT.
Dean Luick, with help from David Cohrs, developedNetHack 3.1 for X11.It drew the map as text rather than graphically butincluded nh10.bdf, an optionally used custom X11 font which hastiny images in place of letters and punctuation, a precursor of tiles.Those images don't extend to individual monster and object types, justreplacements for monster and object classes (so one custom image for all“a” insects and another for all “[” armor and soforth, not separate images for beetles and ants or for cloaks and boots).
Warwick Allison wrote a graphically displayed version of NetHackfor the Atari where the tiny pictures were described as “icons” andwere distinct for specific types of monsters and objects rather than justtheir classes.He contributed them to the NetHack Development Team which rechristenedthem “tiles”, original usage which has subsequently been picked upby various other games.NetHack's tiles support was then implemented on other platforms(initially MS-DOS but eventually Windows, Qt, and X11 too).
The 3.2 NetHack Development Team, comprised of Michael Allison, KenArromdee, David Cohrs, Jessie Collet, Steve Creps,Kevin Darcy, Timo Hakulinen, Steve Linhart, DeanLuick, Pat Rankin, Eric Smith, Mike Stephenson,Janet Walz, and Paul Winner, released version 3.2.0 in April of1996.
Version 3.2 marked the tenth anniversary of the formation of thedevelopment team.In a testament to their dedication to the game, all thirteen membersof the original NetHack Development Team remained on the team at thestart of work on that release.During the interval between the release of 3.1.3and 3.2.0, one of the founding members of the NetHack Development Team,Dr. Izchak Miller, was diagnosed with cancer and passed away.That release of thegame was dedicated to him by the development and porting teams.
Version 3.2 proved to be more stable than previous versions.Many bugs were fixed, abuses eliminated, and game features tuned forbetter game play.
During the lifespan of NetHack 3.1 and 3.2, several enthusiastsof the game addedtheir own modifications to the game and made these “variants” publiclyavailable:
Tom Proudfoot and Yuval Oren created NetHack++,which was quickly renamed NetHack--when some people incorrectly assumed that it was a conversion of theC source code to C++.Working independently, Stephen White wrote NetHack Plus.Tom Proudfoot later merged NetHack Plusand his own NetHack-- to produce SLASH.Larry Stewart-Zerba and Warwick Allison improved the spellcasting system with the Wizard Patch.Warwick Allison also ported NetHack to use the Qt interface.
Warren Cheung combined SLASH with the Wizard Patch to produce Slash'EM,and with the help of Kevin Hugo, added more features.Kevin later joined the NetHack Development Team and incorporated the bestof these ideas into NetHack 3.3.
The final update to 3.2 was the bug fix release 3.2.3, which was releasedsimultaneously with 3.3.0 in December 1999 just in time for the Year 2000.Because of the newer version, 3.2.3 was released as a source code patch only,without any ready-to-play distribution for systems that usually had such.
(To anyone considering resurrecting an old version: all versions before3.2.3 had a Y2K bug.The high scores file and the log file containeddates which were formatted using a two-digit year, and 1999's year 99 wasfollowed by 2000's year 100.That got written out successfully but itunintentionally introduced an extra column in the file layout which preventedscore entries from being read back in correctly, interfering with insertionof new high scores and with retrieval of old character names to use forrandom ghost and statue names in the current game.)
The 3.3 NetHack Development Team, consisting ofMichael Allison, Ken Arromdee,David Cohrs, Jessie Collet, Steve Creps, Kevin Darcy,Timo Hakulinen, Kevin Hugo, Steve Linhart, Ken Lorber,Dean Luick, Pat Rankin, Eric Smith, Mike Stephenson,Janet Walz, and Paul Winner, released 3.3.0 inDecember 1999 and 3.3.1 in August of 2000.
Version 3.3 offered many firsts. It was the first version to separate raceand profession. The Elf class was removed in preference to an elf race,and the races of dwarves, gnomes, and orcs made their first appearance inthe game alongside the familiar human race. Monk and Ranger roles joinedArcheologists, Barbarians, Cavemen, Healers, Knights, Priests, Rogues,Samurai,Tourists, Valkyries and of course, Wizards. It was also the first versionto allow you to ride a steed, and was the first version to have a publiclyavailable web-site listing all the bugs that had been discovered. Despitethat constantly growing bug list, 3.3 proved stable enough to last formore than a year and a half.
The 3.4 NetHack Development Team initially consisted ofMichael Allison, Ken Arromdee,David Cohrs, Jessie Collet, Kevin Hugo, Ken Lorber,Dean Luick, Pat Rankin, Mike Stephenson,Janet Walz, and Paul Winner, with Warwick Allison joiningjust before the release of NetHack 3.4.0 in March 2002.
As with version 3.3, various people contributed to the game as a whole aswell as supporting ports on the different platforms that NetHack runs on:
Pat Rankin maintained 3.4 for VMS.
Michael Allison maintained NetHack 3.4 for the MS-DOS platform.Paul Winner and Yitzhak Sapir provided encouragement.
Dean Luick, Mark Modrall, and Kevin Hugo maintainedand enhanced the Macintosh port of 3.4.
Michael Allison, David Cohrs, Alex Kompel,Dion Nicolaas, andYitzhak Sapir maintained and enhanced 3.4 for the Microsoft Windowsplatform.Alex Kompel contributed a new graphical interface for the Windows port.Alex Kompel also contributed a Windows CE port for 3.4.1.
Ron Van Iwaarden was the sole maintainer of NetHack for OS/2 the pastseveral releases. Unfortunately Ron's last OS/2 machine stopped working inearly 2006. A great many thanks to Ron for keeping NetHack alive on OS/2all these years.
Janne Salmijarvi and Teemu Suikki maintained andenhanced the Amiga port of 3.4 after Janne Salmijarvi resurrectedit for 3.3.1.
Christian “Marvin” Bressler maintained 3.4 for the Atari after heresurrected it for 3.3.1.
The release of NetHack 3.4.3 in December 2003 marked the beginning of along release hiatus. 3.4.3 proved to be a remarkably stable version thatprovided continued enjoyment by the community for more than a decade. TheNetHack Development Team slowly and quietly continued to work on the game behind the scenesduring the tenure of 3.4.3. It was during that same period that several newvariants emerged within the NetHack community. Notably sporkhack byDerek S. Ray, unnethack by Patric Mueller, nitrohack and itssuccessors originally by Daniel Thaler and then by Alex Smith,and Dynahack by Tung Nguyen.Some of those variants continue to bedeveloped, maintained, and enjoyed by the community to this day.
In September 2014, an interim snapshot of the code under development wasreleased publicly by other parties.Since that code was a work-in-progressand 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 wouldbe retired and never used in an official NetHack release.An announcement was posted on the NetHack Development Team's officialnethack.orgwebsite to that effect,stating that there would never be a 3.4.4, 3.5, or 3.5.0 official releaseversion.
In January 2015, preparation began for the release of NetHack 3.6.
At the beginning of development for what would eventually get releasedas 3.6.0, the NetHack Development Team consisted of Warwick Allison,Michael Allison, Ken Arromdee,David Cohrs, Jessie Collet,Ken Lorber, Dean Luick, Pat Rankin,Mike Stephenson, Janet Walz, and Paul Winner.In early 2015, ahead of the release of 3.6.0, new membersSean Hunt, Pasi Kallinen, and Derek S. Rayjoined the NetHack Development Team.
Near the end of the development of 3.6.0, one of the significantinspirations for many of the humorous and fun features found in thegame, author Terry Pratchett, passed away.NetHack 3.6.0 introduced a tribute to him.
3.6.0 was released in December 2015, and merged work done by the developmentteam since the release of 3.4.3 with some of the beloved communitypatches. Many bugs were fixed and some code was restructured.
The NetHack Development Team, as well as Steve VanDevender andKevin Smolkowski, ensured that NetHack 3.6 continued to operate onvarious UNIX flavors and maintained the X11 interface.
Ken Lorber, Haoyang Wang, Pat Rankin, and Dean Luickmaintained the port of NetHack 3.6 for MacOS.
Michael Allison, David Cohrs, Bart House,Pasi Kallinen, Alex Kompel, Dion Nicolaas,Derek S. Ray and Yitzhak Sapir maintained the port ofNetHack 3.6 for Microsoft Windows.
Pat Rankin attempted to keep the VMS port running for NetHack 3.6,hindered by limited access. Kevin Smolkowski has updated and tested itfor the most recent version of OpenVMS (V8.4 as of this writing) on Alphaand Integrity (aka Itanium aka IA64) but not VAX.
Ray Chason resurrected the MS-DOS port for 3.6 and contributed thenecessary updates to the community at large.
In late April 2018, several hundred bug fixes for 3.6.0 andsome new features were assembled and released as NetHack 3.6.1.The NetHack Development Team at the time of release of 3.6.1 consisted ofWarwick Allison, Michael Allison, Ken Arromdee,David Cohrs, Jessie Collet, Pasi Kallinen,Ken Lorber, Dean Luick, Patric Mueller,Pat Rankin, Derek S. Ray, Alex Smith,Mike Stephenson, Janet Walz, and Paul Winner.
In early May 2019, another 320 bug fixes along with some enhancements andthe adopted curses window port, were released as 3.6.2.
Bart House, who had contributed to the game as a porting teamparticipant for decades, joined the NetHack Development Team in late May 2019.
NetHack 3.6.3 was released on December 5, 2019 containing over 190 bugfixes to NetHack 3.6.2.
NetHack 3.6.4 was released on December 18, 2019 containing a security fixand a few bug fixes.
NetHack 3.6.5 was released on January 27, 2020 containing some security fixesand a small number of bug fixes.
NetHack 3.6.6 was released on March 8, 2020 containing a security fix andsome bug fixes.
NetHack 3.6.7 was released on February 16, 2023 containing a security fix andsome bug fixes.
The official NetHack web site is maintained by Ken Lorberathttps://www.nethack.org/ .
| NetHack 5.0.0 | 2026.06.21 | [目录] |
11.3. Special Thanks
On behalf of the NetHack community, thank you very much onceagain to M. Drew Streib and Pasi Kallinen for providing apublic NetHack server at nethack.alt.org. Thanks to Keith Simpsonand Andy Thomson for hardfought.org. Thanks to all thoseunnamed dungeoneers who invest their time and effort into annualNetHack tournaments such as Junethack, The November NetHack Tournament,and in days past, devnull.net (gone for now, but not forgotten).
| NetHack 5.0.0 | 2026.06.21 | [目录] |
11.4. Dungeoneers
From time to time, some depraved individual out there in netland sends aparticularly intriguing modification to help out with the game. The NetHackDevelopment Team sometimes makes note of the names of the worst of thesemiscreants in this, the list of Dungeoneers:
| .\"TABLE_START | ||
| Adam Aronow | Irina Rempt-Drijfhout | Mike Gallop |
| Alex Kompel | Izchak Miller | Mike Passaretti |
| Alex Smith | J. Ali Harlow | Mike Stephenson |
| Andreas Dorn | Janet Walz | Mikko Juola |
| Andy Church | Janne Salmijarvi | Nathan Eady |
| Andy Swanson | Jean-Christophe Collet | Norm Meluch |
| Andy Thomson | Jeff Bailey | Olaf Seibert |
| Ari Huttunen | Jochen Erwied | Pasi Kallinen |
| Bart House | John Kallen | Pat Rankin |
| Benson I. Margulies | John Rupley | Patric Mueller |
| Bill Dyer | John S. Bien | Paul Winner |
| Boudewijn Waijers | Johnny Lee | Pierre Martineau |
| Bruce Cox | Jon W{tte | Ralf Brown |
| Bruce Holloway | Jonathan Handler | Ray Chason |
| Bruce Mewborne | Joshua Delahunty | Richard Addison |
| Cameron Root | Karl Garrison | Richard Beigel |
| Carl Schelin | Keizo Yamamoto | Richard P. Hughey |
| Chris Russo | Keith Simpson | Rob Menke |
| David Cohrs | Ken Arnold | Robin Bandy |
| David Damerell | Ken Arromdee | Robin Johnson |
| David Gentzel | Ken Lorber | Roderick Schertler |
| David Hairston | Ken Washikita | Roland McGrath |
| Dean Luick | Kestrel Gregorich-Trevor | Ron Van Iwaarden |
| Del Lamb | Kevin Darcy | Ronnen Miller |
| Derek S. Ray | Kevin Hugo | Ross Brown |
| Deron Meranda | Kevin Sitze | Sascha Wostmann |
| Dion Nicolaas | Kevin Smolkowski | Scott Bigham |
| Dylan O'Donnell | Kevin Sweet | Scott R. Turner |
| Eric Backus | Lars Huttar | Sean Hunt |
| Eric Hendrickson | Leon Arnott | Stephen Spackman |
| Eric R. Smith | M. Drew Streib | Stefan Thielscher |
| Eric S. Raymond | Malcolm Ryan | Stephen White |
| Erik Andersen | Mark Gooderum | Steve Creps |
| Fredrik Ljungdahl | Mark Modrall | Steve Linhart |
| Frederick Roeber | Marvin Bressler | Steve VanDevender |
| G. Branden Robinson | Matthew Day | Teemu Suikki |
| Gil Neiger | Merlyn LeRoy | Tim Lennan |
| Greg Laskin | Michael Allison | Timo Hakulinen |
| Greg Olson | Michael Feir | Tom Almy |
| Gregg Wonderly | Michael Hamel | Tom West |
| Hao-yang Wang | Michael Meyer | Warren Cheung |
| Helge Hafting | Michael Sokolov | Warwick Allison |
| Ingo Paschke | Mike Engber | Yitzhak Sapir |
| .\"TABLE_END Do not delete this line. |