docs(runicnpc): plan RunicNPC, our own Rust NPC plugin (D214-D220)
The PLAN_REDESIGNS §6 spike ran on the Oxide rig on 2026-09-30. Route A kept its kit and fought with it but cannot be named; HumanNPC counted its NPCs as players in the killfeed and tallies; NpcSpawn worked but costs a boot hitch, a phone-home and an unbundleable dependency. The org lead chose to write our own API-style plugin in runicnpc-rust. runicnpc/PLAN.md records the spike, the decisions, the features, the API, the chat commands, and stages 0-10 with how each is tested, plus eight questions. PLAN_REDESIGNS §6, §9 and §10 point at it; the index lists it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
@@ -6,7 +6,9 @@ It is step 3 of [`PLAN_FIXES.md`](PLAN_FIXES.md) §6: the six changes the org le
|
||||
player walk, each "planned in detail before code". The org lead asked for all six in one plan (2026-09-27), so
|
||||
they can be read together. **Built so far:** §1, walked 2026-09-28 (§1.9); §5, built 2026-09-28 with its
|
||||
rig walk still to come (§5.8, D209); §3, built and walked on the rigs and the site 2026-09-29, its in-game
|
||||
rows still to come (§3.4); §4, built 2026-09-29 (§4.1).
|
||||
rows still to come (§3.4); §4, built 2026-09-29 (§4.1). **§6 was spiked on 2026-09-30, and the org lead
|
||||
chose neither route: Runic Gateway writes its own NPC plugin, RunicNPC, planned in
|
||||
[`../../runicnpc/PLAN.md`](../../runicnpc/PLAN.md) (D214–D220), and the rest of this plan waits for it.**
|
||||
|
||||
This is a companion to [`PLAN_FIXES.md`](PLAN_FIXES.md) and [`PLAN.md`](PLAN.md). Where they disagree, this
|
||||
document is later and wins. Its decisions continue PLAN_FIXES' numbering at **D188**.
|
||||
@@ -18,7 +20,7 @@ document is later and wins. Its decisions continue PLAN_FIXES' numbering at **D1
|
||||
| 3 | Zones: ZoneManager's options, and a dome | §4.4, D166, D167 | Rust-Plugins (bridge and helper), Module-Rust |
|
||||
| 4 | The live map's marker types | §4.5, D165 | Module-Rust |
|
||||
| 5 | Chat titles: twenty-three conditions | §4.6, D172–D175 | Rust-Plugins, Module-Rust |
|
||||
| 6 | NPCs | §4.7 | Rust-Plugins, Module-Rust |
|
||||
| 6 | NPCs — now RunicNPC, its own plan ([`runicnpc/PLAN.md`](../../runicnpc/PLAN.md)) | §4.7 | **runicnpc-rust**, Rust-Plugins, Rust-Link, Module-Rust, installer |
|
||||
| 11 | First-class optional plugins: Economics, Backpacks, RaidableBases (Kits stays required) | — (added 2026-09-28) | Rust-Plugins, Module-Rust, installer, Android-app |
|
||||
|
||||
**Protocol.** Every wire change here joins **protocol 13**, which is still unreleased on `edge` in all three
|
||||
@@ -747,6 +749,12 @@ new hooks need a player: that is §5.7's walk.
|
||||
|
||||
## 6. NPCs (§4.7)
|
||||
|
||||
> **Superseded 2026-09-30.** The spike below was run on the Oxide rig. Route A kept its kit and fought with it
|
||||
> but cannot be named; HumanNPC counted its NPCs as players in the killfeed and tallies. The org lead then chose
|
||||
> **neither route**: Runic Gateway writes its own NPC plugin, **RunicNPC**, in its own repository (D214–D220). The
|
||||
> spike's results, two corrections to the text below, and the staged plan are in
|
||||
> [`../../runicnpc/PLAN.md`](../../runicnpc/PLAN.md). The text below is kept as what was planned.
|
||||
|
||||
**D197: the spike tries both routes on both rigs, then the org lead picks one.** The goal is the one the org
|
||||
lead named: NPCs with different kits and names. NPC Loadouts is out, because it cannot dress one spawn
|
||||
differently from the next (§0.10). The spike reports on each route before any site work.
|
||||
@@ -815,7 +823,8 @@ Each item is built on `edge`, walked on both rigs, and PR'd with its spec, like
|
||||
2. **Chat titles** (§5), including the mission hook.
|
||||
3. **Zones and the dome** (§3), with the zone half of D193's popups and the domes helper.
|
||||
4. **The map's marker types** (§4).
|
||||
5. **NPCs** (§6): the two-route spike, then the org lead's pick, then the build.
|
||||
5. **NPCs** (§6): spiked 2026-09-30; now **RunicNPC**, built and released through its own stages 0–9
|
||||
([`runicnpc/PLAN.md`](../../runicnpc/PLAN.md) §9) **before items 6 and 7** (D220).
|
||||
6. **The step editor and the kit weekend** (§2). It is core's, so it can be built alongside any of the above.
|
||||
It goes out as its own website PR with the Module-uo proof.
|
||||
7. **The first-class optional plugins** (§11): Economics, then Backpacks, then RaidableBases, each starting
|
||||
@@ -875,6 +884,13 @@ The §4 build raised one more, answered on 2026-09-29:
|
||||
| # | Decision | Rejected | § |
|
||||
|---|---|---|---|
|
||||
| **D213** | **Eight labels the 6000 map showed also start hidden:** Canyon B, Canyon C, Lake A, Oasis A, Oasis C, Mountain (terrain, not places to loot), Train Tunnel Link (like Train Tunnel), and Abandoned Cabins (the third swamp, like Wild Swamp). | Leaving them drawn under "every other label is on"; hiding the terrain and tunnel but drawing the cabins for their loot. | 4.1 |
|
||||
| **D214** | **Runic Gateway writes its own NPC plugin, RunicNPC**, API-style like NpcSpawn, in its own repository `runicnpc-rust`; behaviours may be borrowed, code may not. | Route A alone; HumanNPC; depending on NpcSpawn. | 6, [RunicNPC §0](../../runicnpc/PLAN.md) |
|
||||
| **D215** | **RunicNPC is not only for events:** admins place NPCs in game for normal play, through chat commands. | Event steps only. | 6, RunicNPC §5 |
|
||||
| **D216** | **No visual editor:** profiles are authored on the website; in game, commands only. | NpcSpawn's in-game GUI. | 6, RunicNPC §0 |
|
||||
| **D217** | **Kits is how an NPC is equipped, and Kits is required.** | Item lists in the profile. | 6, RunicNPC §2 |
|
||||
| **D218** | **Loot tables are RunicNPC's own for now;** links to other loot plugins later. | A loot plugin as a dependency. | 6, RunicNPC §7 |
|
||||
| **D219** | **Rust's navmesh is used;** a custom navigation mesh is a later stage, only if needed. | NpcSpawn-style point meshes from the start. | 6, RunicNPC §8 |
|
||||
| **D220** | **RunicNPC is built and tested in stages before this plan resumes, then `module-rust` requires it.** | Building it alongside items 6 and 7. | 9, RunicNPC §9 |
|
||||
|
||||
## 11. First-class optional plugins (D199–D202)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user