ME3Tweaks / ME3TweaksModManager

Mod Manager for Mass Effect Original Trilogy and Mass Effect Legendary Edition
GNU General Public License v3.0
123 stars 34 forks source link

Feature Request: Ability for Mergemods to update entire (non-vanilla) classes #381

Closed Tajfun403 closed 2 months ago

Tajfun403 commented 1 year ago

The issue: As of this moment, performing an update to a class which was added to a startup file by a mod is not perfectly comfortable. A new custom class can be very simply pulled into a startup file by utilizing assetupdate and canmergeasnew properties of a mergemod. However, it cannot be updated in the same easy method anymore: assetupdate would only update the main class export, leaving out updates committed to existing functions (because their exports already exist - so they won't be merged in again). This proves releasing further updates to end users difficult.

Current alternatives:

Solutions:

Mgamerz commented 4 months ago

Been looking into this. There will be a new flag on merge mods that will allow you to overwrite an existing non-vanilla class, which will be the same behavior as if you went into the Script tab in LEX and replaced the entire class text and pressed compile.

However, something I did not think about is how two classes interact, and will require some additional thought by developers.

For example, in Mass Effect 2 Randomizer LE, I have a class in SFXGame - MERControl. It references another class I also made in SFXGame - BioMorphFaceUtility. In the event that BioMorphFaceUtillity references MERControl, and I update MERControl, there is no guarantee that the changes made will be compatible. Developers will have to keep mods in sync or the game likely will become unstable.

Mgamerz commented 2 months ago

Implemented in 9.0