NEW 📢 Limited launch offer: up to 70% off your first month on every game!See plans

How to host an OpenTTD server (2026)

OpenTTDUpdated Nov 5, 202612 min read

Short answer. You can host an OpenTTD server yourself for free: download the OpenTTD release from openttd.org, add a base graphics set such as OpenGFX (a dedicated server will not start without one), run ./openttd -D and open port 3979 for both TCP and UDP. Or rent an OpenTTD server and skip the networking.

Players open Multiplayer in OpenTTD, press Search internet to find a public server by name, or use Add server with an invite code that starts with + for an invite-only one.

Checked on 5 November 2026 against OpenTTD 15.3 (4 April 2026), the newest stable release. A 16.0 release candidate exists, and a server only accepts players on the same version.

This guide uses OpenTTD's own documentation and what we run on our own OpenTTD servers. To go straight to the rental route, see Option 2.

What you need

  • Operating system: Linux, Windows or macOS. OpenTTD publishes a generic 64-bit Linux build as a .tar.xz archive, which is what the steps below use.
  • Base graphics: OpenTTD needs graphics files to run. The free set is OpenGFX. If you own Transport Tycoon Deluxe, its original files work as well.
  • Network: the game port, 3979 by default, reachable from the internet over TCP and UDP.
  • The game: every player needs OpenTTD, which is open source and free on openttd.org, Steam, GOG and the Microsoft Store. Players must run the same version as the server.

The server software is free. You pay for the machine, power and bandwidth, not the software.

Option 1: host it yourself

This works on a spare PC, a home server or a cloud virtual machine. The server flags come from OpenTTD's multiplayer manual and source code, and the download steps mirror our own install script.

Linux (Debian or Ubuntu)

  1. Install the tools to unpack the downloads.
    sudo apt-get install curl ca-certificates tar xz-utils unzip
  2. Download OpenTTD 15.3 into a folder of its own.
    mkdir ~/openttd && cd ~/openttd
    curl -fsSL -o /tmp/openttd.tar.xz "https://cdn.openttd.org/openttd-releases/15.3/openttd-15.3-linux-generic-amd64.tar.xz"
    tar -xJf /tmp/openttd.tar.xz --strip-components=1
  3. Add the OpenGFX graphics set to the baseset folder inside it.
    curl -fsSL -o /tmp/opengfx.zip "https://cdn.openttd.org/opengfx-releases/8.0/opengfx-8.0-all.zip"
    mkdir /tmp/opengfx && unzip -oq /tmp/opengfx.zip -d /tmp/opengfx
    tar -xf /tmp/opengfx/opengfx-8.0.tar --strip-components=1 -C baseset
    ls baseset/opengfx.obg
    Without a graphics set the server stops at start with "Failed to find a graphics set". The release archive contains only the metadata for the original Transport Tycoon Deluxe files, not the files themselves.
  4. Start the server. The archive brings its own libraries in lib/, so point the loader at them.
    export LD_LIBRARY_PATH=$PWD/lib
    ./openttd -D 0.0.0.0:3979
    -D starts a dedicated server with no window. On Linux, -f runs it in the background and writes output to openttd.log in ~/.local/share/openttd/. With no -g argument it generates a new map.
  5. Set the name, visibility and password by typing into the server console, or in the config files in ~/.config/openttd/ (the name is kept in private.cfg, the password in secrets.cfg).
    setting server_name "My OpenTTD Server"
    setting server_game_type public
    setting server_password "choose-a-password"
    server_game_type takes public (listed), invite-only (joined with an invite code) or local (LAN only). OpenTTD's manual notes that a server must be public to appear in the server list.
  6. Open the port. Allow port 3979 over TCP and UDP in the machine's firewall (with ufw: sudo ufw allow 3979/tcp and sudo ufw allow 3979/udp). Behind a router, forward the same port, again for both TCP and UDP.
  7. Continue a game later. Saves are written to ~/.local/share/openttd/save/. Load one with -g, for example ./openttd -D 0.0.0.0:3979 -g save/mygame.sav. Settings you changed in the console are kept in the config files OpenTTD writes when it exits.
  8. Check it from outside. From another network, open Multiplayer in OpenTTD and press Search internet. If your server is public and does not appear, read the network messages the server prints: -D already turns on the network debug output (-d net=4), and a registered server prints its invite code there.

Windows

Install OpenTTD from openttd.org (the Windows installer can optionally download the free graphics for you), then start the dedicated server from a Command Prompt with "C:\path\to\openttd.exe" -D. Set the name, visibility and password with the same console commands as above, and allow the game port, 3979 by default, over TCP and UDP in Windows Firewall.

Useful server commands

  • Remote console: on the server, set a password with rcon_pw. A player connected to the server then opens their console with the key left of 1 (the backquote key) and types rcon <password> "<command>", for example rcon <password> "kick 5".
  • Load a save from the console: ls lists files with numbers, cd <number> enters a folder and load <number> loads a file.
  • Clean up abandoned companies: turn on autoclean_companies, and a company that no player has been connected to for the number of in-game months in autoclean_protected (36 by default) is removed.
  • Restart the map automatically: restart_game_year starts a new map when that in-game year is reached, and restart_hours after that many hours of play. 0 turns either off.

Option 2: host it on PlayNHost

