Conservation & Repair
Troubleshooting & Conservation
When something doesn’t load, the answer is almost always in the log. This page starts with how to read it, then walks every common symptom — split by the phase it happens in — straight to its fix.
🔎Always start here: read the log
Nearly every problem is diagnosable from one file:
<game>\Two Point Museum\BepInEx\LogOutput.log
Open it in any text editor after launching. Two quick reads tell you almost everything:
- Search for
Chainloader started→ BepInEx itself is loading. If this line is absent, the loader never ran (a Phase 1 problem). - Search for
Ungodly→ the mod is loading. Seeing “…is online. Enjoy the chaos!” means it's fully live.
Keep that line of reasoning in mind as you scan the symptoms below.
The game launches normally, but nothing about BepInEx happens — no console, no log, no folders
BepInEx isn't being injected at all. In order of likelihood:
- Files in the wrong place.
winhttp.dll,dotnet\andBepInEx\must sit in the same folder asTPM.exe— the game root. If you extracted into a subfolder (e.g. a folder named after the archive), move the contents up one level. Compare against Plate I. - You launched the wrong exe. Launch the game so that
TPM.exein the modded folder is what actually runs (via Steam, or the exe directly). A different copy/install won't have BepInEx. - Antivirus removed
winhttp.dll. A proxy DLL beside a game exe is a common false-positive. Check quarantine; restore it and add an exclusion for the game folder.
After fixing, you should get a BepInEx\ with logs in it on the next launch (and the
full set of subfolders — see Plate II).
I installed BepInEx but it's the wrong one — the mod never loads
This mod requires BepInEx 6 (IL2CPP, x64) — the bleeding-edge IL2CPP
line, target 6.0.0-be.784. It will not load on:
- BepInEx 5 — that's the Mono line; the plugin targets the Il2CppInterop runtime and won't bind.
- BepInEx 6 Mono / NetLauncher — wrong flavour; you need the Unity.IL2CPP x64 build.
- The wrong architecture — must be x64.
Use the build bundled with this guide — it's already configured for
Two Point Museum
(BepInEx 6 IL2CPP — configured for Two Point Museum) —
and you're guaranteed the right one with nothing to set up. Tell-tale: a correct IL2CPP install
produces an interop\ folder inside BepInEx\ after the first run —
BepInEx 5 never does.
BepInEx loads, but there's no interop\ folder — and the mod is ignored
The Il2Cpp interop assemblies are generated on the first launch, and the mod is
built against them — without interop\ it can't load. Fix:
- Launch the game once with BepInEx installed but before adding the mod, and let
it sit at the main menu for a minute. BepInEx writes
interop\andcache\during this run. - Watch
LogOutput.logfor interop/“generating” activity; the first run is slower than normal because of this. - Quit, confirm
BepInEx\interop\now exists (Plate II), then add the plugin.
If the first run crashes before generating interop, that's usually the wrong BepInEx flavour — see the question above.
The game crashes on launch only when BepInEx is present
Work through these:
- Incomplete extraction. The bundled
dotnet\runtime must be present and complete. Re-extract the loader archive and confirmdotnet\sits in the game root next towinhttp.dll. - Wrong flavour. A Mono BepInEx forced onto an IL2CPP game can crash on startup — use the IL2CPP build.
- Overlays / other injectors. Temporarily disable other tools that also inject (some overlays, recording hooks) to isolate the conflict.
- Verify game files. In Steam, verify integrity once to rule out a damaged base install, then re-add BepInEx (verifying won't remove your BepInEx files, but will replace any modified game files).
Read the tail of LogOutput.log and ErrorLog.log — the last lines usually
name the failing component.
BepInEx works (I see its console/log) but the mod isn't picked up — “0 plugins loaded”
BepInEx is fine; it just isn't finding the plugin. Check:
- Wrong folder.
StixsworldHD.UngodlyAI.TPM.dllmust be insideBepInEx\plugins\(or a subfolder of it) — not loose in the game root,BepInEx\,core\orconfig\. Compare against Plate III. - Renamed or shortcut. It must be the real
.dll, not a shortcut and not renamed to.dll.txtby a browser. Confirm the type reads “Application extension”. - Blocked file. Windows can mark downloads as blocked — right-click the DLL → Properties → tick Unblock if shown → Apply.
- Interop missing. If
BepInEx\interop\doesn't exist, the plugin can't bind — do the first-run step in Desk A above.
When it's right, the log shows Loading [StixsworldHD Ungodly AI… 1.0.3] followed by the
“Enjoy the chaos!” line, and the chainloader reports 1 plugin loaded.
The log shows the plugin loaded, but no .cfg appears in config\
The config is written on the first run with the plugin present, so:
- Make sure you actually launched the game after copying the DLL in — not before.
- Look in the right place:
BepInEx\config\, notplugins\. The file iscom.stixsworldhd.tpm.ungodlyai.cfg(see Plate IV). - If
config\isn't writable (game installed somewhere locked-down), run once so the folder can be created, or move the game to a normal library location.
You can also drop the bundled .cfg into config\ yourself to start from the
documented defaults — the plugin will use it as-is.
Everything loads, the log says it's online, but I see no difference in-game
It's loaded — it's a tuning question:
- Master switch. Confirm
ModEnabled = true(or MOD ON in the F6 window). With it off, the overhaul is intentionally dormant. - Everything at 1.0. Defaults are deliberately close to vanilla so nothing breaks on day one. Open the window and change a few multipliers — the effect is immediate.
- Directors are off by default. The Difficulty Director ships on
Off, and the helpers act only when there's pressure/crime/underpaid staff. Enable them in their sections to see them work. See Configuration.
F6 does nothing — the control panel won't open
Check the log for [GUI] OnGUI is live:
- If that line is present, the GUI is ticking and your key is just bound to
something the game also uses. Rebind it — set
ConfigMenuHotkey = F7(or any free key) in the.cfg, or use the panel's Rebind button. Full steps on Configuration. - If that line is absent, the plugin didn't actually load — this is a loading problem, not a hotkey one. Go back to Desk B above.
The panel text looks overlapped or cramped
That was fixed in the 1.0.2/1.0.3 readability passes (descriptions are now
measured with the font's real metrics, and the title bar is taller with title and subtitle on
separate lines). Make sure you're on v1.0.3 — the bundled
download is current. Replace an older DLL
and relaunch.
Will this corrupt or break my save?
No. The mod is save-safe: it never serialises anything into your save and only
changes live, in-memory values. Removing the DLL (and optionally the .cfg) returns the
game to stock behaviour on the next launch, with your save intact. Because every lever is resolved by
name at runtime and guarded, a future game patch that renames or removes one system simply disables
that lever while the rest keep working.
Does it work with DLC and other mods?
It targets Two Point Museum base game and all DLC — the hooked systems are core managers present across content. It runs alongside other BepInEx 6 plugins unless one fights for the same exact values (e.g. another mod that also rewrites guest need decay or staff salaries). If two mods clearly contest one number, expect the last writer each frame to win — disable one of them for that value.
How do I cleanly uninstall it?
Delete StixsworldHD.UngodlyAI.TPM.dll from BepInEx\plugins\ (and optionally
com.stixsworldhd.tpm.ungodlyai.cfg from config\). To remove BepInEx entirely as
well, delete winhttp.dll, doorstop_config.ini, .doorstop_version,
changelog.txt, the dotnet\ folder and the BepInEx\ folder from
the game root. Your save is unaffected either way.
🧰Still stuck? Gather these before asking
If none of the above fixes it, collect this and it'll be diagnosable at a glance: your full
BepInEx\LogOutput.log; a screenshot of your game root (like Plate I)
and your BepInEx\plugins\ folder; the exact BepInEx build you used; and the mod version.
Almost every report comes down to one of: files in the wrong folder, the wrong BepInEx flavour, or a
skipped first-run interop generation.
Re-check against the screenshots
The Directory Map shows exactly what a correct install looks like at each checkpoint.
Start the install over
Sometimes the cleanest fix is a fresh pass through Phase 1.