Jump to content

Location of Rules for Mod Conflicts


Cutleast
Go to solution Solved by Tannin42,

Recommended Posts

Where does Vortex save its rules for mod conflicts?
I already found the loadorder.txt but it only includes plugin files (.esp, .esl) and I already managed to read the deployment file (vortex.deployment.msgpack) in the staging folder. As in this thread mentioned, the loadorder.txt does not include mods without ESPs or ESLs. And "rebuilding" a mod load order from the deployment file does not work properly since the file only includes the winners of the conflicts.
My goal is to export a "modlist.txt" (as MO2 uses it, for example) in the correct order with all mods.

Edited by Cutleast
Link to comment
Share on other sites

  • Solution

Please don't confuse the two kinds of orders there are.

What we refer to as the "load order" is the order in which a game loads its plugins, the effect of this order depends on the game engine.

The "mod order" (or deploy order) is the order in which files are being put into the (virtual) file system, this order is game independent, it always decides which files (assets, plugins, scripts, ...) end up actually visible to the game, doesn't really matter to the mod order, what (if anything) the game does with the files.

 

In the mod order case the order only really matters between mods that actually conflict.

E.g. if you have one mod containing only one file named "foo.dds" and a second mod containing only one file named "bar.dds", it doesn't matter which one you deploy first, the end result is always an output directory with two separate files.

In many games, like the bethesda games, this is also true for the load order. Plugins are just a set of records with ids deciding what part of the game they modify, if both plugins are clean (no spurious changes) and modify completely independent areas of the game, the load order doesn't matter.

 

Vortex only stores rules, deciding conflicts (e.g. two mods, both containing "foo.dds").

This means for a given list of rules Vortex has there is a huge number of different flat mod orders that are all equivalent (produce the exact same output). And again, the same is kind of true for plugins in bethesda games.

 

The method by which you go from rules to a flat list is by using a so called "topological sort" which is usually part of any graph library so you shouldn't have to implement this, just get a graph library for your language, feed in the mods as nodes, rules as edges, call the toposort function and you have a flat list for MO2. Going the other way though is not trivial, you would have to identify conflicts then, for each conflict, generate a rule that reflects the order from the flat list, making the assumption all of it was intentional.

Link to comment
Share on other sites

I think the OP said they already found that in the deployment file, but it only contains the winners of any conflicts, which is all Vortex needs.

 

The info which preserves the full deploy order is probably part of the State info Tannin mentioned in the other thread. I'd imagine Vortex doesn't store it separately because anything without a conflict is irrelevant.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...