
Wiki
DuckShell NPCs Wiki
NPC systems, patrols, spawners, combat AI, dialogue delivery, and live-server operations for the DuckShell stack.
Getting Started
Start here for first boot, file layout, and the admin surfaces that control the rest of the plugin.
AI and Combat
Separate global AI policy, per-type identity, awareness, cover, and personality presets without turning the roster into guesswork.
World Content
Keep patrol routes and persistent spawners as separate world systems with their own save files and editor workflows.
Presentation and Ecosystem
Handle disguises, skins, bubbles, dialogue delivery, and cross-plugin cooperation without burying those concerns in AI pages.
Runtime and Troubleshooting
Run live-server debug, Spark, corpse-loot checks, and civilian-arming validation without losing track of the real problem.
DuckShell's dialogue system is part of the runtime surface, not just decorative text. The current config already supports a real hint-rendering layer with bubble offsets, view range, shadow rules, background rules, and interpolation timing.
Overhead render mode
The current hint system supports a choice between:
- legacy nameplate-style delivery
- speech-bubble delivery
That lets you choose whether the NPC should feel more like a simple label-driven mob or a more expressive character with readable overhead speech.
Bubble tuning that matters
The most important bubble controls include:
y-offsetline-widthview-rangeshadowedsee-throughdefault-backgroundbackground-colortext-color- interpolation timing
- teleport duration timing
- auto-height offset for taller entities
Those controls matter because different shell types do not share the same silhouette. A juggernaut and a smaller bandit should not necessarily use the same bubble offset.
Delivery design
The practical split usually looks like this:
- hostile hints can prioritize clarity and tension
- companion hints can prioritize feedback and ownership
- unseen or nearby dialogue can be allowed to reach players without direct eye contact
- tightly local combat bark can remain more directional
That is how you make NPC speech feel like part of the encounter rather than a debug overlay.
Companion versus hostile pools
Companion message pools and hostile hint pools should be treated as different authoring surfaces even if they share the same renderer. Companions need:
- recruit and claim feedback
- proximity or health warnings
- owner-defense messaging
- friendly-fire response
Hostiles need:
- idle chatter
- investigate lines
- combat barks
- fallback lines when a preferred pool is empty
A good authoring rule
Decide the purpose of a message before styling it:
- information for the owner
- atmospheric chatter for a nearby player
- combat urgency
- recruitment or claim instruction
That gives you a better reason for color, background, and delivery mode than simply using one global bubble style everywhere.

