Nexus-Mods / NexusMods.App

Home of the development of the Nexus Mods App
https://nexus-mods.github.io/NexusMods.App/
GNU General Public License v3.0
961 stars 47 forks source link

Epic: Load Order/Conflict Management #1812

Open LukeNexusMods opened 2 months ago

LukeNexusMods commented 2 months ago

For games that require load order we will need to develop drag and drop load order but also an automatic option for novice modders.

erri120 commented 2 months ago

We had some discussions about this a while ago in February, but I don't know if we ever wrote something down.

Similar to the term "mods", the term "load order" is overloaded and ambiguous. The confusion mostly comes from Bethesda games and their mod managers. We tried to find better names, "priority", "layers", and others were considered, but we never wrote anything down.

This issue should be concrete, as there are two kinds of "orders":

First, there are file conflicts in the app. These are resolved when synchronizing the loadout to disk. We flatten the entire loadout into a list of files. If there are two files with the same target path in the loadout, we need to select a "conflict winner". As default, the app currently prevents game files from winning over other files.

File conflicts are universal to the app, and apply to every game. As such, file conflict management is something that needs to be exposed to the user.

The second "order" is game dependent logic. Stardew Valley has SMAPI mods, most Bethesda games have plugins, and other games have other kind of systems.

It's important to distinguish between file conflicts inside the app, and the game-specific logic. The game doesn't know it's being managed by a mod manager. All it sees are files on disk and an "order" in which to load assets.

LukeNexusMods commented 2 months ago

Thanks Florian

Ive added it in here for road mapping at the moment. It will absolutely be refined and concrete before any work is started.

Al12rs commented 2 months ago

I'd like to have a design meeting were we properly discuss options for load order management (rules, flat list, graphs, any other ideas) when I'm back and before we get more into this.

Defining pros and cons of approaches and writing things down as an ADR if we reach any conclusions.

This is an important topic, we should record reasons and conclusions and conser opening a discussion with the community to get feedback.