
Subsistence is an open-world survival game set in a hostile wilderness. Hunt, farm, craft, build a base, and defend against hostile NPCs called Hunters. Supports up to 32 players in co-op or PvP.
Here's what you need to run a Subsistence dedicated server.
Small private server, 1-4 players
Friends & co-op, 4-12 players
Large community server, 12-32 players
Start hosting from your own computer
Run a Subsistence server on your desktop, laptop, VPS, or dedicated machine — GameCP automates Docker setup, resource allocation, and Subsistence configuration instantly. Automatic port forwarding means your friends can connect without touching your router. Start local, scale to a VPS when you're ready.
Skip the manual SteamCMD installation, port forwarding, and systemd configuration. Install on your own computer and start hosting instantly.
The full manual process to host a Subsistence dedicated server on a VPS. Or install GameCP on your own computer and skip all of this.
Set your server settings, then install Docker, SteamCMD, and pull the Subsistence container image.
# Update system and install Docker sudo apt update && sudo apt install -y docker.io sudo systemctl enable --now docker # Create game server directory sudo mkdir -p /opt/gameserver # Install SteamCMD sudo mkdir -p /opt/steamcmd curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | sudo tar zxvf - -C /opt/steamcmd # Server configuration export AUTO_UPDATE="1" # Pull the container image docker pull ghcr.io/gamecp/runtimes:wine-vcrun
Download the Subsistence dedicated server using Steam App ID 1362640.
# Download Subsistence server files (App ID: 1362640) /opt/steamcmd/steamcmd.sh \ +force_install_dir /opt/gameserver \ +login anonymous \ +app_update 1362640 validate \ +quit
Subsistence requires 3 ports to be open for game traffic and queries.
sudo ufw allow 7777/both sudo ufw allow 27015/udp sudo ufw allow 7778/both
Start the Subsistence server using the configuration from Step 1.
Create the startup script
# Create the startup script cat > /opt/gameserver/start.sh << 'EOF' # Wine prefix, Mono, and vcrun2022 are pre-baked in the Docker image at /opt/wine-prefix # Copy pre-baked prefix on first boot (fast local copy vs 10min download) if [ ! -f /home/container/.wine/system.reg ]; then echo 'Restoring pre-baked Wine prefix...' cp -a /opt/wine-prefix /home/container/.wine [ -d /opt/wine-cache ] && cp -a /opt/wine-cache /home/container/.cache echo 'Wine prefix restored.' fi # Fix Wine HOME ownership issue (Windows volume mounts make /home/container owned by root) export HOME=/tmp/wine-home mkdir -p /tmp/wine-home export WINEPREFIX=/home/container/.wine export WINEDLLOVERRIDES="mshtml=" # Start persistent Xvfb (NOT xvfb-run -- Wine forks and xvfb-run kills display) rm -f /tmp/.X*-lock 2>/dev/null mkdir -p /tmp/.X11-unix 2>/dev/null || true Xvfb :99 -screen 0 640x480x24 -ac 2>&1 & XVFB_PID=$! sleep 1 export DISPLAY=:99 # Create directories UDK.exe expects mkdir -p ./UDKGame/SaveData/BannedPlayers mkdir -p ./UDKGame/SaveData/ProfileSaves mkdir -p ./UDKGame/Script mkdir -p ./UDKGame/Config/backups [ ! -f ./UDKGame/SaveData/BannedPlayers/bannedPlayerList.sav ] && touch ./UDKGame/SaveData/BannedPlayers/bannedPlayerList.sav [ ! -f ./UDKGame/SaveData/ProfileSaves/saveFilesList.sav ] && touch ./UDKGame/SaveData/ProfileSaves/saveFilesList.sav [ ! -f ./UDKGame/Script/Manifest.txt ] && touch ./UDKGame/Script/Manifest.txt echo 'Starting Subsistence server...' rm -f ./UDKGame/Logs/Launch.log mkdir -p ./UDKGame/Logs # setarch disables ASLR -- fixes Wine stack overflow with UDK.exe on Wine 11+ setarch x86_64 -R wine ./Binaries/Win64/UDK.exe server coldmap1?steamsockets -log -Port=7777 -PeerPort= -MaxPlayers= 2>&1 & WINE_PID=$! # Wait for UDK to create the log file, then tail it to stdout (s=0; while true; do sleep 3; s=); echo " Waiting for server... (s)"; done) & HEARTBEAT=$! for i in ; do if [ -f ./UDKGame/Logs/Launch.log ]; then echo "Log file detected after s" break fi sleep 1 done kill 2>/dev/null; wait 2>/dev/null if [ -f ./UDKGame/Logs/Launch.log ]; then tail -F ./UDKGame/Logs/Launch.log & TAIL_PID=$! else echo 'WARNING: Launch.log was not created after 120s' echo 'Wine processes: ' ps aux | grep -i wine || true TAIL_PID="" fi wait WINE_EXIT=$? [ -n "" ] && kill 2>/dev/null kill 2>/dev/null if [ -ne 0 ]; then echo "Wine process exited with code: " fi EOF chmod +x /opt/gameserver/start.sh
Run the container
docker run -d \ --name subsistence-server \ -p 7777:7777/both \ -p 27015:27015/udp \ -p 7778:7778/both \ -e AUTO_UPDATE="1" \ -v /opt/gameserver:/opt/gameserver \ -w /opt/gameserver \ ghcr.io/gamecp/runtimes:wine-vcrun \ ./start.sh
GameCP automates every step above: Docker, SteamCMD, port forwarding, startup, and config. Install on your own PC and deploy a Subsistence server in under 5 minutes.
Deploy with GameCPExplore step-by-step setup guides for other popular games supported by GameCP.
Install GameCP on your own computer and start hosting in minutes. Automatic port forwarding, zero config — your friends connect instantly.
No credit card required · Free tier available · Install local, scale later