Foundry
gamesBuild 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.
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 |
Docker Images (1)
| Name | Image |
|---|---|
ghcr.io/ptero-eggs/yolks:wine_latest | ghcr.io/ptero-eggs/yolks:wine_latest |
Startup Command
xvfb :0 -screen 0 1024x768x16; DISPLAY=:0.0 xvfb-run wine /home/container/FoundryDedicatedServer.exe -log Variables (16)
[SERVER] Steam Query Port
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.
- Environment:
QUERY_PORT- Default:
27015- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|integer|between:1024,65536
[SERVER] Server Name
This is the name of the server listed in the Steam server browser.
- Environment:
SERVER_NAME- Default:
None- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|max:40
[SERVER] Server World Name
Sets the server world name. This is the folder where the save files will be stored.
- Environment:
WORLD_NAME- Default:
MyFoundry- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|max:20
[SERVER] Server Password
Sets the server password.
- Environment:
SRV_PW- Default:
None- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
nullable|string|max:20
[SERVER] Pause Server When Empty
Will the server pause when nobody is connected.
- Environment:
PAUSE_SERVER- Default:
true- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|in:true,false
[SERVER] Autosave Interval
Sets the autosave frequency in seconds.
- Environment:
AUTOSAVE_INTERVAL- Default:
300- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|numeric
[SERVER] Server Public
Sets whether the server is listed on the Steam server browser.
- Environment:
PUBLIC_SERVER- Default:
true- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|in:true,false
[SERVER] Map Seed
Sets the map seed used to generate the world.
- Environment:
MAP_SEED- Default:
42938743982- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|numeric
[SERVER] Server Max Players
This sets the max amount of players on a server.
- Environment:
MAX_PLAYERS- Default:
32- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|numeric
[SERVER] Savepath
- Environment:
SAVE_PATH- Default:
/home/container/serverfiles- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string
[SERVER] Auto update the server
- Environment:
AUTO_UPDATE- Default:
1- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|boolean
WINDOWS_INSTALL
- Environment:
WINDOWS_INSTALL- Default:
1- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|in:1
[STEAM] Steam App ID
Steam App ID
- Environment:
SRCDS_APPID- Default:
2915550- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|in:2915550
[WINE] WINETRICKS_RUN
- Environment:
WINETRICKS_RUN- Default:
mono- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string
[WINE] WINEDEBUG
- Environment:
WINEDEBUG- Default:
-all- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string
[WINE] XVFB
- Environment:
XVFB- Default:
1- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|in:1
Installation Script
ghcr.io/ptero-eggs/installers:debianbash#!/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}"