docs(rust): the last fixes' docs (N1 N2 W20 W22 W23) and stage 4's core docs
Stage 5 of PLAN_LAST_FIXES (docs#366). - OPERATING.md: a RaidableBases section. Change its config with a restart, never a reload (N2); switching to the free edition rewrites a paid pack's profiles (N1). - PLAN_REDESIGNS 14.3.4: no manual retry for Dangerous Treasures (Q39, W20); 11.4: which hook rbevent setowner raises (W23); 9.1 status. - PLAYER_WALK: rows 2.2, 2.8 and 2.9, Before you start item 8 (BetterChat and the four title rules), Carbon's share trimmed to 2.11 (W22, W23). - PROTOCOL: 20.5 world.error already-out (W3), 20.12 the rollback's log is RaidableBases' own (W9) and setowner's two hooks (W23). - Core, from website#219: MODULE_SYSTEM 2.5 and MODULE_API 4.2 (one module at boot, W19), MODULE_API and EVENTS L (a resource's until read at reconcile, W1), EVENTS D/I/K and BACKEND_DESIGN (a draft's dry run carried by fingerprint, W5), EVENTS observability (W2's words). - PLAN_LAST_FIXES: status, Q37-Q40 answers, 7 updated, 8 what was built. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
@@ -14,8 +14,8 @@ raised D335–D336 (§11.2.1). Economics was built on 2026-10-12 too (§11.2.4).
|
||||
D342–D346), planned and built the same day. On 2026-10-14 RaidableBases was deferred until the current paid copy arrives (D347), with both editions to be supported (D348, §11.4.2). The same day the org lead added Rust's own world events to the base module (§13, D349) and six more first-class optional plugins (§14, D350–D352), to be tested together in one phase before their integration plan. Their questions were answered the same day (D353–D359, the end walk now waiting for RaidableBases), and Steam sign-in stays on the website's plan, linked as §15 (D360). **The §14.2 test phase ran the same day on both rigs (§14.2.1)**: the org lead ruled D361–D362 during it and answered its Q19–Q25 the same day (D363–D369). On 2026-10-16 the org lead added console commands as event steps and rewards (§16, D382–D384), to be built before RaidableBases; **they were built the same day (§16.10)**, with D385. The same day the paid RaidableBases copy arrived; **its spike ran on both rigs (§11.4.2)**, with D386 and four questions, Q33–Q36, answered the same day (D387–D390). **§11.4 was built the same day (§11.4.6)**, with D391, core's dry-run advice. On 2026-10-19 the org lead answered Steam sign-in's questions (D392–D396, §15), and it is built on the website's `edge` to join the cutover. **Every item left is built, tested and PR'd first; every walk —
|
||||
theirs and the ones still owed by §3 and §5 — happens together at the end (D331, §9).** **The end walk's rows
|
||||
that need no player ran on 2026-10-16 and 2026-10-19, and all of them are done (§9.1)**: W1–W20 and N1 found, W4
|
||||
and W19 the real ones. **The in-game pass ran on 2026-10-21** and found W21–W23 and N2; every fix left is listed,
|
||||
in building order, in [`PLAN_LAST_FIXES.md`](PLAN_LAST_FIXES.md).
|
||||
and W19 the real ones. **The in-game pass ran on 2026-10-21** and found W21–W23 and N2. **All of them were fixed
|
||||
by 2026-10-22** ([`PLAN_LAST_FIXES.md`](PLAN_LAST_FIXES.md)); the protocol 14 release and the cutover come next.
|
||||
|
||||
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**.
|
||||
@@ -986,8 +986,8 @@ lead, 2026-10-19).**
|
||||
- **§5.7 and §3.4** passed in RunicNPC's 9d (stand-ins on 2026-10-07, the org lead in game on 2026-10-09), so
|
||||
they are not walked again.
|
||||
|
||||
**Found** (none fixed yet; each waits for the org lead; the whole list, with the in-game pass's W21–W23 and N2, is
|
||||
[`PLAN_LAST_FIXES.md`](PLAN_LAST_FIXES.md)):
|
||||
**Found** (all fixed by 2026-10-22, in [`PLAN_LAST_FIXES.md`](PLAN_LAST_FIXES.md)'s stages 1–5, which also list the
|
||||
in-game pass's W21–W23 and N2 and the PR that fixed each):
|
||||
|
||||
| # | Where | What |
|
||||
|---|---|---|
|
||||
@@ -1189,7 +1189,7 @@ The org lead answered the phase's Q19–Q25 on 2026-10-14:
|
||||
|---|---|---|---|
|
||||
| **D363** | **Carbon's console route (Q19): watch Carbon's updates and keep an issue open in Rust-Plugins so it is not forgotten** ([Rust-Plugins#34](https://gitea.whitlocktech.com/RunicGateway/Rust-Plugins/issues/34)). No workaround is built for now; each new Carbon production build is re-tested. | Running commands through Carbon's `CommandManager` by reflection now. | 14.2.1 |
|
||||
| **D364** | **A missing NpcSpawn is reported and refused (Q20):** the hello reports NpcSpawn beside Guarded Crate, the site refuses a guarded-crate step without it and says why, and the operator docs say what NpcSpawn does on load. | Documenting it only. | 14.2.1 |
|
||||
| **D365** | **Dangerous Treasures' warm-up (Q21):** a step that fails because DT is not ready says so (*"Dangerous Treasures is not ready yet"*), retries once on its own after ten minutes, **and offers staff a manual retry** on the run. | Failing with DT's own text; the bridge pre-warming DT at boot. | 14.2.1 |
|
||||
| **D365** | **Dangerous Treasures' warm-up (Q21):** a step that fails because DT is not ready says so (*"Dangerous Treasures is not ready yet"*), retries once on its own after ten minutes, **and offers staff a manual retry** on the run. *(The manual retry was dropped on 2026-10-21, Q39: core retries only a failed step, and the automatic retry is enough. §14.3.4.)* | Failing with DT's own text; the bridge pre-warming DT at boot. | 14.2.1 |
|
||||
| **D366** | **One Bradley event, two places (Q22):** `bradley.destroyed` carries `where: launch_site | road`, and both count toward *Tankbreaker*. | Two separate events; Launch Site only. | 14.2.1, 13 |
|
||||
| **D367** | **The newer events join §13 (Q23):** the satellite crash, the Deep Sea opening and closing, and the ghost ship's crate (a fourth crate location) are feed events and triggers. **The F-15 flyover is not an event; it can be added to an event as decoration**, a step that calls the flyover (D354). | The F-15 as a feed event or trigger. | 14.2.1, 13 |
|
||||
| **D368** | **TruePVE in the zone step (Q24):** a *"no PvP protection in this zone"* checkbox (`exclude`), plus an optional ruleset name typed by staff, which the bridge validates by `AddOrUpdateMapping`'s own `false`. | Checkbox only; reading TruePVE's config file. | 14.2.1, 3 |
|
||||
@@ -1865,6 +1865,10 @@ still there. It is private and not a `[HookMethod]`, but **`Call` reaches it on
|
||||
despawn) and `OnRaidableBasePurchased` (8 arguments, the same without the load time) come only from
|
||||
`TrySetPayLock`. That runs when a player buys a base, or when an admin runs
|
||||
`rbevent setowner <player> [lockout]`. `OnRaidableBaseUnlocked` (8 arguments) is its undoing.
|
||||
**Which of the two it raises** follows `paylock = !args.Contains("lockout")`: a purchase and the plain
|
||||
`rbevent setowner <player>` raise `OnRaidableBasePurchased`, and only `rbevent setowner <player> lockout`
|
||||
raises `OnRaidableBaseLocked`. *(Corrected 2026-10-22: this read as if the plain command locked. The end
|
||||
walk's in-game pass showed it reads as "bought", [PLAN_LAST_FIXES.md](PLAN_LAST_FIXES.md) W23.)*
|
||||
- **Locking to the first attacker raises no hook**, and neither does a **lockout** (the per-player cooldown
|
||||
after a raid, kept in the plugin's own data). So D202's "the feed carries lockouts" still has nothing to
|
||||
listen to (Q36).
|
||||
@@ -2984,9 +2988,11 @@ both go when the zone lasts out; cargo's ring for the ship's life; one of our zo
|
||||
verify where DT is absent or `console.plugins` is false, naming Rust-Plugins#34 for the second.
|
||||
- **D365.** `dt-not-ready` is reported as *"Dangerous Treasures is not ready yet"*, and the step answers
|
||||
`{ ok: false, retry: true, retryAfterMs: 600000 }`: **core's new per-failure retry delay (D371, §14.3.13)**, so
|
||||
the run tries once more ten minutes later. `dt-no-spot` retries on core's ordinary 60 s. The manual retry is
|
||||
core's own: the step's `on_failure` pauses the run, and staff press **Retry** on the paused step
|
||||
([EVENTS.md](../../website/EVENTS.md) §I), which re-sends the same key.
|
||||
the run tries once more ten minutes later. `dt-no-spot` retries on core's ordinary 60 s. **There is no manual
|
||||
retry** (Q39, 2026-10-21). Core's **Retry** ([EVENTS.md](../../website/EVENTS.md) §I) is for a step that has
|
||||
failed, and a step waiting out `retryAfterMs` is still pending ("a pending step cannot be retried", even with
|
||||
the run paused). It is not needed either: DT's warm-up is fifteen minutes, so the automatic retries succeed by
|
||||
the third attempt (W20, found in the end walk).
|
||||
- **Feed and triggers.** *"A Dangerous Treasures event started at K12"*; *"Alice won the treasure at K12"*;
|
||||
ended is staff-only. `rust.dt.started` and `rust.dt.won` are triggers (§14.3.9).
|
||||
- **A column and a title**, `treasureswon`, default *Treasure Hunter* (D375).
|
||||
@@ -2996,7 +3002,7 @@ both go when the zone lasts out; cargo's ring for the ship's life; one of our zo
|
||||
the column and category.
|
||||
|
||||
**Walk rows.** On Oxide: start each difficulty from a run; start one in the first minutes after a restart and
|
||||
see *"not ready yet"*, the automatic retry and the manual retry; win one and see the line, the column and the title.
|
||||
see *"not ready yet"* and the automatic retry; win one and see the line, the column and the title.
|
||||
On Carbon: the step refused with Rust-Plugins#34 (until D363 clears).
|
||||
|
||||
> **Built on 2026-10-15** (§14.3.18), specified in PROTOCOL.md §20.8. The key's join, how a start that opened
|
||||
|
||||
Reference in New Issue
Block a user