Skip to content

Mod Organizer 2

Eamonn Rea edited this page Nov 17, 2023 · 44 revisions

(GitHub Project Page) (Nexus Mods Page)

Mod Organizer 2 (MO2) is a graphical mod manager application that allows for modding a wide variety of games, commonly with mods found on Nexus Mods. It is the predecessor to Vortex Mod Manager, though MO2 is still actively developed by the open source community and is still a popular choice among the modding community.

SteamTinkerLaunch offers automated installation and configuration of ModOrganizer 2, it does the installation and configuration for you. Please note however that ModOrganizer 2 only supports modding Windows releases of games. Even though some supported games may have a native Linux port and some mods may support the native port, you will not be able to mod them with ModOrganizer 2.

SteamTinkerLaunch also has built-in support for Vortex Mod Manager if you would like to use that. You can install and use both mod managers to mod different games, though you may run into issues if you try to mod the same game at the same time with two different mod managers.

Refer to the ModOrganizer 2 documentation for general guidance on how to get started.

NOTE: On Steam Deck, you should be using the most up-to-date SteamOS Stable release, and the most recent SteamTinkerLaunch-git release. After each SteamOS version update, before installing ModOrganizer 2 for the first time you should run steamtinkerlaunch cleardeckdeps to remove outdated dependencies, and SteamTinkerLaunch will download the most up-to-date dependencies on its next run (including Yad, which may take time to download again). This does not apply to existing ModOrganizer 2 installs, only existing SteamTinkerLaunch installs without ModOrganizer 2.

Features

ModOrganizer 2 is only officially available for Windows (though the developers do try to improve compatibility with Linux), but SteamTinkerLaunch tries to close this gap through seamless integration with Wine/Proton and automating a lot of the configuration required to get ModOrganizer 2 running on Linux. All processes are fully automated and should not require user intervention!

Below is an overview of some of the features SteamTinkerLaunch offers when installing ModOrganizer 2:

  • Automatically downloads and installs the latest release of ModOrganizer 2 from GitHub.
  • Installs ModOrganizer 2 into a separate, isolated Wineprefix/Compatdata directory, keeping its files separate from your game installation.
  • Commands to list all supported ModOrganizer 2 games and all currently installed games that support ModOrganizer 2.
  • Once your initial instance is configured, MO2 can identify all other supported games currently installed from Steam. All you have to do is switch your instance each time your want to use it.
    • SteamTinkerLaunch automatically generates its own libraryfolders.vdf pointing to all real Steam Library Paths for all currently installed games supported by ModOrganizer 2.
    • SteamTInkerLaunch also creates relevant registry entries pointing to game folders if requires (most Bethesda games require this).
  • Creation and automatic updating of game configuration symlinks pointing to all supported installed games within the SteamUser directory.
  • Support for handling NXM links to download mods from Nexus Mods with the "Mod Manager" button, if your Nexus account has been linked with ModOrganizer 2. You will need to have launched your game from Gmae Mode to do this (see below).
  • Support for launching ModOrganizer 2 from the Main Menu or from the command line, called "Standalone Mode", or when you press the "Play" button, called "Game Mode" (See Usage section).

There may be some hiccups from time to time, so if anything does not work correctly feel free to open an issue.

Updating

ModOrganizer 2 itself should prompt you with a dialogue when it needs to update, and should do an in-place update. This process is independent of SteamTinkerLaunch and is built-in ModOrganizer 2 functionality. SteamTinkerLaunch will currently always download the latest stable, but you are free to opt into any available betas within the ModOrganizer 2 settings.

In future, there may be options to choose whether to use a ModOrganizer 2 beta by default, as well as a ModOrganizer 2 version, and a custom ModOrganizer 2 installation executable. But this has not been implemented yet. Feel free to open a PR if you're interested in adding this functionality yourself!

Installation

ModOrganizer 2 can be installed either from the command line or from the SteamTinkerLaunch Main Menu.

Command Line

To install from the command line, you can install SteamTinkerLaunch with steamtinkerlaunch mo2 start. This will download, install and start ModOrganizer 2.

If you only want to download the ModOrganizer 2 executable, you can run steamtinkerlaunch mo2 download. If you want to download and install ModOrganizer 2 but you don't want it to run, you can run steamtinkerlaunch mo2 install.

