8000 Sort plugins closer to their masters · Issue #47 · loot/libloot · GitHub
[go: up one dir, main page]

Skip to content
  • Sort plugins closer to their masters #47

    Open

    Description

    @Qwinn1

    Proposal: Any mod that has a non-ESM master should be placed as close to it's master as possible.

    Reasoning: There are several advantages to this. When it comes to patches, I have detailed why proper patch placement is immediately after the last of its masters here, with an example of how not placing them that way can cause errors: https://www.nexusmods.com/skyrimspecialedition/articles/625

    I initially thought to request this only for conflict resolution patches, and identify those as mods with two or more non-vanilla masters, but it occurs to me that the principle holds even for non-patch mods that have only a single non-vanilla, non USSEP master. Take a mod like Enhanced Blood Textures. If you choose all the options in the installer, you'll get a host of sub-plugins (like "no screen blood"), all of which have a main EBT plugin as a master. Currently, LOOT will litter these sub-plugins all over the list, which is terrible from an organizational perspective, makes it impossible to synchronize installation and plugin order, and leads to possible conflicts with intervening mods that change the same record being overridden by a sub-plugin of EBT but not EBT itself. With my proposal, all the EBT plugins will be grouped together nice and neatly in the plugin list, which wouldn't just prevent conflicts, it would also just look better and be easier to review and adjust their position all together as a single unit, since they really should be considered and treated as such.

    Or take ACE (Armor and Clothing Extension), which has one master, WACCF (Weapons, Armor, Clothing and Clutter Fixes). The author - any author really - would certainly design these with the assumption that ACE would immediately overwrite WACCF in every shared record. An intervening mod C between the two that shared a record with them would be only partially overwritten by ACE, while possibly also partially overwriting WACCF in some other regard. This can only cause havoc. With ACE naturally placed immediately after WACCF, the combination will be either wholly overwritten by Mod C, or Mod C will wholly ovewrite WACCF+ACE, but there should generally exist no good circumstance in which any mod (other than patches for WACCF) should come between WACCF and ACE, partially overwriting one and being partially overwritten by the other. This is also a good example of why a patch for WACCF and some other Mod X should come immediately after WACCF, as placing that patch below ACE will revert ACE's intentional changes back to WACCF's values in any shared record.

    Note that in my methodology below, I'm going to treat this as if it should only apply to masters without the ESM flag checked, but it may be better to just exclude the vanilla ESMs and USSEP. I'm still trying to decide if there ARE any pros or cons in regards to whether it should just be vanilla ESMs and USSEP excluded, or all ESMs excluded. For now I'll just say all ESMs since it makes the below more readable. Please treat the words "ESP master" below to mean "non-ESM flagged" masters.

    Methodology:

    Pass 1: Go through all plugins and count the number of ESP masters each plugin has.
    Pass 2: Apply LOOT's sorting algorithm only to mods with zero ESP masters.
    Pass 3: Insert into the result of Pass 2 all mods with 1 ESP master, placing them immediately after its master or as close to it as strict metadata allows.
    Pass 4: Insert into the result of Pass 3 all mods with 2 ESP masters, placing them immediately after the last of its masters or as close to it as strict metadata allows.
    Pass X: Insert into the result of Pass X all mods with X-1 ESP masters, placing them immediately after the last of its masters or as close to it as strict metadata allows.

    Steps 3-X are really all one step, the point being to order all base mods with no masters first, then insert mods with 1 master, then insert mods and patches with 2 masters, etc. till you're done.

    By "strict metadata" I mean specific "Mod X must come after Mod Y" ordering, not just "Group B must come after Group A" ordering. If this turns out not to work for all mods that have only one master, I won't mind this proposal being reduced to only applying to actual conflict patches (2 or more masters), which should always be possible. I just decided to propose this for all mods with any masters until we can find a solid reason not to and because it might actually be easier to implement this way.

    Possible complications and solutions:

    Problem A) What if Mod A has a master B which itself has more masters than A does. This could be handled in two ways:

    1. During pass 1, build an expanded master list, where if Mod A has a master B, and master B itself has masters C and D, then C and D are also counted as masters of Mod A for the purpose of determining which pass it should be inserted in.
    2. Probably easier, if the current pass is attempting to insert a plugin whose master hasn't itself been inserted yet, simply skip Mod A in that current pass. Eventually master B will be inserted, and any mod A that was skipped can then be inserted in a later pass.

    Problem B) How do you order patches that would be inserted into the same position via this method?

    Take mods A, B and C. There exist patches for A-B, for B-C, and for A-C. My method would result in this:

    1: Mod A
    2: Mod B
    3: Patch A-B
    4: Mod C
    ?: Patch A-C
    ?: Patch B-C

    Those last two patches would be inserted in the same pass, and placed after C because that's the lower of their masters. How should they be ordered? Answer: They should be ordered by the position of their other master. Since Mod A should come before Mod B, then patch A-C should come before patch B-C.

    Please throw me any questions or arguments you have against this, I've given a lot of thought to it for a year now and I plan to monitor this request. To be honest, that LOOT doesn't do this is the only reason I have not used LOOT for actual ordering until now... so far I just use it to advise me of required patches. If it did this, I would be very likely to adopt and recommend its ordering highly.

    Activity

    1. Qwinn1 commented on Jan 19, 2019

      @Qwinn1
      Author

      Additional note: IF it is decided that this idea would only generally be applied to mods with 2 or more masters - in other words, just compatibility patches - then I would suggest that the only masters that should be ignored when counting masters to determine if a plugin is a patch are the vanilla masters. Even USSEP should be counted to determine if a mod is a patch in that circumstance. It's possible that a mod might have dependency on USSEP and have another master and not be a patch, but I think those would be significantly rarer than actual patches for USSEP (I publish over a dozen myself). and I still wouldn't see the harm in applying this ordering logic to those few instances anyway.

    2. MacSplody commented on Jan 19, 2019

      @MacSplody
      Member

      For reference this is the sorting for a large load order with the current masterlist

      Click to view picture ---
        0  0     Skyrim.esm
        1  1     Update.esm
        2  2     Dawnguard.esm
        3  3     HearthFires.esm
        4  4     Dragonborn.esm
      254 FE   0 UHDAP - en0.esp
      254 FE   1 UHDAP - en1.esp
      254 FE   2 UHDAP - en2.esp
      254 FE   3 UHDAP - en3.esp
      254 FE   4 UHDAP - en4.esp
      254 FE   5 UHDAP - MusicHQ.esp
        5  5     Unofficial Skyrim Special Edition Patch.esp
        6  6     BSAssets.esm
        7  7     BSHeartland.esm
        8  8     MajesticMountains_Landscape.esm
        9  9     BS_DLC_patch.esp
       10  a     Campfire.esm
       11  b     FISS.esp
       12  c     Wyrmstooth.esp
      254 FE   6 LSFX-SSE-Audiosettings.esp
       13  d     RelightingSkyrim_SSE.esp
       14  e     UnlimitedBookshelves.esp
       15  f     Audio Overhaul Skyrim.esp
       16 10     Book Covers Skyrim.esp
       17 11     Immersive Sounds - Compendium.esp
       18 12     Landscape Fixes For Grass Mods.esp
       19 13     Prometheus_No_snow_Under_the_roof.esp
       20 14     Cutting Room Floor.esp
       21 15     dD - Enhanced Blood Main.esp
       22 16     Weapons Armor Clothing & Clutter Fixes.esp
       23 17     MoonAndStar_MAS.esp
       24 18     SMIM-SE-Merged-All.esp
       25 19     EmbersHD.esp
       26 1a     Shadowmarks.esp
       27 1b     Gildergreen Regrown.esp
      254 FE   7 SkyUI_SE.esp
      254 FE   8 SRG Enhanced Trees Activator.esp
       28 1c     Veydosebrom - Grasses and Groundcover.esp
      254 FE   9 UIExtensions.esp
       29 1d     AddItemMenuSE.esp
       30 1e     AHZmoreHUD.esp
       31 1f     AmazingFollowerTweaks.esp
      254 FE   a aMidianBorn Book of Silence.esp
       32 20     Andromeda - Unique Standing Stones of Skyrim.esp
       33 21     Animallica.esp
       34 22     Relationship Dialogue Overhaul.esp
      254 FE   b Unique Region Names.esp
       35 23     Castle Volkihar Rebuilt.esp
       36 24     JKs Skyrim.esp
       37 25     Undriel_QuaintRavenRock.esp
       38 26     Ashbound.esp
       39 27     Better Dynamic Snow.esp
       40 28     TrueStormsSE.esp
       41 29     Obsidian Weathers.esp
       42 2a     skyBirds_SSE.esp
       43 2b     BirdsOfSkyrim_SSE.esp
      254 FE   c Particle Patch for ENB SSE.esp
       44 2c     SLO_StoneWalls.esp
       45 2d     Thunderchild - Epic Shout Package.esp
       46 2e     moonpath.esp
       47 2f     JRMoonpathtoElsweyrPatch.esp
       48 30     Point The Way.esp
       49 31     Holidays.esp
       50 32     Rorikstead.esp
       51 33     JKs Skyrim_Rorikstead_Patch.esp
       52 34     JKs Skyrim_Holidays_Patch.esp
      254 FE   d Particle Patch - RLS Patch.esp
       53 35     BirdsAndFlocks_SSE.esp
       54 36     MajesticMountains.esp
      254 FE   e Undriel_QuaintRavenRock Ashbound.esp
       55 37     ZIA_Complete Pack_V4.esp
       56 38     Wintersun - Faiths of Skyrim.esp
       57 39     BetterDynamicSnow_PATCH.esp
       58 3a     SkyrimSewers.esp
       59 3b     Skyrim Better Roads and Bridges - All In One - Merged.esp
       60 3c     Run For Your Lives.esp
       61 3d     Tel Mithryn.esp
       62 3e     Keld-Nar.esp
       63 3f     Dolmen Ruins.esp
       64 40     Darkwater Crossing.esp
       65 41     Dawnstar.esp
       66 42     Serana Dialogue Edit.esp
       67 43     Inigo.esp
      254 FE   f Tel Mithryn Ashbound.esp
       68 44     Skaal Village.esp
       69 45     JKs Skyrim_Dawnstar_Patch.esp
       70 46     Bring Out Your Dead.esp
      254 FE  10 NSUTR_bugfixes.esp
      254 FE  11 NSUTR_groundsnow_mesh_fixes.esp
       71 47     JKs Skyrim_Dawnstar_BOYD_NSUTR_Patch.esp
       72 48     Shor's Stone.esp
       73 49     Atlas Legendary OCS.esp
      254 FE  12 Better Dynamic Snow - NSUTR Patch.esp
      254 FE  13 Landscape For Grass Mods JK'S Skyrim.esp
       74 4a     Ivarstead.esp
       75 4b     JKs Skyrim_BOYD_Patch.esp
       76 4c     FarmhouseChimneys.esp
       77 4d     JKs Skyrim_Ivarstead_Patch.esp
       78 4e     Provincial Courier Service.esp
       79 4f     frozenintime.esp
       80 50     Helarchen Creek.esp
       81 51     Kynesgrove.esp
       82 52     Telengard.esp
       83 53     Whistling Mine.esp
       84 54     Soljund's Sinkhole.esp
       85 55     Karthwasten.esp
       86 56     JKs Skyrim_Skaal Village_Patch.esp
      254 FE  14 Landscape Fixes For Grass mods - Cutting Room Floor Locations.esp
       87 57     Dragon Bridge.esp
       88 58     JKs Skyrim_Dragon Bridge_Patch.esp
       89 59     ForgottenCity.esp
      254 FE  15 Relighting Skyrim - JK's Skyrim Patch.esp
       90 5a     JKs Skyrim_Cutting Room Floor_Patch.esp
       91 5b     WheelsOfLull.esp
      254 FE  16 No Snow Under The Roof - CRF Patch.esp
      254 FE  17 Landscape For Grass Mods - Moon and Star PATCH.esp
       92 5c     Summermyst - Enchantments of Skyrim.esp
       93 5d     Lore Weapon Expansion.esp
       94 5e     Skyshards.esp
      254 FE  18 BosmerArmorMATY743.esp
       95 5f     WarmongerArmory_DLC.esp
       96 60     WarmongerArmory_Vanilla.esp
       97 61     WarmongerArmory_LeveledList.esp
      254 FE  19 WACCF Warmonger Armory Patch.esp
       98 62     CommonClothes.esp
       99 63     Guard Dialogue Overhaul.esp
      100 64     Unique Uniques.esp
      254 FE  1a WACCF Unique Uniques Patch.esp
      254 FE  1b ZIA_WACCF_Patch.esp
      254 FE  1c Qw_WACCF_AOS Patch.esp
      254 FE  1d Qw_WACCF_CRF Patch.esp
      254 FE  1e Audio Overhaul Skyrim - CRF Patch.esp
      254 FE  1f Quaint Raven Rock - USSEP Patch.esp
      101 65     Lucien.esp
      254 FE  20 NSUTR_improvements.esp
      102 66     The Paarthurnax Dilemma.esp
      103 67     Darkend.esp
      254 FE  21 Audio Overhaul Skyrim - Darkend Patch.esp
      254 FE  22 Audio Overhaul Skyrim - Enhanced Blood Patch.esp
      254 FE  23 Audio Overhaul Skyrim - GDO Patch.esp
      254 FE  24 Audio Overhaul Skyrim - Immersive Sounds Patch.esp
      254 FE  25 Improved Traps.esp
      254 FE  26 Audio Overhaul Skyrim - Improved Traps Patch.esp
      254 FE  27 Audio Overhaul Skyrim - Thunderchild Patch.esp
      254 FE  28 Audio Overhaul Skyrim - Unique Uniques Patch.esp
      254 FE  29 Audio Overhaul Skyrim - Unique Uniques & WACCF Patch.esp
      254 FE  2a BDS - MM Patch.esp
      254 FE  2b Unique Region Names - CRF Patch.esp
      104 68     FarmhouseChimneysArthmoorVillagesMerged.esp
      105 69     DeathIsHighlyOverrated.esp
      254 FE  2c Landscape For Grass Mods - Arthmoor's Dragon Bridge PATCH.esp
      254 FE  2d Landscape For Grass Mods -Provincial Courier PATCH.esp
      254 FE  2e Landscape For Grass Mods Arthmoor's Shor's Stone PATCH.esp
      254 FE  2f Helarchen Creek - No Snow Under the Roof.esp
      106 6a     Tel Mithryn Prison.esp
      254 FE  30 Relighting Skyrim - Quaint Raven Rock Patch.esp
      254 FE  31 NSUTR - USSEP Patch.esp
      254 FE  32 Unique Region Names - Inigo Patch.esp
      107 6b     FarmhouseChimneysHelarchen+MaS.esp
      254 FE  33 Landscape For Grass Mods - Arthmoor's Rorikstead PATCH.esp
      254 FE  34 Unique Region Names - MAS Patch.esp
      254 FE  35 Whistling Mine - No Snow Under the Roof.esp
      254 FE  36 Forgotten City - USSEP Patch.esp
      108 6c     VioLens SE.esp
      254 FE  37 Qw_BeyondSkyrimBruma_USSEP Hotfix Patch.esp
      254 FE  38 Unique Region Names - Keld-Nar Patch.esp
      254 FE  39 JKs Skyrim_skyBirds_Patch.esp
      109 6d     JKs Skyrim_Thunderchild_Patch.esp
      254 FE  3a JKs Skyrim_Unique Region Names_Patch.esp
      254 FE  3b Obsidian Weathers - RLS Patch.esp
      254 FE  3c SkyBeRoads - USSEP Patch.esp
      254 FE  3d Unique Region Names - BDS Patch.esp
      254 FE  3e Unique Region Names - BS Bruma Patch.esp
      254 FE  3f Unique Region Names - Helarchen Creek Patch.esp
      254 FE  40 Unique Region Names - Dragon Bridge Patch.esp
      254 FE  41 Inigo - USSEP Patch.esp
      254 FE  42 JKs Skyrim_Birds Of Skyrim_Patch.esp
      254 FE  43 JKs Skyrim_Farmhouse Chimneys_Patch.esp
      254 FE  44 JKs Skyrim_Ivarstead_Holidays_Patch.esp
      254 FE  45 JKs Skyrim_Obsidian Weathers_Patch.esp
      254 FE  46 SLO Stone Walls - skyBirds Patch.esp
      254 FE  47 Unique Region Names - BOYD Patch.esp
      254 FE  48 Unique Region Names - Kynesgrove Patch.esp
      254 FE  49 Unique Region Names - Provincial Courier Service Patch.esp
      254 FE  4a Bent Pines.esp
      254 FE  4b Better Dynamic Ash.esp
      254 FE  4c Better Dynamic Snow - Correction Patch.esp
      254 FE  4d Better Dynamic Snow - NSUTR & CRF Patch.esp
      254 FE  4e BetterDynamicSnow_BEYOND_SKYRIM.esp
      254 FE  4f BetterShapedWeaponsLW-XB.esp
      254 FE  50 BlendedRoads.esp
      254 FE  51 BlendedRoads - SMIM Patch.esp
      110 6e     Brigandage.esp
      254 FE  52 BS Bruma - Majestic Mountains Patch.esp
      111 6f     BS Bruma - Undeath Patch.esp
      254 FE  53 BS Bruma - VioLens Patch.esp
      254 FE  54 Darkend - Hotfix.esp
      254 FE  55 Darkwater Crossing - Inigo Patch.esp
      254 FE  56 DivinePunishmentForArrowsToTheKnee.esp
      254 FE  57 EBT - skyBirds Patch.esp
      254 FE  58 EmbersHD - Campfire Patch.esp
      254 FE  59 EmbersHD - Forges.esp
      254 FE  5a EmbersHD - Lava Craters.esp
      254 FE  5b Ultimate HD Fire Effects.esp
      254 FE  5c EmbersHD - UHDFE Patch.esp
      112 70     JRMoonpathBrumaPatch.esp
      254 FE  5d ESO Skyshards - BSBruma.esp
      254 FE  5e ESO Skyshards - Wyrmstooth.esp
      254 FE  5f ETHEREAL CLOUDS.esp
      113 71     Extended Encounters.esp
      114 72     Extended UI.esp
      254 FE  60 Fences of Skyrim.esp
      115 73     Footprints.esp
      254 FE  61 Frankly HD Stormcloaks and Guards.esp
      116 74     FranklyHDImperialArmorsAndWeapons.esp
      254 FE  62 frozenintime - Snow Textures.esp
      254 FE  63 HD Road Signs.esp
      117 75     PrvtI_HeavyArmory.esp
      254 FE  64 Heavy Armory - USSEP Patch.esp
      254 FE  65 High Poly Ferns.esp
      254 FE  66 High Poly Project.esp
      254 FE  67 Holidays - USSEP Patch.esp
      254 FE  68 Holidays - USSEP & JKs Skyrim Patch.esp
      254 FE  69 RDO - iAFT Patch.esp
      254 FE  6a iAFT - USSEP Patch.esp
      254 FE  6b RDO - CRF + USSEP Patch.esp
      254 FE  6c iAFT - DLC Patch.esp
      118 76     iHUD.esp
      254 FE  6d Qw_ISC_USSEP Patch.esp
      254 FE  6e Qw_WACCF_ISC Patch.esp
      254 FE  6f Immersive Sounds - DLC Patch.esp
      254 FE  70 Immersive Sounds - Enhanced Blood Patch.esp
      254 FE  71 Immersive Sounds - Option - Classic RPG Healing.esp
      254 FE  72 Immersive Sounds - Option - Demonic Draugr.esp
      254 FE  73 Immersive Sounds - Option - Dungeon Ambiance.esp
      254 FE  74 Immersive Sounds - Option - Firebolt Alternate.esp
      254 FE  75 Immersive Sounds - Option - Sensible Storm Atronachs.esp
      254 FE  76 Immersive Sounds - Option - Well-Mannered Wolves.esp
      254 FE  77 Indistinguishable VANILLA Billboards.esp
      254 FE  78 Inigo - CRF Patch.esp
      254 FE  79 Inigo - RLS Patch.esp
      254 FE  7a JRBrumaPatch.esp
      254 FE  7b JRCRFPatch.esp
      254 FE  7c JRDwarvenMudcrabPatch.esp
      119 77     Lucien-MoonandStar-Patch.esp
      120 78     Lucien-Moonpath-Patch.esp
      121 79     LupineWerewolfPerkExpansion.esp
      254 FE  7d MajesticMountains_LOD.esp
      254 FE  7e MajesticMountains_SMIM.esp
      254 FE  7f Mining Makes Noise.esp
      122 7a     mintylightningmod.esp
      123 7b     MoonAndStar_ImmersionPatch.esp
      254 FE  80 Noble Skyrim.esp
      254 FE  81 Noble Skyrim - SMIM Patch.esp
      254 FE  82 Nordic Snow.esp
      254 FE  83 Obsidian Weathers MCM.esp
      254 FE  84 Obsidian_TS_Patch_Spectral.esp
      254 FE  85 Obsidian_TS_AOS_Patch.esp
      254 FE  86 Particle Patch - DIHO Patch.esp
      254 FE  87 Particle Patch - Birds and Flocks Patch.esp
      254 FE  88 Qw_RelightingSkyrim_CRF Patch.esp
      254 FE  89 Particle Patch - Skyrim Sewers Patch.esp
      254 FE  8a Particle Patch - Skyshards Patch.esp
      254 FE  8b Particle Patch - Thunderchild Patch.esp
      254 FE  8c Particle Patch - Wintersun Patch.esp
      254 FE  8d PELTAPALOOZA.esp
      254 FE  8e Perk Points at Skill Levels 50-75-100.esp
      124 7c     Potions.esp
      254 FE  8f Potions Patch.esp
      254 FE  90 Qw_AOS_USSEP Patch.esp
      254 FE  91 Qw_BookCoversSkyrim_CRF Patch.esp
      254 FE  92 RUSTIC SOULGEMS - Unsorted.esp
      254 FE  93 Qw_RusticSoulgemsUnsorted_ISC Patch.esp
      254 FE  94 Qw_WACCF_BSHeartland Patch.esp
      254 FE  95 RaceMenu.esp
      254 FE  96 RDO - Castle Volkihar Rebuilt Patch.esp
      254 FE  97 RDO - iAFT & USSEP Patch.esp
      254 FE  98 RDO - Serana Dialogue Edit Patch.esp
      254 FE  99 Relighting Skyrim - Birds and Flocks Patch.esp
      254 FE  9a Relighting Skyrim - Castle Volkihar Rebuilt Patch.esp
      254 FE  9b Relighting Skyrim - Tel Mithryn Patch.esp
      254 FE  9c RLS - Wintersun Patch.esp
      254 FE  9d RUGNAROK.esp
      254 FE  9e RUSTIC ARMOR AND WEAPONS.esp
      254 FE  9f RUSTIC AZURA'S STAR.esp
      254 FE  a0 RUSTIC CLOTHING.esp
      254 FE  a1 RUSTIC DAEDRA.esp
      254 FE  a2 RUSTIC DEATH HOUND AND GARGOYLE.esp
      254 FE  a3 RUSTIC ELDERSCROLL.esp
      254 FE  a4 RUSTIC FROSTBITE SPIDER.esp
      254 FE  a5 RUSTIC SPRIGGAN.esp
      254 FE  a6 RUSTIC SPRIGGAN EFFECTS.esp
      254 FE  a7 RUSTIC WINDOWS.esp
      254 FE  a8 SkyHUD - iHUD Patch.esp
      254 FE  a9 Skyland.esp
      254 FE  aa Skyland - Blended Roads Patch.esp
      254 FE  ab Skyrim 3D Gildergreen.esp
      254 FE  ac Skyrim Realistic Overhaul - Part 1.esp
      254 FE  ad Skyrim Realistic Overhaul - Part 2.esp
      254 FE  ae Skyrim Realistic Overhaul - Part 3.esp
      254 FE  af Skyrim Realistic Overhaul - Update.esp
      254 FE  b0 SkyrimIsWindy.esp
      254 FE  b1 SkyrimIsWindy - EVT patch.esp
      254 FE  b2 SMIM-Bruma-Patch.esp
      254 FE  b3 Smooth Sky Mesh.esp
      254 FE  b4 Symphonies Of Skyrim.esp
      254 FE  b5 Symphonies of Skyrim - BS Bruma Patch.esp
      254 FE  b6 Symphonies of Skyrim - UHDAP Patch.esp
      254 FE  b7 Thief skills rebalance for Ordinator.esp
      254 FE  b8 Thunderchild - USSEP Patch.esp
      254 FE  b9 Thundering Shouts.esp
      254 FE  ba TravelRobes.esp
      125 7d     Tribunal Robes for SSE.esp
      254 FE  bb TrueStorms_MintyLightning_Patch.esp
      254 FE  bc Ultimate HD Candle Flames.esp
      254 FE  bd Unique Region Names - Darkwater Crossing Patch.esp
      254 FE  be Unique Region Names - Rorikstead Patch.esp
      254 FE  bf Unique Region Names - Tel Mithryn Prison Patch.esp
      254 FE  c0 Unique Region Names - Telengard Patch.esp
      254 FE  c1 Unlimited Bookshelves - AOS Patch.esp
      254 FE  c2 Unlimited Bookshelves - CRF Patch.esp
      254 FE  c3 Unlimited Bookshelves - iAFT Patch.esp
      254 FE  c4 Unlimited Bookshelves - ISC & WACCF Patch.esp
      254 FE  c5 Unlimited Bookshelves - ISC Patch.esp
      254 FE  c6 Unlimited Bookshelves - WACCF & AOS Patch.esp
      254 FE  c7 Unlimited Bookshelves - WACCF & Unique Uniques Patch.esp
      254 FE  c8 Unlimited Bookshelves - WACCF Patch.esp
      254 FE  c9 Unlimited Bookshelves - XxA_PxX Patch.esp
      126 7e     Visible Favorited Gear.esp
      254 FE  ca WACCF - Frankly HD Imperials Patch.esp
      254 FE  cb WACCF - iAFT Patch.esp
      254 FE  cc WACCF Heavy Armory Patch.esp
      254 FE  cd Warmonger Armory - CRF Patch.esp
      254 FE  ce Warmonger Armory - Tel Mithryn Prison Patch.esp
      254 FE  cf WGT.esp
      254 FE  d0 WheelsOfLull - Forgotten City - Bruma Patch.esp
      254 FE  d1 WheelsOfLull Patch - Assets.esp
      254 FE  d2 Wintersun - BCS Patch.esp
      254 FE  d3 Wintersun - USSEP Patch.esp
      127 7f     WondersofWeather.esp
      254 FE  d4 WyrmstoothThunderchildPatch.esp
      254 FE  d5 ZIA - CRF Patch.esp
      254 FE  d6 ZIA - ISC & WACCF Patch.esp
      254 FE  d7 ZIA - Unlimited Bookshelves & CRF Patch.esp
      254 FE  d8 ZIA - Unlimited Bookshelves & ISC & WACCF.esp
      254 FE  d9 ZIA - Unlimited Bookshelves & WACCF Patch.esp
      254 FE  da ZIA - Unlimited Bookshelves Patch.esp
      254 FE  db ZIA - WACCF & AOS Patch.esp
      128 80     Imperious - Races of Skyrim.esp
      129 81     Ordinator - Perks of Skyrim.esp
      254 FE  dc Unique Region Names - Ordinator Patch.esp
      130 82     Apocalypse - Magic of Skyrim.esp
      131 83     Apocalypse - Ordinator Compatibility Patch.esp
      254 FE  dd Ordinator - Beyond Skyrim Bruma Patch.esp
      254 FE  de Qw_Ordinator_AOS Patch.esp
      132 84     Sacrosanct - Vampires of Skyrim.esp
      133 85     Wildcat - Combat of Skyrim.esp
      134 86     J42_ArmorRatingRedux.esp
      135 87     Alternate Start - Live Another Life.esp
      254 FE  df Unique Region Names - Alternate Start Patch.esp
      136 88     FarmhouseChimneysLAL+CRF.esp
      254 FE  e0 Landscape Fixes For Grass mods - Alternate start Locations.esp
      254 FE  e1 Particle Patch - Alternate Start Patch.esp
      254 FE  e2 RDO - Alternate Start Patch.esp
      137 89     Open Cities Skyrim.esp
      254 FE  e3 Audio Overhaul Skyrim - Obsidian Weathers & OSC Patch.esp
      254 FE  e4 Audio Overhaul Skyrim - Open Cities Patch.esp
      254 FE  e5 Open Cities Skyrim - Holidays.esp
      138 8a     JKs Skyrim_Open Cities_Patch.esp
      254 FE  e6 OCS + Skyrim Sewers.esp
      254 FE  e7 JKs Skyrim_Open Cities_Holidays_Patch.esp
      254 FE  e8 Unique Region Names - OCS Patch.esp
      254 FE  e9 Unique Region Names - OCS & Skyrim Sewers Patch.esp
      254 FE  ea Unique Region Names - JK's Skyrim & OCS & Holidays.esp
      254 FE  eb JKs Skyrim_Open Cities_CRF_Patch.esp
      254 FE  ec Obsidian Weathers - OCS Patch.esp
      254 FE  ed Particle Patch - OCS Patch.esp
      254 FE  ee OCS + CRF.esp
      254 FE  ef OCS + MAS.esp
      254 FE  f0 Particle Patch - OCS & CRF Patch.esp
      254 FE  f1 Relighting Skyrim - OCS Patch.esp
      254 FE  f2 SMIM - Open Cities Patch.esp
      139 8b     RealisticWaterTwo.esp
      254 FE  f3 Unique Region Names - RWT Patch.esp
      254 FE  f4 RealisticWaterTwo - Waves.esp
      254 FE  f5 Unique Region Names - RWT Waves Patch.esp
      254 FE  f6 RealisticWaterTwo - Open Cities.esp
      254 FE  f7 JKs Skyrim_RWT_Patch.esp
      254 FE  f8 RealisticWaterTwo - Ashbound Patch.esp
      254 FE  f9 RealisticWaterTwo - Quaint Raven Rock Patch.esp
      254 FE  fa Unique Region Names - RWT & OCS Patch.esp
      254 FE  fb Unique Region Names - RWT & MAS Patch.esp
      254 FE  fc Final Patch.esp
      254 FE  fd Holidays - RWT Patch.esp
      254 FE  fe Particle Patch - RWT Patch.esp
      254 FE  ff RealisticWaterTwo - Beyond Skyrim Bruma.esp
      254 FE 100 RealisticWaterTwo - Option - Extended Ambiance.esp
      254 FE 101 RealisticWaterTwo - Telengard Patch.esp
      254 FE 102 RealisticWaterTwo - Wyrmstooth.esp
      254 FE 103 RealisticWaterTwo - Waves - Wyrmstooth.esp
      254 FE 104 Unique Region Names - CRF & RWT Patch.esp
      254 FE 105 Unique Region Names - RWT & Ashbound Patch.esp
      254 FE 106 Sum_WACCF_Patch.esp
      140 8c     Bashed Patch, 0.esp
      254 FE 107 Modern Brawl Bug Fix.esp
      

    3. Ortham commented on Jan 19, 2019

      @Ortham
      Member

      Some initial thoughts on this:

      Trying to load plugins as close as possible to their masters seems like a generally good idea, it's a more specific expression of the "load plugins as early as possible" idea. There are plenty of exceptions, e.g. map mods, but LOOT already handles such cases through groups and load after metadata.

      I'm not sure why this idea would need to exclude ESMs or a subset of them. Could you elaborate? I'd prefer a solution that doesn't require special-casing.

      I don't think it's useful to try to distinguish patches from other plugins based on the number of masters they have: I've come across plenty of patches with only one non-official master (even a few with none) and plenty of non-patches with more than one non-official master. I can see some utility in treating patches differently, but I doubt the identification heuristic would be accurate enough to be worth it.

      As for methodology: how do you see the close-to-masters constraint fitting in with the existing constraints, i.e. which should it take priority over, which should override it, which does it sit equally with? See https://loot-api.readthedocs.io/en/latest/api/sorting.html for an overview of the current process, if that helps.

      That's all for now, because I have bugs to fix.

    4. Qwinn1 commented on Jan 21, 2019

      @Qwinn1
      Author

      Well, I don't see any point in counting the official masters, given that all mods can have all of them or just Skyrim.esm, and how many they have doesn't seem relevant to where they should be loaded.

      USSEP is also a mod that lots and lots of other mods can have as a dependency that doesn't seem relevant to positioning. Let's say RW2 had it as a dependency just because it used some fixed asset in it... would that mean it should load higher? I don't think so. I see USSEP as pretty much an extension of the vanilla masters for these purposes... just as I would see YUP as an extension of the official FNV masters.

      The idea of excluding all ESMs was in fact just a way to see if the above could be accomplished without special-casing.

      If there's general agreement that this should work for all other masters and there's no reason to treat patches differently, which I agree with, I don't see a point in arguing for the idea of using number of masters to identify them.

      As for the constraints, specific mod A must come after some other mod B rules should definitely take precedence... and late loading group is pretty important... but beyond that I can't see any other group constraint that seems more important.

    5. Qwinn1 commented on Jan 30, 2019

      @Qwinn1
      Author

      Actually, it just occurred to me - I may have WAY overthought the methodology. Presuming LOOT is already smart enough to not place a plugin above its master, and I believe it already is.... can't we get the entire desired behavior by just treating any plugin with a non-vanilla (and maybe non-fixpack) master as an Early Loader?

    6. changed the title [-]Using Masters To Inform Plugin Ordering[/-] [+]Sort plugins closer to their masters[/+] on Apr 27, 2023
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Metadata

    Metadata

    Assignees

    No one assigned

      Labels

      No labels
      No labels

      Type

      No type

      Projects

      No projects

        Milestone

        No milestone

        Relationships

        None yet

        Development

        No branches or pull requests

        Issue actions

        0