Skip to content

v2.4.0

Compare
Choose a tag to compare
@Holt59 Holt59 released this 21 Feb 17:32
· 348 commits to master since this release
7084021

Collapsible separators

Huge thanks to Holt59 for implementing everything here!

New feature: collapsible separators!

  • Enabled by default when sorting by priority (ascending or descending).
    • Disabled when grouping by something else (Nexus ID or Category).
    • Disabled when sorting by any other column.
    • Can be globally disabled in the settings (Mod List tab).
  • Mods under separator are not indented on purpose while using collapsible separators.
  • When a separator is collapsed, it will visually reflect its children (most of these can be disabled in the settings):
    • The marker on the scrollbar will take the color of the children markers (combined).
    • The background of the separator will take the color of the children markers (combined).
    • The icons in the conflicts, content, flags and version column will reflect information from the children (combined).
    • Selecting a collapsed separator will highlight plugins and markers as if all the mods inside were selected.
  • When using collapsible separators, the 'Filter Separators' box in the filter list is disabled.
  • Shift+Enter on the mod list will now expand or collapse the current item or its parent when possible (with collapsible separators or in group by).
  • Alt+Click on a separator selects the separator and all its mods (even if collapsed).

New Game Support

  • Mod Organizer now comes with support for a couple of new games:
    • Cyberpunk 2077
    • Darkest Dungeon
    • Dark Messiah of Might & Magic
    • Dark Souls
    • Dragon Age: Origins
    • Dungeon Siege II
    • Kerbal Space Program
    • Kingdom Come Deliverance
    • Mirror's Edge
    • Mount & Blade II: Bannerlord
    • No Man's Sky
    • STALKER Anomaly
    • Stardew Valley
    • The Binding of Isaac: Rebirth
    • The Witcher 3: Wild Hunt
    • Zeus and Poseidon
  • Support for these games is still preliminary. Some parts of the user interface might show elements that are unused by the game.
  • Adding basic support for a new game can be as easy as filling in an INI file now. See https://github.com/ModOrganizer2/modorganizer-basic_games if you are interested.
  • Many thanks to Holt59 for his hard work on the infrastructure to support these non-Bethesda games, as well as erri120, EzioTheDeadPoet, Qudix, Silencer7111 and Syer10 for creating plugins for some of the games.

Performance

  • Greatly improved performance of the Downloads Tab when refreshing.
  • Moderate performance optimizations for "Preparing VFS".

Instance Management

  • Add a completely new instance management dialog to switch/create/rename/delete instances.
  • Comes with buttons to explore the paths of an instance and opening the modorganizer.ini file.
  • Instance deletion will now support deleting customized instance paths such as base directory/mods/downloads etc.
  • Users can now select which paths to keep or delete.
  • Instance creation comes with a new wizard like setup to choose the game, define paths and optionally log into nexus.

