Skip to content

Enshrouded Server Settings and Config File

Every setting in enshrouded_server.json: difficulty presets, nanosecond durations, why custom gameSettings get ignored, and password-based user groups.

Updated August 19, 2026
Enshrouded

Enshrouded keeps every server setting in one JSON file, enshrouded_server.json, in the server root. That makes it simpler than most games — but it also means one misplaced comma stops the server booting at all. This guide covers the file, the difficulty system, the permission groups, and the three things that most often go wrong.

The file

{
  "name": "My GSK Enshrouded Server",
  "saveDirectory": "./savegame",
  "logDirectory": "./logs",
  "ip": "0.0.0.0",
  "queryPort": 15637,
  "slotCount": 16,
  "tags": [],
  "voiceChatMode": "Proximity",
  "enableVoiceChat": false,
  "enableTextChat": false,
  "gameSettingsPreset": "Default",
  "gameSettings": { },
  "userGroups": [ ],
  "bannedAccounts": []
}
enshrouded_server.json
Key What it does
name Name shown in the server browser
slotCount Player cap. The game's own maximum is 16
tags Browser tags for filtering
voiceChatMode Proximity or global
enableVoiceChat / enableTextChat Chat toggles
gameSettingsPreset Difficulty — see below
gameSettings Custom difficulty values, only read in Custom mode
userGroups Permission tiers, each with its own password
bannedAccounts Ban list

ip and queryPort belong to the panel, not to you

0.0.0.0 lets the server bind whatever address the node hands it, and the port is the one on the Network tab of your Enshrouded game server. 15637 above is Enshrouded's stock default — pasting it over your allocated value puts the server on a port nothing is routed to. The symptom is a perfectly healthy console log that nobody can connect to.

On a hosted server you do not need to set it at all: the panel rewrites queryPort to your allocation on every boot, so an edit here is discarded on the next restart. That is a feature — it means the port can never drift away from what is actually routed to you.

Note there is one port key. Enshrouded no longer uses a separate gamePort alongside queryPort; older guides that list both are out of date.

Difficulty presets

gameSettingsPreset takes one of five values:

Preset Roughly
Default The standard experience
Relaxed Fewer enemies, more resources — for building and light adventuring
Hard Tougher combat
Survival The most demanding preset
Custom Use your own gameSettings values

gameSettings is ignored unless the preset is Custom

This is the single most common Enshrouded configuration mistake. If gameSettingsPreset is anything other than "Custom", the server loads that bundled preset and silently ignores every value in your gameSettings block. No error, no console warning — your carefully tuned multipliers simply do nothing.

Set "gameSettingsPreset": "Custom" first, then edit gameSettings.

Custom difficulty settings

With the preset set to Custom, the gameSettings block controls everything. Defaults shown:

"gameSettings": {
  "playerHealthFactor": 1,
  "playerManaFactor": 1,
  "playerStaminaFactor": 1,
  "playerBodyHeatFactor": 1,
  "playerDivingTimeFactor": 1,
  "enableDurability": true,
  "enableStarvingDebuff": false,
  "foodBuffDurationFactor": 1,
  "fromHungerToStarving": 600000000000,
  "shroudTimeFactor": 1,
  "tombstoneMode": "AddBackpackMaterials",
  "enableGliderTurbulences": true,
  "weatherFrequency": "Normal",
  "fishingDifficulty": "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,
  "curseModifier": "Normal"
}
enshrouded_server.json

The durations are in nanoseconds

This trips up almost everyone. dayTimeDuration, nightTimeDuration and fromHungerToStarving are nanoseconds, not seconds:

Value Nanoseconds Real time
dayTimeDuration 1800000000000 30 minutes
nightTimeDuration 720000000000 12 minutes
fromHungerToStarving 600000000000 10 minutes

To convert, multiply seconds by 1,000,000,000. A one-hour day is 3600000000000. Writing 1800 gives you a day roughly two microseconds long, which is exactly as broken as it sounds.

The factors

Everything ending in Factor is a multiplier where 1 is baseline. Raising a player factor helps players; raising an enemy factor makes the game harder.

Group Keys
Player survivability playerHealthFactor, playerManaFactor, playerStaminaFactor, playerBodyHeatFactor, playerDivingTimeFactor
Enemies enemyDamageFactor, enemyHealthFactor, enemyStaminaFactor, enemyPerceptionRangeFactor, threatBonus
Bosses bossDamageFactor, bossHealthFactor
Gathering and crafting miningDamageFactor, resourceDropStackAmountFactor, plantGrowthSpeedFactor, factoryProductionSpeedFactor
Progression experienceCombatFactor, experienceMiningFactor, experienceExplorationQuestsFactor, perkCostFactor, perkUpgradeRecyclingFactor
Survival pressure enableDurability, enableStarvingDebuff, foodBuffDurationFactor, shroudTimeFactor

The named (non-numeric) options take words rather than numbers: randomSpawnerAmount, aggroPoolAmount, weatherFrequency, fishingDifficulty and curseModifier all accept values like Normal; tombstoneMode and tamingStartleRepercussion take behaviour names such as AddBackpackMaterials and LoseSomeProgress.

A relaxed co-op preset, for example:

"gameSettingsPreset": "Custom",
"gameSettings": {
  "playerHealthFactor": 1.5,
  "playerStaminaFactor": 1.5,
  "enemyHealthFactor": 0.8,
  "enemyDamageFactor": 0.8,
  "resourceDropStackAmountFactor": 2,
  "enableStarvingDebuff": false
}
json

