Foundry
Build a factory optimized to perfection or an artistic masterpiece in an infinite voxel world. Mine and harvest resources, automate your ever-growing production lines and manage complex systems while researching your way to mechanical mastery in FOUNDRY.
Ports
Add an allocation on the node for each port.
- Game 3724
- Query 27015
Image
- Wine ghcr.io/ptero-eggs/yolks:wine_latest
Panel features
- steam_disk_space
The Panel tells the user when SteamCMD does not have enough disk space.
Startup
The Panel runs this command to start the server. It replaces each variable in the command with the value of that variable.
16 variables
Startup command
xvfb :0 -screen 0 1024x768x16; DISPLAY=:0.0 xvfb-run wine /home/container/FoundryDedicatedServer.exe -logSets the network port used by the Steam server browser to query information about the game. This is only used if the server is set to public.
QUERY_PORTUsers can see
required|integer|between:1024,65536
This is the name of the server listed in the Steam server browser.
SERVER_NAMEUsers can edit
required|string|max:40A value is required.
Sets the server world name. This is the folder where the save files will be stored.
WORLD_NAMEUsers can edit
required|string|max:20
Sets the server password.
SRV_PWUsers can edit
nullable|string|max:20
Will the server pause when nobody is connected.
PAUSE_SERVERUsers can edit
required|string|in:true,false
Sets the autosave frequency in seconds.
AUTOSAVE_INTERVALUsers can edit
required|numeric
Sets whether the server is listed on the Steam server browser.
PUBLIC_SERVERUsers can edit
required|string|in:true,false
Sets the map seed used to generate the world.
MAP_SEEDUsers can edit
required|numeric
This sets the max amount of players on a server.
MAX_PLAYERSUsers can edit
required|numeric
SAVE_PATHUsers can edit
required|string
AUTO_UPDATEUsers can edit
required|boolean
WINDOWS_INSTALLUsers cannot see
required|in:1
Steam App ID
SRCDS_APPIDUsers cannot see
required|string|in:2915550
WINETRICKS_RUNUsers cannot see
required|string
WINEDEBUGUsers cannot see
required|string
XVFBUsers cannot see
required|in:1
Wings
- Stop command
- ^C (SIGINT)
- Running when the console shows
- Dedicated server is now running!
Files Wings edits
Wings sets these values in these files before each start.
App.cfg properties
- server_name
- {{server.build.env.SERVER_NAME}}
- server_password
- {{server.build.env.SRV_PW}}
- server_world_name
- {{server.build.env.WORLD_NAME}}
- server_max_players
- {{server.build.env.MAX_PLAYERS}}
- server_port
- {{server.build.default.port}}
- server_query_port
- {{server.build.env.QUERY_PORT}}
- pause_server_when_empty
- {{server.build.env.PAUSE_SERVER}}
- autosave_interval
- {{server.build.env.AUTOSAVE_INTERVAL}}
- server_is_public
- {{server.build.env.PUBLIC_SERVER}}
- server_persistent_data_override_folder
- {{server.build.env.SAVE_PATH}}
- map_seed
- {{server.build.env.MAP_SEED}}
Readme
Foundry
Game Description
Build a factory optimized to perfection or an artistic masterpiece in an infinite voxel world. Mine and harvest resources, automate your ever-growing production lines and manage complex systems while researching your way to mechanical mastery in FOUNDRY.
Useful links
Steam: https://store.steampowered.com/app/983870/FOUNDRY/ Homepage: https://www.paradoxinteractive.com/games/foundry/about More server info: https://dedicated.foundry-game.com/
Author & Contributers
| Name | Github Profile | Buy me a Coffee |
|---|---|---|
| gOOvER | https://github.com/gOOvER |
Server Ports
Foundry requires up to 2 ports. You can choose every port you want.
| Port | default |
|---|---|
| Game | 3724 |
| Query | 27015 |
Changes
- SteamCMD + Other fixes
· yesBad · edbf925
- Add steamcmd based eggs
· Daniel Barton · 60ef9fb
Problem with this egg?
Open an issue on GitHub. Include your Panel and Wings versions.
Install script 96 lines bash in ghcr.io/ptero-eggs/installers:debian Show Hide
#!/bin/bash
clear
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
echo -e "${BLUE}-------------------------------------------------${NC}"
echo -e "${YELLOW}Foundry Installscript${NC}"
echo -e "${YELLOW}Egg by gOOvER | 2024 MIT Licence${NC}"
echo -e "${BLUE}-------------------------------------------------${NC}"
echo -e "${BLUE}-------------------------------------------------${NC}"
echo -e "${YELLOW}download and install steamcmd. please wait...${NC}"
echo -e "${BLUE}-------------------------------------------------${NC}"
## 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
echo -e "${GREEN}..done..${NC}"
## install game using steamcmd
echo -e "${BLUE}-------------------------------------------------${NC}"
echo -e "${YELLOW}install game using steamcmd. please wait...${NC}"
echo -e "${BLUE}-------------------------------------------------${NC}"
./steamcmd.sh +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update 1007 +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
# add below your custom commands if needed
mkdir -p $HOME/Mods
mkdir -p $HOME/serverfiles
#ccheck for config
FILE=$HOME/App.cfg
if [ -f "$FILE" ]; then
echo -e "${BLUE}-------------------------------------------------${NC}"
echo -e "${GREEN}App.cfg found.${NC}"
echo -e "${BLUE}-------------------------------------------------${NC}"
else
echo -e "${BLUE}-------------------------------------------------${NC}"
echo -e "${RED}No App.cfg found. downloading default...${NC}"
echo -e "${BLUE}-------------------------------------------------${NC}"
cd $HOME
curl -sSL -o App.cfg https://dedicated.foundry-game.com/App.cfg
echo -e "${GREEN}..done..${NC}"
fi
## cleanup to prevent errors
echo -e "${BLUE}-------------------------------------------------${NC}"
echo -e "${RED}deleting old wine dirs... please wait...${NC}"
echo -e "${BLUE}-------------------------------------------------${NC}"
if [ ! -d "/mnt/server/.wine" ]; then
rm -fR /mnt/server/.wine
rm -fR /mnt/server/.config
rm -fR /mnt/server/.cache
rm -fR /mnt/server/.local
rm -fR /mnt/server/appcache
fi
echo -e "${GREEN}..done..${NC}"
## install end
echo -e "${BLUE}-------------------------------------------------${NC}"
echo -e "${GREEN}Installation completed...${NC}"
echo -e "${BLUE}-------------------------------------------------${NC}"