- Excel Table to find your character/dialogue/spell etc
- Every single Character Visuals in a single file
- How to Change Portraits
- Modding Best Practices - Only use the necessary assets & make your mod future proof.
- How to Change Voices using AI
>>BG3 Asset Dictionary<<
Gone are the days of rooting through English.xml, and LSF files. I've compiled them all into a table.

How to use this table
Example Scenario, I want to find all of Mizora's Character Visuals.
1. Open the file in excel
2. Do a text filter for the whole word "Mizora" only.
3. You will now find 4 rows with "Name" and "MapKey" info.
4. Open the master file for [PAK]_CharacterVisuals I have attached below in notepad.
5. Search for one of Mizora's Keys and you will find the Character Visuals for exactly that "Resource". And go about changing her appearance to your liking.
2.Every single Character Visuals in a single file
>>[PAK]_CharacterVisuals.LSF (Patch3Hotfix2) <<
I've combined the [PAK]_CharacterVisuals/merged.lsf from SharedDev, Shared, Gustav and GustavDev into a single xml file. So you can use the table above to directly go and edit your character. You need to convert it to LSX before you can use it obviously.
3. How to Change Portraits
All the portraits are in DDS format within the following locations. All the portraits are in DDS format within these folders. Searching for Characters by name should show you their portrait, though in some rare cases you might have to eyeball it (windows explorer shows you a preview of the portrait):
Gustav_Textures.pak Mods\Gustav\GUI\Assets\Portraits
Gustav_Textures.pak Mods\GustavDev\GUI\Assets\Portraits
Shared.pak Mods\Shared\GUI\Assets\Portraits
Shared.pak Mods\SharedDev\GUI\Assets\Portraits
Unfortunately, you need to manually take a screenshot and overwrite the .DDS files in the Portraits folder. Unlike LSF files, you cannot prevent an override by renaming SharedDev/GustavDev etc to your mod name like you can with LSF files. But this does not matter since you are only changing specific portraits with specific names.
1. I installed DDS file plugin for Photoshop (https://fnordware.blogspot.com/2014/09/ ... s-and.html)
2. Opened the .DDS file in Photoshop
3. Pasted in a screenshot of new Wyll
4. Saved with no changes to DDS file format.
5. WARNING: Photoshop saves your file as .dds (small letter). BG3 expects the file to be .DDS (capitals). You will need to manually check that the file extension is upper case. Otherwise the override won't work.
Turn based-combat, Character Creation, and portraits of transformed version of your Companions/Origins rely on these DDS files
Portraits in game of untransformed Companions/Origins is actually obtained from your live in game 3D model and is unaffected by the Portraits folder. So you need to rely on a level up to refresh the portrait.
4. Modding Best Practices
Only use the necessary assets & make your mod future proof.
- LSF files in the same file path after SharedDev, Shared, GustavDev, Gustav all merge together into one before the game is loaded. E.g.
- Public / SharedDev /Content/[PAK]Character_visual/merged.lsf
- Public / Shared /Content/[PAK]Character_visual merged.lsf
- Public / GustavDev /Content/ [PAK]Character_visual /merged.lsf
- Public / Gustav /Content/[PAK]Character_visual /merged.lsf
- Public / yourmodname /Content/[PAK]Character_visual /merged.lsf.
- Renaming your merged.lsf to random.lsf still works.
- Multiple .lsf files can be dropped in the same Public/yourmodname/ folder and have the same effect as dropping Gustav/../merged.lsf and GustavDev /../merged.lsf separately. E.g.
- Your mod’s LSF file does NOT need to contain everything from the original file if you use this file convention:
- Public/Yourmodname/Content/[PAK]Character_visual /renamed.lsf
- Note: EVERYTHING between a <node=”Resource”> and </node> has to be included otherwise if you change eye colour in the Resource and leave out the rest. You’ll just have floating eyes.
- It's best to use the LSV from the latest PatchXHotfixY.pak file instead of the one from Gustav.pak or Shared.pak when you first build your mod.
- Finally, you can pack your mod into a handy little zip file using bg3-modders-multitool, and we can easily import stuff into BG3 manager. This way we can decide which mod gets priority if two mods have some clashing character Resources.
Found a video tutorial on Youtube. I'm trying it out. Looking at his python script. It seems legit.
You need to pick a voice models for this. There's a huge list in this link:
Voice Models: https://huggingface.co/QuickWick/Music- ... /tree/main
How to add more characters to the character selector
- Open bg3-ai-voicetoolkit-main\lib\voice_selector.py in notepad++
- You'll see a numbered list with character names and an id
- Simply maintain the same format to add another character.
- "Name" can be of your choosing.
- But id must match the voice of the NPC you are interested in.
- Use the dictionary I've attached to find a voice line belonging to the NPC you are interested in
- In the same row as the matching text you will find a handle.
- Assuming you have installed and unpacked at least "Gustav" and ALL the patches using bg3-modders-multitool, search for this"handle"
- Now look for an .lsf file with the path: Mods\***\Localization\English\Soundbanks\***.lsf
- Extract and open the file in notepad++
- Search for your handle, the vcXXXX or vXXXXX code will be attached to it with an underscore e.g. handle_vcXXXXXX
- Now add the vcXXXX / vXXXX as an "id" to the voice_selector.py
- Go back and open 1.Select Character.bat and boom his/her voice lines are selectable. And audio should be loaded to
bg3-ai-voicetoolkit-main\Mangio-RVC-v23.7.0\audios