Erannorth Reborn

Erannorth Reborn

Not enough ratings
Hands on Modding: Universal Perks & Expertises
By [ER] Raven
Hi folks! In this short tutorial I'll show you how to create a new Expertise. We'll then add it into the game through the Universal Perks so that all characters can access it. Let's get started!
   
Award
Favorite
Favorited
Unfavorite
What is an Expertise?
A good practical example is the Occult expertise added in Canticum Noctem DLC. Any character can gain ranks in Occult by investing in the Occult perk tree, and you (the content creator) can use those ranks to restrict access to certain cards, enhance cards with new effects, and also make checks in your stories using these ranks.

The Expertise System
  • Expertise represents various Skills your Character has and can use during certain Events. For instance to Pick a Lock, Gather Herbs, Survive in a Hostile environment and more. Your Expertise rank determines if you can do something or not, and there are no dice rolls involved. If for example a Lock requires Lock Pick Expertise 3, but you have only 2 then you simply can't pick it. No matter how hard you try.
  • Expertise is persistent and won't reset during Ascensions.
  • Expertise can be granted through the Event system using Expertise[Skill Name]:x (or -x), this will set or increase/decrease the player's Expertise by +/- x.
  • ie. ExpertiseGather Herbs:1, sets (or increases) the player's Gather Herbs expertise to (by) +1
  • Additionally Expertise can be granted through the Perks system using the same syntax.
  • Expertise can be checked through the Event system using Expertise[Skill Name][OP]:x where OP is one of: >=,>,<=,<,==
  • i.e ExpertiseGather Herbs>=:2, this will return true only if the player has Gather Herbs >= 2.
  • Expertise can also be checked through the OnCasterStatus effect. i.e OnCasterStatusGather Herbs:2, ContingencyEffectInvoke:1
Mod Structure
We want to create a mod that adds the 'Stealth' expertise in the game. To do that we need the following files in our mod folder. Let's create that folder anywhere in our system ie.

D:/Documents/Stealth Expertise

You can name your mod anything you like, in this case I named it 'Stealth Expertise'.

1) in there create a ModLoaderUser.conf, which is nothing more than a text file. So in Windows Explorer right click -> New -> Text Document.

Just make sure that windows don't append a .txt ending to it.

2) Create a folder called Actions/. Create in it a text file called CardDB.Stealth.tdb exactly like in 1)
3) Create a folder called Perks/. Create in it a text file called PerksDB.Stealth.tdb exactly like in 1)

These file names again can be anything we like, as we are referencing them in our ModLoader.

When all these are done your Mod structure should look like this:

/Stealth Expertise/ModLoaderUser.conf
/Stealth Expertise/Actions/CardDB.Stealth.tdb
/Stealth Expertise/Perks/PerksDB.Stealth.tdb
Perks.Stealth.tdb
To grant an Expertise through a perk, we use Expertise[Expertise Name]:value. ie. ExpertiseStealth:1

Perks are defined in 3 lines:

[1.] Perk Name, Perk Cost [, Perk Requirements]
[2.] Perk Description
[3.] Comma Separated list of Perk Benefits

For example a full perk would be:

Stealth I, 40
Your Agility and Stealth expertise increases by +1. You gain 2x 'Hide in Shadows'.
PerkTree:Stealth, Agility:1, ExpertiseStealth:1, AddStashHide in Shadows:2

The best way to learn about perks is to go through the game files and examine what the perk does and how it does it.

A 10 Rank Stealth Perk tree could look like this:

// Stealth Expertise (10 Ranks)
// +1
Stealth I, 40
Your Agility and Stealth expertise increases by +1. You gain 2x 'Hide in Shadows'.
PerkTree:Stealth, Agility:1, ExpertiseStealth:1, AddStashHide in Shadows:2
// +3
Infiltration Techniques I, 60, Stealth I
Your Stealth expertise increases by +1. Your Concealment effect increases by +2. You gain 2x 'Skulk' & 1x 'Escape Route'.
PerkTree:Stealth, ExpertiseStealth:1, ModifyEffectConcealment:2, AddStashSkulk:2, AddStashEscape Route:1
Infiltration Techniques II, 120, Infiltration Techniques I
Your Stealth expertise increases by +1. You gain +2 Agility. Your Defend effect increases by +2. You gain 2x 'Eavesdrop' & 1x 'Break and Enter'.
PerkTree:Stealth, ExpertiseStealth:1, Agility:2, ModifyEffectDefend:2, AddStashEavesdrop:2, AddStashBreak and Enter:1
Infiltration Techniques III, 180, Infiltration Techniques II
Your Stealth expertise increases by +1. You gain +2 Intellect. Your Shadow Shift effects increase by +4. You gain 2x 'Shadowstep'.
PerkTree:Stealth, ExpertiseStealth:1, Intellect:2, ModifyEffectShadow Shift:4, AddStashShadowstep:2
// +1
Stealth II, 120, Stealth I
Your Stealth expertise increases by +1. Your Piercing & Poison Damage increase by +1. You gain 2x 'Invisible Strike'.
PerkTree:Stealth, ExpertiseStealth:1, ProficiencyPoison:1, ProficiencyPiercing:1, AddStashInvisible Strike:2
// +3
Assassination Techniques I, 80, Stealth II
Your Stealth expertise increases by +1. Your Apply Envenomed & Cripple effects increase by +2. You gain 2x 'Profile Target'.
PerkTree:Stealth, ExpertiseStealth:1, ModifyEffectApplyStatusEnvenomed:2, ModifyEffectCripple:2, AddStashProfile Target:2
Assassination Techniques II, 160, Assassination Techniques I
Your Stealth expertise increases by +1. Your Sneak Attack effect increases by +1. You gain 2x 'Ambush' & 2x 'Death Strike'
PerkTree:Stealth, ExpertiseStealth:1, ModifyEffectSneak Attack:1, AddStashAmbush:2, AddStashDeath Strike:2
Assassination Techniques III, 240, Assassination Techniques II
Your Stealth expertise increases by +1. Your Destroy Enemy effects increase by +3. You gain 2x 'Stealth Kill' & 1x 'Assassinate'
PerkTree:Stealth, ExpertiseStealth:1, ModifyEffectDestroyEnemy:2, AddStashStealth Kill:2, AddStashAssassinate:1
// +2
Stealth III, 360, Stealth II
Your Stealth expertise increases by +2. You gain +2 Agility. Your Poison & Piercing Damage increase by +2. You gain 2x 'Meld in Shadows'.
PerkTree:Stealth, ExpertiseStealth:2, Agility:2, ProficiencyPoison:2, ProficiencyPiercing:2, AddStashMeld in Shadows:2
CardDB.Stealth.tdb
Now let's say that I want to create or to modify existing actions to require Expertise Stealth. I can put those definitions in my CardDB.Stealth.tdb file.

