Skip to content

ui3TD/IM-HarmonyIntegration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 

Repository files navigation

IM-HarmonyIntegration

IM-HarmonyIntegration is a BepInEx plugin that integrates Harmony into Idol Manager. You need IM-HarmonyIntegration installed to activate any Harmony mods for Idol Manager on Steam Workshop.

Visit the Idol Manager Official Discord to discuss.

INSTALL INSTRUCTIONS (Windows):

These instructions are for Windows (x64). MacOS or Linux users should see the section below instead.

  1. Download IM-HarmonyIntegration for x64 HERE
  2. Extract the contents of the zip file into the Idol Manager directory.

You can find the Idol Manager directory by right clicking Idol Manager in your Steam Library and selecting "Browse Local Files" like so:

If done correctly, your Idol Manager directory should look like this:

INSTALL INSTRUCTIONS (MacOS/Linux):

  1. Download IM-HarmonyIntegration for Unix HERE
  2. Find the directory where the game executable file is located.
    1. On Linux, it may vary by distribution but it is usually ~/.steam/steam/SteamApps/common/Idol Manager/
    2. On MacOS, it is ~/Library/Application Support/Steam/steamapps/common/Idol Manager/Idol Manager.app/Contents/MacOS/
  3. Extract the contents of the zip file into the executable directory.
  4. Follow Steps 2 and 3 from the official instructions here.

If done correctly, you should see run_bepinex.sh in the same folder as the Idol Manager executable file.

UNINSTALL INSTRUCTIONS (Windows):

Delete the following files and directories from your Idol Manager directory...

  1. HarmonyIntegration README.txt
  2. BepInEx
  3. UnstrippedLibs
  4. winhttp.dll
  5. doorstop_config.ini

HOW IT WORKS

This plugin patches the in-game mod manager to search for and load HarmonyID.dll in each mod's folder, where "HarmonyID" is a field in the mod's info.json file. Toggling mods in-game will enable/disable the Harmony patches as expected.

Mod devs must make sure that the .dll is a C# library built on .NET 4.6 that includes Harmony compatible patches. Do not initiate the Harmony instance in your mod (i.e. do not include an Awake() method). IM-HarmonyIntegration controls all patching/unpatching operations.

See IM-FastForward for an example and tutorial for creating compatible mods.

BUILDING FROM SOURCE:

Pre-reqs:

  • .NET Framework 4.6.
  • Unstripped libraries of: mscorlib.dll, System.Configuration.dll, System.Core.dll, System.dll, UnityEngine.CoreModule.dll, UnityEngine.SharedInternalsModule.dll
  • Edit HarmonyIntegration.csproj to point to your copy of Idol Manager's Assembly-CSharp.dll file
  1. Put unstripped libraries into UnstrippedLibs folder in the Idol Manager directory
  2. Obtain BepInEx and copy into game directory
  3. Modify doorstop_config.ini to point to UnstrippedLibs
  4. Run the game to initialize BepInEx
  5. Build HarmonyIntegration
  6. Copy the dll into BepInEx plugin directory