Merge pull request 'docs(rust): stage 7 built — ZLevels (PROTOCOL §20.10, PLAN_REDESIGNS §14.3.20)' (#354) from docs/zlevels into main

Reviewed-on: #354
This commit is contained in:
2026-10-16 06:10:06 +00:00
2 changed files with 58 additions and 1 deletions

View File

@@ -930,7 +930,7 @@ pulls) is research, not a walk, so it still comes first:
answered before code: **written on 2026-10-14 as §14.3**, from D361–D369, and answered as D370–D376. Then the
build, in §14.3.11's nine stages (two of them core), §13 first. **Stage 1, §13, was built on 2026-10-15
(§14.3.14)**, with D378 and D379. **Stage 2, core's `retryAfterMs` (MODULE_API 1.15.0), was built on
2026-10-15 (§14.3.15).** **Stage 3, TruePVE in the zone step, was built on 2026-10-15 (§14.3.16)**, and **stage 4, Dynamic PVP, the same day (§14.3.17)**, and **stage 5, Dangerous Treasures, the same day (§14.3.18)**, and **stage 6, Guarded Crate, the same day (§14.3.19).**
2026-10-15 (§14.3.15).** **Stage 3, TruePVE in the zone step, was built on 2026-10-15 (§14.3.16)**, and **stage 4, Dynamic PVP, the same day (§14.3.17)**, and **stage 5, Dangerous Treasures, the same day (§14.3.18)**, and **stage 6, Guarded Crate, the same day (§14.3.19)**, and **stage 7, ZLevels, the same day (§14.3.20).**
**Then one walk, on Oxide and Carbon, of everything still owed (D331):** §2.7; §11's rows; §12.9; §13's and
§14's rows; the in-game rows
@@ -2652,6 +2652,8 @@ dropped. D369 still holds in what remains: nothing is done at a wipe.
**Walk rows.** Lend `vip2` from a run and see the XP rate change at once, and back at the run's end.
> **Built on 2026-10-15** (§14.3.20), specified in PROTOCOL.md §20.10, as planned here.
#### 14.3.7 Server Rewards (D369)
It mirrors §11.2.2 (Economics) wherever Server Rewards allows, and the code shares Economics' path where the two
@@ -3178,6 +3180,35 @@ the sidecar and the site are §14.3.5's walk rows, at the end walk (D331, D359).
placement raising no airdrop line; `gcrate stop all` taking a crate off the map; and a crate's guards killed by
a RunicNPC NPC, which clears it for nobody.
#### 14.3.20 Stage 7, built: ZLevels Remastered (2026-10-15)
Built in Rust-Plugins and Module-Rust as §14.3.6 planned it (D374), specified in
[PROTOCOL.md](../../rust-link/PROTOCOL.md) §20.10. **No Rust-Link change**: the sidecar forwards hello whole.
`PROTOCOL_VERSION` stays 14. Builds: Rust 25902425, Oxide 2.0.7830, Carbon 2.0.262, ZLevels Remastered 3.3.1 on
both rigs, each the newest.
**What was built:** hello's `integrations.zLevels` (`{ loaded, version }`, found by the plugin name
`ZLevelsRemastered`); hello sent again when ZLevels loads or unloads; `rg.world` prints `zLevels=`; and Server
settings' plugin line: *"ZLevels 3.3.1 is loaded — an event may lend its XP boosts (zlevelsremastered.vip1 to
vip3) as permissions."* No level is read and nothing is stored.
**Settled in the code, and overrulable:**
1. **The plugin line names the three VIP permissions as ZLevels ships them.** An operator who renamed them in
ZLevels' config sees the shipped names on that line; the lend step's picker lists whatever ZLevels really
registered (§12.2), so nothing is lent wrong.
2. **The ZLevels group names** (`zlevelsvip1`–`3`, ×5–×7) are not mentioned. They are groups, and a run lends
permissions, not groups.
**Tests.** No new automated test: the servers page's lines are in a `.jsx` file the client's runner cannot
import, as §14.3.16–§14.3.19's were, so the line is checked at the walk. Full suites: Module-Rust server 643/643
and every check (imports, bundle, swagger, engagement), client 95/95, the build and externals; Rust-Plugins'
`checkPlugin.js` (84 hooks) and its 18 tests. On both rigs the bridge compiled and loaded, and `rg.world` read
`zLevels=absent`, then `zLevels=3.3.1` once ZLevels loaded, then `zLevels=absent` once it was removed. Both rigs
were then cleaned of ZLevels and its files, and put back on the protocol-13 bridge.
**Walk rows** are §14.3.6's, with one more: Server settings' line for a server with and without ZLevels.
### 14.4 Questions for the org lead
**Answered on 2026-10-14:** Q17 as proposed, out (D358). **Q18 against the proposal: the end walk waits for

View File

@@ -3374,3 +3374,29 @@ events like any other.
server reports Guarded Crate or a row counts one (`guardedCrate: true` on the answer).
- The map draws a running event on the world layer. Server settings' plugin line names Guarded Crate and
NpcSpawn, the events, and whether a step can place one.
### 20.10 ZLevels Remastered — hello only (§14.3.6, D369, D374)
nivex's **ZLevels Remastered** (3.3.1, uMod), optional like Economics (D199) and not in `overlay.toml`. It
levels six gathering and crafting skills. **The bridge only says whether it is loaded.** No level is read,
nothing goes on the wire for it, and the site stores nothing: the leaderboard is not changed for it (D374),
and nothing is done at a wipe (D369). The design is [`PLAN_REDESIGNS.md`](../modules/rust/PLAN_REDESIGNS.md)
§14.3.6, and the stage-7 record is §14.3.20 there.
**Hello and status.** `integrations` gains `zLevels`:
```json
"zLevels": { "loaded": true, "version": "3.3.1" }
```
Hello is sent again when ZLevels loads or unloads. `rg.world` prints `zLevels=` (its version, or `absent`).
**Its XP boosts need nothing here.** ZLevels' VIP XP multipliers are its own permissions
(`zlevelsremastered.vip1`–`vip3` as it ships, ×2–×4) and it reads them on every gain. So the site's
*Permissions until the event ends* step (`PLAN_REDESIGNS.md` §12.4) lends one, pushed in `perm.sync` like a
kit reward (§20.2), and it takes effect at once.
**The sidecar** forwards hello whole, as before; nothing in it changed.
**The website (Module-Rust).** Server settings' plugin line says whether ZLevels is loaded and, where it is,
that an event may lend its XP boosts as permissions. Nothing else reads the field.