docs(rust): console commands as event steps and rewards (§16, D382-D384) #358

Merged
whitlocktech merged 1 commits from docs/rust-command-steps into main 2026-10-16 07:18:34 +00:00
Member

What

A new item in modules/rust/PLAN_REDESIGNS.md, §16, approved by the org lead on 2026-10-16: an event can run console commands an admin types. That lets a plugin with no first-class support be used from the event scheduler (for example RaidableBases' rbe as a step, or sr add {steamid} 100 as a reward), so we don't have to write an integration for every small plugin.

  • rust.command.run, Run console commands: runs up to 10 commands once, on one server. Optional teardown commands run when the run ends or is cancelled; the ledger keeps a copy of them.
  • rust.command.reward, Reward by console command: runs the commands once per recipient, using the kit reward's tally and recipient picker. The bridge fills in {steamid} and {name}, with the name passed as one quoted argument.
  • Both steps are irreversible, both need the "I am sure" toggle, and both are priced in a new rust.commands budget. Like every world-changing step they are off until an admin switches them on, and only an admin can author them.
  • Wire: a command.run frame and POST /commands/run. They join protocol 14, which is still unreleased on edge. The bridge gets an at-most-once key file, so a retried step never runs a command twice. If the server doesn't know a command, the step fails as unknown-command at the first "not found".
  • Core is not changed: the text box is the existing multiple string field (MODULE_API 1.14.0).

Decisions (§16.7)

  • D382: the item itself, as two Module-Rust actions within the event system as it stands.
  • D383: offline recipients are skipped and named in the step's detail, not held until they log in ("for now").
  • D384: no allowlist; the admin types the commands into a free text box.

§16.6 lists the points settled in the plan, which can still be overruled: the text box being an entry box rather than a multi-line one, one server per step, the limits, the placeholders, no player notification, and building this before RaidableBases. §16.8 is the single build stage (Rust-Plugins, Rust-Link, Module-Rust, docs). §16.9's walk rows join the end walk (D331).

Pointers were added to the status paragraph, the summary table, §9 (item 10 and the end walk) and §10.

  • AI-assisted: written with Claude Code (Claude Opus 5.5)

🤖 Generated with Claude Code

https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY

## What A new item in `modules/rust/PLAN_REDESIGNS.md`, **§16**, approved by the org lead on 2026-10-16: an event can run console commands an admin types. That lets a plugin with no first-class support be used from the event scheduler (for example RaidableBases' `rbe` as a step, or `sr add {steamid} 100` as a reward), so we don't have to write an integration for every small plugin. - **`rust.command.run`, *Run console commands*:** runs up to 10 commands once, on one server. Optional teardown commands run when the run ends or is cancelled; the ledger keeps a copy of them. - **`rust.command.reward`, *Reward by console command*:** runs the commands once per recipient, using the kit reward's tally and recipient picker. The bridge fills in `{steamid}` and `{name}`, with the name passed as one quoted argument. - Both steps are `irreversible`, both need the "I am sure" toggle, and both are priced in a new `rust.commands` budget. Like every world-changing step they are off until an admin switches them on, and only an admin can author them. - **Wire:** a `command.run` frame and `POST /commands/run`. They join protocol 14, which is still unreleased on `edge`. The bridge gets an at-most-once key file, so a retried step never runs a command twice. If the server doesn't know a command, the step fails as `unknown-command` at the first "not found". - **Core is not changed:** the text box is the existing `multiple` string field (MODULE_API 1.14.0). ## Decisions (§16.7) - **D382:** the item itself, as two Module-Rust actions within the event system as it stands. - **D383:** offline recipients are skipped and named in the step's detail, not held until they log in ("for now"). - **D384:** no allowlist; the admin types the commands into a free text box. §16.6 lists the points settled in the plan, which can still be overruled: the text box being an entry box rather than a multi-line one, one server per step, the limits, the placeholders, no player notification, and building this before RaidableBases. §16.8 is the single build stage (Rust-Plugins, Rust-Link, Module-Rust, docs). §16.9's walk rows join the end walk (D331). Pointers were added to the status paragraph, the summary table, §9 (item 10 and the end walk) and §10. - [x] AI-assisted: written with Claude Code (Claude Opus 5.5) 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
wtclaude added 1 commit 2026-10-16 07:15:37 +00:00
- PLAN_REDESIGNS §16: two Module-Rust actions within the event system
  as it stands. `rust.command.run` runs typed console commands once on
  one server, with optional teardown commands; `rust.command.reward`
  runs them once per recipient from the run's tally, with {steamid}
  and {name} filled in by the bridge. Both irreversible, both behind
  an "I am sure" toggle, priced in a new `rust.commands` budget.
- The wire: a `command.run` frame and POST /commands/run, joining the
  unreleased protocol 14; an at-most-once key file in the bridge;
  `unknown-command` stops a step at the first "not found".
- D382 (the item), D383 (offline recipients skipped, not held),
  D384 (no allowlist: a free text box). Settled-and-overrulable
  points, the build order (one stage, before RaidableBases), and the
  walk rows, which join the end walk.
- Pointers in the status paragraph, the summary table, §9 and §10.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
whitlocktech merged commit 1d6eb55fec into main 2026-10-16 07:18:34 +00:00
whitlocktech deleted branch docs/rust-command-steps 2026-10-16 07:18:34 +00:00
Sign in to join this conversation.
No description provided.