A mod loader which allows using BepInEx with Resonite.
BepisLoader is a .NET (Core) only mod loader, currently targeting .NET 10. It is built on a fork of BepInEx with all Unity aspects (Unity Mono, IL2CPP, UnityDoorstop, etc.) removed. It cannot load Unity plugins and does not support Unity games.
For the recommended mod-manager setup, see the official installation guide.
- Download the latest release ZIP file (e.g.,
ResoniteModding-BepisLoader-1.6.0.zip) from Thunderstore. - Extract the contents of the
BepInExPackfolder from the ZIP into your Resonite installation directory:- Windows Default:
C:\Program Files (x86)\Steam\steamapps\common\Resonite\ - Linux Default:
~/.steam/steam/steamapps/common/Resonite/
- Windows Default:
- Linux Users Only: The included
LinuxBootstrap.shfile needs to be used instead of the default one:- The package includes a modified
LinuxBootstrap.shthat launchesBepisLoader.dllinstead ofRenderite.Host.dll - Important: Resonite updates could replace this file, breaking the mod loader. If this happens, you'll need to manually replace
LinuxBootstrap.shwith the one from the BepisLoader package.- Some mod managers - including Gale - will copy the script from their managed profile folder to the Resonite install directory on every game launch. In which case, you do not need to replace it manually.
- The package includes a modified
- Enable the modded entry point by replacing
enable=falsewithenable=truein the filehookfxr.ini- Alternatively, add
--hookfxr-enableto your launch arguments.
- Alternatively, add
- Start the game normally.
- If you want to verify that the mod loader is working, check the
BepInEx\LogOutput.logfile after launching the game.
- Set
enable=falsein the filehookfxr.ini- Alternatively, add
--hookfxr-disableto your launch arguments.
- Alternatively, add
- If you had added
--hookfxr-enableto your launch arguments before, you must remove it.
- Delete the following files from your Resonite installation directory:
- Windows Entry Points:
hostfxr.dll(our Windows entry point)hostfxr.pdb
- Common Files:
hookfxr.ini- All
BepisLoader*files
- Windows Entry Points:
- Delete the
BepInExfolder.
The BepisLoader package contains:
- Windows Entry Point:
hostfxr.dllandhookfxr.inifor hooking into the .NET runtime - Linux Entry Point: Modified
LinuxBootstrap.shthat launches BepisLoader if hookfxr is enabled (inhookfxr.inior with launch options) - BepisLoader: Core loader files (
BepisLoader.dll, etc.) - BepInEx: The BepInEx framework and all required dependencies
Requires the .NET 10 SDK.
On Windows:
./build.ps1 --target Publish -v d --build-type BleedingEdgeOn Linux:
./build.sh --target Publish -v d --build-type BleedingEdgeOr call the build project directly with dotnet (works on any OS):
dotnet run --project build/Build.csproj -- --target Publish -v d --build-type BleedingEdgeBuild output (dist zips and the Thunderstore package) lands in bin/dist.
| Target | What it does |
|---|---|
Default |
Compiles the solution (runs Clean → RestoreTools → Compile). This is what runs if --target is omitted. |
Clean |
Wipes the bin output directory. |
RestoreTools |
Restores dotnet tools. |
Compile |
Builds the solution. |
DownloadDependencies |
Downloads the external hookfxr dependency into the dep cache. |
MakeDist |
Assembles the distributable folders under bin/dist (BepInEx pack layout, Thunderstore BepInExPack). |
BuildThunderstorePackage |
Runs tcli build to produce the Thunderstore .zip under bin/dist/thunderstore-package. |
FixThunderstoreLinuxPermissions |
Fixes executable permissions inside the Thunderstore package (Linux/macOS). |
PushNuGet |
Pushes *.nupkg to --nuget-source. Skipped unless --nuget-api-key is set and --build-type is not Development. |
Publish |
Full pipeline: MakeDist + PushNuGet + FixThunderstoreLinuxPermissions, then packs the final BepInEx-*.zip files. |
| Argument | Default | What it does |
|---|---|---|
--build-type |
Development |
Release, Development, or BleedingEdge. Controls the version suffix ("", -dev+<sha>, -be.<build-id>+<sha>). |
--build-id |
-1 |
Build number, used in the BleedingEdge version suffix (be.<build-id>). |
--last-build-commit |
"" |
If set, Publish generates a changelog in info.json from commits since this ref. |
--nuget-api-key |
"" |
API key for PushNuGet. Pushing is skipped when unset. |
--nuget-source |
https://nuget.bepinex.dev/v3/index.json |
NuGet feed used by PushNuGet. |
Standard Cake Frosting options also work: --target, --verbosity/-v (Quiet, Minimal, Normal, Verbose, Diagnostic — e.g. -v d), --exclusive, --dryrun, --showtree, --showdescription, --help.
BepisLoader makes use of these repositories and packages them inside its releases:
- BepInEx - The core BepInEx framework
- BepInEx Resonite Shim - Resonite-specific compatibility layer
- hookfxr - .NET runtime hooking for Windows
- BepisLoader entry point (Runtimes\NET\BepisLoader) is licensed under the MIT License.
- The bundled BepInEx framework is licensed under the LGPL-2.1 (see
LICENSEat the root of the repository).