S1 Mod Doctor is a log-based diagnostic plugin for Schedule I MelonLoader installs.
It does not add an in-game menu and does not upload anything. It reads the local MelonLoader install layout and the latest MelonLoader log, then overwrites:
UserData\S1ModDoctor\diagnostics.txt
UserData\S1ModDoctor\diagnostics.json
UserData\S1ModDoctor\diagnostics-summary.txt
Install S1ModDoctor.dll into the game's Plugins folder. It is a plugin rather than a gameplay mod so it can run earlier and diagnose mod loading issues.
- friendly Melon metadata such as mod/plugin name, author, version, and target game
- MelonLoader folder layout
- core Schedule I files such as
Schedule I.exe,GameAssembly.dll, andUnityPlayer.dll - wrong-game, wrong-runtime, or wrong-architecture logs
Mods,Plugins,UserLibs,UserData, and log directories- empty DLL files from failed copies or bad extracts
- archives left in load folders
- nested DLLs that may not load
- plugin DLLs in
Modsor mod DLLs inPlugins - mod/plugin entry DLLs placed in
UserLibs - duplicate assemblies
- duplicate Melon mod/plugin names
- assembly dependency status with plain-language names and fixes
- dependency version checks when the required and installed versions can be read safely
- package-level dependencies from nearby
manifest.jsonfiles - duplicate package manifests from mixed old/new installs
- missing dependencies, including likely missing S1API
- stale generated IL2CPP assemblies after game updates
- startup phase and likely stop phase from the latest log
- report quality, including stale logs and incomplete logs
- suspected source names from MelonLoader log prefixes
- ranked possible-source guesses using confidence tiers for DLL paths, log tags, last-loaded assemblies, and dependency references
- likely cause categories such as missing dependency, version mismatch, bad install layout, permission issue, and startup crash
- runtime-aware IL2CPP checks, so Mono/Alternate logs are not treated as broken just for not being IL2CPP
- a pasteable support summary with the main facts, top findings, likely causes, and next steps
- a short recommended fix order at the top of the text report
- repeated exception spam in the latest MelonLoader log
- missing file/dependency errors
- version mismatch symptoms such as
MissingMethodExceptionandTypeLoadException - Harmony patch failures
- IL2CPP assembly generation failures
- access denied errors
dotnet build --configuration ReleaseBy default the build copies S1ModDoctor.dll to:
C:\Program Files (x86)\Steam\steamapps\common\Schedule I\Plugins\
Set GamePath if your game is installed elsewhere, or set SkipCopyToPlugins=true to only build the DLL.
The repository includes a small console test runner for the diagnostic engine:
dotnet run --configuration Release --project tests\S1ModDoctor.Tests\S1ModDoctor.Tests.csprojThe tests create temporary fake Schedule I installs and check common cases such as missing S1API, satisfied manifest dependencies, repeated log spam, stale logs, source tracing, cause classification, DLL size accuracy, wrong-game logs, stale IL2CPP assemblies, duplicate manifests, misplaced DLLs, disabled MelonLoader, archive mistakes, incomplete startup logs, and access denied errors.