Modding Mayhem: Add Steam Workshop Mods to Your Project Zomboid Server (B41 & B42)
Yes โ you can deck out your Project Zomboid server with Steam Workshop mods in just a few steps! Here's the short version: subscribe to mods on Steam, enable them on your server (via config file or host menu), and restart. Both the host and players will automatically download the mods when joining. Need the nitty-gritty? Jump to the Quick-Start Guide for a speedy rundown, or read on for a detailed toolbox on modding Build 41 and Build 42 servers (co-op and dedicated). Let's turn your apocalypse into a modded madhouse!
Quick-Start Guide to Adding Mods (TL;DR)
Subscribe to Mods on Steam
Find your desired mods on the Steam Workshop (Project Zomboid section) and click Subscribe. Do this on the server PC (and any client PCs for good measure).
Enable Mods in Host Settings (Co-op)
If you're hosting via the in-game Host menu, go to Mods and Steam Workshop tabs in the server settings. Check the mods you want on both lists โ this adds them to the server config.
Edit Server Config (Dedicated)
If you run a dedicated server, open your server's servertest.ini
(in Zomboid/Server
). Add the Workshop ID(s) to the WorkshopItems=
line and Mod ID(s) to the Mods=
line, separated by semicolons. (Example below.) Save and restart the server.
Server Downloads Mods
Upon restart, the server will automatically download the specified Workshop mods (you'll see it in the console/log). They'll be enabled once fully downloaded.
Clients Join & Sync
When players join, the game will prompt to download any missing mods. After subscribing through the prompt, let the mods download, and then reconnect. Everyone must have the same mod versions.
Why Mod Your Project Zomboid Server?
Project Zomboid is an amazing sandbox on its own, but mods take it to the next level. From quality-of-life tweaks to full content overhauls, Steam Workshop mods let you tailor the apocalypse to your liking. Want authentic 90s cars, new weapons, or expanded crafting? Mods have you covered. Running a server with mods can rejuvenate gameplay and keep your group engaged long-term.
The pain point: historically, adding mods to a PZ server could be confusing. Players often struggle with mods "not working" or friends getting kicked due to version mismatches. This guide exists to eliminate those frustrations. Below, we'll break down the process for both peer-to-peer co-op hosting and dedicated servers on Windows/Linux, focusing only on Steam Workshop mods (the safest, most convenient source). No more guessing which files to copy or obscure errors โ let's solve the common problems step by step.
(Throughout this guide, we'll use examples from Build 41, and highlight differences in Build 42 โ the newest version that brings some changes to modding.)
Setting Up Mods in Co-op Host (Peer-to-Peer)
So you're hosting a game via "Host" in Project Zomboid's menu for some friends โ easy and quick. But when you start the server, your mods didn't load, or your friends can't see the modded items. Sound familiar? Let's fix that.
In-game "Host" server settings โ make sure to enable your mods in both the Mods tab and the Steam Workshop tab before starting! Each checked entry on the Workshop list corresponds to a mod's Workshop ID.
Enabling Mods in the Host Menu
When using the in-game hosting feature, Project Zomboid provides a GUI to configure mods (and other settings) for your server. It's crucial to enable mods in two places:
- Mods Tab: This lists the Mod names (Mod IDs) of mods you've subscribed to. Enabling a mod here tells the game to load it.
- Steam Workshop Tab: This tab is where you specify which Workshop items the server should download. Each entry corresponds to a Workshop ID number for a mod.
Both tabs must have the mod enabled for it to work in co-op. Many players make the mistake of ticking only the Mods tab or only the Workshop tab. The result? The server might not load the mod or might not prompt clients to download it. As the official support advises: "Make sure you enable the mods in both the 'Mods' and 'Steam Workshop' tab in the server settings, they have to be enabled in both.".
How to do it:
- On the Host settings screen, click Steam Workshop on the left panel. Use the dropdown or "Add" button to add each mod's Workshop ID. If you've subscribed to mods, they should be listed by name โ select each mod you want. They'll appear in a list with their numeric ID.
- Now click Mods on the left panel. You should see the names of the mods (Mod IDs). Check the box next to each mod you want to enable on the server. (These correspond to the same mods you added in Steam Workshop tab.)
- Double-check that every mod you want is present and checked in both lists. For example, to add "Hydrocraft" mod, ensure it's added in Steam Workshop (with its Workshop ID) and ticked in Mods tab as "Hydrocraft".
- Start the server as usual (click Start or Host).
If done correctly, the server will launch and load those mods. The first time, it may take a moment to download the mod files if you (the host) haven't used them in single-player. The next section explains how that works.
Behind the scenes: The game is actually updating an .ini file for your server settings (found in C:\Users\<YourUser>\Zomboid\Server\<yourservername>.ini
). In that file, it's adding the Workshop IDs and Mod IDs you selected. You don't need to edit this manually for co-op, but it's good to know it exists. (This is the same file we'll edit for dedicated servers later.) For reference, after using the UI, your file might include lines like:
WorkshopItems=2561774086;2286126274 Mods=Hydrocraft;FuelAPI
(The above is just an example: two mods added by their IDs.)
How Clients Download Mods (Syncing with Players)
One great aspect of using Workshop mods is that clients will auto-sync mods when joining a server. Here's what happens:
- When your friend attempts to join your hosted game, the server checks their mods. If they are missing a mod or have the wrong version, the server will notify them. The client will see a popup like: "The server requires the following Workshop items: [Mod Names]. Subscribe and download them now?".
- The player should click Yes/Subscribe. The game (via Steam) will then download those mods automatically. This might kick them back to the menu while downloading. (They may need to wait a minute or two for Steam to finish the download; the process is usually automatic.)
- Once the mods are downloaded, the player can rejoin the server. No additional manual steps needed โ the game will load the new mods and connect.
This system means you don't have to send your friends mod files or URLs. As long as the server is correctly advertising the mods (which the Host menu did by populating Workshop IDs), Steam takes care of syncing them. It's pretty seamless when it works.
Common hiccup: Sometimes, a friend might get stuck on "Workshop item version is different than server's" or a similar mismatch error. This often occurs if their Steam didn't download the update, or if the mod updated on Workshop and the server host hasn't restarted to grab it. The fix is usually to have the client quit PZ, restart Steam (to force any pending Workshop downloads), and then try again. If that fails, the host should also ensure their own mods are up-to-date (restart the server to force re-download if needed).
FAQ: Do my friends need to manually subscribe to all mods beforehand?
Not necessarily. It can save time if everyone pre-subcribes to the mod list (especially large mods) so downloads happen before connecting. But it's not required โ the game will prompt and download as described. For a smoother first join, you can share a Steam Workshop Collection of all mods (one link that contains all mod subscriptions). Then your friends can subscribe to the collection in one go. (We'll cover collections in the Advanced section.)
Troubleshooting Co-op Mod Issues
Even with the above steps, a few things can go wrong in co-op modding. Here's a quick checklist and fixes:
- Mods still not appearing in-game: After starting the server, if you don't see mod content, stop the server and double-check the Host settings. It's easy to forget a tab. Ensure the mod is in both lists and try again. Also verify that you (the host) actually see the mods enabled in your main menu's Mods screen (on the PZ main menu) โ if not, the game may not have downloaded them properly for you.
- Friends can't join due to mods mismatch: Ensure everyone, including host, is on the same game version (Build 41 vs 41.78, etc., or the same beta branch if using one). Mismatched game versions can falsely flag mods. If the game versions are same, then ensure every listed mod is actually downloaded for the client. Sometimes unsubscribing then re-subscribing to a problematic mod can grab the correct version.
- "Workshop item not found" error: This can occur if a mod was removed from Workshop or set to hidden. If you see this, identify which mod ID is causing it (the error usually lists an ID). You might need to remove that mod from your server list (it's no longer available). Alternatively, find if the mod has a replacement or updated version.
- Game won't start after enabling a mod (host side): If the host's game is crashing on startup after enabling a mod in the host settings, one of the mods might be corrupt or conflict with another. Disable all mods, then add them back one by one to find the culprit. It's rare in Build 41 for a mod to outright crash on load, but it can happen with outdated mods. If found, exclude that mod or seek an updated version.
- Co-op performance issues: Not directly a "mods not working" issue, but be aware that some large mods (huge map mods or overhauls like Hydrocraft) can increase memory/CPU usage for the host. If the host machine is struggling, it might manifest as lag or even mod loading failures. The solution might be to upgrade the host hardware or move to a dedicated server for those heavy mods.
By now, you should have a co-op server running mods successfully. Next, we'll tackle dedicated servers, which require a bit more manual setup but offer more control and persistence.
Installing Mods on a Dedicated Server (Windows & Linux)
Dedicated servers are the way to go for a persistent world or for hosting when the game isn't running on your PC. They run separately from the game client. This means we can't just tick boxes in a GUI; instead, we configure mods through files or commands. Don't worry โ it's straightforward once you know where to look.
Whether you're on Windows or Linux, the key is to update the server's configuration so it knows which mods to download and enable. Project Zomboid's dedicated server has built-in Steam Workshop support, so it can fetch mods on startup if configured correctly.
Windows Dedicated Server: Adding Mods Step-by-Step
Prerequisite: You should have the Project Zomboid Dedicated Server installed (via Steam or SteamCMD) and running at least once. If not, set that up first (it creates the default server files). Let's call our server "servertest" (the default).
-
Locate the Server INI File: Navigate to your PZ server files. If installed via Steam on Windows, it's typically in:
C:\Users\<YourUser>\Zomboid\Server\servertest.ini
This is the config file with all server settings. Openservertest.ini
with a text editor (Notepad works, though something like Notepad++ is nicer).
(If you used a custom server name, find<servername>.ini
instead of servertest.ini.) -
Find Workshop and Mods lines: Scroll or search (Ctrl+F) for the lines beginning with
WorkshopItems=
andMods=
. By default they might be blank or commented out. For example:WorkshopItems= Mods=
If they're missing entirely, ensure you opened the correct file, or add the lines under the[MAIN]
section. -
Gather the Mod IDs: For each mod you want, you need two identifiers:
- The Workshop ID (a number, e.g. 2169435993)
- The Mod ID (a string, e.g.
WeaponExpansion
)
?id=
is the Workshop ID.)Write down each pair of IDs. For illustration: let's say we want Tsar's Common Library mod (needed by many vehicle mods) and '80 Kz1000 Police Bike' mod. From their pages:
- Workshop ID
2392709985
, Mod IDtsarslib
- Workshop ID
2818847163
, Mod ID80kz1000
-
Edit the lines: In
servertest.ini
, input the IDs.WorkshopItems=
gets the numeric Workshop IDs, separated by a semicolon;
with no spaces.Mods=
gets the textual Mod IDs, also semicolon-separated. For our example:WorkshopItems=2392709985;2818847163 Mods=tsarslib;80kz1000
It's critical these line up in corresponding order (though the game usually matches by name regardless of order, it's good practice to have them in parallel). Each Workshop ID should have its Mod ID listed; otherwise the server won't know to actually load that mod after downloading.Editing the server
.ini
config to add mods. TheWorkshopItems
line lists the Steam Workshop IDs for mods to download, and theMods
line lists the corresponding Mod IDs (from mod info). Here we've added two mods as an example. - Save and Close the file. Double-check there are no typos. (A common mistake is leaving a trailing semicolon at the end of the list โ it's harmless if you do, the server will ignore a blank entry, but best to keep it clean.)
-
Start the Server: Launch your dedicated server (e.g., run the
StartServer64.bat
on Windows or launch via Steam). Watch the console output. You should see it contact Steam and begin downloading the mods you listed. It will look something like:QUERYING WORKSHOP ITEMS... Downloading item 2392709985 ... done Downloading item 2818847163 ... done
Then it loads those mods (look for lines like "Loaded librarytsarslib
" etc.). If you see errors here (e.g., "Failed to download Workshop item"), ensure the Workshop ID is correct and that Steam isn't having issues. Occasionally, Steam's workshop can be slow or down; the server might try again automatically. - Done! The server now has the mods. Clients can join and will be prompted to download these mods (just like in co-op). The mods will be active on the server world โ new items, mechanics or maps introduced by them should now function.
Example config snippet (after adding mods):
# Steam Workshop Mods to Install (IDs) WorkshopItems=2392709985;2818847163 # Mods to Enable (Mod folder names) Mods=tsarslib;80kz1000 # (other settings like Map, etc. below) Map=Muldraugh, KY ...
(Notice we put Tsar's Library first in both lists, then the Bike mod second. Tsar's Library is a required dependency for the bike mod, so it's listed as a separate mod entry.)
Map Mods: If the mods you installed include custom maps, there's one more step: add the map name to the Map=
or Maps=
line in the config. For example, if you added "Bedford Falls" map mod, you would add BedfordFalls;
to the Map=
line (before or after the default "Muldraugh, KY", depending if it's an addition or a total conversion). Many map mods include instructions on what to put in the Map line. And be sure to include the map mod's IDs in WorkshopItems/Mods too. For multiple maps, separate them by semicolons on the Map
line as well.
Linux Dedicated Server: Adding Mods (SteamCMD or Manual)
Running a PZ server on Linux is quite common for dedicated hosts. The process is similar, but since there's no Steam GUI, you rely on SteamCMD or the server's own workshop integration.
Option 1: Let the Server Download Mods (Steam Workshop Integration)
Project Zomboid's server can download mods on Linux just like on Windows, as long as it can reach Steam. You will still edit the ServerName.ini
file exactly as above (with WorkshopItems and Mods lines). The only catch: If you run the server with the -nosteam
flag (i.e., without Steam integration), it cannot download from Workshop. So ensure your start script is not using -nosteam
. The default behavior (if you just run the ProjectZomboidServer64
script without -nosteam) is to use Steam and allow workshop downloads.
After editing the ini, start the server. The first start might output something like "Connecting to Steam" followed by the downloading messages. On Linux, the workshop content typically goes into the Steam/steamapps/workshop
directory under the user that runs the server. If your server fails to download (for example, if you see errors about "not logged in"), you might need to use SteamCMD with a login.
Option 2: Using SteamCMD to Pre-download Mods
In some setups, you might prefer to fetch mods via SteamCMD manually. For instance, if your server is running in a container or you want to pre-cache mods.
Here's how to use SteamCMD for PZ mods:
- Install SteamCMD on your Linux server if not already installed.
-
For each mod's Workshop ID, run:
steamcmd +login anonymous +workshop_download_item 108600 <WorkshopID> +quit
Replace<WorkshopID>
with the numeric ID (e.g.,2818847163
). The108600
is PZ's game ID on Steam. This command logs in anonymously and downloads the item to~/.steam/steamcmd/workshop/content/108600/<WorkshopID>
. (If you have a Steam account and prefer, you can login with your credentials instead of anonymous; usually not necessary for public mods.) - Repeat for all mods or write a small script to loop through a list of IDs.
-
Once downloaded, you need to move or symlink these mod files to where the PZ server expects them. The dedicated server looks in its installation's
steamapps/workshop/content/108600
directory by default (for Steam integration) or sometimes theZomboid/Workshop
folder in your home directory (for the user's local files). To be sure, you can create a directory structure the same as on Windows. One approach:- Copy the folder
<WorkshopID>
fromsteamcmd/workshop/content/108600/
to the PZ server installation undermedia/workshop/
or into the user'sZomboid/Workshop
folder. Recent versions should recognize them if placed in the correct spot. - Alternative: Launch the server normally after editing the ini โ it might actually detect the presence of those already-downloaded mods and just use them (since SteamCMD downloads are in the same path it would use).
- Copy the folder
- Edit
servertest.ini
as described earlier (WorkshopItems and Mods lines). Even if you manually downloaded the files, you still need to list them in the config for the server to load them. If you've placed files correctly, the server may skip downloading (it might say already up-to-date) and just load them. - Start the server. Verify it finds and loads the mods.
Linux file paths: Suppose your dedicated server is installed at /home/pzserver/projectzomboid
. The workshop content might be expected at /home/pzserver/Steam/steamapps/workshop/content/108600/<WorkshopID>
or in a similar .steam
directory for the user. If the server output complains it can't find workshop or mods, it could be a path issue โ ensure the user running the server has access to the files.
Heads up: After a mod update, the server will attempt to download the new version on next restart if using the integrated approach. If you used manual SteamCMD and haven't updated, the server might kick players due to version mismatch. So, consider setting up a cron job or script to periodically run the SteamCMD updates for your mod list (or use the auto-update method with a script โ discussed in Advanced section).
Confirming Mods Loaded on Dedicated Server
Regardless of OS, after the server is up, you can confirm mods loaded by either:
- Checking the console/log: You'll usually see each mod name mentioned. For example, lines like
MOD: Mod "Tsar's Common Library" has been loaded
or similar. The log filelogs/console.txt
will contain these. - In-game, join the server as admin and use
/mods
command in chat. This command (if available) lists active mods on the server. (If not, simply verify that mod content is present โ e.g., craft a mod item or check admin panel for mod-added items). - The server's UI (if using the Terminal UI on Windows) might show an "Mods:" field listing active mods as well.
If something didn't load, double-check spelling and punctuation in servertest.ini
. A single typo in Mod ID will cause that mod not to load, even if downloaded. It's forgiving about order and whitespace but not about exact IDs.
Client Considerations for Dedicated Servers
From the player side, joining a dedicated server with mods is the same experience as joining a co-op host:
- If the player has the mod already (subscribed in Steam), the game will compare versions. If up-to-date, they join seamlessly.
- If the player doesn't have the mod, they'll get the subscribe prompt. They should accept, let it download, and rejoin.
- If a mod is large, they might time out on first join if download is slow. It can help for server owners to share their mod list (perhaps via a Steam Workshop Collection) so players can pre-subscribe and download mods beforehand. That way, they connect quickly.
- If using a Steam Workshop Collection, note that the server itself doesn't know what a "collection" is โ you still list individual mod IDs in the config. The collection is purely for player convenience (one-click subscribe to all).
One thing to highlight: Every time you add a new mod to a dedicated server, you must repeat the process (update the .ini and restart the server). Likewise, removing a mod means taking it out of those lines and restarting (removing mods can cause save issues, so be careful โ more on that later).
We've now covered the heavy lifting of getting mods on both co-op and dedicated servers. Next, let's discuss some version-specific nuances (Build 41 vs Build 42) that can impact your modding experience.
Build 41 vs. Build 42: Modding Differences and Tips
Project Zomboid's Build 41 has been the stable foundation for a long time. Build 42 is the new (currently unstable as of this writing) version that introduces many changes โ including how mods are handled. Here's what you need to know if you're venturing into B42:
1. Mod Compatibility
Simply put, Build 41 mods are not compatible with Build 42. This is a rare hard break in PZ's history โ it happened because the mod system and game code changed significantly in B42. The devs explicitly warned: "Build 41 saves and mods are NOT compatible with Build 42.". What does this mean for you?
- If you update your server or game to B42, your old mods from B41 will not load until they are updated by their creators. The game will either ignore them or throw errors. You'll likely start B42 with zero mods active initially.
- On the Steam Workshop, mod authors have begun updating popular mods for B42. Often, they'll update the same Workshop item to work with both versions, or they might release a separate Workshop item specifically for B42. Check mod descriptions or titles for "Build 42" compatibility notes. Some mods might say "B42 compatible" or have a beta version.
- If a mod hasn't been updated, it will remain broken in B42. You might have to play without it or find an alternative mod.
2. New Mod Folder Format
Under the hood, B42 required modders to include a new folder structure in their mod files. They must add a /media/lua/client
and /media/lua/server
separation specifically for B42 (and a "42" version folder). As a server admin, you don't need to worry about the details, but this explains why mods must be updated โ the game expects that new format. If you try to force a B41 mod on B42, it won't find the files where it expects them.
3. Official Mod Manager UI
On the bright side, Build 42 brings a much-improved interface for handling mods. The devs have mentioned an "official mod manager" in B42's features. In practice, as of B42 unstable, this appears as a revamped Mods menu with better search, filtering, and the ability to create mod presets (even separate server mod lists). Essentially, it should make what the Mod Manager: Server mod was doing into a built-in feature. For example, you could have a preset for "My Mega Mod List" and apply it to your server config with one click, rather than toggling dozens of mods one by one. If you're on B42, definitely explore this mod manager UI in the game's menu โ it can save you time and show at a glance which mods might be out-of-date or missing dependencies.
4. Fewer Mods (for now)
Because B42 is in testing, not all mods are there yet. As one community post noted, the mod selection for B42 is much smaller initially. Within the first days of unstable release, over 140 mods were made B42-compatible, which is a lot, but still a fraction of the thousands available for B41. If you rely on many mods, consider whether jumping to B42 is worth it yet. On the flip side, new mods are being designed with B42 in mind, taking advantage of new features (e.g., animals, new crafting). Some modders have released B42-exclusive mods already, so there's fresh content if you do swap over.
5. Mixed Version Servers
It's worth stating: all players, and the server, need to be on the same PZ build. You can't have a B41 client join a B42 server or vice versa. This is obvious for game versions, but also matters for mods โ if a player somehow still has a B41 edition of a mod and joins a B42 server with the B42-updated mod, it's effectively a mismatch. The solution is just to let Steam update everything, but in cases where Steam might not auto-update a mod (perhaps the mod was temporarily pulled or the user is on an old workshop branch), resubscription might be needed.
6. Advice for Server Owners (Early B42)
Running a B42 server while it's unstable is for the adventurous. Expect more patches and maybe even mod-breaking changes during the unstable period. Keep an eye on patch notes and consider running backup saves often (the db
folder containing the world). Also, maintain a list of which mods you're using and check frequently if updates are available. A mod that worked on B42.5 might break on B42.6 until the modder updates again. Coordination with your player base is key โ maybe have a Discord where you announce, "Hey, server's updating to new patch, these 3 mods not working until further notice," etc.
In summary: Build 41 is the stable playground with a huge mod ecosystem. Build 42 is the exciting frontier that's still settling in, with fantastic new features and an official mod manager, but you'll trade off some mod variety until it matures. If you just want things to work with lots of mods, sticking to B41 (41.78) is a safe choice for now. If you love being on the cutting edge and don't mind a little breakage, B42 can be rewarding โ just approach it knowing the limitations.
(Up next: some advanced tips, tools, and scripts to supercharge your modded server management โ especially useful for those running many mods or wanting automation.)
Advanced Modding Toolbox: Power-User Tips and Tools
So you've got the basics down โ but maybe you're managing a server with dozens of mods, or you want to streamline the update process. This section covers advanced techniques and handy tools that can save you time and headaches.
Managing Large Mod Lists with Mod Manager Mods
Enabling 5 mods is one thing; enabling 50 is quite another. Doing that via a text file or clicking each one in the UI is tedious and error-prone. Enter the "Mod Manager" family of mods.
One standout is Mod Manager: Server by NoctisFalco. It's a client-side mod (for the game UI) that extends the regular mod manager. What does it do? In short, it provides a new interface to organize and apply mods to your server config. Features include search, filters, and the ability to save mod presets specifically for servers. Crucially, it helps ensure that when you select a mod that has required dependency mods, you won't forget to include them โ "Now you will never forget to add required mods to your server's config!" as the author says.
How to use it:
Subscribe to "Mod Manager" and "Mod Manager: Server" on Steam Workshop (note: Mod Manager: Server requires the base Mod Manager mod to work). Enable them in your game (they are client-side tools, not something that runs on the dedicated server). In your PZ main menu, you'll get a new enhanced Mods dialog. There, you can select a server preset (like your "servertest" settings), tick all the mods you want via a much nicer UI (with multi-select, etc.), and then it will automatically update your server's .ini file for you (if it's a local server) or output the lines you need.
Some players even use this mod manager locally to prepare a config for a remote dedicated server: they enable mods in the UI, then copy the generated WorkshopItems
and Mods
lines from their local servertest.ini
to the rented server. This was described in a Reddit thread: use the mod manager to generate the server ini, then "copy this file and upload itโฆ to your dedicated server". It's a clever way to avoid manual errors.
Since Build 42 is introducing an official mod manager, these mods might become less essential on that version โ but for Build 41, they are lifesavers for heavy mod users. Even on B42, if the official UI lacks some features, the community mod manager might still be useful.
Another tool โ Mod Presets mod: There are a couple of mods (e.g., Mod Preset by star, etc.) that let you save named sets of mods. These can help if you run multiple servers or often switch mod sets. One preset could be "Vanilla-ish QoL mods" and another "Crazy 50-mod pack", etc., and you can swap quickly without re-ticking everything. Keep in mind these operate on the client UI level as well.
Using Steam Workshop Collections for Easy Subscribing
While the server can't directly use a Workshop Collection ID to load mods, you can leverage collections to simplify life for your players (and yourself).
What is a Workshop Collection? It's basically a list of mods on Steam Workshop that you curate, which others can subscribe to in one click. If you make a collection for your server, you can include all required mods in it. Then, if a new player wants to join, you just send them the collection link and say "Subscribe to all". They'll get all the mods downloaded in one go (or at least queued), rather than needing to individually accept each mod on join.
For example, say your server uses 30 mods. Without a collection, a new player would join, get 30 separate "subscribe?" prompts, and Steam would download each. It works, but it's slow and can overwhelm or annoy the user. With a collection, they pre-download so when they first join your server, ideally they already have everything.
Creating a collection:
On Steam, go to Community > Workshop > Project Zomboid > Browse > Collections > Create Collection. Add all your mods to it, give it a name ("MyServer Mod Pack [Build 41]"), and save. Now you have a URL you can share.
Automating config from collections: If you have a collection and want to get all the Workshop IDs out of it to paste into your config, tools like PZidgrabber come in handy. With PZidgrabber (a web tool), you paste your collection URL, and it will spit out two lists: one of all Workshop IDs, and one of all Mod IDs (if it can find them) ready to plug into WorkshopItems
and Mods
. This was recommended in a guide for easier config editing. It's not an official tool, but it's simple and saves time versus clicking through each mod page manually.
Remember that if your collection changes (e.g., you add a new mod), you'll need to update your server .ini as well; the collection itself doesn't magically sync to the server.
Automating Mod Updates (Keeping Server Mods Up-to-date)
One headache servers face is when a mod on Workshop updates, but your server hasn't restarted to grab it. Players then get the dreaded "Workshop item version is different" error until you update. If you have active admins, you can monitor and reboot when needed. But you can also automate this process to an extent.
Workshop Auto-Update Mod (Udderly Up-To-Date):
There's a mod aptly named "Udderly Up To Date". This mod's goal is to help servers stay in sync with workshop updates. How? It runs on the server and monitors for mod version changes. When it detects an update on the Workshop, it triggers a graceful shutdown or notification so that the server can restart and pull the update. It even logs which mod triggered it. The concept is that you pair this with a restart script to achieve auto-update.
Auto-Restart Script:
One recommended approach (from Reddit user ZergTDG) is to modify your server start script to automatically restart whenever it stops. On Windows, this can be done by editing the StartServer64.bat
. They removed the PAUSE
at the end (so it doesn't wait for a keypress on crash) and made it exit with code 0. Then they created a second batch file, e.g. AutoRestart.bat
, that looks like:
:loop @echo Started: %date% %time% Start "" /wait StartServer64.bat goto loop
This will continuously run the server, and if the server process exits (either crashed or closed), the script loops back and starts it again. With UdderlyUpToDate
mod, when a mod needs update, presumably it triggers a shutdown; the script then restarts the server automatically, and on startup, the server downloads the latest mod version. The log even notes which mod updated so you know what happened.
Linux approach: You can achieve similar with a shell script or systemd service that restarts on exit. Or use tools like tmux
/screen
with a while loop. The principle is the same.
Caution: Automatic restarts mean if your server crashes for another reason, it'll also instantly come back (which is good for uptime). But be mindful of potential crash loops. Also, if multiple mods update in succession, your server might restart multiple times (e.g., first restart grabs mod A update, then 10 minutes later mod B update triggers another). Usually that's fine, as these restarts are quick and ensure everyone's in sync, but inform your players that the server might occasionally restart briefly to apply updates.
If you prefer not to use a mod to detect updates, you could schedule daily restarts during off-peak hours to catch updates, or monitor the Workshop RSS feeds for your mods. There's also a community tool called PZ Server Governor (and similar scripts) that can check mod timestamps, but that gets pretty fancy.
The combination of Udderly Up To Date + auto-restart script is currently the closest to a fully automated solution and has been reported to work (as of early 2025). Keep in mind, if Build 42 or later introduces official solutions, these might become obsolete or easier.
Handling Mod Conflicts and Load Order
Project Zomboid mods generally play nice together โ especially since most mods are additive (they add new items, recipes, etc., rather than overwriting base files). However, there are cases where mods conflict or you need a specific load order:
- Conflicts: Two mods might modify the same game file or system (for example, two different mods both altering how firearms work). In B41, whichever mod is loaded last will override conflicting definitions of the first. The load order by default follows the order in the
Mods=
line. So you can technically control priority by ordering those mod IDs. If you suspect a conflict, try swapping the order and see if the behavior changes. The better approach is to check if the mod authors have patches or compatibility notes. Sometimes, mod A will say "place this below mod B" if it's designed to overwrite some of B's behavior. - Enhanced Load Order UI: The same creator of Mod Manager made "Mod Manager: Enhanced Load Order", a mod that helps visualize and change mod load order with drag-and-drop. This is more of a convenience for client side (and useful if you have many mods that could conflict). It's not strictly necessary for servers unless you're debugging an issue.
- Required/Dependent Mods: Many mods depend on others (common libraries). We mentioned Tsar's Library, there's also FuelAPI, ARKs mod pack dependencies, etc. The server must have all required mods listed, or it will complain "requires mod X" and refuse to load the dependent. The console log actually will say something like "Mod Y requires X, which is missing". Always include all required mods as listed on the Workshop page (usually mod authors list "Requires: โฆ" at top or bottom). If you use the Mod Manager mod or the workshop UI, they often auto-include dependencies when you select a mod, which is convenient.
- Too Many Mods? There isn't a hard number limit that's publicly stated, but running dozens (50+) mods can increase the chance of issues. Not just conflicts, but performance: each mod's code runs and some might eat CPU. Monitor your server's performance; if ticks lag or memory use balloons, consider trimming mods or checking if a particular mod is the culprit via removal testing.
Mid-Game Mod Changes (Adding/Removing Mods in an Existing World)
Sometimes you want to introduce a new mod to spice up an ongoing server, or remove one that's problematic. This can be done, but proceed with caution:
- Adding a Mod: For most mods, adding them on the fly is okay. Example: adding a new vehicle mod will simply start spawning those vehicles (in areas that spawn after addition). Adding a new items mod โ those items will start appearing in loot going forward. The things that won't happen are retroactive insertion into already-looted containers or already-explored map chunks. So, you might have to venture to unexplored areas to find the new stuff, or respawn loot via server settings if desired. Important: when you add the mod to the server config and restart, all players must also get the mod (they'll be prompted on join as usual). Ensure everyone knows to download it. If players use collections or a mod loader like we discussed, update those accordingly.
- Removing a Mod: This is trickier. If the mod added any persistent data (items, objects, traits), removing it can cause issues or errors when loading saved areas that contain those things. For instance, if you remove a mod that added a new type of container, any that were placed in the world might vanish or cause errors. The game might throw red errors in console about missing scripts. The safest way to remove a mod is when starting a fresh world. If you must remove it mid-save, try to remove all instances of its content in-game first (e.g., have players destroy or drop-and-burn items from that mod), then remove it and hope for minimal issues. Always backup your save (
Zomboid/Saves/Multiplayer/<server>
folder) before removing a mod, so you can rollback if needed. - Mod Updates Changing Gameplay: A mod might update and substantially alter things (like rebalancing items). Communicate with your players โ sometimes an update can feel like adding/removing a mod in terms of effect. For example, a farming mod might suddenly use different seeds post-update. Usually not breaking, but can confuse players.
If you plan major mod list changes, doing them between server "seasons" or wipes is ideal. For a long-term server, gradually adding mods is fine (we all love new toys), but frequent changes can make the experience inconsistent. Also note, if you heavily alter the mod list, your server's checksum (the fingerprint of mod configuration) changes; players might have to re-download some things on join (the game handles it but just an FYI).
Realistic Example: Putting It All Together
Let's illustrate with a scenario: You run a dedicated server "ZombieLand" on Build 41. You want a host of mods:
- Maps: Fort Redstone, Bedford Falls
- Gameplay: ORGM (Gun mod), Hydrocraft (big items mod), Advanced Trajectory, Autotsar Tuning
- Fun: Superb Survivors (NPCs), and some admin tools mod.
- Step 1: Subscribe to all on your Steam account. Start the server once (without mods) to generate files.
- Step 2: Edit
servertest.ini
: list all Workshop IDs in one longWorkshopItems=
line, and all Mod IDs inMods=
line. Double-check each. For example, Hydrocraft's Workshop ID is ---, Mod ID "Hydrocraft"; ORGM's ID is ---, Mod "ORGM"; etc. (Hydrocraft and ORGM both have dependencies โ make sure to include any libraries they need.) - Step 3: Restart server. It downloads ~2GB of mods (Hydrocraft is big!). It loads them. Some messages about missing HCBattery item distribution pop up โ maybe a minor issue, but it runs.
- Step 4: Players join, get 10 prompts for mods โ you realize you should have used a collection! You quickly create a Workshop Collection "ZombieLand Mod Pack" and share the link in your Discord. New players use that instead of clicking yes ten times.
- Step 5: A week later, a patch updates Autotsar Tuning mod. Players see mismatch. You hadn't installed any auto-update system, so you manually restart the server that evening. It downloads the new Autotsar version and everything is well. To avoid mid-day disruptions, you decide to install the Udderly UpToDate mod and set up the restart script for next time.
- Step 6: Some mods (like Superb Survivors) occasionally glitch โ an NPC mod might throw errors if combined with others. You watch the logs and community forums. One conflict is found: Superb Survivors conflicts with an AI tweak mod you also added. You remove the AI tweak mod (delete its IDs from .ini, restart). Some leftover items from it remain in players' inventories but appear as "Unknown Item" โ they discard them.
Through all this, you've seen how managing mods can be a bit of work, but the enriched gameplay is worth it. By following best practices and using available tools, you kept the chaos manageable.
Finally, let's wrap up with a short recap and additional resources for your modding journey.
Action Steps Recap
Modding your Project Zomboid server might seem daunting, but it boils down to a few key actions:
โ๏ธ Subscribe and Enable: Subscribe to desired mods on Steam Workshop. Enable them on the server (Host UI or dedicated config) by listing both Workshop IDs and Mod IDs.
โ๏ธ Keep it in Sync: Ensure the server and all players have the same mod versions. Restart your server after adding/updating mods so it downloads the latest. Players will auto-download on join โ remind them to accept prompts.
โ๏ธ Verify and Test: Check that mods loaded (server console or in-game). If something's off, re-check IDs or test mods one by one. Common fix for issues is clearing old mods and re-downloading (for clients).
โ๏ธ Use Tools for Efficiency: Use mod manager mods or collections to handle large lists. They prevent mistakes like missing a dependency and save time configuring.
โ๏ธ Monitor Updates: Workshop mods update frequently. Plan for it โ either manual restarts or automated scripts to update. This avoids players being locked out due to version mismatch.
โ๏ธ Communicate with Players: Let your community know what mods are in use and any required client steps. A simple mod list post or collection link helps a ton. And if a mod is causing trouble (or getting removed), give them a heads up to prevent confusion.
โ๏ธ Backup Saves: Especially when experimenting with mod changes, back up your server's save. It's your safety net if a mod goes haywire or you need to roll back.
โ๏ธ Have Fun and Experiment: Finally, don't be afraid to try new mods on a test server or single-player. Familiarize yourself with them, so you can better support them on your server. The zombie apocalypse is your sandbox โ mod it to your heart's content!
By following these steps and tips, you'll create a robust, customized Project Zomboid experience. You've effectively turned your server into your own zombie survival RPG, tailored exactly how you and your friends like it. Just like scavenging for the best gear in Knox County, you've scavenged knowledge from this guide to survive the sometimes brutal world of mod management โ congrats, survivor!