Enshrouded is an open-world fantasy RPG with cooperative gameplay, allowing up to 16 players on a single server. It has received overwhelmingly positive reviews on Steam (86%).

Pros:
Cons:
Story (immersion relies on reading notes and collecting items)
Playing Enshrouded solo or with a group offers completely different experiences and emotions. You could say that the developers primarily focus on multiplayer gameplay on dedicated servers.
In this article, we’ll describe how to set up a private dedicated server for Enshrouded.
The current version at the time of writing is v0.8.0.1.
Did you know?
Hostman got you covered with servers with low-latency USA VPS to help you to deploy projects for an American audience. Start using now!
Minimum requirements:
In this guide, we will use a affordable and cheap cloud server from Hostman with the following fixed configuration:
After connecting to the server, update the packages and install Docker:
apt update && apt upgrade -y
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Create a directory for the server files:
mkdir /opt/enshrouded
Navigate to the directory:
cd /opt/enshrouded
We will use the "Enshrouded Dedicated Server with Autoupdate (supervisord)" Docker image.
Next, create a compose.yaml file with the following content:
services:
enshrouded:
container_name: enshrouded
image: mornedhels/enshrouded-server:latest
restart: unless-stopped
stop_grace_period: 90s
ports:
- "15637:15637/udp"
volumes:
- ./game:/opt/enshrouded
environment:
- SERVER_NAME=Hostman
- UPDATE_CRON=*/30 * * * *
Run the server:
docker compose up -d
Check the server status:
docker compose ps
View server logs:
docker compose logs -f
All necessary files and updates will be downloaded during the first launch, and the server will start with default settings.
Stop the container before making changes:
docker compose down
Edit the server configuration files:
nano game/server/enshrouded_server.json
Example configuration for enshrouded_server.json:
{
"name": "Hostman",
"saveDirectory": "./savegame",
"logDirectory": "./logs",
"ip": "0.0.0.0",
"queryPort": 15637,
"slotCount": 16,
"voiceChatMode": "Proximity",
"enableVoiceChat": false,
"enableTextChat": false,
"gameSettingsPreset": "Default",
"gameSettings": {
"playerHealthFactor": 1,
"playerManaFactor": 1,
"playerStaminaFactor": 1,
"playerBodyHeatFactor": 1,
"enableDurability": true,
"enableStarvingDebuff": false,
"foodBuffDurationFactor": 1,
"fromHungerToStarving": 600000000000,
"shroudTimeFactor": 1,
"tombstoneMode": "AddBackpackMaterials",
"enableGliderTurbulences": true,
"weatherFrequency": "Normal",
"miningDamageFactor": 1,
"plantGrowthSpeedFactor": 1,
"resourceDropStackAmountFactor": 1,
"factoryProductionSpeedFactor": 1,
"perkUpgradeRecyclingFactor": 0.5,
"perkCostFactor": 1,
"experienceCombatFactor": 1,
"experienceMiningFactor": 1,
"experienceExplorationQuestsFactor": 1,
"randomSpawnerAmount": "Normal",
"aggroPoolAmount": "Normal",
"enemyDamageFactor": 1,
"enemyHealthFactor": 1,
"enemyStaminaFactor": 1,
"enemyPerceptionRangeFactor": 1,
"bossDamageFactor": 1,
"bossHealthFactor": 1,
"threatBonus": 1,
"pacifyAllEnemies": false,
"tamingStartleRepercussion": "LoseSomeProgress",
"dayTimeDuration": 1800000000000,
"nightTimeDuration": 720000000000
},
"userGroups": [
{
"name": "Admins",
"password": "secret1",
"canKickBan": true,
"canAccessInventories": true,
"canEditBase": true,
"canExtendBase": true,
"reservedSlots": 1
},
{
"name": "Friends",
"password": "secret2",
"canKickBan": false,
"canAccessInventories": true,
"canEditBase": true,
"canExtendBase": true,
"reservedSlots": 3
},
{
"name": "Guests",
"password": "secret3",
"canKickBan": false,
"canAccessInventories": false,
"canEditBase": false,
"canExtendBase": false,
"reservedSlots": 0
}
]
}
Let's take a closer look at the parameters in the gameSettings block:
playerHealthFactor: 1 — Health multiplier from 0.25 to 4playerManaFactor: 1 — Mana multiplier from 0.25 to 4playerStaminaFactor: 1 — Stamina multiplier from 0.25 to 4enableDurability: true — Enable equipment durabilityenableStarvingDebuff: false — Enable starvationfoodBuffDurationFactor: 1 — Food effect duration from 0.5 to 2fromHungerToStarving: 600000000000 — Time until starvation, from 300000000000 (5 minutes) to 1200000000000 (20 minutes)shroudTimeFactor: 1 — Time factor in the shroud from 0.5 to 2tombstoneMode: "AddBackpackMaterials" — Item retention mode on deathenableGliderTurbulences: true — Wind effects while glidingweatherFrequency: "Normal" — Weather change frequency (Disabled/Rare/Normal/Often)miningDamageFactor: 1 — Ore mining yield multiplier from 0.5 to 2plantGrowthSpeedFactor: 1 — Plant growth speed multiplier from 0.5 to 2resourceDropStackAmountFactor: 1 — Resource drop multiplier from 0.5 to 2factoryProductionSpeedFactor: 1 — Factory production speed multiplier from 0.5 to 2perkUpgradeRecyclingFactor: 0.5 — Rune return multiplier when dismantling weapons from 0 to 1perkCostFactor: 1 — Rune cost multiplier for upgrades from 0.5 to 2experienceCombatFactor: 1 — Combat experience multiplier from 0.25 to 2experienceMiningFactor: 1 — Mining experience multiplier from 0 to 2experienceExplorationQuestsFactor: 1 — Exploration experience multiplier from 0.25 to 2randomSpawnerAmount: "Normal" — Enemy spawn amount (Few/Normal/Many/Extreme)aggroPoolAmount: "Normal" — Number of enemies that can attack simultaneously (Few/Normal/Many/Extreme)enemyDamageFactor: 1 — Enemy (excluding bosses) damage multiplier from 0.25 to 5enemyHealthFactor: 1 — Enemy (excluding bosses) health multiplier from 0.25 to 4enemyStaminaFactor: 1 — Enemy (excluding bosses) stamina multiplier from 0.25 to 2enemyPerceptionRangeFactor: 1 — Enemy (excluding bosses) detection range multiplier from 0.25 to 2bossDamageFactor: 1 — Boss damage multiplier from 0.25 to 5bossHealthFactor: 1 — Boss health multiplier from 0.25 to 5threatBonus: 1 — Enemy attack frequency (excluding bosses) from 0.25 to 4pacifyAllEnemies: false — Enemies won't attack unless provokedtamingStartleRepercussion: "LoseSomeProgress" — Taming progress loss if startleddayTimeDuration: 1800000000000 — Day duration from 2 to 60 minutesnightTimeDuration: 720000000000 — Night duration from 2 to 60 minutesYou should specify these in the environment block of the compose.yaml file.
Main variables:
SERVER_NAME = "enshrouded" — Server nameSERVER_SLOT_COUNT = 16 — Maximum number of players on the serverSERVER_QUERY_PORT = 15637 — Service port numberSERVER_IP = "0.0.0.0" — Server IP addressSERVER_SAVE_DIR = "./savegame" — Save directorySERVER_LOG_DIR = "./logs" — Log directorySERVER_VOICE_CHAT_MODE = "Proximity" — Voice chat mode (Proximity = only nearby players can hear, Global = all players can hear)SERVER_ENABLE_VOICE_CHAT = false — Enable/disable voice chat (default: disabled)SERVER_ENABLE_TEXT_CHAT = false — Enable/disable text chat (default: disabled)UPDATE_CRON = "" — World update schedule (similar to reopening a single-player game, restoring resources, and updating the global map)UPDATE_CHECK_PLAYERS = false — Check for connected players before updating (default: disabled)BACKUP_CRON = "" — Backup scheduleBACKUP_DIR = "./backup" — Backup directoryBACKUP_MAX_COUNT = 0 — Maximum number of stored backupsHere’s an example of a docker-compose.yml file with the environment block:
services:
enshrouded:
image: mornedhels/enshrouded-server:latest
container_name: enshrouded
restart: unless-stopped
stop_grace_period: 90s
ports:
- "15637:15637/udp"
volumes:
- ./game:/opt/enshrouded
environment:
- SERVER_NAME=Hostman
- SERVER_ROLE_0_NAME=Admins
- SERVER_ROLE_0_PASSWORD=secret1
- SERVER_ROLE_0_CAN_KICK_BAN=true
- SERVER_ROLE_0_CAN_ACCESS_INVENTORIES=true
- SERVER_ROLE_0_CAN_EDIT_BASE=true
- SERVER_ROLE_0_CAN_EXTEND_BASE=true
- SERVER_ROLE_0_RESERVED_SLOTS=1
- SERVER_ROLE_1_NAME=Friends
- SERVER_ROLE_1_PASSWORD=secret2
- SERVER_ROLE_1_CAN_ACCESS_INVENTORIES=true
- SERVER_ROLE_1_CAN_EDIT_BASE=true
- SERVER_ROLE_1_CAN_EXTEND_BASE=true
- SERVER_ROLE_1_RESERVED_SLOTS=3
- SERVER_ROLE_2_NAME=Guests
- SERVER_ROLE_2_PASSWORD=secret3
After making changes to the settings, restart the container:
docker compose up -d
To add the server to favorites:
Once added, your Enshrouded server will be available in the Join section when launching the game.
To update the game server, connect to it and restart the container:
cd /opt/satisfactory
docker compose down
docker compose up -d
Enshrouded is a relaxing and immersive game that offers a world of exploration and adventure.
With detailed server configuration, you can tailor the gameplay to your preferences—simplifying resource gathering, increasing enemy strength, or enjoying creative building features.
This game appeals to a wide range of players, regardless of age or gender. Try playing with friends, your partner, or children over 12 for an engaging cooperative experience!
Check our new instruction on how to clone your server to double the fun!
Enshrouded is quite resource-intensive due to its voxel-based world.
CPU: Quad-Core processor (Intel Core i7 or AMD Ryzen 5 recommended).
RAM: 16GB is the recommended minimum for a stable experience. For large groups, 32GB is preferred.
Storage: 30GB of SSD space (NVMe recommended for faster chunk loading).
OS: Windows 10/11 or Server 2019+ (Linux requires Proton/Wine).
You can install it via the Steam Client (under "Tools") or use SteamCMD for a headless setup. The command is: app_update 2278520 validate
You need to forward the following ports (UDP) in your router and firewall:
Game Port: 15636
Query Port: 15637 Make sure to allow these through the Windows Firewall as well.
The configuration file is named enshrouded_server.json. It is located in the root folder of your server installation. You use this file to set the server name, password, and player slots.
Currently, the dedicated server supports a maximum of 16 players.
There is no native Linux binary yet. However, you can run the Windows version on Linux using Wine or Proton, or by using Docker containers that wrap these compatibility layers.