Enshrouded Admin Commands, Roles and Server Settings
Enshrouded has no console commands — administration is role passwords and enshrouded_server.json. Every userGroup permission and gameSettings value, with defaults.
Enshrouded has no admin console, no chat commands and no RCON. Everything an admin controls lives in enshrouded_server.json and in the in-game player list. This guide covers the full permission system, the complete config schema, and how to actually kick and ban people.
On a GameServerKings server, set the group passwords on the Startup tab — not in the file
This is the one thing on this page that will cost you an evening if you get it wrong. Your panel rewrites ten keys inside
enshrouded_server.jsonevery single time the server boots, from the values on the Startup tab. All four group passwords are among them. Type a new Admin password into the file and it works until the next restart, then silently reverts — with no error and nothing in the console to explain it.Set passwords on the Startup tab, then restart. Section 3 lists exactly which keys are panel-owned.
There is no command list — that is not an omission
If you arrived here looking for
/kick,/giveor/tp, they do not exist in Enshrouded. Keen Games ships no console for either the client or the dedicated server, the server window accepts no input, and there are no meaningful launch parameters. Administration is entirely config file plus in-game UI. Everything below is the real surface.
1. Where Administration Actually Happens
| What you want to do | Where you do it |
|---|---|
| Grant someone admin rights | Startup tab → [USER GROUP] ''Admin'' Group Password — give them that password |
| Kick a player | In-game player list, with a role that has canKickBan |
| Ban or unban a player | In-game ban widget — writes to the bannedAccounts array in the config |
| Change difficulty or rates | gameSettings in the config, then restart |
| Rename the server, change slots or ports | Startup tab (Server Name, Max Players); the port follows your allocation automatically |
| Enable text or voice chat | enableTextChat / enableVoiceChat — both default to false on dedicated servers |
| Stop, restart, back up | Your host's control panel — the game offers no in-band way |
2. The Files That Matter
The dedicated server is a separate Steam application, app ID 2278520, listed under Tools in your Steam library. Launch enshrouded_server.exe once and it writes its config next to itself.
| File | What it is |
|---|---|
enshrouded_server.json |
The entire server configuration: name, ports, roles, difficulty, ban list |
enshrouded_server_readme.txt |
Ships with the server; documents the server-list tags values |
./savegame |
World saves (saveDirectory) |
./logs |
Current log; older logs rotate into ./logs/backup (logDirectory) |
enshrouded_user.json |
Client-side file under %USERPROFILE%/Saved Games/enshrouded/ — keybinds and peer-to-peer host settings, not a dedicated server file |
Keen's installation guide still states that only Windows is officially supported and that Linux support is planned for later. Linux dedicated servers do exist, but they run the Windows binary under Wine or Proton.
3. Roles Replace a Conventional Admin List
There is no admins.txt and no SteamID allowlist. Enshrouded uses user groups: each group has its own password, and the password a player types when joining decides what they may do. Give someone the Admin password and they are an admin.
Each entry in userGroups takes these fields:
| Field | Type | What it grants |
|---|---|---|
name |
string | Display name of the role |
password |
string | The password that puts a joining player into this role |
canKickBan |
bool | Kick and ban other players — this is "admin" |
canAccessInventories |
bool | Open chests, containers and workstations |
canEditWorld |
bool | Terraform and interact with the open world outside bases |
canEditBase |
bool | Add and remove blocks and props in a base, terraform in base |
canExtendBase |
bool | Place, upgrade and remove Flame Altars |
reservedSlots |
int | Session slots held open for this role |
The four roles the shipped default config creates, with the values it actually writes:
| Role | canKickBan |
canAccessInventories |
canEditWorld |
canEditBase |
canExtendBase |
reservedSlots |
|---|---|---|---|---|---|---|
| Admin | true | true | true | true | true | 0 |
| Friend | false | true | true | true | true | 1 |
| Guest | false | false | false | false | false | 3 |
| Visitor | false | false | false | false | false | 0 |
Two of those are worth reading twice. Friend can extend bases — placing, upgrading and removing Flame Altars — which is a broader grant than the name suggests. And Guest cannot edit the world at all: canEditWorld is false, so guests cannot terraform outside bases. Guest and Visitor ship with identical permission flags; the only thing separating them is reservedSlots.
Keen's own roles documentation is older than the config and does not describe this accurately — it predates the canEditWorld flag entirely and its worked example omits it. The table above is read from the default config the server is actually shipped with, which is the file your server starts from.
Every role — Visitor included — can still fight, loot, gather, mine and complete quests. The flags only gate bases, containers, world editing and moderation.
{
"name": "Admin",
"password": "pick-something-long",
"canKickBan": true,
"canAccessInventories": true,
"canEditWorld": true,
"canEditBase": true,
"canExtendBase": true,
"reservedSlots": 2
} You are not limited to the presets: add as many groups as you like with any combination of flags. A "Builder" role with canEditBase but not canAccessInventories is perfectly valid.
reservedSlots holds that many session slots for one role. Players joining under a different role see the server as full once they would consume the reserved slots, so an admin can still get in on a 16/16 server.
The legacy password key. Before Update 2 (Melodies of the Mire, June 2024) a single top-level "password" line protected the whole server. That key no longer sets the server password. Keen's roles documentation says a detected legacy password is migrated into one group named default with Friend-equivalent permissions, so old setups keep working. The current default config omits the key — use userGroups.
On a hosted server the passwords are not randomized — they default to
ChangeMe1–ChangeMe4A standalone Enshrouded server randomizes each role password on first boot. Yours does not. The panel writes the four passwords from the Startup tab into the file on every boot, and they ship with the placeholder defaults
ChangeMe1(Admin),ChangeMe2(Friend),ChangeMe3(Guest) andChangeMe4(Visitor). Anyone who knows your address and has read a guide like this one can walk straight in as Admin.Change all four on the Startup tab before you hand the address to anybody. A purely numeric password is rejected by the panel, so include at least one non-digit.
Which keys the panel owns
Your panel re-applies these ten keys to enshrouded_server.json on every boot. Edit them in the file and your edit survives exactly until the next restart:
| Config key | Comes from |
|---|---|
name |
Startup → [SERVER] Server Name |
queryPort |
Your primary allocation on the Network tab |
slotCount |
Startup → [SERVER] Max Players |
userGroups[0].password |
Startup → [USER GROUP] ''Admin'' Group Password |
userGroups[1].name |
Pinned to Friend |
userGroups[1].password |
Startup → [USER GROUP] ''Friend'' Group Password |
userGroups[2].name |
Pinned to Guest |
userGroups[2].password |
Startup → [USER GROUP] ''Guest'' Group Password |
userGroups[3].name |
Pinned to Visitor |
userGroups[3].password |
Startup → [USER GROUP] ''Visitor'' Group Password |
Everything else in the file — every permission flag, reservedSlots, tags, the chat toggles, the whole gameSettings block and bannedAccounts — is yours, and editing it in the file is the correct way to change it.
Two consequences worth planning around. The names of groups 2, 3 and 4 are pinned, so keep four groups in that order; deleting the Visitor group or reordering the array leaves the panel writing passwords into the wrong entries. And the first group's name is not pinned, so you may rename Admin freely — its password still comes from the Admin field on the Startup tab.
A group left with "password": "" lets anyone join at that permission level without typing anything — only ever do that on your lowest-privilege role, and note that the panel will overwrite an empty password with whatever the Startup tab holds.
4. Kicking and Banning in Practice
Both actions happen in game, performed by a player whose role has canKickBan: true. Open the player list, select the offender, choose the action.
| Action | Effect |
|---|---|
| Kick | Removes the player from the current session. They can rejoin once the host opens a new session. Available since launch. |
| Ban | Removes the player and adds them to a persistent blacklist. Future join attempts are rejected automatically until you unban them. Added in Update 7, Wake of the Water, November 2025. |
The same in-game widget lists existing bans and unbans names. The list is persisted in the bannedAccounts array at the top level of enshrouded_server.json — not bans, which is not a key the server reads. To clear it wholesale, stop the server, set "bannedAccounts": [], and start again — editing the file while the process is running achieves nothing, because the server holds its own copy and can overwrite yours on shutdown. bannedAccounts is not one of the panel-managed keys, so your edit sticks.
You cannot kick another admin
Since patch 0.7.2.1 the game blocks kicking any player who themselves holds the kick permission, and the UI reflects this. To remove a rogue admin, change that role's password and restart — they cannot rejoin at that level.
5. Core Server Settings
These sit at the top level of enshrouded_server.json.
| Key | Default | What it does |
|---|---|---|
name |
"My Enshrouded Server" |
Name shown in the server browser. Everyone sees it — keep it clean. Panel-managed — set it on the Startup tab. |
saveDirectory |
"./savegame" |
Where world saves are written. Relative or absolute. |
logDirectory |
"./logs" |
Current log location; previous logs archive to ./logs/backup. |
ip |
"0.0.0.0" |
Bind address. Change only for specific internal network setups. |
queryPort |
15637 |
UDP query port. The only port the game itself needs. Panel-managed — it is forced to your allocation on every boot. |
slotCount |
16 |
Concurrent players. Must be 1–16. Panel-managed — set it on the Startup tab. |
tags |
[] |
Server browser filter tags — LookingForPlayers, BaseBuilding, Exploration, Roleplay, plus language tags. Full list in enshrouded_server_readme.txt. |
voiceChatMode |
"Proximity" |
Proximity or Global. |
enableVoiceChat |
false |
Voice chat on or off. |
enableTextChat |
false |
Text chat on or off. |
gameSettingsPreset |
"Default" |
Default, Relaxed, Hard, Survival or Custom. |
gameSettings |
object | The 37 individual tuning values — see section 7. |
userGroups |
array | Roles and their passwords — see section 3. The four passwords and the names of groups 2–4 are panel-managed; the permission flags and reservedSlots are not. |
bannedAccounts |
[] |
Persistent ban list, managed by the in-game widget. |
Ports. Current builds expose a single queryPort, 15637/udp by default, plus Steam's own ports. The launch-era config also carried "gamePort": 15636; it is absent from the config the server generates today, so drop it if you are copying a 2024 guide.
6. Difficulty Presets
| Preset | What it does |
|---|---|
Default |
Baseline — a direct continuation of how Enshrouded played up to 0.7.3.0. Recommended for first-timers. |
Relaxed |
Fewer enemies, more resources and loot. Aimed at base building and light adventuring. |
Hard |
More enemies, more aggressive. Tougher combat. |
Survival |
Hard plus additional survival mechanics. |
Custom |
Unlocks the individual gameSettings values below. |
gameSettingsare ignored unless the preset isCustomEditing
enemyHealthFactorwhilegameSettingsPresetis"Hard"does nothing at all. Set"gameSettingsPreset": "Custom"first, then tune. This is the single most common Enshrouded config mistake.
7. The Full gameSettings Block
37 values, all inside "gameSettings": { ... }. Out-of-range numbers are silently clamped to the nearest limit; invalid text values are not, and the server refuses to boot and prints the offending value in the console window.
Player
| Setting | Default | Range | Effect |
|---|---|---|---|
playerHealthFactor |
1 |
0.25 – 4 | Scales player max health |
playerManaFactor |
1 |
0.25 – 4 | Scales player max mana |
playerStaminaFactor |
1 |
0.25 – 4 | Scales player max stamina |
playerBodyHeatFactor |
1 |
0.5 / 1 / 1.5 / 2 | Time before hypothermia in cold regions |
playerDivingTimeFactor |
1 |
0.5 – 2 | Starting oxygen, so time underwater |
shroudTimeFactor |
1 |
0.5 – 2 | How long you survive inside the Shroud |
Survival and Environment
| Setting | Default | Range / Options | Effect |
|---|---|---|---|
enableDurability |
true |
true / false | false means weapons never break |
enableStarvingDebuff |
false |
true / false | Enables hunger and starvation damage |
foodBuffDurationFactor |
1 |
0.5 – 2 | Scales food buff duration |
fromHungerToStarving |
600000000000 |
5 – 20 min | Length of the hungry state before starving, in nanoseconds |
enableGliderTurbulences |
true |
true / false | false removes air turbulence from gliding |
weatherFrequency |
"Normal" |
Disabled / Rare / Normal / Often | How often weather events occur |
curseModifier |
"Normal" |
Easy / Normal / Hard | Shroud curse chance. Easy turns it off, Hard doubles it. |
World, Gathering and Progression
| Setting | Default | Range / Options | Effect |
|---|---|---|---|
fishingDifficulty |
"Normal" |
VeryEasy / Easy / Normal / Hard / VeryHard | Fish strength in the fishing minigame |
miningDamageFactor |
1 |
0.5 – 2 | Mining damage — higher means faster terraforming and more yield per hit |
plantGrowthSpeedFactor |
1 |
0.25 – 2 | Crop growth speed |
resourceDropStackAmountFactor |
1 |
0.25 – 2 | Materials per loot stack from chests and kills |
factoryProductionSpeedFactor |
1 |
0.25 – 2 | Workstation production speed |
perkUpgradeRecyclingFactor |
0.5 |
0 – 1 | Runes returned when salvaging upgraded weapons |
perkCostFactor |
1 |
0.25 – 2 | Rune cost of upgrading weapons |
experienceCombatFactor |
1 |
0.25 – 2 | XP from combat |
experienceMiningFactor |
1 |
0 – 2 | XP from mining |
experienceExplorationQuestsFactor |
1 |
0.25 – 2 | XP from exploring and quests |
Keen's own documentation is inconsistent on one value: the description for perkUpgradeRecyclingFactor says 0.100000, while the default config on the same page shows 0.500000. The config block is what the server actually generates, so treat 0.5 as the real default and set it explicitly if it matters.
Enemies and Bosses
| Setting | Default | Range / Options | Effect |
|---|---|---|---|
randomSpawnerAmount |
"Normal" |
Few / Normal / Many / Extreme | Total enemies in the world |
aggroPoolAmount |
"Normal" |
Few / Normal / Many / Extreme | How many enemies may attack at once |
enemyDamageFactor |
1 |
0.25 – 5 | Enemy damage (excludes bosses) |
enemyHealthFactor |
1 |
0.25 – 4 | Enemy health (excludes bosses) |
enemyStaminaFactor |
1 |
0.5 – 2 | Enemy stun resistance (excludes bosses) |
enemyPerceptionRangeFactor |
1 |
0.5 – 2 | How far enemies see and hear you |
threatBonus |
1 |
0.25 – 4 | Frequency of enemy attacks (excludes bosses) |
bossDamageFactor |
1 |
0.2 – 5 | Boss attack damage |
bossHealthFactor |
1 |
0.2 – 5 | Boss health |
pacifyAllEnemies |
false |
true / false | Enemies only fight back when attacked (excludes bosses) |
tamingStartleRepercussion |
"LoseSomeProgress" |
KeepProgress / LoseSomeProgress / LoseAllProgress | Penalty for startling wildlife while taming |
Time and Death
| Setting | Default | Range | Effect |
|---|---|---|---|
dayTimeDuration |
1800000000000 |
2 – 60 min | Length of daytime, in nanoseconds (default 30 min) |
nightTimeDuration |
720000000000 |
2 – 60 min | Length of nighttime, in nanoseconds (default 12 min) |
tombstoneMode |
"AddBackpackMaterials" |
AddBackpackMaterials / Everything / NoTombstone | What you drop on death |
For the three nanosecond values, multiply minutes by 60000000000: 20 minutes of daylight is 1200000000000, and the 2-minute floor is 120000000000. Enter them as plain integers, no quotes and no separators.
8. A Complete Config
Keep all four groups, in this order — the panel pins the names of groups 2, 3 and 4 and writes each group's password by position.
{
"name": "My Enshrouded Server",
"saveDirectory": "./savegame",
"logDirectory": "./logs",
"ip": "0.0.0.0",
"queryPort": 15637,
"slotCount": 16,
"tags": ["LookingForPlayers", "BaseBuilding"],
"voiceChatMode": "Proximity",
"enableVoiceChat": true,
"enableTextChat": true,
"gameSettingsPreset": "Default",
"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
}
],
"bannedAccounts": []
} The four ChangeMe passwords are shown as the panel ships them. Replace them on the Startup tab, not here.
For custom difficulty, set "gameSettingsPreset": "Custom" and keep the whole 37-key gameSettings block that the server generated, editing values in place rather than deleting keys.
9. Applying Changes
Nothing in this file is hot-reloadable. Stop the server, edit enshrouded_server.json, start the server, then confirm it came up cleanly in the log. Remember that the boot you are about to trigger is also when the panel re-applies its ten keys — so if you were changing a password, change it on the Startup tab instead and the restart will apply it for you.
[Session] 'HostOnline' (up)!
[Session] finished transition from 'Lobby' to 'Host_Online' (current='Host_Online')!
[server] Load deserialization took 2.77 s Difficulty cannot change on a live world session
Gameplay settings are read when the world session starts. Changing them mid-session does nothing — the server must be restarted. This has been true since the settings were introduced in the Back to the Shroud update.
JSON is unforgiving, and a broken file blocks the boot
A missing comma, a trailing comma, or a smart quote pasted from a web page will stop the server starting. Keen also warn that configs carried over from older versions sometimes upgrade incorrectly. If the server refuses to start after an update, back up your file, delete it, let the server regenerate a fresh one, and copy your values across by hand.
Use the panel rather than an editor over FTP
On your rented Enshrouded server, stop the server, edit
enshrouded_server.jsonin the file manager, start it, and watch the Console tab for theHost_Onlinetransition. You see the validation error immediately instead of wondering why the server never appeared in the browser.
10. FAQ
How do I make someone an admin on an Enshrouded server?
There is no admin list — the password is the permission. On a GameServerKings server, open the Startup tab, set [USER GROUP] ''Admin'' Group Password, and restart. Give that password to the person; they enter it when joining and the server puts them in the Admin group, which is the group with "canKickBan": true.
Do not set it by editing password inside enshrouded_server.json. The panel overwrites all four group passwords from the Startup tab on every boot, so a password typed into the file works until the next restart and then silently reverts. Anyone holding the Admin password is an admin, so treat it as a credential.
What are the Enshrouded admin commands?
There are none. Enshrouded ships no developer console, no chat commands and no RCON on either the client or the dedicated server. Kicking and banning happen in the in-game player list; everything else is enshrouded_server.json. Any "Enshrouded command list" containing /give or /teleport is describing a different game.
How do I ban a player, and where is the ban stored?
Join with a role that has canKickBan, select the player in the in-game list, and ban them. They go onto a persistent blacklist and are rejected on future join attempts. The list lives in the bannedAccounts array of enshrouded_server.json, and the same in-game widget reviews it and unbans people. The key is bannedAccounts, not bans — and unlike the group passwords, it is not panel-managed, so editing it by hand works.
Why is my gameSettings block having no effect?
Almost certainly because gameSettingsPreset is not "Custom". The individual values are only read in Custom mode; with any of the four named presets the server uses that preset's values and ignores yours. Set the preset to Custom, restart, and check the log for a boot error.
Which ports does an Enshrouded server need?
One: queryPort, UDP 15637 by default, plus Steam's standard ports. Older guides mention a second gamePort on 15636 — that key existed at launch and is no longer part of the generated config.
How many players can an Enshrouded server hold?
slotCount accepts 1 to 16, and 16 is the hard ceiling — set it on the Startup tab, since the panel owns that key. Each slot costs performance, so lower it if CPU or RAM is the bottleneck. The shipped config reserves no slots for Admin (it gives 1 to Friend and 3 to Guest), so raise reservedSlots on your Admin role in the file if you want a guarantee that a full server never locks you out.
11. What to Read Next
- Getting started with your Enshrouded server — first boot, connecting, and the server browser
- Enshrouded Server Settings and Config File — a walkthrough of
enshrouded_server.jsonend to end
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