loot/fallout4

Service Rifle has an erroneous cyclical rule with its own compatibility patch

kaldrich001 opened this issue · 3 comments

I don't know if this is actually a LOOT issue or something with Vortex, since I couldn't find it in the master list.
When I installed the Service Rifle mod (www.nexusmods.com/fallout4/mods/32361), along with the 12.7mm Pistol patch (on the same page), Vortex gives me the error "Plugins not sorted because of cyclical rules", and when I click on More, it says that those two files have a cyclical rule between them. I've checked, and this isn't something I created myself by accident. I also opened them in FOEdit, and there's not a screwed-up dependency. The patch requires the original, but the original only requires the base game and DLC.
Like I said, I couldn't find anything about the mod in the master list, so I'm not sure what exactly is causing the issue, but I would appreciate any way of fixing it. I tried just adding in a rule saying the patch had to be loaded after, but it didn't do anything.

I'm assuming you used the ESL version of the patch. You would've received a message like this in LOOT (not sure how or if Vortex would display it):

This plugin is a light master and requires the non-master plugin "Example.esp". This can cause issues in-game, and sorting will fail while this plugin is installed.

The issue is that the game treats anything with the .esl extension as a master plugin (like .esm), but the patch has non-master plugins as masters, which causes a cyclic interaction since LOOT has a hard rule to load non-master files after master files & a hard rule to load plugins after their masters. It appears to be the case that the game will load these plugins by hoisting the non-master plugins before their dependents along with other master plugins, but hoisting those plugins much earlier than they should be loaded can cause load order issues & LOOT doesn't support this scenario yet (see loot/libloot#44), hence the cyclic interaction instead. Therefore, I'd highly recommend using the .esp version of the patch instead & just adding an ESL flag through xEdit or Wrye Bash.

That worked perfectly, thank you.

You're welcome!