How to Install Enshrouded Mods on a Dedicated Server

Enshrouded has no official mod support, but the community mod loader, EML, runs on a dedicated server, and most of what it changes applies to every player without them installing anything. Here is how it works, how to install it yourself, how to take mods off again without leaving changes behind, and how it works on a Flux server.

What EML is

EML, the Enshrouded Mod Loader, is an open source project by Brabb3l (kfc-parser on GitHub). It ships as a file called dbghelp.dll. Placed beside enshrouded_server.exe, it is loaded by the server when it starts, runs each mod in the mods folder and writes the result into the game data before the world loads. Mods are written in Lua, and each one is a folder (or a zip) holding a mod.json and a src folder.

Today EML changes game data before the server starts: stack sizes, chest slots, crafting and loot amounts, stamina, and similar values. It does not add commands, chat or a live map. Enshrouded is largely server authoritative, so a mod installed on the server applies to everyone who joins. Some mods also change what a player sees on their own screen; those need installing on each player's game too, and their Nexus page says so.

EML mods and patchers are not the same thing

KindHow it worksOn a dedicated server
EML modA folder with mod.json and Lua, loaded by EML at every startInstall EML once, then add or remove mods freely
PatcherA tool you run on your PC that rewrites enshrouded_server.kfcUndone by every Steam update or file check, so it has to be reapplied
Cheat table, Reshade presetRuns on a player's own PCNothing to install on the server
World saveA world file and its _info fileUploaded into the savegame folder, not a mod

Installing EML on a self-hosted server

  1. Stop the server and back up the savegame folder.
  2. Download dbghelp.dll from the latest release on the kfc-parser GitHub page.
  3. Put dbghelp.dll in the server folder, next to enshrouded_server.exe.
  4. Create a folder called mods in the same place, and put each mod in it: either its folder (with mod.json directly inside) or its zip, as long as mod.json is at the top of the zip.
  5. On Linux with Wine or Proton, start the server with WINEDLLOVERRIDES="dbghelp=native,builtin" in front of the command. Without it Wine loads its own dbghelp and EML never runs, with no error anywhere.
  6. Start the server. An eml.json file appears in the server folder once EML has loaded.

EML stops at the first problem it meets: a mod.json it cannot read, two mods with the same id, a Lua error in any mod. When it does, it opens an error window, and a server with no screen simply never comes up. If the server hangs on start after you add mods, read EML's own log, a file ending in eml.log in the logs folder beside the server, which names the mod and the error; or take the newest mod out and try again.

Taking mods off cleanly

EML writes its changes into enshrouded_server.kfc and keeps the original beside it as enshrouded_server.kfc.bak. Deleting the mods and dbghelp.dll stops new changes, but the ones already written stay. To get back to the plain game, delete dbghelp.dll and the mods, then let Steam check the files: app_update 2278520 validate in SteamCMD puts the original game data back.

Mods on a Flux server

Every Enshrouded server on Flux has EML built in, so there is nothing to download but the mods themselves:

  1. Download the mod's zip from Nexus Mods.
  2. Open your server in the dashboard, go to the Mods tab and choose the zip. Archives that hold the mod inside a folder, several mods at once, or a copy of EML are all fine: each mod is added on its own, and anything EML would refuse is named before it reaches the server.
  3. Restart the server. The Mods tab shows which mods loaded and how many changes EML made.

The mods live in a folder of their own that travels with the world, so they come along if the server moves to its standby node. Turning a mod off, removing it or turning them all off takes effect on the next restart, and the server puts the original game data back by itself when mods come off. If a mod stops the server, it starts again without mods and the Mods tab names the mod that failed, so a broken mod costs a restart, not an evening.

Mods and game updates

Mods are made by the community, not by Keen Games, and a game update can change the data a mod expects. After a big update, Enshrouded 1.0 included, check each mod's page for a version that matches before turning it back on. If the server will not start with a mod after an update, that mod is the first thing to take out.

Frequently asked questions

Can you use mods on an Enshrouded dedicated server?

Yes, through EML, the community Enshrouded Mod Loader. It has no official support from Keen Games, but it runs on a dedicated server, and because the game is largely server authoritative most of its changes apply to every player who joins.

Do players need to install the mods too?

Usually not. A mod installed on the server applies to everyone for anything the server decides, such as stack sizes, chest slots or loot. A few mods also change what a player sees on their own screen, and those say on their Nexus page that players need them too.

Why does my Enshrouded server not start after adding a mod?

EML stops at the first problem it meets, such as an invalid mod.json, two mods with the same id or a Lua error, and opens an error window that a server without a screen cannot show. Take the newest mod out and start again. On Flux the server does this by itself: it starts without mods and the Mods tab names the mod that failed.

How do I remove mods from an Enshrouded server?

Delete dbghelp.dll and the mods folder, then run app_update 2278520 validate in SteamCMD. EML writes its changes into the game data, so removing the files alone leaves them in place; the file check puts the original back. A Flux server does this by itself when mods come off.

Does EML work on a Linux Enshrouded server?

Yes, under Wine or Proton, if the server is started with WINEDLLOVERRIDES="dbghelp=native,builtin". Without that setting Wine uses its own dbghelp and EML silently never loads.

Related Enshrouded guides