
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 treats patrols and spawners as first-class systems. That is the correct design choice because a route and a persistent spawn point are related, but they are not the same thing.
Patrols are route content
Patrol data lives in patrols.yml. A patrol is the right tool when:
- an NPC should follow a waypoint route while idle
- combat can interrupt the route
- the NPC should later return to the route
- a boundary leash should keep the patrol in a believable area
Patrols are encounter choreography.
Spawners are world-presence content
Spawner data lives in spawners.yml. A spawner is the right tool when:
- a location should maintain a target alive count
- mobs should repopulate after deaths
- activation should depend on nearby players
- admins need teleport, visualize, and quick editor tools
Spawners are persistence infrastructure.
Why the split matters
A good content setup usually combines them instead of forcing one system to impersonate the other.
Examples:
- use a spawner to keep a checkpoint populated
- use a patrol to make one guard circle the checkpoint
- use both when a landmark should recover after players leave and return later
That is much easier to maintain than trying to stuff routing logic into one giant spawn entry.
Persistence and save behavior
Both systems are intended to survive restarts cleanly:
- patrol edits save back to
patrols.yml - spawner edits save back to
spawners.yml
This makes them safe authoring surfaces for long-running servers instead of temporary testing tools only.
The practical design rule
Ask one question first:
- "Is this content about where NPCs come from?"
- or "Is this content about where NPCs move when idle?"
If it is the first, start with a spawner.
If it is the second, start with a patrol.

