Cubic Odyssey

games
Report Issue

Embark on a galactic journey in Cubic Odyssey, an open-world adventure where you explore vibrant planets, craft tools, build vehicles, and fight the Red Darkness. Uncover ancient mysteries, and shape a universe full of life, danger, and limitless possibilities!

Contributors:
README

Cubic Odyssey

Steam Game Page

Embark on a galactic journey in Cubic Odyssey, an open-world adventure where you explore vibrant planets, craft tools, build vehicles, and fight the Red Darkness. Uncover ancient mysteries, and shape a universe full of life, danger, and limitless possibilities!

Requirements

You must have a Steam account that owns the Cubic Odyssey Dedicated Server tool (free) to run the server.

Server Port

Cubic Odyssey requires one port. You can use any available port.

Port Default (example)
Server Port 27015
Docker Images (2)
Name Image
Wine Latest ghcr.io/ptero-eggs/yolks:wine_latest
Wine Staging ghcr.io/ptero-eggs/yolks:wine_staging
Startup Command
wine ./server/CubicOdysseyServer.exe -Port={{GAME_PORT}} -Password="{{SERVER_PASSWORD}}" -Gamemode={{GAMEMODE}} -MaxNumPlayers={{MAX_PLAYERS}}
Variables (13)

Steam Username

A steam username of an account that owns the server tool is required

Environment:
STEAM_USER
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string

Steam Password

Steam User Password

Environment:
STEAM_PASS
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string

Steam Auth Code

Steam Auth Code required if the Steam Account is using Steam Auth. Slow installs will cause the code to expire before it can be used.

Environment:
STEAM_AUTH
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string

Server Name

The name of the server, this will be shown on the server-list

Environment:
SERVER_NAME
Default:
Cubic Odyssey Server
User Viewable:
User Editable:
Rules:
required|string

Server Password

If enabled players must enter the password to join the server

Environment:
SERVER_PASSWORD
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string

Game port

This sets the port the server will bind to

Environment:
GAME_PORT
Default:
20000
User Viewable:
User Editable:
Rules:
required|numeric

Max Players

This will set the maximum number of allowed players

Environment:
MAX_PLAYERS
Default:
20
User Viewable:
User Editable:
Rules:
required|string

Gamemode

Sets the desired game mode, it's adventure by default, available options: adventure, creative

Environment:
GAMEMODE
Default:
adventure
User Viewable:
User Editable:
Rules:
required|in:adventure,creative

Private Server

This will make the server private/public

Environment:
PRIVATE_SERVER
Default:
FALSE
User Viewable:
User Editable:
Rules:
required|in:TRUE,FALSE

Galaxy Seed

This sets the seed used by the server

Environment:
GALAXY_SEED
Default:
21945875634
User Viewable:
User Editable:
Rules:
required|string|max:11

Auto Update

autoupdate Server on start or restart. 1 = on; 0 = off

Environment:
AUTO_UPDATE
Default:
1
User Viewable:
User Editable:
Rules:
required|boolean

SRCDS_APPID

Environment:
SRCDS_APPID
Default:
3858450
User Viewable:
User Editable:
Rules:
required|string|in:3858450

Windows Install

Required to always install and update the correct version of the game.

Environment:
WINDOWS_INSTALL
Default:
1
User Viewable:
User Editable:
Rules:
required|boolean
Installation Script
Container: ghcr.io/ptero-eggs/installers:debian
Entrypoint: bash
#!/bin/bash

## just in case someone removed the defaults.
if [[ "${STEAM_USER}" == "" ]] || [[ "${STEAM_PASS}" == "" ]]; then
    echo -e "steam user is not set.\n"
    echo -e "Using anonymous user.\n"
    STEAM_USER=anonymous
    STEAM_PASS=""
    STEAM_AUTH=""
else
    echo -e "user set to ${STEAM_USER}"
fi

## download and install steamcmd
cd /tmp
mkdir -p /mnt/server/steamcmd
curl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzvf steamcmd.tar.gz -C /mnt/server/steamcmd
mkdir -p /mnt/server/steamapps # Fix steamcmd disk write error when this folder is missing
cd /mnt/server/steamcmd

# SteamCMD fails otherwise for some reason, even running as root.
# This is changed at the end of the install process anyways.
chown -R root:root /mnt
export HOME=/mnt/server

## install game using steamcmd and request app license
./steamcmd.sh +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_license_request 3858450 $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s "-beta ${SRCDS_BETAID}" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s "-betapassword ${SRCDS_BETAPASS}" ) ${INSTALL_FLAGS} validate +quit

## set up 32 bit libraries
mkdir -p /mnt/server/.steam/sdk32
cp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so

## set up 64 bit libraries
mkdir -p /mnt/server/.steam/sdk64
cp -v linux64/steamclient.so ../.steam/sdk64/steamclient.so

echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"