BG3ModManager
BG3ModManager copied to clipboard
Linux Tips
Hello, this is not at Issue per se but wanted this out there for anyone running Baldur's Gate 3 in Linux and wanting to use this for mods.
Installation
For me this was not a problem, installed easily just using wine to run the installer. I might have already installed the required version of .net beforehand, but this is not hard if you use winetricks.
Settings
Here is where you can make a mistake because it's not going to auto detect the paths correctly.
Game Data Path - this is not where your profiles are located, it's the actual literal game data folder. For the steam version the location will be like this assuming you're running a runtime version of steam and not a flatpak version:
Z:\home\<user>\.steam\steam\steamapps\common\Baldurs Gate 3\Data
For mine it is Z:\home\chris\.steam\steam\steamapps\common\Baldurs Gate 3\Data
If you get this path wrong, it won't detect the Gustav entry that is required for the game to work correctly, and it will be missing from modsettings.lsx. This will make the game unplayable, but you can either delete or rename that file to fix.
The path to this again for default linux steam is
/home/<user>/.local/share/Steam/steamapps/compatdata/1086940/pfx/drive_c/users/steamuser/AppData/Local/Larian Studios/Baldur's Gate 3/PlayerProfiles/Public/modsettings.lsx
If you use a different version you can use find to locate it find ~/ -name 'modsettings.lsx'
The steam appid for BG3 is 1086940, so that should be universal.
Game Executable Path - This is easier to figure out, should be almost the same as the first entry:
Z:\home\<user>\.steam\steam\steamapps\common\Baldurs Gate 3\bin
Here is a screenshot of my current config. The Z is what wine uses for your root linux path.
BG3 plays pretty well in Linux, I didn't have any issues using the Vulkan version and installing it with Steam Play using Proton Experimental.
It won't launch at all for me. I have a newer version of dot net installed and when I use wine to run the mod manager nothing happens.
@FlamenWolf With dotnet472
(using winetricks) installed it should launch. The profile lookup will fail though if you don't start it using BG3's prefix (which I would not recommend).
@LaughingLeader BG3 mod manager already allows to manually set Data and Executeable path, would it be possible to introduce a third setting that controls the lookup of PlayerProfiles and GMCampaigns? It currently defaults to C:\users\[username]\AppData\Local\Larian Studios\Baldur's Gate 3
: https://github.com/LaughingLeader/BG3ModManager/issues/10#issuecomment-1622592927
The same might apply to the Mods folder, which currently defaults to C:\users\[username]\AppData\Local\Larian Studios\Baldur's Gate 3\Mods
(this propably inherits the path from the lookup of PlayerProfiles and GMCampaigns).
Yep, it seems all of them are based on: https://github.com/LaughingLeader/BG3ModManager/blob/f63c49cf7dbe7f9a9581d50f6519a8be9f7dcb35/GUI/ViewModels/MainWindowViewModel.cs#L1261
For whatever reason, no matter what I've tried, I just cannot get the BG3 mod manager to launch. I've tried running it through steam, tried from Proton Experimental down to 5.X. I'm on Fedora 38 Wayland KDE Plasma. And like FlamenWolf, I've got a newer version of DotNet installed for BG3, and tried launching the manager from within that prefix with winetricks and protontricks.
What if you just symlink actual path to the path the program expects it to be, looks like a trivial workaround.
Tho in my case it doesn't start at all as well.
.net is like other redist. and you need older versions to run things. so just cause you have .net 7 installed it wont run the mod manager, you need .net472. I got the mod manager running in bottles and symlinked the C:\users\[username]\AppData\Local\Larian Studios
folder
In order to get it working I used winetricks to install dotnet472 to ge the application to lauch and the native d3dcomplier_47 to get the UI to work.
The manager detected my game location just fine, but created the mods folder in AppData in the prefix I was running it in, so I had to symlink the real Larian Studios folder to where the mod manager was looking for it. (like Lii-Kun described).
Hope this helps if anyone runs into the same issues I did.
for whatever reason, whenever I try and install dotnet472 via winetricks it tells me I can't because a newer version is installed.
@Lii-Kun how did you get it to launch with bottles? I'm made a new bottle and installed dotnet472, d3dcomplier_47, and tried different runners but it crashes with "unhandled exeption: 0xe0434352". I believe this exception code is coming from .NET somewhere. Are you able to share me your bottle configuration?
I can get further if I use Lutris but the program closes soon after it launches when it first loads.
and the native d3dcomplier_47 to get the UI to work
@scottz657 did you do anything else to get the UI working properly? it opens here, but it's all wonky and glitchy. Which wine version are you using?
I'm using wine-8.0.2, and the only thing I did was create a clean 64-bit prefix install dotnet and d3dcompier_47 and that's it. I did it all using wine and winetricks I didn't bother with bottles or anything like that.
EDIT: I'm also using Debian Testing if that matters.
For me it didn't work (UI flickering, constant crashes) with plain wine and installing dependencies via winetricks. Using bottles with the default soda runner and installing dependencies through the UI worked great though.
I did have to manually set the DocumentsFolderPathOverride
value in BG3ModManager's settings.json
(because the setting doesn't seem to be exposed in the UI) though. Otherwise it would install the mods to its own wine prefix instead of the game's.
My settings.json
now looks like this:
{
"GameDataPath": "Z:\\home\\<user>\\.steam\\steam\\steamapps\\common\\Baldurs Gate 3\\Data",
"GameExecutablePath": "Z:\\home\\<user>\\.steam\\steam\\steamapps\\common\\Baldurs Gate 3\\bin\\bg3.exe",
"DocumentsFolderPathOverride": "Z:\\home\\<user>\\.steam\\steam\\steamapps\\compatdata\\1086940\\pfx\\drive_c\\users\\steamuser\\AppData\\Local\\Larian Studios\\Baldur's Gate 3\\",
[...]
}
Thanks, just helped me fix a friends issue
So, trying to run BG3ModManager.exe from the terminal using both Proton's wine (and wine64) and my computer's built-in wine (with WINEPREFIX=~/.steam/steam/steamapps/compatdata/1086940/pfx) results in the program crashing to desktop with a large error log ending with:
Description: The process was terminated due to an internal error in the .NET Runtime at IP 0000000000F84B60 (0000000000EA0000) with exit code 80131506.
Alternatively, running BG3ModManager.exe through Bottles causes it to crash with a large error report as well that I'll copy-paste only if someone asks
Yes, I have installed dotnet472 and d3dcompile47 in both my CompatData prefix AND in my wine bottle. Yes, I ran winecfg and ensured that d3dcompile47 is enabled as 'native' in my library.
Additionally, I have symlinked the paths to my steamapps executable BG3 saves/mods/ect. files into the Bottles prefix so they can be easily seen by Bottles.
Edit: Basically, I want to know if anyone else is suddenly having similar issue.
how did you install dotnet 4.7.2? it depends on dotnet 4.0 which is known to be impossible to install
how did you install dotnet 4.7.2? it depends on dotnet 4.0 which is know to be impossible to install
Do you mean dotnet 4.5? I used the command `WINEPREFIX=[Blah blah blah] winetricks --force dotnet472. It kicked some errors but still went through, and for a while the BG3 Mod Manager seemed to work alright.
I did find that I couldn't repair the 4.0 installation when I called the program later because I already had a newer version of dotnet, so I don't know what's up with that.
No, I mean 4.0. Winetricks is trying to install all the downstream versions of dotnet for some reason when I select 4.7.2
No, I mean 4.0. Winetricks is trying to install all the downstream versions of dotnet for some reason when I select 4.7.2
I think that's expected behavior. As in, it tries to download everything from 4.0 to 4.7.2? I believe that 4.7.2 is dependent on those earlier version.
Anyways, I appear to have fixed my problem by force-installing dotnet 4.8, of all things. I have no idea why that worked, but it did and I'm so afraid of touching anything in case it breaks again.
Yes, and that's the problem dotnet 4.0 is not installable without ritual dancing around the computer. that's why i'm asking how people get it to work. there's this giga-guide that i'm really reluctant to invest any time into: https://steamcommunity.com/sharedfiles/filedetails/?id=2386287653
I have no idea why that worked
thanks
Got it.
- quit steam (maybe it's not needed but i do suspect steam is watching filesystem and reverts configuration of given wine prevfix, because setting the win version in winecfg for it was somehow not persisting when steam is running)
- run winetricks either via protontricks or manually specifying the wineprefix directory
- run winecfg from it
- change win version to windows 10
- install dotnet 4.0. NOTHING ELSE
now if you'll try to install dotnet 4.7.2 you'll see 4.5 failing to install. god i hate dotnet
didn't know dotnet was suck a pain but for me all I did was set up a bottle set to games and then went into its dependency installer and set it to install 472. Which also installed the rest of 4.x. It took a while and you had to hit next on popups a few times but it just worked.
~~While I have yet to actually get BG3ModManager working using Bottles or otherwise,~~ I did put this Python script/repo together which I believe should ~~(in-theory)~~ work ~~(on a computer other than mine)~~. ~~Using my Python script has gotten me farther than any other attempt, it appears to launch but then hangs before it can actually display the GUI properly. Every now and then the wine console output continues to spit out fixme-s, but I'm unsure if it's actually still trying to load up or not.~~ (Fixed by adding d3dcompiler_47 to the wine_prefix)
If anyone is brave enough to give it a try the Python script is relatively easy to look through. Just throw it in the same directory as BG3ModManager.exe and call it using the --setup flag. If you run it without arguments it runs BG3ModManager.exe with the wine_prefix it set up. It can also add itself to Steam as a non-Steam game for easy launching using the --steam flag.
I cannot guarantee it will work, and it will take a good few minutes to install all of the dotNET frameworks needed, but I don't believe it can cause any sort of harm to the OS. It creates a new wine_prefix at "/home/{user}/.local/share/wineprefixes/BG3MM/" and uses that for running BG3ModManager.
Nice. Frankly, I gave up and installed mods by hand. It's actually easier than installing dotnet inside wine :D
I believe it also needs d3dcompiler_47 to run correctly
I believe it also needs d3dcompiler_47 to run correctly
It does. Luckily it installs without any issues for years now
I believe it also needs d3dcompiler_47 to run correctly
This got it working for me and I updated my Python script. Should be fully working now 🤞 Thanks
It might be useful (as to increase reach, and accessibility) to convert that script to a Lutris installer or something of the sort
@FlamenWolf With
dotnet472
(using winetricks) installed it should launch. The profile lookup will fail though if you don't start it using BG3's prefix (which I would not recommend).@LaughingLeader BG3 mod manager already allows to manually set Data and Executeable path, would it be possible to introduce a third setting that controls the lookup of PlayerProfiles and GMCampaigns? It currently defaults to
C:\users\[username]\AppData\Local\Larian Studios\Baldur's Gate 3
: #10 (comment)The same might apply to the Mods folder, which currently defaults to
C:\users\[username]\AppData\Local\Larian Studios\Baldur's Gate 3\Mods
(this propably inherits the path from the lookup of PlayerProfiles and GMCampaigns).Yep, it seems all of them are based on:
https://github.com/LaughingLeader/BG3ModManager/blob/f63c49cf7dbe7f9a9581d50f6519a8be9f7dcb35/GUI/ViewModels/MainWindowViewModel.cs#L1261
Can you tell how to set the path to Mods folder correctly? Because that exactly the error BG3MM is giving me and I did everything from #12 as far as I know, but still this problem remains and prevents froms opening the zips.
I believe it also needs d3dcompiler_47 to run correctly
This got it working for me and I updated my Python script. Should be fully working now 🤞 Thanks
After countless times trying I managed to get it to work for me. I run the script with the --setup
and --clean
flags but before that I had done the following:
- purged wine re-installed wine (latest stable version) manually installed cabextract (sudo apt install cabextract)
After that running the script (with the --setup and --clean flags) works flawlessly. Now I still have the issue of BG3MM point to the wrong folder for the Profiles and Mods folders but one step at a time I guess