{"id":17163566,"url":"https://github.com/lukasalexanderweber/openrct2-server-setup","last_synced_at":"2026-03-18T23:45:37.595Z","repository":{"id":104205412,"uuid":"346476148","full_name":"lukasalexanderweber/openrct2-server-setup","owner":"lukasalexanderweber","description":"Set up your permanent OpenRCT2 server","archived":false,"fork":false,"pushed_at":"2021-04-14T17:26:06.000Z","size":1086,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-31T11:38:08.243Z","etag":null,"topics":["game","multiplayer","roller-coaster"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lukasalexanderweber.png","metadata":{"files":{"readme":"README.md","changelog":"change_default_user_group.png","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-03-10T19:58:08.000Z","updated_at":"2024-10-09T16:08:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"3f2ad7b6-e200-4c36-a32b-e8021eff7978","html_url":"https://github.com/lukasalexanderweber/openrct2-server-setup","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lukasalexanderweber/openrct2-server-setup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukasalexanderweber%2Fopenrct2-server-setup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukasalexanderweber%2Fopenrct2-server-setup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukasalexanderweber%2Fopenrct2-server-setup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukasalexanderweber%2Fopenrct2-server-setup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lukasalexanderweber","download_url":"https://codeload.github.com/lukasalexanderweber/openrct2-server-setup/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukasalexanderweber%2Fopenrct2-server-setup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29209855,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T21:35:21.898Z","status":"ssl_error","status_checked_at":"2026-02-07T21:35:20.106Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["game","multiplayer","roller-coaster"],"created_at":"2024-10-14T22:49:26.981Z","updated_at":"2026-02-07T22:03:15.903Z","avatar_url":"https://github.com/lukasalexanderweber.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# openrct2-server-setup\n\nThis is a workflow how I managed to set up a running OpenRCT2 ([website](https://openrct2.org/)/[github](https://github.com/OpenRCT2/OpenRCT2)) game which is permanently online and where clients can join as users. Tested on a vServer of https://www.ionos.de/\n\n## Original Game\n\n### Get the Game Files\n\nYou need the original game files to run OpenRCT2. I got the files from [GOG](https://www.gog.com/game/rollercoaster_tycoon_2). It's really cheap nowadays. Be sure to [download the offline data](https://github.com/lukasalexanderweber/openrct2-server-setup/blob/main/gog_offline_data.PNG) and store them under `/Games/RCT2_installer`.\n\n### Extract the Game Files\n\nI use innoextract to extract the game files: `innoextract setup_rollercoaster_tycoon2_german_2.0.0.6.exe` \u003cbr/\u003e Delete **tmp** and move the **app** content into  `/Games/RCT2`. Now you can now delete `/Games/RCT2_installer`. Credits to [this Tutorial](https://wiki.ubuntuusers.de/Spiele/OpenRCT2/)!\n\nOf course you can use other instructions to obtain the game files. For our example it's just important to have the files in `/Games/RCT2`\n\n## OpenRCT2\n\n### Get the AppImage\n\nGet the [latest release](https://openrct2.org/downloads/releases/latest) of OpenRCT2. Be sure to download the AppImage (e.g. OpenRCT2-0.3.2-linux-x86_64.AppImage) for Linux. I rename and store the file into `/Games/openrct2/OpenRCT2.AppImage`.\n\n### Start RCT2 and Create a Saved Game\n(If you cannot display graphics on your Server you can create the sv6 with the PC you will play OpenRCT2 or download `Crazy Castle.sv6` from this repository)\n\nYou should now be able to see the help calling `/Games/openrct2/OpenRCT2.AppImage --help`\n\nWe need to register the original Game Files using `/Games/openrct2/OpenRCT2.AppImage set-rct2 /Games/RCT2`\n\nLet's say we want to host a build-in scenario (here: *Crazy Castle*)\n\nStart the Game calling `/Games/openrct2/OpenRCT2.AppImage`\n\nStart the Crazy Castles Scenario and save it into `/Games/openrct2/Crazy Castle.sv6` \n\n### Run your Server\n\n(The offical Wiki on hosting a server can be found [here](https://github.com/OpenRCT2/OpenRCT2/wiki/Multiplayer))\n\nNow we want to host the saved game.\n\nHost a Server calling `/Games/openrct2/OpenRCT2.AppImage host ./Crazy\\ Castle.sv6 --user-data-path ./CrazyCastle --rct2-data-path /Games/RCT --headless`. Note that --headless will not open the game interface.\n\nAfter the Server is running you can close it immedially using `CTRL+C`\n\nNote that `--user-data-path ./CrazyCastle` created the Folder `/Games/openrct2/CrazyCastle` with a `config.ini` included\n\nTo tidy up stuff move `/Games/openrct2/Crazy Castle.sv6` into `/Games/openrct2/CrazyCastle/save/Crazy Castle.sv6` (in this folder will also be the autosaves)\n\nUpdate the `/Games/openrct2/CrazyCastle/config.ini` in this folder. For all available settings see [Settings in config.ini](https://github.com/OpenRCT2/OpenRCT2/wiki/Settings-in-config.ini)\n\nFor us the most important ones are:\n```\ngame_path = \"/Games/RCT2\"        -\u003e where the original game files are stored\nplayer_name = \"Host\"             -\u003e The name of the \"Player\" hosting the game\ndefault_port = 11753             -\u003e OpenRCT2 default port is 11753\nlisten_address = \"12.345.67.890\" -\u003e The IP-Adress of your Server\ndefault_password = \"MyPW\"        -\u003e A PW if you want\nstay_connected = true               \nadvertise = true                  -\u003e That your friend can see the server on the server list\nadvertise_address = \"12.345.67.890\" \nserver_name = \"MyAwesomeHostedServer\"\npause_server_if_no_clients = true -\u003e Pause the game if no one is in it, so you can continue playing later\n```\n*Note that before the next step you probably want to Set Permissions (see next chapter)*\n\nNow you can finally host the server calling `/Games/openrct2/OpenRCT2.AppImage host /Games/openrct2/CrazyCastle/save/Crazy Castle.sv6 --user-data-path /Games/openrct2/CrazyCastle --headless`\n\n### Set-Permissions\n\nBy default each Client entering the server will get the \"Spectator\" role and will not be able to build anything. Since you probably want to play with friends or the community and enable them to play, we need to make them \"User\" by default. There are two ways to do that:\n\n#### In-Game\n\n(If you cannot display graphics on your Server you can move to the next step)\n\nHost and enter the server calling `/Games/openrct2/OpenRCT2.AppImage host /Games/openrct2/CrazyCastle/save/Crazy Castle.sv6 --user-data-path /Games/openrct2/CrazyCastle`. Click on the network icon and set the default user group s displayed [here](https://github.com/lukasalexanderweber/openrct2-server-setup/blob/main/change_default_user_group.png). By doing this a `/Games/openrct2/CrazyCastle/groups.json` will be created and modified, allowing your friends to join directly as Users. \n\n#### Directly download the groups.json\n\nDownload the [groups.json](https://github.com/lukasalexanderweber/openrct2-server-setup/blob/main/groups.json) which is created in the previous step into `/Games/openrct2/CrazyCastle/groups.json` \n\n### Run a permanent Server as a Service\n\nTo run the server permanently as a service see the [Official Wiki](https://github.com/OpenRCT2/OpenRCT2/wiki/Multiplayer#running-as-a-service-on-linux-with-systemd).\nIn this example you can add the following into `/etc/systemd/system/openrct2.service`\n```\n[Unit]\nDescription=OpenRCT2 server instance\nAfter=network.target\n\n[Service]\nExecStart=/Games/openrct2/OpenRCT2.AppImage host /Games/openrct2/CrazyCastle/save/Crazy Castle.sv6 --user-data-path /Games/openrct2/CrazyCastle --headless\n\nType=simple\n\n[Install]\nWantedBy=multi-user.target\n```\n\nStart the service using\u003cbr/\u003e\n`systemctl daemon-reload`\u003cbr/\u003e\n`systemctl enable openrct2.service`\u003cbr/\u003e\n`systemctl start openrct2.service`\n\nStop the service using\u003cbr/\u003e\n`systemctl stop openrct2.service`\n\n## Additional Information\n\nOpenRCT2 has an active community on [reddit](https://www.reddit.com/r/openrct2/). You can download scenarios and tracks [here](https://rctgo.com/)\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukasalexanderweber%2Fopenrct2-server-setup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flukasalexanderweber%2Fopenrct2-server-setup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukasalexanderweber%2Fopenrct2-server-setup/lists"}