You only need to include the keys you are changing.

Permission groups

Enshrouded has no Steam ID admin list. Access is controlled entirely by which password a player enters when joining — each group has its own.

Your server ships with four groups, and these are the exact values it starts from:

"userGroups": [
  {
    "name": "Admin",
    "password": "ChangeMe1",
    "canKickBan": true,
    "canAccessInventories": true,
    "canEditWorld": true,
    "canEditBase": true,
    "canExtendBase": true,
    "reservedSlots": 0
  },
  {
    "name": "Friend",
    "password": "ChangeMe2",
    "canKickBan": false,
    "canAccessInventories": true,
    "canEditWorld": true,
    "canEditBase": true,
    "canExtendBase": true,
    "reservedSlots": 1
  },
  {
    "name": "Guest",
    "password": "ChangeMe3",
    "canKickBan": false,
    "canAccessInventories": false,
    "canEditWorld": false,
    "canEditBase": false,
    "canExtendBase": false,
    "reservedSlots": 3
  },
  {
    "name": "Visitor",
    "password": "ChangeMe4",
    "canKickBan": false,
    "canAccessInventories": false,
    "canEditWorld": false,
    "canEditBase": false,
    "canExtendBase": false,
    "reservedSlots": 0
  }
]
enshrouded_server.json

Note that Guest and Visitor ship identical apart from reservedSlots, and that Friend gets canExtendBase — it can place and remove Flame Altars, which is a wider grant than the name implies.

Permission Grants
canKickBan Kick and ban other players
canAccessInventories Open chests and other players' storage
canEditWorld Terrain editing — the destructive one
canEditBase Build and remove inside existing base bounds
canExtendBase Extend base boundaries outward
reservedSlots Slots held open for this group when the server is full

Set the four passwords on the Startup tab, not in this file

The panel writes all four group passwords into enshrouded_server.json on every boot, from the Startup tab. A password you type into the file works until the next restart and then reverts, with nothing in the console to tell you why. The panel also pins the names of groups 2, 3 and 4 to Friend, Guest and Visitor, so keep four groups in this order — the passwords are matched by position, not by name.

They ship as ChangeMe1 through ChangeMe4. Change them before you hand out your address. Everything else above — every permission flag and reservedSlots — is yours to edit here, and those edits stick. Full detail in How to add Admins and common commands for Enshrouded.

Editing the file safely

Stop the server before editing

Enshrouded writes its current settings back to enshrouded_server.json when it shuts down. Editing while the server is running means your changes get overwritten on the next stop. The order that works is stop → edit → save → start.

There is a second, separate overwrite to know about: on each boot the panel re-applies name, queryPort, slotCount and all four group passwords from the Startup tab. Those seven settings are not worth editing here at all — change them on the Startup tab instead.

And because the whole configuration is one JSON document:

A malformed file stops the server booting — it does not silently reset

The whole file is parsed as one document, and if that parse fails the server aborts startup instead of falling back to defaults. Keen's own server settings documentation is explicit: enter an invalid text value and "the server does not boot and states the incorrectly entered value in the command window". The console ends on Internal Error: Failed to parse Config. A pure syntax error — a trailing comma, an unquoted string, a smart quote pasted from a web page — fails the same parse in the same way.

That is the outcome you want. A broken config announces itself in the console rather than leaving you on a running server that quietly ignored your settings. If the server came up, it read your file.

Numbers are the one exception, and they are adjusted rather than reset: a numeric value above or below its allowed range is silently clamped to the nearest limit, with no warning. Text values get no such leniency.

Paste the file into a JSON validator before restarting, and keep a copy of a config you are happy with. See How to Upload Files via SFTP for moving files in and out.

FAQ

Why are my custom difficulty settings being ignored?

gameSettingsPreset is not set to "Custom". Any other value loads a bundled preset and ignores the gameSettings block entirely, with no error.

What are the Enshrouded difficulty presets?

Default, Relaxed, Hard, Survival, and Custom.

Why is my day length wrong?

dayTimeDuration is in nanoseconds. 30 minutes is 1800000000000 — multiply the seconds you want by 1,000,000,000.

How do I make someone an admin?

Give them the password of a group that has the permissions you want — Enshrouded has no Steam ID list, so the password is the permission. Set that password on the Startup tab and restart; setting it in enshrouded_server.json reverts on the next boot.

How many players can an Enshrouded server hold?

The game caps slotCount at 16.

Why do my config changes keep reverting?

Two different causes. Either you edited the file while the server was running — Enshrouded rewrites it on shutdown from its in-memory settings, so stop the server first. Or you edited one of the seven panel-managed settings: name, queryPort, slotCount and the four group passwords are re-applied from the Startup tab on every boot, and those must be changed there instead.

My server will not start after I edited the config

Read the console. If it ends on Internal Error: Failed to parse Config, enshrouded_server.json is not valid — either a JSON syntax error, or a text value the server does not recognise, which it names on the line above. Fix that entry and start again. The server never boots on defaults when the file is broken, so a server that starts has read your file.

Do I need both gamePort and queryPort?

No. Current Enshrouded uses a single queryPort, and on a hosted server it should match the allocation on your Network tab. Guides listing both gamePort and queryPort are out of date.


Made with 💜 by GameServerKings

Need an Enshrouded server?

Deploy an instantly-provisioned Enshrouded server on high-clock hardware — DDoS protected, no contracts, cancel anytime.

From $7.30 /month