A modded Project Zomboid server stands or falls on two lines in a single settings file. Get them right and the server downloads, loads and shares the same mod list with every player who joins. Get one of them wrong and the failure is usually silent: the server starts, the mods simply are not there. This guide covers those two lines, the ID mix-up behind most broken setups, the backslash question that splits older and newer guides, and the calm way to fix the "Workshop item version is different than the server's" error.
Config file: servertest.ini, in the Zomboid/Server folder of the user running the server
Game AppID for Workshop folders: 108600
Default ports: UDP 16261 and 16262
Applies to: Build 42.21, current stable
The two lines that run everything
Open your server's INI file (the default is servertest.ini; a renamed server uses its own name) and find two lines:
Swipe horizontally to view all columns.
| Line | What goes in it | What it does |
|---|---|---|
WorkshopItems= | Numeric Steam Workshop IDs, separated by semicolons | The server downloads these packages at startup, and joining clients are prompted to install the same items |
Mods= | The mods' internal Mod IDs, separated by semicolons | Activates the downloaded content so it actually loads in game |
A worked example with two verified quality-of-life mods:
WorkshopItems=2313387159;2847184718
Mods=BetterSortCC;ProximityInventory
That is Better Sorting and Proximity Inventory: the first line fetches them, the second line switches them on. The two classic failure modes are mirror images. A Workshop ID with no matching Mod ID downloads happily and never loads. A Mod ID with no matching Workshop ID has nothing to load from. One Workshop item can also contain several separate mods; when it does, each Mod ID you want active gets its own entry in the Mods= line, while the Workshop ID appears once.
Where each ID comes from
The Workshop ID is the number in the item's page address, and most descriptions repeat it at the bottom as "Workshop ID:". The Mod ID is the mod's internal name: most descriptions print it as "Mod ID:", and it is also the id= line inside the mod's mod.info file once downloaded. The two are never interchangeable. A mod's display title is a third thing entirely and belongs in neither line; "that DAMN Library" loads as a framework entry, not by its title. If a mod silently fails to load, a typo in the Mods= line is the first suspect: the server detects what it can, and the server logs (server-console.txt and the latest DebugLog) show which Mod IDs were actually found.
The backslash question
If you have read older server guides, you have seen the Mods= line written with a backslash before every entry:
Mods=\BetterSortCC;\ProximityInventory
That form was real: during the earlier Build 42 period, dedicated servers expected the backslash prefix, and several hosting guides written then still print it, a couple insisting it remains required. Current documentation for the stable builds writes plain IDs instead: the pz-fans server settings and mismatch guides for B42.19, the community wiki's server pages, and several hosts' current worked examples all use the unadorned form, and Pine Hosting states outright that current Build 42 versions no longer require the leading backslash that earlier Build 42 multiplayer versions used. So: on 42.19 to 42.21, write plain IDs. If your rented panel or an old backup produced the backslash form and the mods load, leave a working server alone; if mods silently do not load on a fresh setup, normalise the line to plain IDs and check for typos before you change anything else. One route skips the question entirely: a server set up through the in-game Host menu has a Steam Workshop panel in its settings that writes both lines for you when you install mods there.
In-game Host versus a dedicated server
Swipe horizontally to view all columns.
| Aspect | In-game Host (co-op) | Dedicated server |
|---|---|---|
Runs as | Part of the host's game client | Its own process (Steam tool or SteamCMD), often on a rented box |
World persists | No; the world stops when the host leaves | Yes; time, weather and migration continue with nobody online |
Mods are set | In the server settings screens, including the Workshop panel | By editing the server INI's two lines, or a host panel that edits them for you |
Best for | A few friends, casual sessions | Public or long-running community worlds |
Two rules apply to both. The server downloads its WorkshopItems at startup, so a restart is part of every mod change. And the client-side Mods menu does not synchronise a dedicated server's INI: what a joining player's game enables locally is separate from what the server demands, which is why the join flow checks the list item by item.
Map mods need a third line
Map mods add one more requirement on top of the two lines: the map's folder name also goes into the Map= line of the server settings, placed before "Muldraugh, KY" and separated by a semicolon, so the server loads the new area ahead of the vanilla map. And like single player, a map belongs in the list before the world starts; adding one to a world that already exists is not supported.
A sensible starter list
New servers do better with a short, boring list that every client can run: interface and quality-of-life mods first (Better Sorting, Proximity Inventory, Map Legend UI), one immersion mod the group agrees on, and vehicles only with their framework library ahead of them in the order, libraries before the mods that depend on them. Our best Build 42 mods list has the verified candidates with their IDs; grow from there in small steps, restarting and testing after each addition.
When players cannot join: the version mismatch
The error reads "Workshop item version is different than the server's", and it means exactly one thing: for at least one Workshop item, the client's downloaded copy and the server's downloaded copy are different builds. It is a per-item staleness problem, not a wrong-edition error and not a sign the mod is broken. The join flow's Server Workshop Items screen tells you which item and which side to suspect:
Swipe horizontally to view all columns.
| State shown | Meaning | Next step |
|---|---|---|
Not Subscribed | The item is not subscribed on this client yet | Install or subscribe from that screen, wait for the download, rejoin |
Downloading | Still in progress | Wait; closing Steam mid-download recreates the mismatch |
Update Required | Steam has a newer build of the item for this client | Quit the game, fully restart Steam, let the update finish, rejoin |
Installed | The client's copy looks ready | The server's copy is the likely stale one; the host should restart the server |
Error | The check failed for this item | Note the Workshop ID and work the fix order below |
Fix order, lowest risk first:
1. Match game builds. Client and server must be on the same game build and Steam branch; no cache trick fixes a branch mismatch.
2. Client side: fully restart Steam so a pending Workshop update completes, then rejoin.
3. Server side: stop the server cleanly and restart it. Host and dedicated servers fetch their WorkshopItems at startup, and an always-on server that never restarts after an author updates a mod is the single most common cause of this exact message: every updated client then fails against the server's old copy.
4. Compare the lists. The server's WorkshopItems and Mods should match what clients are expected to run, dependencies included.
5. One stubborn ID only: with the game and server stopped, delete that single item's folder under steamapps/workshop/content/108600/ and let it download again.
6. Last resort: delete the whole 108600 content folder and appworkshop_108600.acf, which forces a re-download of every Project Zomboid mod on that machine. Back up first, and expect every server you play on to re-fetch its full list.
Updating mods without breaking the server
Workshop authors update their mods on their own schedule, and the mismatch mechanics above mean timing matters. Practical server hygiene:
Restart the server after any mod update you know about, before players hit the mismatch.
Add or remove mods in both lines together; a leftover entry in either line is tomorrow's ticket.
Never hand-edit files inside the Workshop content folders. Steam overwrites them on refresh, so local fixes vanish and can desync you from everyone else.
After a major game patch, wait 48 to 72 hours before rebuilding a big list. Authors need time to ship their updates, and 42.20.x hotfixes have changed rules mods depend on before.
Pin the mod list and the server's exact build number where players can see them. Half of all join problems are a player on the wrong branch or a stale client, and both are self-service fixes once the information is visible.
FAQ
Do players have to subscribe to the server's mods themselves?
Joining walks them through it: the Server Workshop Items screen lists what the server requires and its state for their account, and items can be installed from there. They still need the matching mods enabled, and the server's list is the authority on what that is.
Can I add a mod to a server world that is already running?
Yes for most mods: add both lines, restart, and play. Content that spawns in the world appears in areas the world has not generated yet, the same unvisited-cells rule as single player. Map mods are the exception and belong in a fresh world.
A mod works in single player but not on my server. Why?
Work the short list: is its Workshop ID in WorkshopItems, is its exact Mod ID in Mods, is any framework it needs listed ahead of it, and did the server restart after the edit? One of those four is behind nearly every case.
Where is servertest.ini?
In the Server folder inside the Zomboid user folder of the account running the server: C:\Users\<name>\Zomboid\Server\ on Windows, ~/Zomboid/Server/ on Linux and macOS. A server created under a different name uses that name's INI and companion files instead. Edit the files on the machine that actually runs the server.
Related guides
Best Build 42 Mods: the verified picks, with IDs
How to Install Mods in Build 42: enabling, mid-save rules and load order
Maintenance: keeping modded vehicles and weapons working

