You can host an OpenTTD server with ZapX on your own VPS. You have full control over the system, and with the Game Server Installer, your server is ready in just a few minutes—no Remote Desktop connection required. This guide explains what you need, how the installation works, and how to manage your OpenTTD server afterward.
| Requirement | OpenTTD |
|---|---|
| Operating system | Windows Server 2019 or later |
| Memory | At least 2 GB |
| Free disk space | At least 2 GB on drive C: |
OpenTTD is available in the Game Server Installer only for Windows. If your VPS runs Linux, install a Windows Server template via Settings > Reinstallation. This will delete all data on your VPS. Learn more in Server Reinstallation.
When installation is complete, the installer shows your server address under How to connect. The installer-generated Remote Console (RCON) password is displayed once under Login credentials. If you install through the dashboard, the installer doesn't set a password for joining the game. To connect, open Multiplayer in the game and use Add server to enter your VPS IP address and port, which is 3979 by default. You can also find the IP address in the Overview of your VPS in the ZapX dashboard.
Your server files are located on the VPS at C:\ZapX-GameServers\openttd\:
| Folder/file | Contents |
|---|---|
server\openttd-15.3-windows-win64\ | OpenTTD program files |
data\openttd.cfg | Server settings |
data\private.cfg | Server name |
data\secrets.cfg | Passwords |
data\save\ | Saved games; save\autosave\exit.sav is the most recently saved game |
data\newgrf\, data\game\, data\ai\ | NewGRFs, Game Scripts, and AIs you add |
logs\server.log | Server output |
| Port | Protocol | Use |
|---|---|---|
| 3979 | TCP and UDP | Game and server list |
The installer opens these ports in the Windows Firewall. If you start the installation from the dashboard, it also opens them in your VPS's Network Firewall. If you installed using a command, check the ports there yourself. The admin port (game port + 1, 3980 by default) is used internally only for a clean shutdown and is intentionally not opened.
