{"meta":{"slug":"pterodactyl-egg-subsistence","name":"Pterodactyl Egg Subsistence","category":"subsistence","source":"pelican","owner":"pelican-eggs","repo":"games-steamcmd","branch":"main","path":"subsistence/pterodactyl-egg-subsistence.json","rawUrl":"https://raw.githubusercontent.com/pelican-eggs/games-steamcmd/main/subsistence/pterodactyl-egg-subsistence.json","indexedAt":1792246788483},"egg":{"_comment":"DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO","meta":{"version":"PTDL_v2","update_url":null},"exported_at":"2026-09-13T00:35:18+00:00","name":"Subsistence","author":"syyyn84@gmail.com","description":"Subsistence dedicated server (Steam app 1362640). The dedicated server is Windows-only (UDK.exe / Unreal Engine 3), so this egg installs the Windows depot through SteamCMD and runs it under Wine + Xvfb. Allocate the game port (default 7777 UDP/TCP), a Steam query port (default 27015 UDP.) Official guide: https://steamcommunity.com/sharedfiles/filedetails/?id=2201638184","features":["steam_disk_space"],"docker_images":{"ghcr.io/pelican-eggs/yolks:wine_latest":"ghcr.io/pelican-eggs/yolks:wine_latest","ghcr.io/pelican-eggs/yolks:wine_staging":"ghcr.io/pelican-eggs/yolks:wine_staging"},"file_denylist":[],"startup":"rm -f /home/container/UDKGame/Logs/Launch.log; xvfb-run --auto-servernum --server-args='-screen 0 1024x768x16' wine /home/container/Binaries/Win64/UDK.exe server coldmap1?steamsockets -log -FORCELOGFLUSH -Port={{SERVER_PORT}}   -ini:UDKEngine:OnlineSubsystemSteamworks.OnlineSubsystemSteamworks.QueryPort={{QUERY_PORT}} & UDK_PID=$!; tail -F /home/container/UDKGame/Logs/Launch.log --pid=$UDK_PID","config":{"files":"{\n    \"UDKGame/Config/UDKDedServerSettings.ini\": {\n        \"parser\": \"ini\",\n        \"find\": {\n            \"ColdGame.ColdDedServerSettings.ProfileId\": \"{{server.build.env.PROFILE_ID}}\",\n            \"ColdGame.ColdDedServerSettings.ServerName\": \"{{server.build.env.SERVER_NAME}}\",\n            \"ColdGame.ColdDedServerSettings.ServerDescription\": \"{{server.build.env.SERVER_DESCRIPTION}}\",\n            \"ColdGame.ColdDedServerSettings.HostedByName\": \"{{server.build.env.HOSTED_BY}}\",\n            \"ColdGame.ColdDedServerSettings.Password\": \"{{server.build.env.SERVER_PASSWORD}}\",\n            \"ColdGame.ColdDedServerSettings.AdminPassword\": \"{{server.build.env.ADMIN_PASSWORD}}\",\n            \"ColdGame.ColdDedServerSettings.MaxPlayers\": \"{{server.build.env.MAX_PLAYERS}}\",\n            \"ColdGame.ColdDedServerSettings.Difficulty\": \"{{server.build.env.DIFFICULTY}}\",\n            \"ColdGame.ColdDedServerSettings.HuntersEnabled\": \"{{server.build.env.HUNTERS_ENABLED}}\",\n            \"ColdGame.ColdDedServerSettings.HunterAttacks\": \"{{server.build.env.HUNTER_ATTACKS}}\",\n            \"ColdGame.ColdDedServerSettings.DaysPerYear\": \"{{server.build.env.DAYS_PER_YEAR}}\",\n            \"ColdGame.ColdDedServerSettings.MonthOverride\": \"{{server.build.env.MONTH_OVERRIDE}}\",\n            \"ColdGame.ColdDedServerSettings.PvPDamage\": \"{{server.build.env.PVP_DAMAGE}}\",\n            \"ColdGame.ColdDedServerSettings.PlayersCanDamagePlayerBases\": \"{{server.build.env.PVP_BASE_DAMAGE}}\",\n            \"ColdGame.ColdDedServerSettings.OfflineBaseProtection\": \"{{server.build.env.OFFLINE_BASE_PROTECTION}}\",\n            \"ColdGame.ColdDedServerSettings.PlayersCanAccessEnemyPlayerBaseItems\": \"{{server.build.env.ENEMY_BASE_ACCESS}}\",\n            \"ColdGame.ColdDedServerSettings.NumPlayerOfflineHoursBeforeBaseDecay\": \"{{server.build.env.BASE_DECAY_HOURS}}\",\n            \"ColdGame.ColdDedServerSettings.Mods\": \"{{server.build.env.MODS}}\"\n        }\n    }\n}","startup":"{\n    \"done\": \"Steam game server UID\"\n}","logs":"{}","stop":"^C"},"scripts":{"installation":{"script":"#!/bin/bash\n# Subsistence Dedicated Server installer\n# App ID 1362640 is Windows-only, so force the Windows depot and run it with Wine at runtime.\n\nset -e\n\nRED='\\033[0;31m'\nGREEN='\\033[0;32m'\nYELLOW='\\033[1;33m'\nBLUE='\\033[0;34m'\nNC='\\033[0m'\n\necho -e \"${BLUE}-------------------------------------------------${NC}\"\necho -e \"${YELLOW}Subsistence Dedicated Server (app 1362640, Windows via Wine)${NC}\"\necho -e \"${BLUE}-------------------------------------------------${NC}\"\n\nif [[ -z \"${STEAM_USER}\" ]] || [[ -z \"${STEAM_PASS}\" ]] || [[ \"${STEAM_USER}\" == \"anonymous\" ]]; then\n    echo -e \"Using anonymous Steam login.\"\n    STEAM_USER=anonymous\n    STEAM_PASS=\"\"\n    STEAM_AUTH=\"\"\nelse\n    echo -e \"Steam user set to ${STEAM_USER}\"\nfi\n\nmkdir -p /mnt/server/steamcmd /mnt/server/steamapps\ncd /tmp\ncurl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz\ntar -xzf steamcmd.tar.gz -C /mnt/server/steamcmd\ncd /mnt/server/steamcmd\n\n# SteamCMD can fail if ownership/HOME is wrong during install\nchown -R root:root /mnt || true\nexport HOME=/mnt/server\necho -e \"${YELLOW}Downloading Windows dedicated server files (app ${SRCDS_APPID})...${NC}\"\n./steamcmd.sh +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +@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\n\nmkdir -p /mnt/server/.steam/sdk32 /mnt/server/.steam/sdk64\ncp -v /mnt/server/steamcmd/linux32/steamclient.so /mnt/server/.steam/sdk32/steamclient.so || true\ncp -v /mnt/server/steamcmd/linux64/steamclient.so /mnt/server/.steam/sdk64/steamclient.so || true\n\n# The Wine prefix is created by the runtime yolk on first start. Don't wipe it on reinstall.\nmkdir -p /mnt/server/UDKGame/Config /mnt/server/UDKGame/Logs /mnt/server/UDKGame/SaveData\n\nSETTINGS=/mnt/server/UDKGame/Config/UDKDedServerSettings.ini\nif [ ! -f \"${SETTINGS}\" ]; then\n    echo -e \"${YELLOW}Seeding UDKDedServerSettings.ini${NC}\"\n    cat > \"${SETTINGS}\" << 'EOF'\n[ColdGame.ColdDedServerSettings]\nProfileId=1\nHuntersEnabled=true\nHunterAttacks=0\nDifficulty=normal\nDaysPerYear=36\nMonthOverride=-1\nPassword=\nAdminPassword=changeme\nServerName=Pelican Subsistence Server\nServerDescription=A Subsistence dedicated server\nHostedByName=Pelican\nMaxPlayers=32\nNumPlayerOfflineHoursBeforeBaseDecay=0\nPvPDamage=true\nPlayersCanDamagePlayerBases=true\nOfflineBaseProtection=true\nPlayersCanAccessEnemyPlayerBaseItems=true\nMods=\nEOF\nfi\n\nif [ ! -f /mnt/server/Binaries/Win64/UDK.exe ]; then\n    echo -e \"${RED}ERROR: Binaries/Win64/UDK.exe was not found after SteamCMD install.${NC}\"\n    echo -e \"${RED}The Windows depot may have failed to download. Check the SteamCMD log above.${NC}\"\n    ls -la /mnt/server /mnt/server/Binaries || true\n    exit 1\nfi\n\necho -e \"${GREEN}Installation completed.${NC}\"\necho -e \"${YELLOW}First start initializes the Wine prefix and runs winetricks (${WINETRICKS_RUN}), which takes a few minutes.${NC}\"\n","container":"ghcr.io/parkervcp/installers:debian","entrypoint":"/bin/bash"}},"variables":[{"name":"Admin Password","description":"Password used to log in as admin. Join with ?password=THIS_VALUE or start steam.<uid>?password=THIS_VALUE","env_variable":"ADMIN_PASSWORD","default_value":"changeme","user_viewable":true,"user_editable":true,"rules":"required|string|max:64","field_type":"text"},{"name":"Auto Update","description":"If 1, the Wine yolk entrypoint will run SteamCMD before each start.","env_variable":"AUTO_UPDATE","default_value":"1","user_viewable":true,"user_editable":true,"rules":"boolean","field_type":"text"},{"name":"Base Decay Hours","description":"Real-world hours a team must be offline before their base starts decaying. 0 disables decay. Example: 96 = 4 days.","env_variable":"BASE_DECAY_HOURS","default_value":"0","user_viewable":true,"user_editable":true,"rules":"required|integer|min:0","field_type":"text"},{"name":"Days Per Year","description":"In-game days per in-game year. Allowed: 12, 24, 36, 48, 60, 90, 120, 200, 365.","env_variable":"DAYS_PER_YEAR","default_value":"36","user_viewable":true,"user_editable":true,"rules":"required|integer|in:12,24,36,48,60,90,120,200,365","field_type":"text"},{"name":"Difficulty","description":"easy / normal / hardcore","env_variable":"DIFFICULTY","default_value":"normal","user_viewable":true,"user_editable":true,"rules":"required|string|in:easy,normal,hardcore","field_type":"text"},{"name":"Enemy Base Item Access","description":"If true, players can access enemy chests, refineries, etc. Does not affect doors/windows/hatches.","env_variable":"ENEMY_BASE_ACCESS","default_value":"true","user_viewable":true,"user_editable":true,"rules":"required|string|in:true,false","field_type":"text"},{"name":"Hosted By","description":"Host label shown in the in-game server list. Max 64 characters.","env_variable":"HOSTED_BY","default_value":"Pelican","user_viewable":true,"user_editable":true,"rules":"nullable|string|max:64","field_type":"text"},{"name":"Hunter Attacks","description":"0 = normal attacks, 1 = revenge only, 2 = no attacks.","env_variable":"HUNTER_ATTACKS","default_value":"0","user_viewable":true,"user_editable":true,"rules":"required|integer|in:0,1,2","field_type":"text"},{"name":"Hunters Enabled","description":"Whether AI hunters spawn on the server.","env_variable":"HUNTERS_ENABLED","default_value":"true","user_viewable":true,"user_editable":true,"rules":"required|string|in:true,false","field_type":"text"},{"name":"Join Password","description":"Password players must enter to join. Leave blank for an open server.","env_variable":"SERVER_PASSWORD","default_value":"","user_viewable":true,"user_editable":true,"rules":"nullable|string|max:64","field_type":"text"},{"name":"Max Players","description":"Maximum player slots. Official range is 1-32.","env_variable":"MAX_PLAYERS","default_value":"32","user_viewable":true,"user_editable":true,"rules":"required|integer|between:1,32","field_type":"text"},{"name":"Mods","description":"Comma-separated workshop IDs and/or local mod UUIDs written to UDKDedServerSettings.ini. Example: 567890,81873EFT-F20C-56FE-BD9B-DAC37A0E2275. Leave blank for vanilla.","env_variable":"MODS","default_value":"","user_viewable":true,"user_editable":true,"rules":"nullable|string|max:512","field_type":"text"},{"name":"Month Override","description":"-1 = use save file month. Otherwise 0-11 (Jan-Dec). Reset to -1 after the first launch.","env_variable":"MONTH_OVERRIDE","default_value":"-1","user_viewable":true,"user_editable":true,"rules":"required|integer|between:-1,11","field_type":"text"},{"name":"Offline Base Protection","description":"Protect bases while all members are offline (within BCU / range extender).","env_variable":"OFFLINE_BASE_PROTECTION","default_value":"true","user_viewable":true,"user_editable":true,"rules":"required|string|in:true,false","field_type":"text"},{"name":"Players Can Damage Bases","description":"If true, players can damage player-placed buildables.","env_variable":"PVP_BASE_DAMAGE","default_value":"true","user_viewable":true,"user_editable":true,"rules":"required|string|in:true,false","field_type":"text"},{"name":"Profile Id","description":"Save slot on this instance. Must be 1-5.","env_variable":"PROFILE_ID","default_value":"1","user_viewable":true,"user_editable":true,"rules":"required|integer|between:1,5","field_type":"text"},{"name":"PvP Damage","description":"If true, players can damage other players.","env_variable":"PVP_DAMAGE","default_value":"true","user_viewable":true,"user_editable":true,"rules":"required|string|in:true,false","field_type":"text"},{"name":"Server Description","description":"Short description shown when a player clicks the server in the list. Max 256 characters.","env_variable":"SERVER_DESCRIPTION","default_value":"A Subsistence dedicated server","user_viewable":true,"user_editable":true,"rules":"nullable|string|max:256","field_type":"text"},{"name":"Server Name","description":"Name shown in the in-game dedicated server list. Max 64 characters.","env_variable":"SERVER_NAME","default_value":"Pelican Subsistence Server","user_viewable":true,"user_editable":true,"rules":"required|string|max:64","field_type":"text"},{"name":"Steam App ID","description":"Subsistence Dedicated Server Steam App ID.","env_variable":"SRCDS_APPID","default_value":"1362640","user_viewable":false,"user_editable":false,"rules":"required|string|in:1362640","field_type":"text"},{"name":"Steam Beta Branch","description":"Optional SteamCMD beta branch (for example experimental). Leave empty for the default public branch.","env_variable":"SRCDS_BETAID","default_value":"","user_viewable":true,"user_editable":true,"rules":"nullable|string|max:64","field_type":"text"},{"name":"Steam Query Port","description":"Steam query port so the server appears in the in-game list. Allocate this UDP port on the server and set this value to match. Default 27015.","env_variable":"QUERY_PORT","default_value":"27015","user_viewable":true,"user_editable":true,"rules":"required|integer|between:1024,65535","field_type":"text"},{"name":"SteamAppId","description":"Client/game App ID required by Steamworks on the dedicated server.","env_variable":"SteamAppId","default_value":"418030","user_viewable":false,"user_editable":false,"rules":"required|string|in:418030","field_type":"text"},{"name":"WINDOWS_INSTALL","description":"Force SteamCMD to download the Windows dedicated server depot.","env_variable":"WINDOWS_INSTALL","default_value":"1","user_viewable":false,"user_editable":false,"rules":"required|string|in:1","field_type":"text"},{"name":"WINEARCH","description":"Wine architecture. UDK.exe is 64-bit.","env_variable":"WINEARCH","default_value":"win64","user_viewable":false,"user_editable":false,"rules":"required|string|in:win64","field_type":"text"},{"name":"WINEDEBUG","description":"Wine debug channel filter.","env_variable":"WINEDEBUG","default_value":"-all","user_viewable":false,"user_editable":false,"rules":"required|string","field_type":"text"},{"name":"WINETRICKS_RUN","description":"Winetricks verbs installed on first start by the Wine yolk. UE3 needs VC++ 2010/2019 and D3DX9.","env_variable":"WINETRICKS_RUN","default_value":"vcrun2010 vcrun2019 d3dx9","user_viewable":false,"user_editable":false,"rules":"required|string","field_type":"text"},{"name":"XVFB","description":"Enable the virtual framebuffer in the Wine yolk entrypoint.","env_variable":"XVFB","default_value":"1","user_viewable":false,"user_editable":false,"rules":"required|string|in:0,1","field_type":"text"}]},"readme":"# Subsistence\n\n[Subsistence](https://store.steampowered.com/app/418030/Subsistence/) is an open-world, sandbox, first-person, solo or co-op survival game. Build a base, hunt for food, defend against AI hunters, and compete or cooperate with other players.\n\nThe dedicated server (Steam app `1362640`) is Windows-only (UDK.exe / Unreal Engine 3), so this egg installs the Windows depot through SteamCMD and runs it under Wine + Xvfb using the Pelican Wine yolk (`ghcr.io/pelican-eggs/yolks:wine_latest`).\n\nOfficial server setup guide: https://steamcommunity.com/sharedfiles/filedetails/?id=2201638184\n\n### Configuration files\n\n| File | Purpose | Path |\n|------|---------|------|\n| UDKDedServerSettings.ini | Server settings (name, difficulty, PvP rules, base decay, mods, etc.) | `UDKGame/Config/UDKDedServerSettings.ini` |\n\n## Server Ports\n\n| Name  | Default |\n|-------|---------|\n| Game  | 7777    |\n| Query | 27015   |\n\nAllocate the game port and the query port (so the server appears in the in-game list).\n"}