Skip to content

Rimworld: Open World

The Open World mod allows you to create and join servers to play with people all around the world, it introduces plenty of new features including trading, gifting, bartering, PvP and so much more! https://github.com/D12-Dev/OpenWorld

egg-rimworld-open-world.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
67 lines

Images

New servers use the first image. Users can change it on the Startup page.

  • Dotnet 3.1 default ghcr.io/ptero-eggs/yolks:dotnet_3.1
  • Dotnet 6 ghcr.io/ptero-eggs/yolks:dotnet_6

Startup

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

8 variables

Startup command

./OpenWorldServer
  • VERSIONUsers can edit

    required|string|max:8

  • sets the maximum number of players allowed to connect at once.

    MAX_PLAYERSUsers can edit

    required|int

  • This forces players to use the mods listed in the the "Mods Enforced" folder, with this disabled it will allow players to join with any mods they would like

    ENFORCE_MODSUsers can edit

    required|string|in:true,false

  • enabled you to blacklist mods from being used, usually used when enforced mods are disabled.

    USE_MOD_BLACKLISTUsers can edit

    required|string|in:true,false

  • forces all players to use the difficulty setting set in the "Difficulty" file. MAKE SURE YOU GIVE A VALUE TO EVERYTHING OR IT WILL BE AT 0%

    USE_CUSTOM_DIFFUsers can edit

    required|string|in:true,false

  • allows only the usernames listed in the "Whitelist" file to join the server.

    WHITELISTUsers can edit

    required|string|in:true,false

  • allows people to create custom scenarios when creating their save on the server.

    CUSTOM_SCENUsers can edit

    required|string|in:true,false

  • version the server will accept clients joining in with. TO see the latest: https://discord.com/channels/992806266109964319/992881103071354890 for example for v1.12 you would write 1.12

    PLAYER_VERSIONUsers can edit

    required|string|max:10

Wings

Stop command
shutdown
Running when the console shows
Server Launched

Files Wings edits

Wings sets these values in these files before each start.

Data/Config.json json

LocalAddress
0.0.0.0
ServerPort
{{server.build.default.port}}
MaxPlayers
{{server.build.env.MAX_PLAYERS}}
EnforceMods
{{server.build.env.ENFORCE_MODS}}
UseModBlacklist
{{server.build.env.USE_MOD_BLACKLIST}}
UseCustomDifficulty
{{server.build.env.USE_CUSTOM_DIFF}}
UseWhitelist
{{server.build.env.WHITELIST}}
AllowCustomScenarios
{{server.build.env.CUSTOM_SCEN}}
PlayerVersion
{{server.build.env.PLAYER_VERSION}}

Readme

Open World

From their site

The Open World mod allows you to create and join servers to play with people all around the world, it introduces plenty of new features including trading, gifting, bartering, PvP and so much more!

Server Ports

Port default
Game 25555

Mods/Plugins may require ports to be added to the server. See here for help

Changes

  1. 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 67 lines bash in ghcr.io/ptero-eggs/installers:debian Show
#!/bin/bash

#Create the server directory
mkdir -p /mnt/server
cd /mnt/server

apt update
apt -y install curl jq unzip git


#Check for latest release & download URLs
LATEST_JSON=$(curl --silent "https://api.github.com/repos/D12-Dev/OpenWorld/releases/latest")
RELEASES=$(curl --silent "https://api.github.com/repos/D12-Dev/OpenWorld/releases")
ARCH=$([[ "$(uname -m)" == "x86_64" ]] && echo "linux-x64" || echo "linux-arm64")

if [ -z "${VERSION}" ] || [ "${VERSION}" == "latest" ]; then
    DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${ARCH} | head -1)
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 ${ARCH} | head -1)
    else
        echo -e "defaulting to latest release"
        DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${ARCH}| head -1)
    fi
fi


#Download the Rimworld Open World server
echo -e "Running curl -sSL ${DOWNLOAD_URL} -o ${ARCH}.zip"
curl -sSL ${DOWNLOAD_URL} -o ${ARCH}.zip
echo -e "Unzipping ${ARCH}.zip"
unzip -o ${ARCH}.zip
mv ${ARCH}/* /mnt/server
chmod +x "OpenWorldServer"
rm -rf ${ARCH}.zip ${ARCH}/



cd /mnt/server
FILE=/mnt/server/Data/Config.json
if [ -f "$FILE" ]; then
    echo "config already exists."
else 
    echo "Config does not exist, making one"
    mkdir -p /mnt/server/Data
    cd /mnt/server/Data
cat << EOF > "Config.json"
{
  "LocalAddress": "0.0.0.0",
  "ServerPort": 25555,
  "MaxPlayers": 10,
  "PlayerVersion": "1.2",
  "EnforceMods": false,
  "UseModBlacklist": false,
  "UseCustomDifficulty": false,
  "UseWhitelist": false,
  "AllowCustomScenarios": false
}
EOF
fi


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