Skip to main content
DuckShell NPCs wiki

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.

Presentation and Ecosystem

Presentation, Skins, and Ecosystem Bridges

Understand disguise strategy, cache behavior, and the main integration lanes between DuckShell and the rest of Block Arsenal.

Presentation, Skins, and integration bridges

DuckShell is not only an AI system. It also owns how NPCs look, how they communicate, and how they cooperate with the rest of the Block Arsenal stack.

Presentation strategy

The top of config.yml starts with a dedicated presentation layer. That is your first clue that appearance is meant to be configurable, not hardcoded forever.

Key presentation concerns include:

  • disguise strategy
  • hand and nameplate behavior
  • shell offsets
  • speech bubble or nameplate rendering
  • skin and head caching

Why presentation is a real system

Presentation mistakes can look like AI bugs when they are really display problems:

  • bad offsets make hints look jittery
  • wrong disguise state makes hitboxes feel incorrect
  • stale cache data can make skins appear inconsistent

Treat presentation as its own lane and test it separately from combat behavior.

Skin and head cache

head_cache.yml exists to store cached texture-profile data so the plugin does not have to rediscover the same appearance data constantly. This is a performance and reliability system, not only a cosmetic detail.

The main integration bridges

DuckShell is designed to sit beside other systems instead of pretending it is the only plugin in the stack.

The most important bridges today are:

  • Duck Shot for weapons, projectiles, utilities, and loot identity
  • SoundLogic for noise and investigate pull
  • radios or event systems for world-event behavior and takeover content
  • presentation dependencies such as LibsDisguises and ProtocolLib

Depending on your stack, MythicMobs compatibility and separation can also matter operationally, especially when you want DuckShell NPCs to coexist without being misclassified as Mythic-owned content.

Practical rule for bridge work

If a bug changes how the NPC behaves in combat, pathing, or loot, document it in the DuckShell lane.
If a bug only changes the underlying item, projectile, or world-event emitter, document that bridge clearly instead of hiding it inside a generic NPC note.

That keeps cross-plugin ownership clear.