Renting removes the downloads, the graphics set, the firewall and the port forwarding. The port and the config are set up for you.

  1. Pick a plan. Open the OpenTTD server hosting page and compare the plans (STEAM, DIESEL and MAGLEV at the time of writing). Press Create Server on STEAM or DIESEL, or Customize Plan on MAGLEV, and finish the order. Prices change, so check them on that page.
  2. Wait for the install. You get an email saying your OpenTTD server is ready, and the server appears at panel.playnhost.com. The world is generated on the first start, so if you want a different map size or starting year, set them (step 3) before you press Start. On the Console tab, the panel counts the server as running when it prints PlayNHost: OpenTTD server ready.
  3. Open Settings, then Game Settings. Each of these is written into the server's config when it starts:
    • Server name: the name players search for.
    • Join password: leave it empty for no password. Spaces, double quotes and backslashes are removed from both passwords, so do not use them.
    • Server listing: Listed for everyone, Unlisted, join by code (invite only) or Unlisted, join by address (local).
    • Company limit, Starting year and Map size (256x256, 512x512, 1024x1024 or 2048x2048). Map size and starting year only apply when a new world is generated: to start over with new ones, delete the saves in the save folder under Files and restart.
    • Autosave interval, Pause while empty and Remove abandoned companies.
    • RCON password: the remote console password, if you want one.
    Player slots is shown read only.
  4. Restart. When the panel shows "Saved. The server must restart before these take effect.", press Restart now and wait for the ready line.
  5. Join. Open Multiplayer in OpenTTD, press Search internet and pick your server by name. For an invite-only listing, use Add server and enter the invite code, which always starts with +: the server prints it on the Console tab after Invite code:. Add server also takes the server address instead of a code.

Next steps: How to join your OpenTTD server, How to change the map size, starting year and company limit on your OpenTTD server and How to install NewGRF content on your OpenTTD server.

What the panel does for you

  • Graphics and libraries. The install downloads OpenGFX 8.0 next to OpenTTD 15.3 and checks that the graphics set and the bundled libraries are there, so the server does not stop at first start with a missing graphics set.
  • Keys it rewrites at every start. The panel writes the port, player limit, company limit, listing, pause while empty, abandoned company cleanup, autosave interval, starting year and map size into openttd.cfg, so change them in Game Settings. Other keys you add to that file, such as a NewGRF section, are left alone. Edit it under Files with the server stopped, because OpenTTD writes the file again when it shuts down.
  • Name and passwords. OpenTTD keeps the server name and passwords outside openttd.cfg, so at each start the panel sets them through the game's own console script instead.
  • Ready line. The ready line is printed once the game is running, not when the network port opens, so the panel does not report the server up while the map is still being generated.
  • Your world continues. On each start the server loads the newest save it finds, from the exit save or the autosaves, and generates a new world only when there is none. To start over, you need to remove the saves.
  • Pause while empty. This setting is on by default. When it is on, the panel sets min_active_clients to 1, and to 0 when it is off.
  • Backups. If your plan includes backups, take one from Backups before editing the config by hand.

Self-hosting or renting: an honest comparison

  • Cost. Self-hosted: the software is free, and you pay for hardware, power and bandwidth, or a cloud virtual machine. Rented: a monthly fee set by plan. See the current plans.
  • Availability. Self-hosted: as reliable as your machine and home internet, and it has to stay on for a long-running game. Rented: runs on the host's hardware, not your PC.
  • Network exposure. Self-hosted: players connect to your public IP and you look after the firewall and router. Rented: your home IP is not involved.
  • Skill needed. Self-hosted: command line, port forwarding, graphics set, config editing and updates. A good way to learn. Rented: a web panel with form fields.
  • Updates. Self-hosted: you download new releases yourself, and players on a newer version cannot join until you do. Rented: the server runs the version our install sets, OpenTTD 15.3 at the time of writing, so players need that version.

Self-hosting suits you if a machine already runs all day and you are comfortable with networking. Renting suits you if you would rather not look after hardware.

Common problems and fixes

The server stops with "Failed to find a graphics set"

Cause: there is no base graphics set in baseset.

Fix: add OpenGFX as in step 3, then start again.

The server does not show in the server list

Cause: server_game_type is not public.

Fix: set it to public and restart. If it still does not show, read the network messages the dedicated server prints (-D turns on -d net=4) for its registration with OpenTTD's Game Coordinator.

A friend sees your server with a red or yellow dot

Cause: a red dot means a different OpenTTD version, a yellow dot means NewGRFs they do not have.

Fix: install the same version, or use NewGRF Settings and Find missing content online to fetch the NewGRFs, then join.

An invite-only server stays local (self-hosted)

Cause: the value was not written exactly as invite-only, with a hyphen (for example invite_only). A value OpenTTD does not recognise leaves the setting at its default, which is local.

Fix: write invite-only exactly. On PlayNHost, pick Unlisted, join by code in Server listing.

Your changes to the config file disappear (PlayNHost)

Cause: the key is one the panel writes at every start, or the file was edited while the server was running and OpenTTD wrote it again on shutdown.

Fix: change panel keys in Game Settings and restart. Edit other keys with the server stopped.

FAQ

Can I host an OpenTTD server for free?

Yes. OpenTTD is open source and the dedicated server is part of the same download. You still pay for the machine, power and internet, and it must stay on while people play.

Which port does an OpenTTD server use?

3979 by default, over TCP and UDP.

Do I need Transport Tycoon Deluxe?

No. The free OpenGFX set is enough for a server.

How do players find the server?

Public servers appear under Search internet in the Multiplayer menu. Invite-only servers are joined with an invite code that starts with +.

Ready for a server of your own? See the OpenTTD plans.

Already hosting it somewhere else? Move your server to us

OUR LATEST BLOGS