Main Menu

You can install ModOrganizer 2 from the Main Menu by pressing the "ModOrganizer 2" button. This will download, install and start ModOrganizer 2.

Usage

You can start ModOrganizer 2 either in Standalone Mode or Game Mode.

Standalone Mode is good for generic mod configuration and setup, as it can be used without closing SteamTinkerLaunch, whereas Game Mode is good for launching your game from ModOrganizer 2.

Game Mode

In Game Mode, ModOrganizer 2 is started inside the game Wineprefix/Compatdata using the same Proton Version that your game uses. To use Game Mode, ModOrganizer 2 is started by launching your game with SteamTinkerLaunch. You will be prompted after starting your game to use ModOrganizer to in MO2 GUI mode.

You can start ModOrganizer 2 through Game Mode by either enabling ModOrganizer 2 in the Game Menu, or using a Steam Collection. Note that ModOrganizer 2 options will not be available unless you have installed it.

To use ModOrganizer 2 with Steam Collections, create a "MO2" Collection and add the games you want to use ModOrganizer 2 with to that Collection. This will automatically enable MO2 in GUI mode for all games in that category.

It should be fine to install and configure mods from Game Mode, but only for the game you are trying to launch. It is not adviseable to switch instances and mod other games when running ModOrganizer 2 from Game Mode.

(Note: There is also a currently not implemented MO2 SKIP Silent Mode, which aims to eventually start your game with your mods via MO2 without showing the MO2 GUI.)

Standalone Mode

In Standalone Mode, ModOrganizer 2 is launched in its own Wineprefix/Compatdata, which can optionally use its own Proton version. I can be used to configure mods for multiple games. However, it is not meant to be used to launch games. If you wish to run your games, you should use Game Mode.

To use Standalone Mode, you can launch ModOrganizer 2 via the Command Line with steamtinkerlaunch mo2 start. You can also use the "ModOrganizer 2" Extra Button on the Main Menu, or use the Tray Icon.

No matter which mode is used, all ModOrganizer 2 data (configs, downloads and so on) are stored in the MO2 Compatdata and are just symlinked into the Steam game's Compatdata when using Game Mode.

Command line options

There are several more Command Line options for ModOrganizer 2 besides those mentioned above. Run steamtinkerlaunch help and look under the MO2 section for a list of available commands.

Configuration

Overview

Mod-Organizer 2 Options

Although SteamTinkerLaunch automatically configures much of ModOrganizer 2 for you, there are several configuration options available in the Cateogry Menu) to give you extra flexibility. Some of the configuration options include:

  • Changing the default Standalone Mode Compatdata path (the default is typically ~/.config/steamtinkerlaunch/mo2/compatdata/).
  • The Proton Version for the standalone mode can be configured (the default is typically the same version Game Mode uses).
    • ModOrganizer 2 is mostly compatible with Wine's Mono implementation, but some versions of Proton use custom Wine themes that may cause graphical glitches. To fix this, you can use Winecfg to disable custom themes, or change the theme that ModOrganizer 2 uses (several very cool ones are built-in at the time of writing).
  • You can enable/disable ModOrganizer per-game, allowing you to disable it with games you no longer wish to use it with. You can set MO2 to either "disabled" or "gui". This can also be useful for troubleshooting games to ensure they work without ModOrganizer 2.
  • The timeout (in seconds) of the requester dialog asking how to start ModOrganizer (see MO2 Requester).

MO2 Requester

image

The timeout value (WAITMO2) for the ModOrganizer 2 wait requester dialog is 2. If the configured value is greather than 0 and MO2MODE is not disabled, a requester dialog will open when you start your game. The default action is to start ModOrganizer 2 in gui mode, which you can select by either pressing spacebar or letting the requester time out.

(Note: There is a not-yet-implemented MO2 SILENT option, which when added aims to allow you to start your game with mods enabled without showing ModOrganizer 2).

Files

As there is no (?) official way to list all games supported by ModOrganizer 2 with each name and SteamAppID SteamTinkerLaunch ships and utilizes an own hardcoded list of supported games in an attempt to improve further automation. SteamTinkerLaunch can list the name, SteamAppID and the Nexus Mods gamename (used to categorize the Nexus Mods downloads) for each supported game.

