限时抢购 50% 全场服务器优惠 最后一天!
距结束还剩: 00D 00H 00M 00S
background image
Game Servers 380 7 Days to Die 4 Abiotic Factor 2 Aloft 2 alt:V 2 Americas Army Proving Grounds 2 Among Us 2 Archean 2 ARK Survival Ascended 6 ARK Survival Evolved 3 Arma 3 3 Arma Reforger 2 Aska 2 AssaultCube 2 Assetto Corsa 3 Astro Colony 2 Astroneer 2 Automobilista 2 2 Avorion 2 Banana Shooter 2 Barotrauma 3 BATTALION Legacy 2 BeamNG.drive (BeamMP) 2 Black Mesa 2 Brickadia 2 Call of Duty 2 Citadel: Forged with Fire 2 ClassiCube 2 Clone Hero 2 Colony Survival 2 Conan Exiles 4 Contagion 2 Core Keeper 2 Counter-Strike 2 3 Craftopia 2 CryoFall 2 CS2D 2 Cube 2: Sauerbraten 2 Cubic Odyssey 2 DayZ 4 DDNet 2 DDRaceNetwork 2 Dead Matter 2 Dont Starve Together 4 Eco 2 Empyrion Galactic Survival 2 Enshrouded 3 Escape from Tarkov 2 Euro Truck Simulator 2 2 Factorio 2 Farming Simulator 25 2 Fistful of Frags 2 FiveM 3 FortressCraft Evolved 2 Foundry 2 Foundry VTT 2 Frozen Flame 2 FTL Tachyon 2 Garrys Mod 3 Ground Branch 2 Half-Life 2 Deathmatch 2 Hogwarp 2 Holdfast: Nations at War 2 HumanitZ 2 Hurtworld 2 Hytale 1 Icarus 2 Insurgency Sandstorm 2 IOSoccer 2 Just Cause 3 Multiplayer 2 Kerbal Space Program 2 Killing Floor 2 3 LeagueSandbox 2 Left 4 Dead 2 Left 4 Dead 2 3 Longvinter 2 Los Angeles Crimes 2 Medal of Honor 2 Midnight Ghost Hunt 2 Mindustry 2 Minecraft 4 Minetest 2 Modiverse 2 Mordhau 3 Mount & Blade II: Bannerlord 2 Myth of Empires 2 Nazi Zombies Portable 2 Necesse 2 NeosVR 2 Neverwinter Nights EE 2 Night of the Dead 2 Nightingale 2 No Love Lost 2 No More Room in Hell 2 No One Survived 2 Nova-Life Amboise 2 Nuclear Option 2 Onset 2 Open Fortress 2 OpenArena 2 OpenRA 2 OpenRCT2 2 OpenTTD 2 Operation Harsh Doorstop 2 Palworld 3 Path of Titans 2 Pavlov VR 3 PixARK 2 Plains of Pain 2 Portal Knights 2 Post Scriptum 2 Project Zomboid 8 Puck 2 Quake Live 2 R5Reloaded 2 RedM 2 Renown 2 Resonite 2 Return to Moria 2 Rimworld Together 2 Rising World 2 Risk of Rain 2 1 Rust 4 Satisfactory 1 SCP Secret Laboratory 3 SCUM 2 Smalland 2 Solace Crafting 2 Soldat 2 Soldat 2 2 Sonic Robo Blast 2 2 Sons of the Forest 2 Soulmask 2 SourceCoop 2 Space Engineers 3 Space Station 14 2 Squad 3 Starbound 3 StarMade 2 Stationeers 2 Stormworks 2 Subnautica Nitrox 2 Sunkenland 2 SuperTuxKart 2 Sven Co-op 2 Swords 'n Magic and Stuff 2 Team Fortress 2 3 Teeworlds 2 Terraria 3 TerraTech Worlds 2 TF2 Classified 2 The Forest 3 The Front 2 The Isle 2 Tower Unite 2 Trackmania 2 Unturned 4 Urban Terror 2 V Rising 3 Valheim 3 VEIN 2 Veloren 2 Vintage Story 3 Voyagers of Nera 2 Wolfenstein: Enemy Territory 2 Wreckfest 2 Wurm Unlimited 2 Xonotic 2 Zandronum 2 Getting Started 2 Network & Connectivity 1 Server Management 2
分类

