NPCs & monsters pipeline
How monsters (20 + elites + 2 bosses) and the 24 NPCs are produced end to end — design data, turnaround, mesh, family rigs, ability + reaction animation sets, AI behaviour trees, telegraphs, tests.
◆Monsters
Inputs: bestiary.json (level, nature, aggro/leash, HP/XP, basic + 2 abilities with telegraph timings,
weight class, reaction set, hit material, drops), portrait art (/art/bestiary/*), and combat-states.json.
| # | Stage | Agent work | Test |
|---|---|---|---|
| 1 | Turnaround | ART-MON-053 sheet from the accepted portrait | owner check vs portrait |
| 2 | Mesh | image→3D (if approved) or Blender blockout + sculpt, retopo to budget (small 4k / medium 8k / large 14k / boss 40k) | budget + non-manifold check |
| 3 | Family rig | one rig per body family: quadruped (small/medium), insectoid (6 legs + tail/pincers), reptile (+ tail chain), serpent (spline), bird (wings), shelled (tortoise), plus the boss rigs | 20-pose deformation test |
| 4 | Animation set | idle ×2, walk, run, turn, basic attack, 2 abilities (telegraph pose held for telegraphS), spawn, the reaction set clips, deaths | clip timings = ability contract ±1 frame |
| 5 | Telegraph binding | decal shape + fill-up time from the ability (shape, telegraphS); aim lock rule | telegraph visible on Low; shape matches server |
| 6 | AI behaviour | small behaviour tree from data: idle/wander → (hostile) aggro in radius → chase → attack/abilities by cooldown → leash → reset. Neutral monsters skip aggro until damaged | deterministic sim tests: leash, reset, ability cooldown, no stuck states |
| 7 | Hit feedback | material impacts, reaction set mapping, death styles | reaction-matrix test on this monster |
| 8 | Elite variant | +1 weight class, size aura, ★ nameplate, 3× HP | elite spawn rules (one per area, 25 m from roads) |
| 9 | Evidence | 10 s clip: idle → aggro → ability telegraph → player hits (light/heavy/launch) → death | owner review for bosses |
Monster AI is server-side (Rust), awake only within 60 m of players. Behaviour trees are data (JSON) with
nodes Idle, Wander(r), Aggro(r), Chase, UseAbility(id), BasicAttack, Leash(r), Flee(hp%).
◆Bosses
The Bellbound Regent (tortoise, 45k HP, Royal Winter circles, Broken Bell ring, phase at 50%) and Kharuun (camel-beast, 70k HP, every 4 h). They get break-pressure animations, phase transitions, an arena layout test, telegraph-only readability tests on Low with 40 players, and fairness tests at 200 ms RTT.
◆NPCs (24)
| Stage | Agent work | Test |
|---|---|---|
| Body | reuse the player pipeline (same skeleton). Outfit variants from the kit (town attire, trainer outfits by pole, travel gear) | budget, no clipping |
| Portrait | ART-NPC-* requests (bust portraits) for dialogue windows | style match |
| Behaviour | schedule-lite: idle spots + small walk loops; talk/gesture clips; face the player on interact | interact radius 3 m; no blocking doorways (path test) |
| Dialogue | quest text from quests.json, voice-free in the MVP; typewriter text with skip | every quest step reachable via dialogue |
| Markers | gold ! / ? above head, jade for side content; minimap pins | marker states match quest state |
Crowd NPCs (townsfolk, caravans) are instanced VAT crowds with no AI (spline paths), and are cheap enough for busy towns.
Source: zoen/docs/production/NPCS_MONSTERS.md · 580 words · edit the Markdown, not this page.


























