Skip to content

Rimworld Together

A community driven multiplayer mod, for Rimworld.

egg-rimworld-together.json

updated

Ports

Add an allocation on the node for each port.

  • Game 25555

Install

Installer image
ghcr.io/ptero-eggs/installers:debian
Install script
40 lines

Image

  • .NET 7 ghcr.io/ptero-eggs/yolks:dotnet_7

Startup

The Panel runs this command to start the server. It replaces each variable in the command with the value of that variable.

3 variables

Startup command

./GameServer
  • VERSIONUsers can edit

    required|string|max:20

  • The maximum amount of players that can join. Default: 100

    MAX_PLAYERSUsers can edit

    required|numeric|between:1,150

  • If the console output should be verbose or not.

    VERBOSEUsers can edit

    required|string|in:false,true

Wings

Stop command
quit
Running when the console shows
Server launched

Files Wings edits

Wings sets these values in these files before each start.

Configs/ServerConfig.json json

IP
0.0.0.0
Port
{{server.build.default.port}}
MaxPlayers
{{server.build.env.MAX_PLAYERS}}
VerboseLogs
{{server.build.env.VERBOSE}}

Readme

Rimworld Together

From their site

From their Github

A community driven multiplayer mod, for Rimworld.

Rimworld Together

Server Ports

Port default
Game 25555

Changes

  1. Rimworld Together: Update config file path

    · Daniel Barton · 64fb6b0

  2. Add standalone games

    · Daniel Barton · 74c706a

All changes on GitHub

Problem with this egg?

Open an issue on GitHub. Include your Panel and Wings versions.

Install script 40 lines bash in ghcr.io/ptero-eggs/installers:debian Show
#!/bin/bash

## get release info and download links
LATEST_JSON=$(curl -L --silent "https://api.github.com/repos/RimworldTogether/Rimworld-Together/releases/latest")
RELEASES=$(curl -L --silent "https://api.github.com/repos/RimworldTogether/Rimworld-Together/releases")
MATCH=$([[ "$(uname -m)" == "x86_64" ]] && echo "Linux-x64 " || echo "Linux-ARM-x64")

if [ -z "${VERSION}" ] || [ "${VERSION}" == "latest" ]; then
    DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})
else
    VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .tag_name')
    if [ "${VERSION}" == "${VERSION_CHECK}" ]; then
        DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})
    else
        echo -e "defaulting to latest release"
        DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)
    fi
fi

mkdir -p /mnt/server
cd /mnt/server

curl -sSL -o server.zip ${DOWNLOAD_URL}
unzip -o server.zip
rm server.zip
chmod +x GameServer


if [ -f "/mnt/server/Core/ServerConfig.json" ]; then
    echo "Config file exits"
else 
    mkdir -p /mnt/server/Core
    echo "{\"IP\":\"0.0.0.0\",\"Port\":$SERVER_PORT,\"MaxPlayers\":$MAX_PLAYERS,\"verboseLogs\":$VERBOSE}" | jq . > /mnt/server/Core/ServerConfig.json
fi


## install end
echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"