29056ba9968cd7efff96e2538379af9903fe4495
Design of record for a deployment tool that takes a stock ServUO install and configures it for Runic Gateway. Supersedes the informal overview it grew from, which described a ServUO integration that does not match how servuo-plugins actually ships. Corrections that change the design: - There is no RunicGateway.dll and no Plugins/ dir. The plugin ships as C# source compiled by ServUO at boot, so the step is a hash-compare sync of overlay/ -- but a successful copy does not mean a working bridge, because ScriptCompiler.Compile() ignores dotnet build's exit code and reloads the stale Scripts.dll. - Stock ServUO files ARE modified, by three diffs in patches/. Made an opt-in, skippable tier: git apply against a hand-modified shard will fail, and the EventSink.cs patch needs a full core solution rebuild. - Config paths collided with what the sidecar actually reads. Split ownership: sidecar.toml stays the sidecar's schema, install.json is the installer's. Service definitions pin UOLINK_CONFIG and UOLINK_DB_PATH, since the sidecar writes relative to CWD and would land in VirtualStore under Program Files. - The token handoff was missing entirely -- the largest "installed it and nothing happened" failure mode. - deploy.ps1 cannot be the cross-platform deployer; it stays the developer tool. Decisions: public audience, unsigned binaries anchored on SHA256SUMS, Rust, release-tarball plugin distribution, printed token handoff, new installer repo, warn-and-skip on non-57.4 ServUO, and an uninstall that never edits the shard tree -- it prints the files to delete and the hunks to revert. Phases 0-5, with Phase 0 (a release workflow for servuo-plugins, which has none today) gating everything else. Two open questions remain in section 8. Co-Authored-By: Claude <noreply@anthropic.com>
Runic Gateway — Documentation
Central documentation for the Runic Gateway platform. The docs here were extracted from the two code repositories (with full commit history preserved) so they live in one place, independent of either codebase.
Layout
website/ docs from the shard website (Node/Express + MariaDB + React/Vite)
link/ docs from the ServUO bridge (C# plugin + Rust sidecar + Node WS)
android/ docs from the native Android client (Kotlin + Jetpack Compose)
ci/ cross-cutting CI/quality notes
website/
| Doc | What it covers |
|---|---|
| BACKEND_DESIGN.md | API contract, DB schema, security model |
| HERO_EDITOR.md | Hero canvas editor feature spec |
| WIKI_UPGRADE.md | Wiki subsystem upgrade notes |
| SHARD_VISIBILITY.md | Who sees which shard data — the admin-configurable audience framework |
| SPAWN_ATLAS.md | The bestiary / spawn atlas: what the shard contains, parsed from its own ServUO tree |
| CLILOCS.md | UO's id → name table: converting one from your client so items have names |
| UOFIDDLER.md | Operator runbook — step-by-step extraction from your own UO client (cliloc table, creature art) |
| MARKETPLACE.md | The player-vendor index: how it is gathered, what it costs, how to tune it |
| website-README.md | Snapshot of the website repo's README (setup/run reference) |
| PROJECT_TREE.md | Auto-generated snapshot of the repo's tracked file layout |
link/
| Doc | What it covers |
|---|---|
| INTEGRATION.md | How the website integrates with the uo-link sidecar |
| PROTOCOL_2.md | Protocol 2.0 / 2.1 design |
| v3.md | Protocol 3.0 design — shard content/standings streams + the visibility framework |
| ADMIN_CONTROLS.md | Staff write-plane (kick/ban/broadcast, page queue) |
| SHARD_PREREQS.md | Shard-side prerequisites for the bridge |
| PLAN.md | uo-link build plan |
| RESEARCH.md | Research notes |
| link-README.md | Snapshot of the link repo's README |
| PROJECT_TREE.md | Auto-generated snapshot of the repo's tracked file layout |
android/
| Doc | What it covers |
|---|---|
| PLAN.md | Android client build plan / milestones |
| COVERAGE_PLAN.md | Test-coverage rollout plan |
| APP_LINKS.md | Android App Links / deep-link setup |
| theme-plan.md | Theming plan |
| TRUSTED_DEVICES_APP_HANDOFF.md | Trusted-devices app handoff notes |
| PROJECT_TREE.md | Auto-generated snapshot of the repo's tracked file layout |
Provenance
website/*was extracted fromRunicGateway/websiteviagit filter-repo.link/*was extracted fromRunicGateway/linkviagit filter-repo.
Commit history and authorship for each doc are preserved. The two source repos retain a short pointer to this repo in their own READMEs; the authoritative copy of each document now lives here.
License
Runic Gateway's documentation is free: licensed under the GNU General Public License v3.0 or later — see LICENSE.md.
Copyright (C) 2026 Runic Gateway
This documentation is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY. You may redistribute and/or modify it under the terms of
the GNU General Public License as published by the Free Software Foundation,
either version 3 of the License, or (at your option) any later version.
Contributions are welcome — please read CONTRIBUTING.md (note the AI-usage disclosure requirement) and our Code of Conduct.
Description
Languages
Markdown
100%