Skyrim Special Edition
0 of 0

File information

Last updated

Original upload

Created by

Izomiac

Uploaded by

izomiac

Virus scan

Some suspicious files

About this mod

A simple tool that identifies plugins in your ModOrganizer 2 load order that are good candidates to merge, then generates config files for zEdit/zMerge and optionally MatorSmash to simplify the process.

Requirements
Permissions and credits
Mirrors
Changelogs
Are you hundreds of mods above the 255 plugin load limit?  Have you run out of obvious mods to merge?  This tool scans your entire ModOrganizer 2 mod directory to identify which plugins are good candidates to merge and which would require extra steps.  From there you can make adjustments in your load order to consolidate these mods into merges, then generate config files for MatorSmash (optional) and zEdit/zMerge to easily create these merges.

Here's the basic workflow:
  • Download the archive and extract the .exe files (or the perl scripts and CPAN dependencies) somewhere.  The directory has to be writable, so don't do Program Files unless you're willing to change folder permissions manually.
  • Place bsarch.exe in the same directory (optional).
  • Open Koro 0.8.1.exe
  • If you didn't place bsarch.exe in the same folder then you'll have to tell Koro where it is.
  • Next you need to select your ModOrganizer.ini file, which should be in your Mod Organizer 2 folder.  Be sure you've enabled all of the necessary mods and disabled your machine generated patches first.  Koro doesn't load plugins named similarly to those that it autogenerates or their dependencies.  (E.g. "Merge 3", "Smash Merge 45", and "Smash Patch" would all be skipped, as would any patch that lists them as a master.)
  • Now wait while it scans every file in every mod to identify soft dependencies and such.  Smash patches, merged plugins, and dynamic patches that depend on them will generally not be loaded.  This takes a couple minutes on my PC, and I have two WD Black SN850's in RAID0, so you might be in for a very long wait if you have a lot of big mods and a slow harddrive.  After it loads the first time cache files are created to speed things up.  After Koro opens it compares every plugin with every other plugin to see if they conflict.  This takes a while (depends on number of plugins squared and how many records are in each), and the results will be cached as well.  Every function will be much faster once this cache is generated.
  • Eventually, the list of your mods will populate.  At the top of the screen you can see how many plugins you have and how many will be active if you perform the suggested merges.  After a few seconds every plugin will be compared to every other to determine their relationship.  Once the process completes you'll be able to move plugins.
  • Clicking a plugin will highlight its masters in purple, children in blue, significant conflicts in red, and merge groups in green.  To the left of the plugin names are symbols, a hyphen if a mod is easily mergeable, a dot if it's mergeable but has a NAVI record, a plus if it's mergeable only if you include its children in the same merge group, and two dots if it has both children and a NAVI record.
  • You can manually change whether a mod is considered mergeable or not.  Click "Toggle Mergeability" to toggle this.  If the plugin has special traits that complicate things, these traits will be flagged on the merge, to remind you to manually fix it later.  Some traits are ignored for some versions of the game, and one NAVI record can be included in each merge without having to do anything special.  This button is mostly useful for when a mod should theoretically be mergeable but zMerge keeps hanging on it, or something isn't right in the game.
  • If you have a patcher or similar that can fix a certain type of complication then you can select a mod with the complications you want to ignore and click "Ignore Flags".  For example, if you run the Synthesis patcher that fixes DAR files then you can select a plugin with the [DAR] flag and click the "Ignore Flags" button to make Koro ignore DAR files for all plugins.  This applies to every complication that your selection has and can't be undone without restarting Koro, so be careful.  [Type 43] / [Type 44] / [ESL] / [ESM] flags are ignored anyway, so this option doesn't work for them.
  • You can move plugins around by clicking/highlighting one, then clicking the various options.  Play around to get the hang of it, and click "Reset" to get back to your original load order.  Of note, plugins can't be moved above their master or below their children and most of the movement options won't let you move plugins in a way that changes which one wins a conflict.  "Up" and "Down" are the two exceptions, so reserve those buttons for situations when you know the conflict between two plugins is insignificant, or LOOT got the order wrong.
  • Click Auto Sort to active a genetic algorithm for automatically sorting your load order to minimize active plugins.  This AI is conservative, non-deterministic, and pretty simple so you may be able to improve on it with manual sorting.  Click Auto Sort again to stop it when you feel it's good enough.
  • The most conservative approach is to now click "Save" to save your load order, close Koro, refresh Mod Organizer 2, reenable all of your plugins, open LOOT, sort with LOOT, open Koro again, Auto-Sort, Save, open LOOT, etc. until LOOT and Koro can agree about the load order.  Theoretically Koro won't make changes that affect which mod wins a conflict, but it's possible that whoever wrote a specific LOOT rule knows something that I don't.  Or it's an overly simplistic rule that can be ignored.  There's no way to tell without playing the game and testing every mod feature.
  • If you want to create Smash Patches for each merge file then you can click "Smash".  This will prompt you to select the location of Patches.json, which is located in your MatorSmash directory under profiles.  You might want to save the old file first, old patches are not preserved.  If none of the plugins in the merge have conflicts then no Smash patch will be created for that group since it isn't necessary (or possible).
  • Click "Save" to save your load order then open MatorSmash.  MatorSmash will probably need to be opened several times to make all the patches, just right click and uncheck everything, highlight the mods included in the smash patches you want to create in that session (don't forget the 255 plugin limit), hit space to toggle them on, and right-click to enable their masters as well.  Scan the list after it opens and make sure they have an appropriate Smash setting as well.  The final smash patch can only be created after the merges are done.  Sometimes a Smash Patch is basically empty or can't be made because the conflicts are resolved by load order.  Just delete it in zMerge in the next step.
  • I like to open the Smash Patches in xEdit to make sure that the correct records are copied forward.  This is optional, and can be avoided if you take care to ensure your tags are all correct during the smashing process.  Mine never are.
  • To create the merge patches click "Merge" then select your merge.json file, which is in your zEdit folder under profiles.  You might want to save the old file first, as the old merge patches are not preserved.  If you made Smash Patches then these will be included in the merge.  Click "Save" again and open zEdit/zMerge.  You can click "Build Merges" at the bottom, but in my experience zMerge hangs after a few merges, so you have to use Task Manager to kill it, resave your merge.json file from Koro (sometimes zMerge randomizes the plugin order for merges), then click it again to pick up where it crashed.  Or you can build one merge, then exit and re-open zMerge.  This preserves your merge creation times and is a bit more stable, but can be quite tedious.  I have noticed some mods that won't merge despite several attempts for reasons that are unclear, so you may need to exit zMerge, manually flag them as unmergeable, resave your merge.json file, and try again.
  • Enable all the new merges in Mod Organizer 2, click "Save" in Koro, then refresh Mod Organizer 2 so it puts the new merges in the correct spot in your load order.
  • Open MaterSmash again to make your last Smash Patch for your entire load order.   This one will consist of the merges and all of your remaining plugins.
  • Repeat the entire process once you check the Nexus to see that someone posted some killer mod that you want to add to your load order.



 
 
 
If you manually made some mods mergeable you'll need to fix whatever the complication was.
  • MergeMapper will take care of a lot of complications for you.  These complications are ignored by default.
  • DAR files can be fixed with a synthesis patcher, but upgrading to OAR which has MergeMapper support is usually a better idea.
  • RaceMenu Presets have synthesis patchers to fix them.
  • Scripts can be recompiled in zMerge, but MergeMapper will handle this.
  • NAVI files can only be merged in the Creation Kit, so Koro will only include one NAVI record per merge by default.  (Skyrim combines all NAVI records from all plugins, but if they refer to the same area then that area gets overwritten.)  You can work around this by re-saving if you can get your merged plugin to open correctly in the Creation Kit.  If you do create a NAVI patch then you can click ignore for the NAVI flag and likely drop your number of active plugins by a fair amount.
  • Some sources say zMerge can handle string files, which are important for localization, and some say that was still a planned/incomplete feature when development went on hiatus, so merge localized plugins at your own risk.  I can only speak English (and poorly at that), so that issue didn't really come up in my load order and testing.
  • SKSE means there's a .dll file associated with the mod/plugin.  DLL means a .dll file specifically refers to the plugin, although that detection is basic at best.  You might be able to merge the former, but you definitely shouldn't try the latter.  (Well, I guess you could string hack the DLL with a resource editor, but that's getting pretty desperate for plugin slots.)
  • If the majority of your plugins are one of one form (e.g. 44 for Skyrim SE), and you have a few of the other (e.g. 43 for Skyrim LE) then the minority form gets flagged.  Koro points out the discrepancy, but otherwise doesn't treat them any differently.
  • Plugins flagged as masters are tagged ESM and those flagged as light are tagged ESL, regardless of their file extension.  This can be important if you have a heavy load order with a lot of references, or if you're running Skyrim AE and for some reason are merging plugins anyway.  Koro assumes your load order is correct, so it doesn't try to second-guess and put ESMs at the top or ESLs at the end.  Right now Koro will treat ESLs like any other mod and suggest merging them, which is probably pointless if you're on SE/AE.  I play VR so I haven't done much work on special ESL handling, but if that's a desired feature then let me know how you'd like it done.
  • Some plugins have an "Unknown" flag.  That means a text file references that plugin, but the type of file was not identified.  It could be nothing, such as an unconventionally named readme file mentioning the plugin's filename, or it might be some important type of uncommon or mod-specific dependency.  The best way to figure it out is to open the mod folder and take a look.  Personally, I list my synthesis patcher requirements in a text file with quotes around the filename so they don't get mistakenly flagged as mergeable,  and this shows up as an Unknown dependency.
 
 
I've designed this program with Skyrim VR in mind, but it should work with SE and AE just fine.  I don't know of any reason it wouldn't work for Skyrim LE, but I haven't done any testing. Version 0.8.1 and later don't hardcode Skyrim modules anymore, so there's a chance it'll work on any game that shares the same ESP format.  Let me know if you have any luck or come close.  I can't reasonably make it 32 bit though since the RAM usage for checking for conflicts on a mod list of reasonable size exceeds 4 GB.
 
If you figure out some trait that makes a plugin problematic to merge, and it's something that I can write into code, then let me know.

If you get crashes then delete the .json cache files and try again.  If you still get them then open Koro from the console and see if the console output gives any clue as to what happened.  If the GUI locks up then kill it from task manager and it'll be restarted after a few seconds.  You'll probably need to click the Smash button again if you're past that point in the process.