Skip to content
This repository has been archived by the owner on May 14, 2024. It is now read-only.

Added Dont Strave Together Modded Egg #2657

Open
wants to merge 12 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 3 additions & 13 deletions game_eggs/steamcmd_servers/dont_starve/README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,13 @@
# Don't Starve Together

## From their [site](https://www.klei.com/games/dont-starve)
## Offical [Website](https://www.klei.com/games/dont-starve)

Don’t 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
## [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)
31 changes: 31 additions & 0 deletions game_eggs/steamcmd_servers/dont_starve/modded/README.md
Original file line number Diff line number Diff line change
@@ -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
17 changes: 17 additions & 0 deletions game_eggs/steamcmd_servers/dont_starve/modded/Warnning.txt
Original file line number Diff line number Diff line change
@@ -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.

---------------------------------------


Original file line number Diff line number Diff line change
@@ -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": "[email protected]",
"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",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not allowed. As this way the startup is user editable.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any better ideas or solution? well, all Im asking is to get modded server to work properly.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not allowed. As this way the startup is user editable.

Can I bulid this into the source image for blocking user editing it.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not allowed. As this way the startup is user editable.

Can I bulid this into the source image for blocking user editing it.

Then that would need to be a custom image added to the game registrar

"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"
}
]
}
31 changes: 31 additions & 0 deletions game_eggs/steamcmd_servers/dont_starve/modded/supervisord.conf
Original file line number Diff line number Diff line change
@@ -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

23 changes: 23 additions & 0 deletions game_eggs/steamcmd_servers/dont_starve/vanilla/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Don't Starve Together

## From their [site](https://www.klei.com/games/dont-starve)

Don’t 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