Avorion

games
Report Issue

A procedural co-op space sandbox where players can build their own space ships out of dynamically scalable blocks. Fight epic space battles, explore, mine, trade, wage wars and build your own empire to save your galaxy from being torn apart by an unknown enemy.

Contributors:
README

Avorion

A procedural co-op space sandbox where players can build their own space ships out of dynamically scalable blocks. Fight epic space battles, explore, mine, trade, wage wars and build your own empire to save your galaxy from being torn apart by an unknown enemy.

Server Ports

Avorion requires 4 ports to run. Despite claiming to require 4 ports, the game port is the only one that appears to have a config option.

Port default
Game 27000
Query 27003
Steam Query 27020
Steam 27021

Additionally the server can be configured with an RCON port. RCON will be disabled if a password is not specified.

Port default
RCON 27015

RCON

If you plan to use RCON it currently needs to be manually configured in the server.ini file. At some point server variables will be added.

Updating

Because with an update to this egg, the startup command changed, so if you update this egg, you will manually have to update the startup command for every server that was already made.

Docker Images (1)
Name Image
ghcr.io/ptero-eggs/steamcmd:debian ghcr.io/ptero-eggs/steamcmd:debian
Startup Command
./bin/AvorionServer --galaxy-name {{GALAXY_NAME}} --admin {{ADMIN_ID}} --datapath galaxy --port {{SERVER_PORT}} --query-port {{QUERY_PORT}} --steam-master-port {{STEAM_MASTER_PORT}} --steam-query-port {{STEAM_QUERY_PORT}} --max-players {{MAX_PLAYERS}} --difficulty {{DIFFICULTY}} --collision-damage {{COLLISION_DMG}} --save-interval {{SAVE_INTERVAL}} --same-start-sector {{SAME_START_SECTOR}} --server-name "{{SERVER_NAME}}" --threads {{GAME_THREADS}} --listed {{SERVER_LISTED}}
Variables (17)

Galaxy Name

Name of the Galaxy to create

Environment:
GALAXY_NAME
Default:
Avorion
User Viewable:
User Editable:
Rules:
required|string|max:32

Server Name

The name of the server, shown in the server list.

Environment:
SERVER_NAME
Default:
Avorion Server
User Viewable:
User Editable:
Rules:
required|string|max:64

Admin ID

Steam64 ID for the player to make Server Admin

Environment:
ADMIN_ID
Default:
None
User Viewable:
User Editable:
Rules:
required|string|max:20

Max Players

Maximum number of players allowed

Environment:
MAX_PLAYERS
Default:
10
User Viewable:
User Editable:
Rules:
required|int|max:64

Game Difficulty

Difficulty of the server, allowed values are: -3, -2, -1, 0, 1, 2, 3 Default: 0

Environment:
DIFFICULTY
Default:
0
User Viewable:
User Editable:
Rules:
required|integer|in:0,1,2,3,-1,-2,-3

Collision Damage

A multiplier for damage to colliding objects. Accepts floating-point numbers, e.g. 0.5 is 50% collision damage. 0: no damage, 1: full damage. default: 1

Environment:
COLLISION_DMG
Default:
1
User Viewable:
User Editable:
Rules:
required|string|max:20

Save Interval

Time between automatic saves in seconds. Defaults to 300 (5 minutes).

Environment:
SAVE_INTERVAL
Default:
300
User Viewable:
User Editable:
Rules:
required|int

Same Start Sector

Indicates if all players should start in the same sector. If false, a random empty sector on the outer rim is populated and used as the home sector for each new player.

Environment:
SAME_START_SECTOR
Default:
true
User Viewable:
User Editable:
Rules:
required|string|in:true,false

Threads

Number of concurrent threads that are used to update sectors. (Identical to the 'Threads' setting ingame.)

Environment:
GAME_THREADS
Default:
1
User Viewable:
User Editable:
Rules:
required|integer|max:20

List Publicly

Privacy setting. If enabled together with useSteam, the server will show up in public server lists. (Same as the ingame setting 'List Publicly')

Environment:
SERVER_LISTED
Default:
true
User Viewable:
User Editable:
Rules:
required|string|in:true,false

Steam App ID

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

LD Library Path

Environment:
LD_LIBRARY_PATH
Default:
./linux64
User Viewable:
User Editable:
Rules:
required|string|max:20

Steam Master Port

Environment:
STEAM_MASTER_PORT
Default:
27021
User Viewable:
User Editable:
Rules:
required|string|max:20

Steam Query Port

Environment:
STEAM_QUERY_PORT
Default:
27020
User Viewable:
User Editable:
Rules:
required|string|max:20

Query Port

Environment:
QUERY_PORT
Default:
27003
User Viewable:
User Editable:
Rules:
required|string|max:20

Auto Update

1 = on; 0 = off

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

Beta branch

Leave empty for the public branch, beta for the beta branch.

Environment:
SRCDS_BETAID
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|in:,beta
Installation Script
Container: ghcr.io/ptero-eggs/installers:debian
Entrypoint: bash
#!/bin/bash
# Avorion Installation Script
#
# Server Files: /mnt/server


## 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
./steamcmd.sh +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${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


mkdir -p /mnt/server/backups
mkdir -p /mnt/server/galaxy/${GALAXY_NAME}
curl https://raw.githubusercontent.com/ptero-eggs/game-eggs/main/avorion/server.ini --output /mnt/server/galaxy/${GALAXY_NAME}/server.ini

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