Egg Repository

Pterodactyl Community Egg Repository

Enshrouded

Enshrouded is a game of survival, crafting, and Action RPG combat, set within a sprawling voxel-based continent. As you journey across the mountains and deserts of an open world, you are free to choose your path and shape your destiny. Credit to gOOvER for the help with the proton image which seems to be performing better over the wine egg.

Read Me

Enshrouded

Game Description

Enshrouded is a game of survival, crafting, and Action RPG combat, set within a sprawling voxel-based continent. As you journey across the mountains and deserts of an open world, you are free to choose your path and shape your destiny.

Ignite the Ancient power of the Flame, and piece together the fragments of a story that unfolds below the surface.

Usefull links

Homepage: https://enshrouded.com/ Steam: https://store.steampowered.com/app/1203620/Enshrouded/ Wiki: https://enshrouded.wiki.gg/wiki/Enshrouded_Wiki Discord: https://discord.gg/enshrouded

Author & Contributers

Name Github Profile Buy me a Coffee
Vapok https://github.com/Vapok https://www.buymeacoffee.com/vapok
QuintenQVD0 https://github.com/QuintenQVD0
gOOvER https://github.com/gOOvER ko-fi](https://ko-fi.com/B0B351D0Q)

Server Ports

Enshrouded requires up to 2 ports. Queryport must be GAMEPORT +1

Port default
Game 15636
Query 15637

Configuration

When browsing to the installation path of the dedicated server in Windows as described in the article Multiplayer and Server Hosting and after starting the enshrouded_server.exe once, a new file is created called “enshrouded_server.json”. It contains the following entries:

{

    "name": "Enshrouded Server",
    "password": "",
    "saveDirectory": "./savegame",
    "logDirectory": "./logs",
    "ip": "0.0.0.0",
    "gamePort": 15636,
    "queryPort": 15637,
    "slotCount": 16

}
  • Under “name” the name of the dedicated server can be defined as it will appear in the server list for players of Enshrouded.
    • Note: as all players can see the names of the servers, please use a non-offensive name for the server.
  • In the entry “password” a password can be defined that players need to enter before being allowed to join the server.
    • It is highly recommended to set a password. Every player can see the server and can access it, if no password is set. At this point there is no rights management for the server other than the password. We will work on better admin tools and rights management in the near future.
  • The directory for the world saved on the dedicated server can be set in the “saveDirectory” setting. By default, the server will save in a subfolder “…/savegame”
  • If needed, a specific folder for storing log-files can be set in the “logDirectory” setting. If nothing is changed, the server will save the latest log into the directory “…/logs” and archive previous log-files automatically in the folder “…/logs/backup”
  • If needed for internal network configurations, the IP of the server can be set in the “ip” setting.
  • “gamePort” and “queryPort” can be changed to match your firewall settings.
  • “slotCount” allows the definition of the maximum of player slots.
    • The slot count must be a number between 1 and 16.
    • Note: each slot (player) will increase the impact on the performance of the server. If CPU or the RAM are a bottleneck, lowering the max of available player slots can help mitigating the stress for the server.

Installation/System Requirements

Recommended Extra info
Processor Recent x86/64 (AMD/Intel) processor. You need min 4 Cores for the Server.
RAM 4-6 GB
Storage 30 GB (or more, depending on save size or frequency)

Server not showing in Serverlist?

The fact that the server is not displayed in the server list is a known problem.

As a workaround, you can add the server as a favourite via IP:port in the Steam server browser. The server should then be at the top of the ingame server list

Yolks
NameTag
ghcr.io/ptero-eggs/steamcmd:protonghcr.io/ptero-eggs/steamcmd:proton
Variables
NameDescriptionEnvironment VariableDefault ValueUser ViewableUser Editable
[SERVER] Steam Query PortSteam Query PortQUERY_PORTYesYes
WINDOWS_INSTALLWINDOWS_INSTALL1NoNo
[STEAM] Steam App IDSteam App IDSRCDS_APPID2278520NoNo
[SERVER] Auto UpdateEnable automatic updates on bootAUTO_UPDATE1YesYes
[SERVER] Server NameName of the serverSRV_NAMEMy ServerYesYes
[SERVER] Server PasswordServer passwordSRV_PWYesYes
[SERVER] Max PlayersMaximum number of players allowedMAX_PLAYERS16YesYes
[SYSTEM] ValidateValidate the serverfiles through SteamVALIDATE0YesYes
Install Script
#!/bin/bash
# steamcmd Base Installation Script
#
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}Enshrouded  Installscript${NC}"
echo -e "${YELLOW}Egg by gOOvER | https://goover.dev${NC}"
echo -e "${BLUE}-------------------------------------------------${NC}"

#apt -y update
#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq dos2unix

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' ) $( [[ "${STEAM_SDK}" == "1" ]] && printf %s '+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
echo -e "${GREEN}..done..${NC}"

## 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

FILE=/mnt/server/enshrouded_server.json
if [ -f "$FILE" ]; then
    echo "Config already exist skipping"
else 
    echo "Config does not yet exist, making one"
    cd /mnt/server
    touch enshrouded_server.json
    echo "{" >> enshrouded_server.json
    echo '	"name": "Enshrouded Server",' >> enshrouded_server.json
    echo '	"password": "",' >> enshrouded_server.json
    echo '	"saveDirectory": "./savegame",' >> enshrouded_server.json
    echo '	"logDirectory": "./logs",' >> enshrouded_server.json
    echo '	"ip": "0.0.0.0",' >> enshrouded_server.json
    echo '	"gamePort": 15636,' >> enshrouded_server.json
    echo '	"queryPort": 15637,' >> enshrouded_server.json
    echo '	"slotCount": 16' >> enshrouded_server.json
    echo '}' >> enshrouded_server.json
fi
## install end
echo -e "${BLUE}-------------------------------------------------${NC}"
echo -e "${GREEN}Installation completed...${NC}"
echo -e "${BLUE}-------------------------------------------------${NC}"