--- import Base from '../../layouts/Base.astro'; import PageHeader from '../../components/PageHeader.astro'; import GameFeatures from '../../components/GameFeatures.astro'; import Screenshot from '../../components/Screenshot.astro'; import platform from '../../data/platform.json'; import { features, screens } from '../../data/games/uo.mjs'; import { assertGameCoverage } from '../../data/games/index.mjs'; /** * `/modules/uo/` — PLAN.md §16, phase 17. * * The Ultima Online module's own page, and so one of the few marketing pages that may use * that game's words (D63; `GAME_ROUTES` in `checkTerms.mjs`). The feature list is * `games/uo.mjs`, held to the module's declared capabilities by the call below, and the * screenshots are the ones `/features/` showed until this phase — every one tagged with its * game in `screens.mjs` (D67). * * Versions are read from `platform.json`, which `checkFacts.mjs` holds to the module's * release, the installer's bundle and both halves of the bridge. */ assertGameCoverage('uo'); const uo = platform.games.uo; const gitea = `${platform.gitea.base}/${platform.gitea.org}`; const docs = `${gitea}/docs/src/branch/main`; const pieces = [ { role: 'The module', name: uo.module.repo, version: platform.releases['Module-uo'], what: 'Every Ultima Online screen on the site, installed from Admin → Modules.', }, { role: 'The sidecar', name: 'uo-link', version: uo.bundle.sidecar, what: 'Beside the shard, and the only part of the bridge that listens on a network.', }, { role: 'The bridge plugin', name: uo.pluginRepo, version: uo.bundle.overlay, what: `An overlay compiled by ServUO at boot, on ServUO ${uo.bundle.servuoMin} or newer.`, }, ]; const title = 'The Ultima Online module'; const description = 'What the Ultima Online module adds to a Runic Gateway site: live shard status, the ' + 'player-vendor marketplace, the spawn atlas, guilds, houses and more, from a running ServUO shard.'; ---

The uo module turns a Runic Gateway site into an Ultima Online shard’s site, fed live from a running ServUO shard. It was the first module, and the one the seam was cut around: this support was extracted out of the site, and every URL it had before the move it still has.

The shard side is installed with the installer as one bundle — {' '}{uo.bundle.tag}, speaking protocol {uo.protocol} — and the site side is a paste in the admin panel.

The pieces

{screens.map((id) => )}

Setting it up

The documentation’s Ultima Online group starts from connecting a ServUO shard and ends at the reference for every file the bridge reads.