Modding:Modding class icons

From bg3.wiki
Jump to navigation Jump to search

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:

Image (3).png

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:

Redmage.png

Redmage 2.png


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>-->
Note that these entries are listed with .png even though the icon is stored as .DDS. This is to keep format parity with Larian's icons. Technically .DDS also works but there's probably a reason why Larian did this, so we're doing the same.