Modding:Modding class icons
Existing Class Icons
For reference, you can find Class/Subclass Icons in game.pak, under the folder Public\Game\GUI\Assets\ClassIcons. There are two versions of the icon, the one here is shown in the top right of the Character Creation Screen, or the character sheet/spellbook screens ingame. The second smaller version is located in the "Hotbar" folder, and is shown when selecting the Class/Subclass in the Character Creation Screen, or in the left-hand side of the hotbar.
Creating New Class Icons
You can create/edit DDS files using the following tools:
Photoshop - https://www.adobe.com/products/photoshop.html
Texture Tools Exporter (free) - https://developer.nvidia.com/nvidia-texture-tools-exporter
GIMP (free alternative) - https://www.gimp.org
Paint.net (free alternative) - https://www.dotpdn.com/downloads/pdn.html
Settings to export DDS with:
Adding Class Icons to ImprovedUI
Option 1: Dynamic (Easy)
Store the .DDS icons in your mod using the same folder structure as Larian (Public\Game\GUI\Assets\ClassIcons). Name the icon with the same name as you have called the class in your classdescriptions.lsx file. To prevent conflicts, I recommend using unique names here, such as mod author prefix, and Classname_Subclassname:
Option 2: Direct (Medium)
This requires directly adding an entry into ImprovedUI Assets, and would then be included in an ImprovedUI Assets update.
To properly support these, your icons would need to be stored in a slightly different folder, to make it obvious which mod each entry comes from. The icon would need to be stored in (Public\Game\GUI\Assets\MODNAME\ClassIcons)
You can unpack a supported mod for reference - List of supported mods
In GitHub, you would need to create a fork of ImprovedUI - https://github.com/TheRealDjmr/BG3ImprovedUI
Steps how to fork an existing repo (requires a GitHub account) - https://docs.github.com/en/get-started/quickstart/fork-a-repo
The only file that needs to be amended in your fork is IUI_ClassIcons
This file has been heavily commented to assist with this process. For each "EDIT HERE" section, an entry can be added for your classes/subclasses.
Your entry would need to follow this format:<!--<DataTrigger Binding="{Binding IDString}" Value="CLASSNAME">
<Setter Property="Source" Value="pack://application:,,,/GustavNoesisGUI;component/Assets/MODNAME/ClassIcons/NAMEOFDDSFILEFORTHECLASSICON.png"/>
</DataTrigger>-->