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
| Column | Meaning |
|---|---|
Name | Localization 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:
| Slot | Always applied? | Source |
|---|---|---|
| Prefix | Yes | uniqueprefix |
| Base name | Yes | the monster's monstats.NameStr |
| Suffix | Yes | uniquesuffix |
| Appellation | 50% chance | uniqueappellation |
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)
| Key | Key | Key | ||
|---|---|---|---|---|
| GloomUM | StoneUM | SpiritUM | ||
| Gray | Rust | SoulUM | ||
| DireUM | Mold | Wrath | ||
| Black | Blight | GriefUM | ||
| ShadowUM | Plague | Foul | ||
| Haze | Rot | Vile | ||
| Wind | Ooze | Sin | ||
| StormUM | Puke | ChaosUM | ||
| Warp | Snot | DreadUM | ||
| Night | Bile | DoomUM | ||
| Moon | BloodUM | BaneUM | ||
| Star | Pulse | DeathUM | ||
| Pit | Gut | ViperUM | ||
| Fire | Gore | Dragon | ||
| Cold | FleshUM | Devil | ||
| Seethe | BoneUM | |||
| SharpUM | SpineUM | |||
| AshUM | Mind | |||
| 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 (NameStrcolumn) that the prefix wraps around.- Not
magicprefix— that's the magic-item affix system.