M461573R deserves all credit for walking me through this process. I only wanted to post a tutorial for anyone else interested in learning. 



Tools

  • IZArc to access the pak files.
  • Notepad to alter the code lines. 


Resources




Getting Started

For the purpose of this tutorial, I'll use the Steam file path for the game. 


To find your game's directory, you have to go to:

C:\Steam\steamapps\common\KingdomComeDeliverance2


We need to find the clothing_preset.xml, which is in the Data folder


Now you're going to use IZArc to open the Table.PAK


Navigate to 

Data\Tables.PAK\Libs\Tables\item\clothing_preset.xml


Open the clothing_preset.xml using Notepad. We don't want to make any changes, since we're just looking, so don't save when you close it.



As you can see, this has info on every character in the game, so it's a pretty long list.  I'll use Radzig as our example. 



Use the Find function (Ctrl+F) and search for "Radzig"

It should pull up two results: one for his fully armored 'helmet' outfit, and one for his normal wear. 

(As a side note, some characters have different names - their Anglicized name, and their Czech name. Radzig is also listed as "Racek" in some instances. His horse's information can only be found by searching for "Racek" )



This is what the code looks like for his default clothing

<clothing_preset clothing_preset_id="d17060bd-7fec-401e-b443-fa4d80ba7ed7" clothing_preset_name="UC_Radzig" gender="Male" prefers_hood_on="false">
<Items>
<Guid>1cae111a-6457-4874-b43f-3b28ce4ac480</Guid>
<Guid>3c3b344a-89ed-472f-bb12-f397e7a055c8</Guid>
<Guid>ac58f8fa-e6ce-4503-812d-b446612c46e1</Guid>
<Guid>65ebe8ab-14d5-475e-b31b-a2c6624560a7</Guid>
<Guid>6fad4fc0-eb11-4394-943f-d8def9871cc2</Guid>
<Guid>dea34002-3f44-4a25-891e-8674b075fed6</Guid>
<Guid>86183abd-43c5-4762-8a0c-12f4a8057fe7</Guid>
</Items>
</clothing_preset>

The info under <clothing_preset> is info about Radzig's character model. We only need to know his name to locate his gear. 

What we want to change will be listed under <Items>  Each <Guid> is a different piece of clothing. 

Go ahead and copy/paste this into Notepad. 



Scroll all the way to the top of the clothing_preset.xml and copy the first 3 lines of code and paste this at the top of Radzig's info 

<?xml version="1.0" encoding="us-ascii"?>
<database xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="barbora" xsi:noNamespaceSchemaLocation="../database.xsd">
<clothing_presets version="2">

Now we're going to go to the very end of the file and grab the last 2 lines and paste it on the end of Radzig's info

</clothing_presets>
</database>

So this is what the code for modding Radzig's preset would look like

<?xml version="1.0" encoding="us-ascii"?>
<database xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="barbora" xsi:noNamespaceSchemaLocation="../database.xsd">
<clothing_presets version="2">
<clothing_preset clothing_preset_id="d17060bd-7fec-401e-b443-fa4d80ba7ed7" clothing_preset_name="UC_Radzig" gender="Male" prefers_hood_on="false">
<Items>
<Guid>1cae111a-6457-4874-b43f-3b28ce4ac480</Guid>
<Guid>3c3b344a-89ed-472f-bb12-f397e7a055c8</Guid>
<Guid>ac58f8fa-e6ce-4503-812d-b446612c46e1</Guid>
<Guid>65ebe8ab-14d5-475e-b31b-a2c6624560a7</Guid>
<Guid>6fad4fc0-eb11-4394-943f-d8def9871cc2</Guid>
<Guid>dea34002-3f44-4a25-891e-8674b075fed6</Guid>
<Guid>86183abd-43c5-4762-8a0c-12f4a8057fe7</Guid>
</Items>
</clothing_preset>
</clothing_presets>
</database>

So now that we have this copied into a new Notepad document, we're going to close the clothing_preset.xml and do not save if it asks. 



We're going to stop here for an Important Note


Due to the way KCD2 handles .PAK files, it's easier to use a pre-existing mod or the game's original files as a template, rather than creating new folders and files.

The reason I say this is because you can have all of the coding and the folder format right, but sometimes the game decides not to register your changes, so you get issues where everyone in the entire game is in their underwear. 


You're going to want this folder structure, either copied from a mod (feel free to use mine) or from the KCD2 game path. 

Data\Tables.PAK\Libs\Tables\item\clothing_preset.xml

If you choose to use the game's file, make sure you create a backup by copying it and renaming it original_clothing_preset.xml. Move this copy to a different location for safe keeping. Don't keep it in the game directory. This way, if something doesn't work or you don't want to keep the changes, you can delete your modified version and put the original game files back, without having to reinstall. 

No matter which method you pick, you have to keep the folder structure the same. Simply open the copied clothing_preset.xml and delete it's contents. 


I prefer to use another mod as a template, as it will have the mod folder with a data folder, a mod.manifest, and a mod.pak file. (We'll talk more about these later.)

Now we have a template to work with for our mod.



Making Your Changes


This is the time consuming part. We're going to play dress up with Henry! 

You probably already have an outfit in mind, but without the item id's, that doesn't mean much. There are two ways to do this: 


1. You can use the KCD2 wiki's resource for item id's.
  • Pro: it has image icons. 
  • Con: it's not 100% updated and not all items list the id codes.


2. Or you can download the Cheat Script Pack to add items in game. 

Once you find your items, you have to cross reference the in game names to find the item id using this spreadsheet. The spreadsheet is pretty good about item sequence -  for example, there are 10 varieties of the baggy cap, so on the spreadsheet, you just need to sort the displayed name by ascending values, and then find the 10th row listed as "baggy cap" to get the item code. 

Once you find the items you'd like to replace, copy and paste the item Id into notepad. 



Going back to Radzig as an example, after finding the items I want him to wear, his code now looks like this

<?xml version="1.0" encoding="us-ascii"?><database xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="barbora" xsi:noNamespaceSchemaLocation="../database.xsd">
<clothing_presets version="2">
<clothing_preset clothing_preset_id="d17060bd-7fec-401e-b443-fa4d80ba7ed7" clothing_preset_name="UC_Radzig" gender="Male" prefers_hood_on="false">
<Items>
<Guid>1cae111a-6457-4874-b43f-3b28ce4ac480</Guid>
<Guid>2db34fd5-db13-44ce-843d-a794a8077f7e</Guid>
<Guid>ac26f226-5020-4f2e-be67-8748fd5b789e</Guid>
<Guid>264cac3e-f5f6-4988-8809-2822403865d1</Guid>
<Guid>5a189394-0191-4545-9d9f-98db7fce4745</Guid>
<Guid>15189439-5098-4a3a-bab4-18b42dfd936c</Guid>
<Guid>96981577-61e6-4e10-bb01-c3cb879aa920</Guid>
</Items>
</clothing_preset>
</clothing_presets>
</database>

You can add multiple instances for the same mod if you want. Each category just gets it's own <clothing preset> I have Radzig's normal clothes, his armor, and his horse's equipment all in the same clothing_preset.xml that I use for myself. 


Example:

<?xml version="1.0" encoding="us-ascii"?>
<database xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="barbora" xsi:noNamespaceSchemaLocation="../database.xsd">
<clothing_presets version="2">
<clothing_preset clothing_preset_id="d17060bd-7fec-401e-b443-fa4d80ba7ed7" clothing_preset_name="UC_Radzig" gender="Male" prefers_hood_on="false">
<Items>
<Guid>1cae111a-6457-4874-b43f-3b28ce4ac480</Guid>
<Guid>2db34fd5-db13-44ce-843d-a794a8077f7e</Guid>
<Guid>ac26f226-5020-4f2e-be67-8748fd5b789e</Guid>
<Guid>264cac3e-f5f6-4988-8809-2822403865d1</Guid>
<Guid>5a189394-0191-4545-9d9f-98db7fce4745</Guid>
<Guid>15189439-5098-4a3a-bab4-18b42dfd936c</Guid>
<Guid>96981577-61e6-4e10-bb01-c3cb879aa920</Guid>
</Items>
</clothing_preset>
<clothing_preset clothing_preset_id="a9711761-1d38-456e-b81d-d2f10a627132" clothing_preset_name="UC_RadzigHelmet" gender="Male" prefers_hood_on="false">
<Items>
<Guid>1cae111a-6457-4874-b43f-3b28ce4ac480</Guid>
<Guid>5a189394-0191-4545-9d9f-98db7fce4745</Guid>
<Guid>15189439-5098-4a3a-bab4-18b42dfd936c</Guid>
<Guid>96981577-61e6-4e10-bb01-c3cb879aa920</Guid>
<Guid>f96f93ed-3141-4a31-9d3b-eac9f4c1c422</Guid>
<Guid>ac26f226-5020-4f2e-be67-8748fd5b789e</Guid>
<Guid>264cac3e-f5f6-4988-8809-2822403865d1</Guid>
<Guid>8c7cf9ff-cf06-41fb-a92a-14651c0005b9</Guid>
<Guid>0e5e386e-98cd-46a3-bd46-b154c7e74151</Guid>
<Guid>2f88924c-f968-4d0c-80d2-ed8e63787783</Guid>
<Guid>62a81406-526e-400a-bea3-16cc76dfd069</Guid>
</Items>
</clothing_preset>
<clothing_preset clothing_preset_id="ea81c27b-4666-466d-8f51-c2d6addc678f" clothing_preset_name="tsem_racekHorse" gender="NotDefined" prefers_hood_on="false">
<Items>
<Guid>68204d36-5d4d-412e-9b37-8bce360952f3</Guid>
<Guid>e9b2dae4-fcf1-4ac7-8a0c-4b65af20e6fd</Guid>
<Guid>e9bba790-bae7-4b97-a683-8fc8c14e7ad1</Guid>
</Items>
</clothing_preset>
</clothing_presets>
</database>


Now we just need to put the files in game! 




Mod Folder Creation


We're going to go back to the copy of 

Data\Tables.PAK\Libs\Tables\item\clothing_preset.xml

that we got earlier from another mod. 


The folder structure should look like

\ModName\Data\Libs\Tables\item\clothing_preset__ModName.xml

\Modname\Data\ModName.pak\Libs\Tables\item\clothing_preset__ModName.xml

\ModName\mod.manifest




Open the clothing_preset.xml that we deleted everything from and paste the code we just made for Radzig. 

Save it with the new name 

clothing_preset__RadzigSkalitzArmor.xml

(It's important that there are two underscores after clothing_ preset!)

Go back and do the same thing to the clothing_preset.xml located inside of the .PAK folder



Now we can rename the folders to match our mod. The folder name needs to match exactly with what we named the .xml 

Rename the main folder, the .PAK file, and the two .xml files to your mod's name. 


Ours will look like this: 

\RadzigSkalitzArmor\Data\Libs\Tables\item\clothing_preset__RadzigSkalitzArmor.xml

\RadzigSkalitzArmor\Data\\RadzigSkalitzArmor.pak\Libs\Tables\item\clothing_preset__RadzigSkalitzArmor.xml

\RadzigSkalitzArmor\mod.manifest


All that's left is to change the mod.manifest

It should follow this format

<?xml version="1.0" encoding="us-ascii"?>
<kcd_mod>
<info>
<name>Mod Name</name>
<modid>ModName</modid>
<description>Mod Description</description>
<author>Your Name</author>
<version>Game Patch Version</version>
<created_on>Date</created_on>
<modifies_level>false</modifies_level>
</info>
</kcd_mod>


Mine looks like this

<?xml version="1.0" encoding="us-ascii"?>
<kcd_mod>
<info>
<name>Radzig Skalitz Armor</name>
<modid>RadzigSkalitzArmor</modid>
<description>Brown Kobyla Hood & fancy armor</description>
<author>pudi0072000</author>
<version>1.2</version>
<created_on>3/13/2025</created_on>
<modifies_level>false</modifies_level>
</info>
</kcd_mod>

 

Now you should be able to drop our newly made RadzigSkalitzAmor folder into 

C:\Steam\steamapps\common\KingdomComeDeliverance2\Mods

If you don't have a Mods folder yet, just create a new folder and name it Mods. 


Now when we load up the game, Radzig should be wearing his new armor instead of the default. 

Article information

Added on

Edited on

Written by

pudi0072000

0 comments