Modding:Unpacking and converting files

From bg3.wiki
Revision as of 12:50, 31 August 2023 by HINK (talk | contribs) (→‎.dds)
Jump to navigation Jump to search
Main page: Modding Resources

Tools

  • LSLIB by Norbyte
    • Note: This step is primarily for acquiring the granny2.dll from a previous version of LSLIB. The latest release version may already have this file present, in which case you can just install the latest release.
    • Install 1.15.13 first, then install whichever is the LATEST release
  • Modders Multitool by ShinyHobo

Unzip the Modders Multitool. This is a small program that simplifies unpacking and viewing of files. It throws all unpacked files into its own directory, so put it where there is enough free disk space.

ExportTool of the latest version can be placed in any convenient place. This is the "engine" that decompresses files and converts them into a readable format. Modders Multitool uses it.

Tools Settings

Before unpacking the files, you need to do a few tweaks. Run bg3-modders-multitool.exe from the folder where you unpacked Modders Multitool and click on the asterisk.

Modders Multitool 01.webp

Here you will need to specify the path to divine.exe, which is located in ExportTool-vX.X.X/Tools And the .exe of the game itself in the path Baldurs Gate 3/bin. For Vulcan it is bg3.exe, for DirectX it is bg3_dx11.exe

Modders Multitool 02.webp


Now to ExportTool.

This project needs the granny2.dll file to work correctly. Due to licensing issues at one point, Norbyte removed this file from some of the later versions of ExportTool, but it exists in older versions, such as v1.15.13, the link to which is above.

Verify that the granny2.dll file is present in the ExportTool's root folder and in the Tools sub-folder. If the file is present in both of these folders, then nothing more needs to be done with ExportTool and you can skip to the next section of this guide.

If the granny2.dll file is missing from the root folder and/or the Tools sub-folder of the latest version of ExportTool, then you will need to copy the file over from the older version v1.15.13. Open the archive ExportTool-v1.15.13.zip, copy the granny2.dll file, and paste it where you unpacked the latest version of ExportTool in the root folder and in the Tools sub-folder. Nothing more needs to be done with ExportTool.

Unpacking Process

Open Modders Multitool again and click Unpack.pak Files. A menu appears.

207px-Pak Selection.webp

Common files:

  • English.pak — this is where the localization files are located. All text strings that are displayed in the game.
  • Gustav.pak — text files in .lsf format. Level data, dialog files, equipment stats, spells.
  • Materials.pak — materials (shaders). It is useless in itself, but you can see what materials are in the game to assign them to your model.
  • Models.pak — models in .gr2 format. Heads, hair, armor, architecture, etc.
  • Textures.pak — textures in .dds format. There are not a lot of them here, mostly they are color ID masks that divide the armor into zones for coloring. But there are textures for faces, hair, tattoos. Some environment textures.
  • Shared.pak — text files in .lsf format. Overlaps with Gustav in some respects. Model data with assigned materials, skin, hair, eye colors, etc. for the character editor, also equipment stats, spells.
  • VirtualTextures.pak — most of the textures of the game, are packed in virtual textures to improve performance.
  • Voice.pak — voice lines.

Check the boxes against what you need and click Confirm. Unpacking may take a while.

Files conversion

Most unzipped files are not viewable or editable, so you will have to convert them to a readable format.

.lsf → .lsx

Most files from Gustav.pak and Shared.pak. Modders Multitool can convert them to readable .lsx. Once you are done unpacking the files, you need to click Decompress Files and wait for the files to be automatically converted.

.gr2 → .dae

Model (mesh) files from Models.pak. These can be converted using ExportTool. In the first tab of the GR2 Tools program specify the path to the desired .gr2 file and below the path where the converted file will be saved. !!! You must add .dae after the name !!!

800px-Export Tool gr2 conversion.webp

First click the Import button to import the game .gr2 model, then Export to convert it to .dae format. .dae can be opened with any 3D editor.

You can also import .gr2 directly into Blender 3.x.x+. Norbyte has updated their plugin for importing and exporting models, the latest can be found here. In the addon settings we specify the path to divine.exe from ExportTool.

Blender gr2 addon 01.webp

Now you can import .gr2 directly into Blender.

623px-Blender gr2 addon 02.webp

.dds

Texture files from Textures.pak. These can be opened by installing the Adobe Photoshop Plugin from the Nvidia website. For those who don't have Photoshop, the free Gimp from version 2.10.10 onwards should have .dds support. Paint.net can also open .dds files and is free.
If you need to import textures into other programs or engines (Substance Painter, Blender, Unreal, Unity), it's best to save them in Targa (.tga) format. This will leave the alpha channel intact.

.gts → .dds

Virtual textures from VirtualTextures.pak. They can also be unpacked with ExportTool (starting with version 1.17.0). Go to the Virtual Textures tab, specify the .gts file, export path and click Extract Textures. It will make a bunch of .dds files.

.wem → .ogg

Audio files from Voice.pak. For .wem you will need Automatic .wem to .ogg Converter script from Nexus Mods. It is made for Monster Hunter: World, but it works perfectly with BG3 files. Inside the archive there is a folder WEM to OGG Converter. You need to put the files from it into the folder where .wem files are located and run script.bat. The script will automatically convert all .wem to .ogg files that can be opened with a standard media player.

.loca → .xml

Localization text from English.pak (presumably the same for other languages). The .loca files can be converted with Export Tool. Select the .loca file and specify the name of a .xml file to use as output.