newman55/unity-mod-manager

[New game] Phoenix Point

folknor opened this issue · 6 comments

https://github.com/Ijwu/PhoenixPointModLoader/blob/develop/PhoenixPointModLoaderInjector/PhoenixPointModLoaderInjector.cs#L31

https://store.steampowered.com/app/839770/Phoenix_Point_Year_One_Edition/

        <GameInfo Name="Phoenix Point">
                <Folder>Phoenix Point</Folder>
                <ModsDirectory>Mods</ModsDirectory>
                <ModInfo>Info.json</ModInfo>
                <GameExe>PhoenixPointWin64.exe</GameExe>
                <EntryPoint>??? [UnityEngine.UIModule.dll]PhoenixPoint.Common.Game.PhoenixGame.StartGame:Before</EntryPoint>
                <StartingPoint>??? [Assembly-CSharp-firstpass.dll]App.Awake:After</StartingPoint>
                <OldPatchTarget>??? [Assembly-CSharp-firstpass.dll]App.Awake:After</OldPatchTarget>
                <GameVersionPoint>??? [Assembly-CSharp.dll]Types.VersionInfo.Fields.CURRENT_VERSION_NUMBER</GameVersionPoint>
        </GameInfo>

Please let me know what to actually put in GameInfo and I can give it a try :-)

Thank you!

Here's the code for another mod loader for the game https://github.com/Sheep-y/Modnix

To begin with, you will only need that

        <GameInfo Name="Phoenix Point">
                <Folder>Phoenix Point</Folder>
                <ModsDirectory>Mods</ModsDirectory>
                <ModInfo>Info.json</ModInfo>
                <GameExe>PhoenixPointWin64.exe</GameExe>
                <EntryPoint>[UnityEngine.UIModule.dll]UnityEngine.Canvas.cctor:Before</EntryPoint>
                <StartingPoint>[Assembly-CSharp.dll]PhoenixPoint.Common.Game.PhoenixGame.StartGame:Before</StartingPoint>
        </GameInfo>

Can I ask you, why you needed modloader when you're having two?

PhoenixPointModLoader development is stopped, many newer mods do not work with it (at least according to their readme descriptions they say "requires Modnix").

Modnix doesn't work on Linux because it requires PresentationFramework (WPF), which is not implemented in Mono. Of course I can maybe work around it by installing .net in wine, I've not tried it yet.

Thanks, I will try the GameInfo next time I play, sometime next week!

So I'm trying to get this working and I believe I need to create info.json files for the mods and put them in their own subfolders in the Mods/ folder.

But what should I put in info.jsons EntryMethod field?

Here is one example mod: https://github.com/Sheep-y/PhoenixPt-Mods/blob/master/QoL/GlobeTweaks/GlobeTweaks.cs#L52 (note https://github.com/Sheep-y/PhoenixPt-Mods/blob/master/Utilities/ZyMod/ZyMod.cs#L98)

I tried setting EntryMethod to Sheepy.PhoenixPt.GlobeTweaks.Mod.Init but nothing changes in the game.

UMM loads up fine and the mod is listed in the ingame UI, so UMM finds the json file at least.

EDIT: Also, does the DLL need to have a specific name? For example is it tied to Id or something in info.json?

Any tips? Thank you!

I figured out how to use Modnix to load mods on Linux: Sheep-y/Modnix#32

I would frankly prefer to use UMM since it's much more polished for Linux users, so if you want to add support I will help with testing.

But for now I will close the ticket, and then you can decide what you want to do.

Thanks!

For a mod to work with UMM, it must be made for it.

I would support Modnix. It will be better for mod creators and players if they have a single mod manager.