feat(demo): seed the default set's events, NPCs and chat titles #230

Merged
whitlocktech merged 3 commits from feature/demo-default-events into main 2026-10-27 21:21:06 -05:00
Member

What & why

The demo's default set (org lead, 2026-10-27: "curated showcase") is the starting point every wipe restores. Groups, permissions and members come back from the rig's baseline through the fresh site's first import. Three parts can't come back that way, so they come from the fixture:

1. Events live in the site database, which every wipe drops. Two are added next to "Server greeting":

Event Step Params
Treasure drop rust.dt.start demo, level 0 (Easy)
Payday rust.coins.pay demo, 500 coins, recipients linked, said in chat

2. NPC profiles and factions (DM26). The restored rig's RunicNPC says it is already managed, so a fresh site adopts none of its profiles and its first push empties them. The first three restored wipes (runs 367-369) left bandit-1, bandit-2 and guard-1 at "profile missing". modules.rust.npcs now seeds:

  • the faction pair bandits / guards, allied;
  • bandit: roamer, rnpc_raider;
  • guard: sentry, heavy, rnpc_campguard, heals.

Each body lists only what differs from RunicNPC's defaults.

3. Chat titles (DM26). The import never adopts BetterChat styles. modules.rust.chat seeds [VIP] in gold and [MOD] in green.

Parts 2 and 3 are written by Module-Rust#65 (v0.6.1). A module older than that ignores these keys, so merging this first is harmless; they take effect once v0.6.1 is released.

