OpenRCT2
Open-source remake of RollerCoaster Tycoon 2
OpenRCT2 is a free, open-source reimplementation of RollerCoaster Tycoon 2. It adds multiplayer support with a dedicated server mode for cooperative park building.
Key features
- Theme park simulation
- Dedicated multiplayer server
- Many quality-of-life improvements
- Plugin scripting support
Pros & cons
Strengths
- Faithful modern remake
- Active community
Trade-offs
- Requires original game assets
- Server config via console
OpenRCT2 replaces
Last reviewed Aug 26, 2026 · 809 words
Two things stop most OpenRCT2 servers before the first guest arrives. You still need the original RollerCoaster Tycoon 2 files, and every player must run the exact same OpenRCT2 build as the host. Get both right and a shared park for 4 or 5 friends runs happily on a 512 MB VPS. Get either wrong and you have a server nobody can join, with an error message that rarely says why.
The original game files are not optional
OpenRCT2 (16,131 GitHub stars, GPL-3.0, written in C++) reimplements the engine, not the art. Rides, scenery, sprites and music are read from an installed copy of RollerCoaster Tycoon 2 or RollerCoaster Tycoon Classic. The game is still on sale on GOG and Steam and regularly drops under 10 dollars, so the cost is trivial. The friction is that the headless server needs those files as well, not just the players. Copy the RCT2 install directory to the server, set game_path under [general] in config.ini to point at it, and keep a second copy off the box. You will rebuild this machine one day and forget where the data came from.
Version mismatch is the number one join failure
Multiplayer checks the network version and it is strict: a host on last week's develop build refuses a client on today's. Pick a channel and make the whole group stay on it. The tagged release channel changes rarely and is the right default; the develop nightlies get new features first but move every few days. The project ships Linux builds as an Ubuntu PPA, AppImage and Flatpak, plus Windows and macOS installers, so everyone can match whichever channel you choose. When someone cannot connect, compare version strings before touching anything else. In my experience that is the cause 9 times out of 10.
Hosting headless fits in 512 MB
Server mode needs no display and no GPU. The minimal invocation loads a saved park and listens on the default TCP port:
openrct2 host /srv/openrct2/park.park --headless --port 11753
Put that in a systemd unit running as a dedicated user, open TCP 11753 on the firewall, and you are hosting. The process is mostly single-threaded and the listed 512 MB minimum is realistic for a mid-sized park; a 1 vCPU VPS is enough. For a friends-only server I would not open the port to the internet at all and instead have everyone join over Tailscale, which also spares you the password dance below.
Configuration lives in config.ini and the console, not a dashboard
There is no web admin panel, which the catalogue lists as a drawback and which I find is fine once you know where things are. The [network] section of config.ini in the OpenRCT2 user directory holds server_name, maxplayers, default_password and advertise. Set advertise = false unless you genuinely want strangers from the public server list. Player permissions are group-based: Admin, Spectator and User groups are stored in groups.json and per-player assignments in users.json in the same directory. Runtime changes happen through the in-game console from a connected admin client, which is where the "config via console" reputation comes from. Edit the files, restart, verify with the console.
Autosaves are on by default and the server writes to the park file it loaded, so back that file up. It is the entire state of the server; nothing else matters if the disk dies.
Plugins run on the host too
OpenRCT2 has a JavaScript plugin API, and plugins marked as remote run server-side for every connected player, which is how community servers add currency systems, ride statistics and admin commands. Drop .js files into the plugin folder of the server's user directory and restart. Client-side plugins run on each player's machine and do not need to be on the host. Keep the set small on a server: a misbehaving plugin can stall the tick loop for everyone.
The obvious comparison in the games category is a Minetest or Minecraft server, and OpenRCT2 is lighter than either; a Minetest world with a few mods idles higher than a full park.
What I'd do
Buy RCT2 on sale, copy its files to a small VPS or a spare box, install the release build of OpenRCT2 and pin the whole group to it. Run openrct2 host under systemd with advertise = false and a password, reachable over Tailscale only. Back up the park file nightly with whatever already backs up the rest of the host. Add one or two remote plugins once the park is running, not before. That is a co-op park for 5 people on hardware you would otherwise throw away, and the only ongoing chore is telling everyone to update on the same day.
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
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
Nakama
Game ServersOpen-source game server for realtime multiplayer and social features
Replaces PlayFab, Firebase