When it breaks
Troubleshooting & uninstall
Symptom-first fixes for everything from "nothing happens at all" to a dead panel hotkey, plus game updates, Steam Deck notes, and the clean-uninstall checklists.
Symptom first, fix second. Almost every problem below is diagnosed from one file —
BepInEx\LogOutput.log in the game folder — so keep Notepad handy.
The game boots vanilla — no BepInEx activity at all
No new folders appear, no LogOutput.log, no log banner. The loader never ran. In order of
likelihood:
- The one-folder-too-deep trap. Check for
Sea of Stars\SeaofStars-BepInEx-Unity_IL2CPP-…\— if the archive's top folder made it into the game directory whole, move its six items up one level. The litmus test never lies:winhttp.dllmust sit directly next toSeaOfStars.exe. Part 1 walks it through. - Antivirus ate the proxy. If
winhttp.dllis missing or 0 KB, restore it from quarantine, add the game folder as an exclusion, and re-verify against the published checksum. - Wrong game folder. Two Steam libraries, two installs — it happens. Use Steam's Browse local files to be certain you modded the copy Steam actually launches.
- Doorstop disabled. Open
doorstop_config.iniand confirmenabled = trueunder[General](it ships that way).
First launch seems stuck
Interop generation legitimately takes one to five minutes of silence
(Part 2). If it's genuinely wedged past the ten-minute mark with zero
CPU activity and a frozen LogOutput.log: close the game, delete
BepInEx\cache and BepInEx\interop, and launch again for a clean regeneration.
If it fails the same way twice, read the tail of LogOutput.log — a Cpp2IL error there is
the lead worth reporting.
BepInEx runs, but F10 / F9 does nothing
Open BepInEx\LogOutput.log and search for the plugin's name —
UngodlyGFX for the F10 panel, UngodlyAutoTiming for F9:
- No banner for that plugin. Its DLL isn't being loaded. Confirm the file is inside
BepInEx\plugins(Part 3 / Part 4), and that Part 1 used the IL2CPP x64 package from this site — a Mono/BepInEx 5 install will boot the game while silently skipping IL2CPP plugins. With both plugins installed, the log's chainloader line should say2 plugins to load. - Banner present, panel absent. Another app probably owns that function key (some
overlays and recorders bind them). Rebind it: close the game and set
PanelToggleKeyin the UngodlyGFX config orPanelKeyin the UngodlyAutoTiming config to any Unity KeyCode —F8,Backslash,Keypad5…
The F9 panel opens, but auto-timing doesn't seem to happen
- Check the one line that matters. Once a save with a party is loaded,
BepInEx\LogOutput.logshould containRelic live — registered on N character handler(s).— the proof the relic genuinely registered on the game's own modifier handlers. The same count shows on the panel's Stats tab. No line and a count of 0? Include the log in a report. - Check the obvious switches. Master Enabled on the Relic tab, the relevant relic toggle (Attacks / Blocks), a chance above 0, the move category not filtered out, and the character actually served on the Party tab.
- Auto attacks/blocks leave no counter. By design: once the modifiers are registered, the game's own relic code performs those presses — watch the timed-hit flashes and damage numbers, or the Stats tab's skill-QTE and rescue counters.
- Chance % feels off? The vanilla accessibility relic feeds the same modifier list — either passing its roll auto-times the hit. Leave the built-in relic off for exact percentages.
- One harmless boot warning is not from these mods: a single
[Warning:Il2CppInterop] Class::Init signatures have been exhausted, using a substitute!line appears before BepInEx loads any plugin — it's Il2CppInterop's own bootstrap notice, visible above the "plugins to load" line, and outside any plugin's control. - Reporting an auto-timing issue? Flip Verbose Log on (Relic tab) first — the plugin then narrates registrations, stretched windows and rescued results into the log, which makes reports instantly actionable.
The F10 panel opens, but something misbehaves
- A setting seems to do nothing. Check the Info tab's Live Status: boot grace must read "complete — modules armed" (the plugin deliberately stays hands-off for the first seconds after boot), and the relevant module switch must be on. Remember the universal rule — anything at GameDefault is untouched by design.
- Changes don't survive a restart. Press Save Config Now and watch the
config file's timestamp change. If it doesn't, the file is likely read-only or blocked by folder
permissions — clear the read-only flag on
BepInEx\config. - Foliage / vegetation turns flat blue. That's raw hardware MSAA fighting the game's custom lighting passes — its render pipeline ships at 1× sampling and was never authored for more. v2.0.1 fixed the delivery with MSAA Safe Mode (Display tab, on by default), which bridges your MSAA level to matching-quality SMAA instead. Seeing blue anyway? You (or an old config) turned Safe Mode off — turn it back on, or if you're still on v2.0.0, update the plugin.
- Performance dropped after going ungodly. The expensive levers are 8192 px shadow maps (VRAM), Render Scale 2.0 and MSAA X8 (GPU). Step shadows down to 4096 and MSAA to X4 first — that's the Balanced Beauty territory.
- Frame cap feels wrong after switching back to GameDefault. Expected quirk: the engine's frame-rate getter was stripped, so the game's own limiter returns only after you re-apply the frame-rate option in the game's settings menu once. Background on the Perf tab.
- Anything weird at all — the one-minute bisect. Info tab → Modules: toggle the four master switches off one at a time. Each one releases its overrides back to the game on the spot, so the moment the weirdness stops, you've named the culprit — worth including if you report an issue.
Where did the AO / GI / Bloom / Color / Effects / Water tabs go?
If you used UngodlyGFX v1.x: those post-processing tabs were retired in v2.0.0. Field testing with
v1.0.5's crash-canary system proved that creating any post-processing volume component from a
plugin — including bone-stock URP ones — hangs this specific heavily-stripped IL2CPP build. Rather than
ship a minefield, the entire system was removed and replaced with the
Resolution & Aspect module. Leftover
ungodlygfx.canary / ungodlygfx.poison files from v1.x in
BepInEx\config are cleaned up automatically on first launch of any v2.x version.
The game updated and things broke
A game patch can stale the generated interop. Close the game, delete BepInEx\interop and
BepInEx\cache, then launch once — the Part 2 generation
simply runs again against the new binary. If a major update changes the game's Unity version itself,
hold tight for a plugin update before re-modding.
Steam Deck / Linux (Proton)
The doorstop proxy needs one nudge under Proton — Windows loads winhttp.dll from the game
folder automatically, Wine needs to be told to. Right-click the game → Properties → set
Launch Options to:
WINEDLLOVERRIDES="winhttp=n,b" %command%Everything else in the guide is identical. (On Windows, leave launch options empty — this is not needed.)
Clean uninstall
Just a plugin (keep BepInEx for other mods)
Each plugin is exactly two files in the game folder. UngodlyGFX:
BepInEx\plugins\SeaOfStars.UngodlyGFX.dll
BepInEx\config\com.stixsworldhd.seaofstars.ungodlygfx.cfgUngodlyAutoTiming:
BepInEx\plugins\SeaOfStars.UngodlyAutoTiming.dll
BepInEx\config\com.stixsworldhd.seaofstars.ungodlyautotiming.cfgEverything — back to fully vanilla
Delete these six items from the game folder (they're exactly what this guide added, plus what BepInEx generated):
BepInEx\
dotnet\
winhttp.dll
doorstop_config.ini
.doorstop_version
changelog.txtYour save files are never touched either way — Sea of Stars keeps them outside the game folder, in your Windows user profile's app-data area (and in Steam Cloud). If you ever want a guaranteed-pristine reinstall instead, Steam's Verify integrity of game files restores anything game-original, though it leaves the mod files above for you to delete yourself.
Reporting an issue
Three things make a report instantly actionable: your BepInEx\LogOutput.log (for
auto-timing issues, with the Relic tab's Verbose Log switched on first), the plugin version —
UngodlyGFX v2.0.1 / UngodlyAutoTiming v1.0.3 for this guide — plus
game build (the version number in the corner of the title screen — v3.0.60151 here), and
what you last touched before the problem appeared — ideally including which of UngodlyGFX's four
module switches the bisect pointed at, if it's a graphics issue.
Reach me through StixsworldHD's site.