Monsters & World

uniqueprefix

The 52 first-word string keys for randomly-named unique monsters — always applied.

uniqueprefix.txt holds the 52 prefix string keys that open every randomly-generated unique monster name. Combined with the monster's base name and a uniquesuffix word, the prefix produces names like "Gloom Ash", "Black Tooth", "Dire Jaw". The prefix is always applied — every randomly-named unique has one.

This table is for unique-monster naming only. Despite the similar name, it has no relationship to magic-item affix prefixes — those live in magicprefix.

What's in a row

ColumnMeaning
NameLocalization string key. The .txt stores the key (GloomUM, Black); the engine resolves it to display text via the string table at render time.

That's the whole schema — single column, 52 rows.

The naming formula

A randomly-named unique monster gets its display name assembled as:

[uniqueprefix.Name] + [monster-type base name] + [uniquesuffix.Name]
    + optionally [uniqueappellation.Name]   (50% chance)

Slot ordering and probability:

SlotAlways applied?Source
PrefixYesuniqueprefix
Base nameYesthe monster's monstats.NameStr
SuffixYesuniquesuffix
Appellation50% chanceuniqueappellation

Result: every randomly-named unique has a 4-token name half the time and a 3-token name half the time. Named champions in superuniques (Bishibosh, Coldcrow, Pindleskin) skip this generator entirely — their names are fixed.

String-key conventions

Many keys end in UM (e.g., GloomUM, DireUM, StormUM). This is a D2R localization convention — the UM is part of the string-table key, not the displayed text. Plain entries (Gray, Black, Wind, Fire) map directly.

Name pool (52 entries)

KeyKeyKey
GloomUMStoneUMSpiritUM
GrayRustSoulUM
DireUMMoldWrath
BlackBlightGriefUM
ShadowUMPlagueFoul
HazeRotVile
WindOozeSin
StormUMPukeChaosUM
WarpSnotDreadUM
NightBileDoomUM
MoonBloodUMBaneUM
StarPulseDeathUM
PitGutViperUM
FireGoreDragon
ColdFleshUMDevil
SeetheBoneUM
SharpUMSpineUM
AshUMMind
Blade
SteelUM

Common queries

-- Total prefix count (always 52)
SELECT COUNT(*) AS prefix_count FROM uniqueprefix;

-- Show the full pool
SELECT Name FROM uniqueprefix ORDER BY Name;

-- Combined name-pool inventory across all three tables
SELECT 'prefix'      AS pool, Name FROM uniqueprefix
UNION ALL
SELECT 'suffix',           Name FROM uniquesuffix
UNION ALL
SELECT 'appellation',      Name FROM uniqueappellation
ORDER BY pool, Name;

Cross-references

  • uniquesuffix — closing word, also always applied.
  • uniqueappellation — optional 50% trailing descriptor.
  • superuniques — fixed-name named-champion overrides; bypass this generator.
  • monstats — supplies the monster-type base name (NameStr column) that the prefix wraps around.
  • Not magicprefix — that's the magic-item affix system.