Authors: Vawser
In this tutorial, we will be adding a new icon, specifically icon ID 1099.
The same instructions apply for any icon ID, so substitute 1099 for your actual icon ID when reading the instructions below.
To start with, the new icon needs to be added to the shoebox layout files that are used to define the icon atlases.
To do this, copy the 01_common.sblytbnd.dcx file into your mod structure. It should be placed like so: <mod name>\menu\hi.
Unpack the 01_common.sblytbnd.dcx file with WitchyBND. This will result in a folder called 01_common-sblytbnd-dcx, containing all the layout files.
You can edit the layout files with a text editor (Notepad++ is used during this tutorial).
Within the layout file, the following terms are:
Once the the layout files have been edited, you can repack the file by using WitchyBND with the 01_common-sblytbnd-dcx folder, which will place the edited layout files into a new 01_common.sblytbnd.dcx.
These are the specific actions you should take for this tutorial:
01_common.sblytbnd.dcx file.SB_Icon.layout file.MENU_ItemIcon_01100.png as its name, placing the new line above it.MENU_ItemIcon_01099.png.x attribute to 0.y attribute to 204801_common.sblytbnd.dcx file.
Edit the icon file found within the 01_common.tpf.dcx file.
01_common.tpf.dcx file.SB_Icon.dds file (with Photoshop or other image editoring software).SB_Icon.dds file.01_common.tpf.dcx file.
The new icon as defined in the shoebox layout needs to be explicitly added to all relevant GFX files.
You need to edit the following GFX files:
01_000_FE.gfx01_000_FE_Stadia.gfx (can be skipped)01_012_itemquantityselect.gfx01_990_Trial_FE.gfx (can be skipped)02_200_mainmenu.gfx02_202_equipweaponselect.gfx02_205_bossselect.gfx02_206_costumeselect.gfx02_207_bossselect_multi.gfx02_280_getitem.gfx02_281_getitem_middle.gfx02_282_getitem_high.gfx02_284_getitem_event.gfx02_991_Trial_MainMenu.gfx (can be skipped)03_001_shop.gfx03_202_bonfire.gfx03_204_upgrade.gfx03_206_skill.gfx
You should use the batch scripts as found in FFDEC Tips and Tricks, they will let you quickly decompile the GFX files into XML, and vice versa.
To add a new icon, you to define and the display it within the GFX file.
To define a new icon, you need to define a new DefineExternalImage2 (see below).
To display a new icon, you need to add three new selements to a DefineSpriteTag section:
The reason it is done like this is because the DefineSpriteTag section uses the icon ID of the external image as an index to indicate which frameTag to show. Therefore each group of RemoveObject2Tag, PlaceObject3Tag and ShowFrameTag can be thought of as representing a group, indexed by their position in the list.
Note, the DefineSpriteTag sections are split into blocks of 1000, which tend to be groups of individual types of icons, such as weapons, equipment, etc.
These are the specific actions you should take for this tutorial.
Note this only covers the HUD, e.g. 01_000_FE, you'll need to do the same process for all of the GFX files as listed in the general section.
01_000_FE.xml file open in your text editor, search for MENU_ItemIcon_01100DefineExternalImage2 line for it. Duplicate this line, placing it above.DefineExternalImage2 line, change the characterID attribute to a unique ID (e.g. it must not match any existing ID). As it doesn't have to be sequential, you can simply change this to a high number, such as 5000.DefineExternalImage2 line, change the exportName attribute to MENU_ItemIcon_01099.DefineExternalImage2 line, change the fileName attribute to MENU_ItemIcon_01099.tga.DefineExternalImage2 line, change the imageID attribute to match the ID you chose for characterID.01_000_FE.xml file open in your text editor, search for the characterID=“532”.PlaceObject3Tag section.RemoveObject2Tag and the PlaceObject3Tag section, placing them above the ShowFrameTag that precedes the found PlaceObject3Tag section.characterId in the duplicated PlaceObject3Tag to your new characterID.01_000_FE.xml back to 01_000_FE.gfx.