Egg Repository

Pterodactyl Community Egg Repository

Fortresscraft Evolved

FortressCraft Evolved is a unique blend of Voxel Landscapes, Tower Defense, Crafting, Logistics, Exploration, Combat and Assembly lines. Players begin by crash-landing on a strange alien world, left with only a small handful of starting machines..

Read Me

FotressCraft Evolved

FortressCraft Evolved is a unique blend of Voxel Landscapes, Tower Defense, Crafting, Logistics, Exploration, Combat and Assembly lines. Players begin by crash-landing on a strange alien world, left with only a small handful of starting machines.

Steam Page

Author & Contributers

NameGithub Profile
brainsheadhttps://github.com/brainshead

Server Ports

FotressCraft Evolved requires up to 2 ports

Portdefault
Game27000
RCON27001

This can be changed to any port.

Install Notes

RequirementsMemoryStorageCPUNetwork
Minimal8 GB10GBDecent Quad-Core CPU (3.2GHz+)1-2Mbit/s per client is a rough guide
Recommended8+ GB20GB+ (SSD)

Settings

Most setting can be done by Panel Variable Settings.

World are saved at location : .config/unity3d/ProjectorGames/FortressCraft/Worlds

Modding

Copied from Steam Source

As always shutdown your server cleanly before youre toying around with the gamefiles.

The following Lines are copied (sort off) from the "FortressCraft Evolved Modding API.pdf" that can be found in the Installationdirectory fo FortressCraft in "...\SteamApps\common\FortressCraft\64\Default" (or ..\32.. when your playing in 32-Bit). (see Chapter 3 - 4 (specialy 4.1))

First get your Mod(s) to your Computer. Subscribe to it/them in the Workshop and wait for the Download to finish.

You will find the mods in the "...\Steam\steamapps\workshop\content\254200\WorkshopID" directory.

Head to the Directroy tree where the world and such is stored. (copy from the ModAPI.pdf) go to

Linux: /home/<user_name>/.config/unity3d/ProjectorGames/FortressCraft/

Windows: C:\Users\USERNAME\AppData\Local\ProjectorGames\FortressCraft\

and create the new Directory named WorkshopMods.

Now copy the files 1:1 over there with your favorite methode (i recommend zipping it, transfer with FTP and unzip it again in this folder).

Now open the local version of your world in FCE and configure which mods you want to use. Get the "modsettings.xml" from your World safe directory and upload it in the World on the server (same spot as local). Make sure you get the modsettings.crc, modsettings.bak and modsettings.bak.crc as well on the server. FCE tries to repair a changed File (which it uses the CRC's for). Alternativly, delete the just mentioned files on the server so you only have the modsettings.xml left.

Start your server, select the mods you activated on the world, join and have fun with your new Content.

Yolks
NameTag
Debian STEAMCMDghcr.io/ptero-eggs/steamcmd:debian
Variables and Startup

Startup Command

rm ./unity.log; ./FC_Linux_Universal.x86_64 -batchmode -nographics -logFile ./unity.log & ENS_PID=$! ; tail -c0 -F ./unity.log --pid=$ENS_PID | grep -Ev "Filename:|DebugBindings|buildslave|Line:"

Variables

[STEAM] Steam User

This is a required setting and cannot be set to anonymous.

Environment Variable: STEAM_USER
Default Value:
User Viewable:
User Editable:
[STEAM] Steam Password

Steam User Password

Environment Variable: STEAM_PASS
Default Value:
User Viewable:
User Editable:
[STEAM] Game ID

The ID corresponding to the game to download and run using SRCDS

Environment Variable: SRCDS_APPID
Default Value: 443600
User Viewable:
User Editable:
[STEAM] Steam Auth

Steam account auth code. Required if you have 2fa enabled

Environment Variable: STEAM_AUTH
Default Value:
User Viewable:
User Editable:
[STEAM] Auto Update Server

This is to auto-update the game server

Environment Variable: AUTO_UPDATE
Default Value: 1
User Viewable:
User Editable:
[STEAM] Beta Branch

Installs beta branch if specified.

Environment Variable: SRCDS_BETAID
Default Value: linux_server_headless
User Viewable:
User Editable:
[SERVER] Server Name

Server name

Environment Variable: SERVER_NAME
Default Value: Pterodactyl Dedicated Server World
User Viewable:
User Editable:
[SERVER] RCON port

RCON Port

Environment Variable: RCON_PORT
Default Value: 27001
User Viewable:
User Editable:
[SERVER] RCON Password

RCON Password

Environment Variable: RCON_PASSWORD
Default Value: changeme
User Viewable:
User Editable:
[SERVER] Max Players

Max Players (default is 64)

Environment Variable: MAX_PLAYERS
Default Value: 64
User Viewable:
User Editable:
[SERVER] World Name

Specific World to load by the server at startup

Environment Variable: WORLDNAME
Default Value: WorldName
User Viewable:
User Editable:
[SERVER] Public

Should the Server list itself on the Publicserverlist? If you set this to true everybody might join. Griefers might/will do what they want on the server, be sure to take measures.

Environment Variable: PUBLIC
Default Value: false
User Viewable:
User Editable:
[SERVER] Auto Pause

Should the server go to sleep when nobody is on it?

Environment Variable: AUTO_PAUSE
Default Value: true
User Viewable:
User Editable:
[GAME WORLD] Resources

Choices are : Rapid, Plentiful, Scarce, Greg

Environment Variable: G_RESOURCE
Default Value: scarce
User Viewable:
User Editable:
[GAME WORLD] Conveyors

Speed of conveyors : Slow, Fast

Environment Variable: G_CONVEYOR
Default Value: slow
User Viewable:
User Editable:
[GAME WORLD] Power

Power Choices : Scarce, Plentiful

Environment Variable: G_POWER
Default Value: scarce
User Viewable:
User Editable:
[GAME WORLD] Day

Day Choices : Eternal, Normal, Night

Environment Variable: G_DAY
Default Value: normal
User Viewable:
User Editable:
[GAME WORLD] CarePackage

Environment Variable: G_CAREPACKAGE
Default Value: false
User Viewable:
User Editable:
[GAME WORLD] Flat land

Environment Variable: G_FLATLAND
Default Value: false
User Viewable:
User Editable:
[GAME WORLD] RushMode

Environment Variable: G_RushMode
Default Value: false
User Viewable:
User Editable:
Install Script
#!/bin/bash
# steamcmd Base Installation Script


## just in case someone removed the defaults.
if [ "${STEAM_USER}" == "" ]; 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
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

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

#Custom Commands
SOURCE_DIR="/mnt/server/Default/Example Server Ini files"
TARGET_DIR="/mnt/server/Default"

echo "Copying default server ini files..."

if [ -d "${SOURCE_DIR}" ]; then
    cp -v "${SOURCE_DIR}/firstrun.ini" "${TARGET_DIR}/" 2>/dev/null || echo "firstrun.ini not found"
    cp -v "${SOURCE_DIR}/serveroverrides.ini" "${TARGET_DIR}/" 2>/dev/null || echo "serveroverrides.ini not found"
else
    echo "Warning: ${SOURCE_DIR} does not exist, skipping ini copy"
fi
# Remove comment lines starting with --
sed -i '/^[[:space:]]*--/d' /mnt/server/Default/firstrun.ini

# Remove inline comments after values (e.g. "greg  --comment")
sed -i 's/\s*--.*$//' /mnt/server/Default/firstrun.ini
    echo " Cleanup INI file layout "
echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"
Installation Imageghcr.io/ptero-eggs/installers:debianInstallation Entrypointbash