What you get
Everything the platform does
Grouped the way the software is actually divided, because that division is the thing most worth understanding before you install it: the core site is game-agnostic and does not know what a shard is, and everything that does arrives as an installable module.
Today there is one module and it covers Ultima Online, so the second group below is what a UO deployment gets. On a deployment with no module, that group is simply absent and the other four are unchanged.
Community
CoreThe site your players actually use, none of which knows what game you run — though Teams arrive from the installed module rather than being created here.
Teams
Needs a moduleA roster, a leader, a private forum, its own notification streams and a Discord voice channel, all hanging off one group. Core owns every part of that machinery and deliberately cannot create a Team: they arrive from the installed module, which is how a guild inside the game becomes a Team on the site — and why a different game can call them something else without core learning a new word.
See it runningTeam forums
Needs a moduleAnnouncements, discussion threads and replies, with an edit window, post moderation, and abuse reports a member can raise without going through staff first. Forums are an admin switch for the whole deployment, and image uploads stay off until someone deliberately turns them on.
Notifications
On the site, by push and by email, chosen per notification by each person rather than per person by you. The on-site inbox arrives by default and can be switched off; push and email only ever arrive if they were asked for.
Event calendar
What is scheduled, what is happening now, what finished recently, and the results afterwards — with arcs, so a three-part story reads as one thing rather than three unrelated entries. A run that was cancelled says so instead of quietly vanishing. Core owns the whole calendar and can run an event on its own; what an event may do inside a game world comes from the installed module.
See it runningWiki
For the things that outlive a news post — rules, guides, the lore nobody wants to retype in chat. Written in the admin panel, published on the public site.
See it runningNews and newsletter
Four kinds of post — news, five-on-friday, newsletter issues and screenshots — plus CMS pages and a page builder for everything that is not a post at all.
See it runningPlayer self-service
An account area every signed-in person gets, whatever their role: their profile, their linked game accounts, their own characters, their devices and sessions. Staff are players too, so it is the same area for everyone.

Game intelligence
From the installed moduleSupplied by the installed game module, not by the core site. Today that module is module-uo, and this is what it publishes from a live shard.
Live server status
Whether the server is up, who is on it, and how long ago the site last heard from it. When the game is down this page is the thing that says so — the site does not go down with it.
See it runningEconomy and activity
A live feed of what is happening in the world, and the economy underneath it. Every event passes an allowlist before it can reach a public page; staff read a second stream carrying the rest.
See it runningCharacter sheets
Skills, stats and equipment, drawn from the live world rather than from a form somebody filled in. Reachable by the account the character is linked to, and by staff — not by the public.
Points and loyalty boards
The leaderboards the game already keeps, published without anyone exporting a spreadsheet on a Sunday.
See it runningPlayer-vendor marketplace
Every player vendor on the server and what is on it, searchable without logging in to the game. Item names arrive from the world as numeric ids and are resolved against the game's own string table, so they read as names rather than numbers.
See it runningHouses and IDOC decay
Who owns what and where it stands, including which houses are decaying — published while it is still information rather than after it has become a rumour.
See it runningSpawn atlas
A bestiary and spawn map built by reading your shard's own spawn tables, so it describes your server rather than someone else's idea of the game. Regions, landmarks and champion altars come with it.
See it runningChampion boards
Which altars are running, how far along they are, and what turned up.
See it runningGuilds
Guild rosters and standings, kept in step with the game. This is also what fills the Teams primitive above: a guild in the world becomes a Team on the site, with the forum, the notifications and the voice channel that core attaches to one.
See it runningCity governors
Who holds which city, and what they did with it.
See it running




