Learning Center
Gaming

How to Set Up an Enshrouded Server

22 Jan 2026
Hostman Team
Hostman Team

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%).

Image1

Pros:

  • Immersive atmosphere
  • Beautiful open world
  • Building mode (huge creative freedom)
  • Engaging cooperative gameplay
  • Detailed game settings (allowing for reduced grind, hunger mechanics, various environment and enemy settings, as well as day/night duration adjustments)

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.

Creating an Enshrouded Server
Copy link

Server Requirements
Copy link

Minimum requirements:

  • CPU: 4 cores
  • RAM: 8 GB
  • Disk: 20 GB
  • Network: At least 50 Mbps (the key factor is server response time (ping), ideally under 50ms)
  • Ports: 15367 TCP/UDP

In this guide, we will use a affordable and cheap cloud server from Hostman with the following fixed configuration:

  • OS: Ubuntu 24.04
  • CPU: 4 × 3.3 GHz
  • RAM: 8 GB
  • NVMe Storage: 80 GB

Configuring the Server
Copy link

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.

Server Settings
Copy link

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
    }
  ]
}

Game Settings
Copy link

Let's take a closer look at the parameters in the gameSettings block:

  • playerHealthFactor: 1 — Health multiplier from 0.25 to 4
  • playerManaFactor: 1 — Mana multiplier from 0.25 to 4
  • playerStaminaFactor: 1 — Stamina multiplier from 0.25 to 4
  • enableDurability: true — Enable equipment durability
  • enableStarvingDebuff: false — Enable starvation
  • foodBuffDurationFactor: 1 — Food effect duration from 0.5 to 2
  • fromHungerToStarving: 600000000000 — Time until starvation, from 300000000000 (5 minutes) to 1200000000000 (20 minutes)
  • shroudTimeFactor: 1 — Time factor in the shroud from 0.5 to 2
  • tombstoneMode: "AddBackpackMaterials" — Item retention mode on death
  • enableGliderTurbulences: true — Wind effects while gliding
  • weatherFrequency: "Normal" — Weather change frequency (Disabled/Rare/Normal/Often)
  • miningDamageFactor: 1 — Ore mining yield multiplier from 0.5 to 2
  • plantGrowthSpeedFactor: 1 — Plant growth speed multiplier from 0.5 to 2
  • resourceDropStackAmountFactor: 1 — Resource drop multiplier from 0.5 to 2
  • factoryProductionSpeedFactor: 1 — Factory production speed multiplier from 0.5 to 2
  • perkUpgradeRecyclingFactor: 0.5 — Rune return multiplier when dismantling weapons from 0 to 1
  • perkCostFactor: 1 — Rune cost multiplier for upgrades from 0.5 to 2
  • experienceCombatFactor: 1 — Combat experience multiplier from 0.25 to 2
  • experienceMiningFactor: 1 — Mining experience multiplier from 0 to 2
  • experienceExplorationQuestsFactor: 1 — Exploration experience multiplier from 0.25 to 2
  • randomSpawnerAmount: "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 5
  • enemyHealthFactor: 1 — Enemy (excluding bosses) health multiplier from 0.25 to 4
  • enemyStaminaFactor: 1 — Enemy (excluding bosses) stamina multiplier from 0.25 to 2
  • enemyPerceptionRangeFactor: 1 — Enemy (excluding bosses) detection range multiplier from 0.25 to 2
  • bossDamageFactor: 1 — Boss damage multiplier from 0.25 to 5
  • bossHealthFactor: 1 — Boss health multiplier from 0.25 to 5
  • threatBonus: 1 — Enemy attack frequency (excluding bosses) from 0.25 to 4
  • pacifyAllEnemies: false — Enemies won't attack unless provoked
  • tamingStartleRepercussion: "LoseSomeProgress" — Taming progress loss if startled
  • dayTimeDuration: 1800000000000 — Day duration from 2 to 60 minutes
  • nightTimeDuration: 720000000000 — Night duration from 2 to 60 minutes

Access and Account Settings
Copy link

You should specify these in the environment block of the compose.yaml file.

Main variables:

  • SERVER_NAME = "enshrouded" — Server name
  • SERVER_SLOT_COUNT = 16 — Maximum number of players on the server
  • SERVER_QUERY_PORT = 15637 — Service port number
  • SERVER_IP = "0.0.0.0" — Server IP address
  • SERVER_SAVE_DIR = "./savegame" — Save directory
  • SERVER_LOG_DIR = "./logs" — Log directory
  • SERVER_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 schedule
  • BACKUP_DIR = "./backup" — Backup directory
  • BACKUP_MAX_COUNT = 0 — Maximum number of stored backups

Here’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

Adding to Steam Favorites
Copy link

To add the server to favorites:

  1. Open the Steam application and go to the ViewServers menu.
  2. Select the Favorites tab.
  3. Choose the game Enshrouded from the dropdown list on the right.
  4. Click the + button at the bottom and enter the external IP address along with the port (15637) obtained during server creation.

Once added, your Enshrouded server will be available in the Join section when launching the game.

Updating the Server
Copy link

To update the game server, connect to it and restart the container:

cd /opt/satisfactory
docker compose down
docker compose up -d

Conclusion
Copy link

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!

Frequently Asked Questions:
Copy link

What are the Enshrouded dedicated server requirements? 
Copy link

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).

How do I install the Enshrouded Dedicated Server? 
Copy link

You can install it via the Steam Client (under "Tools") or use SteamCMD for a headless setup. The command is: app_update 2278520 validate

What ports do I need to open for Enshrouded? 
Copy link

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.

Where is the server configuration file located? 
Copy link

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.

What is the maximum player count? 
Copy link

Currently, the dedicated server supports a maximum of 16 players.

Can I run an Enshrouded server on Linux? 
Copy link

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.