Skip to content

Mod Organizer 2

frostworx edited this page Jun 30, 2022 · 44 revisions

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: steamtinkerlaunch also has built-in support for Vortex Mod Manager

Features

MO2 is windows only, but steamtinkerlaunch 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, using an automatically picked/downloaded DotNet compatible Wine/Proton version
  • the Wineprefix/Compatdata path can be configured in Global Menu
  • 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
    • (NOT READY: or by silently load the game with MO2 mods enabled)**

Installation

MO2 can be installed via Command Line by using

  • steamtinkerlaunch mo2 install or steamtinkerlaunch mo2 i (to only install it)

When starting MO2 via Command Line (steamtinkerlaunch mo2 start or steamtinkerlaunch mo2 s), Extra Button or Tray-Icon, althout it is not installed yet, it is automatically installed and all above automations are applied before it is started._

Starting

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

Quick Start

  • Game Mode: Drag a supported game into a (self created) "MO2" Steam Category & start the game (using steamtinkerlaunch of course)
  • Standalone Mode: steamtinkerlaunch mo2 start or steamtinkerlaunch mo2 s

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,
  • (NOT READY: 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 DotNet is not automatically installed into that pfx by steamtinkerlaunch, so MO2 likely is started with built-in Mono.

Standalone Mode

When starting MO2 via Command Line (steamtinkerlaunch mo2 s ), Extra Button or Tray-Icon, MO2 is started in standalone mode in its own Wineprefix/Compatdata with its own Proton Version. DotNet is automatically installed into this pfx when MO2 is installed using automatically picked/downloaded DotNet compatible Wine/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, steamtinkerlaunch has several configuration options for MO2 (with own MO2 Category Menu)

  • the default standalone Compatdata path can be configured (default is regularly ~/.config/steamtinkerlaunch/mo2/compatdata/)
  • the Proton Version for the standalone mode can be configured (default is a DotNet compatible Proton. Please read the link before changing the Proton version, as it might break dotnet compatibility!)
  • 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

steamtinkerlaunch 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 steamtinkerlaunch 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 steamtinkerlaunch installation (regularly in /usr/share/steamtinkerlaunch/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)

Troubleshooting

MO2 doesn't start? (maybe dotnet related -see #Notes)

For troubleshooting/reporting a bug you might want to do the following clean test: for a clean test do the following:

  1. rename ~/.config/steamtinkerlaunch # to make sure no changed configuration conflict
  2. delete /dev/shm/steamtinkerlaunch recursively # to make sure temp files do not conflict
  3. steamtinkerlaunch mo2 start
  4. wait, many things happen under the hood, so be patient. the more modable games are installed, the longer it takes.watch the status windows. you might also want to read the steamtinkerlaunch wiki for vortex meanwhile (again)
  5. either see mo2 start or check/upload at least the just created steamtinkerlaunch.log in /dev/shm/steamtinkerlaunch/ (installDotNet.log might be interesting as well)

Notes

MO2 regularly uses dotnet (4.8) Apart from several (minor/cosmetical?) warnings, it seems to work fine though with preinstalled mono. When MO2 is installed into its own standalone Compatdata, steamtinkerlaunch automatically/by default uses an own DotNet compatible Proton version for the pfx and also installs DotNet automatically.

Clone this wiki locally