About this mod
Universal plugin loader for Unity games, especially for those that don't support modding. Supports Unity versions 3.x all the way to 2017.x, and most up to 2020.x.
- Requirements
- Permissions and credits
- Mirrors
This loader is set apart from other plugin loaders as it has support for editing .DLL assemblies without requiring changes on disk, which makes it extremely powerful to make changes with.
Currently only Windows is supported, but can be run on Linux with Proton/Wine. Native support for Linux and Mac OS X will be included in a future update.
BepInEx is compatible with almost every Unity game under the sun. Notable exceptions are games that use an IL2CPP runtime (such as VRChat).
Examples of games with BepInEx modding communities:
- Risk of Rain 2
- Outward
- Koikatsu
- Huniepop
- Custom Maid 3D 2
Games that I've personally verified as working but don't have an existing community:
- Beat Saber
- Slime Rancher
- Pathfinder: Kingmaker
- My Time At Portia
- Oxygen Not Included
- Endless Space (and most other Endless/Amplitude games for that matter)
- Subnautica
Issue tracker (place to report bugs)
https://github.com/BepInEx/BepInEx/issues
Source code
https://github.com/BepInEx/BepInEx
Developer documentation
https://bepinex.github.io/bepinex_docs/v5.0/index.html
BepInEx also has plugins that allow it to load plugins from other frameworks.
These include but are not limited to:
Installation guide
Installing the framework
- Ensure you download the correct variant of BepInEx for your game (32-bit or 64-bit), otherwise when you install it, it will fail to load and not show any visible signs of this.
You can check which type your game is by running it, opening it in task manager and seeing if the game has "(32-bit_" next to it's name. If it does, then it requires the 32-bit version, otherwise the 64-bit version. - Extract all of the files inside the .zip file to your game directory. If extracted correctly, it means that next to your Unity game .exe, there is a "winhttp.dll" file, and a "BepInEx" folder.
You're done!
A more detailed guide is here: https://bepinex.github.io/bepinex_docs/v5.0/articles/user_guide/installation.html
If you are using BepInEx in a game that does not already have an established BepInEx modding community, read this document to ensure that you're able to use BepInEx, and you're able to avoid pitfalls that may arise: https://bepinex.github.io/bepinex_docs/v5.0/articles/advanced/porting.html
Temporarily disabling the framework
Rename "winhttp.dll" to something else. Rename it back to it's original name to re-enable the framework.
Uninstalling the framework
Delete "winhttp.dll", "doorstop_config.ini" and the "BepInEx" directory.
Further instructions
Editing BepInEx or plugin configuration
Configuration files are located in the BepInEx/config directory. They use TOML, which is very similar to .ini files.
Installing plugins
Plugins should be extracted and placed into the BepInEx/plugins directory. It is not required for each plugin .DLL to have it's own folder, but it is highly recommended to keep the folder clean and organized.