npcs.json
Defines NPC positions, vendor bindings, label keys, and the per-map override sets.
Scene objects do not rebuild live
Existing NPC scene objects are not rebuilt automatically after a live save. Restart or reload the map for reliable placement checks.
High-level parts
enablednpcsmapOverrides
Managed NPC fields
| Field | Meaning |
|---|---|
| id | Stable NPC id. |
| type | NPC type. |
| enabled | Whether this NPC is active. |
| name | Internal name. |
| position | World position as x y z. |
| yaw | Yaw rotation. |
| modelPath | Resource path to the NPC model. |
| label.nameKey | Localization key for the display name. |
| label.roleKey | Localization key for the role line. |
| label.module | Module ownership for label visibility. |
| vendor.kind | Vendor kind (shop, dealer, food, etc.). |
| vendor.stockId | Stock id referenced by the vendor. |
| clothing | Clothing resource paths. |
Map overrides support matching a map key and either merging or replacing global NPCs.
Reload
Use litherarp.npcs_reload for label and metadata changes. For placement changes, restart or reload the map.