rat_a/b/c/d |
Gnashtooth charges after a short squeal; Plaguewhisker leaves avoidable poison patches; Vaultgnaw steals toward nearby cover but leashes normally. |
Ratcatcher's Buckle: low-tier girdle, Dex +1 and poison protection 5; guaranteed Notched Incisor trophies redeemable for it. |
bat_brown and hostile bat variants |
Nightshriek telegraphs a confusion screech; Redwing performs a visible hit-and-run dive. |
Echo Pendant: darkvision, Dex +1, modest confusion protection; guaranteed Echo Membrane material. |
bee_killer, wasp_giant |
Vespira the Needle Queen marks a line before a piercing dash; Swarmwing rallies one nearby insect wave. |
Vespira's Stinger Charm: Dex +1, poison protection 9; stingers can also brew antidotes. |
spider, spider_widow |
Silkmaw places visible slowing webs; Venom-Eight winds up a high-poison bite that can be sidestepped or interrupted. |
Widow-Silk Gloves: poison protection 12 and pierce protection 6; guaranteed silk bundles feed a repeatable recipe. |
snowman_evil |
Rimegrin throws a warned cold burst then tries to keep distance; Driftwalker raises temporary snow cover/adds. |
Frostbound Mitts: cold protection 9 with a small fire weakness; packed-rime trophy is guaranteed. |
wolf |
Fenra Packmother howls before rallying wolves; the howl is interruptible. |
Packleader Mantle: Dex +1 and cold protection 6; wolf-mark trophies provide a deterministic exchange. |
bear_grey, tiger |
Old Greyback telegraphs a heavy maul; Stripeclaw alternates flank-and-pounce patterns. |
Greyback Mantle: Con +1 and cold protection 9; Stripeclaw Boots: Dex +1 with modest slash protection. |
deer |
Whitehorn signals a straight-line charge and becomes briefly exposed after missing. |
Whitehorn Gorget: modest impact/pierce protection and +1 WC; antler fragments remain useful crafting loot. |
frog, crocodile |
Bogbelly warns before a pull/tongue strike; Marshjaw performs a line lunge and retreats toward water without becoming unreachable. |
Marshscale Boots: acid and poison protection 9; hides can be exchanged for the boots. |
slug_giant, worm_purple |
Slurrik the Caustic leaves finite acid trails; Deepcoil warns before an erupting line attack. Preserve the purple worm's fire/cold identity. |
Slugskin Wraps: acid protection 15 with a small fire weakness; Deepcoil Loop: pierce protection 10 and cold protection 6. |
kobold, kobold_fighter, kobold_guard, kobold_shaman |
Skritch Quickknife disengages and re-enters from a flank; Vekka Emberpot throws a clearly marked fire area; Rikkit Shieldtail guards nearby kobolds until staggered. |
Quickknife Dirk: +1 weapon-class sidegrade; Emberpot Charm: fire/magic protection 8; common Scrap Tokens allow a chosen reward. |
hostile goblin, gnoll |
Tikk Scrap-King deploys a fragile gadget/add; Rask the Moon-Biter marks and pursues one target but can be peeled. |
Scrap-King Buckler: low/mid-tier block-focused shield; Moon-Biter Band: slash and drain protection 8. |
orc_outlaw/fighter/warrior/berserker/captain |
Bloodbanner Karg buffs a pack until his banner is destroyed; Murg Chainbreaker enrages after a warned threshold; Rokka Spear-Eye uses a sidestep-able piercing line. |
Bloodbanner Cloak: Str +1 and modest physical protection; Chainbreaker Bracers: damage +1 with a defensive tradeoff; Orc War Marks provide player-choice redemption. |
orc_sorcerer, orc_priest |
Ash-Eye Vorga telegraphs alternating fire and magic zones; Mother Grusk heals one ally with an interruptible cast. |
Ash-Eye Charm: fire and magic protection 10; Grusk's Prayer Beads: Pow +1 and drain protection 8. |
ogre |
Grum Stonehand winds up a blockable ground smash; Boulder-Belly Ugg throws marked impact zones rather than unavoidable off-screen rocks. |
Stonehand Girdle: Str +1 and impact protection 10; Ogre Knucklebones are guaranteed. |
ettin |
Brakk-and-Brukk alternates two independently telegraphed attacks and becomes confused/staggered when both are interrupted. |
Twinmind Helm: confusion protection 20, Int +1, and a modest AC tradeoff. |
giant_hill, giant_stone |
Hroth Skybreaker creates a long warned slam line; Quakefist pulses rings with safe gaps. Existing Rhun/Relurgh/Chrordir remain fixed authored bosses. |
Skybreaker Maul: impact-focused damage sidegrade; Quakefist Gauntlets: impact protection 12 and block/absorb-oriented stats. |
ant_red, ant_soldier |
Needlemandible performs a piercing charge; Chitina, Queen of Marches calls a bounded escort group whose deaths weaken her. Do not replace the quest ant queen. |
Royal Chitin Shield: block 5/absorb 8 class with pierce/slash protection; pheromone glands are guaranteed alchemy/crafting material. |
treant_evil, quickwood |
Preserve Fahrgorm and Kotung in suitable bands; add Blightbark with warned root lanes and Mossmother with interruptible sapling summons. |
Preserve Bow/Crossbow of Accuracy; add Blightbark Heartwood for a block-focused buckler and Mossmother Seed for poison/cold preparation. |
slime, slime_blue, gray_ooze, cube_gel, jelly colors |
Prism Gel cycles a clearly shown element; The Clear Hunger engulfs a marked tile; Ochre Maw spits avoidable acid. |
Guaranteed Prismatic Globule exchangeable for one chosen fire/cold/electricity/poison/acid protection ring; Gelatinous Lining crafts acid/poison gear. |
| pudding colors |
Black Maw, Cinder Pudding, Rime Pudding, and Viridian Pudding retain their authored damage elements and telegraph a split/pulse. |
Catalytic Core redeemed for matching fire/cold/poison/acid bracers (about 12 protection) with an optional opposing-element weakness. |
mud_hand, icegolem, lavagolem |
Quakefist-class earth hand, Hailcore, and Cinderheart use slow, readable impact/element zones and become vulnerable after a missed slam. |
Thermal Core exchange for fire or cold protection 15 bracers with a small opposite-element weakness; earth core crafts impact gear. |
skel_fighter1/2/3 |
The Ossuary Marshal uses a warned shield bash and rallies skeletons; Splintershot marks a ranged lane. |
Marshal's Boneguard: block-focused bone shield with balanced physical protection; etched bone fragments are guaranteed. |
ghoul |
Grave-Eater Mok gains a visible feast buff from corpses that players can interrupt; Hollowclaw telegraphs a drain rake. |
Grave-Eater Gorget: drain and poison protection 10; grave salts support restoration consumables. |
lost_soul, wraith |
Preserve Thrakir; add Veilwalker Oris with a warned drain line and The Lanternless with temporary, breakable concealment. |
Preserve Ring of the Ghost; add Veilglass Amulet with drain protection 12 and magic protection 8. |
skel_mage, demilich |
Cinder-Skull, Rime-Skull, and Storm-Skull expose their next spell element during the windup; Morcant the Archive-Eater changes spell school once at half HP. |
Runed Phylactery redeemed for a player-chosen element/magic ward; high-tier version adds Int or Pow +1 within an appropriate power budget. |
vampire, vampire_lord |
Lady Sablevein marks a lifesteal target and can be interrupted; The Pale Count summons only a bounded, despawning escort. |
Crimson Signet: Con +1 and drain protection 15; bloodglass shards provide the deterministic path. |
drow_guard/fighter/captain |
Vaelra Shadow-Captain orders a formation dash; Drazin the Riposte visibly enters a counter stance that players should stop attacking or flank. |
Shadowstep Boots: Dex +1, stealth 1, modest physical protection; drow insignia are guaranteed. |
drow_sorcerer, drow_annihilator |
Nymir Hexweaver exposes and rotates spell schools; Zaleth the Annihilator marks delayed blast tiles with safe gaps. |
Hexward Brooch: magic protection 15 with Int or Pow +1; annihilator focus fragments make higher-tier versions. |
troll |
Mossgut the Undying visibly regenerates until a fire hit or interrupt suppresses it; Bridgebreaker uses a warned knockback line. |
Trollhide Belt: Con +1, cold protection 10, fire protection -5; trollblood also makes a bounded regeneration consumable. |
| fire/green/black/blue dragons |
Pyraxis, Verdax, Nhalos, and Cryavyr each telegraph their matching breath shape and expose the opposing elemental weakness. Existing Scursaur remains a fixed lore encounter. |
Guaranteed colored dragon scales; a fixed number crafts a chosen scale shield/boots with about 15 matching protection. Rare eyes unlock a cosmetic/title or upgraded sidegrade, not an unchecked best-in-slot item. |
wyvern, dragon_skeletal |
Skarath the Gale-Talon alternates piercing dives and breath; Hollowwing drops bone lines and briefly exposes itself after landing. Preserve existing fire-wyvern lord and skeletal-dragon authored drops. |
Gale-Talon Gloves: WC +1 and pierce protection 8; Perfect Bone remains the skeletal family component and gains a repeatable recipe. |
demon_fire/green/red, bone_devil |
Grath Cinderhorn telegraphs fire cleaves; Uul Bone-Singer raises destroyable bone wards; The Verdant Hunger gains a bounded defensive shell that can be broken by the correct attack type. |
Cinderhorn Amulet: fire protection 15/cold -5; Bone-Singer Guard: magic/drain protection; demon seals are guaranteed high-tier crafting currency. |
lom_lobon, raas |
The Chain-of-Ice, Void-Scribe Akar, and a repeatable non-story crystal guardian use phase-limited elemental/cleave mechanics. Keep Hierro and Kriabe under their authored story rules. |
Voidglass Shard exchanged for magic/drain preparation or a weapon-class sidegrade; do not dilute Kriabe's boots or Hierro's unique reward identity. |
gazer_dread, oclunus |
Opharex the Many-Watched announces a gaze direction players must leave; The Closed Eye alternates vulnerability and reflection windows. Existing Nyhelobo remains fixed. |
Unblinking Lens: darkvision, Int +1, magic and confusion protection 12–15; lens fragments provide deterministic redemption. |
Important
The gameplay/authored-content decisions in this issue are preserved. This revision changes only the technical implementation path for the fresh MIT Go/Rust replacement program.
atrinik/contentremains separately/mixed licensed data; MIT engine/tooling code does not relicense the corpus.Replacement implementation contract
Preserve named-variant identities, encounter rules, presentation, rewards, and tuning. Implement with compiled definitions plus Go encounter ledger, spawn/AI/action/reward services and generated semantic scene/protocol data; renderer owns approved effects only.
Common migration gates
content-toolkit; production Go/Rust consumers do not add private source parsers.Content release-line scope
This future feature targets
content@mainand the canonical replacement stack. It is not automatically backported tocontent@1.x; any separately approved classic maintenance uses a linked pull request under #45, preserves the same gameplay/content decision and attribution, and validates only compatible classic consumers.Preserved product/design specification and historical implementation notes
Summary
Build a curated roster of rare named variants and signature rewards on top of the roaming named-encounter system proposed in #23. Every repeatable hostile monster archetype should either:
Commonly repeated or tactically varied families should have several possible named variants. The goal is not random adjective soup: each name should communicate a fight identity, each fight should have counterplay, and each reward should reinforce its creature/region theme or help prepare for a harder content path.
Why this should be a separate content project
#23 defines the engine behavior, lifecycle, uniqueness, cooldown, scaling, telegraph, and anti-exploit rules. This issue owns the authored roster and reward economy.
A source scan of nested type-83 spawn templates shows why one profile per visual archetype is not enough:
treant_evilghoulquickwoodant_redogrelost_soulwraithdemon_firegiant_stoneAt the same time, archetypes such as
guard,mage_old,peasant,ranger, and other humanoid bodies are also used for friendly NPCs and named story characters. They must not automatically become roaming enemies merely because a map embeds them as type 83.Coverage policy
Generate and maintain an audit from authored map/archetype sources. For every repeatable hostile source archetype, the audit should report its spawn-point count, map/region count, level range, variant pools, and any exclusion reason.
Initial density targets:
Examples:
rat_a,rat_b,rat_c, andrat_dcan share rat profiles.skel_fighter1,skel_fighter2, andskel_fighter3can share some martial-undead profiles.Do not use mutable display names to decide eligibility. Profiles and exclusions need stable IDs and explicit source/region/level constraints.
Reward policy
Every named kill should matter
Use a two-layer reward model:
Duplicates should have a sink: trade several trophies for the signature reward, exchange them for a choice among family rewards, or use them in repeatable crafting. Avoid a second indefinite 1/100-style lottery after an already rare world encounter.
Scope rewards by level band
One profile should not drop the same fixed level-6 item when taking over a level-60 source. Either:
Suggested initial bands are 1–15, 16–40, 41–75, and 76–115. Exact item levels, power budgets, values, and protections must be compared against neighboring authored equipment.
Prefer goals and sidegrades over raw power creep
Good reward themes include:
Do not make every reward +stats/+damage. Do not put quest keys, quest containers,
one_dropprogression items, or irreplaceable story objects into roaming loot. Useone_droponly for an intentionally per-character permanent entitlement, not to hide repeatable loot bugs.The values below are initial balance targets, not final item definitions.
Proposed initial roster
rat_a/b/c/dbat_brownand hostile bat variantsbee_killer,wasp_giantspider,spider_widowsnowman_evilwolfbear_grey,tigerdeerfrog,crocodileslug_giant,worm_purplekobold,kobold_fighter,kobold_guard,kobold_shamangoblin,gnollorc_outlaw/fighter/warrior/berserker/captainorc_sorcerer,orc_priestogreettingiant_hill,giant_stoneant_red,ant_soldiertreant_evil,quickwoodslime,slime_blue,gray_ooze,cube_gel, jelly colorsmud_hand,icegolem,lavagolemskel_fighter1/2/3ghoullost_soul,wraithskel_mage,demilichvampire,vampire_lorddrow_guard/fighter/captaindrow_sorcerer,drow_annihilatortrollwyvern,dragon_skeletaldemon_fire/green/red,bone_devillom_lobon,raasgazer_dread,oclunusNames are proposals and should receive a lore/tone pass before implementation. Existing named story bosses must not silently become roaming variants merely because they share a source archetype.
Region and level variety
A dense family should not roll the same three names everywhere. Profiles can specify:
Examples:
Discoverability and collection
Use stable variant and reward IDs to provide:
Do not require external wiki knowledge to understand whether a named monster exists, what broad reward it offers, or whether a duplicate trophy has value.
Tooling and author workflow
Add a focused audit, for example:
It should fail or report actionable errors for:
one_dropobjects in repeatable roaming loot;Update
tools/farming_analyzer.pyto include expected named frequency, trophy value, signature reward value, and danger. Updatetools/atrinik_botso it can discover stable variant IDs/family hints rather than hard-coding only Fahrgorm/Thrakir coordinates and display names.Rollout order
Acceptance criteria
Relevant content areas
arch/mobs/: source monster archetypes and family identityarch/items/, nested*.art, and*.trs: signature equipment, components, and treasuremaps/: regional eligibility, fixed named encounters, rumors, exchanges, and authored overridesserver/src/types/spawn_point.c: Add roaming named elites and counterplay-driven rare combat encounters #23 replacement hookserver/src/types/monster.c: reusable ability/counterplay vocabularytools/world_content_audit.py: coverage and reference validationtools/farming_analyzer.py: expected danger/reward modelingtools/atrinik_bot/: stable-ID discovery and hunting behaviorLegendary-roster coordination
#3 owns curated Mythic/Relic/Legendary classification, balance, and acquisition paths after atrinik/server#6 supplies rarity infrastructure. This issue remains authoritative for roaming-family signature rewards, guaranteed trophies, and duplicate sinks; shared items or currencies must have one owner and one acquisition budget.