Mods extend and customise your game server experience, adding new content, mechanics, and quality-of-life features for your players. Most popular dedicated game servers support modding through Steam Workshop or manual file installation. This guide covers how to install mods on a dedicated server, how to manage them, and where to find the tools you need. For game-specific documentation, always refer to the official modding resources for your game.

Running Project Zomboid? Its server setup comes down to two lines in servertest.ini, explained step by step in the Project Zomboid section below.

What Tools Are Needed for Modding a Dedicated Server?

  • SteamCMD: the command-line Steam client used to download and update game servers and Workshop mods. Required for most Steam-based game servers.
  • SSH access: you need command-line access to your server to install mods and edit configuration files.
  • A text editor: nano or vim for editing game configuration files directly on the server.
  • Mod IDs: each Steam Workshop mod has a unique numeric ID visible in the Workshop page URL (https://steamcommunity.com/sharedfiles/filedetails/?id=MOD_ID). Some games use a second identifier as well: Project Zomboid needs both this Workshop ID and a text Mod ID.

How to Install Mods via Steam Workshop

Most Steam-based game servers support Workshop mods by adding mod IDs to the server's launch parameters or configuration file. Here is the general process, using Ark Survival Evolved as an example.

Step 1: Find the mod ID

Go to the Steam Workshop page for the mod you want to install. The mod ID is the number at the end of the URL. For example: steamcommunity.com/sharedfiles/filedetails/?id=731604991 has the mod ID 731604991.

Step 2: Add the mod ID to your server configuration

For Ark Survival Evolved, add the mod IDs to the GameUserSettings.ini file in a comma-separated list:

bash
nano /home/steam/ark/ShooterGame/Saved/Config/LinuxServer/GameUserSettings.ini

Add or update the ActiveMods line under [ServerSettings]:

bash
[ServerSettings]

ActiveMods=731604991,880197445

Step 3: Download the mods using SteamCMD

bash
steamcmd +login anonymous +workshop_download_item 346110 731604991 +quit

Replace 346110 with your game's Steam App ID and 731604991 with your mod ID. Repeat for each mod.

On Ark: Survival Evolved, the Ark community wiki documents a way to let the server handle downloads: start it with the -automanagedmods option and add one ModIDS= line per mod under [ModInstaller] in Game.ini, in the same folder as GameUserSettings.ini. The server then downloads, installs and updates those mods itself (without this option, mod files have to be copied into the server by hand). The mods still have to be listed in ActiveMods to be active.

Step 4: Restart the server

bash
sudo systemctl restart gameserver

This command assumes the game server runs as a systemd service named gameserver: use the name of your own service.

✅ Expected result The server loads with the installed mods active. Players connecting will be prompted to download required mods via Steam.

Project Zomboid: add mods to a dedicated server

Project Zomboid works differently from the generic steps above: there is no ActiveMods line and no manual SteamCMD download. You list the mods in the server's settings file, and the server downloads the Steam Workshop items itself. Players who connect get the same Workshop mods downloaded automatically by Steam. The steps below are for a Linux dedicated server installed with SteamCMD (app ID 380870, "Project Zomboid Dedicated Server").

Step 1: Find the server settings file (servertest.ini)

The server keeps its settings in the home directory of the account that runs it, not in the install folder. On Linux, the folder is ~/Zomboid/Server/ (on Windows, %USERPROFILE%\Zomboid\Server). The PZwiki guide recommends not running the server as root and uses a dedicated account called pzuser, so the folder would be /home/pzuser/Zomboid/Server/.

The file name follows the server name. The default server name is servertest, so the file is servertest.ini, next to servertest_SandboxVars.lua. If you start the server with -servername myworld, edit myworld.ini instead. The server creates these files with default settings the first time it starts under a given name, so start it once before editing.

Stop the server cleanly before you change its mods: type quit in the server console, which saves the world and shuts the server down. Closing the terminal or pressing Ctrl+C can lose unsaved progress.

Step 2: Get each mod's Workshop ID and Mod ID

Every Workshop mod has two identifiers, and the server needs both:

  • Workshop ID (a number): the number at the end of the mod's Workshop page URL, after ?id=. The Share button on the Workshop page gives the same link.
  • Mod ID (text): the id= value in the mod's mod.info file. Mods uploaded with the game's own uploader often end their Workshop description with "Workshop ID: … Mod ID: …". You can also subscribe to the mod and open the Mods menu in the game: its information panel shows the Mod ID and the Workshop ID.

One Workshop item can contain several mods (an optional add-on, or separate versions), each with its own Mod ID. Add only the Mod IDs you want to enable. Also check the "Required Items" list on the right of the Workshop page: each required mod needs its own Workshop ID and Mod ID too, otherwise the mod that depends on it will not run.

Step 3: Fill in the WorkshopItems=, Mods= and Map= lines

Open the file with nano ~/Zomboid/Server/servertest.ini and find these three lines:

  • WorkshopItems= takes the numeric Workshop IDs: the server downloads these items.
  • Mods= takes the text Mod IDs: the server enables these mods.
  • Map= lists map folders. Change it only if you add map mods.

Separate the entries with semicolons, without spaces, as in the official example for this setting (WorkshopItems=514427485;513111049). Both lines are needed and must match: for Workshop mods, every Mod ID in Mods= has to come from an item listed in WorkshopItems=. The PZwiki also warns that the in-game server settings editor can fill in Mods= but leaves WorkshopItems= to you, so always check that line by hand.

Example (placeholder IDs, not real mods):

ini
WorkshopItems=1234567890;2345678901;3456789012
Mods=ExampleLibrary;ExampleMod;ExampleMapMod
Map=ExampleMapFolder;Muldraugh, KY

In this example, 1234567890 is a library that ExampleMod requires, 2345678901 contains ExampleMod, and 3456789012 is a map mod whose map folder is ExampleMapFolder.

Load order. The PZwiki explains that load order rarely matters: it does only when two mods override the same files, and then the mod loaded later wins. As a precaution, list a required mod (a library or framework) before the mods that use it, as in the example.

Maps. A map mod needs its Workshop ID and Mod ID like any other mod, plus its folder name in Map=. That name is the folder under the mod's media/maps directory. Keep Muldraugh, KY (the base game map and the default value) at the end of the list so that modded maps take priority: when it comes first, modded maps can load cut off or not at all. Two map mods that change the same cells conflict whatever the order.

Backslashes in Mods=. Some guides written for the Build 42 multiplayer test builds put a backslash before each Mod ID (Mods=\ExampleMod). Community guides disagree on whether current builds need it, and the format does not appear in the PZwiki server settings documentation. If the log reports a mod as not found, check the mod's Workshop page or the official forums for the format your build expects.

Step 4: Restart the server and check the log

Start the server again from its install folder, with -servername if you use a custom name (/opt/pzserver is the install folder used in the PZwiki guide):

bash
cd /opt/pzserver
bash start-server.sh -servername myworld

The server downloads the items listed in WorkshopItems= and loads the mods listed in Mods=. Follow the dedicated server log, server-console.txt in the Zomboid folder, from a second terminal:

bash
tail -f ~/Zomboid/server-console.txt

Look for errors that name a Workshop ID or a Mod ID. If the server does not start after you add mods, remove the last ones you added from both lines and start again. With a long list, remove half of the mods at a time to find the one at fault.

If players cannot see or join the server, check the firewall. By default, Project Zomboid uses UDP port 16261 (the game port, which also answers Steam queries) and UDP port 16262 (direct connections). Both can be changed in the same file, with DefaultPort= and UDPPort=. With UFW, our dedicated server firewall guide explains the setup:

bash
sudo ufw allow 16261/udp
sudo ufw allow 16262/udp

Keep players' mods and game version in sync

Mod updates. Players do not install mods by hand: Steam downloads the server's Workshop mods when they connect. When a mod author publishes an update, players get it from Steam, but the server keeps the version it downloaded until it restarts. Players then see an error saying the Workshop item version is different from the server's. Restart the server after mod updates. The admin command checkModsNeedUpdate writes to the log whether a mod has been updated.

Game updates. The server and the players must run the same build. "Client version (x) doesn't match server (y)" means one side is behind: Steam updates players' games automatically, but a running server does not update itself. Stop the server with quit, update it with SteamCMD from the account that owns the install folder (pzuser in the PZwiki guide), then start it again:

bash
steamcmd +force_install_dir /opt/pzserver +login anonymous +app_update 380870 validate +quit

Branches. The server and the players must also be on the same branch, as explained below.

Stable build, Build 41 and Pre-Release: what changes for mods

Build 42 has been the default Stable branch since 29 July 2026 (version 42.20). Since 9 November 2026, Stable is 42.22.2. In October 2026, The Indie Stone renamed the old Unstable test branch to Pre-Release: new builds now spend at least a week there before they reach Stable, urgent hotfixes excepted. Build 41 remains available on the legacy41 branch.

  • Build 41 worlds do not carry over. The Indie Stone states that Build 41 saves are not compatible with Build 42. To keep a Build 41 server, add -beta legacy41 to the app_update command you use to install and update the server (Valve's SteamCMD documentation explains how to quote it on the command line). Players then pick legacy41 under Properties, Game Versions & Betas in Steam.
  • Build 42 needs Build 42 versions of mods. Build 42 loads a mod only if its Workshop item contains a Build 42 version folder; Build 41 loads mods from the item's root folder, so one item can carry both versions. Before you switch, check each mod's Workshop page, or the Mods menu in the game, which shows the minimum and maximum game version of each mod.
  • Keep Pre-Release for a test server. The branch exists so that modders and server admins can test upcoming changes. The Indie Stone asks players to back up their saves first and does not guarantee that a Pre-Release save will work in the final release.
  • Back up before every game update. Some mods stop working until their authors update them. The Indie Stone officially supports Lua mods and warns that Java mods break with its updates. Our backup guide covers the process.

Common Project Zomboid mod errors

  • A mod is in Mods= but does not load: its Workshop item is missing from WorkshopItems= (often after using the in-game editor), the Mod ID has a typo, or one of its required items is missing. Compare the two lines entry by entry.
  • A Workshop item is downloaded but the mod is not active: its Mod ID is missing from Mods=.
  • The server cannot download Workshop mods, or is stuck at "Getting server info": the PZwiki says this usually comes from a Steam problem with the Dedicated Server tool installed through the Steam client. Install the server with SteamCMD instead.
  • "Workshop item version is different than server's" when joining: a mod was updated after the server started. Restart the server.
  • "Client version (x) doesn't match server (y)": the game was updated on one side only. Update the server with SteamCMD and check that everyone is on the same branch.
  • Modded maps are cut off or missing: Muldraugh, KY is not at the end of the Map= line.

Which server for a modded Project Zomboid world?

The KS-GAME costs $32.10/month: Intel Core i7 7700K, 32 GB of DDR4 RAM, two 450 GB NVMe SSDs and a 4 TB hard drive, which leaves room for world backups. It is available in Europe, in Beauharnois (Canada), Singapore and Sydney. For ECC memory, the SYS-GAME-1 (AMD Ryzen 5 3600X, 32 GB ECC, two 512 GB NVMe SSDs) costs $55.30/month and the RISE-GAME-1 (AMD Ryzen 5 5600X, 32 GB ECC, two 512 GB NVMe SSDs) $72.00/month. A one-time setup fee equal to one month applies. Each comes with root access, so you can install SteamCMD, create the pzuser account and set the firewall rules above.

How to Install Mods Manually (Non-Workshop)

Some mods are distributed as ZIP or archive files from community forums or modding websites rather than Steam Workshop. The general installation process for manual mod installation is:

  • Download the mod archive from the official modding community (e.g., Nexus Mods, the game's official forum).
  • Extract the mod files to the game's mod directory. The correct path varies by game: check the game's official modding documentation for the exact folder structure.
  • Edit the game's configuration file to reference the new mod (mod ID, file path, or mod name depending on the game).
  • Restart the server and check the logs to confirm the mod loaded correctly.

How to Manage Mods on a Dedicated Server

  • Updating mods: re-run the SteamCMD workshop_download_item command for each mod to download the latest version. Some server operators schedule automatic updates with a cron job. A Project Zomboid server downloads Workshop updates itself when it restarts.
  • Removing mods: delete the mod ID from the configuration file (the ActiveMods list on Ark, both the WorkshopItems= and Mods= lines on Project Zomboid) and remove the mod files from the server. Restart the server to apply the change.
  • Checking compatibility: before adding mods to a live server, check the mod's documentation and the game's community forums for known conflicts with other installed mods or the current game version. On a cross-platform game server, also confirm that each mod works for every platform your players use.
  • Backup before modding: always back up your server's world data and configuration files before adding or updating mods. A broken mod can corrupt save data. See our dedicated server backup guide for the recommended backup process.

Can I Add Mods to an Existing Server?

Yes. You can add mods to a running game server at any time. The process is the same as for a fresh install: add the mod ID to the configuration file, download the mod via SteamCMD, and restart the server. Players already connected will be disconnected during the restart and will need to download any new mods before reconnecting. For more on managing a game server, see our guide on setting up a dedicated game server.

Conclusion

Adding mods to a dedicated server is a straightforward process once you know where to find mod IDs and how to edit the configuration files. The key steps are: find the mod ID, add it to the config, download via SteamCMD, and restart. On Project Zomboid, the server handles the download: fill in WorkshopItems= and Mods= in servertest.ini and restart. Keep backups before making changes, check mod compatibility, and use the server logs to diagnose any issues. Running your modded server on a Kimsufi dedicated server gives you the root access and dedicated resources to customise your game environment exactly as you want it.

Run your modded game server Kimsufi KS servers from $11.10/month. Full root access, unmetered bandwidth, DDoS protection included.

FAQ

Can I use Workshop mods on dedicated servers?

Yes, for most Steam-based games that support Workshop modding. The server administrator adds the mod IDs to the server's configuration, and the mods are downloaded via SteamCMD. Players connecting to the server are automatically prompted to download any required mods through Steam.

Where do I find mod IDs for installation?

Mod IDs are in the Steam Workshop page URL for the mod. Go to the mod's Workshop page in your browser; the ID is the number after ?id= in the URL. Project Zomboid also needs each mod's text Mod ID, found in its mod.info file or in the game's Mods menu. For non-Workshop mods, check the modding documentation for your specific game.

How do I add mods to a Project Zomboid dedicated server?

Stop the server with the quit command, then open ~/Zomboid/Server/servertest.ini (or the .ini named after your server). Add the numeric Workshop IDs to WorkshopItems= and the matching Mod IDs to Mods=, separated by semicolons. For a map mod, also add its map folder to Map=, before Muldraugh, KY. Start the server again: it downloads the Workshop items itself, and Steam downloads the same mods for players when they connect.

Why do players get "Workshop item version is different than server's" in Project Zomboid?

A mod was updated on the Steam Workshop after the server started. Players received the new version from Steam, but the server still runs the version it downloaded at startup. Restart the server so that it downloads the update, and plan a restart whenever the mods you use are updated.

What should I do if a mod breaks my server?

First, check the server logs (sudo journalctl -u gameserver -f if the server runs as a systemd service named gameserver; ~/Zomboid/server-console.txt on Project Zomboid) for error messages that identify which mod is causing the issue. Remove the problematic mod ID from your configuration file and restart the server. If the world data is corrupted, restore from your most recent backup.