docs(runicnpc): stage 6 build decisions D285-D289
D285 an event's boss rewards stay the Rust module's existing steps; D286 spawn and death lines to everyone, phase lines to players near the boss; D287 adds fight on after the boss dies; D288 a passive NPC moves as its profile says; D289 the four example profiles. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
@@ -11,7 +11,7 @@ design answered 2026-09-30 and 2026-10-01** (D253–D266, §0), **its spike meas
|
||||
and **its build's own questions answered 2026-10-01** (D267–D272). **Stage 5 built and tested 2026-10-01, walked on the
|
||||
site 2026-10-05** on both rigs (§9); its API is [API.md](API.md) version 4. **Stage 6's design answered
|
||||
2026-10-05** (D273–D282, §0), **its spike measured 2026-10-05** on both rigs, and **its two questions answered the
|
||||
same day** (D283, D284, §9).
|
||||
same day** (D283, D284, §9). **Its build's own questions were answered the same day too** (D285–D289).
|
||||
|
||||
RunicNPC is Runic Gateway's own NPC plugin for Rust servers, in its own repository,
|
||||
[`RunicGateway/runicnpc-rust`](https://gitea.whitlocktech.com/RunicGateway/runicnpc-rust). It runs on Oxide and
|
||||
@@ -105,6 +105,11 @@ architectural or design decision is implemented.
|
||||
| **D282** | **Stage 6 is one stage, opening with a spike on both rigs, walked once end to end**, as stages 4 and 5 were (D248, D253) (stage 6). | 6a (bosses) and 6b (passive NPCs), each walked and merged before the next. |
|
||||
| **D283** | **RunicNPC keeps `// Requires: Kits`.** A Kits reload reloads RunicNPC too, on both frameworks, and the NPCs it had spawned are lost (placements respawn; an event's do not). The operator documentation says not to reload Kits while an event runs (stage 6 spike, finding 6). | Kits still required, but checked in RunicNPC's own code, so its NPCs survive a Kits reload. |
|
||||
| **D284** | **RunicNPC writes its four example kits only on its first install**, recorded by a flag in its data. A kit the admin deletes or edits is never brought back or overwritten. The kits are `rnpc_raider`, `rnpc_campguard`, `rnpc_sniper` and `rnpc_juggernaut`, each needing a permission nobody is granted (stage 6). | On every load, for any example kit that is missing; only on an admin's command. |
|
||||
| **D285** | **Rewarding a boss fight in an event is the Rust module's business, not RunicNPC's**, and uses the module's existing steps: count participants (time in the boss's zone, or NPC kills), then "Reward a kit". Stage 6 builds no reward path. RunicNPC's death hook still names the killer and every player who damaged the boss (stage 6, the org lead: "that belongs in the rust module plan"). | A "Reward a kit" choice that reaches every player who damaged the run's boss, ranked by damage; damage to the run's NPCs counted in the tally. |
|
||||
| **D286** | **A boss's spawn and death lines go to everyone on the server; its phase lines only to the players near it**: within its bar distance, and anyone who has damaged it (stage 6). | Every line to everyone; every line only to players near it. |
|
||||
| **D287** | **A boss's adds fight on after it dies**, until they are killed. They belong to whoever owns the boss, so an event's teardown removes them with it (stage 6). | Adds die with the boss; adds stop fighting and despawn after 60 s. |
|
||||
| **D288** | **A passive NPC moves as its profile says**: it can stand, wander or walk a route like a roamer, and it never fights (stage 6). | Always standing at its spot, like a sentry. |
|
||||
| **D289** | **The four example profiles (D280, D284):** a raider (roamer, wanders 40 m, 150 hp, semi-auto rifle); a camp guard (guard, chases 30 m, 200 hp, Thompson, metal facemask and chest plate); a sniper (sentry, sees 120 m, 120 hp, bolt-action rifle); and the Juggernaut (roamer and boss, wanders 30 m, 2,500 hp, M249, heavy plate). The Juggernaut has a phase at 50% (summons 3 raiders: "The Juggernaut calls for help!") and one at 25% (damage ×1.5, speed ×1.3: "The Juggernaut is enraged!"). Its spawn line is "The Juggernaut has risen!", its death line "The Juggernaut has fallen.", and its bar shows within 100 m. Item names are checked on the rig; one Rust does not know is replaced by its nearest match (stage 6). | Weaker starters (revolver, Thompson, hunting bow; a 1,500 hp boss). |
|
||||
|
||||
**Borrowing, not copying.** NpcSpawn states no licence at all, so its source grants us nothing and is read only as a
|
||||
description of *what* can be done in Rust. HumanNPC is MIT on uMod, which is GPL-compatible, but §1.2 rules out its
|
||||
@@ -1114,7 +1119,7 @@ The org lead's answers on 2026-10-05 are D273–D282. **It is one stage, opening
|
||||
- **Rust-Plugins (the bridge):** the boss block pushed with the profiles; frames for a boss's spawn, phase and
|
||||
death for the site.
|
||||
- **Module-Rust:** the profile form's boss box and passive settings; public boss triggers (spawned, phase, killed)
|
||||
for engagement rules (D277); an event's reward steps reaching the players who killed its boss (D276).
|
||||
for engagement rules (D277). Nothing for an event's rewards: they stay the module's own steps (D285).
|
||||
|
||||
**Not in this stage:** a Discord post for a boss outside an event (D277), RunicNPC's own kill rewards (D276), and
|
||||
greet, hurt or kill lines (D281). A boss's loot table is stage 7's.
|
||||
@@ -1246,6 +1251,14 @@ What this adds to the build (D283, D284):
|
||||
- A phase's kit swap is strip, `GiveKit`, `EquipWeapon`.
|
||||
- Adds are placed one per frame.
|
||||
|
||||
**The build's own questions, answered by the org lead on 2026-10-05 (D285–D289):**
|
||||
|
||||
1. **Who an event rewards for a boss fight. → D285:** the Rust module's existing steps; nothing in stage 6.
|
||||
2. **Who hears a boss's lines. → D286:** spawn and death, everyone; phases, the players near it.
|
||||
3. **A boss's adds after it dies. → D287:** they fight on.
|
||||
4. **How a passive NPC moves. → D288:** as its profile says.
|
||||
5. **The example profiles. → D289:** the set in §0.
|
||||
|
||||
### Stage 7 — Loot
|
||||
|
||||
Loot tables authored on the site, the corpse's default loot cleared or kept, a crate on death, corpse removal.
|
||||
|
||||
Reference in New Issue
Block a user