Object detection
Object detection is an item effect in NetHack that allows a hero to see all items on the current dungeon level.
Description
Object detection can occur in multiple forms, depending on the source:
- Quaffing a potion of object detection reveals all items on the current level (including buried and submerged objects) and exercises wisdom, with the details and breadth of the detected objects dependent on the potion's beatitude.[1][2][3][4]
- A blessed potion will display detected items that are not in the inventory of a monster as though the hero has seen them up close when navigating the resulting screen, and will have the appearances of all items in their inventory revealed if applicable (e.g. they are currently blind)[5][6][7][8][9]—otherwise, the potion will give a generalized description of the item type for each object if they are not known to the hero. Cursed potions will treat cloaked mimics as actual items, with the class of the "item" selected randomly per mimic.[10][11][12]
- Casting the spell of detect treasure replicates the effects of quaffing the non-cursed potion as detailed above, dependent on the caster's skill level.[1]
- There are also some items that can detect specific object types:
- Reading a non-cursed scroll of food detection will reveal all comestible items on the current level, including buried and submerged objects.[13][14][15][16][17] Reading a cursed scroll, or being confused and reading a scroll of any beatitude, will instead reveal all potions on the level.[18]
- Casting the detect food spell replicates the effects of reading the non-cursed scroll as described above, dependent on the caster's skill level.[13]
- Reading a non-cursed scroll of gold detection will reveal the current location of all gold pieces (and gold golems) on the level, including buried and submerged objects.[19][20][21][22][23][24] A blessed scroll will additionally detect golden items, i.e. the Candelabrum of Invocation and rings that have the appearance of a "gold ring".[25][26] A cursed scroll will instead detect traps and mark them as gold pieces, while a non-cursed scroll that is read while confused will detect traps and also mark them as traps.[27][28][29][30][31][32][33][34][35][36]
- If the hero applies a non-cursed crystal ball that has charges while they are not blind, and the player selects the glyph of an object type to look for, successfully passing the intelligence check will detect all items of that type on the current level (including buried and submerged objects).[37][38][39][40]
- Clairvoyance magically maps a roughly-circular 19-by-11 area centered on the hero's location, and can be obtained from a few sources including the clairvoyance spell (which can affect mapping based on the hero's skill in divination spells).[41][42][43] In both cases clairvoyance does not detect buried objects, but can detect submerged objects.
Most forms of object detection, if not all of them, will exercise wisdom when performed.
Detection maps
Detection of specific object types or all objects will mark the locations of the discovered objects against a black map, and stale object markings of the applicable type are always cleared when mapping item locations from this effect.[44][45][46][47][48][49][50] Floor items are mapped over buried items, items on the top of piles are mapped over the rest of the pile, and the first item in a monster's inventory is mapped over any items they are standing on.[51][52][53][54][55][56] The hero can navigate the resulting screen from quaffing the potion by moving their cursor to highlight particular objects, and any other key that does not perform a navigation action will exit this screen[57][58]—the locations of those objects are recorded when returning to normal play.
Clairvoyance that detects submerged objects nearby will display the map of the immediate area it covers around the hero, with the locations of detected items displayed temporarily.
If item location markers disappear once they are in the hero's line of sight, the object in question is either buried, submerged or else has been moved.
History
Object detection is introduced with the potion of object detection in Hack 1.21, Hack for PDP-11 and PC/IX Hack, which are all based on Jay Fenlason's Hack—the scroll of gold detection is also present in Hack 1.21 and Hack for PDP-11. Both items are included in the initial item list for Hack 1.0, along with the then-new scroll of food detection—the spell equivalents for object detection and food detection are introduced in NetHack 1.3d.
Variants
Some variants of NetHack may add either new forms of object detection or alternate sources of the effect.
GruntHack
GruntHack adds the scroll of detect magic, which can detect all magical items on the current level including any items that have object properties.
UnNetHack
In UnNetHack, reading the blessed scroll of magic mapping reveals the location of objects similar to an uncursed potion of object detection.
dNetHack
In dNetHack, notdNetHack and notnotdNetHack, invoking The Marauder's Map detects objects identically to a potion of the same beatitude as the artifact, and then detects other artifacts on the level, mapping them over existing marked objects if necessary.
xNetHack
In xNetHack, reading a blessed scroll of gold detection detects gems as well as gold pieces and gold items.
One of Itlachiayaque's invocation effects allows the holder to gaze into it for the same effect as a crystal ball of the same beatitude, akin to the Orb of Detection (which it replaces as the Archeologist quest artifact).
EvilHack
EvilHack adds the scroll of magic detection, which is renamed from the GruntHack item and functions as it does in that variant.
Sokoban is retooled so that the hero must choose between a prize tool (a bag of holding or a magic marker), a prize armor (a helm of speed or a pair of gauntlets of protection), or a prize amulet (an amulet of reflection or magic resistance) as their reward from one of the three closets: the other doors will seal as soon as one of the doors is opened, and once an item is picked up by the hero, the others will disappear—this necessitates some form of object detection beforehand for players desiring a specific possible reward.
SlashTHEM
In SlashTHEM, zapping a wand of wonder has a 1⁄21 chance of performing object detection and exercising wisdom.
References
- ↑ 1.0 1.1 src/potion.c in NetHack 3.6.7, line 849: both potion and spell use the same code
- ↑ src/potion.c in NetHack 3.6.7, line 853
- ↑ src/potion.c in NetHack 3.6.7, line 851: calls object_detect() in detect.c
- ↑ src/detect.c in NetHack 3.6.7, line 582: object_detect() function
- ↑ src/detect.c in NetHack 3.6.7, line 589
- ↑ src/detect.c in NetHack 3.6.7, line 619
- ↑ src/detect.c in NetHack 3.6.7, line 630
- ↑ src/detect.c in NetHack 3.6.7, line 641
- ↑ src/detect.c in NetHack 3.6.7, line 655
- ↑ src/detect.c in NetHack 3.6.7, line 588
- ↑ src/detect.c in NetHack 3.6.7, line 658
- ↑ src/detect.c in NetHack 3.6.7, line 733
- ↑ 13.0 13.1 src/read.c in NetHack 3.6.7, line 1477: both the spell and scroll call food_detect in detect.c
- ↑ src/detect.c in NetHack 3.6.7, line 455: food_detect function
- ↑ src/detect.c in NetHack 3.6.7, line 469
- ↑ src/detect.c in NetHack 3.6.7, line 476
- ↑ src/detect.c in NetHack 3.6.7, line 563-L570
- ↑ src/detect.c in NetHack 3.6.7, line 461-L463
- ↑ src/read.c in NetHack 3.6.7, line 1473: call gold_detect() or trap_detect() in detect.c depending on beatitude and status
- ↑ src/detect.c in NetHack 3.6.7, line 303: gold_detect() function
- ↑ src/detect.c in NetHack 3.6.7, line 316
- ↑ src/detect.c in NetHack 3.6.7, line 319
- ↑ src/detect.c in NetHack 3.6.7, line 326
- ↑ src/detect.c in NetHack 3.6.7, line 341
- ↑ src/detect.c in NetHack 3.6.7, line 328
- ↑ src/detect.c in NetHack 3.6.7, line 342
- ↑ src/detect.c in NetHack 3.6.7, line 932: trap_detect() function
- ↑ src/detect.c in NetHack 3.6.7, line 899: detect_obj_traps() function
- ↑ src/detect.c in NetHack 3.6.7, line 942
- ↑ src/detect.c in NetHack 3.6.7, line 946
- ↑ src/detect.c in NetHack 3.6.7, line 953
- ↑ src/detect.c in NetHack 3.6.7, line 959
- ↑ src/detect.c in NetHack 3.6.7, line 965
- ↑ src/detect.c in NetHack 3.6.7, line 975
- ↑ src/detect.c in NetHack 3.6.7, line 978
- ↑ src/detect.c in NetHack 3.6.7, line 998
- ↑ src/detect.c in NetHack 3.6.7, line 1095: use_crystal_ball() function
- ↑ src/detect.c in NetHack 3.6.7, line 1102
- ↑ src/detect.c in NetHack 3.6.7, line 1179
- ↑ src/detect.c in NetHack 3.6.7, line 1204-L1213: calls monster_detect() or object_detect() as needed
- ↑ src/spell.c in NetHack 3.6.7, line 1186-L1190
- ↑ src/detect.c in NetHack 3.6.7, line 1306
- ↑ src/detect.c in NetHack 3.6.7, line 1316-L1320
- ↑ src/detect.c in NetHack 3.6.7, line 284: clear_stale_map()
- ↑ src/detect.c in NetHack 3.6.7, line 312: call from gold_detect()
- ↑ src/detect.c in NetHack 3.6.7, line 465: call from food_detect()
- ↑ src/detect.c in NetHack 3.6.7, line 666: call from object_detect() if there were no stale markings to clear
- ↑ src/detect.c in NetHack 3.6.7, line 1325
- ↑ src/detect.c in NetHack 3.6.7, line 1363-L1365
- ↑ src/detect.c in NetHack 3.6.7, line 1396
- ↑ src/detect.c in NetHack 3.6.7, line 608
- ↑ src/detect.c in NetHack 3.6.7, line 648
- ↑ src/detect.c in NetHack 3.6.7, line 683
- ↑ src/detect.c in NetHack 3.6.7, line 702
- ↑ src/detect.c in NetHack 3.6.7, line 719
- ↑ src/detect.c in NetHack 3.6.7, line 744
- ↑ src/detect.c in NetHack 3.6.7, line 679
- ↑ src/detect.c in NetHack 3.6.7, line 762: temporary map navigation