How it was tested

  • checkFixture (core): no problems. Module-Rust#65's checkSection accepts the npcs and chat parts, and both profile bodies pass npcProfile.checkBody.
  • On the live demo, as demo-admin, both events were created and published through the admin API with exactly these specs: 201 then 200 for each. The same profiles, factions and chat styles were made through the admin API earlier the same day, and the NPCs spawned.
  • Merging this triggers a wipe (a push to deploy/demo/**), which seeds them for real. The NPC and chat parts need v0.6.1 too.

Checklist

  • I have read CONTRIBUTING.md.
  • The change builds and existing tests/checks pass locally.
  • I have added or updated tests/docs where it makes sense.
  • My commits are reasonably scoped with clear messages.

AI-assisted contributions (required)

  • No AI tools were used to produce this contribution.
  • AI tools were used. Tool(s): Claude Code (Claude Opus 5.5). I have reviewed and understand
    every change, and take responsibility for it. AI-authored commits are
    marked with a Co-Authored-By / Assisted-By trailer.

License

  • I agree that my contribution is licensed under this project's license
    (GNU GPL v3.0 or later), and I have the right to contribute it.

🤖 Generated with Claude Code

https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY

## What & why The demo's default set (org lead, 2026-10-27: "curated showcase") is the starting point every wipe restores. Groups, permissions and members come back from the rig's baseline through the fresh site's first import. Three parts can't come back that way, so they come from the fixture: **1. Events** live in the site database, which every wipe drops. Two are added next to "Server greeting": | Event | Step | Params | | --- | --- | --- | | **Treasure drop** | `rust.dt.start` | `demo`, level 0 (Easy) | | **Payday** | `rust.coins.pay` | `demo`, 500 coins, recipients `linked`, said in chat | **2. NPC profiles and factions (DM26).** The restored rig's RunicNPC says it is already managed, so a fresh site adopts none of its profiles and its first push empties them. The first three restored wipes (runs 367-369) left `bandit-1`, `bandit-2` and `guard-1` at "profile missing". `modules.rust.npcs` now seeds: - the faction pair bandits / guards, allied; - `bandit`: roamer, `rnpc_raider`; - `guard`: sentry, heavy, `rnpc_campguard`, heals. Each body lists only what differs from RunicNPC's defaults. **3. Chat titles (DM26).** The import never adopts BetterChat styles. `modules.rust.chat` seeds `[VIP]` in gold and `[MOD]` in green. Parts 2 and 3 are written by **Module-Rust#65** (v0.6.1). A module older than that ignores these keys, so merging this first is harmless; they take effect once v0.6.1 is released. ## How it was tested - `checkFixture` (core): no problems. Module-Rust#65's `checkSection` accepts the `npcs` and `chat` parts, and both profile bodies pass `npcProfile.checkBody`. - **On the live demo**, as demo-admin, both events were created and published through the admin API with exactly these specs: `201` then `200` for each. The same profiles, factions and chat styles were made through the admin API earlier the same day, and the NPCs spawned. - Merging this triggers a wipe (a push to `deploy/demo/**`), which seeds them for real. The NPC and chat parts need v0.6.1 too. ## Checklist - [x] I have read [CONTRIBUTING.md](CONTRIBUTING.md). - [x] The change builds and existing tests/checks pass locally. - [x] I have added or updated tests/docs where it makes sense. - [x] My commits are reasonably scoped with clear messages. ## AI-assisted contributions (required) - [ ] No AI tools were used to produce this contribution. - [x] AI tools were used. Tool(s): `Claude Code (Claude Opus 5.5)`. I have reviewed and understand every change, and take responsibility for it. AI-authored commits are marked with a `Co-Authored-By` / `Assisted-By` trailer. ## License - [x] I agree that my contribution is licensed under this project's license (**GNU GPL v3.0 or later**), and I have the right to contribute it. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
wtclaude added 1 commit 2026-10-27 13:50:48 -05:00
feat(demo): seed two showcase events, Treasure drop and Payday
All checks were successful
PR Checks / client-build (pull_request) Successful in 1m35s
PR Checks / server-tests (pull_request) Successful in 6m41s
PR Checks / bot-tests (pull_request) Successful in 7m14s
9408fee3c1
The demo default set (org lead, 2026-10-27: curated showcase) puts its
permissions and NPCs on the rig, where the baseline restores them; events
live in the site's database, which every wipe drops, so they belong in the
fixture. Both are manual, published, on the demo server:

- Treasure drop: rust.dt.start, Easy.
- Payday: rust.coins.pay, 500 coins to every linked player, said in chat.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
wtclaude added 1 commit 2026-10-27 20:16:34 -05:00
feat(demo): seed the default set's NPC profiles, factions and chat titles (DM26)
All checks were successful
PR Checks / bot-tests (pull_request) Successful in 47s
PR Checks / client-build (pull_request) Successful in 1m8s
PR Checks / server-tests (pull_request) Successful in 12m27s
38aef5964e
The restored rig's RunicNPC says it is already managed, so a fresh site
adopts none of its profiles and its first push empties them; chat styles
are never adopted either. They come from the fixture now, through
Module-Rust's onDemoSeed (needs the release carrying DM26; an older module
ignores these keys):

- npcs.factions: bandits and guards, allied;
- npcs.profiles: bandit (roamer, rnpc_raider) and guard (sentry, heavy,
  rnpc_campguard, heals), both on the demo server. Only the fields that
  differ from RunicNPC's defaults are listed;
- chat: [VIP] in gold and [MOD] in green.

The baseline's placements (bandit-1, bandit-2, guard-1) spawn again once
the site pushes these.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
wtclaude changed title from feat(demo): seed two showcase events, Treasure drop and Payday to feat(demo): seed the default set's events, NPCs and chat titles 2026-10-27 20:17:59 -05:00
whitlocktech approved these changes 2026-10-27 20:21:33 -05:00
whitlocktech scheduled this pull request to auto merge when all checks succeed 2026-10-27 20:21:39 -05:00
whitlocktech added 1 commit 2026-10-27 21:05:47 -05:00
Merge branch 'main' into feature/demo-default-events
All checks were successful
PR Checks / bot-tests (pull_request) Successful in 40s
PR Checks / client-build (pull_request) Successful in 1m8s
PR Checks / server-tests (pull_request) Successful in 12m26s
62eaa7693d
whitlocktech merged commit 47a79d841c into main 2026-10-27 21:21:06 -05:00
whitlocktech deleted branch feature/demo-default-events 2026-10-27 21:21:07 -05:00
Sign in to join this conversation.
No description provided.