Source repository for Cosmo's mods for Idol Manager.
This repository contains gameplay mods, bug fixes, shared frameworks, localization tools, and developer utilities built with Harmony for Idol Manager.
- Download compiled mods from the Steam Workshop
- Install IM-HarmonyIntegration
- Read the localization guide
- Read the contribution guidelines
Important
Most compiled mods in the Steam Workshop collection require IM-HarmonyIntegration.
Subscribing to the mods through Steam Workshop does not replace the separate Harmony installation. Install IM-HarmonyIntegration from GitHub before using Harmony-based mods.
Players who do not need to modify or compile the source should install the published versions through Steam Workshop.
- Open the Cosmo Mods Steam Workshop collection.
- Subscribe to the mods you want to use.
- Install IM-HarmonyIntegration.
- Start Idol Manager.
- Open the in-game mod manager and enable the subscribed mods.
Some mods depend on other Cosmo mods or frameworks. Check the requirements shown on each Workshop page before enabling a mod.
IM-HarmonyIntegration is a BepInEx plugin that allows Idol Manager to load Harmony mod DLLs.
- Open the IM-HarmonyIntegration repository.
- Download the latest Windows x64 release.
- In Steam, right-click Idol Manager.
- Select Manage > Browse local files.
- Extract the contents of the IM-HarmonyIntegration ZIP directly into the Idol Manager installation directory.
A typical Steam installation directory is:
C:\Program Files (x86)\Steam\steamapps\common\Idol Manager\
The exact location may differ when Steam uses another library folder.
The IM-HarmonyIntegration Windows package includes the files needed to install BepInEx. After installation, the game directory should contain folders and files such as:
Idol Manager\
├── BepInEx\
├── IM_Data\
├── Idol Manager.exe
├── doorstop_config.ini
└── winhttp.dll
The Harmony library used when building these mods is located at:
Idol Manager\BepInEx\core\0Harmony.dll
The repository currently contains 23 buildable mod projects.
- Assistant Manager - Adds Assistant Manager Offices and allows Assistant Managers to share eligible office work with the Producer.
- Cheats Mod - Adds configurable cheat and testing actions to the Mod Buttons Action Hub.
- Faster Skip Dialogue - Makes the vanilla VN Skip button rapidly advance dialogue and accelerate dialogue transitions while pausing normally at choices.
- Graduation Calendar - Shows idol graduation dates in Extras and adds a graduation calendar popup.
- Graduation Details - Adds a graduated-idol details popup containing career earnings, singles, marriage information, and other history.
- Graduation Rebalances - Pushes graduation dates back for qualifying high-performing idols.
- Idol Career Diary - Adds a profile-integrated career timeline powered by IM Data Core and IM UI Framework.
- Monthly Ledger - Adds a localized monthly income and expense ledger to the Action Hub.
- No Bullying Policy - Adds a policy option that can disable bullying while preserving the default behavior when the policy is not active.
- UI Recovery Tools - Adds configurable recovery hotkeys and an error overlay for recovering from stuck interface states.
- IM Data Core - Provides reusable persistent data storage and an event-ledger backend for Idol Manager mods.
- IM UI Framework - Provides reusable game-style controls, buttons, popups, and other interface utilities.
- Mod Buttons - Provides a centralized Action Hub that lets mods add interactive actions through configuration files.
- Mod Localization System - Provides shared language-aware JSON loading and localization support for Idol Manager mods.
- Clinic Recovery Priority Fix - Makes automated clinics claim eligible low-stamina idols before competing auto-practice rooms.
- Dialogue Click Race Fix - Prevents late dialogue clicks during the closing window from triggering null-node dialogue traversal errors.
- Divorce Fix - Clears stale marriage state after divorce events so affected idols can flirt again.
- Room Assignment Fix - Prevents manual and automatic room assignment from placing one idol in multiple rooms or tasks at once.
- Save Write Ordering Fix - Prevents older same-slot save operations from overwriting newer save requests and provides coordination APIs for cooperating persistence mods.
- Show Cast Assignment Fix - Prevents one idol from occupying multiple permanent-cast slots in radio, internet, and television shows.
- Singles Marketing Checkbox Fix - Keeps the Marketing checklist row visible for in-development singles when no marketing campaign was selected.
- Staff Firing Freeze Fix - Prevents room and business-proposal state from becoming stuck when busy staff members are fired.
- Unavailable Idols Fix - Protects show casts, concerts, assignments, and related persistent state when idols become temporarily unavailable, announce graduation, or leave the agency.
IM-Cosmo-Mod-Library\
├── mods\
│ └── <Mod Name>\
│ ├── src\ # C# source files
│ ├── assets\ # Files copied into the packaged mod
│ ├── docs\ # Screenshots and extended documentation
│ └── <Mod Name>.csproj
├── scripts\ # Build, packaging, and deployment scripts
├── artifacts\ # Generated packaged builds
├── Cosmo Mod Library.sln
├── Directory.Build.props
├── LOCALIZATION.md
├── CONTRIBUTING.md
└── LICENSE.md
Not every mod needs every optional directory.
mods/<Mod Name>/srccontains C# source files.mods/<Mod Name>/assetscontainsinfo.json, localization files, images, and other runtime assets copied into packaged builds.mods/<Mod Name>/docscontains screenshots or extended documentation when needed.Directory.Build.propsdefines shared compiler settings, game DLL references, and packaging behavior.scripts/Build-And-Deploy-Mods.ps1builds and deploys the mods into a local Idol Manager installation.
To build the complete solution, you need:
- Windows
- Git
- A current .NET SDK capable of building .NET Framework 4.6 projects
- Idol Manager installed locally
- IM-HarmonyIntegration installed in the Idol Manager directory
- Local copies of the required Idol Manager, Unity, DOTween, and Harmony DLLs
The projects target:
.NET Framework 4.6
The required game and Harmony DLLs are not included in this repository. Copy them from your own Idol Manager installation after installing IM-HarmonyIntegration.
Do not commit or publicly redistribute the copied game DLLs.
Choose a parent development directory and clone the repository inside it:
cd C:\Development
mkdir IdolManagerMods
cd IdolManagerMods
git clone https://github.com/ExSlam/IM-Cosmo-Mod-Library.gitThis produces:
C:\Development\IdolManagerMods\
└── IM-Cosmo-Mod-Library\
By default, Directory.Build.props expects a directory named dll beside the repository.
Create it in the same parent directory where IM-Cosmo-Mod-Library is located:
cd C:\Development\IdolManagerMods
mkdir dllThe expected structure is:
C:\Development\IdolManagerMods\
├── dll\
└── IM-Cosmo-Mod-Library\
In other words, the default DLL path is:
IM-Cosmo-Mod-Library\..\dll
You may use a different location by overriding the dllDir MSBuild property or editing Directory.Build.props.
In Steam:
- Open your Library.
- Right-click Idol Manager.
- Select Manage > Browse local files.
The directory normally resembles:
<Steam Library>\steamapps\common\Idol Manager\
After IM-HarmonyIntegration is installed, the two relevant source directories are:
Idol Manager\BepInEx\core\
Idol Manager\IM_Data\Managed\
Copy:
Idol Manager\BepInEx\core\0Harmony.dll
Into the sibling development DLL directory:
C:\Development\IdolManagerMods\dll\
Result:
C:\Development\IdolManagerMods\dll\0Harmony.dll
Copy the following files from:
Idol Manager\IM_Data\Managed\
Into:
C:\Development\IdolManagerMods\dll\
Required files:
Assembly-CSharp.dll
Assembly-CSharp-firstpass.dll
DOTween.dll
UnityEngine.dll
UnityEngine.CoreModule.dll
UnityEngine.ImageConversionModule.dll
UnityEngine.InputLegacyModule.dll
UnityEngine.JSONSerializeModule.dll
UnityEngine.TextRenderingModule.dll
UnityEngine.UI.dll
UnityEngine.UIModule.dll
UnityEngine.UnityWebRequestModule.dll
UnityEngine.UnityWebRequestTextureModule.dll
Unity.TextMeshPro.dll
Together with 0Harmony.dll, the complete sibling DLL directory should contain:
dll\
├── 0Harmony.dll
├── Assembly-CSharp.dll
├── Assembly-CSharp-firstpass.dll
├── DOTween.dll
├── UnityEngine.dll
├── UnityEngine.CoreModule.dll
├── UnityEngine.ImageConversionModule.dll
├── UnityEngine.InputLegacyModule.dll
├── UnityEngine.JSONSerializeModule.dll
├── UnityEngine.TextRenderingModule.dll
├── UnityEngine.UI.dll
├── UnityEngine.UIModule.dll
├── UnityEngine.UnityWebRequestModule.dll
├── UnityEngine.UnityWebRequestTextureModule.dll
└── Unity.TextMeshPro.dll
The full development layout should now resemble:
C:\Development\IdolManagerMods\
├── dll\
│ ├── 0Harmony.dll
│ ├── Assembly-CSharp.dll
│ ├── Assembly-CSharp-firstpass.dll
│ ├── DOTween.dll
│ ├── UnityEngine.dll
│ ├── UnityEngine.CoreModule.dll
│ ├── UnityEngine.ImageConversionModule.dll
│ ├── UnityEngine.InputLegacyModule.dll
│ ├── UnityEngine.JSONSerializeModule.dll
│ ├── UnityEngine.TextRenderingModule.dll
│ ├── UnityEngine.UI.dll
│ ├── UnityEngine.UIModule.dll
│ ├── UnityEngine.UnityWebRequestModule.dll
│ ├── UnityEngine.UnityWebRequestTextureModule.dll
│ └── Unity.TextMeshPro.dll
│
└── IM-Cosmo-Mod-Library\
├── mods\
├── scripts\
├── Cosmo Mod Library.sln
└── Directory.Build.props
Open PowerShell in the repository directory:
cd C:\Development\IdolManagerMods\IM-Cosmo-Mod-LibraryRestore the NuGet dependencies:
dotnet restoreTo compile every project:
dotnet build "Cosmo Mod Library.sln" -c ReleaseNormal compiler output is placed under each project's bin\Release\net46 directory.
To compile the complete solution and copy each mod DLL and its assets into artifacts\mods\Release, run:
$artifactRoot = Join-Path (Get-Location) "artifacts\mods\Release"
dotnet build "Cosmo Mod Library.sln" `
-c Release `
"-p:ModOutputDir=$artifactRoot"Packaged mods will be placed under:
artifacts\mods\Release\<Mod Name>\
For example:
artifacts\mods\Release\Room Assignment Fix\
├── com.cosmo.roomassignmentfix.dll
├── info.json
└── Localization\
For example, to build and package IM UI Framework:
$artifactRoot = Join-Path (Get-Location) "artifacts\mods\Release"
dotnet build "mods\IM UI Framework\IM UI Framework.csproj" `
-c Release `
"-p:ModOutputDir=$artifactRoot"Replace the project path with the project you want to build.
The included PowerShell script can build all deployable projects and copy them into the local Idol Manager mod directory:
.\scripts\Build-And-Deploy-Mods.ps1 -Configuration ReleaseThe default deployment directory is:
%USERPROFILE%\AppData\LocalLow\Glitch Pitch\Idol Manager\Mods
For Debug builds:
.\scripts\Build-And-Deploy-Mods.ps1 -Configuration DebugThe deployment script:
- Finds all deployable
.csprojfiles undermods. - Builds each project.
- Creates packaged output under
artifacts\mods\<Configuration>. - Reads each packaged mod's
HarmonyID. - Matches existing installations by
HarmonyID. - Copies the DLL and runtime assets into the appropriate local mod directory.
- Avoids deploying
.pdbdebugging files.
A custom deployment directory can be supplied with -DeployRoot:
.\scripts\Build-And-Deploy-Mods.ps1 `
-Configuration Release `
-DeployRoot "D:\IdolManagerTestMods"To deploy previously built artifacts without rebuilding:
.\scripts\Build-And-Deploy-Mods.ps1 `
-Configuration Release `
-SkipBuildConfirm that this file exists:
..\dll\0Harmony.dll
The source file should have been copied from:
Idol Manager\BepInEx\core\0Harmony.dll
If the BepInEx directory does not exist, install IM-HarmonyIntegration before collecting the build dependencies.
Errors involving types such as staff, agency, data_girls, or other game classes usually mean that one or both of these files are missing or from an incompatible game version:
Assembly-CSharp.dll
Assembly-CSharp-firstpass.dll
Copy fresh versions from:
Idol Manager\IM_Data\Managed\
Errors involving UnityEngine, user-interface classes, image conversion, text rendering, web requests, or TextMesh Pro usually mean that one of the Unity DLLs is absent from the sibling dll directory.
Compare your directory against the complete required DLL list above.
Confirm that this file exists:
..\dll\DOTween.dll
Copy it from:
Idol Manager\IM_Data\Managed\DOTween.dll
When Idol Manager updates, its managed assemblies may change.
Copy fresh versions of the required DLLs from the current game installation into the sibling dll directory and rebuild the solution.
All copied DLLs should come from the same installed game version.
Either move the directories into the expected layout:
Parent Directory\
├── dll\
└── IM-Cosmo-Mod-Library\
Or override dllDir when building:
dotnet build "Cosmo Mod Library.sln" `
-c Release `
"-p:dllDir=D:\Libraries\IdolManager"See LOCALIZATION.md for instructions on:
- Adding translations to existing mods
- Adding support for languages not shipped by the base game
- Working with localized JSON assets
- Using the shared localization runtime
- Providing player-facing text through
strings.txtfiles
Pull requests are welcome. Keep them focused, explain what changed and why, and follow these rules:
- Add in-code comments that explain your changes in relation to the original behavior or implementation.
- Use named variables and constants. Do not leave loose string literals or magic numbers in the code.
- Put player-facing text in the proper localizable
strings.txtfiles for each mod instead of hardcoding it in code. - Localization translations for mods in this repo are appreciated.
If your change affects behavior, UI, balance, persistence, or compatibility, include a short explanation in the PR description.
Keep changes focused and explain what changed and why. Player-facing text should be placed in the appropriate localization files rather than hardcoded into C# source.
This repository is source-available, not open source.
Personal reference, personal gameplay, private local modification, interoperability, and contributions through pull requests are permitted under the terms in LICENSE.md.
Redistribution, alternate public releases, mirrors, binary reuploads, and Steam Workshop reuploads are not permitted without prior written permission from Cosmo.
Idol Manager, Unity, Harmony, BepInEx, DOTween, Steam, and any related names or assets belong to their respective owners.