Skip to content

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

egg-fortresscraft-evolved.json

updated

Ports

Add an allocation on the node for each port.

  • Game 27000
  • RCON 27001

Install

Installer image
ghcr.io/ptero-eggs/installers:debian
Steam app
443600
Steam login
optional
Install script
62 lines

Image

  • Debian STEAMCMD ghcr.io/ptero-eggs/steamcmd:debian

Startup

The Panel runs this command to start the server. It replaces each variable in the command with the value of that variable.

20 variables

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:"
  • This is a required setting and cannot be set to anonymous.

    STEAM_USERUsers cannot see

    nullable|string

  • Steam User Password

    STEAM_PASSUsers cannot see

    nullable|string

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

    SRCDS_APPIDUsers cannot see

    string

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

    STEAM_AUTHUsers cannot see

    nullable|string|max:5

  • This is to auto-update the game server

    AUTO_UPDATEUsers can edit

    required|boolean

  • Installs beta branch if specified.

    SRCDS_BETAIDUsers cannot see

    nullable|string|max:50

  • Server name

    SERVER_NAMEUsers can edit

    required|string|max:50

  • RCON Port

    RCON_PORTUsers can edit

    required|string|max:20

  • RCON Password

    RCON_PASSWORDUsers can edit

    required|string|max:20

  • Max Players (default is 64)

    MAX_PLAYERSUsers can edit

    required|integer|min:1|max:64

  • Specific World to load by the server at startup

    WORLDNAMEUsers can edit

    required|string|max:50

  • 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.

    PUBLICUsers can edit

    required|string|in:true,false

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

    AUTO_PAUSEUsers can edit

    required|string|in:true,false

  • Choices are : Rapid, Plentiful, Scarce, Greg

    G_RESOURCEUsers can edit

    required|string|in:rapid,plentiful,scarce,greg

  • Speed of conveyors : Slow, Fast

    G_CONVEYORUsers can edit

    required|string|in:slow,fast

  • Power Choices : Scarce, Plentiful

    G_POWERUsers can edit

    required|string|in:scarce,plentiful

  • Day Choices : Eternal, Normal, Night

    G_DAYUsers can edit

    required|string|in:eternal,normal,night

  • G_CAREPACKAGEUsers can edit

    required|string|in:true,false

  • G_FLATLANDUsers can edit

    required|string|in:true,false

  • G_RushModeUsers can edit

    required|string|in:true,false

Wings

Stop command
^C (SIGINT)
Running when the console shows
Headless server active

Files Wings edits

Wings sets these values in these files before each start.

Default/firstrun.ini ini

[config].Name
{{server.build.env.SERVER_NAME}}
[config].Resources
{{server.build.env.G_RESOURCE}}
[config].Conveyors
{{server.build.env.G_CONVEYOR}}
[config].Power
{{server.build.env.G_POWER}}
[config].Day
{{server.build.env.G_DAY}}
[config].CarePackage
{{server.build.env.G_CAREPACKAGE}}
[config].FlatLand
{{server.build.env.G_FLATLAND}}
[config].RushMode
{{server.build.env.G_RushMode}}

Default/serveroverrides.ini ini

[config].RCONPort
{{server.build.env.RCON_PORT}}
[config].RCONPassword
{{server.build.env.RCON_PASSWORD}}
[config].ServerPort
{{server.build.default.port}}
[config].MaxPlayers
{{server.build.env.MAX_PLAYERS}}
[config].WorldName
{{server.build.env.WORLDNAME}}
[config].IsPublic
{{server.build.env.PUBLIC}}
[config].AutoPause
{{server.build.env.AUTO_PAUSE}}

Readme

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

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

Server Ports

FotressCraft Evolved requires up to 2 ports

Port default
Game 27000
RCON 27001

This can be changed to any port.

Install Notes

Requirements Memory Storage CPU Network
Minimal 8 GB 10GB Decent Quad-Core CPU (3.2GHz+) 1-2Mbit/s per client is a rough guide
Recommended 8+ GB 20GB+ (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.

Changes

  1. Add: FortressCraft Evolved (#347)

    · brainshead · 45e962c

All changes on GitHub

Problem with this egg?

Open an issue on GitHub. Include your Panel and Wings versions.

Install script 62 lines bash in ghcr.io/ptero-eggs/installers:debian Show
#!/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 "-----------------------------------------"