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

Report an issue
updated
variables
8
images
2
author
kyle@williquette.us
sha256
e0607a5050da

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

Startup command

./OpenWorldServer

Docker images

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

1 contributor

Variables

8 settings

  • Open World Version

    env
    VERSION
    default
    latest
    rules
    required|string|max:8
    • viewable
    • editable
  • Max Players

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

    env
    MAX_PLAYERS
    default
    10
    rules
    required|int
    • viewable
    • editable
  • Enforce Mods

    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

    env
    ENFORCE_MODS
    default
    false
    rules
    required|string|in:true,false
    • viewable
    • editable
  • Use Mod Blacklist

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

    env
    USE_MOD_BLACKLIST
    default
    false
    rules
    required|string|in:true,false
    • viewable
    • editable
  • Use Custom Difficulty

    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%

    env
    USE_CUSTOM_DIFF
    default
    false
    rules
    required|string|in:true,false
    • viewable
    • editable
  • Use Whitelist

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

    env
    WHITELIST
    default
    false
    rules
    required|string|in:true,false
    • viewable
    • editable
  • Allow Custom Scenarios

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

    env
    CUSTOM_SCEN
    default
    false
    rules
    required|string|in:true,false
    • viewable
    • editable
  • Player Version

    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

    env
    PLAYER_VERSION
    default
    1.2
    rules
    required|string|max:10
    • viewable
    • editable
Installation script 67 lines container ghcr.io/ptero-eggs/installers:debian entrypoint bash 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 "-----------------------------------------"