Icarus-Dedicated

Games
Report Issue

Icarus is a survival game that with dedicated servers as a public beta

Contributors:
README

Icarus

NOTE: Server version currently marked as Beta by the developers.


Authors / Contributors


Game Description

Icarus is a session-based survival game for up to 8 co-op players or solo players, where most gameplay occurs during timed missions. Players accept contracts for missions on a space station orbiting the planet, and drop down to its terrain to attempt the objectives. Once a mission timer is complete, the drop-pod returns to the station. If the player fails to return in time, their workshop items are left on the surface and their progress is lost. There is also support for an OpenWorld where without resets.


Egg Capabilities

  • Currently runs the Windows build of the server via Wine64.
  • Auto-Updates on restart.

Server Ports

  • Default server ports are listed below, but all three ports can be changed freely.
  • Clients connect via the server list in game.
Port Default Protocol
Game 17777 UDP
Query 27015 UDP

Installation/System Requirements

Recommended Extra info
Processor Recent x86/64 (AMD/Intel) processor. No 32 bit or ARM support. Unsubstantiated reports say that RCON uses significantly more CPU when enabled, but I have not been able to replicate myself.
RAM 8-16 GB
Storage 14 GB (or more, depending on save size or frequency)

Save File and Custom Settings Location

You can define a custom dir for settings by adding -UserDir= to the startparameter. More Info

Server Game Settings

Server-Config & Launch-Parameters

Docker Images (1)
Name Image
Wine Staging ghcr.io/ptero-eggs/yolks:wine_latest
Startup Command
wine64 ./Icarus/Binaries/Win64/IcarusServer-Win64-Shipping.exe -Log -SteamServerName=${SERVER_NAME} -PORT="${SERVER_PORT}" -QueryPort="${QUERY_PORT}"
Variables (9)

[REQUIRED] Server Query Port

UDP port for Steam server list features.

Environment:
QUERY_PORT
Default:
27015
User Viewable:
User Editable:
Rules:
required|integer|between:1024,65536

Server Name

Environment:
SERVER_NAME
Default:
IcarusEGG
User Viewable:
User Editable:
Rules:
required|string|max:32

Windows Install Flag

Required for windows game server installs

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

WINETRICKS_RUN

Run installs on software that is required by the server

Environment:
WINETRICKS_RUN
Default:
vcrun2022 corefonts
User Viewable:
User Editable:
Rules:
required|string

SRCDS_APPID

steam app id found here - https://developer.valvesoftware.com/wiki/Dedicated_Servers_List

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

AUTO_UPDATE

Disabling or enabling automated updates on boot

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

WINEDEBUG

Environment:
WINEDEBUG
Default:
-all
User Viewable:
User Editable:
Rules:
required|string|max:20

WINEPATH

Environment:
WINEPATH
Default:
/home/container
User Viewable:
User Editable:
Rules:
required|string|max:20

WINEARCH

Environment:
WINEARCH
Default:
win64
User Viewable:
User Editable:
Rules:
required|string|in:win64
Installation Script
Container: ghcr.io/ptero-eggs/installers:debian
Entrypoint: /bin/bash
#!/bin/bash

## License: MIT License
## Image to install with is 'ghcr.io/ptero-eggs/installers:debian'

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

FILE=/mnt/server/Icarus/Saved/Config/ServerSettings.ini
if [ -f "$FILE" ]; then
    echo "Config already exist skipping"
else 
    echo "Config does not yet exist, making one"
    mkdir -p /mnt/server/Icarus/Saved/Config/
    cd /mnt/server/Icarus/Saved/Config/
    curl -sSL -o ServerSettings.ini https://raw.githubusercontent.com/RocketWerkz/IcarusDedicatedServer/main/ServerSettings.ini
fi

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