{"id":15633405,"url":"https://github.com/avivace/ror2-server","last_synced_at":"2025-04-04T09:08:40.119Z","repository":{"id":38020815,"uuid":"259670782","full_name":"avivace/ror2-server","owner":"avivace","description":"Host your own Risk of Rain 2 dedicated server. No technical skills required. Runs everywhere.","archived":false,"fork":false,"pushed_at":"2024-10-12T11:13:52.000Z","size":126,"stargazers_count":171,"open_issues_count":6,"forks_count":29,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-28T08:05:41.503Z","etag":null,"topics":["docker","docker-image","game-server","risk-of-rain","risk-of-rain-2","steamcmd","wine","xvfb"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/avivace/ror2server","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/avivace.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"publiccode":null,"codemeta":null}},"created_at":"2020-04-28T15:05:56.000Z","updated_at":"2025-03-13T02:38:56.000Z","dependencies_parsed_at":"2024-10-23T02:48:55.150Z","dependency_job_id":null,"html_url":"https://github.com/avivace/ror2-server","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avivace%2Fror2-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avivace%2Fror2-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avivace%2Fror2-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avivace%2Fror2-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/avivace","download_url":"https://codeload.github.com/avivace/ror2-server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247149501,"owners_count":20891954,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["docker","docker-image","game-server","risk-of-rain","risk-of-rain-2","steamcmd","wine","xvfb"],"created_at":"2024-10-03T10:49:06.186Z","updated_at":"2025-04-04T09:08:40.101Z","avatar_url":"https://github.com/avivace.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1\u003e \u003cimg src=\"https://i.imgur.com/UIQSMEs.png\" height=45\u003e Risk of Rain 2 dockerized server \u003c/h1\u003e\n\n[![Docker Pulls](https://img.shields.io/docker/pulls/avivace/ror2server?style=flat-square)](https://hub.docker.com/r/avivace/ror2server)\n\n\n\u003e [!CAUTION]\n\u003e This project relies on the official 'Risk of Rain 2 Dedicated Server' Steam app. Among all the other embarassing things Hopoo/Gearbox/Take-Two did to ruin this game, they also [stopped updating the dedicated server](https://steamdb.info/app/1180760/depots/?branch=public) in May 26, 2022. The only way to join an hosted dedicated server now is to [downgrade](https://github.com/risk-of-thunder/RoR2VersionSelector).\n\n\nHost your Risk of Rain 2 dedicated server anywhere using Docker. Powered by Wine and the X virtual framebuffer to seamlessy run on Linux machines.\n\n[Guide on Steam](https://steamcommunity.com/sharedfiles/filedetails/?id=2077564253).\n\n\n## Quickstart\n\nYou need [Docker](https://docs.docker.com/get-docker/) installed. On Debian systems, you can use the [bootstrap_debian.sh](https://github.com/avivace/ror2-server/blob/master/boostrap_debian.sh) script to set up Docker and some other dependencies.\n\nRun the Docker container with:\n\n```bash\ndocker run --rm -p 27015:27015/udp avivace/ror2server:latest\n```\n\nPlayers need to start Risk of Rain 2, open the console pressing \u003ckbd\u003eCTRL\u003c/kbd\u003e + \u003ckbd\u003eALT\u003c/kbd\u003e + \u003ckbd\u003e\\`\u003c/kbd\u003e and insert this command:\n\n```\nconnect \"\u003cSERVER_IP\u003e:27015\";\n```\n\nReplace `SERVER_IP` with the public IP of the server running the Docker Image.\n\nBy default, the server has no password and runs on UDP port 27015. Make sure you have crossplay disabled before joining.\n\n## Customize configuration\n\nIf you want to start the server on port **25000** with password **hello**:\n\n```\ndocker run -p 25000:25000/udp -e R2_SV_PORT=25000 -e R2_PSW='hello' avivace/ror2server:latest\n```\n\nPlayers will then join with:\n\n```\ncl_password \"hello\"; connect \"\u003cSERVER_IP\u003e:25000\";\n```\n\nYou can pass these additional environment variables to customise your server configuration:\n\n- `R2_PLAYERS`, the maximum number of players, default is 4;\n- `R2_HEARTBEAT`, set to `1` to **advertise to the master server and list your server** in the internal server browser. If you enable this, add `-p 27016:27016/udp` to your Docker command;\n- `R2_HOSTNAME`, the name that will appear in the server browser;\n- `R2_PSW`, the password someone must provide to join this server;\n- `R2_ENABLE_MODS`, set to `1` to enable mod support (given you mounted the mod folders as described [below](#mod-support));\n- `R2_QUERY_PORT`, the listen port for the Steamworks connection, needed to list the server in the game browser on a alternate port, you need to add `-p \u003cPORT\u003e:\u003cPORT\u003e/udp` to your Docker command;\n- `R2_SV_PORT`, the listen port for the game server, needed to list the server in the game browser on a alternate port, you also need to add `-p \u003cPORT\u003e:\u003cPORT\u003e/udp` to your Docker command.\n- `R2_TAGS`, the tags the server will have in the server browser.\n- `R2_GAMEMODE`, the type of gamemode for the run, defaulting to `ClassicRun`. Supported options:\n    - `ClassicRun` (Standard)\n    - `InfiniteTowerRun` (Simulacrum)\n\nYou shouldn't need to change `R2_QUERY_PORT` and `R2_SV_PORT` if you are not planning on hosting more server instances on the same machine/IP.\n\nAppend one or more `-e VARIABLENAME=VALUE` to your Docker command to set environment variables.\n\nTo check if your server is correctly getting announced to the Steamworks network, you can use this API call:\n\n```bash\ncurl http://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001/?format=json\u0026addr=\u003cIP_ADDRESS\u003e\n```\n## Known Issues\n\nBe aware that this version suffers from some [known issues](https://github.com/avivace/ror2-server/issues?q=is%3Aissue+is%3Aopen+label%3Abug), probably caused by the executable not running natively on Windows. You should probably [ask the developers](https://twitter.com/riskofrain) for a proper Linux build.\n\nSince the RoR2 Server will be downloaded each time the docker container is started, there could be breaking changes which require more up to date versions of wine in order to work correctly. In this case you can try forcing the installation of bleeding-edge wine versions by running:\n```bash\n# wine-devel\ndocker run ${your_parameters} -e WINE_REPLACE_REL=\"devel\" avivace/ror2server:latest\n# wine-staging\ndocker run ${your_parameters} -e WINE_REPLACE_REL=\"staging\" avivace/ror2server:latest\n```\n\n## Mod support\n\nTo install and enable mods server side, you'll need a directory containing:\n\n- The **BepInEx** folder with the desired mods;\n- The `doorstop_config.ini` and `winhttp.dll` files, both shipped with the BepInEx version you intend to use.\n\nSupposing your mod directory is in `/path/to/directory`, you can start your server as follows:\n\n```bash\ndocker run -p 27015:27015/udp -v /path/to/directory:/root/ror2ds-mods -e R2_ENABLE_MODS=1 avivace/ror2server:latest\n```\n\nBeware that some mods requires the client to also have them installed.\n\n## FAQ\n\n#### Can I run this on a VPS?\n\nYes, any Linux box works. For decent performance, you need 3 GB of free space and at least 2 GB of RAM.\n\n#### Server crashes with \"NullReferenceException\"\n\nDisable crossplay.\n\n#### Server is stuck at \"Unloading unused Assets\"\n\nThat line is usually the last one of the initialization process. It usually means your server is working correctly, that is not a blocking error. If you can't connect to your server at that point, it's probably a network issue.\n\n\n#### Server is stuck at \"Could not load config ...\"\n\nIf you see something like this:\n\n```\nCould not load config /Config/server_pregame.cfg: Could not find file \"Z:\\home\\steam\\ror2-dedicated\\Risk of Rain 2_Data\\Config\\server_pregame.cfg\"\n```\n\nBe aware that these kind of warning messages are non blocking, they are just warnings and the server initialization will proceed as normal.\n\n\n### Acknowledgements\n\nThanks to [InfernalPlacebo](https://github.com/InfernalPlacebo) and [Vam-Jam](https://github.com/Vam-Jam).\n\nBuilt by [Manuele](https://github.com/dubvulture), [Davide Casella](https://github.com/dcasella), [Fabio Nicolini](https://github.com/fnicolini), [Antonio Vivace](https://github.com/avivace).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favivace%2Fror2-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Favivace%2Fror2-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favivace%2Fror2-server/lists"}