How to Install Mods on a DayZ Server: Folders and Keys
Find Workshop IDs, add mod keys, adjust startup parameters, and properly merge types.xml changes so custom loot spawns correctly.
This guide covers installing mods on a DayZ server: where the files live, how the server is told to load them, and why a mod that looks installed still fails to appear in game. For first boot and connecting, see Getting started with your DayZ server.
DayZ mods come from the Steam Workshop at steamcommunity.com/app/221100/workshop/. Unlike most Workshop-based games, the server does not download them for you — that difference is behind most failed installs, and it is worth understanding before you start.
1. Where DayZ Mod Files Live
Every mod is a folder whose name begins with @, and on the server those folders sit at the server root — the same level as serverDZ.cfg and mpmissions/:
serverDZ.cfg
mpmissions/
keys/
@CF/
addons/
config.cpp
keys/
@CommunityOnlineTools/
addons/
config.cpp
keys/
@Namalsk Survival/
addons/
... Three things to note, because each one causes a distinct failure:
addons/holds the mod's actual.pbocontent. A folder without it will load as an empty mod and silently do nothing.config.cppdeclares the mod to the engine, including which other mods it requires.keys/(sometimeskey/) holds the signature file. Its contents must be copied into the server's own top-levelkeys/folder — see section 4.
Open the server root through the File Manager on your managed DayZ server to see this layout directly.
The client stores its copies somewhere else entirely
When a player subscribes on Steam, their machine keeps its own copy under the game install at
steamapps/common/DayZ, separate from anything on the server. Players do not need to match your folder layout — DayZ-SA-Launcher resolves their side automatically. Every other path in this guide is server-side.
2. Mods Do Not Download Themselves
This is the single most common mistake
Subscribing to a mod on Steam does nothing to your server. Adding a mod name to the Startup tab does nothing on its own either. The files have to physically exist on the server first.
The order that works:
- Get the mod files (section 3).
- Upload them to the server root as
@ModName. - Copy the mod's key into
keys/. - Add the mod to the Mods field.
- Restart.
Do it in any other order and the server will start, log a missing-mod error, and carry on without it — which looks identical to the mod simply not working.
3. Getting the Mod Files
Two routes, depending on what your panel offers:
Workshop integration. If your server's egg supports Workshop IDs, paste the numeric ID and the panel fetches the content on boot. The ID is the ?id= value in the mod's Workshop URL.
Download locally, then upload. Use DayZ-SA-Launcher or SteamCMD on your own machine to pull the Workshop content, then upload the resulting @ModName folder through the File Manager or over SFTP. Slower, but it works for every mod including ones not on the Workshop.
4. Keys and Signature Verification
serverDZ.cfg ships with:
verifySignatures = 2; That setting requires every piece of loaded content to be signed, and it is the recommended value — leaving it on is what stops a player joining with modified content. Workshop mods are signed already, so the only work is putting the key where the server looks for it:
Copy the contents of each mod's keys/ (or key/) folder into the server's top-level keys/ folder. Not into the mod's own folder — into the server's.
A missing key does not produce a mod error. It produces players being rejected at connect, which sends most people looking in the wrong place.
5. Telling the Server Which Mods to Load
In the Startup tab, the Mods field takes the folder names, prefixed with @ and separated by semicolons:
@CF;@CommunityOnlineTools;@Namalsk Survival;@Namalsk Island The names must match the folder names on disk exactly, including spaces and capitalisation. @CF and @cf are not the same to the loader.
Order matters. Dependencies load first, so a framework a mod relies on must appear before it in the list.
6. Dependencies and Load Order
Most failed mod installs are a missing dependency rather than a broken mod. Two frameworks account for the bulk of it:
| Framework | Folder | Needed by |
|---|---|---|
| Community Framework | @CF |
A large share of the ecosystem — install it first |
| Dabs Framework | @DabsFramework |
Server-side scripting mods |
Dependencies are not a convention — each mod declares them in its own config.cpp, under requiredAddons[] inside class CfgPatches. When the loader hits a mod whose required addon has not loaded yet, it stops there. That is why order in the Mods field matters, and why a missing framework takes down everything downstream of it rather than just itself.
A proven roleplay stack, in load order:
@CF;@DabsFramework;@CommunityOnlineTools;@DayZ-Expansion-Core;@DayZ-Expansion-Vehicles;@DayZ-Expansion-Markets;@Trader;@CodeLock;@Banking Other mods worth knowing: CommunityOnlineTools (in-game admin GUI), Code Lock (combination locks on doors), Trader (trader stations), Banking (ATM economy), DayZ-Editor-Loader (custom map structures), MMG Mightys Military Gear, Drugs Plus, and Namalsk Survival for a hardcore winter overhaul.
7. Mission Files: types.xml and Friends
Installing the folder is often only half the job. Many mods add items, and an item the loot economy has never heard of will not spawn.
The mission's XML lives in mpmissions/<mission>/db/, with types.xml controlling item spawns and cfgspawnabletypes.xml controlling what spawns inside containers. Mods that add gear normally ship their own XML fragments to merge in.
Full detail on how a types.xml entry is structured — nominal, lifetime, min, restock — is in How to Increase Loot on a DayZ Server (types.xml).
8. Custom Maps
A community map is a mod plus a mission template. Both are required.
- Upload the map mod to the server root, exactly as any other mod.
- Upload its mission folder into
mpmissions/. - Point
serverDZ.cfgat it:
class Missions {
class DayZ {
template = "dayzOffline.namalsk";
};
}; - Apply any mod-specific XML edits to that mission's
db/files.
The stock templates are dayzOffline.chernarusplus (Chernarus), dayzOffline.enoch (Livonia) and dayzOffline.sakhal (Frostline). Popular community maps include Namalsk, Banov, Pripyat, Esseker and DeerIsle.
A new map means a new storage slot
World state lives in
mpmissions/<mission>/storage_<id>/. Switching template starts that world fresh — take a Backups snapshot first if the old world matters.
9. Verifying It Worked
Restart from the Console tab and watch the boot log. Each mod prints its own banner as it loads, so the fastest check is simply counting them against your Mods field.
Then confirm in game: @CommunityOnlineTools is the easy one to eyeball, since it puts a visible admin menu in front of you.
10. Troubleshooting
A mod in the list does nothing. The folder is missing, misnamed, or has no addons/. Names must match on disk exactly.
A mod loads on Windows but not on a Linux host. Case. Bohemia's own modding guidance is explicit that a mod's addons and keys folders — and the files inside addons — must be lower case for the DayZ Linux server binaries to read them. A mod packed with Addons/ works fine on a Windows server and silently does nothing on a Linux one. Rename the folders to lower case; if the files inside addons are also capitalised, those need renaming too.
"Mod loading failed" or a dependency error. A framework is missing or loading too late. @CF first, then @DabsFramework, then everything else.
Players are rejected at connect. A mod key is missing from the server's keys/ folder. This looks like a connection problem, not a mod problem, which is why it is easy to misdiagnose.
Players get "Wrong session state". A version mismatch, enforced by forceSameBuild = 1. The server is on a different DayZ build than the player — restart it to pick up the current version.
A mod's items never spawn. The mod is loaded but its types.xml entries were never merged into the mission.
The server got noticeably heavier. AI-heavy mods are the usual cause; the Enfusion engine struggles with high entity counts. Cap zombie counts and spawn rates for helicopter and boat mods, and keep to the 4–6 hour restart cycle DayZ needs anyway.
11. FAQ
Where are DayZ mods stored on the server?
At the server root, each in its own @ModName folder alongside serverDZ.cfg and mpmissions/. Inside each you will find addons/ (the content), config.cpp (the declaration) and usually keys/ (the signature).
Where is the DayZ mod folder?
There is no single one — every mod is its own top-level @-prefixed folder. The related folder people are usually also looking for is keys/, which is a single shared folder at the server root holding every mod's signature file.
How do I add mods to a DayZ server?
Upload the @ModName folder to the server root, copy its key into keys/, add the name to the Mods field in the Startup tab, and restart. All four steps are required.
Do players need the mods installed too?
Yes. Every connected player needs the same mods; DayZ-SA-Launcher handles that for them automatically when they join a modded server.
Why won't my mods load?
In order of likelihood: a missing dependency (usually @CF), a folder name that does not match the Mods field, or files that were never actually uploaded. Check the boot log — each mod that loads announces itself, so the missing one is visible by absence.
Do I need to reinstall mods after a DayZ update?
Not the server folders, but a mod that has not been updated for the current build may stop working until its author ships a fix. forceSameBuild = 1 will keep mismatched players out in the meantime.
12. What to Read Next
- Getting started with your DayZ server — first boot, maps, and how
types.xmlentries are structured - Configuring your DayZ server — every
serverDZ.cfgkey, includingverifySignaturesandforceSameBuild - DayZ Admin Commands: BattlEye RCon and Admin Tools — CommunityOnlineTools and VPPAdminTools setup
Made with 💜 by GameServerKings

Need a DayZ server?
Deploy an instantly-provisioned DayZ server on high-clock hardware — DDoS protected, no contracts, cancel anytime.
From $12.60 /month