Mod list

  • Improved mod conflicts tab labels and tooltips.
  • Drag&Drop:
    • The UI should reflect more appropriately invalid action, e.g. drag&drop while not sorting by priority or trying to drop a file in an invalid mod.
    • The drop indicator now span the whole row instead of only the column.
    • With collapsible separators, you can drop onto a separator (collapsed or not) and the mod will drop at the end of this separator.
    • New drag&drop features:
      • You can now drag&drop from the download list to the mod list to install a mod at a specific priority.
      • You can now drag&drop external archives to the mod list to install a mod at a specific priority from an external file (only if the file is supported by MO2).
      • You can now drag&drop external folder to the mod list to copy them.
  • Page Up/Page Down can be used to go to next or previous mod in the information dialog.
  • Improve robustness of the mod list regarding priority.
  • Add context menu entries to send selected mods before first or after last conflicting mods (#697).
  • The "Install mod" context menu entry will now install the mod above/below the selected mod when sorting by priority (#1369).

Download list

  • Added "Open meta file" right-click option to Downloads tab (Thanks erri120).
  • Add keyboard navigation to the download list (#924):
    • Install selected mod: Enter
    • Remove selected mod / cancel download: Del
    • Pause / resume download: Space
  • When deleting a download, the filename is now displayed in the confirmation dialog (#1345).
  • Searching downloads now checks all the columns, added regex support.

Settings

  • The settings have been re-organized:
    • There is now a "Theme" tab where you can change MO2 global theme and colors.
    • All mod list related settings have been moved to "Mod List".
    • The "Steam" tab has been removed and its content moved to the "Workarounds" tab.
    • Non Nexus-related settings have been moved from "Nexus" to "Workarounds".
    • Old unused settings have been removed: hide unchecked plugins and load mechanism.
  • The "Plugins" tab of MO2 Settings has been improved.
  • MO2 plugins that cannot be used with the current game cannot be enabled.
  • A confirmation dialog is shown when trying to disable plugins that are required by other plugins.
  • Added option for using custom browser to open links.

Command Line

  • Overhaul Mo2 command line with new commands and options(backwards compatible with current stuff):
    • crashdump: replaces the old --crashdump.
    • refresh: causes the currently running instance of MO2 to refresh.
    • reload-plugin "A Plugin": causes the currently instance of MO2 to reload the plugin named "A Plugin".
    • run ...: use to run a program, file or a configured executable. See run --help for more information.
    • --pick: forces MO2 to show the select instance dialog on startup.
    • -i <instanceName>: overrides the instance to open.
    • -p <profileName>: overrides the profile to open.
    • --multiple: allow running a new MO2 process even if other MO2 processes are already running.
    • Warning! --multiple is unsupported and can create all sorts of weird problems. To minimize these:
        1. never have multiple MO processes running that manage the same game instance;
        1. if an executable is launched from an MO process, only this process may launch executables until all processes are terminated;
        1. it is recommended to close all MO processes as soon as multiple processes become unnecessary.

Miscellaneous

  • Ask whether BSA archives should be deleted after extraction during mod installation.
  • Made MO2 update dialog show changelogs from all the releases, not just the last one.
  • Made Ini Editor CTRL+F search wrap around the document instead of failing if cursor is after the match.
  • Cancelled installation are not considered failures anymore.
  • Add counter tooltips to general conflicts tab with more info such as total amounts of files, archive/loose and percentages.
  • Remember currently open tab in right panel when restarting MO2.
  • Moved the registry key from HKCU/Software/Tannin to HKCU/Software/Mod Organizer Team.
  • Show a warning when attempting to rename the active profile in Profile dialog.
  • Do not refresh Modlist when opening Profiles dialog.
  • Added Refresh button to toolbar and menu.
  • Added "Select" button in Profile dialog and double-click on profiles in the list.
  • Added delete key shortcut in the Saves tab.
  • Added "Open in Explorer" option to Saves tab right-click menu.
  • Added toggle for Nexus mod tracking integration.
  • The "Create file in mod" list is now searchable by typing in the box.
  • Improved blue conflict icons (thanks to BlueAmulet!).
  • Added new Morrowind Style by Trosski.
  • Ctrl+C on the mod list or the plugin list will now copy the names of the selected mods/plugins.
  • You can now select multiple lines in the log list and copy them using Ctrl+C.

Plugins

  • OMOD Installer: New installer for OMOD format mods (thanks to AnyOldName3!).
  • BAIN Wizard Installer: New installer for BAIN Wizard mods (thanks to Holt59!).
  • FOMOD Installer:
    • Ignore some missing folder warnings (unofficial NMM standard).
    • Use the first option when incorrect archives have multiple options with the same priority.
  • Bundle Installer:
    • Allow users to choose which mod to install when multiple mods are bundled together in a single archive.
    • Fix an issue where the installation file was not set properly in meta.ini when using bundled archives.
  • BAIN Installer:
    • Re-installing a BAIN mod will now select the previously chosen options by default when possible.
    • Improved normal BAIN mods package detection (ignore screenshots, docs etc.)
  • Manual Installer: Fix drag & drop issues in the manual installer (folders not merging, drag&drop not enabled).
  • Simple Installer: Improve simple archive detection (when archive contains data + images).
  • Bethesda game plugins:
    • Add a setting to allow installation of mods from Nexus SSE in MO2 instances for Skyrim or Enderal (disabled by default).
    • Recognize Nemesis_Engine as valid mod content.
  • Diagnose Basic: Properly ignore .log1, .log2, ... files in Overwrite if ignore logs is used.

Fixes

  • Fix some Mo2 metadata getting lost when reinstalling a mod.
  • Fix multi-selection mark converted/ignore missing data crashing or not working correctly with a filtered mod list.
  • Fix Executables shortcuts not getting hooked correctly when MO2 locking is disabled.
  • Fix executables crashing if they were installed in paths starting with the mods folder, but not actually in it: (C:\MO2\mods tools\bleh.exe).
  • Correctly mark downloads of replaced mods as uninstalled (archives of updated mods will now show up as uninstalled).
  • No longer mark downloads as uninstalled when removing a backup.
  • Fix an issue of the bulk update check for mods with invalid game sources, improved result logging.
  • Fix rare case of MO2 skipping mod files during refresh for conflict detection.
  • Fix BSA packer "Archive is not on writing mode" error when packing.
  • Fix archive conflicts not updating during refresh (NOTE! This is still bugged, two consecutive refreshes are required to properly update archive conflicts).
  • Fix advanced conflicts tab not respecting correct archive conflicts ordering.
  • Fix conflicts tabs sorting being case sensitive.
  • Fix a crash on startup with some particular windows locale settings.
  • Potentially Fix Network issues when using VPN or similar things.
  • Fixes for offline mode: skip nexus login, update check on mod install, sort plugins, etc.
  • Improved stability when installing large mods (3DNPCS).
  • Update mod count when creating/restoring backups.
  • USVFS:
    • Fix Explorer++ generating empty Device folders in Overwrite.
    • Fix a rare crash when a hooked process tried to terminate a child process.
    • Fix a rare crash (found with NifSkope) when trying to move to a larger shared memory instance.
    • Fix multiple processes sometimes having a different view of the virtual filesystem.
    • Symlinks/reparse points for directories should now work with Wine.
  • Running a shortcut to a program when UI locking is disabled should make the mods available correctly (#422)
  • Prevent MO2 from crashing when filtering category if a category is its own parent.
  • Fix MO2 crash on empty/corrupted BSAs when archive parsing is enabled.
  • Fix an issue where MO2 would not properly set the path for games when the executable is in a sub-folder (#1346).
  • Fix mod list shift selection weirdness caused by accidentally triggering an Edit operation while selecting.
  • Editing the priority of a plugin via the cell editor now properly writes the load order (#522).
  • Running executable using the command line should now properly update load order etc. after execution (#1094).
  • Fix mod name case handling to avoid issues when mod folders or modlist.txt are changed outside MO2.
  • Fix various issues and errors related to the plugin list priority locking.
  • Allow preview on files with uppercase extensions (.DDS).
  • The "Forced Load Libraries" dialog should now be correctly populated on first use.
  • Fix an issue where separator names would be used when installing a mod instead of archive name.
  • "Enable all"/"Enable selected" will not enable backups anymore.
  • Fix an issue where the priority of new mods or dragged mod would be set improperly.
  • Fix an issue where plugins could get disabled after refresh if the case of the name did not match.
  • Conflict markers should now more properly update after enabling/disabling mods.
  • Remove a spurious warning for supported games not available on Steam.
  • The update dialog for Mod Organizer 2 should now properly display the changelog from the current to the last version.

For MO2 plugin creators

  • Plugins can now be reloaded without restarting MO2 (see the reload-plugin command above).
    • Instructions on how to automatically reload plugins after modifying them when using Visual Studio Code can be found here.
  • Removed IPlugin::isActive and add IPlugin::requirements to specify requirements for plugins.
  • Callbacks registered by inactive plugins are not triggered anymore.
  • Installers:
    • Added pre-installation and post-installation callbacks to installer plugins.
    • Remove IInstallationManager::setUrl, use IModInterface::setUrl in onInstallationEnd instead.
  • IModInterface:
    • Plugins can now access (not modify) most meta-data of mods.
    • Plugins can now access the underlying data structure of a mod using fileTree().
    • Added methods to check the type of a mod (separator, backup, ...).
    • Added per-mod settings for plugins.
  • IModList:
    • New callback IModList::onModRemoved.
    • Added bulk-version of IModList::setActive.
  • IOrganizer:
    • New callbacks:
      • IOrganizer::onPluginStateChanged, IOrganizer::onPluginMoved.
      • IOrganizer::onProfileCreated, IOrganizer::onProfileRenamed, IOrganizer::onProfileRemoved.
    • IOrganizer::refreshModList() is now IOrganizer::refresh and is a complete refresh.
    • Added a refresh option to IOrganizer::waitForApplication.
    • Some methods from IOrganizer have been moved to IModList:
      • IOrganizer::modsSortedByProfilePriority is now IModList::allModsByProfilePriority.
      • getMod, removeMod and onModInstalled are now in IModList.
  • IPluginList: Added IPluginList::setPriority.
  • IPluginGame:
    • Removed savegameExtension functions and add listSaves.
    • Plugins now handle listing save games from a directory instead of simply providing the file extension.

Dependencies

Loot 0.15.2 -> 0.16.1
Boost 1.73 -> 1.75
OpenSSL 1.1.1g -> 1.1.1i
lz4 1.9.2 -> 1.9.3
PyQt 5.14.2 -> 5.15.2
Python 3.8.2 -> 3.8.7
sip 5.2.0 -> 5.5.0
Qt 5.14.2 -> 5.15.2
fmt 6.2.0 -> 7.1.3
spdlog 1.5.0 -> 1.8.2

Archive distribution

Starting from Mod Organizer 2.4.0, we decided to only distribute the archive version of Mod Organizer on GitHub. See #1191 for the reasons. The installer can be used to do everything that was possible with the archive version.

  • To upgrade an existing MO2 installation, simply point the installer to the existing MO2 installation folder.
  • To upgrade an existing MO2 portable instance, simply point the installer to the existing MO2 instance folder.
  • To create a new portable instance, point the installer to the location you want for the instance and choose "Portable Instance" when starting MO2.

The archive is only provided for automated new installations, such as the Wabbajack ones, and expert users. We will not provide support for archive installations anymore on the Discord server.