What It Is
Every release includes webserver, a single binary we call the GameCP. It is two things at once: the public website your players use, and the control panel you run the server from. There is nothing else to install, no PHP, no separate admin tool and no second database.
It is the same panel on every game we publish files for. What differs between them is the settings list behind it, not the pages.
It is optional. A server runs perfectly well without one, and players can create accounts through the launcher instead. Run it when you want a public front door.
What Your Players Get
- Accounts. Register, sign in, change a display name or a password, and see the characters on the account. The same account works in the game and on the site, because both read the same accounts database.
- Live status. Whether the server is up, how many people are online and the split across the factions.
- A game database. Items, monsters, NPCs, skills, forces, quests, stores and maps, searchable, drawn from your server's own content. On the RF versions the icons and readable names come out of your own client, which item icons and names covers.
- A live map of who is where, for the worlds you leave visible.
- News, written by you from the panel.
- A leaderboard and player profiles.
- Support tickets. A player opens one from their account page and your staff answer from the panel. No email, no third-party helpdesk.
- Downloads and client patching. The
client/directory is served for the launcher to patch from, which the launcher page covers from the player's end.
What You Get
An Admin link appears in the header once the signed-in account holds an Administrator grant on this game, and there is no way in without one: every page behind it re-checks the level on the request rather than trusting the browser.
| Area | What it does | Level |
|---|---|---|
| Overview | Live server state, a setup checklist of what a new server still needs, recent activity. | Administrator |
| Live | Every character online and which map they are on, a kick for each, the last day of player counts, and the game's event timers (the Chip War's next battle on 2.2.3.2). | Moderator |
| Accounts | Search accounts, read login and address history, support tickets, ban, unban, kick, force a password reset. | Moderator upward |
| Staff | See who holds a grant, and change it. | Administrator to read, Super Administrator to change |
| Settings | Every server setting this game exposes. | Administrator to read, Super Administrator to change |
| Server controls | Reload settings, announce to everyone online, start a graceful shutdown. On 2.2.3.2, restart with a countdown, and call a countdown off. | Administrator |
| Events | On 2.2.3.2, time-boxed rate boosts such as a double EXP weekend: they start and end on their own and tell players in game. | Administrator to read, Super Administrator to schedule |
| Rewards | On 2.2.3.2, mail an item or gold to one character or everyone online, with every delivery recorded. | Administrator to read, Super Administrator to send |
| News | Write, edit, categorise, publish and trash articles. | Administrator |
| Tickets | The support queue: assign, reply, close. | Moderator |
| Credits | The account credit ledger, with every adjustment recorded against a reason. | Administrator to read, Super Administrator to change |
| Game Data | Edit the server's game data as spreadsheets. On 2.2.3.2 today, see Game Data Editor. | Administrator to read, Super Administrator to save |
Making the first admin account needs no database tooling. On its first start, while nobody is staff yet, the panel prints a one-time bootstrap password. GM accounts covers the five levels, that bootstrap flow, and how to promote everyone else.
It Is Your Site
The panel ships whitelabel. Nothing in the binary advertises us to your players, and the parts that say whose server this is live in a settings table in your own game database, editable from Admin -> Site Settings: the site name, the accent colours, your chat link, your download mirrors, the address you publish release notes at, and the footer credit.
Every one of those starts empty, which means "use the built-in default". Blanking a value later puts the default back rather than leaving a hole, and a value that does not make sense is ignored rather than rendering a broken page.
The Settings Behind It Vary by Game
Everything above is the same wherever you run it. The Settings page is not: it lists what that particular game exposes, and the games differ in what there is to expose. Rates, world visibility, the GM command controls, the anti-cheat toggles and the game-specific systems are all per game, and some of them exist on one version and not on the next.
We are documenting those option by option, per game, and it is not finished yet. Until it is, the Settings page is the reference: every setting carries its own description, its default and its range in the panel itself, which is the copy that cannot go stale.
Starting It
On Windows, open GoMMO_Manager.exe at the top of the archive and press Start on the Web Server row. That is the whole procedure, and Services and tools covers the rest of what that window does, including Show Admin Password, which is how you claim the first admin account. An archive with no manager starts the webserver from start-server.bat alongside the gameserver.
By hand, from the archive root:
server/linux/webserver -http :8080
Then open http://localhost:8080. On Windows it is server\windows\webserver.exe with the same flag.
Run it from the archive root. It finds settings.cfg (or settings/settings.cfg) by looking in the directory it was started from, the directory holding the executable, and the two above that, so it finds the archive's own settings from either place. Copied or started anywhere else it finds none, and rather than refusing it serves the site with no database at all: no accounts, no login, and a startup line reading no settings.cfg found; running without a database instead of the bootstrap password. If the console does not say loaded settings near the top, that is what happened.
-http serves plain HTTP on the port you name and turns off TLS. That is the right mode for local testing, and also for a real deployment where something else terminates TLS in front of it.
Certificates
With no -http flag and a real hostname configured, the panel obtains and renews its own certificate from Let's Encrypt, serves HTTPS on 443, and redirects 80. There is no certificate tool to install and nothing to renew by hand.
Set the hostname as TLS_DOMAIN in settings.cfg. It is the only setting that turns HTTPS on:
[webserver]
TLS_DOMAIN your-server.example.com
On Windows, GoMMO Manager reads the same line. With TLS_DOMAIN empty it starts the site as plain HTTP on its website port (8080 unless you changed it); with a hostname there it starts it on 443 and 80 instead, and its Open Control Panel and Check Ports follow. Server Settings in the manager sets the line for you.
There is no half-working state here, so read this before you start it without -http. It decides once, at start, on the hostname alone. If it looks like a real public name, it commits to Let's Encrypt: HTTPS on 443, and port 80 answering the certificate challenge and redirecting everything else. If the hostname does not resolve to the machine, or ports 80 and 443 do not reach it, the certificate never arrives and the site stays unreachable. It does not fall back to plain HTTP. Use -http until both of those are true, then take it off.
The names it does not treat as public are the ones it cannot get a certificate for anyway: empty, localhost, anything with no dot in it, and a bare IP address. Those start plain HTTP on port 80 with no TLS at all.
Behind a Reverse Proxy
If you already run nginx, Caddy or similar, use -http on a loopback port and proxy to it. Pass X-Forwarded-Proto through: the panel reads it to decide whether to mark session cookies secure, and without it a player behind your proxy is issued a cookie that the browser will send over plain HTTP.
How It Knows the Game Is Up
It does not guess from the database, and it does not merely report that it is itself running. The game server exposes a small status channel on a loopback address, and the panel polls it about once a second. If the game server stops, the site says so within a few seconds, and it says why.
That channel is bound to 127.0.0.1 and nothing else. It publishes no credentials, but it does publish player counts, and a mistyped address in a config file cannot expose it.
News, and Where Release Notes Live
News articles are stored in your game database and written from Admin -> News, in markdown, with categories you control. They belong to your server: they come back with a database restore, they do not leak between two installs sharing a machine, and publishing one is a button rather than a file copied onto a box you may only have a web login to.
The panel deliberately does not carry the software's release notes. Those describe the build rather than your server, every operator running that build shares them, and a copy per server is a copy per server to keep true. Ours are on this site, under changelog. To point your players at them, set the release notes address in Site Settings. To write about changes that are yours alone, file them under a news category of your own.
It Also Serves Client Updates
The panel is what pushes client changes to your players. It serves the client/ directory at /downloads/client/ and its index at /downloads/client/manifest.txt, and each player's launcher fetches whatever differs from what they already have.
The consequence worth knowing here is the one-liner: no website, no client updates. Everything else about it, including how to rebuild the index and how to drive the updater from the command line, is on Client updater.