How to Manually Install BepInEx: A Step-by-Step Guide for Modders
If you've spent any time in the PC gaming modding scene, you've almost certainly encountered BepInEx — a popular plugin framework and patcher used to load mods into Unity-based games. While many mod managers like Thunderstore or r2modman can install it automatically, knowing how to install BepInEx manually gives you more control, helps you troubleshoot problems, and is often the only option for games or setups that don't have automated support.
Here's what you actually need to know to do it correctly.
What Is BepInEx and Why Does It Need Manual Setup?
BepInEx (short for BepIn Extensible) is an open-source modding framework built specifically for games running on the Unity engine. It works by patching the game's runtime environment at launch, creating a layer through which plugins (mods) can be loaded without permanently altering the game's core files.
The reason manual installation sometimes becomes necessary:
- Your game isn't supported by a mod manager
- A mod manager installation corrupted or failed silently
- You're working with a Game Pass, Epic Games, or DRM-wrapped version of a game that requires special configuration
- You're a mod developer who needs a clean, controlled environment
What You'll Need Before You Start
Before downloading anything, gather this information:
- Your game's install directory — where the game's
.exefile lives - Your operating system — Windows, Linux, or macOS
- Your game's Unity architecture — whether it uses the old Mono scripting backend or the newer IL2CPP backend (this determines which BepInEx version you need)
- CPU architecture — 64-bit (x64) is standard for modern games; older or niche titles may use x86
🔍 How to check Mono vs IL2CPP: Look inside the game's root folder. If you see a folder named <GameName>_Data containing a subfolder called Managed, the game uses Mono. If you see an il2cpp_data folder instead, it uses IL2CPP.
Getting this wrong is the most common reason BepInEx fails to load at all.
Downloading the Correct BepInEx Version
Go to the official BepInEx GitHub releases page (github.com/BepInEx/BepInEx/releases) and download the build that matches your game's backend and your system's architecture.
| Game Backend | OS | File to Download |
|---|---|---|
| Mono | Windows 64-bit | BepInEx_win_x64_*.zip |
| Mono | Windows 32-bit | BepInEx_win_x86_*.zip |
| IL2CPP | Windows 64-bit | BepInEx_il2cpp_win_x64_*.zip |
| Mono | Linux | BepInEx_linux_x64_*.zip |
| IL2CPP | macOS | BepInEx_macos_x64_*.zip |
Always use the latest stable release unless a specific mod you're installing explicitly requires an older version.
How to Manually Install BepInEx on Windows
This is the most common scenario and applies to the majority of Steam games.
Extract the downloaded
.zipfile using any archive tool (Windows built-in, 7-Zip, WinRAR, etc.)Open the extracted folder. You should see a
BepInExfolder, adoorstop_config.inifile, and a file calledwinhttp.dll(for Mono builds) orversion.dll.Navigate to your game's root directory — the folder that contains the game's main
.exefile. This is not the folder insidesteamapps/common/GameName/GameName_Data. It's one level up.Copy everything from the extracted folder directly into the game's root directory. The
BepInExfolder, the.inifile, and the.dllfile all go here, sitting alongside the game's.exe.Launch the game once through Steam or your normal launcher. Don't load a save yet — just let the title screen appear, then close the game.
Check that BepInEx initialized correctly by opening the
BepInExfolder in your game directory. You should now see newly created subfolders:plugins,config,patchers, and aLogOutput.logfile.
If those folders appeared, BepInEx is working. ✅
Installing on Linux and macOS
Linux and macOS require an additional step because the doorstop preloader needs to run before the game.
Linux (Steam): Right-click the game in Steam → Properties → Launch Options. Add:
WINEDLLOVERRIDES="winhttp=n,b" %command%For native Linux builds, use the providedrun_bepinex.shscript included in the download, placing it in the game root and launching the game through it.macOS: Similar to Linux — use the
run_bepinex.shscript and ensure it has execute permissions (chmod +x run_bepinex.shin Terminal).
Installing Plugins After BepInEx Is Set Up
Once BepInEx is confirmed working, installing individual mods is straightforward:
- Download the mod's
.dllfile - Place it inside
[Game Root]/BepInEx/plugins/ - Launch the game — BepInEx loads all valid plugins from that folder automatically
Some mods include their own subfolders or config files. Follow the mod author's specific instructions when provided.
Common Reasons Manual Installation Fails
| Problem | Likely Cause |
|---|---|
plugins folder never appears | Wrong BepInEx version (Mono vs IL2CPP mismatch) |
| Game crashes immediately on launch | Architecture mismatch (x64 vs x86) |
| BepInEx loads but mods don't work | Mods require a specific BepInEx version |
| Game Pass / Xbox version won't load mods | DRM restrictions — requires special configuration |
🛠️ Always check LogOutput.log inside the BepInEx folder when something goes wrong. It logs exactly what BepInEx attempted to load and where it failed.
The Part That Varies by Setup
Manual BepInEx installation follows a consistent pattern, but the variables — your game's backend, your OS, your launcher, whether you're running mods built for a specific BepInEx version — all shape how straightforward or involved the process turns out to be. A modded copy of one Unity game might work on the first attempt with no extra steps; another game on the same machine might need custom configuration, a specific stable release, or launcher-specific workarounds. The framework itself is reliable and well-documented, but how cleanly it fits into your particular game and environment depends on details that only your own setup can reveal.