What Is in the Archive
The archive is on this game's page. Unzip it anywhere you have write access, and avoid Program Files on Windows: the server writes its database and its logs next to itself, and Windows quietly redirects those writes somewhere you will not find them.
At the top are one program, one file and three folders.
| Item | What it is |
|---|---|
GoMMO_Manager.exe | The Windows front door: starts and stops both servers, shows their consoles, makes your first administrator and takes backups. GoMMO Manager covers it. |
README.md | Half a page: how to start it, and links back to this documentation. The rest of the manual is here, where it can be corrected after you download. |
server/ | The server programs, their config, the game data, and everything they write. Windows and Linux binaries both ship. Services and tools says what each one does. |
client/ | A complete, playable game client with its own launcher. |
database-mysql/ | The schema, for the optional MySQL path. You do not need it to start. |
Everything the server needs lives inside server/: settings.ini, the start scripts, and the data/, scripts/, worlds/ and articles/ folders. db/ and logs/ appear in there on the first run. The shared install page draws settings.ini under settings/ at the top of an RF archive, so if you go looking for it up there you will not find it.
Leave server/ and client/ where they are, side by side. The website serves client patch files out of client/ relative to the folder the server runs from, so moving one of them breaks patching.
Start It
There are two programs: the game server, which takes both the login connection and the game itself in one process, and the website. There is no separate login server.
On Windows, run GoMMO_Manager.exe and press Start on each server. The first time, it opens Server Setup to make your administrator account; the next section has the details.
Without the manager, open server\ and double-click start-server.bat. Two windows open: the game server and the website.
On Linux:
cd server
sh start-server.sh
That makes the binaries executable and backgrounds both. Stop them again with pkill -f 'linux/(game|web)server'.
To run them yourself instead, open two terminals inside server\ and start one in each. The start scripts only set the working directory, because each binary looks for settings.ini and the game data relative to where it is running from rather than next to the executable.
windows\gameserver.exe
windows\webserver.exe -http :8080
The same two on Linux, from server/, after a chmod +x linux/*:
./linux/gameserver &
./linux/webserver -http :8080 &
The game server listens on UDP 26000 for login and UDP 26001 for the game. The website listens on TCP 8080, which is the address the bundled client already patches from.
server/linux/ also holds a systemd unit template for each of the two, if you would rather run them as services.
The first start does more work than the ones after it: the databases get created and the schema applied. The console says so as it happens.
The Database
Nothing to install. The first start creates the database files under server/db/, one per database, from the same schema that ships in database-mysql/. A start that got that far leaves a .db file per database in there, so an empty server/db/ is worth knowing about: it means the server stopped before it reached the database, and the FATAL: line further down says why. To go back to a clean server, stop everything and delete server/db/. It rebuilds on the next start.
MySQL is supported, and suits a server with more players. If you switch to it later, the server copies the accounts and characters you already have into it on the next start and renames the old files out of the way. The switch itself is on the database page.
Switching needs no credentials of your own. The server/settings.ini in the archive is already filled in for a MySQL on the same machine, using the limited user that database-mysql/00_create_databases.sql creates, and the password in those two files is generated when the archive is built. So they already agree with each other, and no two downloads share a password. Load the schema, set DATABASE_PROVIDER = mysql, and start the server.
The server applies the rest of the schema itself, so one file is normally enough. If the MySQL user you have cannot create databases, load every file in database-mysql/ by hand instead, in the order of their numbers, starting with 00_create_databases.sql.
Make Yourself Staff
A fresh install has no accounts and no staff. Two ways get you the first administrator.
- GoMMO Manager. While nobody holds Super Administrator on Classic, it opens Server Setup by itself and creates your account at that level. Its Accounts window does the same at any time, with the servers stopped or running.
- The bootstrap password. While nobody holds Super Administrator on Classic, the website writes a one-time password into
server/settings.ini, under[webserver]asSUPER_PASSWORD, and prints it in its console with the address to sign in at. Open your site and sign in with your own email address and that password. If the email has no account yet, one is created with that password as its real one. Either way the account is now Super Administrator on Classic, and the password is blanked on disk: it works once. A restart while nobody holds the top level prints a fresh one.
After that, use Admin -> Staff on your site for everyone else.
Level 4 is the top of the ladder, and the grant names a game, which is why classicgth appears in it. The five levels, promoting other people and what to do if you lose every admin account are on the GM accounts page. What the commands themselves do is on the GM commands page.
Point the Client at Your Server
GoMMO Manager's Server Setup writes your address into both client files for you. By hand, two files in client/data/ decide where the client goes.
server.cfg is the game server address:
MASTER_SERVER_NUMBER 1
MASTER_SERVER_WEBSITE 127.0.0.1
MASTER_SERVER_PORT 26000
MASTER_SERVER_WEBSITE takes an IP address or a hostname, and a hostname is resolved for you. MASTER_SERVER_PORT is the login port, 26000, not the game port. Leave it at 127.0.0.1 while you are testing on the same machine.
general.cfg is where the launcher goes. update_url is what it patches from, and it ships as http://127.0.0.1:8080, which is where the start scripts and the manager run the website. If you run the website on another port, change it to match.
Players run client/launcher.exe, not client.exe. It brings the client files up to date from your website, signs in, and starts the game. New logins register themselves on first use, so nobody has to be created ahead of time and nothing waits on your approval.
Opening It to Other People
Allow inbound UDP 26000 and UDP 26001 through the server's firewall, and forward them if the machine is behind a router. The website needs TCP 8080 as well, or 80 and 443 once it has a domain and its own certificate. The servers already listen on every interface, so there is nothing to change on that side. GoMMO Manager's Check Ports adds the firewall rules for you; router forwarding can only be tested from outside.
Every player's copy of client/data/server.cfg needs your public address in MASTER_SERVER_WEBSITE, and their general.cfg needs your website in update_url. The configuration page covers the settings.ini side, and the GameCP page covers certificates and running behind a reverse proxy.
Stopping It Safely
Stop the game server first, then the website. Stopping the game server is what saves and disconnects the players who are on.
Character saves are transactional and the game server flushes on shutdown, so a clean stop cannot leave a half-written character.
In GoMMO Manager, press Stop. Otherwise, on Windows, close each window or press Ctrl+C in it. On Linux, if you started them with start-server.sh:
pkill -f linux/gameserver
pkill -f linux/webserver
If you set them up as systemd services, sudo systemctl stop the two units in that same order.
Updating to a New Version
- Back up first. GoMMO Manager's Backups takes one on demand, and the backups page covers the rest.
- Download the new archive and stop the servers, in the order above.
- Replace
server/and itsdatafolder with the new ones, and keep your ownsettings.ini. That file holds your database credentials and your own settings. - Replace
client/wholesale. That is what your players patch from, so their launchers pick the new files up on their next run without anybody downloading anything by hand. - Start the servers again.
Read the release notes before you start: if a version needs anything beyond this, that is where it will say so.
It Did Not Start
A server window that opens and closes in under a second hit a fatal startup error, and it said so before it went. The last console line, and the end of server/logs/history.log, is a line beginning FATAL: that names the cause. Older runs are kept beside it as history.<timestamp>.log.
Three messages account for almost all of them.
The FATAL: line says | What happened | What to do |
|---|---|---|
no settings.ini found | The server was launched from the wrong folder. Double-clicking an executable in server\windows\ does this every time, because the working directory becomes that folder and there is no settings.ini in it. | Use GoMMO Manager or start-server.bat, or run the executable from inside server\. |
failed to connect to ... database | On the default database, server/db/ cannot be written: a read-only folder, a directory you do not own, or a network share. On MySQL, it is not running, not reachable, or the credentials are wrong. | The message names what it tried, either the exact file or the user, host, port and database. Keep the database files on a local disk; a network filesystem corrupts them. |
could not load server configuration | settings.ini is malformed, or the game data is missing. | Compare your settings.ini against the shipped settings.ini.example, and confirm server/data is present and was extracted whole. |
For more logging, set DEBUG = 1 under [general] in server/settings.ini and restart. The default is 0, which logs at info level.
The client keeps its own logs\ folder beside client.exe, separate from the server's. If the launcher stalls rather than the server failing, that is where to look, along with whether the website is running and whether client/data/general.cfg points at it.
When you ask for help, bring server/logs/history.log, the client's logs\ if the client is involved, and what you did immediately before it broke. GoMMO Manager's Support Bundle collects the logs and config with the secrets blanked. The FATAL: line and a run with DEBUG = 1 are usually enough on their own.
If the game starts but the world is empty of monsters, or players cannot get in from outside, the troubleshooting page works through both.