On this page
  1. Related
  2. Games
  3. References
  4. Sources

Item identification hides an item’s effect behind an appearance that changes from game to game. Rogue 5.4 gives its 14 potion kinds different colors drawn from 27, and builds its 18 scroll titles from random syllables1. NetHack 3.6.7 shuffles the descriptions within seven classes and four armor groups2.

  • Shuffled appearancesRogue (1980). 14 potions get 14 different colors out of 27.1NetHack (1987). Descriptions shuffled within seven classes and four armor groups.2
  • Generated namesRogue (1980). 18 scroll titles strung from random syllables each game.1

Games

GameYearHowNote
Rogue1980Shuffled appearances14 potions get 14 different colors out of 27
NetHack1987Shuffled appearancesdescriptions shuffled within seven classes and four armor groups
Rogue1980Generated names18 scroll titles strung from random syllables each game
Every claim about this mechanic, by game (2)

References

  1. ^ abcAt the start of each game, Rogue 5.4 gives each of its 14 kinds of potion a different color, drawn at random from a list of 27 (amber to yellow), and each of its 18 kinds of scroll a title of 2 to 4 random words, each word 1 to 3 syllables from a fixed list, up to about 40 characters.CodeRogue 5.4.4 source
    How we know
    119    init_colors();			/* Set up colors of potions */
    
    main.c lines 118–119 at cf9bd26 · upstream ↗
    111#define NCOLORS (sizeof rainbow / sizeof (char *))
    
    init.c lines 81–111 at cf9bd26 · upstream ↗
    250	until (!used[j]);
    
    init.c lines 240–253 at cf9bd26 · upstream ↗
    272	nwords = rnd(3) + 2;
    
    init.c lines 260–289 at cf9bd26 · upstream ↗
    219#define MAXPOTIONS	14
    
    rogue.h line 219 at cf9bd26 · upstream ↗
    242#define MAXSCROLLS	18
    
    rogue.h line 242 at cf9bd26 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-21.

    Checked by a second AI model, 2026-10-21.

    In the claim ledger

  2. ^ abWhen a NetHack 3.6.7 game starts, it shuffles the descriptions of amulets, potions, rings, scrolls, spellbooks, wands, and venoms within each class, and of helmets, gloves, cloaks, and boots within each of those groups. Water keeps a fixed description, and scrolls, spellbooks, and amulets keep the unique or non-magic ones fixed; a type whose name is already known keeps its description.CodeNetHack 3.6.7 source
    How we know
    179    shuffle_all();
    
    src/o_init.c lines 178–179 at ed600d9 · upstream ↗
    247        AMULET_CLASS, POTION_CLASS, RING_CLASS,  SCROLL_CLASS,
    
    src/o_init.c lines 243–266 at ed600d9 · upstream ↗
    88        if (objects[j].oc_name_known)
    
    src/o_init.c lines 81–95 at ed600d9 · upstream ↗
    208    case POTION_CLASS:
    ⋮
    211        *hi_p = POT_WATER - 1;
    212        break;
    ⋮
    219            if (objects[i].oc_unique || !objects[i].oc_magic)
    220                break;
    221        *hi_p = i - 1;
    
    src/o_init.c lines 208–221 at ed600d9 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-25.

    Checked by a second AI model, 2026-10-21.

    Checked by a second AI model, 2026-10-25.

    In the claim ledger

Sources

Code