# bepinex/bepinex

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/bepinex-bepinex).**

7,368 stars · 794 forks · C# · lgpl-2.1

## Links

- GitHub: https://github.com/BepInEx/BepInEx
- awesome-repositories: https://awesome-repositories.com/repository/bepinex-bepinex.md

## Topics

`bepinex` `framework` `il2cpp` `mod-loader` `modding` `modloader` `mono` `patcher` `unity` `unity-mono` `unity3d` `xna` `xna-framework`

## Description

BepInEx is a Unity game modding framework that enables the injection of custom C# code and external assemblies into running processes without modifying original binaries. It provides a plugin loader and a dependency resolution engine to ensure that external modules are initialized in the correct order based on defined metadata requirements.

The framework includes a centralized plugin configuration system for storing and editing custom settings via files and interactive inputs. It also features a runtime object inspector for browsing and debugging active game objects and components within a Unity environment.

The system covers broader capabilities for game plugin development, including system event logging for troubleshooting and standardized file path resolution to maintain consistent directory locations for configurations and logs.

## Tags

### Game Development

- [Modding Toolkits](https://awesome-repositories.com/f/game-development/game-engines-frameworks/game-engines/modding-toolkits.md) — Provides a specialized modding toolkit for injecting custom C# code into Unity games without altering binaries.
- [Plugin Development Toolkits](https://awesome-repositories.com/f/game-development/plugin-development-toolkits.md) — Provides a comprehensive system for developing and managing third-party game modifications.
- [Modding Frameworks](https://awesome-repositories.com/f/game-development/tooling-asset-pipeline/modding-frameworks.md) — Acts as a comprehensive modding framework for creating and distributing Unity game modifications.
- [Real-time State Debugging](https://awesome-repositories.com/f/game-development/game-memory-modifiers/real-time-state-debugging.md) — Enables real-time inspection and modification of active game objects for debugging purposes.
- [Plugin Configuration Interfaces](https://awesome-repositories.com/f/game-development/plugin-configuration-interfaces.md) — Provides a centralized system for users to customize plugin settings and key bindings.

### Content Management & Publishing

- [Plugin and Theme Metadata](https://awesome-repositories.com/f/content-management-publishing/documentation-metadata-configurations/plugin-and-theme-metadata.md) — Allows specifying plugin dependencies and requirements through metadata attributes to ensure compatibility. ([source](https://docs.bepinex.dev/master/api/index.html))

### Development Tools & Productivity

- [Plugin Loaders](https://awesome-repositories.com/f/development-tools-productivity/plugin-loaders.md) — Implements a system for dynamically discovering and loading external C# DLLs into the game process.
- [Object Inspection Tools](https://awesome-repositories.com/f/development-tools-productivity/object-inspection-tools.md) — Provides an interactive interface for analyzing and modifying the internal state of runtime game objects. ([source](https://docs.bepinex.dev/master/articles/dev_guide/dev_tools.html))
- [Runtime Object Inspectors](https://awesome-repositories.com/f/development-tools-productivity/runtime-object-inspectors.md) — Provides a runtime interface for browsing the memory heap to discover and modify active game objects.

### Mobile Development

- [Runtime Code Injection](https://awesome-repositories.com/f/mobile-development/distribution-updates/over-the-air-updates/runtime-code-injection.md) — Enables the injection of external assemblies into a running process to modify software behavior at runtime. ([source](https://docs.bepinex.dev/master/))

### Operating Systems & Systems Programming

- [Managed Assembly Injection](https://awesome-repositories.com/f/operating-systems-systems-programming/assembly-injection-interfaces/managed-assembly-injection.md) — Implements the ability to load external .NET assemblies into a running process to override game logic.

### Software Engineering & Architecture

- [Dependency Resolution Engines](https://awesome-repositories.com/f/software-engineering-architecture/dependency-resolution-engines.md) — Features a metadata-driven engine that resolves plugin dependency trees to ensure correct initialization order.
- [Metadata-Driven Resolution](https://awesome-repositories.com/f/software-engineering-architecture/sat-based-dependency-resolution/metadata-driven-resolution.md) — Provides a metadata-driven system for resolving plugin dependencies and initialization order.
- [Plugin-Based Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures.md) — Provides a standardized C# base class and interface for implementing modular plugin architectures.
- [Plugin Configurations](https://awesome-repositories.com/f/software-engineering-architecture/default-configuration-values/plugin-configurations.md) — Offers a centralized system for storing and editing the configuration settings of injected plugins. ([source](https://docs.bepinex.dev/master/api/index.html))

### Data & Databases

- [Configuration Persistence](https://awesome-repositories.com/f/data-databases/configuration-persistence.md) — Implements persistent storage for plugin settings to maintain user modifications between sessions.
