Skip to content

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.

egg-foundry.json

updated

Ports

Add an allocation on the node for each port.

  • Game 3724
  • Query 27015

Install

Installer image
ghcr.io/ptero-eggs/installers:debian
Steam app
2915550
Steam login
not required
Install script
96 lines

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 -log
  • Sets 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 ko-fi

Server Ports

Foundry requires up to 2 ports. You can choose every port you want.

Port default
Game 3724
Query 27015

Changes

  1. SteamCMD + Other fixes

    · yesBad · edbf925

  2. Add steamcmd based eggs

    · Daniel Barton · 60ef9fb

All changes on GitHub

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