OpenTTD
Open-source transport simulation game with servers
OpenTTD is a free, open-source business simulation game inspired by Transport Tycoon Deluxe. It includes a dedicated server mode for hosting multiplayer transport empire games.
Key features
- Dedicated multiplayer server
- Transport tycoon gameplay
- Extensive mod and NewGRF support
- Cross-platform
Pros & cons
Strengths
- Very lightweight server
- Active modding community
Trade-offs
- Niche genre
- Server setup is command-line
OpenTTD replaces
Last reviewed Aug 26, 2026 · 852 words
Every OpenTTD server that "nobody can join" has the same cause: a NewGRF set on the server that the clients do not have, byte for byte, in the same order. Get that one thing right and the rest of hosting this 2004-vintage transport game is a 256 MB process that a Raspberry Pi could run for years. Get it wrong and your friends see a red error and give up before the first train.
The server is the game binary in headless mode
There is no separate server package. The same openttd executable started with -D runs as a dedicated server with a console instead of a window. On Debian and Ubuntu, apt install openttd openttd-data installs both; on other systems download the official build from openttd.org. The data package holds the free OpenGFX graphics, which the server needs even though it never draws anything.
openttd -D -c /srv/openttd/openttd.cfg -g /srv/openttd/save/autosave.sav
-c points at a config file and -g loads a savegame; leave -g off and it generates a new map from the settings in the config. Run it under systemd or in a container with the config and save directories on a volume, and give it a screen or tmux session if you want the console interactive. Several community Docker images exist and they all amount to this same command with the version pinned.
Ten config lines do most of the work
The [network] section of openttd.cfg is where a server is actually configured. server_name is what the public list shows, server_password keeps it private, max_clients and max_companies cap the room, rcon_password enables remote console commands, and server_admin_port (default 3977) is for admin bots. The game itself listens on TCP 3979, so open that port if you are hosting from home.
Two settings decide whether a long game survives real life. pause_on_join stops the clock while a client downloads the map, and min_active_clients pauses the game entirely when fewer than that many people are connected, so the economy does not run for three weeks while everyone is at work. Set min_active_clients = 1 for a friends server. Autosave frequency lives in the [gui] section; I keep it at monthly game-time and keep the last 10 files, because a corrupt save is the one failure that costs you the world.
NewGRFs must match, and invite codes fix NAT
NewGRFs are the modding format: new vehicles, industries, towns, terrain. The server's active set is stored in the config and in every save, and each connecting client must have the identical files, which is why the failure mode at the top of this page happens. The fix is procedural. Decide the NewGRF list up front, install every file through the in-game content downloader (which pulls from the official BaNaNaS service so the checksums match), copy the resulting [newgrf] section into the server config, and tell players to download the same list from the content service before they connect. Changing NewGRFs on a running game is unsupported and will usually break the save, so treat the list as frozen once the first company is founded.
If your server is behind a home router and you do not want to forward a port, OpenTTD's game coordinator (introduced in version 12) hands each server an invite code and can relay traffic for NAT-bound hosts. Players enter the code instead of an address. It costs a bit of latency compared with a direct connection, and it needs the server to reach the coordinator outbound, but it removes port forwarding from the checklist entirely.
Resource use is tiny until the map is not
A 256 by 256 map with 4 players idles at a few percent of one core and about 100 MB. A 2048 by 2048 map with 15 companies and 2,000 vehicles is a different program: the pathfinder eats a full core and the save file passes 20 MB, so joining players wait a minute for the download and pause_on_join becomes essential. Pick the map size for the number of players you actually have. The server does not scale across cores, so a fast single core beats a many-core box, which makes this a rare service that is happier on an old desktop than on a used server from the enterprise hardware guide.
Backups are the save directory. Copy it nightly with everything else and you can rebuild the whole server from a fresh install in five minutes.
What I'd do
Install from the distro package or an official build, run it under systemd with -D, set server_password, min_active_clients = 1 and monthly autosaves, freeze the NewGRF list before anyone plays, and use an invite code rather than forwarding 3979 unless latency matters. Put the save folder in your normal backup. If you want a control panel for this and other game servers, Crafty Controller and similar tools in the games category are the wrong shape for OpenTTD; the console and a config file are all it has ever needed.
Compare OpenTTD
2 head-to-head comparisons.
Similar game servers apps
Mindustry
Game ServersTower-defense and factory game with servers
Replaces Factorio
Lichess
Game ServersOpen-source chess server and platform
Replaces Chess.com
OpenRCT2
Game ServersOpen-source remake of RollerCoaster Tycoon 2
Replaces RollerCoaster Tycoon
papermc-docker
Game ServersContainerized Minecraft Java server image
Replaces Minecraft Realms
ArchiSteamFarm
Game ServersTool for farming Steam cards from multiple accounts
Replaces Idle Master
2048
Game ServersSelf-hostable browser version of the 2048 sliding puzzle
Replaces Mobile puzzle games