Closed airtonix closed 11 months ago
Unfortunately this is due to the way these mods are packaged, they dont contain the required metadata in the places we expect, while bg3mm can extract them with the divinity tools there is sadly no linux equivalent. I am however working on an extraction method with quickbms which works with the v18 packfiles but nothing older than that. 1.0.9 should be able to pull this information as currently we can only pull from files that include the metadata (info.json) or earlier pak files that keep their metadata in plaintext within the pak.
Unfortunately this is due to the way these mods are packaged, they dont contain the required metadata in the places we expect, while bg3mm can extract them with the divinity tools there is sadly no linux equivalent. I am however working on an extraction method with quickbms which works with the v18 packfiles but nothing older than that. 1.0.9 should be able to pull this information as currently we can only pull from files that include the metadata (info.json) or earlier pak files that keep their metadata in plaintext within the pak.
Having this in mind, has Larian/someone documented the format used for the PAK files anywhere? I'd like to write parsers for them myself but I can't seem to find any documentation on them written down. Am I correct in thinking that lslib
would be the place to read this in source format if it's not explicitly documented anywhere?
Of the libraries you're using for Lamp. the only library I'm even a little bit familiar with is ImgUI (but from the golang end).
So I don't understand any of what you said or why it affects the fact that deploying three mods results in only one of them randomly ending up in the modsettings.lsx
.
If it's the library causing the issue of clobbering the generated modsettings.lsx
, then my peasant brain would look to solve this with generating a modsettings.lsx
for each mod and then writing our own bit of glue to merge them.
maybe I completely misunderstand the problem?
So the problem right now is unless the metadata is provided alongside the mod, we have to extract it, See lampParse.h, we're scrapping it out via plaintext which only sort of works.
There is no documentation persay but here's what I've scraped together, it's lz4 frames and you can unpack current v18 using this quickbms script https://github.com/smacx250/BG3/blob/main/misc_script/getBg3PakMeta.bms
There is also the windows c# libary called lslib which can be built on linux (with the linux port fork) but I couldn't get functioning https://github.com/Norbyte/lslib
https://github.com/pimzero/lslib/tree/linux-port
On Sun, 15 Oct 2023, 22:56 Zeno Jiricek, @.***> wrote:
Of the libraries you're using for Lamp. the only library I'm even a little bit familiar with is ImgUI (but from the golang end).
So I don't understand any of what you said or why it affects the fact that deploying three mods results in only one of them randomly ending up in the modsettings.lsx.
If it's the library causing the issue of clobbering the generated modsettings.lsx, then my peasant brain would look to solve this with generating a modsettings.lsx for each mod and then writing our own bit of glue to merge them.
maybe I completely misunderstand the problem?
— Reply to this email directly, view it on GitHub https://github.com/CHollingworth/Lamp/issues/48#issuecomment-1763514712, or unsubscribe https://github.com/notifications/unsubscribe-auth/ARGLQVOYAIJ6Y7UQUIWILXLX7RL2TANCNFSM6AAAAAA6ATSHV4 . You are receiving this because you commented.Message ID: @.***>
Unfortunately this is due to the way these mods are packaged, they dont contain the required metadata in the places we expect, while bg3mm can extract them with the divinity tools there is sadly no linux equivalent. I am however working on an extraction method with quickbms which works with the v18 packfiles but nothing older than that. 1.0.9 should be able to pull this information as currently we can only pull from files that include the metadata (info.json) or earlier pak files that keep their metadata in plaintext within the pak.
Having this in mind, has Larian/someone documented the format used for the PAK files anywhere? I'd like to write parsers for them myself but I can't seem to find any documentation on them written down. Am I correct in thinking that
lslib
would be the place to read this in source format if it's not explicitly documented anywhere?
If you do please let me know, id love to use it in Lamp isntead of my current idea of downloading quickbms in the background
Well. Issue closed, i was going to give up but ive written the parser this gave me the kick to get it done and done right. Thank you all. v1.0.9 will have this fixed
Ive also released the canary for those not wanting to build, as always its on the discord.
Describe the bug
with these mods enabled and deployed
These
.pak
files are copied:this is the
Lamp_Data/Mod_lists/BG3.mdf
but this is the
Lamp_Data/Deployment/Baldur's Gate 3/PlayerProfiles/Public/modsettings.lsx
but if i go through a process of deploying each one individually in order to get the right xml values for each mode i can end up with a manually created
modesettings.lsx
:and then do one final enable all and deploy to get mods copied.
Error message
no error messages
To Reproduce Steps to reproduce the behaviour:
Standard Mod
Deploy
ls -al ~/.local/share/Steam/steamapps/compatdata/1086940/pfx/drive_c/users/steamuser/AppData/Local/Larian Studios/Baldur's Gate 3/Mods
to confirm.pak
files are therecat ~/.local/share/Steam/steamapps/compatdata/1086940/pfx/drive_c/users/steamuser/AppData/Local/Larian\ Studios/Baldur\'s\ Gate\ 3/PlayerProfiles/Public/modsettings.lsx
Expected behaviour
All deployed mods should be listed in
~/.local/share/Steam/steamapps/compatdata/1086940/pfx/drive_c/users/steamuser/AppData/Local/Larian\ Studios/Baldur\'s\ Gate\ 3/PlayerProfiles/Public/modsettings.lsx
Screenshots If applicable, add screenshots to help explain your problem.
System Info (please complete the following information):
Lamp 1.0.8
(built from this commit: https://github.com/airtonix/Lamp/commit/66d5f73b61c07661bc1fbaa6e70fb05803113711 using./setup.sh && act push
Additional context Add any other context about the problem here.