ModOrganizer2 / modorganizer

Mod manager for various PC games. Discord Server: https://discord.gg/ewUVAqyrQX if you would like to be more involved
http://www.nexusmods.com/skyrimspecialedition/mods/6194
GNU General Public License v3.0
2.19k stars 163 forks source link

[Feature Request] Add flag to mods containing hidden files #307

Closed RealAntithesis closed 4 years ago

RealAntithesis commented 6 years ago

The problem

Currently, the Conflicts tab within the mod information window only displays conflicts, but doesn't allow the user to resolve the conflict. Resolving the conflict currently requires the user to go to the Filetree tab to find the file and 'hide', or to locate the other conflicting mod, remembering what the file was, finding it, and then hiding. This is fairly clunky, adds more steps, is time consuming, and has the potential for rework and error if the user forgets what the individual conflicted file was.

Further, there is no indication (e.g. by flag) whether a mod has had one of its files hidden, so it is difficult for the user to then remember and reverse any changes later on.

Proposed Solution

  1. Add functionality to the Conflict tab for the user to hide the file in the current mod being overridden by another mod, or to hide the file in the mod doing the overriding. Together with the suggestion re: conflict detection within BSAs, this function should also be able to hide files in BSAs.

  2. Add additional flag to notify the user whether a mod has hidden files or not, and perhaps, another flag to notify whether a mod has files hidden but there are no longer any conflicts if that file was not hidden (e.g. if the source of the conflict has since been resolved - perhaps the user deleted that other conflicting mod or hid the other conflicting file but forgot to unhide the file in the current mod).

Environment

Version 2.1.1 (this is what I currently have installed).

Al12rs commented 6 years ago

I updated the conflicts tab to include the preview and the open/execute option and there is already the option to hide files that are provided by the current mod by right clicking and pressing hide. If you want to hide a file from another mod (the lower box) you first need to go to that mod information dialog, something you can do by double clicking on the conflict in question.

Now it should be clear that the main way to handle conflicts in MO2 is not by hiding files, but rather changing the priority of the mods having conflicts. Hiding files is only added to allow users to have more control in case they want some files from mod A and some files from mod B and not just all the files from mod A.

Another important thing to know is that hiding files in MO just means renaming the file and adding .MOHIDDEN at the end to avoid the game loading it, this is changing the contents of the mod so it's much preferable to instead solve conflicts by ordering the mods so that the mods remain intact.

Regarding your points though I actually agree that the hidden files system is lacking at the moment, mainly because there is no way of knowing if you have some hidden files in a mod. I have already plans to add a flag to mods containing hidden files, but first need to make sure to find a performance friendly way to check for them as you could have thousands of files.

Regarding your other suggested flag to say that there are no longer conflicts with that file, that would need much more work and cost performance. Using priority is much superior since you don't have this kind of problem after you change your load order, the original mods were not modified.

About your suggestion to hide files in BSAs, once you know what MO does to hide the files you can see how hiding a file inside a BSA is not really feasible. BSA conflicts are decided by the order of the plugins loading them, only after all the BSA have loaded the game will actually load the loose files, so a BSA will never be able to override loose files in MO2.