Egg Repository

Pterodactyl Community Egg Repository

Space Engineers

Space Engineers is a voxel-based sandbox game set in space and on planets.

Read Me

Space Engineers

Author & Contributers

Name Github Profile
gOOvER https://github.com/gOOvER

Description

Space Engineers is a voxel-based sandbox game set in space and on planets.

NOTE Because of the winetricks installation, the install process could take some time. Likewise, the first start of the server takes its time.

SPECIAL NOTE When installed, the Server loads a base World and config from this repo. ONLY THIS WORLD IS SUPPORTED. Everything which is not defined in a variable could be edited directy in the config file /config/SpaceEngineers-Dedicated.cfg and config/Saves/World/Sandbox.sbc

Server Ports

Default server ports are listed below, but the Main, STEAM and API port can be any port.

Port default
Game 27016
Steam 8766
API 8081

Minumum server settings

RAM

This server requires about 6GB.

Based on the information provided by the developer: See here

Disk

This server uses about 7GB of diskspace.

Yolks
NameTag
ghcr.io/ptero-eggs/yolks:wine_latestghcr.io/ptero-eggs/yolks:wine_latest
Variables
NameDescriptionEnvironment VariableDefault ValueUser ViewableUser Editable
APP IDThe ID corresponding to the game to download.SRCDS_APPID298740NoNo
Server NameName of the server, appears in Steam browser.SERVER_NAMEA Pterodactyl hosted Space Engineer ServerYesYes
World NameName of your world (and of your save folder) !!!!! DO NOT EDIT OR SERVER WILL NOT START !!!!!WORLD_NAMEWorldYesNo
Server DescriptionDescription of the gameSERVER_DESCA Pterodactyl hosted Space Engineer ServerYesYes
Game ModeGame Mode setting: Survival, CreativeSERVER_MODESurvivalYesYes
Maximum PlayersMAX_PLAYERS4YesYes
Enable SavingSAVE_ENABLEDtrueYesYes
Auto Save IntervalTime between auto saves specified in minutesSAVE_INTERVAL5YesYes
Steam PortSteam PortSTEAM_PORT8766YesNo
Enable Remote APIEnable Remote APIREMOTEAPI_ENABLEfalseYesYes
Remote API PortRemote API PortREMOTEAPI_PORT8081YesNo
Auto UpdateAUTO_UPDATE1YesYes
Enable Experimental ModeEnable Experimental Mode. Must be 'true' when using modsEXPERIMENTAL_ENABLEDfalseYesYes
Enable In-Game ScriptsAllow players to run In-Game ScriptsINGAMESCRIPTS_ENABLEDfalseYesYes
WINEDEBUGWINEDEBUG: Debug Level of wineWINEDEBUG-allNoNo
Windows InstallRequired for auto-updateWINDOWS_INSTALL1NoNo
WINETRICKS_RUNWINETRICKS_RUNwin11 vcrun2022 mono corefontsNoNo
WINEARCHWINEARCHwin64NoNo
WINEPATHWINEPATH/home/containerNoNo
Install Script
#!/bin/bash
# Installation Script
#
## Define variables
dlurl="https://raw.githubusercontent.com/ptero-eggs/game-eggs/main/space_engineers/default"

# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.
#apt -y update
#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates

## 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 ## other flags may be needed depending on install. looking at you cs 1.6

## 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

## Create world and config
mkdir -p $HOME/config/Saves
if [ ! -d $HOME/config/Saves/World ]
then
    curl $dlurl/World.zip -o World.zip
    unzip -o World.zip -d $HOME/config/Saves/
fi
if [ ! -f $HOME/config/SpaceEngineers-Dedicated.cfg ]; then curl $dlurl/SpaceEngineers-Dedicated.cfg -o $HOME/config/SpaceEngineers-Dedicated.cfg; fi

rm -fR $HOME/World.zip

# copy libs for mod support
cp -v $HOME/steamclient.dll ../DedicatedServer64/
cp -v $HOME/steamclient64.dll ../DedicatedServer64/
cp -v $HOME/tier0_s.dll ../DedicatedServer64/
cp -v $HOME/tier0_s64.dll ../DedicatedServer64/
cp -v $HOME/vstdlib_s.dll ../DedicatedServer64/
cp -v $HOME/vstdlib_s64.dll ../DedicatedServer64/

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