uniquesuffix.txt holds the 69 suffix string keys that close every randomly-generated unique monster name. After uniqueprefix and the monster's base name, the engine appends a suffix — names like "Gloom Fallen Feast", "Black Zombie Grin", "Dire Skeleton Maul". Like the prefix, the suffix is always applied.
This table is for unique-monster naming only. It has no relationship to magic-item suffix affixes — those live in magicsuffix.
What's in a row
| Column | Meaning |
|---|---|
Name | Localization string key. The engine resolves it to display text via the string table; the .txt stores the key, not the final word. Keys ending in UM use the D2R localization-suffix convention. |
That's the whole schema — single column, 69 rows.
The naming formula
[uniqueprefix.Name] + [monster-type base name] + [uniquesuffix.Name]
+ optionally [uniqueappellation.Name] (50% chance)
The suffix slot lands directly after the monster type name and before the optional appellation. Examples:
- "Gloom Fallen Feast" (suffix =
feast, no appellation) - "Black Zombie Grin the Hammer" (suffix =
grin, appellation included) - "Dire Skeleton Maul the Slayer" (suffix =
maul, appellation included)
Named champions in superuniques bypass this generator — their names are fixed.
String-key conventions
Many keys end in UM (e.g., touchUM, spellUM, biteUM) — D2R's localization key convention; the UM is part of the lookup key, not the displayed text. Plain keys (feast, wound, grin, kill) map directly.
Name pool (69 entries)
| Key | Key | Key | ||
|---|---|---|---|---|
| touchUM | heartUM | pox | ||
| spellUM | shankUM | fester | ||
| feast | skinUM | blister | ||
| wound | wingUM | pus | ||
| grin | GrumbleUM | SlimeUM | ||
| maim | GrowlerUM | drool | ||
| hack | SnarlUM | froth | ||
| biteUM | wolf | sludge | ||
| rendUM | crow | venom | ||
| burn | hawk | poison | ||
| rip | cloud | break | ||
| kill | BangUM | shard | ||
| callUM | head | flame | ||
| vex | skullUM | maul | ||
| jade | browUM | thirstUM | ||
| web | eyeUM | lust | ||
| shieldUM | maw | (empty) | ||
| KillerUM | tongue | |||
| RazorUM | fangUM | |||
| drinker | hornUM | |||
| shifter | thorn | |||
| crawler | clawUM | |||
| dancer | fistUM | |||
| bender | ||||
| weaverUM | ||||
| eater | ||||
| widow | ||||
| maggot | ||||
| spawn | ||||
| wight |
The last entry in the file is an empty string. This lets the engine occasionally produce names with no closing word — a small variance valve in an otherwise deterministic generator.
Common queries
-- Total suffix count (69, including the trailing empty string)
SELECT COUNT(*) AS suffix_count FROM uniquesuffix;
-- Non-empty suffix keys only (68)
SELECT COUNT(*) FROM uniquesuffix WHERE Name != '';
-- Suffixes whose key looks "weapon-themed"
SELECT Name FROM uniquesuffix
WHERE Name LIKE '%blade%' OR Name LIKE '%edge%'
OR Name LIKE '%axe%' OR Name LIKE '%maul%';
Cross-references
uniqueprefix— opening 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 the suffix attaches to.- Not
magicsuffix— that's the magic-item affix system.