Difference between revisions of "Naming artifacts"

From NetHackWiki
Jump to navigation Jump to search
(3.6.0)
Line 1: Line 1:
 
{{For2|the method for creating artifacts|[[Sting]] or [[Orcrist]] (and in [[SLASH'EM]] also [[Elfrist]])}}
 
{{For2|the method for creating artifacts|[[Sting]] or [[Orcrist]] (and in [[SLASH'EM]] also [[Elfrist]])}}
The '''naming artifacts''' trick is a [[bug]] exploitation that lets you [[identify]] certain item types.
+
The '''naming artifacts''' trick was a [[bug]] exploit in [[NetHack 3.4.3]] and earlier versions that let you [[identify]] certain item types.
  
 
The way NetHack keeps track of which items are [[artifact]]s is through their names; this saves memory and allows a flexible artifact set (i.e., multiple artifacts can be of the same item type).  As a consequence of this mechanic, naming a long sword "Excalibur" would turn it into [[Excalibur]], for example.  So if you try to name a non-artifact with the name of an artifact of the same base type, the game will prevent you and you will mis-engrave. ("Your hand slips...")
 
The way NetHack keeps track of which items are [[artifact]]s is through their names; this saves memory and allows a flexible artifact set (i.e., multiple artifacts can be of the same item type).  As a consequence of this mechanic, naming a long sword "Excalibur" would turn it into [[Excalibur]], for example.  So if you try to name a non-artifact with the name of an artifact of the same base type, the game will prevent you and you will mis-engrave. ("Your hand slips...")
  
For example, naming a helmet "The Mitre of Holiness" will fail if and only if the helmet is a helm of brilliance. The key is that this only works on the same item type, even if [[randomized appearance|appearances are randomized]]. And you must [[name]], not [[call]], the object in question (answer yes when it asks you to "Name an individual object?").
+
For example, naming a helmet "The Mitre of Holiness" will fail if and only if the helmet is a helm of brilliance.
  
Some players disapprove of this exploit as an abuse of unintentional behavior; note, however, that despite being well-known it does not appear on [http://nethack.org/v343/bugs.html the NetHack.org bug list for 3.4.3].
+
By this exploit, you could identify (or rule out) the following items:
 
 
 
 
By this exploit, you can identify (or rule out) the following items:
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 23: Line 20:
 
<nowiki>*:</nowiki> The appearances of magic helmets are: [[plumed helmet]], [[etched helmet]], [[crested helmet]], and [[visored helmet]].
 
<nowiki>*:</nowiki> The appearances of magic helmets are: [[plumed helmet]], [[etched helmet]], [[crested helmet]], and [[visored helmet]].
  
A possible fix is to prevent the naming of ''any'' item with the name of an artifact (so no items at all could be named "The Eye of the Aethiopica"), or perhaps just those with the same appearance as the artifact (so no gray stones could be named "The Heart of Ahriman", but, say, [[frost horn]]s could). We have more info on how this bug might be fixed on our talk page, [[Talk:Naming artifacts]].
+
Although this exploit never appeared on the official bug list, it was fixed in [[NetHack 3.6.0]]; naming any item in the the appropriate category, if you haven't identified its type, with the appropriate name, will mis-engrave whether or not the item's type is the artifact's base.  Thus, attempting to name an unidentified gray stone "The Heart of Ahriman" will fail, regardless if it's a luckstone or touchstone, but if you've formally identified it as a touchstone you can name it successfully (and ineffectively).
 
 
'''Note:''' This bug was quietly fixed on popular NetHack server [[Nethack.alt.org]] in June 2012; it is no longer possible to name ''any'' item the same as any of the artifacts: your hand will always slip. Additionally, this bug was fixed in Nethack version 3.6.0.
 
  
 
== SLASH'EM ==
 
== SLASH'EM ==

Revision as of 16:39, 12 December 2015

For the method for creating artifacts, see Sting or Orcrist (and in SLASH'EM also Elfrist).

The naming artifacts trick was a bug exploit in NetHack 3.4.3 and earlier versions that let you identify certain item types.

The way NetHack keeps track of which items are artifacts is through their names; this saves memory and allows a flexible artifact set (i.e., multiple artifacts can be of the same item type). As a consequence of this mechanic, naming a long sword "Excalibur" would turn it into Excalibur, for example. So if you try to name a non-artifact with the name of an artifact of the same base type, the game will prevent you and you will mis-engrave. ("Your hand slips...")

For example, naming a helmet "The Mitre of Holiness" will fail if and only if the helmet is a helm of brilliance.

By this exploit, you could identify (or rule out) the following items:

Appearance Item type Artifact name
amulet amulet of ESP The Eye of the Aethiopica
gray stone luckstone The Heart of Ahriman
magic helmet* helm of brilliance The Mitre of Holiness

*: The appearances of magic helmets are: plumed helmet, etched helmet, crested helmet, and visored helmet.

Although this exploit never appeared on the official bug list, it was fixed in NetHack 3.6.0; naming any item in the the appropriate category, if you haven't identified its type, with the appropriate name, will mis-engrave whether or not the item's type is the artifact's base. Thus, attempting to name an unidentified gray stone "The Heart of Ahriman" will fail, regardless if it's a luckstone or touchstone, but if you've formally identified it as a touchstone you can name it successfully (and ineffectively).

SLASH'EM

In SLASH'EM, the artifact naming trick is even more effective due to the many new artifacts.

Appearance Item type Artifact name
bag bag of holding Wallet of Perseus[1]
candle magic candle The Candle of Eternal Flame[2]
amulet amulet of ESP The Eye of the Aethiopica
gray stone luckstone The Heart of Ahriman
magic boots speed boots Whisperfeet
magic cloak cloak of displacement Deluder
magic gloves gauntlets of dexterity Gauntlets of Defense
magic helmet helm of brilliance The Mitre of Holiness
magic helmet helm of telepathy The Crown of Saint Edward
whistle magic whistle The Storm Whistle[3]
amulet amulet of ESP The Medallion of Shifters (defunct Doppelganger quest artifact)
white gem diamond The Arkenstone (defunct Dwarf quest artifact)
ring ring of invisibility The One Ring (defunct Hobbit quest artifact)

History

The origin of this feature is funny. It originates from nethack 3.0.0, which didn't have an artifact marker on items, but instead checked the name and object base type of an item to determine whether it's an artifact. That is why naming Sting or Orcrist worked, but the game had to forbid naming attempts that would create other artifacts.

In the code, see NetHack_3.0.0/do_name.c#line157 which causes your hand slip if you try – although with a different message. See NetHack_3.0.0/weapon.c#line58 for a call from the weapons code to the spec_abon function that determines the to-hit bonus of an artifact (or line143 or NetHack_3.0.0/mhitu.c#line674 for other similar calls); NetHack_3.0.0/artifact.c#line237 for the definition of spec_abon which calls the function get_artifact to determine whether an item is an artifact; and finally the implementation of get_artifact in line109 which simply compares the base type and name of the item to those in the artifact tables above.

References

  1. Trivially identifiable in SLASH'EM with the showweight option enabled.
  2. Trivially identifiable by having a light radius of 3, vs. 2 for normal candles.
  3. Easily identified by applying it.

This page may need to be updated for the current version of NetHack.

It may contain text specific to NetHack 3.4.3. Information on this page may be out of date.

Editors: After reviewing this page and making necessary edits, please change the {{nethack-343}} tag to the current version's tag or {{noversion}} as appropriate.