docs(runicnpc): stage 3 as built, and its in-game walk #304

Merged
whitlocktech merged 1 commits from docs/runicnpc-stage3 into main 2026-09-30 08:20:53 +00:00
Member

What

This records stage 3 as built (runicnpc-rust#5) on both rigs.

  • runicnpc/PLAN.md stage 3: the results table (134/134 in one rnt.run all, plus reload and restart 5/5, on Oxide and Carbon), what building it found, and the in-game walk checklist (eight steps). The walk needs a player and is still to do.
  • runicnpc/API.md:
    • SetPlacement now refuses a roamer off the navmesh, and falls back to the nearest navmesh when the ground goes later (D239);
    • placements report a note while they fall back;
    • List reports regrounded;
    • SetRoute does not check whether an NPC can walk each leg.

Findings

  1. Rust leaves an NPC standing in the air when the floor under it is destroyed. The brain now puts it on the nearest navmesh within 2 s. This is how D239's "falls back" works.
  2. A route can be on the navmesh and still not walkable (a navmesh island on a rock top). path point and save loop now ask Rust for a path and refuse the point or the loop if there is none.
  3. A floor over the shore was not covered by the navmesh within 10 s; one a few metres inland was covered in 0.1 s. It's noted for stage 10; nothing depends on it.

For your call

  • The console-only at=x,y,z option for place, here and path point: the server console has no position of its own. In game, it is refused.

Checklist

  • AI-assisted: written with Claude Code (Claude Opus 5.5); the commit carries the trailer.

🤖 Generated with Claude Code

https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY

## What This records stage 3 as built (runicnpc-rust#5) on both rigs. - **`runicnpc/PLAN.md` stage 3:** the results table (134/134 in one `rnt.run all`, plus reload and restart 5/5, on Oxide and Carbon), what building it found, and **the in-game walk checklist** (eight steps). The walk needs a player and is still to do. - **`runicnpc/API.md`:** - `SetPlacement` now refuses a roamer off the navmesh, and falls back to the nearest navmesh when the ground goes later (D239); - placements report a `note` while they fall back; - `List` reports `regrounded`; - `SetRoute` does not check whether an NPC can walk each leg. ## Findings 1. **Rust leaves an NPC standing in the air when the floor under it is destroyed.** The brain now puts it on the nearest navmesh within 2 s. This is how D239's "falls back" works. 2. **A route can be on the navmesh and still not walkable** (a navmesh island on a rock top). `path point` and `save loop` now ask Rust for a path and refuse the point or the loop if there is none. 3. A floor over the shore was not covered by the navmesh within 10 s; one a few metres inland was covered in 0.1 s. It's noted for stage 10; nothing depends on it. ## For your call - **The console-only `at=x,y,z` option** for `place`, `here` and `path point`: the server console has no position of its own. In game, it is refused. ## Checklist - [x] AI-assisted: written with Claude Code (Claude Opus 5.5); the commit carries the trailer. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
wtclaude added 1 commit 2026-09-30 08:19:31 +00:00
- 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
whitlocktech merged commit 84de5b2879 into main 2026-09-30 08:20:53 +00:00
whitlocktech deleted branch docs/runicnpc-stage3 2026-09-30 08:20:54 +00:00
Sign in to join this conversation.
No description provided.