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 .exe file 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 BackendOSFile to Download
MonoWindows 64-bitBepInEx_win_x64_*.zip
MonoWindows 32-bitBepInEx_win_x86_*.zip
IL2CPPWindows 64-bitBepInEx_il2cpp_win_x64_*.zip
MonoLinuxBepInEx_linux_x64_*.zip
IL2CPPmacOSBepInEx_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.

  1. Extract the downloaded .zip file using any archive tool (Windows built-in, 7-Zip, WinRAR, etc.)

  2. Open the extracted folder. You should see a BepInEx folder, a doorstop_config.ini file, and a file called winhttp.dll (for Mono builds) or version.dll.

  3. Navigate to your game's root directory — the folder that contains the game's main .exe file. This is not the folder inside steamapps/common/GameName/GameName_Data. It's one level up.

  4. Copy everything from the extracted folder directly into the game's root directory. The BepInEx folder, the .ini file, and the .dll file all go here, sitting alongside the game's .exe.

  5. 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.

  6. Check that BepInEx initialized correctly by opening the BepInEx folder in your game directory. You should now see newly created subfolders: plugins, config, patchers, and a LogOutput.log file.

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 provided run_bepinex.sh script included in the download, placing it in the game root and launching the game through it.

  • macOS: Similar to Linux — use the run_bepinex.sh script and ensure it has execute permissions (chmod +x run_bepinex.sh in Terminal).

Installing Plugins After BepInEx Is Set Up

Once BepInEx is confirmed working, installing individual mods is straightforward:

  • Download the mod's .dll file
  • 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

ProblemLikely Cause
plugins folder never appearsWrong BepInEx version (Mono vs IL2CPP mismatch)
Game crashes immediately on launchArchitecture mismatch (x64 vs x86)
BepInEx loads but mods don't workMods require a specific BepInEx version
Game Pass / Xbox version won't load modsDRM 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.