Repository navigation
Love Menu Building
NNKtv28 edited this page Sep 28, 2026
·
1 revision
- .NET SDK (any recent version; the projects target .NET Framework 4.7.2)
- Lovecraft installed, with BepInEx 5 set up. The plugin compiles against the
game's own assemblies in
Curio_Data\Managedand against BepInEx's core DLLs.
The launcher embeds the plugin, so build the plugin first:
cd love_menu_mod
dotnet build FlyMod.csproj -c Release -p:GameDir="C:\path\to\LoveCraft\Application"
dotnet build Launcher/Launcher.csproj -c ReleaseGameDir is the folder that contains Curio.exe. It defaults to
D:\SteamLibrary\steamapps\common\LoveCraft\Application.
Output:
-
bin/Release/FlyMod.dll: the plugin -
Launcher/bin/Release/net472/LoveMenuLauncher.exe: the launcher, with the plugin embedded
Rename the launcher to LoveMenu-<version>.exe for a release.
love_menu_mod/
Plugin.cs entry point: activation check, controllers, Unity lifecycle
Core/ logging, reflection helpers, player context, crash dumps
Features/ one controller (and Harmony patch, where needed) per feature
Inputs/ rebindable keys
Settings/ persisted settings (BepInEx config)
UI/ IMGUI menu, styles, theme, graphs
Launcher/ the launcher console app
- Add a controller in
Features/with aTick()method. - Create it in
LoveMenuPlugin.CreateControllers()and tick it fromTickAllFeatures(). - Add a card for it in
UI/MenuUI.cs. - If it has settings, persist them in
Settings/PluginSettings.cs.
To find the class and field names to hook, use lcmem: type,
fields and object show the same names that Harmony patches against.