This commit is contained in:
Ken Ren
2024-04-04 14:26:54 -04:00
committed by GitHub
Unverified
7 changed files with 229 additions and 13 deletions
@@ -1,6 +1,6 @@
# Don't Starve Together
## From their [site](https://www.klei.com/games/dont-starve)
## Offical [Website](https://www.klei.com/games/dont-starve)
Dont Starve is an uncompromising wilderness survival game full of science and magic.
@@ -8,16 +8,6 @@ You play as Wilson, an intrepid Gentleman Scientist who has been trapped by a de
Enter a strange and unexplored world full of strange creatures, dangers, and surprises. Gather resources to craft items and structures that match your survival style. Play your way as you unravel the mysteries of this strange land.
## Minimum RAM warning
## [Vanilla Server Egg](/game_eggs/steamcmd_servers/dont_starve/vanilla)
Minimum required memory to run the server is around 512mb for a single user..
## Server Ports
Don't Starve Together only requires a single port to run. All network communications are proxied through the master. The default is 10999
| Port | default |
|---------|---------|
| Game | 10999 |
### Mods/Plugins may require ports to be added to the server
## [Modded Server Egg](/game_eggs/steamcmd_servers/dont_starve/modded)
@@ -0,0 +1,31 @@
# Don't Starve Together
## Reason for a Separate Egg
Vanilla egg works fine when no mod added, while some mods are added to the server, "coproc" command will not start the server within it correctly. Thus this egg uses Supervisord to properly manage the processes.
## Warning for Stopping Servers
Due to a design limitation of the game, it cannot exit gracefully using standard Linux signals.
For a graceful shutdown, please follow these steps:
1. Use the 'fg caves' and 'fg master' commands to access each shard's process within supervisorctl.
2. Manually type 'c_shutdown()' in each process to initiate a graceful shutdown.
After completing the manual shutdown, you can safely click the 'stop' button or type 'exit' in supervisorctl.
**Note: If you don't do so, the last unsaved day in game will be lost.**
## Minimum RAM warning
Minimum required memory to run the server is around 512mb for a single user..
## Server Ports
Don't Starve Together only requires a single port to run. All network communications are proxied through the master. The default is 10999
| Port | default |
|---------|---------|
| Game | 10999 |
### Mods/Plugins may require ports to be added to the server
@@ -0,0 +1,17 @@
---------------------------------------
!!! Warning: Game Exit Procedure !!!
Attention:
Due to a design limitation of the game, it cannot exit gracefully using standard Linux signals.
For a graceful shutdown, please follow these steps:
1. Use the 'fg caves' and 'fg master' commands to access each shard's process within supervisorctl.
2. Manually type 'c_shutdown()' in each process to initiate a graceful shutdown.
After completing the manual shutdown, you can safely click the 'stop' button or type 'exit' to exit supervisorctl.
---------------------------------------
@@ -0,0 +1,124 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2024-01-12T05:04:50-05:00",
"name": "Don't Starve Together Modded",
"author": "parker@parkervcp.com",
"description": "Don\u2019t Starve Together is an uncompromising wilderness survival game full of science and magic.",
"features": [
"steam_disk_space"
],
"docker_images": {
"ghcr.io\/parkervcp\/games:source": "ghcr.io\/parkervcp\/games:source"
},
"file_denylist": [],
"startup": "supervisord -c .\/Supervisord\/supervisord.conf & sleep 1 && cat Warnning.txt & sleep 5 && supervisorctl -c .\/Supervisord\/supervisord.conf",
"config": {
"files": "{\r\n \"DoNotStarveTogether\/config\/server\/cluster.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"GAMEPLAY.game_mode\": \"{{server.build.env.GAME_MODE}}\",\r\n \"GAMEPLAY.max_players\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"NETWORK.cluster_name\": \"{{server.build.env.CLUSTER_NAME}}\",\r\n \"NETWORK.cluster_description\": \"{{server.build.env.CLUSTER_DESC}}\",\r\n \"SHARD.shard_enabled\": \"true\",\r\n \"SHARD.bind_ip\": \"127.0.0.1\",\r\n \"SHARD.master_ip\": \"127.0.0.1\",\r\n \"SHARD.master_port\": \"11001\"\r\n }\r\n },\r\n \"DoNotStarveTogether\/config\/server\/Master\/server.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"NETWORK.server_port\": \"{{server.build.default.port}}\",\r\n \"SHARD.is_master\": \"true\"\r\n }\r\n },\r\n \"DoNotStarveTogether\/config\/server\/Caves\/server.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"NETWORK.server_port\": \"11000\",\r\n \"SHARD.is_master\": \"false\",\r\n \"SHARD.name\": \"Caves\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"RUNNING\"\r\n}",
"logs": "{}",
"stop": "^c"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## DST specific\r\n## cluster token file\r\necho -e \"getting cluster configs\"\r\nmkdir -p \/mnt\/server\/DoNotStarveTogether\/config\/server\/\r\nif [ ! -f \/mnt\/server\/DoNotStarveTogether\/config\/server\/cluster_token.txt ]; then\r\n echo \"${SERVER_TOKEN}\" >> \/mnt\/server\/DoNotStarveTogether\/config\/server\/cluster_token.txt\r\nfi\r\n\r\n## cluster configs \r\nif [ ! -f \/mnt\/server\/DoNotStarveTogether\/config\/server\/cluster.ini ]; then\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/dont_starve\/server.cluster.ini -o \/mnt\/server\/DoNotStarveTogether\/config\/server\/cluster.ini\r\nfi\r\n\r\n## master configs\r\necho -e \"getting master configs\"\r\nmkdir -p \/mnt\/server\/DoNotStarveTogether\/config\/server\/Master\/\r\n## master ini\r\nif [ ! -f \/mnt\/server\/DoNotStarveTogether\/config\/server\/Master\/server.ini ]; then\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/dont_starve\/server.master.ini -o \/mnt\/server\/DoNotStarveTogether\/config\/server\/Master\/server.ini\r\nfi\r\n\r\n## master worldgen override\r\nif [ ! -z ${MASTER_WORLDGEN} ] && [ ! -f \/mnt\/server\/DoNotStarveTogether\/config\/server\/Master\/worldgenoverride.lua ]; then\r\n curl -sSL ${MASTER_WORLDGEN} -o \/mnt\/server\/DoNotStarveTogether\/config\/server\/Master\/worldgenoverride.lua\r\nfi\r\n\r\n## caves configs\r\necho -e \"getting cave configs\"\r\nmkdir -p \/mnt\/server\/DoNotStarveTogether\/config\/server\/Caves\/\r\n## caves ini\r\nif [ ! -f \/mnt\/server\/DoNotStarveTogether\/config\/server\/Caves\/server.ini ]; then\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/dont_starve\/server.caves.ini -o \/mnt\/server\/DoNotStarveTogether\/config\/server\/Caves\/server.ini\r\nfi\r\n\r\n## caves worldgen override\r\nif [ ! -z ${CAVES_WORLDGEN} ] && [ ! -f \/mnt\/server\/DoNotStarveTogether\/config\/server\/Caves\/worldgenoverride.lua ]; then\r\n curl -sSL ${CAVES_WORLDGEN} -o \/mnt\/server\/DoNotStarveTogether\/config\/server\/Caves\/worldgenoverride.lua\r\nfi\r\n\r\n## Download Supervisord configuration file\r\nif [ ! -f \/mnt\/server\/Supervisord\/supervisord.conf ]; then\r\n mkdir -p \/mnt\/server\/Supervisord\/\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/dont_starve\/modded\/supervisord.conf -o \/mnt\/server\/Supervisord\/supervisord.conf\r\nfi\r\n\r\n## Download Warnning Text file\r\nif [ ! -f \/mnt\/server\/Warnning.txt ]; then\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/dont_starve\/modded\/Warnning.txt -o \/mnt\/server\/Warnning.txt\r\nfi\r\n\r\necho -e \"install complete\"",
"container": "ghcr.io\/parkervcp\/installers:debian",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "\u6700\u5927\u73a9\u5bb6\u6570\u91cf",
"description": "\u8bbe\u7f6e\u6700\u5927\u540c\u65f6\u5728\u7ebf\u73a9\u5bb6\u6570\u91cf\uff0c\u4e0d\u5efa\u8bae\u8d85\u8fc720\uff0c\u9ed8\u8ba416\u3002",
"env_variable": "MAX_PLAYERS",
"default_value": "16",
"user_viewable": true,
"user_editable": true,
"rules": "required|integer|between:1,31",
"field_type": "text"
},
{
"name": "\u670d\u52a1\u5668Token\uff08\u5fc5\u586b\uff09",
"description": "\u8bf7\u53bb\u4ee5\u4e0b\u94fe\u63a5\u83b7\u53d6Token\u3002\r\nhttps:\/\/accounts.klei.com\/account\/game\/servers?game=DontStarveTogether",
"env_variable": "SERVER_TOKEN",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:64",
"field_type": "text"
},
{
"name": "App ID",
"description": "Steam Server App ID",
"env_variable": "SRCDS_APPID",
"default_value": "343050",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|max:20",
"field_type": "text"
},
{
"name": "\u81ea\u52a8\u66f4\u65b0",
"description": "\u8bbe\u7f6e\u4e3a1\u542f\u52a8\u81ea\u52a8\u66f4\u65b0\u3002",
"env_variable": "AUTO_UPDATE",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean",
"field_type": "text"
},
{
"name": "\u6e38\u620f\u6a21\u5f0f",
"description": "\u6709\u6548\u503c\u4e3a survival\uff0cendless \u6216 wilderness\u3002",
"env_variable": "GAME_MODE",
"default_value": "survival",
"user_viewable": true,
"user_editable": true,
"rules": "required|string",
"field_type": "text"
},
{
"name": "\u670d\u52a1\u5668\u540d\u79f0",
"description": "\u670d\u52a1\u5668\u5217\u8868\u663e\u793a\u7684\u540d\u5b57",
"env_variable": "CLUSTER_NAME",
"default_value": "A Pterodactyl Server",
"user_viewable": true,
"user_editable": true,
"rules": "required|string",
"field_type": "text"
},
{
"name": "\u670d\u52a1\u5668\u63cf\u8ff0",
"description": "\u670d\u52a1\u5668\u5217\u8868\u663e\u793a\u7684\u63cf\u8ff0",
"env_variable": "CLUSTER_DESC",
"default_value": "A Pterodactyl Hosted Server",
"user_viewable": true,
"user_editable": true,
"rules": "required|string",
"field_type": "text"
},
{
"name": "Master Worldgen Override",
"description": "Link to the lua file used to generate the master server map. Only used during the install phase.",
"env_variable": "MASTER_WORLDGEN",
"default_value": "https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/dont_starve\/worldgenoverride.master.lua",
"user_viewable": false,
"user_editable": false,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "Master Worldgen Override",
"description": "Link to the lua file used to generate the caves server map. Only used during the install phase.\r\n\r\nDefault generates a cave map",
"env_variable": "CAVES_WORLDGEN",
"default_value": "https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/dont_starve\/worldgenoverride.caves.lua",
"user_viewable": false,
"user_editable": false,
"rules": "nullable|string",
"field_type": "text"
}
]
}
@@ -0,0 +1,31 @@
[supervisord]
nodaemon=true
logfile=./Supervisord/supervisord.log
pidfile=./Supervisord/supervisord.pid
[supervisorctl]
[inet_http_server]
port = 127.0.0.1:9001
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[program:caves]
command=/bin/sh -c './dontstarve_dedicated_server_nullrenderer_x64 -bind_ip 0.0.0.0 -port 11000 -persistent_storage_root /home/container/DoNotStarveTogether -conf_dir config -cluster server -players ${MAX_PLAYERS} -shard Caves'
autostart=true
autorestart=false
redirect_stderr=true
stdout_logfile=/home/container/DoNotStarveTogether/config/server/Caves/server_log.txt
directory=/home/container/bin64
stopsignal=KILL
[program:master]
command=/bin/sh -c './dontstarve_dedicated_server_nullrenderer_x64 -bind_ip 0.0.0.0 -port ${SERVER_PORT} -persistent_storage_root /home/container/DoNotStarveTogether -conf_dir config -cluster server -players ${MAX_PLAYERS} -shard Master'
autostart=true
autorestart=false
redirect_stderr=true
stdout_logfile=/home/container/DoNotStarveTogether/config/server/Master/server_log.txt
directory=/home/container/bin64
stopsignal=KILL
@@ -0,0 +1,23 @@
# Don't Starve Together
## From their [site](https://www.klei.com/games/dont-starve)
Dont Starve is an uncompromising wilderness survival game full of science and magic.
You play as Wilson, an intrepid Gentleman Scientist who has been trapped by a demon and transported to a mysterious wilderness world. Wilson must learn to exploit his environment and its inhabitants if he ever hopes to escape and find his way back home.
Enter a strange and unexplored world full of strange creatures, dangers, and surprises. Gather resources to craft items and structures that match your survival style. Play your way as you unravel the mysteries of this strange land.
## Minimum RAM warning
Minimum required memory to run the server is around 512mb for a single user..
## Server Ports
Don't Starve Together only requires a single port to run. All network communications are proxied through the master. The default is 10999
| Port | default |
|---------|---------|
| Game | 10999 |
### Mods/Plugins may require ports to be added to the server