Difference between revisions of "Modding guide for KCD"

From Nexus Mods Wiki
Jump to: navigation, search
(Updated information to adhere to the changes presented in KCD game versions 1.9.4, 1.9.5, and 1.9.6.)
m
 
(4 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
 
 
 
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">The features in this article are available in KCD version 1.9.5 and later.</span></span></span>
+
<span style="font-size:large;">The features in this article are available in KCD version 1.9.5 and later.</span>
  
 
&nbsp;
 
&nbsp;
Line 8: Line 8:
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal">'''<u><span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mod Installation</span></span></u>'''<span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">:</span></span></span>
+
'''<u><span style="font-size:18.0pt">Mod Installation</span></u>'''<span style="font-size:18.0pt">:</span>
  
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mods are loaded from the "Mods" folder in the game's root directory.</span></span></span>
+
Mods are loaded from the "Mods" folder in the game's root directory.
  
 
&nbsp;
 
&nbsp;
  
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">In the <span style="color:#0070c0">STEAM</span> version you can usually find it at:</span></span></span>  
+
*<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:">In the <span style="color:#0070c0">STEAM</span> version you can usually find it at:</span></span></span></span>  
  
<span style="line-height:normal"><span style="border:solid windowtext 1.0pt; font-size:12.0pt;  padding:0in"><span style="font-family:" courier="" new""="">C:\Program Files (x86)\Steam\steamapps\common\KingdomComeDeliverance\Mods\</span></span></span>
+
<span style="border:solid windowtext 1.0pt; padding:0in">C:\Program Files (x86)\Steam\steamapps\common\KingdomComeDeliverance\Mods\</span>
  
 
&nbsp;
 
&nbsp;
  
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">In the <span style="color:#cc0099">GOG</span> version you can usually find it at:</span></span></span>  
+
*<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:">In the <span style="color:#cc0099">GOG</span> version you can usually find it at:</span></span></span></span>  
  
<span style="line-height:normal"><span style="border:solid windowtext 1.0pt; font-size:12.0pt;  padding:0in"><span style="font-family:" courier="" new""="">C:\Program Files (x86)\Steam\steamapps\common\KingdomComeDeliverance\Mods\</span></span></span>
+
<span style="border:solid windowtext 1.0pt; padding:0in">C:\Program Files (x86)\GOG Galaxy\GOG Games\Kingdom Come Deliverance\Mods\</span>
  
 
&nbsp;
 
&nbsp;
Line 30: Line 30:
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">If the Mods folder does <span style="color:#c00000">NOT</span> exist — create it.</span></span></span>
+
If the Mods folder does <span style="color:#c00000">NOT</span> exist — create it.
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">To <u>install</u> a mod — '''move''' it into the “Mods” folder.</span></span></span>
+
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">To <u>uninstall</u> a mod — '''delete''' it from the “Mods” folder. You can also temporarily disable a mod by using</span></span><span style="font-size:12.0pt">[[#Mod_loading_order|<span style="font-family:" times="" new="" roman",serif"=""><span style="color:blue">mod_order.txt</span></span>]]</span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">.</span></span></span>
+
To <u>install</u> a mod — '''move''' it into the “Mods” folder.
 +
 
 +
To <u>uninstall</u> a mod — '''delete''' it from the “Mods” folder. You can also temporarily disable a mod by using&nbsp;[[#Mod_loading_order|mod_order.txt]].
  
 
&nbsp;
 
&nbsp;
Line 42: Line 44:
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal">'''<u><span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mod Structure</span></span></u>'''<span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">:</span></span></span>
+
'''<u><span style="font-size:18.0pt">Mod Structure</span></u>'''<span style="font-size:18.0pt">:</span>
  
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">In the Mods folder, each mod has its own subfolder, which replicates the game's directory structure, for example:</span></span></span>
+
In the Mods folder, each mod has its own subfolder, which replicates the game's directory structure, for example:
  
 
&nbsp;
 
&nbsp;
  
*<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mods\mod_name\mod.cfg</span></span></span></span>  
+
*<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:">Mods\mod_name\mod.cfg</span></span></span></span>  
*<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mods\mod_name\mod.manifest</span></span></span></span>  
+
*<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:">Mods\mod_name\mod.manifest</span></span></span></span>  
*<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mods\mod_name\Data\mod.pak</span></span></span></span>  
+
*<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:">Mods\mod_name\Data\mod.pak</span></span></span></span>  
*<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mods\mod_name\Data\Levels\rataje\mod.pak</span></span></span></span>  
+
*<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:">Mods\mod_name\Data\Levels\rataje\mod.pak</span></span></span></span>  
*<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mods\mod_name\Data\Levels\new_level_name_1\level.pak</span></span></span></span>  
+
*<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:">Mods\mod_name\Data\Levels\new_level_name_1\level.pak</span></span></span></span>  
*<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mods\mod_name\Data\Levels\new_level_name_2\level.pak</span></span></span></span>  
+
*<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:">Mods\mod_name\Data\Levels\new_level_name_2\level.pak</span></span></span></span>  
*<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mods\mod_name\Localization\english_xml.pak</span></span></span></span>  
+
*<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:">Mods\mod_name\Localization\english_xml.pak</span></span></span></span>  
*<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mods\mod_name\Localization\english.pak</span></span></span></span>  
+
*<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:">Mods\mod_name\Localization\english.pak</span></span></span></span>  
  
 
&nbsp;
 
&nbsp;
Line 63: Line 65:
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">All files in a mod are '''optional'''; you only have to create the ones you wish to override / patch.</span></span></span>
+
All files in a mod are '''optional'''; you only have to create the ones you wish to override / patch.
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">In the mod's root folder: (</span></span><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">Mods\mod_name</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">) you can create <u>two</u> special files:</span></span><span style="font-size:12.0pt">[[#Mod_manifest|<span style="font-family:" times="" new="" roman",serif"=""><span style="color:blue">mod.manifest</span></span>]]</span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">and</span></span><span style="font-size:12.0pt">[[#Mod_config|<span style="font-family:" times="" new="" roman",serif"=""><span style="color:blue">mod.cfg</span></span>]]</span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">.</span></span></span>
+
In the mod's root folder: (Mods\mod_name) you can create <u>two</u> special files:
  
 
&nbsp;
 
&nbsp;
 +
 +
#mod.manifest
 +
#mod.cfg
  
 
&nbsp;
 
&nbsp;
Line 73: Line 78:
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal">'''<u><span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">Pak Files</span></span></u>'''<span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">:</span></span></span>
+
&nbsp;
 +
 
 +
'''<u><span style="font-size:18.0pt">Pak Files</span></u>'''<span style="font-size:18.0pt">:</span>
  
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">All game data must be stored in</span></span>'''<span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">.pak</span></span>'''<span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">files. To make a</span></span>'''<span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">.pak</span></span>'''<span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">file, create a zip archive and rename the extension to</span></span>'''<span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">.pak</span></span>'''<span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">—<span style="color:red">.rar, .tar, .7z or other archive types are NOT supported.</span> Most of the Data in the zipped file can be compressed, '''except videos''', which must be stored without compression. In the mod's Data folder you can name your paks however you like. You do not have to mimic the game's pak names. Usually a single mod.pak or mod_name.pak will suffice. Paks have a maximal size of around 2GB. If your mod is larger, you can use multiple paks.</span></span></span>
+
All game data must be stored in&nbsp;'''.pak&nbsp;'''files. To make a&nbsp;'''.pak&nbsp;'''file, create a zip archive and rename the extension to&nbsp;'''.pak&nbsp;'''—<span style="color:red">.rar, .tar, .7z or other archive types are NOT supported.</span> Most of the Data in the zipped file can be compressed, '''except videos''', which must be stored without compression. In the mod's Data folder you can name your paks however you like. You do not have to mimic the game's pak names. Usually a single mod.pak or mod_name.pak will suffice. Paks have a maximal size of around 2GB. If your mod is larger, you can use multiple paks.
  
 
&nbsp;
 
&nbsp;
  
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Levels can be <u>modded</u> by creating pak files in the</span></span><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">mod_name\Data\Levels\level_name\</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">folder.</span></span></span>  
+
*<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:">Levels can be <u>modded</u> by creating pak files in the: "mod_name\Data\Levels\level_name\" folder.</span></span></span></span>  
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">New levels can be <u>added</u> by creating level.pak in</span></span><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">mod_name\Data\Levels\new_level_name\</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">folder.</span></span></span>  
+
*<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:">New levels can be <u>added</u> by creating level.pak in the: "mod_name\Data\Levels\new_level_name\" folder.</span></span></span></span>  
  
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">When modding localization, the mod pak name must exactly match the pak name in the game's localization folder.</span></span></span>
+
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">You can also add <u>new languages</u> by creating “new_language_name_xml.pak” and “new_language_name.pak” files in the mod's localization folder.</span></span></span>
+
When modding localization files, the mod pak name must exactly match the pak name in the game's localization folder.
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">When adding a new language, you will have to correctly set ''<span style="border:solid windowtext 1.0pt; padding:0in">sys_languages</span>'' and ''<span style="border:solid windowtext 1.0pt;  padding:0in">sys_languages_audio</span>'' CVars.</span></span></span>
+
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">If you want to override data from the Engine folder, you have to put your pak in the mod's “Data” folder.</span></span></span>
+
You can also add <u>new languages</u> by creating “new_language_name_xml.pak” and “new_language_name.pak” files in the mod's localization folder.
  
 
&nbsp;
 
&nbsp;
 +
 +
When adding a new language, you will have to correctly set ''<span style="border:solid windowtext 1.0pt; padding:0in">sys_languages</span>'' and ''<span style="border:solid windowtext 1.0pt; padding:0in">sys_languages_audio</span>'' CVars.
 +
 +
If you want to override data from the Engine folder, you have to put your pak in the mod's “Data” folder.
  
 
&nbsp;
 
&nbsp;
Line 100: Line 111:
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal">'''<u><span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">Tables.Pak modding</span></span></u>'''<span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">:</span></span></span>
+
&nbsp;
 +
 
 +
'''<u><span style="font-size:18.0pt">Tables.Pak modding</span></u>'''<span style="font-size:18.0pt">:</span>
  
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal"><u><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">With game versions 1.9.5 and later</span></span></u><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">:</span></span></span>
+
<u>With game versions 1.9.5 and later</u>:
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">If you're making a mod that overrides a parameter file inside</span></span><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">Tables.pak</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"=""></span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">it is now BEST PRACTICE to create mod-specific table files with individual rows</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"=""></span></span><u><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">instead</span></span></u><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">of overwriting entire tables.</span></span></span>
+
If you're making a mod that overrides a parameter file inside "Tables.pak" — it is now BEST PRACTICE to create mod-specific table files with individual rows — <u>instead</u> of overwriting the whole table.
  
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Simply rename the .xml file to this format: “</span></span><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">[Table]__[Mod Name].xml</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">”</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">.</span></span></span>
+
Simply rename the .xml file to this format: “<span style="font-family:">[Table]__[Mod Name].xml</span>”.
  
 
&nbsp;
 
&nbsp;
  
#<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">The original table’s name, followed by</span></span><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">2</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">underscores.</span></span></span>  
+
#<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">The original table’s name, followed by </span></span><span style="font-size:12.0pt"><span style="font-family:">2 </span></span><span style="font-size:12.0pt"><span style="font-family:">underscores.</span></span></span>  
#<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Typed completely in lowercase mode.</span></span></span>  
+
#<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">Typed completely in lowercase mode.</span></span></span>  
#<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mod name must match the name used in the mod’s respective</span></span><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">mod.manifest</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">,</span></span></span><span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">for example if the mod’s name appears in the mod manifest as: “'''This Is My Mod – Average Edition'''” your .xml file should be <u>named</u>:</span></span></span>  
+
#<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">Mod name must match the name used in the mod’s respective mod.manifest,for example if the mod’s name appears in the mod manifest as: “'''This Is My Mod – Average Edition'''” your .xml file should be <u>named</u>:</span></span></span>  
 +
#“this_is_my_mod_-_average_edition.xml”.
 +
#<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">Replace any spaces in the name with underscores, and do not use parentheses. </span></span></span>  
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">“</span></span><span style="font-size:12.0pt"><span style="background:yellow"><span style="font-family:" courier="" new""="">this_is_my_mod_-_average_edition</span></span></span><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">.xml</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">”.</span></span></span>
+
&nbsp;
<ol start="4">
 
<li><span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Replace any spaces in the name with underscores,</span></span></span></li>
 
</ol>
 
  
 
&nbsp;
 
&nbsp;
 +
 +
If everything is correct, you will see the tables patched in the console window ''(opened by pressing the ` key once the main menu screen appears)'' when the game is loaded.
  
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">If everything is correct, you will see the tables patched in the console window ''(opened by pressing the ` key once the main menu screen appears)'' when the game is loaded.</span></span></span>
+
&nbsp;
  
 
&nbsp;
 
&nbsp;
 +
 +
'''<u><span style="font-size:18.0pt">Pak loading order</span></u>'''<span style="font-size:18.0pt">:</span>
  
 
&nbsp;
 
&nbsp;
  
&nbsp;
+
When a pak file is loaded, it overrides data in previously loaded paks.
  
<span style="line-height:normal">'''<u><span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">Pak loading order</span></span></u>'''<span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">:</span></span></span>
+
Paks are loaded in this order:
  
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">When a pak file is loaded, it overrides data in previously loaded paks.</span></span></span>
+
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">Data\*.pak</span></span></span>
 +
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">Engine\*.pak</span></span></span>
 +
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">Localization\language_name_xml.pak</span></span></span>
 +
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">Localization\ipl_language_name.pak</span></span></span>
 +
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">Localization\language_name.pak</span></span></span>
 +
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">Data\Levels\level_name\level.pak</span></span></span>
 +
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">Data\Levels\level_name\*.pak</span></span></span>
 +
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">Data\_fastload\*.pak</span></span></span>
 +
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">Mods\mod_name_1\Data\*.pak</span></span></span>
 +
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">Mods\mod_name_2\Data\*.pak</span></span></span>
 +
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">Mods\mod_name_1\Localization\language_name_xml.pak</span></span></span>
 +
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">Mods\mod_name_2\Localization\language_name_xml.pak</span></span></span>
 +
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">Mods\mod_name_1\Localization\language_name.pak</span></span></span>
 +
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">Mods\mod_name_2\Localization\language_name.pak</span></span></span>
 +
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">Mods\mod_name_1\Data\Levels\level_name\*.pak</span></span></span>
 +
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">Mods\mod_name_2\Data\Levels\level_name\*.pak</span></span></span>  
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Paks are loaded in this order:</span></span></span>
+
&nbsp;
  
#<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Data\*.pak</span></span></span></span>
+
Some of the early mods were named zzz_* to ensure that they are loaded last and override all other paks. As you can see, this is not necessary anymore, because paks in <span style="font-family:">Mods\</span> are now loaded after all other paks.
#<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Engine\*.pak</span></span></span></span>
 
#<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Localization\language_name_xml.pak</span></span></span></span>
 
#<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Localization\ipl_language_name.pak</span></span></span></span>
 
#<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Localization\language_name.pak</span></span></span></span>
 
#<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Data\Levels\level_name\level.pak</span></span></span></span>
 
#<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Data\Levels\level_name\*.pak</span></span></span></span>
 
#<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Data\_fastload\*.pak</span></span></span></span>
 
#<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mods\mod_name_1\Data\*.pak</span></span></span></span>
 
#<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mods\mod_name_2\Data\*.pak</span></span></span></span>
 
#<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mods\mod_name_1\Localization\language_name_xml.pak</span></span></span></span>
 
#<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mods\mod_name_2\Localization\language_name_xml.pak</span></span></span></span>
 
#<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mods\mod_name_1\Localization\language_name.pak</span></span></span></span>
 
#<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mods\mod_name_2\Localization\language_name.pak</span></span></span></span>
 
#<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mods\mod_name_1\Data\Levels\level_name\*.pak</span></span></span></span>
 
#<span style="line-height:normal"><span style="tab-stops:list .5in"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mods\mod_name_2\Data\Levels\level_name\*.pak</span></span></span></span>
 
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Some of the early mods were named zzz_* to ensure that they are loaded last and override all other paks. As you can see, this is not necessary anymore, because paks in</span></span><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">Mods\</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">are loaded after all other paks.</span></span></span>
+
&nbsp;
  
 
&nbsp;
 
&nbsp;
  
 
&nbsp;
 
&nbsp;
 +
 +
'''<u><span style="font-size:18.0pt">Mod loading order</span></u>'''<span style="font-size:18.0pt">:</span>
  
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal">'''<u><span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mod loading order</span></span></u>'''<span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">:</span></span></span>
+
Mods in Mods folder are loaded in alphabetical order by default. You can specify custom mod loading order by creating an optional mod_order.txt file in the Mods folder. For each line in <span style="font-family:">mod_order.txt</span> the game will try to load the mod from the specified folder.
  
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mods in Mods folder are loaded in alphabetical order by default. You can specify custom mod loading order by creating an optional mod_order.txt file in the Mods folder. For each line in mod_order.txt the game will try to load the mod from the specified folder.</span></span></span>
+
The format of mod_order.txt is:
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">The format of mod_order.txt is:</span></span></span>
+
&nbsp;
<div style="border:solid windowtext 1.0pt; padding:1.0pt 4.0pt 1.0pt 4.0pt">
+
<div style="border:solid windowtext 1.0pt; padding:1.0pt 4.0pt 1.0pt 4.0pt">
<span style="line-height:normal"><span style="tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""=""># Comment</span></span></span></span>
+
<span style="font-family:"># Comment</span>
  
<span style="line-height:normal"><span style="tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">mod_name_2</span></span></span></span>
+
<span style="font-family:">mod_name_2</span>
  
<span style="line-height:normal"><span style="tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">mod_name_1 # Comment</span></span></span></span>
+
<span style="font-family:">mod_name_1 # Comment</span>
  
<span style="line-height:normal"><span style="tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">mod_name_3</span></span></span></span>
+
<span style="font-family:">mod_name_3</span>
 
</div>  
 
</div>  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">When the mod_order.txt file exists, it also functions as a whitelist: only the mods mentioned in it will be loaded. This can be used to disable a mod without deleting it, by simply commenting out that line.</span></span></span>
+
&nbsp;
 +
 
 +
When the mod_order.txt file exists, it also functions as a whitelist: only the mods mentioned in it will be loaded. This can be used to disable a mod without deleting it, by simply commenting out that line.
  
 
&nbsp;
 
&nbsp;
Line 192: Line 212:
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal">'''<u><span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mod Manifest</span></span></u>'''<span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">:</span></span></span>
+
'''<u><span style="font-size:18.0pt">Mod Manifest</span></u>'''<span style="font-size:18.0pt">:</span>
  
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">For each installed mod the game will try to load the optional “</span></span><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">mod.manifest</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">” file in the mod's root. Below is an example of the format of a</span></span><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">mod.manifest</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">, from the mod: “'''Inventoried'''” by Silencer711:</span></span></span>
+
For each installed mod the game will try to load the optional “<span style="font-family:">mod.manifest</span>” file in the mod's root. Below is an example of the format of a <span style="font-family:">mod.manifest</span>, from the mod: “'''Inventoried'''” by Silencer711:
<div style="border:solid windowtext 1.0pt;  padding:1.0pt 4.0pt 1.0pt 4.0pt">
 
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""=""><?xml version="1.0" encoding="utf-8"?></span></span></span>
 
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""=""><kcd_mod></span></span></span>
+
&nbsp;
 +
<div style="border:solid windowtext 1.0pt; padding:1.0pt 4.0pt 1.0pt 4.0pt">
 +
<span style="font-family:"><?xml version="1.0" encoding="utf-8"?></span>
 +
 
 +
<span style="font-family:"><kcd_mod></span>
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""=""><info></span></span></span>
+
<span style="font-family:"><info></span>
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""=""><name>Inventoried - Standard</name></span></span></span>
+
<span style="font-family:"><name>Inventoried - Standard</name></span>
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""=""><description>A Comprehensive and fully detailed item sorting methodology implemented into Kingdom Come: Deliverance. This mod sorts 100% of all in-game items in your inventory by adding (Tags), and painstakingly renaming every single item for maximum utility and readability. Expanding upon the the original item categories, the result is a clean yet highly-organized naming convention that is both UI-friendly -AND- less burdening than the vanilla experience.</description></span></span></span>
+
<span style="font-family:"><description>A Comprehensive and fully detailed item sorting methodology implemented into Kingdom Come: Deliverance. This mod sorts 100% of all in-game items in your inventory by adding (Tags), and painstakingly renaming every single item for maximum utility and readability. Expanding upon the the original item categories, the result is a clean yet highly-organized naming convention that is both UI-friendly -AND- less burdening than the vanilla experience.</description></span>
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""=""><author>S I L E N C E R</author></span></span></span>
+
<span style="font-family:"><author>S I L E N C E R</author></span>
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""=""><version>1.6.3</version></span></span></span>
+
<span style="font-family:"><version>1.6.3</version></span>
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""=""><created_on>13 Nov 2020</created_on></span></span></span>
+
<span style="font-family:"><created_on>13 Nov 2020</created_on></span>
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""=""><dependencies></span></span></span>
+
<span style="font-family:"><dependencies></span>
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""=""><req_mod>NONE</req_mod></span></span></span>
+
<span style="font-family:"><req_mod>NONE</req_mod></span>
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""=""></dependencies></span></span></span>
+
<span style="font-family:"></dependencies></span>
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""=""></info></span></span></span>
+
<span style="font-family:"></info></span>
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""=""><supports></span></span></span>
+
<span style="font-family:"><supports></span>
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""=""><kcd_version>1.9.*</kcd_version></span></span></span>
+
<span style="font-family:"><kcd_version>1.9.*</kcd_version></span>
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""=""></supports></span></span></span>
+
<span style="font-family:"></supports></span>
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""=""></kcd_mod></span></span></span>
+
<span style="font-family:"></kcd_mod></span>
 
</div>  
 
</div>  
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">The game checks that one of the entries in <kcd_version> matches with the game’s current version; (found in wh_sys_version in</span></span><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">system.cfg</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">). If no matching version is found, the mod will be disabled.</span></span></span>
+
The game checks that one of the entries in <kcd_version> matches with the game’s current version; (found in wh_sys_version in <span style="font-family:">system.cfg</span>). If no matching version is found, the mod will be disabled.
  
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Since KCD version 1.3.4 you are able to use wildcards like:</span></span></span>
+
'''Since KCD version 1.3.4''' you are able to use wildcards like:
  
 +
&nbsp;
 +
<div style="border:solid windowtext 1.0pt; padding:1.0pt 4.0pt 1.0pt 4.0pt">
 +
<kcd_version>1.9.*</kcd_version>
 +
</div>
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""=""><kcd_version>1.3.<span style="background:yellow">*</span></kcd_version></span></span></span>
+
The wildcard is implemented as a string comparison up until the "*" character, so the below attempts will '''not''' work as expected:
  
 
&nbsp;
 
&nbsp;
 +
<div style="border:solid windowtext 1.0pt; padding:1.0pt 4.0pt 1.0pt 4.0pt">
 +
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:"><kcd_version>1.*.6</kcd_version></span></span></span>
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">It is implemented as a string comparison up until the "</span></span><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">*</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">" character, so these will '''not''' work as expected:</span></span></span>
+
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:"><kcd_version>1.9.[1-6]</kcd_version>.</span></span></span>
 +
</div>  
 +
&nbsp;
  
 
&nbsp;
 
&nbsp;
 
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""=""><kcd_version>1.<span style="background:yellow">*</span>.4</kcd_version></span></span></span>
 
 
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" courier="" new""=""><kcd_version>1.3.<span style="background:yellow">[1-5]</span></kcd_version></span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">.</span></span></span>
 
  
 
&nbsp;
 
&nbsp;
  
&nbsp;
+
'''<u><span style="font-size:18.0pt">Mod Config</span></u>'''<span style="font-size:18.0pt">:</span>
  
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal">'''<u><span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">Mod Config</span></span></u>'''<span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">:</span></span></span>
+
Another optional file in the mod's root is "mod.cfg". When present, it will be loaded after "system.cfg", but before "user.cfg", which means it overrides CVars in "system.cfg", but not in "user.cfg". You can use the "mod.cfg" in simple mods when all you want to do is set some CVars. The order in which "mod.cfg" files are loaded also depends mod load order.
 
 
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Another optional file in the mod's root is</span></span><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">mod.cfg</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">. When present, it will be loaded after</span></span><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">system.cfg</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">, but before</span></span><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">user.cfg</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">, which means it overrides CVars in system.cfg, but not in user.cfg. You can use the mod.cfg in simple mods when all you want to do is set some CVars. The order in which mod.cfg files are loaded also depends on</span></span><span style="font-size:12.0pt">[[#Mod_loading_order|<span style="font-family:" times="" new="" roman",serif"=""><span style="color:blue">mod order</span></span>]]</span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">.</span></span></span>
 
  
 
&nbsp;
 
&nbsp;
Line 268: Line 292:
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal">'''<u><span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">Fastload .paks</span></span></u>'''<span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">:</span></span></span>
+
'''<u><span style="font-size:18.0pt">Fastload .paks</span></u>'''<span style="font-size:18.0pt">:</span>
  
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">The purpose of paks in</span></span><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">Data\_fastload</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">is to reduce disk access during level load. They contain a number of small files: various xml files (.mtl, .animevents, .bspace, .chrparams, .cdf...), smallest mipmaps of splitted dds files and cgf files without render geometry. At the beginning of level loading, all fastload paks are loaded in the memory. Since they are loaded after regular Data paks, they will be searched first, and the game doesn't have to access the disk. At the end of level loading, all fastload paks are unloaded from the memory and are closed.</span></span></span>
+
The purpose of paks in Data\_fastload is to reduce disk access during level load. They contain a number of small files: various xml files (.mtl, .animevents, .bspace, .chrparams, .cdf...), smallest mipmaps of splitted dds files and cgf files without render geometry. At the beginning of level loading, all fastload paks are loaded in the memory. Since they are loaded after regular Data paks, they will be searched first, and the game doesn't have to access the disk. At the end of level loading, all fastload paks are unloaded from the memory and are closed.
  
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Some of the early mods required copying the mod paks both to</span></span><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">Data\</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">and</span></span><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">Data\_fastload</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">folders to ensure that the mod properly overrides the game data. This is not necessary anymore, because paks in</span></span><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">Mods\</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">are loaded after the fastload paks.</span></span></span>
+
Some of the early mods required copying the mod paks to both: <span style="border:solid windowtext 1.0pt; font-family:">Data\</span> and <span style="border:solid windowtext 1.0pt; font-family:">Data\_fastload</span> folders to ensure that the mod properly overrides the game data. This is not necessary anymore, because paks in <span style="font-family:">Mods\</span> are loaded after the fastload paks.
  
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">A mod can have its own fastload paks in</span></span><span style="font-size:12.0pt"><span style="font-family:" courier="" new""="">Mods\mod_name_1\Data\_fastload\*.pak</span></span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">, but for small mods it is unnecessary. For large mods like texture packs with thousands of textures or total conversion mods with hundreds of new geometry creating fastload paks could be beneficial.</span></span></span>
+
A mod can have its own fastload paks in <span style="border:solid windowtext 1.0pt; font-family:">Mods\mod_name_1\Data\_fastload\*.pak</span>, but for small mods it is unnecessary. For large mods like texture packs with thousands of textures or total conversion mods with hundreds of new geometry creating fastload paks could be beneficial.
  
 
&nbsp;
 
&nbsp;
Line 288: Line 312:
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal">'''<u><span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">Textures and Images</span></span></u>'''<span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">:</span></span></span>
+
'''<u><span style="font-size:18.0pt">Textures and Images</span></u>'''<span style="font-size:18.0pt">:</span>
 +
 
 +
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">See</span></span><span style="font-size:12.0pt">[[Textures_and_Images|<span style="font-family:" times="" new="" roman",serif"=""><span style="color:blue">Textures and Images</span></span>]]</span></span>
+
See[[Textures_and_Images|Textures and Images]]
  
 
&nbsp;
 
&nbsp;
Line 298: Line 324:
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal">'''<u><span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">See Also</span></span></u>'''<span style="font-size:18.0pt"><span style="font-family:" times="" new="" roman",serif"="">:</span></span></span>
+
'''<u><span style="font-size:18.0pt">See Also</span></u>'''<span style="font-size:18.0pt">:</span>
  
 
&nbsp;
 
&nbsp;
  
*<span style="line-height:normal"><span style="font-size:12.0pt">[https://forum.kingdomcomerpg.com/t/what-we-know-about-modding-so-far/38589 <span style="font-family:" times="" new="" roman",serif"=""><span style="color:blue">https://forum.kingdomcomerpg.com/t/what-we-know-about-modding-so-far/38589</span></span>]</span><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">(nice overview of the various file types)</span></span></span>  
+
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">[https://forum.kingdomcomerpg.com/t/what-we-know-about-modding-so-far/38589 https://forum.kingdomcomerpg.com/t/what-we-know-about-modding-so-far/38589] (nice overview of the various file types)</span></span></span>  
*<span style="line-height:normal"><span style="font-size:12.0pt">[https://docs.google.com/document/d/1_m_zhrX_2Q65AFEzLU4dZhFtzLRSvKKOVcYBDVUwXY8/edit <span style="font-family:" times="" new="" roman",serif"=""><span style="color:blue">Guide to Clothing and Armor Tables in Tables.pak</span></span>]</span></span>  
+
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">[https://docs.google.com/document/d/1_m_zhrX_2Q65AFEzLU4dZhFtzLRSvKKOVcYBDVUwXY8/edit Guide to Clothing and Armor Tables in Tables.pak]</span></span></span>  
*<span style="line-height:normal"><span style="font-size:12.0pt">[http://docs.cryengine.com/display/CEMANUAL/Attachment+System+Tutorial+-+Character+Tool <span style="font-family:" times="" new="" roman",serif"=""><span style="color:blue">Attachment System & Character Tool</span></span>]</span></span>  
+
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">[http://docs.cryengine.com/display/CEMANUAL/Attachment+System+Tutorial+-+Character+Tool Attachment System & Character Tool]</span></span></span>  
*<span style="line-height:normal"><span style="font-size:12.0pt">[http://forum.xentax.com/viewtopic.php?f=33&t=13137 <span style="font-family:" times="" new="" roman",serif"=""><span style="color:blue">Cryengine Converter - convert Cryengine games into .dae and .obj</span></span>]</span></span>  
+
*<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:">[http://forum.xentax.com/viewtopic.php?f=33&t=13137 Cryengine Converter - convert Cryengine games into .dae and .obj]</span></span></span>  
  
 
&nbsp;
 
&nbsp;
Line 311: Line 337:
 
&nbsp;
 
&nbsp;
  
<span style="line-height:normal"><span style="font-size:12.0pt"><span style="font-family:" times="" new="" roman",serif"="">Kingdom Come Deliverance Modding Guides Tutorials</span></span></span>
+
Kingdom Come Deliverance Modding Guides Tutorials
  
 
&nbsp;
 
&nbsp;

Latest revision as of 23:40, 5 December 2020

 

The features in this article are available in KCD version 1.9.5 and later.

 

 

Mod Installation:

 

Mods are loaded from the "Mods" folder in the game's root directory.

 

  • In the STEAM version you can usually find it at:

C:\Program Files (x86)\Steam\steamapps\common\KingdomComeDeliverance\Mods\

 

  • In the GOG version you can usually find it at:

C:\Program Files (x86)\GOG Galaxy\GOG Games\Kingdom Come Deliverance\Mods\

 

 

If the Mods folder does NOT exist — create it.

 

To install a mod — move it into the “Mods” folder.

To uninstall a mod — delete it from the “Mods” folder. You can also temporarily disable a mod by using mod_order.txt.

 

 

 

Mod Structure:

 

In the Mods folder, each mod has its own subfolder, which replicates the game's directory structure, for example:

 

  • Mods\mod_name\mod.cfg
  • Mods\mod_name\mod.manifest
  • Mods\mod_name\Data\mod.pak
  • Mods\mod_name\Data\Levels\rataje\mod.pak
  • Mods\mod_name\Data\Levels\new_level_name_1\level.pak
  • Mods\mod_name\Data\Levels\new_level_name_2\level.pak
  • Mods\mod_name\Localization\english_xml.pak
  • Mods\mod_name\Localization\english.pak

 

 

All files in a mod are optional; you only have to create the ones you wish to override / patch.

In the mod's root folder: (Mods\mod_name) you can create two special files:

 

  1. mod.manifest
  2. mod.cfg

 

 

 

Pak Files:

 

All game data must be stored in .pak files. To make a .pak file, create a zip archive and rename the extension to .pak .rar, .tar, .7z or other archive types are NOT supported. Most of the Data in the zipped file can be compressed, except videos, which must be stored without compression. In the mod's Data folder you can name your paks however you like. You do not have to mimic the game's pak names. Usually a single mod.pak or mod_name.pak will suffice. Paks have a maximal size of around 2GB. If your mod is larger, you can use multiple paks.

 

  • Levels can be modded by creating pak files in the: "mod_name\Data\Levels\level_name\" folder.
  • New levels can be added by creating level.pak in the: "mod_name\Data\Levels\new_level_name\" folder.

 

 

When modding localization files, the mod pak name must exactly match the pak name in the game's localization folder.

 

You can also add new languages by creating “new_language_name_xml.pak” and “new_language_name.pak” files in the mod's localization folder.

 

When adding a new language, you will have to correctly set sys_languages and sys_languages_audio CVars.

If you want to override data from the Engine folder, you have to put your pak in the mod's “Data” folder.

 

 

 

Tables.Pak modding:

 

With game versions 1.9.5 and later:

If you're making a mod that overrides a parameter file inside "Tables.pak" — it is now BEST PRACTICE to create mod-specific table files with individual rows — instead of overwriting the whole table.

 

Simply rename the .xml file to this format: “[Table]__[Mod Name].xml”.

 

  1. The original table’s name, followed by 2 underscores.
  2. Typed completely in lowercase mode.
  3. Mod name must match the name used in the mod’s respective mod.manifest,for example if the mod’s name appears in the mod manifest as: “This Is My Mod – Average Edition” your .xml file should be named:
  4. “this_is_my_mod_-_average_edition.xml”.
  5. Replace any spaces in the name with underscores, and do not use parentheses.

 

 

If everything is correct, you will see the tables patched in the console window (opened by pressing the ` key once the main menu screen appears) when the game is loaded.

 

 

 

Pak loading order:

 

When a pak file is loaded, it overrides data in previously loaded paks.

Paks are loaded in this order:

 

  • Data\*.pak
  • Engine\*.pak
  • Localization\language_name_xml.pak
  • Localization\ipl_language_name.pak
  • Localization\language_name.pak
  • Data\Levels\level_name\level.pak
  • Data\Levels\level_name\*.pak
  • Data\_fastload\*.pak
  • Mods\mod_name_1\Data\*.pak
  • Mods\mod_name_2\Data\*.pak
  • Mods\mod_name_1\Localization\language_name_xml.pak
  • Mods\mod_name_2\Localization\language_name_xml.pak
  • Mods\mod_name_1\Localization\language_name.pak
  • Mods\mod_name_2\Localization\language_name.pak
  • Mods\mod_name_1\Data\Levels\level_name\*.pak
  • Mods\mod_name_2\Data\Levels\level_name\*.pak

 

Some of the early mods were named zzz_* to ensure that they are loaded last and override all other paks. As you can see, this is not necessary anymore, because paks in Mods\ are now loaded after all other paks.

 

 

 

Mod loading order:

 

Mods in Mods folder are loaded in alphabetical order by default. You can specify custom mod loading order by creating an optional mod_order.txt file in the Mods folder. For each line in mod_order.txt the game will try to load the mod from the specified folder.

 

The format of mod_order.txt is:

 

# Comment

mod_name_2

mod_name_1 # Comment

mod_name_3

 

When the mod_order.txt file exists, it also functions as a whitelist: only the mods mentioned in it will be loaded. This can be used to disable a mod without deleting it, by simply commenting out that line.

 

 

 

Mod Manifest:

 

For each installed mod the game will try to load the optional “mod.manifest” file in the mod's root. Below is an example of the format of a mod.manifest, from the mod: “Inventoried” by Silencer711:

 

<?xml version="1.0" encoding="utf-8"?>

<kcd_mod>

<info>

<name>Inventoried - Standard</name>

<description>A Comprehensive and fully detailed item sorting methodology implemented into Kingdom Come: Deliverance. This mod sorts 100% of all in-game items in your inventory by adding (Tags), and painstakingly renaming every single item for maximum utility and readability. Expanding upon the the original item categories, the result is a clean yet highly-organized naming convention that is both UI-friendly -AND- less burdening than the vanilla experience.</description>

<author>S I L E N C E R</author>

<version>1.6.3</version>

<created_on>13 Nov 2020</created_on>

<dependencies>

<req_mod>NONE</req_mod>

</dependencies>

</info>

<supports>

<kcd_version>1.9.*</kcd_version>

</supports>

</kcd_mod>

 

The game checks that one of the entries in <kcd_version> matches with the game’s current version; (found in wh_sys_version in system.cfg). If no matching version is found, the mod will be disabled.

 

Since KCD version 1.3.4 you are able to use wildcards like:

 

<kcd_version>1.9.*</kcd_version>

 

The wildcard is implemented as a string comparison up until the "*" character, so the below attempts will not work as expected:

 

<kcd_version>1.*.6</kcd_version>

<kcd_version>1.9.[1-6]</kcd_version>.

 

 

 

Mod Config:

 

Another optional file in the mod's root is "mod.cfg". When present, it will be loaded after "system.cfg", but before "user.cfg", which means it overrides CVars in "system.cfg", but not in "user.cfg". You can use the "mod.cfg" in simple mods when all you want to do is set some CVars. The order in which "mod.cfg" files are loaded also depends mod load order.

 

 

 

Fastload .paks:

 

The purpose of paks in Data\_fastload is to reduce disk access during level load. They contain a number of small files: various xml files (.mtl, .animevents, .bspace, .chrparams, .cdf...), smallest mipmaps of splitted dds files and cgf files without render geometry. At the beginning of level loading, all fastload paks are loaded in the memory. Since they are loaded after regular Data paks, they will be searched first, and the game doesn't have to access the disk. At the end of level loading, all fastload paks are unloaded from the memory and are closed.

 

Some of the early mods required copying the mod paks to both: Data\ and Data\_fastload folders to ensure that the mod properly overrides the game data. This is not necessary anymore, because paks in Mods\ are loaded after the fastload paks.

 

A mod can have its own fastload paks in Mods\mod_name_1\Data\_fastload\*.pak, but for small mods it is unnecessary. For large mods like texture packs with thousands of textures or total conversion mods with hundreds of new geometry creating fastload paks could be beneficial.

 

 

 

Textures and Images:

 

SeeTextures and Images

 

 

 

See Also:

 

 

 

Kingdom Come Deliverance Modding Guides Tutorials