Skip to content

[Mod Manager] - Remake the Mod Manager to be cross-platform and conform to modern standards. - #1288

Draft
TopazTK wants to merge 135 commits into
OpenKH:masterfrom
TopazTK:master
Draft

TopazTK wants to merge 135 commits into
OpenKH:masterfrom
TopazTK:master

Conversation

@TopazTK

@TopazTK TopazTK commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

NOTE: I am pretty new in MVVM programming and Avalonia, so there may be some unorthodox decisions made within this PR. I will try my best to abide by the feedback I receive and adjust to them as necessary.

What is this PR?

This PR seeks to completely overhaul the Mod Manager and make it fast, user friendly, modern, and cross-platform.

Feature Checklist

General Checklist

  • Installation of mods from GitHub.
  • Installation of mods from other Git hosts.
  • Installation of mods from branches within Git hosts.
  • Installation of mods from ZIP Archives.
  • Installation of KHPCPatches.
  • Installation of standalone Lua files.
  • Reordering mod priority and obeying it.
  • Removal of mods of all kinds.
  • Cancellation and clean-up of mods during installation.
  • Ability to navigate to the source folder of mods.
  • Mods being marked invalid if they need be.
  • Invalid mods being ordered to the bottom priority.
  • Construction of metadata for invalid mods.
  • Memorization of mod order and activations on a per-game basis.
  • Building mods from extracted data. [PC]
  • Building mods from game data without prior extraction. [PC]
  • Detecting a JP copy and building mods accordingly [PC].
  • Building mods from game data without prior extraction. [PCSX2]
  • Ability to run games with the launcher [Epic Games Store]
  • Ability to run games with the launcher [Steam]
  • Ability to run games directly [Steam / Windows]
  • Ability to run games directly [Steam / Linux]
  • Valid configuration detection and feedback.
  • Properly setting mod metadata.
  • Properly setting mod source and issues pages if it is a Git mod.
  • Properly setting and displaying mod contents.
  • Switching games and displaying modlists accordingly.
  • Menu bar and its functionality.
  • Console output during building mods.
  • Error handling during building mods. [Halfway complete but GitHub doesn't have half-check boxes]
  • Ability to run games via the Emulator.
  • Ability to set Panacea parameters.
  • Online Mod Catalog.
  • Mod Builder Dialog.

Setup Wizard Checklist:

  • Automatic path detection and manual path selection for 1.5+2.5 and 2.8 on Steam [Windows]
  • Automatic path detection and manual path selection for 1.5+2.5 and 2.8 on Steam [Linux]
  • Automatic path detection and manual path selection for 1.5+2.5 and 2.8 on Epic Games Store
  • Manual path selection for emulator.
  • Page conditions and blocks according to the chosen platform or current action.
  • Panacea installation for 1.5+2.5 and 2.8 on Steam and Epic Games Store [Windows]
  • Panacea installation for 1.5+2.5 and 2.8 on Steam Epic Games Store [Linux]
  • LuaBackend installation for 1.5+2.5 and 2.8 on Steam and Epic Games Store [Windows]
  • LuaBackend installation for 1.5+2.5 and 2.8 on Steam and Epic Games Store [Linux]
  • Direct Launch installation and Launch Argument settings for 1.5+2.5 and 2.8 on Steam [Windows]
  • Direct Launch installation and Launch Argument settings for 1.5+2.5 and 2.8 on Steam [Linux]
  • Ability to extract files from 1.5+2.5 and 2.8 on Steam and Epic Games Store
  • Cancellation and invalidation of extraction.
  • Ability to extract files from PS2 games.

Panacea-Specific:

  • Running built mods for PC.
  • Running built mods for emulator

NOTE: There may be some features I have forgotten about. This tool is MASSIVE. Please let me know if there are features missing from the checklist so I can adapt.

Screenshots

image image image

Videos

Extractionless Test on Linux:

https://cdn.discordapp.com/attachments/1312193609461796864/1545785001893699766/extractionless-test.mp4?ex=6a9e10b7&is=6a9cbf37&hm=df778106e637b1b92ce761dc9512531950464e3324f2288f183ab34a230c43b1&

Extraction-Based Test on Linux:

https://cdn.discordapp.com/attachments/1312193609461796864/1545785105446863020/extraction-test.mp4?ex=6a9e10d0&is=6a9cbf50&hm=83fe701c820e2df3fede329bd5dbbd0b36892129eed35a5c03f742eaf333e492&

Builds

For the sake of convenience, here are the latest builds for Windows and Linux.
They are Proton Drive links because GitHub is ass.

Latest Windows Build: https://drive.proton.me/urls/5NWPCAQB0R#PJb5kcPimU9u
Latest Linux Build: https://drive.proton.me/urls/VVM02J8DQC#qiVtlFM5PDVc

They are self-contained single-binary builds, as they should be.

Some Notes

I know this isn't as featureful as the AI PR that was closed. I do realize this. But I wanted to prioritize the Desktop builds of the Mod Manager first before dabbling in controller support and touch UI and etc.

I do hope that this PR will be to y'all's satisfaction.

TopazTK added 30 commits August 29, 2026 05:09
…Io linkage from OpenKh.Patcher to allow Linux deployment.
…ods are always on the bottom, fix some bugs,.
@Vladabdf

Copy link
Copy Markdown
Collaborator

Some recommended additions for QoL:

  • Hovering over a mod in the catalog should display an expanded version of its details, in case the name or description are too long
  • The user should be able to highlight multiple entries in the mod list at once, to delete en masse or move up/down in priority en masse
  • The user should ideally be able to see what makes their mod.yml incompatible, instead of just simply displaying a vague error. This will prevent so many questions, I promise
  • In the mod catalog, users should be able to right-click and select "Open mod source", similar to how there is a link after the mod is already installed

To be continued...?

@TopazTK

TopazTK commented Sep 14, 2026

Copy link
Copy Markdown
Contributor Author

Some recommended additions for QoL:

  • Hovering over a mod in the catalog should display an expanded version of its details, in case the name or description are too long
  • The user should be able to highlight multiple entries in the mod list at once, to delete en masse or move up/down in priority en masse
  • The user should ideally be able to see what makes their mod.yml incompatible, instead of just simply displaying a vague error. This will prevent so many questions, I promise
  • In the mod catalog, users should be able to right-click and select "Open mod source", similar to how there is a link after the mod is already installed

To be continued...?

  • Will be done.
  • In the current way things work, scary. I will try though.
  • I will get to that. I am trying to format SharpYaml messages a bit better.
  • Will be done.

@Vladabdf

Copy link
Copy Markdown
Collaborator
* Will be done.

* In the current way things work, scary. I will try though.

* I will get to that. I am trying to format SharpYaml messages a bit better.

* Will be done.

The second one is the least important, as long as user-made mod presets also stick around :^)

@TopazTK

TopazTK commented Sep 14, 2026

Copy link
Copy Markdown
Contributor Author
* Will be done.

* In the current way things work, scary. I will try though.

* I will get to that. I am trying to format SharpYaml messages a bit better.

* Will be done.

The second one is the least important, as long as user-made mod presets also stick around :^)

The current objective is to have a rate of functionality that is equal to or better than what we currently have.

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
3.1% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants