{"id":1491,"date":"2022-01-24T12:12:27","date_gmt":"2022-01-24T12:12:27","guid":{"rendered":"https:\/\/xgamingserver.com\/blog\/?p=1491"},"modified":"2026-06-15T10:49:05","modified_gmt":"2026-06-15T10:49:05","slug":"how-to-install-steam-workshop-mods-to-your-project-zomboid-server","status":"publish","type":"post","link":"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/","title":{"rendered":"How to install Mods to your Project Zomboid Server"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Installing Steam Workshop mods on a Project Zomboid dedicated server trips up more first-time admins than anything else in <code>servertest.ini<\/code>. The reason is almost always the same: Project Zomboid uses a <strong>two-key system<\/strong>, and forgetting one of the two keys is the single most common mod failure. This guide walks through exactly how the system works, why both keys are mandatory, how load order behaves, and how to debug a mod that refuses to load. Everything here applies to the stable <strong>Build 41 (B41.78)<\/strong> branch and carries forward unchanged into the <strong>Build 42 unstable beta<\/strong> branch (opt-in since December 2024, still not the default stable build as of mid-2026).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The two-key system: WorkshopItems vs Mods<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Adding a Workshop mod to a Project Zomboid server requires editing <strong>two separate keys<\/strong> inside your <code>servertest.ini<\/code> file. They do different jobs, and a mod only works when both are filled in correctly:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>WorkshopItems=<\/code><\/strong> takes <strong>numeric Steam Workshop IDs<\/strong> \u2014 the number from the Workshop page URL. This tells the server <strong>what to download<\/strong>. Entries are <strong>semicolon-separated<\/strong>.<\/li>\n<li><strong><code>Mods=<\/code><\/strong> takes <strong>internal text Mod IDs<\/strong> \u2014 identifiers baked inside each mod, <em>not<\/em> the display names you see on Steam. This tells the server <strong>what to activate<\/strong>. Entries are also <strong>semicolon-separated<\/strong>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Think of it as a download list and an activation list. <code>WorkshopItems<\/code> fetches the package from Steam; <code>Mods<\/code> switches the contents on. If you fill in only <code>WorkshopItems<\/code>, the files download to disk but never load into the world. If you fill in only <code>Mods<\/code>, the game tries to activate something it never downloaded. <strong>Both keys are required, every time.<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WorkshopItems=624489512;972954692;670807387\nMods=CraftableAxes;Katana;MREMeal;NecroForge<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Workshop ID vs Mod ID \u2014 the distinction that matters<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">These two identifiers are not interchangeable, and confusing them is what breaks most mod installs:<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Identifier<\/th><th>Where it lives<\/th><th>Format<\/th><th>Goes in<\/th><\/tr><\/thead><tbody><tr><td><strong>Workshop ID<\/strong><\/td><td>The number at the end of the Steam Workshop URL (<code>?id=624489512<\/code>)<\/td><td>Numeric<\/td><td><code>WorkshopItems=<\/code><\/td><\/tr><tr><td><strong>Mod ID<\/strong><\/td><td>Inside the mod&#8217;s own files \/ on the Workshop description page<\/td><td>Text (e.g. <code>CraftableAxes<\/code>)<\/td><td><code>Mods=<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The crucial wrinkle: <strong>one Workshop item can contain several Mod IDs<\/strong>. A single Workshop package might bundle a weapons pack, a UI tweak, and a translation, each with its own internal Mod ID. In that case you list <strong>one<\/strong> Workshop ID under <code>WorkshopItems<\/code> but <strong>multiple<\/strong> Mod IDs under <code>Mods<\/code>. This is why the two lists frequently have different lengths \u2014 and why you can&#8217;t just copy the numbers across. Good mod authors publish the exact Mod ID(s) in the Workshop description; always read it rather than guessing.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Where to edit: the servertest.ini file<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A Project Zomboid dedicated server is configured by files inside your <code>Zomboid\/Server\/<\/code> folder. On Windows that&#8217;s <code>C:\\Users\\<user>\\Zomboid\\Server\\<\/code>. The default server name is <strong><code>servertest<\/code><\/strong>, so the files are named <code>servertest*<\/code>. Three (technically four) files matter:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>servertest.ini<\/code><\/strong> \u2014 main server settings, including the <code>WorkshopItems<\/code> and <code>Mods<\/code> keys, networking\/ports, player cap, PVP, passwords, map, spawn point and RCON.<\/li>\n<li><strong><code>servertest_SandboxVars.lua<\/code><\/strong> \u2014 the world ruleset (zombie population, loot rates, XP multipliers, day length). Some mods add their own <code>SandboxVars.lua<\/code> entries here rather than to the <code>.ini<\/code>.<\/li>\n<li><strong><code>servertest_spawnregions.lua<\/code><\/strong> \u2014 the cities\/regions offered on the spawn screen (PZwiki also lists a <code>servertest_spawnpoints.lua<\/code>).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The Workshop two-key system lives entirely in <code>servertest.ini<\/code>. If you want a full breakdown of every other setting in that file \u2014 PVP, MaxPlayers, passwords, the anti-cheat family \u2014 see our companion walkthrough on the <a href=\"https:\/\/xgamingserver.com\/blog\/servertest-ini-project-zomboid-server-explained\/\">servertest.ini settings explained<\/a>. For the broader picture of standing a box up from scratch, our guide on <a href=\"https:\/\/xgamingserver.com\/blog\/how-to-create-project-zomboid-dedicated-server\/\">creating a Project Zomboid dedicated server<\/a> covers SteamCMD install and start scripts.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step-by-step: adding a Workshop mod<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. Find the Workshop ID<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Open the mod&#8217;s Steam Workshop page. The URL ends with <code>?id=<\/code> followed by a number \u2014 that number is the Workshop ID. For example, in <code>steamcommunity.com\/sharedfiles\/filedetails\/?id=624489512<\/code> the Workshop ID is <code>624489512<\/code>. Collect the IDs for every mod you want.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Find the Mod ID(s)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Most authors list the internal Mod ID directly on the Workshop description, often as a line like <code>Mod ID: CraftableAxes<\/code>. Remember a single package can expose more than one. If the description doesn&#8217;t state it, the Mod ID is the folder name inside the mod&#8217;s <code>media\/<\/code> structure once downloaded. Use the exact text identifier, not the human-readable title.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Edit servertest.ini<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Stop the server first. Open <code>servertest.ini<\/code> in a plain-text editor and append your IDs to each key, separating entries with semicolons and no spaces. Adding a katana mod and a craftable-axes mod looks like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WorkshopItems=624489512;972954692\nMods=CraftableAxes;Katana<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If a single Workshop item bundles two activatable mods, you&#8217;d list one Workshop ID but two Mod IDs:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WorkshopItems=670807387\nMods=MREMeal;MREMeal_Translation<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">4. Start the server \u2014 it auto-downloads<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">On startup the server automatically downloads every item listed in <code>WorkshopItems<\/code> straight from Steam \u2014 you do not pre-download anything manually. Watch the console (more on logs below) as it fetches each package, then activates the matching <code>Mods<\/code> entries. On a large mod list the first boot can take a while; subsequent boots only fetch updates.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Load order: left to right<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Order matters in the <code>Mods=<\/code> line. Project Zomboid loads mods <strong>left to right<\/strong>, and <strong>later entries can override earlier ones<\/strong>. When two mods touch the same item, recipe, or script, the one further right in the list wins. The practical rules:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Put <strong>framework\/library mods first<\/strong> (left), since other mods depend on them being loaded already.<\/li>\n<li>Put <strong>patches and compatibility mods last<\/strong> (right), so their overrides take effect.<\/li>\n<li>If two mods conflict, experiment by swapping their order in <code>Mods=<\/code> before assuming one is broken.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The order of <code>WorkshopItems<\/code> is just a download list and has no gameplay effect \u2014 only the order of <code>Mods<\/code> changes behavior.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The #1 gotcha: forgetting one key<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">By far the most common support ticket is &#8220;my mod downloaded but isn&#8217;t working&#8221; or &#8220;my mod won&#8217;t download.&#8221; Both symptoms come from filling in only one of the two keys. Run through this checklist whenever a mod misbehaves:<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Symptom<\/th><th>Likely cause<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td>Files download but mod does nothing in-game<\/td><td>Workshop ID present, Mod ID missing from <code>Mods=<\/code><\/td><td>Add the correct text Mod ID(s) to <code>Mods=<\/code><\/td><\/tr><tr><td>Server complains the mod can&#8217;t be found<\/td><td>Mod ID present, Workshop ID missing from <code>WorkshopItems=<\/code><\/td><td>Add the numeric Workshop ID to <code>WorkshopItems=<\/code><\/td><\/tr><tr><td>One mod from a bundle works, another doesn&#8217;t<\/td><td>Bundle has multiple Mod IDs, only one listed<\/td><td>List every Mod ID the package exposes<\/td><\/tr><tr><td>Mods load but one overrides another wrongly<\/td><td>Wrong left-to-right order<\/td><td>Reorder entries in <code>Mods=<\/code><\/td><\/tr><tr><td>Used the display name instead of the Mod ID<\/td><td>Display name \u2260 internal Mod ID<\/td><td>Use the exact text Mod ID from the description<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A simple sanity rule: the number of distinct mods you intend to run should match the number of <code>Mods=<\/code> entries, and every Workshop package you want should appear once in <code>WorkshopItems=<\/code>. Counts won&#8217;t always be equal (because of bundles), but every active mod must trace back to a downloaded package.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Verifying and reloading without a full restart<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Two admin commands help confirm your changes took effect. Run them in the server console without a slash, in in-game chat with a <code>\/<\/code> prefix, or over RCON:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>showoptions<\/code><\/strong> \u2014 prints the current <code>.ini<\/code> settings so you can confirm your <code>WorkshopItems<\/code> and <code>Mods<\/code> values are actually loaded.<\/li>\n<li><strong><code>reloadoptions<\/code><\/strong> \u2014 hot-reloads <code>servertest.ini<\/code> while the server is running, applying many setting changes without a restart.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">That said, <strong>adding or removing mods is best done with a full stop\/start<\/strong>, because the server only auto-downloads new Workshop items during startup. Use <code>reloadoptions<\/code> for tweaks to existing settings, not for fetching a brand-new mod. For the full command set \u2014 access levels, item spawning, teleports, bans \u2014 see our <a href=\"https:\/\/xgamingserver.com\/blog\/project-zomboid-server-admin-commands\/\">Project Zomboid admin commands reference<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Debugging a mod that breaks the server<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When a mod causes errors or a crash, the logs tell you which one. Live output goes to <code>server-console.txt<\/code> in your <code>Zomboid\/<\/code> folder (one level up from <code>Server\/<\/code>) \u2014 that&#8217;s the startup sequence, mod-load output, and player connections. On restart, prior logs are moved into <code>Zomboid\/Logs\/<\/code> and timestamped.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Open the latest <code>*_DebugLog-server.txt<\/code> for Lua errors and crash stack traces \u2014 this is the best file for mod-related faults. A Mod ID near the error usually points straight at the culprit.<\/li>\n<li>Confirm a clean boot in <code>server-console.txt<\/code> (or <code>*_coop-console.txt<\/code> in the timestamped set) \u2014 look for each Workshop item downloading and each mod activating.<\/li>\n<li>Once you&#8217;ve identified the offending mod, remove its entry from <code>Mods=<\/code> (and optionally <code>WorkshopItems=<\/code>) to disable it, then restart.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Our deeper walkthrough on <a href=\"https:\/\/xgamingserver.com\/blog\/how-to-check-project-zomboid-server-logs\/\">how to check Project Zomboid server logs<\/a> maps every log file (chat, PVP, safety\/anti-cheat) to its purpose. If you&#8217;d rather skip the file-juggling entirely, a managed <a href=\"https:\/\/xgamingserver.com\/project-zomboid-server-hosting\">Project Zomboid server you can rent<\/a> exposes the mod lists in a control-panel field and handles the Workshop downloads for you.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Build 41 vs Build 42: does anything change for mods?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Good news: <strong>the Workshop two-key system is identical across Build 41 and Build 42<\/strong> in every source reviewed. The same <code>WorkshopItems<\/code> + <code>Mods<\/code> mechanism, the same <code>Zomboid\/Server\/<\/code> layout, and the same admin commands carry over. What you do need to watch:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Branch status (mid-2026):<\/strong> Build 41 (B41.78) is still the stable\/default branch most servers run. Build 42 has been on the opt-in &#8220;unstable&#8221; branch since December 2024; the latest unstable release in our sources is Build 42.17.0 (~April 2026). Press calls stable &#8220;close,&#8221; but no confirmed stable ship date \u2014 don&#8217;t assume B42 is default.<\/li>\n<li><strong>Multiplayer in B42:<\/strong> MP was absent at B42&#8217;s first launch and only joined the unstable branch around December 2025 (\u2248v42.13). Early B42 dedicated-server info from 2024 is unreliable for MP.<\/li>\n<li><strong>Mod compatibility, not config:<\/strong> the <em>config<\/em> mechanism is unchanged, but individual <em>mods<\/em> must be authored for your build. B42 saves are not compatible with B41 and there&#8217;s no official converter, so don&#8217;t mix a mod list across builds expecting the same world.<\/li>\n<li><strong>RAM:<\/strong> B42 is heavier \u2014 plan more headroom in your <code>-Xmx<\/code> JVM flag than a comparable B41 server.<\/li>\n<li><strong>New SandboxVars:<\/strong> B42 added animal, basement and darkness settings as <code>SandboxVars.lua<\/code> entries (not new <code>.ini<\/code> keys), so mods touching those areas may expose extra options there.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">When you run B42, always check a mod&#8217;s Workshop page to confirm it lists Build 42 support before adding it. For the official setup reference, see the <a href=\"https:\/\/xgamingserver.com\/docs\/project-zomboid\">Project Zomboid documentation<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">When a mod corrupts a character (and how to recover safely)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Occasionally a removed or updated mod leaves one player with a broken character \u2014 items that no longer exist, a skill tree that won&#8217;t load. You can reset that single character without touching anyone else&#8217;s progress, but this edits a live database, so <strong>treat it as destructive and back up first<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Multiplayer saves live in <code>Zomboid\/Saves\/Multiplayer\/<servername>\/<\/code>. Per-player data sits in the SQLite database <code>players.db<\/code> inside that folder, in the <code>NetworkPlayers<\/code> table (one row per character). To reset just one character:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Stop the server<\/strong> and <strong>make a backup copy of <code>players.db<\/code><\/strong> before doing anything else.<\/li>\n<li>Open <code>players.db<\/code> in DB Browser for SQLite \u2192 <strong>Browse Data<\/strong> \u2192 table <code>NetworkPlayers<\/code>.<\/li>\n<li>Find the broken player&#8217;s row, select the whole row, delete <strong>only that one row<\/strong>, then <strong>Write Changes<\/strong>.<\/li>\n<li>Restart. The world, other players and all map data are untouched; that player simply recreates a fresh character on next join.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">This zeroes the character \u2014 it cannot recover the pre-break state, and a wrong table or row deletion is permanent. The full procedure is in our guide on <a href=\"https:\/\/xgamingserver.com\/blog\/how-to-reset-a-broken-project-zomboid-character-without-affecting-other-players-character\/\">resetting a broken Project Zomboid character without affecting other players<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently asked questions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Why did my mod download but not work?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Because you filled in <code>WorkshopItems=<\/code> (the download list) but left the matching internal Mod ID out of <code>Mods=<\/code> (the activation list). The files arrive on disk but never load. Add the exact text Mod ID \u2014 found on the Workshop description, not the display title \u2014 to <code>Mods=<\/code> and restart. This is the single most common Workshop mistake.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Where do I find a mod&#8217;s Mod ID versus its Workshop ID?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The Workshop ID is the number at the end of the Steam Workshop page URL (after <code>?id=<\/code>) and goes in <code>WorkshopItems=<\/code>. The Mod ID is a text identifier the author publishes in the Workshop description (e.g. <code>CraftableAxes<\/code>) and goes in <code>Mods=<\/code>. One Workshop package can contain several Mod IDs, so always read the description \u2014 never assume the count matches.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Does the order of mods matter?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes, for the <code>Mods=<\/code> line. Project Zomboid loads mods left to right, and later entries can override earlier ones. Put libraries and frameworks first and patches\/compatibility mods last. The order of <code>WorkshopItems=<\/code> is only a download queue and has no gameplay effect.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Do I have to download mods manually before adding them?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No. The server automatically downloads everything listed in <code>WorkshopItems=<\/code> directly from Steam on startup. You just edit the two keys in <code>servertest.ini<\/code>, stop and start the server, and watch the console fetch each package. New mods are pulled at boot, so add or remove mods with a full restart rather than a live <code>reloadoptions<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Are mods the same on Build 42 as Build 41?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The two-key install mechanism is identical on both builds \u2014 same <code>WorkshopItems<\/code>\/<code>Mods<\/code> keys, same file location. Individual mods, however, must be authored for your build, and B42 (the unstable beta branch as of mid-2026) saves aren&#8217;t compatible with B41. Always confirm a mod lists support for your build on its Workshop page, and budget extra RAM in your <code>-Xmx<\/code> flag for B42.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How do I tell which mod is crashing my server?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Open the latest <code>*_DebugLog-server.txt<\/code> in <code>Zomboid\/Logs\/<\/code> \u2014 it holds Lua errors and crash stack traces, and a Mod ID near the error usually identifies the culprit. Confirm the boot sequence in <code>server-console.txt<\/code>. Once you know which mod is at fault, remove its entry from <code>Mods=<\/code> to disable it and restart.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Installing Steam Workshop mods on a Project Zomboid dedicated server trips up more first-time admins than anything else in servertest.ini. The reason is almost always the same: Project Zomboid uses a two-key system, and forgetting one of the two keys is the single most common mod failure. This guide walks through exactly how the system [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1515,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_gspb_post_css":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[41],"tags":[],"class_list":["post-1491","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-project-zomboid-server-docs"],"blocksy_meta":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.5 (Yoast SEO v26.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to install Mods to your Project Zomboid Server - XGamingServer<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to install Mods to your Project Zomboid Server\" \/>\n<meta property=\"og:description\" content=\"Installing Steam Workshop mods on a Project Zomboid dedicated server trips up more first-time admins than anything else in servertest.ini. The reason is almost always the same: Project Zomboid uses a two-key system, and forgetting one of the two keys is the single most common mod failure. This guide walks through exactly how the system [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/\" \/>\n<meta property=\"og:site_name\" content=\"XGamingServer\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/web.facebook.com\/xgamingserver69\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-24T12:12:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-15T10:49:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/xgamingserver.com\/blog\/wp-content\/uploads\/2022\/01\/pz-mod-manager-server.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"637\" \/>\n\t<meta property=\"og:image:height\" content=\"358\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Xray\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@rainerstudios\" \/>\n<meta name=\"twitter:site\" content=\"@xgamingserver\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Xray\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/\"},\"author\":{\"name\":\"Xray\",\"@id\":\"https:\/\/xgamingserver.com\/blog\/#\/schema\/person\/9fe94eb5b0ad6508acec5eef457da608\"},\"headline\":\"How to install Mods to your Project Zomboid Server\",\"datePublished\":\"2022-01-24T12:12:27+00:00\",\"dateModified\":\"2026-06-15T10:49:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/\"},\"wordCount\":2159,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/xgamingserver.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/xgamingserver.com\/blog\/wp-content\/uploads\/2022\/01\/pz-mod-manager-server.jpeg\",\"articleSection\":[\"Project Zomboid\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/\",\"url\":\"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/\",\"name\":\"How to install Mods to your Project Zomboid Server - XGamingServer\",\"isPartOf\":{\"@id\":\"https:\/\/xgamingserver.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/xgamingserver.com\/blog\/wp-content\/uploads\/2022\/01\/pz-mod-manager-server.jpeg\",\"datePublished\":\"2022-01-24T12:12:27+00:00\",\"dateModified\":\"2026-06-15T10:49:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/#primaryimage\",\"url\":\"https:\/\/xgamingserver.com\/blog\/wp-content\/uploads\/2022\/01\/pz-mod-manager-server.jpeg\",\"contentUrl\":\"https:\/\/xgamingserver.com\/blog\/wp-content\/uploads\/2022\/01\/pz-mod-manager-server.jpeg\",\"width\":637,\"height\":358,\"caption\":\"pz mod manager server\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/xgamingserver.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Project Zomboid\",\"item\":\"https:\/\/xgamingserver.com\/blog\/category\/project-zomboid-server-docs\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How to install Mods to your Project Zomboid Server\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/xgamingserver.com\/blog\/#website\",\"url\":\"https:\/\/xgamingserver.com\/blog\/\",\"name\":\"XGamingServer\",\"description\":\"Dedicated Game Server Hosting\",\"publisher\":{\"@id\":\"https:\/\/xgamingserver.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/xgamingserver.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/xgamingserver.com\/blog\/#organization\",\"name\":\"XGamingServer\",\"url\":\"https:\/\/xgamingserver.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/xgamingserver.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/xgamingserver.com\/blog\/wp-content\/uploads\/2020\/09\/logo.svg\",\"contentUrl\":\"https:\/\/xgamingserver.com\/blog\/wp-content\/uploads\/2020\/09\/logo.svg\",\"width\":\"1024\",\"height\":\"1024\",\"caption\":\"XGamingServer\"},\"image\":{\"@id\":\"https:\/\/xgamingserver.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/web.facebook.com\/xgamingserver69\/\",\"https:\/\/x.com\/xgamingserver\",\"https:\/\/www.instagram.com\/xgamingserver\/\",\"https:\/\/www.linkedin.com\/company\/xgamingserver\/\",\"https:\/\/www.pinterest.com\/xgamingserver\/\",\"https:\/\/www.youtube.com\/channel\/UCHnOtWxpzaL2r3jM9Jm40EQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/xgamingserver.com\/blog\/#\/schema\/person\/9fe94eb5b0ad6508acec5eef457da608\",\"name\":\"Xray\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/xgamingserver.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f5e048c648806821e7dfebe32ad45489165185fe75979165fb4044e2967386d8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f5e048c648806821e7dfebe32ad45489165185fe75979165fb4044e2967386d8?s=96&d=mm&r=g\",\"caption\":\"Xray\"},\"description\":\"A Mathematician who knows a thing or two about Design.\",\"sameAs\":[\"https:\/\/xgamingserver.com\/blog\",\"https:\/\/www.instagram.com\/rainerstudios\/\",\"https:\/\/x.com\/@rainerstudios\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to install Mods to your Project Zomboid Server - XGamingServer","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/","og_locale":"en_US","og_type":"article","og_title":"How to install Mods to your Project Zomboid Server","og_description":"Installing Steam Workshop mods on a Project Zomboid dedicated server trips up more first-time admins than anything else in servertest.ini. The reason is almost always the same: Project Zomboid uses a two-key system, and forgetting one of the two keys is the single most common mod failure. This guide walks through exactly how the system [&hellip;]","og_url":"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/","og_site_name":"XGamingServer","article_publisher":"https:\/\/web.facebook.com\/xgamingserver69\/","article_published_time":"2022-01-24T12:12:27+00:00","article_modified_time":"2026-06-15T10:49:05+00:00","og_image":[{"width":637,"height":358,"url":"https:\/\/xgamingserver.com\/blog\/wp-content\/uploads\/2022\/01\/pz-mod-manager-server.jpeg","type":"image\/jpeg"}],"author":"Xray","twitter_card":"summary_large_image","twitter_creator":"@rainerstudios","twitter_site":"@xgamingserver","twitter_misc":{"Written by":"Xray","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/#article","isPartOf":{"@id":"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/"},"author":{"name":"Xray","@id":"https:\/\/xgamingserver.com\/blog\/#\/schema\/person\/9fe94eb5b0ad6508acec5eef457da608"},"headline":"How to install Mods to your Project Zomboid Server","datePublished":"2022-01-24T12:12:27+00:00","dateModified":"2026-06-15T10:49:05+00:00","mainEntityOfPage":{"@id":"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/"},"wordCount":2159,"commentCount":2,"publisher":{"@id":"https:\/\/xgamingserver.com\/blog\/#organization"},"image":{"@id":"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/#primaryimage"},"thumbnailUrl":"https:\/\/xgamingserver.com\/blog\/wp-content\/uploads\/2022\/01\/pz-mod-manager-server.jpeg","articleSection":["Project Zomboid"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/","url":"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/","name":"How to install Mods to your Project Zomboid Server - XGamingServer","isPartOf":{"@id":"https:\/\/xgamingserver.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/#primaryimage"},"image":{"@id":"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/#primaryimage"},"thumbnailUrl":"https:\/\/xgamingserver.com\/blog\/wp-content\/uploads\/2022\/01\/pz-mod-manager-server.jpeg","datePublished":"2022-01-24T12:12:27+00:00","dateModified":"2026-06-15T10:49:05+00:00","breadcrumb":{"@id":"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/#primaryimage","url":"https:\/\/xgamingserver.com\/blog\/wp-content\/uploads\/2022\/01\/pz-mod-manager-server.jpeg","contentUrl":"https:\/\/xgamingserver.com\/blog\/wp-content\/uploads\/2022\/01\/pz-mod-manager-server.jpeg","width":637,"height":358,"caption":"pz mod manager server"},{"@type":"BreadcrumbList","@id":"https:\/\/xgamingserver.com\/blog\/how-to-install-steam-workshop-mods-to-your-project-zomboid-server\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/xgamingserver.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Project Zomboid","item":"https:\/\/xgamingserver.com\/blog\/category\/project-zomboid-server-docs\/"},{"@type":"ListItem","position":3,"name":"How to install Mods to your Project Zomboid Server"}]},{"@type":"WebSite","@id":"https:\/\/xgamingserver.com\/blog\/#website","url":"https:\/\/xgamingserver.com\/blog\/","name":"XGamingServer","description":"Dedicated Game Server Hosting","publisher":{"@id":"https:\/\/xgamingserver.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/xgamingserver.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/xgamingserver.com\/blog\/#organization","name":"XGamingServer","url":"https:\/\/xgamingserver.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/xgamingserver.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/xgamingserver.com\/blog\/wp-content\/uploads\/2020\/09\/logo.svg","contentUrl":"https:\/\/xgamingserver.com\/blog\/wp-content\/uploads\/2020\/09\/logo.svg","width":"1024","height":"1024","caption":"XGamingServer"},"image":{"@id":"https:\/\/xgamingserver.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/web.facebook.com\/xgamingserver69\/","https:\/\/x.com\/xgamingserver","https:\/\/www.instagram.com\/xgamingserver\/","https:\/\/www.linkedin.com\/company\/xgamingserver\/","https:\/\/www.pinterest.com\/xgamingserver\/","https:\/\/www.youtube.com\/channel\/UCHnOtWxpzaL2r3jM9Jm40EQ"]},{"@type":"Person","@id":"https:\/\/xgamingserver.com\/blog\/#\/schema\/person\/9fe94eb5b0ad6508acec5eef457da608","name":"Xray","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/xgamingserver.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f5e048c648806821e7dfebe32ad45489165185fe75979165fb4044e2967386d8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f5e048c648806821e7dfebe32ad45489165185fe75979165fb4044e2967386d8?s=96&d=mm&r=g","caption":"Xray"},"description":"A Mathematician who knows a thing or two about Design.","sameAs":["https:\/\/xgamingserver.com\/blog","https:\/\/www.instagram.com\/rainerstudios\/","https:\/\/x.com\/@rainerstudios"]}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/xgamingserver.com\/blog\/wp-content\/uploads\/2022\/01\/pz-mod-manager-server.jpeg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/xgamingserver.com\/blog\/wp-json\/wp\/v2\/posts\/1491","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xgamingserver.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xgamingserver.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xgamingserver.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xgamingserver.com\/blog\/wp-json\/wp\/v2\/comments?post=1491"}],"version-history":[{"count":23,"href":"https:\/\/xgamingserver.com\/blog\/wp-json\/wp\/v2\/posts\/1491\/revisions"}],"predecessor-version":[{"id":22255,"href":"https:\/\/xgamingserver.com\/blog\/wp-json\/wp\/v2\/posts\/1491\/revisions\/22255"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/xgamingserver.com\/blog\/wp-json\/wp\/v2\/media\/1515"}],"wp:attachment":[{"href":"https:\/\/xgamingserver.com\/blog\/wp-json\/wp\/v2\/media?parent=1491"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xgamingserver.com\/blog\/wp-json\/wp\/v2\/categories?post=1491"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xgamingserver.com\/blog\/wp-json\/wp\/v2\/tags?post=1491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}