The org lead's answers to the spike's four open questions (2026-10-01):
D263 a fight with Rust's scientists stays one-sided and our NPCs never
go hunting into monuments; D264 `turrets: always` adds Outpost's and
Bandit Camp's sentries; D265 the main weapon's ammunition is endless, as
in Rust; D266 fire burns as it does in Rust, allies included.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
What the stage 5 spike measured on both rigs, written into the stage 5
section of runicnpc/PLAN.md: why an NPC's bullets never hurt an NPC (Rust
skips the hit unless the victim's faction is Horror) and the per-shot
mark that fixes it; what our own sensing costs against stage 1's; what
Rust's turrets, its AI and TruePVE or NextGenPVE do with our NPC; and
four questions the answers leave for the org lead.
Stage 1's row on fighting NPCs is corrected: its "cover and facing states
win" was not the cause.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
The org lead's answers of 2026-09-30 for stage 5 (behaviour): one stage
walked once, opening with the D231 spike; named factions with per-profile
exceptions; players-only by default; group alert at 40 m; clan and team
allies defended; escort targets from events, the API and /rnpc follow;
turrets as for Rust's scientists; kit extras opt-in; PVE hooks allowed both
ways; a patrol returns to the point it was heading to.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
PROTOCOL.md §19.12: RunicNPC over the bridge — integrations.runicNpc, the
npc.profiles, npc.profiles.set, npc.placements and npc.placement commands and
their refusals, the npc.died, npc.health and npc.placement.changed frames,
world.place with a profile, attackerNpc and attackerProfile, the tally's
npcProfileKills, the four sidecar routes, and overlay.toml's runicnpc_api.
API.md: API 3 — RunicNpc_AddPlacement, RunicNpc_RenamePlacement,
RunicNpc_RespawnPlacement and OnRunicNpcPlacementChanged.
PLAN.md stage 4: what was built in five repositories, the walk on both rigs
row by row, what was not walked and why, and what building it found.
rust-link/INSTALL.md: RunicNPC as the bundle's third file, by hand, the egg,
doctor and uninstall.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
The module has no public player page, so D250's "player's public stats" are
shown by opening the player's row in a server's leaderboard, and to the player
on their own Player -> Rust page.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
D249: RunicNPC gets API 3 in stage 4 (a fifth PR): a call that creates and
names a placement from a map point it grounds and checks, rename and respawn
calls, and a hook raised when a placement changes.
D250: per-profile kills on the player's public stats, as a title category,
and as a leaderboard ranked by a picked profile.
D251: where an adopted server profile and a site profile share a name on
that server, the site's wins; the server's own is kept as "replaced".
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
The org lead's answers for stage 4 (Runic Gateway integration): the event
picker shows profiles and Rust's own scientists (D243); a server's own
profiles are adopted on the first push (D244); placements are listed,
edited and created from the live map with /rnpc place's options (D245,
D246); kills count by profile name per server unless a profile says
otherwise (D247); one stage, four PRs, joining protocol 13 (D248).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
- PLAN.md stage 3: what was built (runicnpc-rust#5), the results on
both rigs (134/134, reload and restart 5/5), what building it found
(Rust leaves an NPC in the air when its floor goes; a route leg can
be on the navmesh and still unwalkable; a shore floor not covered;
stage 2's JSON leak), the console-only at= option for the org
lead's call, and the in-game walk checklist.
- API.md: SetPlacement's navmesh check and D239 fallback, the
placements' note, List's regrounded, and SetRoute's unchecked legs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
The org lead answered stage 3's four questions on 2026-09-30:
- D239: a roamer may stand on a player-built floor (Rust's mesh covers it
a moment after it is built, stage 2), with a warning in the answer.
§5, §8 and stage 10 now follow it; stage 2's open item is closed.
- D240: routes are recorded point by point (record, point, undo,
save loop|back, cancel), with nothing drawn on screen.
- D241: placements made in game are named <profile>-<n>, renamable.
- D242: /rnpc place and /rnpc here take key=value options in any order.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
runicnpc/API.md is the reference for other plugins: owners, every
RunicNpc_* call, the four hooks, and the profile, placement and route
shapes. PLAN.md records stage 2's results on both rigs and what building it
found: Rust's chase needs an AI zone like its roam, and a player-built floor
joins the navmesh 0.1-0.3 s after it spawns, which corrects stage 1's Q4
(left open for the org lead). README indexes API.md.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
The org lead answered stage 2's open questions: a fixed field list for the
swap, three movement modes a placement may choose (wander, Rust's monument
paths, admin-recorded routes), sleep past 160 m after walking home, respawn
per placement (each or group), placements that wait for a deleted profile,
and the profile's shape. Stage 2 and 3 are rewritten around them.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
The harness answered all six stage 1 questions on both rigs, on one 6000 world:
the swap needs AwakeFromInstantiate; unsaved NPCs never return; Rust's brain
honours sense values only before it starts, roams only in AI zones and never
attacks NPCs; placement checks use Rust's Gen2 navmesh (89% of monument points,
never a player-built floor); the cost table for 1/10/100 idle and fighting on
Oxide and Carbon; the death screen needs an AttackerInfo override, and the
bridge's frames still name the prefab.
D231: each profile or group decides whether its NPCs target NPCs, and which
kinds, which needs our own combat state and sensing (stage 5 spike).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
Records what runicnpc-rust#1 built for stage 0 and the two decisions taken with
it: the empty repository seeded by one chore commit to main, then edge and PRs
(D229); plugin/RunicNPC.cs + plugin.toml rather than an overlay tree (D230).
Notes the Oxide floor that differs from the bridge's (2.0.7726, what the rig
runs), the three checks added over the bridge's checker, the manifest's `api`
field, and con.js renamed console.js because CON is a reserved device name on
Windows. PLAN_REDESIGNS' pointer now reads D214-D230.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
Standalone use too (D221), placements live on the server (D222), our own
scientist subclass and brain (D223), installer and egg ship it plus a
Gitea release and possibly other download sites (D224), per-profile
kills public and in titles (D225), edge to main (D226), no default caps
but a measured cost warning wherever NPCs are added (D227), and the
names RunicNPC, /rnpc, runicnpc.* (D228). The sections they change are
updated: standalone profiles, the console profile verb, cost warnings,
stage 1's measurements, and publishing.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
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