Hi all, the 1.3 update of the game changed the inventory system, now, multiple mods can edit the same inventory. This means compatibility files should no longer be necessary. Also, the edits I made should continue to work as usual, but I’ll keep the compatibility files for now until I’m sure.
I’m not actively playing the game at the moment, so I haven’t tested the mod myself. I assume it still works fine, but if you encounter any issues, please let me know by leaving a comment or opening a bug report.
Hi all, I hope you like this mod. If you liked it don't forget to endorse and check my other mod LD's New Potions. These two mods are compatible with each other. However, if you're using the Rich Merchants or A Little Richer Merchants mods, you'll need a compatibility file that includes both the book and potion mods. It has now been added to the optional files. The compatibility files in both mods are completely the same, even though their versions may differ.
If you have a good short story, feel free to share it with me (preferably via DM instead of comments to avoid spoilers), and I can consider adding it to the game in a future update.
Some people have reached out to me for language support. Since there's a lot of text to be translated and the modding activity for KCD2 has decreased quite a bit compared to its early days, I didn't expect there would be too many people willing to help with translations. So for now, I’ve added support for English, Turkish, Chinese (both Simplified and Traditional), German, Czech, and Russian languages. The German translation was done entirely by angryval. The Spanish translation was done entirely by Sir4ndy80. The Czech translation was done using AI and then had some errors fixed by Sam15SVK.
Aside from Turkish and English, the other languages were translated with AI assistance, so they may contain some mistakes. Unfortunately, I don’t speak these languages myself, so I can't verify them personally. If any of you correct the errors and send them back to me, I’ll update the files accordingly.
If you're playing the game in English, there's no need to download the update. However, if Turkish, I recommend installing the update since a few typos have been fixed.
Currently, it's both the Ramadan Bayram and a time of major protests in Turkey (Eid Mubarak to all Muslims), so I’m quite busy and will have to delay support for those requesting other languages.
Localization is not working, can you tell me why? Maybe you need to make updates. (I unzipped the localization file and placed Russian_xml in the localization folder)
Gawd Dayum 113!, when i originally installed the mod i thought it was 13 skill books and i was perfectly satisfied with that, henry has a lot of book reports to do.
Hi, can you tell me which merchants are affected? I've got some armour mods so I'd like to know if the same vendors might get the books and result in a conflict
It’s hard to remember all of them, but I avoided giving these books to merchants who sell armor and weapons. Mainly, I distributed the books to scribes, some skill trainers, and maybe a few merchants. So, there shouldn’t be any problem.
If you want to be safe, I suggest learning how to merge them. Personally, I remove InventoryPreset__shops from mods and create a new mod that combines all of them. Sometimes, I also add items that aren’t distributed at all. There are lots of mods on Nexus that add new items, but they’re only available via console commands or are added directly to your inventory/chest. I’ll try to add a tutorial here.
hi lecdabster, thanks for all the awesome aditional books. :)
I have a question, where I hope you can at least point me in the right direction. I am trying to mod more XP from skillbooks (and combine that with Slower Reading and Tougher Eco), but none of the following works :(
First I was trying a high value for RPG.ReadingSpeechXPBase = 150 --> but that only increases scholarship XP gain per book.
Then I was looking at your files and tried to edit some values to re-PAK
<document_required_skill item_id="00cbcdca-e6ee-4fe6-bf87-2acd9f2b21aa" skill_id="16" skill_level_required="0" skill_xp_gained="50000000" /> the values are extreme, but do not change anything :/ Can you give me a hint where to look for?
Let me look at after the work. I have an idea that might work, but need to check first. Btw, maybe you forgot to use a pak builder. If you are just changing the extension to pak, it will not work.
UPDATE: I changed the values like you did and it works. So, as I said above, you might have forgotten to use a PAK builder. The two mods you mentioned use completely different tables. So you can use them safely, there is no need for compatibility patches. If I remember correctly, there is no multiplier that you can change to automatically increase the XP rewards for skill books. So, you might need to change them manually.
I suggest creating an empty mod first. Copy the vanilla XML files into your mod without changing their locations (if it is located in somewhere xxx/yyy/zzz/abc.xml, then put the xml file inside zzz folder that is inside a yyy folder that is inside a xxx folder), then modify all the values as you like. After that, package the inside of the data folder into a PAK file (you can find a PAK builder on Nexus). In other words, don’t make a PTF mod, your table will replace the entire original table. If you want to use my mod, change the files in my mod directly; don’t create another mod.
Thank you very much :D I forgot to name the files with the Mod Id at the end. Basicly like "document_required_skill____modid.xml" ... there is so much to learn :-).
Today I've read through a lot of the modding guideslines, where they mentioned two table modes. Only the new format seems to have PTF support (https://warhorse.youtrack.cloud/articles/KM-A-12/Database-tables). Unfortunatelly, all the "rpg/document_" files are "OLD" ... Therefore I have to merge the vanilla and your ld_skillbooks into one mod.
BTW: Do you mind me uploading this as a new mod (5x Skillbook XP) with your edited "document_reward__ldbooks.xml" as optional? I am not finished, yes. I need to find the XP gains for Lessons - only found the prices so far.
Sure, you aren’t copying any of my work. I don’t usually prefer “easier game” mods, but I’ll definitely check out your mod.
You might want to check DocumentRarities.xml (inside Libs/Tables/rpg). Each book has a rarity, and different rarities provide different multipliers. In vanilla, books with no rarity give nothing (in terms of scholar and speech XP), like most of the skill books. You can change that too. Also, you can check reading_spot_type.xml. I don’t know where the XP gains for the lessons are stored, but you can use my Python code to search for possible keywords to find it.
import os def search_text_in_files(root_folder, search_text, extensions=(".xml", ".lua")): matched_files = [] for dirpath, dirnames, filenames in os.walk(root_folder): for filename in filenames: if filename.endswith(extensions): file_path = os.path.join(dirpath, filename) try: with open(file_path, "r", encoding="utf-8") as f: content = f.read() if search_text in content: matched_files.append(file_path) except UnicodeDecodeError: # Some files may contain different encodings, you can add other attempts here if you like. pass except Exception as e: print(f"Error reading {file_path}: {e}") return matched_files if __name__ == "__main__": folder = "D:\Modding\kc2" # Replace this with your own main folder path. searched_text = "SkillLesson" # Write the text you want to search for here. found_ones = search_text_in_files(folder, searched_text) print("\nFiles containing the text:") for files in found_ones: print(files)
I store the vanilla files somewhere. Not the PAK files, but the XML files, scripts, and other stuff (in the code, it’s D:\Modding\kc2). This code searches for the specified searched_text inside those vanilla files. I only included .lua and .xml files, which is enough. If you have a similar folder with the vanilla files, you can replace the folder and searched_text values in the code with yours and search through the files.
Hey, so one question do we have to download the localization file and just drop it into the mods folder ? or do i have to extract the pak file from inside and combine it into the mail file ?
In Mods\ldbooks folder, there are a localization and a data folders. The update file is localization file here. Just put it there and overwrite Turkish_xml.pak and English_xml.pak if asks.
54 comments
I’m not actively playing the game at the moment, so I haven’t tested the mod myself. I assume it still works fine, but if you encounter any issues, please let me know by leaving a comment or opening a bug report.
If you have a good short story, feel free to share it with me (preferably via DM instead of comments to avoid spoilers), and I can consider adding it to the game in a future update.
Some people have reached out to me for language support. Since there's a lot of text to be translated and the modding activity for KCD2 has decreased quite a bit compared to its early days, I didn't expect there would be too many people willing to help with translations. So for now, I’ve added support for English, Turkish, Chinese (both Simplified and Traditional), German, Czech, and Russian languages. The German translation was done entirely by angryval. The Spanish translation was done entirely by Sir4ndy80. The Czech translation was done using AI and then had some errors fixed by Sam15SVK.
Aside from Turkish and English, the other languages were translated with AI assistance, so they may contain some mistakes. Unfortunately, I don’t speak these languages myself, so I can't verify them personally. If any of you correct the errors and send them back to me, I’ll update the files accordingly.
If you're playing the game in English, there's no need to download the update. However, if Turkish, I recommend installing the update since a few typos have been fixed.
Currently, it's both the Ramadan Bayram and a time of major protests in Turkey (Eid Mubarak to all Muslims), so I’m quite busy and will have to delay support for those requesting other languages.
Happy gaming and happy modding!
Can i make an localization for this mod?
If you want to be safe, I suggest learning how to merge them. Personally, I remove InventoryPreset__shops from mods and create a new mod that combines all of them. Sometimes, I also add items that aren’t distributed at all. There are lots of mods on Nexus that add new items, but they’re only available via console commands or are added directly to your inventory/chest. I’ll try to add a tutorial here.
I'd really appreciate if you could write a tutorial^^
thanks for all the awesome aditional books. :)
I have a question, where I hope you can at least point me in the right direction. I am trying to mod more XP from skillbooks (and combine that with Slower Reading and Tougher Eco), but none of the following works :(
<document_reward item_id="1c77df11-f996-4d9e-bb87-b2430e0875b3" script="RPG.AddStatXP(event, soul, "agility", 10000000, oldProgress, newProgress);RPG.NotifyLevelXpGain("agility");" />
or for vanilla perk-skill-books:
<document_required_skill item_id="00cbcdca-e6ee-4fe6-bf87-2acd9f2b21aa" skill_id="16" skill_level_required="0" skill_xp_gained="50000000" />
the values are extreme, but do not change anything :/ Can you give me a hint where to look for?
UPDATE: I changed the values like you did and it works. So, as I said above, you might have forgotten to use a PAK builder. The two mods you mentioned use completely different tables. So you can use them safely, there is no need for compatibility patches. If I remember correctly, there is no multiplier that you can change to automatically increase the XP rewards for skill books. So, you might need to change them manually.
I suggest creating an empty mod first. Copy the vanilla XML files into your mod without changing their locations (if it is located in somewhere xxx/yyy/zzz/abc.xml, then put the xml file inside zzz folder that is inside a yyy folder that is inside a xxx folder), then modify all the values as you like. After that, package the inside of the data folder into a PAK file (you can find a PAK builder on Nexus). In other words, don’t make a PTF mod, your table will replace the entire original table. If you want to use my mod, change the files in my mod directly; don’t create another mod.
Today I've read through a lot of the modding guideslines, where they mentioned two table modes. Only the new format seems to have PTF support (https://warhorse.youtrack.cloud/articles/KM-A-12/Database-tables). Unfortunatelly, all the "rpg/document_" files are "OLD" ... Therefore I have to merge the vanilla and your ld_skillbooks into one mod.
BTW: Do you mind me uploading this as a new mod (5x Skillbook XP) with your edited "document_reward__ldbooks.xml" as optional? I am not finished, yes. I need to find the XP gains for Lessons - only found the prices so far.
You might want to check DocumentRarities.xml (inside Libs/Tables/rpg). Each book has a rarity, and different rarities provide different multipliers. In vanilla, books with no rarity give nothing (in terms of scholar and speech XP), like most of the skill books. You can change that too. Also, you can check reading_spot_type.xml. I don’t know where the XP gains for the lessons are stored, but you can use my Python code to search for possible keywords to find it.
import os
def search_text_in_files(root_folder, search_text, extensions=(".xml", ".lua")):
matched_files = []
for dirpath, dirnames, filenames in os.walk(root_folder):
for filename in filenames:
if filename.endswith(extensions):
file_path = os.path.join(dirpath, filename)
try:
with open(file_path, "r", encoding="utf-8") as f:
content = f.read()
if search_text in content:
matched_files.append(file_path)
except UnicodeDecodeError:
# Some files may contain different encodings, you can add other attempts here if you like.
pass
except Exception as e:
print(f"Error reading {file_path}: {e}")
return matched_files
if __name__ == "__main__":
folder = "D:\Modding\kc2" # Replace this with your own main folder path.
searched_text = "SkillLesson" # Write the text you want to search for here.
found_ones = search_text_in_files(folder, searched_text)
print("\nFiles containing the text:")
for files in found_ones:
print(files)
I store the vanilla files somewhere. Not the PAK files, but the XML files, scripts, and other stuff (in the code, it’s D:\Modding\kc2). This code searches for the specified searched_text inside those vanilla files. I only included .lua and .xml files, which is enough. If you have a similar folder with the vanilla files, you can replace the folder and searched_text values in the code with yours and search through the files.