diff --git a/modules/rust/PLAN_REDESIGNS.md b/modules/rust/PLAN_REDESIGNS.md index 8742d56..fc0e32c 100644 --- a/modules/rust/PLAN_REDESIGNS.md +++ b/modules/rust/PLAN_REDESIGNS.md @@ -11,7 +11,7 @@ chose neither route: Runic Gateway writes its own NPC plugin, RunicNPC, planned [`../../runicnpc/PLAN.md`](../../runicnpc/PLAN.md) (D214–D314), and the rest of this plan waits for it.** RunicNPC v1.0.0 shipped on 2026-10-09, and the plan resumed with §2 the same day (D331–D334); §2 was built on 2026-10-12, and §11's Economics spike the same day raised D335–D336 (§11.2.1). Economics was built on 2026-10-12 too (§11.2.4). The Backpacks spike followed and raised D337–D339 (§11.3.1), and Backpacks was built the same day (D340, D341, §11.3.4). The org lead then added permission rewards (§12, -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. **Every item left is built, tested and PR'd first; every walk — +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). **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).** This is a companion to [`PLAN_FIXES.md`](PLAN_FIXES.md) and [`PLAN.md`](PLAN.md). Where they disagree, this @@ -925,7 +925,7 @@ pulls) is research, not a walk, so it still comes first: 7. **The first-class optional plugins** (§11): Economics, then Backpacks, then RaidableBases, each starting with its source pull and rig spike. Economics and Backpacks were built on 2026-10-12. **RaidableBases waited for the current paid copy (D347)** and is built for both editions (D348). **The copy arrived on 2026-10-16 - and was spiked on both rigs the same day (§11.4.2)**, with D386. Its build waits for Q33–Q36. + and was spiked on both rigs the same day (§11.4.2)**, with D386. Q33–Q36 were answered the same day (D387–D390). 8. **Permissions as event rewards** (§12), built on 2026-10-12. 9. **Rust's own world events and six more optional plugins** (§13, §14). First comes one test phase covering all of them on both rigs (§14.2, D352); **it ran on 2026-10-14 (§14.2.1)**. Then one integration plan, @@ -1105,6 +1105,10 @@ The org lead answered §14.3's Q26–Q32 on 2026-10-14: | **D381** | **Server Rewards is taken off the plan** (org lead, 2026-10-16: *"I do not want it"*). Stage 8 is not built. Gone with it: `integrations.serverRewards`, `points.pay` / `balances` / `adjust` and the sidecar's three routes, the tally's `points`, the step `rust.points.pay` and its budget, the `rust_player_points` table, staff add and take, the app's RP balance, and the *Hoarder* title and its column. It amends D350 (five plugins, not six), D369 (its wipe half now covers ZLevels only), D375 and D377 (no *Hoarder*). Nothing had been built. §14.2.1's test findings stay as a record. | Building §14.3.7 as planned. | 14, 14.3.7, 14.3.11 | | **D386** | **RaidableBases' names come from the installed plugin, never from our code** (org lead, 2026-10-16, during the paid spike: *"it has to be loaded from the plugin because people can have different ones and even ones they created themselves"*). Difficulty names and levels, profile names and base names are read at run time and carried as the plugin's own strings, with the plugin's level int. No list of them is written into the plugin, sidecar, module or site, and tests use invented names. The same goes for the plugin's internal types: `RaidableType` is bound by name. This amends D202 and D205 (*"the paid edition offers its five"*): the step offers whatever the installed copy lists. | The five built-in difficulties as a fixed list, with *Normal* for the free edition. | 11.4.2, 11.4.3 | +| **D387** | **A spot spawn takes the helper's route on both editions whenever the helper is installed (Q33).** The paid edition's own `SpawnRandomBase` is used only without the helper: it gives a position and a difficulty, but no height, no overrides and no area check, and the step says so. One spot path is built and tested for both editions. | The paid call whenever it exists, with the helper adding only the tag and overrides. | 11.4.2, 11.4.5 | +| **D388** | **The area check refuses for buildings, deployables, raid bases, players and water; rocks and cliffs are a warning (Q34).** The plugin's own reason is read from its message queue and shown in the editor and the run log, and a spot with only rocks or cliffs near it still spawns. This amends D208. | Refusing on every reason the plugin gives (D208 as written); advice only. | 11.4.2, 11.4.5 | +| **D389** | **"In water" is refused unless the chosen profile is built for it (Q35):** its seabed chance is above 0, or it allows bases to float above water. Both are read from the profile the step picked. This amends D208. | Always refusing water. | 11.4.2, 11.4.5 | +| **D390** | **Lockouts are dropped from the feed (Q36).** Neither edition raises a hook for them. On the paid edition the feed gains a line when a player buys a base (`OnRaidableBasePurchased`) and when an admin locks one to a player (`OnRaidableBaseLocked`), naming the player only for the presence audience (D376). This amends D202. | Dropping them with no new lines; reading lockouts out of the plugin's data by reflection. | 11.4.2 | Console commands as event steps and rewards, added on 2026-10-16, were decided as D382–D384, and D385 during the build; they are tabled with their section, in §16.7. @@ -1606,8 +1610,8 @@ and remove every base at once. §11.4.3 asks which way to go. **RaidableBases was deferred until the org lead supplied the current paid copy (D347). Runic Gateway supports both editions as far as each allows (D348).** The current copy arrived on 2026-10-16 and was spiked on both rigs the same day ("The current paid copy, spiked" below). **Its names are the operator's: every difficulty, -profile and base name is read from the installed plugin, never written into our code (D386).** Code waits for -Q33–Q36. +profile and base name is read from the installed plugin, never written into our code (D386).** Q33–Q36 were answered +the same day (D387–D390). The only paid copy at hand on 2026-10-14 was **3.0.5, from 2025-05-03** (`IsPremium()` returns `true`). By then uMod's free edition was **3.2.2**; the spikes above ran on 3.2.0. The org lead asked for the free source to be @@ -1818,6 +1822,8 @@ names. Nothing reads it: *Warlord* counts from the bridge's own `Completed` (wit ##### Questions (Q33–Q36) +**All four were answered the same day with the proposed option (a): D387–D390** (§10). The build may start. + - **Q33: on the paid edition with the helper installed, which route spawns at a spot?** For example, an admin's Saturday event places a Hard base at x 650, z 2037, 5 m up, with no NPCs. - (a) **The helper's route on both editions** whenever the helper is installed, and the plugin's call