Skip to content

Mod Organizer 2

frostworx edited this page Sep 10, 2021 · 44 revisions

!!! some functions are currently WIP - see here !!!

Mod Organizer 2 (MO2) is a mod manager for multiple games (mostly for mods from nexusmods).

It is the predecessor of the Vortex Mod Manager and is still actively developed by the open source community.

Mod-Organizer 2

site-note: stl also has built-in support for Vortex Mod Manager

Features

MO2 is windows only, but stl tries to close this gap as good as possible by seamlessly integrating it using Wine/Proton without any configuration required.

All processes are zero-config and fully automated:

  • download of the latest version
  • installation into an own Wineprefix/Compatdata
  • find all supported installed games from Steam
    • by autogenerating an own libraryfolders.vdf pointing to all real Steam Library Paths
    • by creating registry entries pointing to to game dirs (if required - most Bethesda games)
  • create and update symlinks for all found game config directories of all found games in the SteamUser directory
  • create initial MO2 instances for every found game
  • create and update the nxm-protocol mime type for directly opening nxm with MO2 (renaming that from Vortex when found)
  • every supported game can start MO2 with its own instance directly from steam before starting the game
    • either by starting the MO2 gui
    • or by silently load the game with MO2 mods enabled

(a successful test via stl mo2 s (the command for starting MO2) without any stl or MO2 installation or configuration did all steps above automatically and preconfigured all 26 MO2 supported games installed here ootb, but you're welcome to find and report bugs of course :))

Installation

MO2 can be installed via Command Line by using

  • stl mo2 i (to only install it)
  • stl mo2 s (to install, configure all above automations and start it directly)

Starting

MO2 can be started either in regular Game Mode or in Standalone Mode

Quick Start

Game Mode

When MO2 is started through a regular game launch via Steam, it is started in "Game Mode", means

  • if using the gui MO2 Mode, the game can be started from inside the MO2 gui,
  • if using the silent MO2 Mode, the game is started automatically with the enabled mods applied silently using MO2

The game mode can be enabled by setting the MO2 Mode to either gui or silent per game in the Game Menu/Game Config

or by simply dragging a supported game into a MO2 Steam Category (see MO2 Modes) (which will set the MO2 Mode automatically to gui)

In "Game Mode" MO2 is started inside the game Wineprefix/Compatdata using the same Proton Version like the game.

Standalone Mode

When starting MO2 via Command Line (stl mo2 s ) (and possibly later via Extra Button or Tray-Icon), MO2 is started in standalone mode in its own Wineprefix/Compatdata with its own Proton Version In standalone mode MO2 is started as gui automatically, and starting any game from inside MO2 instance is not possible. This mode is only meant to configure mods for one or multiple games - not to start one! It is not recommendable to press the Start button in this mode, because the start attempt will use the MO2 Compatdata !!

No matter which mode is used, all MO2 data (configs, downloads...) are stored in the MO2 Compatdata and just symlinked into the game Compatdata when using the "Game Mode".

Options

Mod-Organizer 2 Options

Although being zero-config, stl has several configuration options for MO2 (with own MO2 Category Menu)

  • the default standalone Compatdata path can be configured (default is regularly ~/.config/stl/mo2/compatdata/)
  • the Proton Version for the standalone mode can be configured (default is that from default template config)
  • the start mod of MO2 can be enabled per game - see MO2 Modes
  • the timeout WAITMO2 of the requester asking if and how MO2 shall be started before the game start can be configured per game - see MO2 Requester

MO2 Modes

stl offers several modes to use MO2 which can be set per game in the Game Menu/Game Config the mode (MO2MODE) can be either

  • disabled (default - MO2 is not used)
  • gui (MO2 is started as a gui)
  • silent (the game starts directly with MO2 applying enabled mods silently - if no mod is enabled gui mode is forced)

(when using the MO2 Steam Category, the Mode is set to gui)

MO2 Requester

If the timeout value WAITMO2 is greater 0 (default is 2) and MO2MODE is not disabled, a requester will open when starting the game with following options:

  • MO2 GUI (set the MO2MODE mode to gui for this run - so start the MO2 gui before launching the game)
  • MO2 SILENT (set the MO2MODE mode to silent for this run - so start the game with silently applying enabled mods using MO2)
  • CANCEL (set the MO2MODE to disabled for this run)

! If the requester timeouts, the mode is automatically set to MO2 SILENT for the following reasons:

  • if starting a game via VR, the user can seamlessly start the game without having to interact with the gui.
  • if using the MO2 Steam Category, it is still possible to apply mods silently, by letting the requester timeout

Command line options

There are several more MO2 Command Line options besides those mentioned above.

Files

As there is no (?) official way to list all games supported by MO2 with its name and SteamAppID stl ships and utilizes an own hardcoded list with supported games to make above automations even possible, which includes two variants of the game name, the SteamAppID and the Nexusmods gamename (used to categorize the nxm downloads) The file can be found in the global misc dir of the stl installation (regularly in /usr/share/stl/misc/mo2games.txt) and needs to be updated when MO2 adds support for new games, or when a SteamAppID is missing in the list (some games have different ids in different countries)

Notes

MO2 regularly uses dotnet (4.8) Apart from several (minor/cosmetical?) warnings, it seems to work fine though with preinstalled mono, so dotnet48 is not automatically installed when creating the standalone Compatdata

Clone this wiki locally