Bannerlord: Location of Perk and Skill data

Users who are viewing this thread

Has anyone found the location of the Perk and Skill data?

I have thoroughly poked around in the xml files in Modules and have only found references to Perks and Skills. I am assuming they are locked away in the DLLs that we cannot yet access (uncool to bury Perks and Skills like that TW, very uncool).

Anyway, if anyone has found them, please let me know.
 
Solution
It is in TaleWorlds.CampaignSystem.dll under DefaultSkills, DefaultPerks, and DefaultSkillEffects. You can decompile using dnSpy then modify the skills/perks.
I am sure I saw them in the TaleWorlds.CampaignSystem.dll
Check the
CharacterDevelopmentModel
DefaultCharacterDevelopmentModel
HeroDeveloper
Classes using a dissasembler. You can mod them in the game if you replace the Models added in the SandboxManager class
 
Upvote 0
It is in TaleWorlds.CampaignSystem.dll under DefaultSkills, DefaultPerks, and DefaultSkillEffects. You can decompile using dnSpy then modify the skills/perks.
 
Upvote 0
Solution
I'd recommend using harmony for modding, as you can just add new code to the game without decompiling dlls.

Here's an example on how to access skills and how to set and retrieve the current values. You can use it so set the skills value to w/e. In this case 300.:
Code:
            MBReadOnlyList<SkillObject> skillList = Game.Current.SkillList; // create a list with all skills
            foreach (SkillObject skills in skillList) // loop through the list
            {
                Hero.MainHero.SetSkillValue(skills, 300); // set skill value for current skill
                int cur_value = Hero.MainHero.GetSkillValue(skills); // get skill value (just for demo, as it's not used any further)
            }
 
Upvote 0
I've been wanting to figure out how to do a very minor tweak which is simply to raise how the Attribute scores affect the learning limit of skills by 10. So that an Attribute score of 0 puts the learning limit at 0 instead of -10 (without any Focus Points), a score of 1 puts it at 10 etc.

Is there a simple way to do this?
 
Upvote 0
Back
Top Bottom