Skip to content

About

Windows tool that inspects Project Zomboid mods without launching the game: detecting problems about load order, dependencies, overwritten files, Workshop status and console.txt errors.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

PZ Mod Inspector

Got hundreds of mods and the bottom right of the screen full of red errors? Welcome to Project Zomboid modding 😆

When your mod list gets bigger than your chances of surviving the first winter, figuring out what's conflicting with what can become a full-time job... PZ Mod Inspector helps you investigate the chaos without even launching the game! Easily check dependencies, load order, overwritten files, Workshop issues, and console.txt errors. Less trial and error, less restarting, more surviving... probably 😅

And if you'd rather outsource the detective work to an AI agent the command-line version can be used for this purpose very easily.

It reads the game's files read-only: it never changes your saves or your mod folders. Build 41 not supported, only Build 42+. Single player only.

PZ Mod Inspector: mod list with errors and warnings

What it does

  • Finds everything by itself: Steam, the game folder and version, and the Zomboid folder with your user data.
  • Sources: shows the mods of any single player save, or the ones loaded at startup.
  • Mod list: sortable and filterable by load order or by other columns.
  • Ignored mods: the mod folders the game skips (for example mods for older versions of the game), with a link to the Workshop item so you can unsubscribe.
  • Details for each mod: links to the Workshop, Steam and the change notes, author, versions, version folder in use, dependencies and their status, Workshop data (dates, size, subscribers, tags, visibility), description, overwritten files and the raw content of mod.info.
  • Problems detected, among others:
    • mods in the list but not installed;
    • mods removed, made private or banned on the Workshop;
    • updates published but not yet downloaded by Steam (Workshop date newer than the installed one);
    • missing or unloadable dependencies, circular dependencies;
    • incompatible mods active together, loadModAfter / loadModBefore not respected;
    • versionMin / versionMax outside the game version, mod.info files the game rejects, mods only for older versions of the game;
    • the same ID in several folders (and which one wins);
    • Java mods without ZombieBuddy;
    • Workshop "Required items" you are not subscribed to;
    • overwritten files: when a mod loaded later overwrites a file of another mod (e.g. a .lua) with a different copy, and which copy the game actually uses.
  • Diff: with an external compare tool, compares the copy the game uses with the one that overwrites it.

Download

Get the latest version from the Releases page. There are two options:

  • Installer (PZModInspector-Setup-<version>.exe, recommended). It installs for the current user, without admin rights. If the .NET runtimes are missing, it downloads them from Microsoft and installs them (this step asks for admin rights once). Run a newer installer to update.
  • Portable (PZModInspector.exe and PZModInspectorCLI.exe). Nothing to install: put the file in a folder of your choice and start it.

The files are not code-signed yet, so Windows SmartScreen may show "Windows protected your PC": choose More info → Run anyway.

Workshop data

It comes from the official Steam Web API, with a key you request from Steam (it's free) at https://steamcommunity.com/dev/apikey. The key is stored encrypted and gives you all the dependency information, just like inside the game.

Without a key: it works anyway, but without the dependencies (not recommended).

Settings and cache are in %USERPROFILE%\PZModInspector (C:\Users\<name>\PZModInspector).

Command line (PZModInspectorCLI)

There is also a command line version that runs the same analyses as the program and writes the result as text (or JSON with --json): use it to check your mods from a terminal or to let AI agents check them, very handy to debug mod problems quickly and automatically.

Command What it does
PZModInspectorCLI report summary and problems of the list (--info: notes too)
PZModInspectorCLI mods the mods of the list in load order
PZModInspectorCLI mod <id|Workshop ID|name> everything about a mod: data, dependencies, problems, overwritten files (--files)
PZModInspectorCLI file <name|path> which mods have a file and which copy the game uses (* and ? allowed, --all)
PZModInspectorCLI overwritten files overwritten by a mod loaded later, by pair of mods (--lua, --text, --binary, --mod <mod>, --files); alias: conflicts
PZModInspectorCLI log [file] errors and warnings of console.txt, grouped and linked to the mods (--errors, --mods)
PZModInspectorCLI sources / PZModInspectorCLI env available mod lists / paths, game version, ignored mods with their Workshop link
PZModInspectorCLI refresh asks Steam for the Workshop data right away (--force: also the data less than an hour old)
PZModInspectorCLI version the program version (also --version)

Options: --source default|latest|<Mode>/<Save> (without it: the list opened last in the program) and --json. Exit code 0 when everything went fine, 1 for a wrong command or a mod not found, 2 when files or Steam cannot be read, 3 when the Steam Web API key is not set.

With log, each error is linked to the mod that caused it, and you see which copy of the Lua file actually ran and which ones it overwrites. For require("…") failed errors it tells you whether the file exists but was not loaded yet at that point, the path is wrong, or the file is missing altogether.

Building and running it yourself

You need the .NET 10 SDK.

dotnet build
dotnet test
dotnet run --project src/PZModInspector.App

A single publish\PZModInspector.exe (it needs the .NET 10 Desktop Runtime installed) and publish\PZModInspectorCLI.exe for the command line:

dotnet publish src/PZModInspector.App -p:PublishProfile=win-x64
dotnet publish src/PZModInspector.Cli -p:PublishProfile=win-x64

Adding -p:SelfContained=true -p:IncludeNativeLibrariesForSelfExtract=true -p:EnableCompressionInSingleFile=true the exe also includes the runtime and runs on any PC (about 60 MB).

License

The code is released under the MIT license.

Project Zomboid, Spiffo and the related trademarks belong to The Indie Stone; Steam and Steam Workshop to Valve. This is an unofficial project, not affiliated with them, for personal use.

I'm a software engineer, but this application is made with AI, otherwise it would have taken too much time :-)

About

Windows tool that inspects Project Zomboid mods without launching the game: detecting problems about load order, dependencies, overwritten files, Workshop status and console.txt errors.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages