How to add new game (UMM)
The UnityModManager can support most of games made on the Unity engine, you just need to create rules for how the UMM will interact with game.
Find 'UnityModManagerConfig.xml' configuration file and add the code for the new game.
<GameInfo Name="Some Game"> <Folder>GameFolder</Folder> <ModsDirectory>Mods</ModsDirectory> <ModInfo>Info.json</ModInfo> <GameExe>somegame.exe</GameExe> <EntryPoint>[UnityEngine.UIModule.dll]UnityEngine.Canvas.cctor:Before</EntryPoint> <StartingPoint>[Assembly-CSharp.dll]App.Awake:After</StartingPoint> <UIStartingPoint>[Assembly-CSharp.dll]MainMenu.Start:After</UIStartingPoint> <GameVersionPoint>[Assembly-CSharp.dll]Version.GetString</GameVersionPoint> </GameInfo>
Only all fields need to be replaced by your actual data.
Name - Game name.
Folder - Name of game folder, for example, as in steam. UMM will try to find path to game by this name.
ModsDirectory - Mods folder.
ModInfo - The info file from which to start scripts.
GameExe - Game launch file. Required for Doorstop method.
EntryPoint - The path to function where UMM will be installed. Required for Assembly method.
StartingPoint - The path to function where the mods will be loaded. Required.
UIStartingPoint - The path to function where will be showing UMM UI. Optional.
GameVersionPoint - The path to static function or field that contains game version. The returned format must be 'x.x.x'. Optional.
OldPatchTarget - For new games is not needed.
FixBlackUI - Uses a lighter texture for UI.
How to find the Point
Open the 'Assembly-CSharp.dll' file (located in the 'Game_Data\Managed' game folder) via the Dnspy tool.
Look for a function that runs as early as possible. Most often their class is called App, Main, Menu.
You should have as [Assembly-CSharp.dll]App.Awake:After
App - Class (add namespace if present).
Awake - Function.
:After :Before - Run before or after.
If the UMM UI appears when starting game, it means it works.
Send the new code to the forum and with next update it will be added to UMM.