Project Zomboid 模组故障排除


本指南涵盖了在 Legion Hosting 上托管的 Project Zomboid 服务器的高级模组故障排除。如果您尚未安装模组,请先参阅基础模组安装指南。本文解决了 Legion Hosting 支持工单中最常见的模组相关问题,包括 WorldDictionary 损坏、模组格式错误、加载顺序冲突以及服务器与客户端之间的版本不匹配。

模组是排名第一的支持问题。 大约 14% 的 Legion Hosting 支持工单与模组问题相关。其中大多数是由不正确的模组格式、WorldDictionary 损坏或不兼容的模组组合引起的。本指南涵盖了每种问题的修复方法。

开始之前

  • 登录 GPanel 并选择您的 Project Zomboid 服务器。
  • 在进行任何配置或文件更改之前,请停止服务器
  • 在尝试任何修复之前,通过 SFTP 或 GPanel 备份您的世界存档文件夹(/.cache/saves/multiplayer/)。如果您不熟悉文件传输,请参阅 SFTP 指南
  • 准备好您服务器的 .ini 文件路径:/.cache/server/<servername>.ini(例如 servertest.ini)。

1. 模组格式错误(B42 与 B41)

模组无法加载的最常见原因是服务器 .ini 文件中 Mods= 行的格式不正确。Build 42 和 Build 41 使用不同的语法,混用会导致模组静默加载失败。

B42 格式(当前默认)

Build 42 要求在 Mods= 行中每个 Mod ID 前添加反斜杠前缀

Mods=\ModID1;\ModID2;\ModID3;

DLMP 格式使用反斜杠分隔符将 Workshop ID 和 Mod ID 组合在一起:

Mods=2392987841\ModID1;1550458773\ModID2;2786383654\ModID3;

WorkshopItems= 行在两个版本上使用相同的分号分隔格式:

WorkshopItems=2392987841;1550458773;2786383654

B41 格式(旧版)

Build 41 使用纯分号分隔的 Mod ID,不带反斜杠

Mods=ModID1;ModID2;ModID3
不要混用格式。 在 B42 服务器上使用 B41 格式(或反之)是导致"模组未加载"工单的最常见原因。如果您最近从 B41 升级到 B42,必须重新格式化整个 Mods= 行以包含反斜杠前缀。

修复方法

  1. 在 GPanel 文件管理器中打开 /.cache/server/<servername>.ini
  2. 找到 Mods= 行并对照上述示例检查格式。
  3. 如果格式与您的版本不匹配,请更正它。使用 Legion Hosting Mod Organizer 自动生成正确格式的行。
  4. 保存文件并启动服务器。

2. WorldDictionary 损坏

WorldDictionary 是一个文件(WorldDictionary.bin),用于将物品名称映射到内部数字 ID。当添加或删除模组时,字典可能会损坏,导致服务器启动时崩溃并出现 WorldDictionaryException

症状

  • 控制台或 debug.log 显示 WorldDictionaryExceptionWorldDictionary 错误。
  • 服务器在启动期间立即崩溃,特别是在世界加载阶段。
  • 崩溃在添加、删除或更新模组后开始发生。

了解风险

删除 WorldDictionary.bin 是最后手段。 WorldDictionary 将您世界中的每个物品和载具映射到内部 ID。删除它会强制服务器重新生成映射,这可能导致现有物品损坏、载具消失或背包中出现错误物品。仅在服务器完全无法启动且您已备份存档文件夹的情况下才执行此操作。

