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
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.
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.
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 Hide
#!/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 "-----------------------------------------"