Administration
CoreRunning the place, with a record of who did what.
Roles and permissions
Admin, moderator and player. Admin access is re-checked against the database on every request rather than trusted from whatever the session was issued with, so demoting someone takes effect on their next click and not at their next login.
Moderation and appeals
Decisions carry a written reason, and the person on the receiving end has a documented way to answer rather than a direct message to whoever is awake.
Content reports
Anything a member writes can be reported by another member, into a staff queue with the context attached.
Append-only audit log
Staff actions are recorded, and nothing in the panel can edit or delete the record afterwards. That is worth having on the day you need to prove what did not happen.
Bot scoring and IP bans
Login attempts are scored on behaviour rather than on a puzzle a real person has to solve, and a bad enough score bans the address by itself. The panel is a read view with an emergency unban, deliberately — it is not somewhere to tune a threshold at three in the morning.
Scheduled world events
Author an event as phases and steps, publish a version, put it on the calendar and let it run unattended — with a dry run first that prices the whole plan against this deployment’s caps. Every action arrives switched off, every run has a per-run budget enforced in the database rather than in a role check, and everything an event creates or borrows is written to a ledger so the undo is generated rather than authored. Pause, resume, skip a step or cancel with cleanup, all logged with the person who did it.
Module management
Install, disable, uninstall and purge a module from the panel. Uninstalling keeps the data and reinstalling picks it up where it was; deleting it is a separate, opt-in choice.
The game-server connection
The bridge's address, token and protocol version live in the panel rather than in an environment file, so connecting a server is not a redeploy. The token is encrypted at rest and write-only in the API — it is never returned to any client, including yours.


Integration
CoreThe seams that let other things reach in — and one game reach out.
Modules
The whole game-specific half of a deployment is an installable module: routes, screens, tables and nav rows, versioned against a declared core API. Installing one is a paste in the admin panel or a line in your environment, never a build.
The sidecar bridge
A small service beside the game server, speaking a versioned wire protocol to the site and a loopback socket to the game. It is the only part of the bridge anything can reach over a network, and the game never listens at all.
Discord: slash commands, notifications, voice
A bot for the guild you already have. Commands answer from your site, notifications bridge into channels, and a Team can be granted a voice channel that maintains its own membership.
Mobile and push
A native Android app against the same documented API the website uses, with push delivered through your own ntfy server rather than a vendor in the middle.
SSO over OAuth2 / OIDC
Google, Discord, or any OIDC provider you run. Link-only by policy: an external identity has to be attached to an account that already exists, and signing in with one never creates a user.

Infrastructure
CoreHow it runs, and who it answers to.
Self-hosted, start to finish
There is no hosted tier and no account with us. Every part of this runs on hardware you control, which is the only arrangement under which the rest of the claims on this page mean anything.
Docker, with prebuilt pull-only images
Compose up, compose down. Images are pulled rather than built, so nothing compiles on your server and an upgrade is a pull and a restart.
Branding as data, not a rebuild
Name, colours, logo and contact address are a mounted file. The same image runs as any community — including this site, which is built the same way.
OpenAPI 3.0 for the whole API
The spec ships with the server and an installed module merges its own routes into it, so the API you build against is the API that is actually running.
Not built
Things a reader could reasonably expect, that are not here
Every one of these is a decision rather than a backlog item, so each says why. Where the reasoning was written down in the open, it is linked.
More than one game module at a time
One active module per deployment. The database columns that would scope data to a module exist and are populated, so the door is not nailed shut, but nothing exercises them and no interface offers it. A community running two games runs two deployments.
What would change itSomeone needing it. The schema was shaped to keep it possible, which is a different thing from planning it.
A macOS or Windows-on-ARM installer
Linux and Windows, on x86-64, plus Linux on arm64. The missing builds are missing on purpose: the installer runs on the machine the game server lives on, because the game and the bridge have to share a host, and no game server anybody runs is on either of those platforms.
What would change itA game server that runs there.
A public demo you can click through
Planned and out of scope today: a virtual machine running the whole stack including a game server, with settings locked down and an hourly reset. Until it exists this site does not link to one, and there is no screenshot here of something that is not running somewhere.
What would change itThe machine being stood up. The site is already built to gain it by way of one line in a configuration file, rather than a rebuild.