Ungodly Streets of Rogue AI v1.0.0

Install

Part 1 — Install BepInEx

Put the loader beside the game executable. This is the step people get wrong, so it gets the most detail.

part1 of 3targetStreets of Rogue\adds5 itemstimeabout 2 min

BepInEx does not patch your game. It puts a file called winhttp.dll next to the executable; Windows loads that file when the game starts because the game asks for a system library of that name; BepInEx answers first, starts itself, loads your plugins, and then hands the real request on. Nothing the game shipped with is edited, which is why uninstalling is just deleting files.

Everything below follows from that one mechanism: the files have to be beside the executable, and Windows has to be willing to load them.

01

Find your game folder

The folder containing StreetsOfRogue.exe. Every other step is relative to this one.

In Steam: right-click Streets of Rogue in your library, then Manage › Browse local files. Explorer opens exactly where you need to be.

The default path looks like this, though yours will differ if you installed to another drive:

Typical Steam path
C:\Program Files (x86)\Steam\steamapps\common\Streets of Rogue\

The screenshots in this guide come from a second library on another drive, which is just as valid:

A secondary library path
F:\SteamLibrary\steamapps\common\Streets of Rogue\

You are in the right place when you can see StreetsOfRogue.exe, UnityPlayer.dll, UnityCrashHandler64.exe and the StreetsOfRogue_Data folder together in one listing. Keep this window open.

Not the Steam library root

steamapps\common\ is the folder that contains game folders. If you can see other games listed beside Streets of Rogue, you are one level too high. Go into the Streets of Rogue folder itself.

02

Download the right BepInEx build

Windows, x64, version 5.4.x.

Take BepInEx_win_x64_5.4.23.5.zip from the BepInEx releases page — the downloads page has the direct link and explains how to pick the right asset if a newer 5.4.x has shipped since.

The one thing worth repeating: the file name must contain win_x64 and the version must begin with 5.4. Not x86, not the IL2CPP build, not 6.0.0-pre.

03

Unblock the zip before you extract it

Sixty seconds here saves an hour of "BepInEx did nothing".

Windows tags files downloaded from the internet with a mark-of-the-web flag. That flag survives extraction, and a flagged winhttp.dll may refuse to load into the game process — which produces the most confusing possible symptom, because the game starts perfectly and simply behaves as though you never installed anything.

Right-click the downloaded BepInEx_win_x64_5.4.23.5.zipProperties. If there is an Unblock checkbox at the bottom of the General tab, tick it and click OK. If there is no checkbox, there is nothing to unblock and you are fine.

Or, in PowerShell, from wherever the zip is:

PowerShell — clear the download flag
Unblock-File .\BepInEx_win_x64_5.4.23.5.zip

Do the same for the mod archive while you are here — it is one command for the whole folder:

PowerShell — clear the flag on everything in the current folder
Get-ChildItem -Recurse | Unblock-File
04

Extract into the game folder

The contents go in — not the folder that contains them.

Open the zip, select everything inside it, and copy that into your game folder beside StreetsOfRogue.exe. You are moving five things:

ItemWhat it does
winhttp.dllThe proxy. This is the piece that gets loaded by the game and starts everything else. About 26 KB.
doorstop_config.iniTells the proxy what to launch and where to find it. Leave it alone; the defaults are correct.
.doorstop_versionA one-line marker recording the Doorstop version (4.5.0). Its name starting with a dot is normal.
changelog.txtBepInEx's own release notes. Harmless, ignorable.
BepInEx\A folder containing core\. The rest of its subfolders get built on first launch.
The nested-folder trap — read this one

Depending on how you extract, you can easily end up with Streets of Rogue\BepInEx_win_x64_5.4.23.5\winhttp.dll instead of Streets of Rogue\winhttp.dll. In that state absolutely nothing happens, because Windows only looks for winhttp.dll in the executable's own folder.

The test is simple: after extracting, winhttp.dll and StreetsOfRogue.exe must be visible in the same file listing. If they are not, move the contents up one level and delete the empty wrapper folder.

Right after this step, your game folder should look like this:

Game folder after Part 1
Streets of Rogue\
├── BepInEx\
│   └── core\                 (the only subfolder that exists so far)
├── MonoBleedingEdge\
├── StreetsOfRogue_Data\
├── .doorstop_version
├── changelog.txt
├── doorstop_config.ini
├── StreetsOfRogue.exe
├── UnityCrashHandler64.exe
├── UnityPlayer.dll
└── winhttp.dll

Steam extras such as Character Pack\, Soundtrack\ and Making of Streets of Rogue\ may also be present depending on what you own. They are unrelated to modding — leave them exactly as they are.

05

Steam Deck and Linux only — set the launch option

Skip this on Windows.

Proton needs to be told to prefer BepInEx's winhttp.dll over Wine's built-in one. Right-click the game in Steam › Properties › General › Launch Options and paste:

Steam launch option
WINEDLLOVERRIDES="winhttp=n,b" %command%

Use the Windows x64 BepInEx package under Proton — not the Linux package.

Part 1 done

BepInEx is installed but has never run. Nothing has been generated yet, and the BepInEx folder currently holds only core\. That is exactly right. Part 2 starts the game once and confirms the loader attached.