BepInEx does not modify a single game file. It sits beside the game and hooks the process at launch, loading any plugin DLL it finds. Deleting its folder returns you to a completely stock game — which is what makes it safe to try.
BackgroundHow BepInEx actually works¶
Worth thirty seconds, because it explains every mistake people make with it.
When you launch a Unity game on Windows, the executable loads a system DLL called
winhttp.dll from its own folder before it looks anywhere else. BepInEx ships a
file with that name. Windows loads BepInEx's copy, BepInEx starts the real system one so
nothing breaks, and in between it gets a moment to attach itself to the Mono runtime the
game is about to start. From there it can load plugins and patch methods in memory.
Two consequences follow, and both matter:
- The loader files must sit in the same folder as the .exe. One folder too deep and Windows never sees them, so nothing happens at all — no error, no console, no log. This is the mistake.
- The architecture must match. A 64-bit process cannot load a 32-bit DLL. Install the x86 package into this 64-bit game and it is silently ignored.
StepsThe install¶
Step 01Download the x64 package
Go to the BepInEx releases page and find the newest release in the 5.4.x line. Open its Assets list and take the file named:
The one file you want BepInEx_win_x64_5.4.23.5.zipOr take it directly:
Download BepInEx_win_x64_5.4.23.5.zip
Asset in the release Take it? Why BepInEx_win_x64_5.4.x.zipYes Windows, 64-bit, Unity Mono. This is the one. BepInEx_win_x86_5.4.x.zipNo 32-bit. Will be silently ignored by this 64-bit game. BepInEx_unix_*.zipNo Linux and macOS. Anything tagged 6.0.0No BepInEx 6 does not load BepInEx 5 plugins. Neither of these mods will run. Anything tagged -be.No Bleeding edge development builds. Step 02Extract the contents into the game folder
This is the step people get wrong, so read the picture before you do it.
Open the zip. Inside you will see a
BepInExfolder and several loose files sitting next to it. Those are what goes into your game folder — not the zip, and not a folder named after the zip.Correct — contents at the top level, beside the .exe Bendy and the Ink Machine\ ├─ Bendy and the Ink Machine.exe ├─ BepInEx\ <- from the zip ├─ .doorstop_version <- from the zip ├─ doorstop_config.ini <- from the zip ├─ winhttp.dll <- from the zip ├─ changelog.txt <- from the zip ├─ Bendy and the Ink Machine_Data\ └─ UnityPlayer.dllWrong — one folder too deep. Nothing will load. Bendy and the Ink Machine\ ├─ Bendy and the Ink Machine.exe └─ BepInEx_win_x64_5.4.23.5\ <- WRONG ├─ BepInEx\ ├─ doorstop_config.ini └─ winhttp.dllThe reliable way to get it right: open the zip, press Ctrl + A to select everything inside it, copy, then paste into the game folder. If Windows asks whether to merge or replace, say yes.
Step 03Run the game once, then quit
Launch the game normally, from Steam or however you usually start it. Wait until you reach the main menu — the one with BEGIN / OPTIONS / QUIT. Then quit.
You do not need to start a chapter. You are just giving BepInEx one launch to build its folder structure and write its first log.
After that first launch your game folder should look like this:
After the first run Bendy and the Ink Machine\ ├─ Bendy and the Ink Machine.exe ├─ winhttp.dll ├─ .doorstop_version ├─ doorstop_config.ini ├─ changelog.txt └─ BepInEx\ ├─ cache\ <- created on first run ├─ config\ <- created on first run; plugin settings land here │ └─ BepInEx.cfg ├─ core\ <- shipped in the zip ├─ patchers\ <- created on first run ├─ plugins\ <- created on first run; YOUR MODS GO HERE └─ LogOutput.log <- created on first runAnd here is what that actually looks like on disk:
View full size · 1752×215the BepInEx folderSix items. cache, core and patchers you never touch. config holds the settings files, plugins holds the mods, and LogOutput.log is rewritten on every launch — here it is 41 KB, which is a healthy run rather than an early crash. While you are there, look at the game folder itself. The five loose BepInEx files should be sitting beside the executable, exactly like this:
View full size · 1752×320the game folderA finished install. Eleven items: three folders, the game executable, and the five loose files BepInEx adds — .doorstop_version, changelog.txt, doorstop_config.ini and winhttp.dll sitting directly beside Bendy and the Ink Machine.exe. That adjacency is the whole trick; one folder deeper and none of it loads. Step 04Confirm it loaded
Open this file in Notepad:
The log <game folder>\BepInEx\LogOutput.logThe first few lines should look something like this:
LogOutput.log — a healthy first run [Message: BepInEx] BepInEx 5.4.23.5 - Bendy and the Ink Machine [Info : BepInEx] Running under Unity v2022.3.x [Info : BepInEx] CLR runtime version: 4.0.30319.42000 [Message: BepInEx] Preloader started [Info : BepInEx] 0 patcher plugins loaded [Message: BepInEx] Preloader finished [Message: Chainloader] Chainloader ready [Info : Chainloader] 0 plugins to load“0 plugins to load” is exactly right at this stage. You have not installed any yet. What you are confirming here is that the loader itself started, found the game, and got as far as looking for plugins.
Step 05Optional: turn the console on
Not required, but genuinely useful while you are installing things — it shows you plugin load errors as they happen instead of after the fact. Open:
BepInEx configuration <game folder>\BepInEx\config\BepInEx.cfgFind the
[Logging.Console]section and set:BepInEx.cfg [Logging.Console] ## Enables showing a console for log output. # Setting type: Boolean # Default value: false Enabled = trueSave, and launch the game again. A console window now opens alongside it.
TroubleshootingWhen BepInEx will not load¶
Almost all of these produce the same symptom — the game launches perfectly normally and nothing else happens — so work through them in order rather than guessing.
Most likely
No BepInEx folder appears, and no log file is created
BepInEx never ran. In order of likelihood: the files are one folder too deep; you installed
the x86 package instead of x64; or winhttp.dll was quarantined by your antivirus.
Check the first one by confirming winhttp.dll sits directly beside
Bendy and the Ink Machine.exe. Check the second by looking at the name of the zip you downloaded.
Check the third in your antivirus quarantine log.
The folders exist but LogOutput.log is empty or missing
Usually a permissions problem: the game folder is somewhere Windows will not let the process
write to. Verify you can create a text file in the game folder yourself. If you cannot, either
move the game to a library folder outside C:\Program Files, or grant your user
write access to the folder.
The game will not start at all now, or crashes instantly
Delete winhttp.dll and doorstop_config.ini from the game folder. The
game will start normally again, unmodded — that is the emergency stop, and it always
works, because those two files are the entire hook.
Then reinstall carefully. The usual causes are a mixed install (two BepInEx versions layered
on top of each other) or a partially-extracted zip. Delete the whole
BepInEx folder as well and start clean.
The log shows a version banner but the game overlay/console is missing
Cosmetic. Console output is off by default. See step 5 above.
Expected
The game takes noticeably longer to start now
Expected on the first launch after installing, and after every plugin change. BepInEx caches
its assembly scan in BepInEx\cache\, so the launch after that is close to normal
again. If you ever want to force a full rescan, delete the contents of that folder.
Steam says the game is running but no window appears
Look for a console window behind everything else, or in the taskbar. If BepInEx opened a console and something in it is waiting on input, the game window may not have come up yet. Otherwise, use the emergency stop above and reinstall.
Where to goNext¶
With the loader confirmed working, the two plugins are simply files copied into
BepInEx\plugins\. Start with Enhanced.