- Install BepInEx
- clone this repo (generate from this template, then update the
.csproj
- Change
<AssemblyName>
to your mod name - Make sure the
<NineSolsPath>
points to the installed game
- Change
- Download the
NineSolsAPI.dll
from https://github.com/nine-sols-modding/NineSolsAPI/releases/ and put it intoBepInEx/plugins
. The API provides utilities like toast messages, preloading objects etc.
When you build the project in your IDE, the resulting mod should automatically be copied into the BepInEx/scripts
folder. Mods are usually loaded from the plugins
directory, but with ScriptEngine
you can reload a new version of the mod without restarting the game:
- download
ScriptEngine
from BepInEx.Debug and place it inBepInEx/plugins
to enable hot reloading- set
LoadOnStart=true
andEnableFileSystemWatcher=true
inBepInEx/config/com.bepis.bepinex.scriptengine.cfg
to hot reload without pressing F6
- set
When you build the project in your IDE (e.g. Rider) the mod should be built
and automatically copied to path/to/game/BepInEx/scripts/YourMod.dll
, triggering a reload from the scriptengine.
For the final distribution without ScriptEngine
place the .dll
in BepInEx/plugins/
instead.
The log file can be viewed in BepInEx/LogOutput.log
.