List of useful development plugins
This page contains a list of useful plugins and tools you can use to make development of plugins with BepInEx easier.
Description: This is a pack of useful plugins to ease development. Below is a description of each debug plugin. You can find more specific usage guide in repository README.
Allows to reload plugins without restarting the game. Simply put your
BepInEx/scripts folder and press
F6 in-game whenever you
want to reload a plugin.
Note that to support this your plugin needs to clean up its resources in
your plugin by creating
method and unpatching any Harmony patches along with cleaning up other resources.
Logs load times for each of the plugins.
A profiler for Unity games. Logs all called methods, call counts and call times.
Outputs all data as
Formats stack traces into a more human-friendly formats and attempts to properly
IEnumerables, lambdas and
async state machines.
Runtime Unity Editor
Description: Brings an extensive Unity Editor -like hierarchy explorer directly into a game. Allows you to inspect any game object and component. Additionally comes with a C# REPL and support for rotation/translation gizmos via Vectrocity.
Refer to the README for installation and usage info.
Description: Allows to edit all configuration files via an in-game GUI.
Default hotkey is
F1. Refer to README for more info on how to use and
how to integrate into your plugin.
C# Script Loader
Description: Allows to write C# scripts without compiling them. Useful for small (under 200 LOC) Harmony patches and tools. Supports live code reloading and comes with a custom version of MCS compiler that allows you to access private methods/fields without any reflection.
Refer to the README for info on how to write scripts and current limitations.
ThunderKit (make plugins in Unity Editor)
Description: Allows you to create plugins directly in Unity Editor. With it you can easily create new assets and link them to existing or new components. Great for integrating new items, maps and whatnot into any Unity game.
The tool is being actively developed and documentation is being created. Refer to README for more information about the tool and how to install it.
Runtime MonoMod.HookGen and MMHOOK stripping
Link (HookGenPatcher): GitHub
Link (LighterPatcher): GitHub
Description: Normally using MonoMod.HookGen requires you to bundle
MMHOOK.dll with your plugins and regenerate them
between game updates.
This preloader patcher allows you to dynamically generate the
MMHOOK.dll file on the fly when the game starts, thus
removing potential problems of incompatibility between game updates.
In addition, LighterPatcher strips the generated
MMHOOK.dll down to only patches that are used by the plugins, thus
speeding up loading of MMHOOK DLL (in cases where type resolving is triggered for all types in MMHOOK).
Everything is done at runtime and requires no action from the end-user.