Elmerfudge's picture
Upload 21 files
53f7b7a verified
|
Raw History Blame Contribute Delete
1.92 kB
# unity-bepinex
> Unity games that need BepInEx (Mono vs IL2CPP detection, install, logs).
## Identity
BepInEx is a plugin framework (loader), not a game. It injects into Unity (and some other .NET) games so plugin mods can run. Games that use it need it installed first as a dependency of every plugin.
## Detect whether it is needed
List the game folder with `list_dir`.
- Mono build: `<Game>_Data/Managed/` containing `Assembly-CSharp.dll`, and/or a `MonoBleedingEdge/` folder -> BepInEx 5.x (Mono).
- IL2CPP build: `GameAssembly.dll` in the root and `<Game>_Data/il2cpp_data/Metadata/global-metadata.dat` -> the BepInEx IL2CPP build (6.x/bleeding-edge line). Mono plugins do not work on IL2CPP games and vice versa.
- If either is present, treat BepInEx as a likely dependency, then confirm on the mod page or the game's Thunderstore community.
- Match architecture: x64 vs x86 must match the game's .exe.
## Mod folder and format
Extract BepInEx into the game root next to the game .exe (you should see `winhttp.dll`, `doorstop_config.ini`, `BepInEx/`). Launch once so it creates `BepInEx/config/` and `BepInEx/plugins/`. Plugin DLLs (or each mod's folder) go in `BepInEx/plugins/`.
## Sources
Thunderstore (r2modman / Thunderstore Mod Manager automate everything), Nexus, GitHub Releases. Get the exact BepInEx build for the game from the game's Thunderstore community or the BepInEx docs: verify with web_search.
## Load order
None, apart from declared plugin dependencies.
## Logs
`BepInEx/LogOutput.log` (enable the console in `BepInEx/config/BepInEx.cfg` if needed). Unity `Player.log` under `AppData/LocalLow/<Company>/<Game>/`.
## Common failures
Wrong Mono/IL2CPP build, wrong architecture, missing plugin dependency, plugin built for another game version, game update breaking IL2CPP interop (delete `BepInEx/cache/` and `interop/` and relaunch). On Linux/Proton set `WINEDLLOVERRIDES="winhttp=n,b"`.