Troubleshooting & FAQ
Ninety percent of problems are answered by one file:
BepInEx\LogOutput.log. It's rewritten on every launch, it's plain text, and both
mods narrate themselves into it. Open it first, then find your symptom below.
How to read the log like a modder
A healthy launch with both mods installed contains, in order:
[Message: BepInEx] BepInEx 5.4.23.3 - SongsOfConquest (…) ← loader alive
…
[Info : BepInEx] 2 plugins to load ← both DLLs found
[Info :SoC Ultra Graphics Suite] SoC Ultra Graphics Suite v1.0.1 by StixsworldHD (StixsmasterHD4k) loaded. Press F10 …
[Info :…] [Patch] OK -> … ← one line per hook
[Message: BepInEx] Chainloader startup complete
The Graphics Suite prints one [Patch] OK line per hook. A
SKIPPED line means a game update renamed something — that single feature idles
while everything else keeps working. That's the graceful-degradation design, not a crash.
BepInEx layer
- No
LogOutput.logis created at all - BepInEx never started. In order of likelihood:
winhttp.dllis not directly besideSongsOfConquest.exe— the classic nested-folder extract. Part I, step 3 shows the correct layout with a screenshot.- You downloaded the x86 or BepInEx 6 build.
Re-download
BepInEx_win_x64_5.4.x.zip. - Windows “blocked” the extracted DLLs — right-click
winhttp.dll→ Properties → Unblock. - Antivirus quarantined it — restore and whitelist the game folder.
- Microsoft Store / Game Pass build — doorstop can't hook UWP packaging; the guide and mods target Steam and GOG.
- Log exists but says
0 plugins to load(and you installed the mods) - The DLLs aren't where BepInEx looks. Confirm the exact paths
BepInEx\plugins\StixsworldHD.SoCUltraGraphics.dllandBepInEx\plugins\StixsworldHD.SoCDifficultyDirector.dll— a common slip is a second nestedBepInEx\BepInEx\pluginsmade by dragging a whole folder. Also unblock the DLLs (Properties → Unblock) if they came from a browser download. - Game crashes on launch right after installing BepInEx
- Almost always a mixed install (old core files + new). Delete the
BepInExfolder plus the four doorstop files, then redo Part I cleanly with a fresh zip.
Menus & hotkeys
- F10 / F9 does nothing
- Check the log for each mod's “loaded. Press …” line. If it's there, the key likely collides with an overlay (GeForce/Radeon overlays, screen recorders love F9–F12) — both hotkeys are rebindable in each mod's Overlay & Menu tab / config section. If the line is missing, you're in the “0 plugins” case above.
- The menu opens but clicks hit the game underneath
- By design the game still sees clicks under the window — the menu's own footer tip says it: drag the window aside. Both menus are draggable and scalable.
- Both mods at once — any conflict?
- None, by design: distinct GUIDs, distinct hotkeys (F9 vs F10 — F10 is deliberately left free by the director), distinct window IDs, and completely disjoint patch targets (graphics touches URP/rendering; the director touches server gameplay). Run both.
Graphics Suite
- Terrain / grass turned black at night
- Set CascadeCount back to 0 (Shadows tab) — fixed instantly, no restart.
Why: changing cascade count flips a global shader variant
(
_MAIN_LIGHT_SHADOWS_CASCADE), and Songs of Conquest's custom curved-world terrain shaders may not include that variant in your build. Without it the terrain samples the shadow atlas with the wrong math and reads “fully shadowed” everywhere — black ground at night while props stay lit. v1.0.1 defaults cascade count, shadow distance, soft shadows and bias to GameDefault specifically so this can never happen out of the box; they're opt-ins for builds that support them. - A color/effect slider seems to do nothing
- Set ForcePostProcessing = ForceOn (Effects tab) — you likely have
post-processing disabled in the game's own options. For anything else, check the log's
[Patch]lines for aSKIPPED. - Decoration/flora density didn't change immediately
- Scatter is generated as terrain chunks build. Re-enter or reload the map to see the new density everywhere.
- Upgraded from v1.0.0 and nights look wrong
- Your old
.cfgstill carries the v1.0.0 shadow defaults. Delete it (it regenerates) or setCascadeCount=0,ShadowDistance=0,ShadowDepthBias=-1,ShadowNormalBias=-1,SoftShadows=GameDefault. - Does the Fog toggle break fog of war?
- No. That toggle is the atmospheric haze render pass only — exploration hiding is a different system and is never modified.
Difficulty Director
- Badge stuck on “dormant — waiting for a match”
- Normal outside a running match (main menu, lobby, map editor). In multiplayer as a guest it's also correct — the director only ever runs on the host.
- It's round 2 and nothing has happened
GraceRounds(default 3) is the opening honeymoon — zero actions before that round. Also checkEvaluateEveryNRoundsand that DryRun is off (DryRun logs decisions without acting). The Telemetry tab's action log shows everything it has done, with round stamps.- I want it to help/hurt one specific team only
- Telemetry tab → one-click Exclude/Include per team row (edits
ExcludedTeamNameslive), or use the per-team bias ledger in Multiplayer + Safety. - Is it cheating for the AI?
- Everything flows through the game's own validated commands and server-side difficulty hooks — the same machinery the lobby slider uses, just steered continuously and fairly in both directions. Turn on action toasts and DryRun and audit it yourself.
- What's
StixsworldHD.DirectorStatein my config folder? - The cross-save memory sidecar: a few hundred bytes per match, keyed to the match seed, newest 24 kept, deleted when a match ends. Your save files are never touched. Safe to delete anytime (the director just rebuilds from live state).
Remove one mod, both, or everything
| Goal | Delete |
|---|---|
| Graphics Suite only | BepInEx\plugins\StixsworldHD.SoCUltraGraphics.dll
(+ its .cfg for a clean slate) |
| Difficulty Director only | BepInEx\plugins\StixsworldHD.SoCDifficultyDirector.dll
(+ its .cfg and config\StixsworldHD.DirectorState\) |
| Everything incl. BepInEx | BepInEx\ folder, winhttp.dll,
doorstop_config.ini, .doorstop_version,
changelog.txt |
No other files were ever created or modified. Saves, options, and the game's own installation are untouched in every case — Steam's Verify integrity of game files isn't needed, but it's always safe to run for peace of mind.
Grab BepInEx\LogOutput.log from a fresh launch that reproduces the problem —
that one file lets the author see the loader version, both plugin versions, every hook result
and every director decision. Include your game version (bottom bar of the main menu; this guide
was verified on 1.10.4_a515e789d6_master_steam_release) and what you expected vs. what
happened.