Skip to content

Compatibility with QModManager

Tobey Blaber edited this page Mar 16, 2024 · 31 revisions

Is BepInEx compatible with QModManager?

BepInEx itself is fully compatible with QModManager. In fact, QModManager requires BepInEx.

However, mods made for QModManager (hereafter QMods) do not automatically work with BepInEx - you still need QModManager installed and working to use them. BepInEx loads QModManager, and then QModManager loads QMods. That's how it has always been since QModManager v4.0 released. The only thing that has changed is that QModManager is incompatible with the Subnautica 2.0 Living Large update and has been deprecated, meaning it will no longer receive updates and that QMods no longer function since the Living Large update.

This means that to continue using QModManager and QMods, you must revert your game to the legacy branch. See below for more information on the legacy branch and how to change branches.

Caution

Do not install QModManager unless you are on the legacy branch, otherwise it will cause issues.

BepInEx can be used on any branch of Subnautica. However, BepInEx plugins are usually only intended for use on the latest version of the game, and therefore most BepInEx plugins will not work on the legacy branch.

There are some notable exceptions of BepInEx plugins which work on any branch, for example Configuration Manager, BepInEx Tweaks and SnapBuilder among a handful of others. If a BepInEx plugin does not say it works on the legacy branch, do not assume it does. Instead, look to see if it has a legacy version available to download.

There are a handful of mods which are packaged to work as either a QMod or a BepInEx plugin, i.e. they contain a mod.json file which is used by QModManager to load as a QMod, but their instructions say they can be installed to the BepInEx/plugins folder. In this case, if you are on the legacy branch you should install it to the QMods folder. Otherwise, install it to the BepInEx/plugins folder. The Subnautica Support Vortex extension v3.2.0 or newer should automatically take care of this for you. If it doesn't, the workaround is either to install the mod manually, or in Vortex if you double click the installed mod it brings up the details pane. In this pane, look for the setting Mod Type and change this to BepInEx Plugin, then redeploy your mods.

Are there any caveats for QModManager compatibility?

  • QModManager ships with an old version of BepInEx. If you install QModManager after installing this BepInEx pack, you will be downgrading your version of BepInEx in the process, and some BepInEx plugins will stop working as they require a newer version of BepInEx. To remedy this, simply reinstall BepInEx after installing QModManager. Installing with Vortex Mod Manager should handle this for you.

  • On macOS, QModManager requires you to own the game on Steam and can be a bit tricky to install correctly. Follow the Installing QModManager on macOS guide and you should be good to go.

What if they release another update to Subnautica which breaks compatibility with BepInEx? Won't we end up in the same situation?

The major difference between BepInEx and QModManager is that BepInEx itself does not interact with or depend on the game assemblies to function, while QModManager does. Because of QModManager's dependency on the game assemblies, it has been brittle and prone to breaking whenever the game updates.

Meanwhile, BepInEx 5 only relies on the Unity game engine to function and is compatible with every version of Unity since Unity 3 (released in 2010), so it is far less likely to stop working if the game updates. We have not yet witnessed an update to Subnautica which has prevented BepInEx from working since we started using it to power QModManager in 2020.

Some BepInEx plugins might stop working when the game is updated if they rely on game code which has been changed by the update, but those which do not will be unaffected. BepInEx plugins which are affected will need to be updated - just as they would if they were QMods - but BepInEx itself and unaffected plugins should continue to function without any update required.

These factors are part of the reason why the community is moving away from QModManager, why it has been deprecated, and why we believe BepInEx is the right mod loader for the future of Subnautica.

The main thing that could throw a spanner in the works is if the devs decide to begin compiling the game with IL2CPP. This would require the community to migrate to BepInEx 6, which has support for modding Unity IL2CPP games but is currently in prerelease and not yet recommended for games which do not require it.

What is the legacy branch?

The legacy branch is an old version of the game; specifically it is the last version of the game released prior to the Living Large update which was released in December 2022. It enables players who were in the middle of a playthrough when the update released to still make use of QModManager and QMods by reverting to this branch.

Using the legacy branch means you do not have access to any of the new features which were added in the Living Large update. It is not recommended for new players.

How do I know which branch I'm on?

If you don't know which branch you're on, you're on the stable branch i.e. you're playing with the Living Large update and can only use BepInEx plugins - you cannot use QModManager or QMods.

How can I change branch?

You can only change your branch if you own a copy of the game on Steam. To change it, find the game in your Steam library, right click the name of the game and then click Properties in the context menu. From here, click the Betas tab and from here you can change your branch.

A screenshot depicting how to change your branch on Steam.

None means no branch AKA the stable branch, and includes the Living Large update.

legacy means an old version of the game which was released prior to the Living Large update. Using the legacy branch means you do not have access to any of the new features which were added in the the Living Large update. It is not recommended for new players.

experimental means an early access version of the game which is newer than the stable branch. It is unstable and likely to contain bugs, and there is no guarantee that any mods will work on this branch.

  翻译: