docs(runicnpc): stage 6 built and walked; API 5; protocol §19.14 #317

Closed
wtclaude wants to merge 0 commits from docs/runicnpc-stage6-built into main
Member

What

Stage 6's docs, with the code in runicnpc-rust#10, Rust-Plugins#24 and Module-Rust#31.

  • runicnpc/API.md version 5:
    • the profile's boss and use blocks, and the passive role with stand;
    • the hooks OnRunicNpcBossSpawned, OnRunicNpcBossPhase, OnRunicNpcBossDied and OnRunicNpcUsed;
    • role and boss in RunicNpc_List;
    • RunicNpc_Despawn also takes a boss's adds;
    • the example kits written once with kits.runicnpc;
    • a Kits reload taking RunicNPC with it (D283).
  • rust-link/PROTOCOL.md §19.14: npc.boss.spawned, npc.boss.phase and npc.boss.died, their classes (public, presence, staff) and runicnpc_api = 5.
  • runicnpc/PLAN.md stage 6: what was built, the builds it was tested on, the harness and the browser walk on both rigs, what is not walked, and what building it found.

This branch includes docs#316's commit (D285–D289). Merge #316 first and this diff shrinks to its own commits.

What the walk found, for you

  • A boss's adds outlived the event that placed it. Fixed in RunicNPC and walked again (run 65).
  • Rust's design targets players that IsTarget refuses. Fixed for passive NPCs. Stage 5's ally sparing may have the same hole: it's untested, and I didn't change it.
  • The bridge's npc.health frame carries no owner, so rust.npc.health never says byEvent. This dates from stage 4 and isn't changed here.
  • Not walked: anything a real client shows (the bar, the chat or popup lines, a real E press, the window). That waits for the in-game walk with a player.

Checklist

  • I have read CONTRIBUTING.md.
  • Docs only.
  • AI tools were used. Tool(s): Claude Code (Claude Opus 5.5). The commits carry the Co-Authored-By trailer.
  • I agree that my contribution is licensed under GPL-3.0-or-later.

🤖 Generated with Claude Code

https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY

## What Stage 6's docs, with the code in runicnpc-rust#10, Rust-Plugins#24 and Module-Rust#31. - **`runicnpc/API.md` version 5:** - the profile's `boss` and `use` blocks, and the passive role with `stand`; - the hooks `OnRunicNpcBossSpawned`, `OnRunicNpcBossPhase`, `OnRunicNpcBossDied` and `OnRunicNpcUsed`; - `role` and `boss` in `RunicNpc_List`; - `RunicNpc_Despawn` also takes a boss's adds; - the example kits written once with `kits.runicnpc`; - a Kits reload taking RunicNPC with it (D283). - **`rust-link/PROTOCOL.md` §19.14:** `npc.boss.spawned`, `npc.boss.phase` and `npc.boss.died`, their classes (public, presence, staff) and `runicnpc_api = 5`. - **`runicnpc/PLAN.md` stage 6:** what was built, the builds it was tested on, the harness and the browser walk on both rigs, what is not walked, and what building it found. **This branch includes docs#316's commit (D285–D289).** Merge #316 first and this diff shrinks to its own commits. ## What the walk found, for you - **A boss's adds outlived the event that placed it.** Fixed in RunicNPC and walked again (run 65). - **Rust's design targets players that `IsTarget` refuses.** Fixed for passive NPCs. **Stage 5's ally sparing may have the same hole**: it's untested, and I didn't change it. - **The bridge's `npc.health` frame carries no owner**, so `rust.npc.health` never says `byEvent`. This dates from stage 4 and isn't changed here. - **Not walked:** anything a real client shows (the bar, the chat or popup lines, a real E press, the window). That waits for the in-game walk with a player. ## Checklist - [x] I have read CONTRIBUTING.md. - [x] Docs only. - [x] AI tools were used. Tool(s): `Claude Code (Claude Opus 5.5)`. The commits carry the `Co-Authored-By` trailer. - [x] I agree that my contribution is licensed under GPL-3.0-or-later. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
wtclaude added 3 commits 2026-10-05 13:14:03 -05:00
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
API.md version 5: the profile's boss and use blocks, the passive role
and stand, the boss hooks and OnRunicNpcUsed, role and boss in
RunicNpc_List, RunicNpc_Despawn taking a boss's adds, the example kits
written once, and a Kits reload taking RunicNPC with it (D283).

PROTOCOL.md §19.14: npc.boss.spawned, npc.boss.phase and npc.boss.died,
their classes, and runicnpc_api 5.

PLAN.md stage 6: what was built, the builds it was tested on, the
harness and the site walk on both rigs, and what building it found.
The example kits' permission is kits.runicnpc.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
The s6 group passed 41/41 on both rigs; its 42nd check (a dead boss's id
taking its adds) came with the walk's fix and has not been run in the
harness yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
wtclaude added 1 commit 2026-10-05 13:19:02 -05:00
The check that came with the adds teardown fix ran after the walk and
passed on both rigs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
whitlocktech closed this pull request 2026-10-05 19:45:07 -05:00

Pull request closed

Sign in to join this conversation.
No description provided.