Reference Read in any order
Troubleshooting and removal
Reading the log, fixing the common failures, and backing it all out.
Almost every problem here is one of five things, and the log tells you which within about ten seconds of knowing what to look for. Start with the log, then find your symptom below.
Ten seconds
Read the log first
Quit the game, then open BepInEx\LogOutput.log in any text editor. It records
the most recent run in full. ErrorLog.log beside it holds errors alone, which
is usually the faster of the two to scan.
Both files are overwritten every launch
They only ever describe the last run. If you want to keep a record of a failure, copy the file somewhere else before launching again.
You are looking for a handful of landmarks. Where the sequence stops tells you which stage failed, and each one points at a different fix. The last two depend on which mods you installed.
| Landmark | If you see it | If you do not |
|---|---|---|
BepInEx 6.0.0-be.785 | Doorstop worked and the runtime started. | BepInEx never ran at all. Jump to nothing loads. |
Preloader started | The loader is initialising. | Something is wrong with the dotnet folder or core. Re-extract the archive. |
Chainloader started | Interop is in place and plugins are about to load. | The interop build failed. Jump to no interop folder. |
[UEZAI] v1.0.0 loaded by StixsworldHD (StixsmasterHD4k). | The zombie AI works. Any remaining problem with it is a tuning question. | BepInEx is fine and that mod is not loading. Jump to a mod does not load. |
All 3 patch groups engaged. The box is now Ungodly. | The mystery box works. This is its only confirmation — it writes no config file. | Same as above, for the box. |
Turn on the console if you have not already
Set Enabled = true under [Logging.Console] in
BepInEx\config\BepInEx.cfg and you get all of this live in a window while
the game loads, instead of after the fact. Full
instructions.
Find your symptom
The failures that actually happen
The game launches normally and nothing loads at all — no console, no logs No log at all
No LogOutput.log anywhere means BepInEx never started, which means Windows
never loaded the proxy DLL. In order of likelihood:
winhttp.dllis not besideNazi Zombies.exe. This is the cause most of the time. Open the game root and confirm it is right there in the same folder — not one level up, not in a subfolder.- The archive extracted into a nested folder. If the game root contains a folder named after the ZIP, open it, move its six items up one level, and delete the empty folder.
- You are looking at the wrong game folder. Use Steam → right-click the game → Manage → Browse local files to be certain.
- Antivirus removed it. Check the quarantine list. A proxy DLL beside a game executable is the exact shape some products flag on sight. Restore it and exclude the game folder.
The game will not start at all now, or crashes on the splash screen Crash
First, confirm it is actually the mod: rename winhttp.dll to
winhttp.dll.off and launch. If the game runs, BepInEx is involved; if it still
crashes, the problem is the game itself and BepInEx is a bystander.
If it is BepInEx, the usual causes are a partial extraction (a missing
dotnet folder is the classic one, and it is by far the largest part of the
archive), or a 32-bit BepInEx build in a 64-bit game. This package is
win-x64, which is correct for this game — but if you previously installed
a different build, remove it completely before extracting this one.
Clean re-extraction fixes this nearly every time. Delete BepInEx,
dotnet, winhttp.dll, doorstop_config.ini and
.doorstop_version, then extract the archive again in one go.
There is no BepInEx\interop folder, or it is empty Interop
The interop layer is the generated managed mirror of the game, and nothing works without it. An empty or missing folder means the first launch did not complete.
The fix is almost always simply to let it finish. Delete the
interop and cache folders if they exist, launch the game, and this
time wait — a black window or a frozen splash for anywhere up to a few minutes is
normal on this launch, and it is not a hang. Do not close it until you reach the main
menu.
If it genuinely fails rather than being interrupted, check that
BepInEx\unity-libs\2022.3.62.zip is present and around
3.5 MB. That file is the pre-seeded base library cache this package
exists to provide; without it, BepInEx tries to download one and can fail offline or behind
a firewall.
I closed the game during the first launch and now it behaves oddly Interrupted
A half-written interop folder produces strange, inconsistent symptoms — a mod that loads but does nothing, missing types in the log, or a crash partway through startup.
It is a clean fix. Close the game, delete both of these folders, then launch and let it run to the main menu without interruption:
BepInEx\interopBepInEx\cache
Both are regenerated automatically. Nothing you configured is lost — your settings
live in BepInEx\config, which you should leave alone.
BepInEx works but a mod never loads Plugins
If the log reaches Chainloader started but never mentions the mod in
question, BepInEx is healthy and simply is not finding that plugin. Check in this
order:
- Is the DLL directly in
BepInEx\plugins? A subfolder such asplugins\UngodlyMysteryBox\will not be found. - Is it the DLL and not the archive? A
.rarsitting inpluginsis ignored entirely. Extract the DLL out of it. - Is the filename intact? Windows sometimes appends
(1), or an archive tool produces.dll.dll. It must end in a single.dll. - Is the file the right size? 172 KB for the zombie AI, 23.5 KB for the mystery box. A file of a few hundred bytes is a failed download — check the SHA-256 on the downloads page.
- Did antivirus take it? Same story as the loader. Check quarantine.
The mod loads but pressing F7 does nothing Input
If the load line is in the log, the mod is running and this is an input problem rather than an install problem.
- Something else owns the key. Overlays bind function keys aggressively — Steam, Discord, GeForce Experience, OBS, Bandicam and MSI Afterburner are the usual suspects. Close them one at a time, or rebind.
- Rebind it. Open
BepInEx\config\UngodlyEmeraldZombieAI.cfg, findGuiToggleKeyin the[GUI]section, set it to a free key, and restart. It can also be rebound live from the panel once it is open. - Try it at the main menu. The screenshots on this site were taken there, and it rules out anything in-match capturing input.
- Check the config file exists at all. If
UngodlyEmeraldZombieAI.cfgis missing, the mod never actually initialised, and the real problem is above.
The panel opens but the zombies behave exactly as they always did Behaviour
Check these in the panel, in this order:
ModEnabledin[General]— if this is off, the mod loads but deliberately does nothing.ReplaceStockAI— off means the mod watches and fires its events without changing behaviour, which is a real mode intended for modders.EnableInOffline/EnableInOnline— one of these governs the session you are in.OnlyDriveAsHost— in online co-op only the host drives the brains. If you are a client, you are seeing the host’s AI through normal sync, which is correct and intended.- The header readout — if it says the mod has stood down after
repeated internal errors, restart the level or the game to re-arm it, and check
ErrorLog.logfor what tripped it.
Also worth knowing: DriveSpecials is off by default, so special and boss
zombies keep the stock AI on purpose. If you are watching a boss round, that is expected.
The mystery box still feels completely vanilla Mystery box
Because the box has no interface, the console is the only way to tell. Check the log for
All 3 patch groups engaged.
- If that line is absent, the DLL is not loading — work through the plugin checks.
- If one group reports
[SKIP], a game update renamed a target. That path runs vanilla while the others keep working. Check whether a newer version of the mod exists. - If you see it standing down for the session, the kill switch tripped
after repeated faults and the box is deliberately back to 100% vanilla. Restart the game
to re-arm it, and check
ErrorLog.logfor what caused it. - If the line is there and it still feels the same, buy a few more
times. The change is statistical, not visual — there is no new animation or sound.
Set logging to Debug in
BepInEx.cfgand you will see a per-roll verdict naming the tier and the pity state.
I got the same weapon twice from the box Mystery box
Possible by design, and rarer than vanilla. The mod defers any weapon you already hold, or received in your last three grants, behind every fresh option left in the current bag cycle — but a bag’s final card can still be one you hold.
Duplicates are kept reachable on purpose: the game’s own weapon-grant call on a weapon you already have is its ammo refill path, so removing them entirely would remove a real use of the box. Across the author’s 400,000-roll validation there were zero back-to-back identical grants. The full model.
Can I play with friends who do not have the mystery box mod? Mystery box
Yes, freely, in either direction. The rolled box index was never synchronised over the network by the game — only the buyer’s own client ever reads it — and this mod keeps that contract exactly. No RPCs are added and no Photon messages are altered.
Each player simply gets their own client’s odds: yours are Ungodly, theirs are vanilla. Host or client makes no difference. Why this works.
Framerate drops on big endless waves Performance
Expected on the heaviest waves, and directly tunable. Turn on ShowOverlay and
OverlayShowsPerf in [GUI] so you can see the budget pools rather
than guessing, then work through the cheaper horde
recipe.
The two settings with the largest effect are MaxBrainThinksPerFrame and
FarThinkRate. If the think budget is pegged at its ceiling every frame, raising
FarThinkRate — so fewer distant zombies ask for a think at all —
helps more than lowering the budget does.
In online co-op the shove and the slows do not affect other players Co-op
That is the documented engine boundary rather than a bug. Direct player-body effects can only be applied by the machine that owns that player, so online they apply to the host’s own character (and to any client also running the mod, for their own body).
Damage itself is completely unaffected — it goes through the game’s own networked damage path like any stock hit, so the horde remains a genuine threat to everyone. The full co-op model explains why.
The game updated and now something is wrong Updates
Game updates can move things under a mod. Two outcomes are normal:
- BepInEx rebuilds interop automatically. The first launch after an update is slow again, for the same reason the very first one was. Let it finish.
- The mod stands down. If a patch renames or removes something it
needs, it reports it and returns the zombies to the stock AI for the level rather than
degrading your run. Check
ErrorLog.log, and check whether a newer version of the mod has been released.
If the update was large, delete BepInEx\interop and
BepInEx\cache and let them regenerate cleanly.
What to include
Reporting a problem
If you need to report something, these five things turn a guess into a diagnosis and are quick to gather:
BepInEx\LogOutput.log— the whole file, copied out before you relaunch.BepInEx\ErrorLog.log— likewise.- The mod version — shown in the panel header:
v1.0.0. - The game build — shown in the corner of the main menu.
- Solo or online, and if online, whether you were hosting.
Turn on the wiring report first
LogWiringReport in [Debug] prints a startup audit listing every
setting and confirming that live code actually reads it — the mod checking its own
homework. Combined with VerboseLog, it makes a log far more useful to whoever
reads it.
Two steps
Updating a mod
Close the game and replace the DLL
Delete the old DLL from BepInEx\plugins and put the new one in its place.
A DLL cannot be overwritten while the game holds it open, which is the only reason step one
is to close the game. Updating one mod never affects the other.
Decide what to do with your settings
This step only applies to the zombie AI; the mystery box has no settings to carry over, so replacing its DLL is the entire update.
To keep them: leave UngodlyEmeraldZombieAI.cfg alone. A new version
adds any settings it introduced and preserves anything it no longer recognises at the end of
the file, so nothing is silently lost.
To start fresh: delete UngodlyEmeraldZombieAI.cfg. The next launch
writes a complete new one at defaults.
BepInEx itself does not need reinstalling to update the mod, and there is no need to touch
interop unless the game updated.
Fully reversible
Removing everything
Nothing here modified a game file, so removal is simply deleting what you added. Pick the depth you need.
Turn the zombie AI off without uninstalling
Set ModEnabled = false in [General], or open the panel and flip
it. The stock AI runs exactly as shipped, and you can flip it back mid-wave. The mystery
box has no such switch, because it has no settings — to disable it, remove its DLL.
Remove a mod, keep BepInEx
Delete its DLL. For the zombie AI you can optionally delete its config too, if you do not plan to come back; the mystery box has nothing else to remove, and nothing of it persists anywhere.
BepInEx\plugins\UngodlyEmeraldZombieAI.dll
BepInEx\config\UngodlyEmeraldZombieAI.cfg (optional)
BepInEx\plugins\UngodlyMysteryBox.dll
Removing one mod has no effect on the other.
Remove BepInEx as well, leaving a stock game
Delete these five items from the game root. Everything else in that folder shipped with the game and must stay.
BepInEx\ (the whole folder)
dotnet\ (the whole folder)
winhttp.dll
doorstop_config.ini
.doorstop_version
changelog.txt also came from the archive and is harmless either way. If you
would rather not delete files at all, renaming winhttp.dll to
winhttp.dll.off disables the entire loader instantly and is trivially
reversible.
Your saves are never involved
Nazi Zombies_Data and savedata are never written to by
either the loader or the mod. After removal the game is byte-identical to a stock install,
and Steam will not report anything as changed.
One more thing
Still stuck
The cleanest reset is a full reinstall of both pieces in order, because it eliminates every partial-extraction and interrupted-first-launch problem at once. Remove everything as above, then start again from stage one — and this time let that first launch reach the main menu on its own.