Skip to content

docs: README walks a mod author from the template to a signed release - #3

Merged
thesprockee merged 3 commits into
mainfrom
docs/readme-walkthrough
Oct 28, 2026
Merged

thesprockee merged 3 commits into
mainfrom
docs/readme-walkthrough

Conversation

@thesprockee

@thesprockee thesprockee commented Oct 26, 2026 •

Copy link
Copy Markdown
Member

README walkthrough for a mod author, end to end (work item 3), including how a release reaches signing. Stacked on #2 (base feat/release-draft, which is itself on #1): merge #1, then #2, then this.

What changes

  • Intro and section 1: credits step (README + NOTICE + Co-Authored-By), and a new subsection "Already started from an older copy of this template?" listing exactly which files to take and which to keep.
  • Section 2: just verify is the gate (what it runs, what it needs, just fmt), the build stamp in one paragraph, and a new "Hooking the game" part (check bytes, never hook what nEVR hooks, prefer a hook to a byte patch, work out another project's patch yourself and credit it).
  • Section 4 rewritten: tag -> draft with three files -> maintainer-owned EchoTools copy -> review -> sign -> publish -> launcher. "Getting into the launcher" updated to match.
  • Rules: keep the licence of anything you copy, and credit it.

No code changes.

Checked against a real mod: Aaliyah's tablet

Her repo (reflectionsa/aaliyah-tablet, public, 7792a22) is a copy of this template at 25bf8b2: only 7 files differ from it (CMakeLists.txt: ECHO_MOD_MINHOOK default flipped to ON; LICENSE, README.md, echo-mod.json, her settings sheet, src/mod.cpp). I cloned it into scratch, overlaid #1/#2's tooling on a copy there (nothing pushed, nothing sent to her repo) and ran the gate:

  • just fmt-check before: 18 violations, all in src/mod.cpp. After just fmt:
  • just verify -> exit 0: Ran 5 tests ... OK, Ran 30 tests ... OK, smoke [host log] smoke level 1: NEVR-PLUGIN-BUILD 0.1.0 0000000000000000000000000000000000000000, release check ok. The -Werror build of her mod.cpp is clean.

So her path is: copy the tooling files (the new README subsection), just fmt, just verify. What she would hit, in order:

  1. Formatting: just fmt rewrites her src/mod.cpp (indentation/line breaks only).
  2. NOTICE: the template's has placeholder credits; hers must list babs (nmdurkee), tomski, he_is_the_cat, Xenomega/EchoRelay and EchoTools/evrFileTools, which her README already names. Without editing it, her release zip carries the placeholder.
  3. Credit trailers: her history has no Co-Authored-By, and src/mod.cpp takes its addresses and structure from other projects ("Doom runtime.cpp", "EchoVr-Tablet-Probing", "Probing NOTES.md"). The new AGENTS.md rules ask for the analysis to be written down and the people credited. That is hers to answer, not something I changed.
  4. Her repo is not EchoTools-owned, so what gets signed is an EchoTools copy of it (the README says so). That part of the process is design, not built (see below).
  5. Her two hook sites (CUICanvasInstance::OnLoaded 0x71fc90, CUIBehavior::FireDelegate 0x7269f0): a grep of nevr-runtime origin/main (src plugins tools) for those addresses found nothing. That is a literal-address grep only; whether nEVR hooks them by another route is unchecked, and a signer reviewer will look.
  6. Her README says "Early design stage"; the mod is a log-and-paint prototype. Nothing in the template blocks that.

Design questions about her mod (capabilities, hooks, the settings sheet) are hers; I have not contacted her or touched her repo.

Not verified

  • The part of section 4 about the EchoTools copy, the maintainer who tags, and the owner who signs is the plugin-signing design (Spritz, 2026-10-26: its sections 1, 3 and "What converting your mod takes"), not running code. Open there: who may push v* tags in the copies, and whether the catalogue can read releases from the copy. Correct the text if the process differs.
  • "The launcher picks it up within about 5 minutes" is the sentence the README already had, now after publishing. I haven't measured it.
  • Links: AGENTS.md#credit and #rules-all-of-them-are-checked-or-reviewed exist in the stacked tree; not click-tested on GitHub.

Quest: not applicable (PC-only template).

Co-Authored-By: Andrew Bates a@sprock.io

Update 2026-10-28: main moved, brought up to date by merge

feat/release-draft (#2) now contains chore/standards and origin/main (b53afe8, plugin API 7). Merged it into this branch (merge commit 2e58e5f, a plain fast-forward push, no force-push). README.md merged cleanly. Main added a "Plugin assets (API v7)" section to the README; I read it against the walkthrough and they do not contradict.

just verify                      exit 0
  python3 tests/test_check_pr_title.py   Ran 5 tests ... OK
  python3 tests/test_check_mod.py        Ran 31 tests ... OK

CI on 2e58e5f: build (push and PR) pass, PR-title check pass.

Co-Authored-By: Andrew Bates a@sprock.io

Update 2026-10-28 (2)

Merged feat/release-draft again (merge commit 3c7ba29, fast-forward push) to carry the exports check (#2: an export outside Nvr* is an error). README unchanged. release.yml ran once on GitHub on a throwaway tag (details in #2); the README's "how a release reaches signing" text describes that workflow's real output. CI on 3c7ba29: build (push and PR) pass, PR-title check pass.

Co-Authored-By: Andrew Bates a@sprock.io

Covers making the repo yours with credits, updating an older copy of the template, the
just verify gate, hooking the game, and how a tagged version becomes a draft, is reviewed,
signed and published.

Co-Authored-By: Andrew Bates <a@sprock.io>
feat/release-draft now contains chore/standards and origin/main (b53afe8, plugin
API 7). README.md merged cleanly; main's "Plugin assets (API v7)" section sits
next to the walkthrough and does not contradict it. just verify exits 0.

Co-Authored-By: Andrew Bates <a@sprock.io>
Brings in the exports check (an extra export is an error). README unchanged.

Co-Authored-By: Andrew Bates <a@sprock.io>

* origin/feat/release-draft:
  fix: check_mod refuses exports other than the Nvr* ABI
@thesprockee
thesprockee changed the base branch from feat/release-draft to main October 28, 2026 14:50
@thesprockee
thesprockee merged commit 274feb4 into main Oct 28, 2026
5 checks passed
@thesprockee
thesprockee deleted the docs/readme-walkthrough branch October 28, 2026 14:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant