Some info people might find helpful when running into issues using this that I have found. I've used MO2 for years for Skyrim/Fallout so its my go-to for modding other games if a plugin exists. I am running 600~ mods using this.
For this to work correctly, every mod you install that has a .pak file should install with the .pak file inside a PAK_FILES folder, 99% of times this works automatically, but the other 1% you will have to manually create that folder structure.
The main folder for the mod must contain an info.json file for the mod to be added to the load order correctly, which is generated when launching the game. For reference, the left window is your load order and is the order in which mods are added to the modsettings.lsx file, This file can be found within the profiles folder for MO2, not the original Larian appdata folder. (This is not the same as the in-game load order so you should disregard whatever you see in-game, You are using MO2 not the in-game mod manager)
The mod folder should look like this
[PAK_FILES] info.json meta.ini <- This file is not relevant to functionality of the mod itself and just contains nexus info for MO2
Loose files such as mods that only contain a generated folder do not need an info.json to load.
This is where issues arise, Some mods don't inherently get shipped with an info.json file, but when you launch the game, this plugin will automatically try to generate one for the mod. It does this by temporarily extracting the .pak file of the mod and reading the relevant data. For the most part this works flawlessly.
When it fails is if the .pak file for the mod contains no meta.lsx file, This is rare but some mods ive tried related to dialogue fixes dont seem to have them. What also makes this process fail is if the file path for the mod becomes too long during the temporary extract process. This is also rare but it can happen, I only became aware of this when trying to copy the MO2 instance elsewhere and windows complained about a file path being too long and unable to copy it, which i traced back to the temporary extract folder for this plugin, which is when i noticed the info.json for that particular mod was incorrect.
When these issues happen, an info.json will be created within the mod folder, however if you open it using something like notepad++ etc you will find the info fields only say "Override_Mod", this is how you know the info.json failed. When this happens that mod wont get added to the load order.
A work-around i've been using for the filename too long issue is to use the BG3 Modders Multi-tool, You can extract the .pak file, repack it again and it will create a usable info.json file. You can either extract and move the files manually or move the archive to the MO2 downloads folder and re-install the mod the usual way. I tried using this tool to create meta.lsx files for mods that didnt have them but it resulted in the load order file resetting so i opted to skip using those mods instead.
TLDR: If your mod installs with a .pak file but doesnt come with an info.json file, Launch the game and check if the generated info.json's for them are made properly. Optionally check the modsettings.lsx file in the MO2 profiles folder to manually verify load order.
I'm not familiar with Mod Organizer 2. Is there a way to prevent all my in-game options like graphics and keybinds from resetting everytime I change the mod load order?
Had the same problem. Tried running the Divine.exe unpacker manually. It told me to download this .NET runtime: https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-8.0.17-windows-x64-installer?cid=getdotnetcore.
Got this and things seem to be working now. It should be noted that this is a requirement, there's no feedback otherwise, and most people won't be able to read the code and run the unpacker themselved.
Is it normal for me to have to reload shaders lose settings when using Mod Organizer 2? It seems to reset tutorials and my measurement units to metric etc
I'm having a small issue (I think). I'm no stranger to MO2 (used it for years with Skyrim/Fallout), and after finally get all my mods installed and sorted in MO2 for BG3, when I tried to launch the game 2 mods reported errors saying "an error occured: FileNotFoundError" with it being a temp file, which im assuming is the program trying to extract it. Disabling the 2 mods is fine, but then I get another error:
an error occurred: UnicodeEncodeError: 'charmap' codec can't encode character '\u2727' in position 108980: character maps to <undefined>
At: encodings\cp1252.py(19): encode A:\0 - Mod Organizer 2/plugins\basic_games\games\baldursgate3\ModSettingsHelper.py(275): generateSettings A:\0 - Mod Organizer 2/plugins\basic_games\games\game_baldursgate3.py(136): onAboutToRun
I've found this error usually crops up whenever a mod author includes a special symbol in their info.json, in this case the error is calling the "\u2727" unicode which is this symbol: ✧
What I would do in this situation is go through any recent CC mods you added and check the info.json of each till you find the offender. You'll know when you find it because it'll have either have the direct unicode (which is \u2727 for this error) or the "✧" symbol within the info.json somewhere, then remove that symbol and save the file. So far out of most of the head presets I've tried, Mantis' heads, Cedastarions' heads, and TsukiTuzi's mods had this issue. Considering the diamond symbol, I'd wager it's probably a TsukiTuzi mod throwing the error since that symbol's like their signature, haha. Hope this helps
When you install .pak files through MO2, the MO2 plugin automatically sorts the order of the .pak files. This cannot be fixed.
In plugin versions 1.2 ~ 2.1, you could register BG3 Mod Manager through an external program registration in MO2, run BG3 Mod Manager in a virtualized state, and modify the order of the .pak files in the virtualized state.
It's great that you can register and sort .pak files without BG3 Mod Manager in plugin version 2.3, but it doesn't make sense that you can't change the order at will.
When installing a mod, you often install multiple .paks. According to the usage of plugin 2.3, does it mean that you have to install one mod in MO2 by dividing it into the number of .pak files?
Additionally, in-game mod.io mods are disabled every time the game is launched, because they are not installed mods in MO2, so plugin version 2.3 does not recognize them and excludes them from modsetting.lsx.
Until this issue is fixed, I will use plugins from version 1.2 to 2.1 and manually sort the order of .pak files by registering BG3 Mod Manager in MO2.
In 2.3 you can change order at will. You can verify it in modesettings.lsx under MO2\profiles\Default directory or make an experiment with mods that needs compat patches (like UT and EoB - if you set Unique Tav Custom Appearance EotB Patch higher than EOB, body tat atlas will disappear) The order in MO2 reflects the order the game loads them. I uninstalled BG3MM after discovered this plugin. Yes, MM looks pretty and actively developed, but advantages of MO2 is huge. (clean game directory for loose files mods, integration with nexus)
It looks like modesettings.lsx generated by mod has incorrect version magic. It should be <version major="4" minor="8" revision="0" build="10"/> (I looked into default empty one)
You need to patch ModSettingsHelper.py to include correct version information (it should be obvious if you open the file and find version block)
Unfortunately, when using root builder, it doesn't load "Root/Data"
I'm trying to get Unique Tav to work but it won't load anything related to it. Workaround is to use BG3MM so it's not that big of an issue but I would love to use only MO2.
Edit: Omg nvm I'm an idiot. I set the folders up incorrectly.
Hey so I don't know if its me but when I try and run vulkan or the bg3 mod manager through MO2 it takes forever, like when I start the game through MO2 it has a few minuet wait then it works but when I end the task it remains stuck on "application is locked" for nearly an hour and becomes unresponsive. Anyone know why or?
158 comments
For this to work correctly, every mod you install that has a .pak file should install with the .pak file inside a PAK_FILES folder, 99% of times this works automatically, but the other 1% you will have to manually create that folder structure.
The main folder for the mod must contain an info.json file for the mod to be added to the load order correctly, which is generated when launching the game. For reference, the left window is your load order and is the order in which mods are added to the modsettings.lsx file, This file can be found within the profiles folder for MO2, not the original Larian appdata folder. (This is not the same as the in-game load order so you should disregard whatever you see in-game, You are using MO2 not the in-game mod manager)
The mod folder should look like this
[PAK_FILES]
info.json
meta.ini <- This file is not relevant to functionality of the mod itself and just contains nexus info for MO2
Loose files such as mods that only contain a generated folder do not need an info.json to load.
This is where issues arise, Some mods don't inherently get shipped with an info.json file, but when you launch the game, this plugin will automatically try to generate one for the mod. It does this by temporarily extracting the .pak file of the mod and reading the relevant data. For the most part this works flawlessly.
When it fails is if the .pak file for the mod contains no meta.lsx file, This is rare but some mods ive tried related to dialogue fixes dont seem to have them. What also makes this process fail is if the file path for the mod becomes too long during the temporary extract process. This is also rare but it can happen, I only became aware of this when trying to copy the MO2 instance elsewhere and windows complained about a file path being too long and unable to copy it, which i traced back to the temporary extract folder for this plugin, which is when i noticed the info.json for that particular mod was incorrect.
When these issues happen, an info.json will be created within the mod folder, however if you open it using something like notepad++ etc you will find the info fields only say "Override_Mod", this is how you know the info.json failed. When this happens that mod wont get added to the load order.
A work-around i've been using for the filename too long issue is to use the BG3 Modders Multi-tool, You can extract the .pak file, repack it again and it will create a usable info.json file. You can either extract and move the files manually or move the archive to the MO2 downloads folder and re-install the mod the usual way. I tried using this tool to create meta.lsx files for mods that didnt have them but it resulted in the load order file resetting so i opted to skip using those mods instead.
TLDR: If your mod installs with a .pak file but doesnt come with an info.json file, Launch the game and check if the generated info.json's for them are made properly. Optionally check the modsettings.lsx file in the MO2 profiles folder to manually verify load order.
If you close Mod Organizer 2, you're no longer able to save your game. This persists until you relaunch the game.
Got this and things seem to be working now. It should be noted that this is a requirement, there's no feedback otherwise, and most people won't be able to read the code and run the unpacker themselved.
[2024-10-21 18:31:02.833 E] an error occurred: UnicodeDecodeError: 'gbk' codec can't decode byte 0xa1 in position 31: illegal multibyte sequence
[2024-10-21 18:31:02.833 E]
[2024-10-21 18:31:02.833 E] At:
[2024-10-21 18:31:02.833 E] json\__init__.py(293): load
[2024-10-21 18:31:02.833 E] G:\1-MOD Manager/Mod.Organizer-2.5.2/plugins\basic_games\games\baldursgate3\ModSettingsHelper.py(219): generateSettings
[2024-10-21 18:31:02.833 E] G:\1-MOD Manager/Mod.Organizer-2.5.2/plugins\basic_games\games\game_baldursgate3.py(136): onAboutToRun
[2024-10-21 18:31:02.833 E]
with open(modJsons[mod], 'r', encoding="UTF-8") as file:
and mo2 turn off and on
Is it normal for me to have to reload shaders lose settings when using Mod Organizer 2? It seems to reset tutorials and my measurement units to metric etc
an error occurred: UnicodeEncodeError: 'charmap' codec can't encode character '\u2727' in position 108980: character maps to <undefined>
At:
encodings\cp1252.py(19): encode
A:\0 - Mod Organizer 2/plugins\basic_games\games\baldursgate3\ModSettingsHelper.py(275): generateSettings
A:\0 - Mod Organizer 2/plugins\basic_games\games\game_baldursgate3.py(136): onAboutToRun
Any help would be much appreciated!
What I would do in this situation is go through any recent CC mods you added and check the info.json of each till you find the offender. You'll know when you find it because it'll have either have the direct unicode (which is \u2727 for this error) or the "✧" symbol within the info.json somewhere, then remove that symbol and save the file. So far out of most of the head presets I've tried, Mantis' heads, Cedastarions' heads, and TsukiTuzi's mods had this issue. Considering the diamond symbol, I'd wager it's probably a TsukiTuzi mod throwing the error since that symbol's like their signature, haha. Hope this helps
The plugin version 2.3 has a very big flaw.
When you install .pak files through MO2,
the MO2 plugin automatically sorts the order of the .pak files.
This cannot be fixed.
In plugin versions 1.2 ~ 2.1,
you could register BG3 Mod Manager through an external program registration in MO2,
run BG3 Mod Manager in a virtualized state,
and modify the order of the .pak files in the virtualized state.
It's great that you can register and sort .pak files without BG3 Mod Manager in plugin version 2.3,
but it doesn't make sense that you can't change the order at will.
When installing a mod, you often install multiple .paks.
According to the usage of plugin 2.3,
does it mean that you have to install one mod in MO2 by dividing it into the number of .pak files?
Additionally, in-game mod.io mods are disabled every time the game is launched,
because they are not installed mods in MO2, so plugin version 2.3 does not recognize them and excludes them from modsetting.lsx.
Until this issue is fixed, I will use plugins from version 1.2 to 2.1 and manually sort the order of .pak files by registering BG3 Mod Manager in MO2.
Thanks for the update.
It should be <version major="4" minor="8" revision="0" build="10"/> (I looked into default empty one)
You need to patch ModSettingsHelper.py to include correct version information (it should be obvious if you open the file and find version block)
Without this, mods will be ignored by game
I'm trying to get Unique Tav to work but it won't load anything related to it. Workaround is to use BG3MM so it's not that big of an issue but I would love to use only MO2.
Edit: Omg nvm I'm an idiot. I set the folders up incorrectly.