恢复步骤

  1. 在 GPanel 中停止服务器。
  2. 通过 SFTP 备份整个存档文件夹:将完整的 /.cache/saves/multiplayer/<YourWorldName>/ 目录下载到本地计算机。
  3. 首先,尝试简单地撤销导致错误的模组更改。如果您刚添加了一个模组,请从 .ini 文件的 Mods=WorkshopItems= 中删除它。如果您刚删除了一个模组,请将其添加回去。启动服务器查看崩溃是否已解决。
  4. 如果撤销模组更改无效,请通过 SFTP 连接并导航到 /.cache/saves/multiplayer/<YourWorldName>/
  5. 删除 WorldDictionary.bin
  6. 启动服务器。Project Zomboid 将在启动时重新生成字典。
  7. 加入服务器并检查世界中是否有损坏的物品、消失的载具或损坏的背包。如果世界严重受损,请从步骤 2 中创建的备份进行恢复。
预防措施: 在添加或删除模组之前,始终备份存档文件夹。每次少量添加模组(3-5 个),并在每批之间进行测试。这样,如果发生 WorldDictionary 损坏,您可以确切知道是哪个模组造成的,并能快速恢复。

3. Authentic Z 模组冲突

Authentic Z 是最受欢迎的 Project Zomboid 模组合集之一,但它是支持工单的常见来源,因为它包含多个相互冲突的子模组

规则

只安装一个 Authentic Z 子模组。 同时运行多个 Authentic Z 子模组会导致服务器崩溃、战利品表损坏和物品复制漏洞。多人服务器推荐使用的子模组是 Authentic Z - Current

常见错误

  • 同时添加 Authentic Z - CurrentAuthentic Z - Litemode
  • 将专为单人游戏设计的 Authentic Z 子模组与多人版本一起添加。
  • 没有意识到不同的 Authentic Z 子模组共享相同的 Workshop ID 但有不同的 Mod ID,因此 Workshop 下载成功但服务器加载了冲突的模组文件。

修复方法

  1. 在 GPanel 文件管理器中打开 /.cache/server/<servername>.ini
  2. Mods= 行中搜索所有包含 AuthenticAuthenticZ 的条目。
  3. 只保留一个 Authentic Z 子模组(推荐:Authentic Z - Current)。从 Mods=WorkshopItems= 行中删除所有其他 Authentic Z 条目。
  4. 保存文件并重启服务器。

4. Linux 大小写敏感问题

Legion Hosting 服务器运行在 Linux 上,文件和文件夹名称区分大小写。名为 MyMod.luamymod.lua 的文件被视为两个完全不同的文件。当模组作者在 Windows(不区分大小写)上开发,而其模组包含不匹配的文件引用时,就会出现问题。

症状

  • 模组在您的 Windows PC 上单人游戏中运行完美,但在服务器上失败。
  • 控制台或 debug.log 显示 FileNotFoundExceptioncan't find file 错误,引用模组内的 Lua 脚本或纹理。
  • 错误指向模组文件夹中确实存在的文件,但大小写不同(例如,代码引用 Items.txt 但实际文件名为 items.txt)。

诊断方法

  1. 检查控制台或 /.cache/Logs/ 日志文件中错误提到的确切文件路径。
  2. 通过 SFTP 连接并导航到模组文件夹 /steamapps/workshop/content/108600/<WorkshopID>/
  3. 将磁盘上的文件名与错误消息中引用的文件名进行比较。查找大小写差异。

修复方法

  • 如果您可以重命名文件:通过 SFTP 连接并重命名文件以匹配模组代码期望的大小写。请注意,如果模组在 Steam Workshop 上更新,此修复将被覆盖。
  • 如果问题出在模组本身:在 Steam Workshop 页面上向模组作者报告此错误。说明文件引用存在大小写不匹配,并且在 Linux 服务器上会失败。许多模组作者不了解 Linux 的大小写敏感性。
  • 作为临时解决方案:查看模组的 Workshop 页面评论——其他 Linux 服务器运营商可能已发布修复方案或该模组的兼容分支。