The hardcoded list of supported games can be found in the global misc directory of your SteamTinkerLaunch installation. Common locations include:

  • Package Manager: /usr/share/steamtinkerlaunch/misc/mo2games.txt.
  • Steam Deck/ProtonUp-Qt: ~/stl/prefix/misc/mo2games.txt.
  • Flatpak: ~/.var/lib/steamtinkerlaunch/misc/mo2games.txt.

This list will need 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.

Feel free to either open an issue about a missing/incorrect game, or submit a pull request to fix it yourself. Contributions are always welcome!

Troubleshooting

You may encounter some issues when using ModOrganizer 2. Below are some common issues and steps to resolve them. If you issue is not listed, feel free to request its addition in an issue.

If you encounter an issue with modding a specific game or using a specific mod, check the Modding wiki to see if there is a documented fix or workaround. If not, and you are able to fix the game yourself, please open an issue describing the fix in as much detail as possible, so that we can add it to the wiki and help other users!

ModOrganizer 2 crashes/hangs when opening some dialogs.

It was reported that in Game Mode, ModOrganizer 2 can sometimes have problems opening or displaying windows. Sometimes they cause a direct crash, or a process hang (#813, #805). For Game Mode, you can try disabling the Steam Linux Runtime in the SteamTinkerLaunch "Proton options" on the Game Menu.

If this issue is happening for you in Standalone Mode but not in Game Mode, feel free to open an issue, as SteamTinkerLaunch may need to introduce the option of running MO2 Standalone with the Steam Linux Runtime.

Re-Creating Prefix and Preserving Mods

There can be instances where the ModOrganizer 2 prefix gets borked, and by default mods are stored to this prefix. A tell-tale sign of a borked prefix is the error wine: could not load kernel32.dll, status c0000135. Fortunately, the solution is very straightforward.

  1. Change your ModOrganizer 2 version in the Global Menu to a version that you know will work - A commonly reported broken version is GE-Proton7-43, so a version newer or older than this may be best
  2. Go to ~/.config/steamtinkerlaunch/mo2, this is where the ModOrganizer 2 prefix is created - Note that this path may be different on Flatpak
  3. Rename the existing prefix so that a new prefix can be generated
  4. From the command line, run steamtinkerlaunch mo2 start. Alternatively, using the Extra Button on the Main Menu should work as well.
  5. ModOrganizer 2 should open, follow the steps and select an empty instance and then close MO2
  6. At ~/.config/steamtinkerlaunch/mo2 you should now have a fresh compatdata folder.
  7. Open two file explorer windows at ~/.config/steamtinkerlaunch/mo2, and in each of your compatdata folders (the fresh one and the one that was renamed), navigate to pfx/drive_c/users/steamuser/AppData/Local
  8. In the fresh prefix, remove the ModOrganizer folder - This is the folder that holds MO2 instance data including mods.
  9. From the old prefix, copy/move the ModOrganizer folder - This will import your mods and your previous profiles
  10. (Optional) Import configuration from your previous MO2 install by copying the configuration files from the old prefix to the new prefix. The MO2 installation in the prefix is located at pfx/drive_c/Modding/MO2. Refer to the MO2 documentation for which files you need to copy over and where to find them.

ModOrganizer 2 Start Command Gives kernel32.dll error

Manual

If you're getting an error along the lines of wine: could not load kernel32.dll, status c0000135 it's likely because the Proton version changed and the prefix wasn't updated successfully. To resolve this, you should first back up your existing prefix somewhere, and then run a Proton command inside of that prefix. This has only been tested by me (sonic2kk) a couple of times to resolve the prefix errors. It's likely caused by MO2 running with Wine in its own prefix in Standalone Mode, but with Proton in a full Proton prefix when running in Game Mode. Proton can repair prefixes, but Wine cannot, which is likely why it gives the `kernel32.dll.

You'll need to find values for the following variables (paths must be absolute):

  • STEAM_COMPAT_CLIENT_INSTALL_PATH - This is the path to the Steam installation, for example /home/gaben/.local/share/Steam
  • STEAM_COMPAT_DATA_PATH - This is the path to the MO2 compatdata folder, for example /home/gaben/.config/steamtinkerlaunch/mo2/compatdata

After this, you'll need to get the path to the ModOrganizer 2 Proton's proton script. For example:

  • If you selected GE-Proton8-20 and installed it before selecting it in the Global Menu with ProtonUp-Qt would go to /home/gaben/.local/share/Steam/compatibilitytools.d/GE-Proton8-20/proton.
  • If the Proton version was downloaded by SteamTinkerLaunch, it will be under SteamTinkerLaunch's internal Proton folder. For Non-Flatpak builds, this is typically $HOME/.config/steamtinkerlaunch/proton/custom/ProtonVersion.

You can check the MO2 Proton version in the global config file or the Global Menu.

Once you have all of these values, your command to repair the prefix should look like this. We're going to run Winecfg in the prefix using Proton as it's a quick and easy one:

STEAM_COMPAT_CLIENT_INSTALL_PATH="/home/gaben/.local/share/Steam" STEAM_COMPAT_DATA_PATH="/home/gaben/.config/steamtinkerlaunch/mo2/compatdata" "/home/gaben/.local/share/Steam/compatibilitytools.d/GE-Proton8-20/proton" run winecfg

Winecfg should start, once it does you can close the window and then run steamtinkerlaunch mo2 start, and it should work again.

ModOrganizer 2 repairpfx Command

Newer versions of SteamTinkerLaunch have a command built-in that does the above steps automatically, using the selected version of ModOrganizer 2. However, before running this, make sure you back up your existing prefix!

To use the command, simply run steamtinkerlaunch mo2 repairpfx. This should run relatively quickly, and once completed, steamtinkerlaunch mo2 start should succeed.

This option is intentionally left out of the help screen for now as it is highly experimental, and may be integrated automatically when the ModOrganizer 2 Proton version changes.

MO2 Won't Start

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

  1. Move/Rename your SteamTinkerLaunch configuration directory (typically ~/.config/steamtinkerlaunch). Doing this "hides" all your SteamTinkerLaunch configuration files from SteamTinkerLaunch, so it will set itself up again like a fresh install. Doing this is better than deleting the folder because it means you can recover all your configuration information later!
  2. Delete /dev/shm/steamtinkerlaunch to remove any lingering files from previous launches
  3. Reinstall ModOrganizer 2 with the following command: steamtinkerlaunch mo2 start
  4. Many things happen under the hood, so be patient and wait for installation to finish up. The more modable games that you have installed, the longer it can take. Watch the status windows for updates. You might also want to read the SteamTinkerLaunch wiki or ModOrganizer 2 documentation in the meantime.
  5. ModOrganizer 2 should eventually start.

If ModOrganizer 2 still does not launch after this, feel free to open an issue and make sure to include your steamtinkerlaunch.log file. The relevant log for the last launch can be found in /dev/shm/steamtinkerlaunch. Make sure to try and launch ModOrganizer 2 before attaching the log, so we can see the log from your attempted launch.

"Mod Manager" button on Nexus Mods isn't working

The most prominant issue you might run into is that using the "Mod Manager" button on Nexus Mods may not work. This seems to only happen if you are running ModOrganizer 2 in Standalone Mode. Try running in Game Mode and then try again.

If you still run into issues, check ~/.local/share/applications and see if you have a file called ModOrganizer-steamtinkerlaunch-dl.desktop. If you don't have this file, copy one of the templates below and replace <stl_config_dir_path> with the path to your SteamTinkerLaunch configuration folder.

Package Manager / Manual Root Install

The following is only if you have SteamTinkerLaunch installed in a system directory, such as /usr/bin/steamtinkerlaunch. Double check the path to SteamTinkerLaunch before using this, which steamtinkerlaunch should show you what to use.

[Desktop Entry]
Type=Application
Categories=Game;
Name=ModOrganizer (SteamTinkerLaunch - steamtinkerlaunch)
MimeType=x-scheme-handler/nxm;x-scheme-handler/nxm-protocol
Terminal=false
X-KeepTerminal=false
Path=<stl_config_dir_path>/mo2/compatdata/pfx/drive_c/Modding/MO2
Exec=/usr/bin/steamtinkerlaunch mo2 u %u
NoDisplay=true

ProtonUp-Qt / Steam Deck

SteamTinkerLaunch should always be installed to the same path when using ProtonUp-Qt and/or installing on Steam Deck. Just replace user with your username.

[Desktop Entry]
Type=Application
Categories=Game;
Name=ModOrganizer (SteamTinkerLaunch - steamtinkerlaunch)
MimeType=x-scheme-handler/nxm;x-scheme-handler/nxm-protocol
Terminal=false
X-KeepTerminal=false
Path=<stl_config_dir_path>/mo2/compatdata/pfx/drive_c/Modding/MO2
Exec=/home/user/stl/prefix/steamtinkerlaunch mo2 u %u
NoDisplay=true

Manual Non-Root Install

If you are using SteamTinkerLaunch on the Linux Desktop without installing via ProtonUp-Qt, you will need to locate your SteamTinkerLaunch folder and replace /path/to/stl-folder with its path - Remember, the path is to the SteamTinkerLaunch script and not the folder.

[Desktop Entry]
Type=Application
Categories=Game;
Name=ModOrganizer (SteamTinkerLaunch - steamtinkerlaunch)
MimeType=x-scheme-handler/nxm;x-scheme-handler/nxm-protocol
Terminal=false
X-KeepTerminal=false
Path=<stl_config_dir_path>/mo2/compatdata/pfx/drive_c/Modding/MO2
Exec=/path/to/stl-folder/steamtinkerlaunch mo2 u %u
NoDisplay=true

Flatpak

If you're using Flatpak, the following should work (big thanks to user har-nick in #734 for creating this):

[Desktop Entry]
Type=Application
Categories=Game;
Name=ModOrganizer (SteamTinkerLaunch - steamtinkerlaunch)
MimeType=x-scheme-handler/nxm;x-scheme-handler/nxm-protocol
Terminal=false
X-KeepTerminal=false
Exec=flatpak run --command=steamtinkerlaunch com.valvesoftware.Steam mo2 u %u
NoDisplay=false

Once you have filled out the path, save the file to ~/.local/share/applications/ and name it ModOrganizer-steamtinkerlaunch-dl.desktop. After this, close SteamTinkerLaunch and remove the /dev/shm/steamtinkerlaunch/ folder.

If this still does not resolve the problem, feel free to open an issue.

MO2 Won't Let Me Select Native Games

Unfortunately, ModOrganizer 2 does not support modding native Linux games. When selecting the path to the game for your instance it will tell you that it can't find the game executable, or something to this effect. Even if your game has a native Linux port you will unfortunately have to use the Proton version of this game.

Notes

Disclaimer

As noted earlier, ModOrganizer 2 is not officially supported on Linux. You may encounter issues, but SteamTinkerLaunch does its best to bridge the gap. You may not get very much support when asking about issues from the ModOrganizer team, as they will likely focus their efforts on Windows. Having said that, the team have previously helped fix critical compatibility issues to help Linux users.

SteamTinkerLaunch offers ModOrganizer 2 support to help make it easier to install and mod games, but it does not guarantee full mod compatibility with Wine. It it probably quite rare as many users have been modding games on Linux for a long time, but you might run into cases where some mods may be incompatible with running games through Wine. You can research your mods on your own and politely ask mod creators to investigate/improve support with Wine, but you may not get the answer you are hoping for.

If you do encounter an issue with a mod and you are able to fix it, please tell us about it in an issue so we can document it on the Modding wiki page.

As with other programs, you are using ModOrganizer 2 to mod your games at your own risk. You may get banned from multiplayer games for using some mods, please mod responsibly!

DotNet and Mono

Previously, SteamTinkerLaunch would've attempted to install DotNet 4.8 for use with ModOrganizer 2. It was found that Wine's own implementation of DotNet (called "Mono") should allow ModOrganizer 2 to function correctly, apart from some minor cosmetical issues. There may be a lot of warnings in the ModOrganizer 2 logging box at the bottom of the screen but these can typically be safely ignored. If you experience any functionality issues that you know are fixed by using DotNet 4.8, please open an issue and describe this in detail.

Clone this wiki locally