Closed Tajfun403 closed 2 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.
Implemented in 9.0
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
andcanmergeasnew
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:
assetupdate
, new updates to every single function could be distributed as separateaddtoclassorreplace
statements. This however makes the setup required for each update significant, and in case a lot of code was modified, it could quickly escalate into a prohibitive amount of statements.Solutions:
assetupdate
, rather than through several for each entry.