Guides

Add Steam Workshop mods to a Project Zomboid dedicated server

Every mod on a dedicated server comes down to a few lines in servertest.ini. Here is exactly what they do, how to find the right IDs, and how to edit them without breaking your server.

Where the config lives

A Project Zomboid dedicated server keeps its settings in servertest.ini (or yourserver.ini if you renamed it). It lives in the Zomboid/Server folder under your user home:

  • Linux: ~/Zomboid/Server/servertest.ini
  • Windows: C:\Users\your-user\Zomboid\Server\servertest.ini

Always stop the server and take a copy of this file before editing it.

The three lines that matter

Mods are controlled by three keys:

WorkshopItems=2392709985;2757324939
Mods=Hydrocraft;ExtraCategory
Map=Muldraugh, KY
  • WorkshopItems= is the download list: the numeric Steam Workshop IDs the server subscribes to and downloads.
  • Mods= is the list of logical mod IDs the game actually enables, and it defines load order.
  • Map= lists map folders, in priority order, for mods that add maps.

Why WorkshopItems and Mods are not the same list

This trips up almost everyone: one Workshop item can contain several mod IDs, and the two lists are independent. The number in a Workshop URL (?id=2392709985) is a WorkshopItems value. The Mods value is the mod's internal ID, which the author sets and lists in the Workshop description as Mod ID:. They rarely look alike, and a single subscription can add two or three mod IDs at once. Never put a Workshop number in Mods=, and never put a mod ID in WorkshopItems=.

Finding the IDs

  1. WorkshopItems: open the mod's Workshop page and copy the number from the URL.
  2. Mods: read the Workshop description for one or more Mod ID: lines and add every one of them.
  3. Map: if the description lists a Map Folder:, add that value to Map=.

A worked example

Say you want a mod whose Workshop URL ends in ?id=2757324939, and whose description lists Mod ID: ExtraCategory. You would add the number to the download list and the mod ID to the enable list:

WorkshopItems=2392709985;2757324939
Mods=Hydrocraft;ExtraCategory

Items are separated by ; (semicolons). Map names may contain commas (Muldraugh, KY), which is why only the Map= line treats commas as part of a name.

Common mistakes

  • Putting a Workshop number in Mods= (it belongs in WorkshopItems=).
  • Forgetting a dependency's Workshop item, so the game enables a mod whose requirement never downloaded.
  • Missing a second or third Mod ID: from a multi-mod item.
  • A bad load order, where a mod loads before the framework it needs.

Any of these can stop the server from booting. A dependency validation pass catches them before you launch.

Do it automatically with pzmod

pzmod is a free, open-source terminal app and CLI that handles all of this for you: search the Workshop, resolve dependencies, order your mods, and validate everything before you boot, all while keeping your servertest.ini byte-for-byte intact.

curl -fsSL https://pzmod.dev/install.sh | bash

See how pzmod works →