BepInEx\LogOutput.log
Rewritten on every launch. Tells you whether BepInEx started, which version it is, and how many plugins it loaded.
Living with it
Sorted by what you are actually seeing on screen, not by what is technically wrong underneath.
Two files answer nearly every question, and looking at them takes under a minute.
Rewritten on every launch. Tells you whether BepInEx started, which version it is, and how many plugins it loaded.
Core › Diagnostics in the panel. Tells you which of the 7 hooks bound and which did not.
BepInEx\config\ folderBepInEx never started. The plugin is irrelevant here — fix the loader first. In order of likelihood:
winhttp.dll is in the same listing as StreetsOfRogue.exe, not inside a BepInEx_win_x64_... folder. This is the most common cause by a wide margin.Get-ChildItem -Recurse | Unblock-File in PowerShell from your game folder, then launch again.win_x64.winhttp.dll. Add the game folder to your exclusions and extract again.WINEDLLOVERRIDES="winhttp=n,b" %command% launch option, Proton uses its own winhttp.dll and BepInEx never runs.0 plugins to loadBepInEx is working. It just cannot see the DLL.
BepInEx\plugins\UngodlyStreetsOfRogueAI.dll — not in core\, not in patchers\, not loose in the game folder.UngodlyStreetsOfRogueAI.dll.txt.Unblock-File on it.
Wrong branch. BepInEx 6 does not load BepInEx 5 plugins, so the DLL will be ignored with no error
that names it. Delete winhttp.dll, doorstop_config.ini,
.doorstop_version and the BepInEx\core\ folder, then install
BepInEx 5.4.23.5 over the top. Your
plugins\ and config\ folders can stay exactly where they are.
managed on the status readout. If it is 0, nobody is eligible: your scope is probably narrower than you remember, or you are in a location where the plugin stands down.
The header line reads something other than 7 ok / 0 failed.
Open Core › Diagnostics, which names each hook and its result.
This is the designed response to a game update moving a method. Each hook is applied in its own try block, so one failure means that single behaviour reverts to stock while everything else keeps working — the game will not crash and your save is not at risk. Report the named hook and your game version, and keep playing in the meantime.
cost on the status readout first. frame is your total frame time and cycle is what the plugin itself used — if cycle is a small fraction of frame, the plugin is not your bottleneck.EnforcersAndGangs. Fewer managed characters, most of the interesting behaviour intact.This should not happen — closing restores the pointer through the game's own code path specifically to avoid it, and a force-release covers the case where the panel is destroyed while open. If you do hit it, note exactly what you were doing when the panel was open (dying, a level transition and cutscenes are the interesting cases) and report that. Pressing the hotkey to reopen and close the panel once more will normally clear it.
Working as intended. Time scale is local, so pausing on one machine would only desynchronise you from the host. The panel refuses it rather than letting you break your own session.
Expected, and correct. Decisions are made on the authority — the host — and a client defers rather
than making choices the host would overwrite a moment later. That means the host's settings
are the ones shaping NPC behaviour in a session. Check the network line on the
status readout to see which side you are on.
Establish whether it is this plugin at all: move UngodlyStreetsOfRogueAI.dll out of
plugins\ to your desktop and play. If it still crashes, the plugin was not involved.
If it stops, keep LogOutput.log from the crashing session — the last lines before it
stops are the useful part — and report it with your game version and whether you were host, client
or single-player.
Steam updates replace game files but leave everything BepInEx added in place, so a normal update changes nothing about your install. Two things are worth checking afterwards:
winhttp.dll is still in the game folder. Steam's "verify integrity of game files" can remove it, since it is not a file Steam knows about.7 ok / 0 failed. If a hook now fails, the Diagnostics tab names it.Five things make a report actionable, and without them it usually is not:
BepInEx\LogOutput.log — they establish your BepInEx version.patches figure from the status readout, and the Diagnostics tab if it is not 0 failed.