Let's for example let's fetch 'Hide in Shadows' definition through the console:

F10
ReClone Hide in Shadows

Result:

ReDefine Hide in Shadows, Shadow, ReUseArtwork:Shadow/Hide in Shadows, ActivationSFX:Dark/Dark3, Reaction:1, Defend:3, Concealment:10, SynergyAmplify:2, Actions:2, Tier:1, Element:Piercing

That's in one line. We need to convert it two lines like so:

ReDefine Hide in Shadows, Shadow, ReUseArtwork:Shadow/Hide in Shadows, ActivationSFX:Dark/Dark3, Reaction:1, Defend:3, Concealment:10, SynergyAmplify:2, Actions:2, Tier:1, Element:Piercing

Hide in Shadows, Shadow
ActivationSFX:Dark/Dark3, Reaction:1, Defend:3, Concealment:10, SynergyAmplify:2, Actions:2, Tier:1, Element:Piercing

And we can add in it an Expertise requirement with ExpertiseReq[Expertise]:value. i.e ExpertiseReqStealth:1. Let's say I also want to remove Reaction, since now it's a more specialized action and reduce the AP cost to 1.

Hide in Shadows, Shadow
ExpertiseReqStealth:1, ActivationSFX:Dark/Dark3, Defend:3, Concealment:10, SynergyAmplify:2, Actions:1, Tier:1, Element:Piercing

Finally I can make this action give me more Concealment with a Contingency. For example if I have Stealth Expertise 4, then I get a Sneak Attack Synergy of 3x:

OnCasterStatusExpertiseStealth:4, ContingencyEffectSneak Attack*:3,

Last but not least, we want to Exclude this card from Random Loot, so only one that have it as a Skill or through the Stealth expertise can get it. We do that with ExcludeFromRandomLoot:1

The final definition will then be:

Hide in Shadows, Shadow
ExpertiseReqStealth:1, ActivationSFX:Dark/Dark3, Defend:3, Concealment:10, SynergyAmplify:2, OnCasterStatusExpertiseStealth:4, ContingencyEffectSneak Attack*:3, Actions:1, Tier:1, Element:Piercing, ExcludeFromRandomLoot:1

Rinse and repeat till your new Card set is complete ;)
ModLoaderUser.conf
Finally let's tie everything together.

To make the Stealth tree universal we add this section (this is an one-liner)

## UniversalPerks Perk1:Lvl, Perk2:Lvl, etc.

ie.

## UniversalPerks Stealth I:2, Infiltration Techniques I:3, Infiltration Techniques II:5, Infiltration Techniques III:7, Stealth II:5, Assassination Techniques I:5, Assassination Techniques II:7, Assassination Techniques III:9, Stealth III:9

To declare the Perks we add this section:

>> Perks
PerksDB.Stealth.tdb


To declare the Cards we add this section

>> Cards
CardDB.Stealth.tdb


Your final ModLoaderUser.conf should have these lines:

## UniversalPerks Stealth I:2, Infiltration Techniques I:3, Infiltration Techniques II:5, Infiltration Techniques III:7, Stealth II:5, Assassination Techniques I:5, Assassination Techniques II:7, Assassination Techniques III:9, Stealth III:9
>> Perks
PerksDB.Stealth.tdb
>> Cards
CardDB.Stealth.tdb

What? That's it?
Yes ;) Just send the folder you worked in to .zip, and install it through the Mod Manager, or using the ingame Steam Workshop Uploader to upload the unzipped folder to Steam Workshop. That's all the files you need to create new Universal Perks and Expertises!

Now any of your characters can follow the Stealth Perk Tree and branch out of their archetype, by learning additional skills and accessing new actions.

You can read more on perks and actions here:

https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=1703719938

And of course by exploring and digging through the Vanilla & DLC content. Enjoy!