这不是服务器配置问题。 大小写敏感问题是模组本身的错误。您无法通过更改服务器设置来解决引用了错误大小写文件的模组问题。修复必须来自模组作者或手动重命名文件。

5. 模组加载顺序问题

Project Zomboid 按照 Mods= 行中出现的顺序加载模组。某些模组依赖于其他模组先被加载。如果依赖项在需要它的模组之后加载,则依赖模组可能会静默失败或导致错误。

症状

  • 模组功能部分正常——模组中的某些物品或系统存在,但其他的缺失。
  • 控制台显示引用模组 Lua 脚本的 NullPointerExceptionattempt to index a nil value 错误。
  • 仅当安装特定模组组合时才出现错误,但每个模组单独运行时都正常。

修复方法

  1. 查看每个模组的 Steam Workshop 页面中的"Required Mods""Load Order"部分。许多模组作者会指定哪些模组必须在其模组之前加载。
  2. 打开 /.cache/server/<servername>.ini 并找到 Mods= 行。
  3. 重新排列条目,使依赖模组出现在需要它们的模组之前。例如,如果 Mod B 依赖 Mod A,该行应为 Mods=\ModA;\ModB;(B42 格式)。
  4. 框架和库模组(如 ModFrameworkTsarLibShark's Mod Utils)应始终列在 Mods= 行的最前面
  5. 保存文件并重启服务器。
提示: Legion Hosting Mod Organizer 可以帮助您管理和整理模组列表。使用它来生成格式正确的配置行。

6. 添加模组后服务器崩溃

如果您的服务器之前运行正常,在添加一个或多个模组后崩溃,那么新模组很可能是原因。本节将引导您隔离问题模组。

逐步隔离

  1. 在 GPanel 中停止服务器。
  2. 在文件管理器中打开 /.cache/server/<servername>.ini
  3. 记下您刚添加的所有模组。从 Mods=WorkshopItems= 行中删除所有这些模组
  4. 启动服务器。如果成功启动,问题出在您删除的某个模组中。
  5. 逐个添加模组,每次添加后重启服务器。当崩溃再次出现时,您最后添加的模组就是原因。
  6. 确定后,检查该模组的 Workshop 页面:
    • 关于 B42 兼容性的说明——许多 B41 模组尚未针对 B42 更新。
    • 与您正在运行的其他模组的已知冲突。
    • 您可能未安装的必需依赖模组。

查看崩溃日志

在执行隔离过程之前,检查崩溃日志——它通常直接指向问题模组:

  1. 在 GPanel 中,打开Console标签页并滚动到输出末尾。
  2. 查找 STACK TRACEExceptionERROR 行。
  3. 堆栈跟踪正上方的行通常引用模组文件名或 Mod ID——这会告诉您哪个模组触发了崩溃。
  4. 如需更多详细信息,通过 SFTP 打开 /.cache/Logs/ 中的完整日志文件,查看最新的 DebugLog-server.txtdebug.log 文件。
少量分批添加模组。 每次添加 3-5 个模组并在每批之间测试,比一次添加 20 多个模组然后试图找出问题所在要容易得多。

7. 模组版本不匹配(服务器与客户端)

Project Zomboid 要求服务器和所有连接的客户端拥有每个模组的相同版本。如果模组在 Steam Workshop 上更新,服务器下载了新版本但玩家仍然缓存了旧版本(或反之),将会出现连接失败或崩溃。

症状

  • 玩家尝试连接时收到"Mod mismatch""Version mismatch"错误。
  • 某些玩家可以连接但其他人不能——无法连接的玩家本地缓存了不同的模组版本。
  • 服务器之前运行正常,然后一个模组在 Steam Workshop 上更新后,突然有些玩家无法加入。
  • 玩家看到最近更新的模组中缺少纹理、物品或界面元素损坏。

服务器管理员的修复方法

  1. 在 GPanel 中停止服务器。
  2. 重新启动服务器。启动时,服务器会重新下载所有 Workshop 模组的最新版本。这确保服务器运行的是最新版本。
  3. 如果服务器仍然缓存了旧版本,通过 SFTP 连接并删除特定模组的 Workshop 缓存文件夹 /steamapps/workshop/content/108600/<WorkshopID>/。重启服务器以强制重新下载。

玩家的修复方法

因模组版本不匹配而无法连接的玩家应:

  1. 打开 Steam 并导航到 Library → Project Zomboid
  2. 右键点击 Project Zomboid,选择 Properties → Local Files → Verify Integrity of Game Files
  3. 同时导航到本地计算机上 Project Zomboid 的 Steam Workshop 文件夹,删除缓存的模组文件以强制重新下载。
  4. 启动游戏并重新连接到服务器。
尽可能锁定模组版本。 如果某个关键模组频繁更新并导致反复的版本不匹配问题,考虑手动下载特定版本的模组并将其上传到服务器的 /.cache/mods/,而不是使用 Workshop 自动更新。从 WorkshopItems= 行中删除相应的 Workshop ID 以防止自动更新。有关非 Workshop 模组安装说明,请参阅模组安装指南

8. 清除 Steam Workshop 缓存

如果多个模组问题持续存在且您怀疑 Workshop 下载缓存已损坏,可以强制完全重新下载所有 Workshop 模组。

这将删除所有缓存的 Workshop 文件。 服务器将在下次启动时重新下载所有已订阅的 Workshop 项目。对于大型模组列表,这可能会增加几分钟的启动时间。
  1. 在 GPanel 中停止服务器。
  2. 通过 SFTP 连接并导航到 /steamapps/workshop/
  3. 删除整个 workshop/ 文件夹(或其内容)。
  4. 启动服务器。Steam 将从头开始重新下载所有 Workshop 项目。
  5. 观察 GPanel 控制台确认所有模组在服务器开始世界加载之前下载完成。

快速诊断参考

您看到的现象 最可能的原因 章节
模组未加载,日志中无错误 模组格式错误(在 B42 服务器上使用了 B41 格式或反之) 1. 模组格式错误
控制台中出现 WorldDictionaryException 添加/删除模组导致的 WorldDictionary 损坏 2. WorldDictionary 损坏
安装多个 Authentic Z 子模组后服务器崩溃 冲突的 Authentic Z 子模组同时加载 3. Authentic Z 冲突
存在的模组文件出现 FileNotFoundException Linux 大小写敏感不匹配 4. 大小写敏感问题
模组出现 NullPointerExceptionnil value 错误 模组加载顺序不正确或缺少依赖 5. 加载顺序问题
添加新模组后出现 STACK TRACE 不兼容或冲突的模组 6. 添加模组后崩溃
连接时出现 "Mod mismatch" 或 "Version mismatch" 服务器和客户端的模组版本不同 7. 版本不匹配
多个模组问题,其他方法均无效 Workshop 缓存损坏 8. Workshop 缓存

仍然有模组问题?

如果您的模组问题未在上述内容中涵盖或修复未能解决,请提交支持工单并附上以下信息,以帮助支持团队快速诊断问题:

  • 您服务器的版本号(B41 或 B42),在启动时显示在控制台中
  • .ini 文件中完整的 Mods=WorkshopItems=
  • 崩溃时 GPanel 控制台输出的最后 50 行
  • /.cache/Logs/ 中最新日志文件的内容
  • 问题开始前添加、删除或更新了哪些模组
  • 问题是在启动时发生还是仅在玩家连接时发生

提交支持工单并附上您的服务器 ID 和上述详细信息。


这篇文章对您有帮助吗?

Ready to Get Started?

The servers are booted, select your plan and become our latest satisfied client.