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.
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": []
} | 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 |
ipandqueryPortbelong to the panel, not to you
0.0.0.0lets the server bind whatever address the node hands it, and the port is the one on the Network tab of your Enshrouded game server.15637above 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
queryPortto 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
gamePortalongsidequeryPort; 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 |
gameSettingsis ignored unless the preset isCustomThis is the single most common Enshrouded configuration mistake. If
gameSettingsPresetis anything other than"Custom", the server loads that bundled preset and silently ignores every value in yourgameSettingsblock. No error, no console warning — your carefully tuned multipliers simply do nothing.Set
"gameSettingsPreset": "Custom"first, then editgameSettings.
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"
} 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
} 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
}
] 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.jsonon 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 toFriend,GuestandVisitor, so keep four groups in this order — the passwords are matched by position, not by name.They ship as
ChangeMe1throughChangeMe4. Change them before you hand out your address. Everything else above — every permission flag andreservedSlots— 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.jsonwhen 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,slotCountand 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.
What to read next
- Getting started with your Enshrouded server — first boot, connecting, wipes and backups
- How to add Admins and common commands for Enshrouded — using the Admin group password in game
- How to use your server panel — where the Network and File Manager tabs live
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