https://github.com/bepinex/il2cppinterop
A tool interoperate between CoreCLR and Il2Cpp at runtime
https://github.com/bepinex/il2cppinterop
dotnet il2cpp il2cpp-modding interoperability modding unity
Last synced: about 1 month ago
JSON representation
A tool interoperate between CoreCLR and Il2Cpp at runtime
- Host: GitHub
- URL: https://github.com/bepinex/il2cppinterop
- Owner: BepInEx
- License: lgpl-3.0
- Created: 2020-09-02T06:05:09.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2025-03-01T05:11:32.000Z (4 months ago)
- Last Synced: 2025-05-11T21:43:14.464Z (about 1 month ago)
- Topics: dotnet, il2cpp, il2cpp-modding, interoperability, modding, unity
- Language: C#
- Homepage:
- Size: 5.88 MB
- Stars: 265
- Watchers: 10
- Forks: 79
- Open Issues: 59
-
Metadata Files:
- Readme: README.md
- License: COPYING.LESSER
Awesome Lists containing this project
README
![]()
[](https://github.com/BepInEx/Il2CppInterop/actions/workflows/dotnet.yml)
[](https://github.com/BepInEx/Il2CppInterop/releases)| | CLI | Generator | Runtime | HarmonySupport |
|----------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **NuGet.org** (release) | [](https://www.nuget.org/packages/Il2CppInterop.CLI) | [](https://www.nuget.org/packages/Il2CppInterop.Generator) | [](https://www.nuget.org/packages/Il2CppInterop.Runtime) | [](https://www.nuget.org/packages/Il2CppInterop.HarmonySupport ) |
| **nuget.bepinex.dev** (CI) | [](https://nuget.bepinex.dev/packages/Il2CppInterop.CLI) | [](https://nuget.bepinex.dev/packages/Il2CppInterop.Generator) | [](https://nuget.bepinex.dev/packages/Il2CppInterop.Runtime) | [](https://nuget.bepinex.dev/packages/Il2CppInterop.HarmonySupport) |***
> **BepInEx fork of Il2CppAssemblyUnhollower is now Il2CppInterop!**
>
> Looking for old README and guides? Check out [`legacy-unhollower` branch](https://github.com/BepInEx/Il2CppInterop/tree/legacy-unhollower).Il2CppInterop is a framework for bridging together Unity's Il2Cpp and .NET's CoreCLR runtimes. The framework various interoperability tools:
* A tool to generate .NET assemblies from [Cpp2IL](https://github.com/SamboyCoding/Cpp2IL)'s output.
* A runtime library to work with Il2Cpp objects in CoreCLR.
* Libraries to integrate other tools with Il2Cpp.The framework allows the use of Il2Cpp domain and objects in it from a managed .NET domain.
This includes generic types and methods, arrays, and new object creation.This project started out as fork of [knah/Il2CppAssemblyUnhollower](https://github.com/knah/Il2CppAssemblyUnhollower)
but has been since been modified with new API and fixes to be a standalone project.## Getting started
For plugin developers:
* [Class injection](https://github.com/BepInEx/Il2CppInterop/blob/master/Documentation/Class-Injection.md)
* [Implementing interfaces](https://github.com/BepInEx/Il2CppInterop/blob/master/Documentation/Implementing-Interfaces.md)
* [Components and AssetBundles](https://github.com/BepInEx/Il2CppInterop/blob/master/Documentation/Injected-Components-In-Asset-Bundles.md)For tool integrators and advanced user:
* [Using the command line tool](https://github.com/BepInEx/Il2CppInterop/blob/master/Documentation/Command-Line-Usage.md)
* [Generating assemblies and bootstrapping runtime](https://github.com/BepInEx/Il2CppInterop/blob/master/Documentation/Integration-API.md)## Used libraries
Bundled into output files:
* [iced](https://github.com/0xd4d/iced) by 0xd4d, an x86 disassembler used for xref scanning and possibly more in the
futureUsed by generator itself:
* [Mono.Cecil](https://github.com/jbevain/cecil) by jbevain, the main tool to produce assemblies