Thralls/Pets progression system

About this guide

This guide will deal with the follower levelling table and perks table. The references in this document should allow you to customize and/or create your own followers with their own levelling curve and perk tables.

We will start with the easiest tables to understand and leave the meat of the system to last, since there are quite a few things to unpack there.

Spawn Table

The spawn data table has entries related to the NPC progression system. They are as follows:

Level Curve ID refers to the entry spec’ed out in the «NPCLevelCurveDataTable» and controls how fast your thrall levels (more about this table later)

Growth ID refers to the entry spec’ed out in the «NPCStatsAndGrowthsDataTable» and determines many different things, amongst others how many points are given when the follower is newly placed at level 1, and the rate of growth for your follower.

Perk Type is yet another referral entry, in this case it refers to the entry in «NPCPerksDataTable» which determines what type of perk the follower gets, at which level, and the type of bonus it has.

NPC Level Curve Data Table

This data table determines how fast your follower levels when it receives combat XP. It also determines at hich levels the follower may gain a perk.

CurveName is what is referenced by the SpawnDataTable, as mentioned above – you can add your own curves or extend the existing ones as you please.

Level is what level the NPC is currently at when the check is done

XPRequired is how much XP is required for the follower to level from the current level to the next one.

PerkRoll (either false or true) determines if a follower should roll on the perk table once levelled up or not (please note – this is for the NEXT level, not the current one).

NPC Perks Data Table

This table contains all perks in the game that followers of a certain type have access to.

Display Name – this is the displayed title for the perk as players sees it in the UI.

Perk Type – this is what the SpawnDataTable refers to for «Perk Type» - as an example: any human follower in the game refers to «Human» in this table. Odd, that.

Description – this is a description of the perk visible in the UI to the players.

Icon – this is the icon for the perk.

Perk Weight – some perks may or may not have a higher weighted chance to be selected rather than other perks. If you want to increase the chance of a perk being selected, this is the entry to edit.

IsStatPerk – currently, this is not used (or rather – it is always used) – the idea is to expand the perk tree to allow for gameplay perks that give gameplay variety rather than stats, but we never had time to implement it for release and decided to hold it back until a later date, when follower AI had been updated significantly enough for this to matter.

Level Requirement – this is the level the follower needs to be in order to receive the perk.

Attribute Range – this array allows you to set up a Min / Max attribute within which your thrall needs to be in order to accept the perk. For example – an attribute value of «Attribute Accuracy» with Min 10 and Max 30 will not allow followers with less than 10 or higher than 30 Accuracy to obtain this perk.

Note that the names for these attributes are legacy code names, and they will not make immediate sense. In the appendix in this primer, I’ve listed what all these actually are. There are also more entries in this than just the attributes, but they won’t be detailed in this guide (and typically are either reasonably easy to figure out, or are not used)

NPC Stats And Growths Data Table

This is the big one. This data table determines the stat growths and ability scores given to a newly obtained follower. The table is rather big but here we go.

Row Type – this is what the SpawnDataTable refers to when it creates a new follower.

Growth Points – This is the number of growth points distributed to the follower once created.

We will go through an example below but you can think about these as Stat Rolls available at character creation. Each stat roll will add a certain amount of points to a specific stat. We will go over later exactly how it works in an example – but for now – suffice to say that if you increase this, it increases the amount of points distributed throughout the follower when it is first created.

Base level – If you want your follower to start at a certain level, this is where you can specify what level that would be. Typically, this is 0 for all followers currently in the game.

Growth Ratio – This is arguably the most complex value to specify. This is a modifier to Base Growths that function like so:

Total Chance of being given a stat = Base + Growth points into that stat * Growth Ratio

Base Growth Rate 1 – This determines the base growth chance for the follower to level a stat when it levels up. All stats use this one value as a kickoff point.

Base Growth Rate 2 – This secondary growth rate is actually a hidden roll that happens IF the first Growth was successful, meaning, it is possible for followers to gain an additional «level-up» for each level. This does not actually level the follower up – but it does give them additional stats, as if they had.

Weight Strength / Agility / Vitality / Accuracy / Encumbrance / Survival

These weights are percentages used by a follower when stats are assigned (on creation of the follower). The weights typically (but not necessarily) add up to 100% to make it easy to overview the chance of a specific stat being selected.

Do note – this is not using base growth rates. This is simply a weighted selection that the rolls from the Growth Points use to assign stats on follower creation.

Max Strength / Agility / Vitality / Accuracy / Encumbrance / Survival - Every roll on follower creation adds 1->Max amount of points. If these are increased, whenever the follower levels, the system will instead give out 1->This Number of points into the stat rolled.

Base Strength / Agility / Vitality / Accuracy / Encumbrance / Survival - These numbers determines how many points your follower start off with, no matter what.

Bonus Damage Melee Percentage Per Attribute - This is how your melee damage is being calculated based on Strength. As you can see, these values are rather low (1 = 100% and 0.01 = 1%) since these values get stacked up every time you level.

0.00825 is therefore actually 0.825% (so a total of 60 Strength would be 49,5%)

Bonus Armor Per Attribute – this is the amount of natural armor (without wearing any armor) your follower gets per attribute point in Agility.

Bonus Health Percentage Per Attribute - This is the amount of bonus health granted per point of Vitality by the system. The percentages are calculated similar to the Melee damage bonus (1=100%, 0,01 = 1%).

Bonus Damage Ranged Percentage Per Attribute - This is how your ranged damage is being calculated based on Accuracy. As you can see, these values are rather low (1 = 100% and 0.01 = 1%) since these values get stacked up every time you level.

0.00825 is therefore actually 0.825% (so a total of 60 Accuracy would be 49,5%)

Bonus Encumbrance Per Attribute – currerntly not in use

A note on percentages before we move on: The values above are the bonuses from THIS system alone, which are compounded by things from the Stat Template table (see the «Creating an NPC guide») and I recommnend some serious tinkering before you get these down to where you want them to be.

Growth works like this

So – now that your head is tilting all over the place and cursing multiple things at the same time (your maths teacher, me, Funcom, Conan, Giraffes.. whatever it might be), let’s make this a bit more understandable.

When a follower is created (placed for the first time in the world), this follower is assigned BASE STATS. These stats are the «Base Strength, Agility, Encumbrance, etc» found above. If your follower is level 0 (which is very likely, given that all followers default to this) that’s the end of it. If your follower has a higher BaseLevel, the system still creates your level 0 follower, gives them the base stats and then goes through subsequent levels as if they had levelled up.

What is also assigned is the followers Base Growth Chance (1+2). Players only ever see the values for the first Growth Chance, so please keep that in mind.

The amount of Growth Points gives you a certain amount of «Rolls».

Each one of these rolls are assigned on creation (and stays with the follower as it levels), based on the Weighted values mentioned above (Weighted Strength, Agility, Accuracy, etc), which means that a Growth Points value of 10 would assign 10 rolls to random attributes. For example – your follower may end up with most of these in Strength if the weight for Strength is very high for this specific Row Type.

Each of these weighted entries are given a value of 1-MaxAttribute. If your follower has a very high «Weight Strength» value and the Max Strength value is «1», every time Strength is picked when levelling up (or assigning points) a value of «1» to «1» will be assigned. If Max Strength value would be «5» - every time Strength is picked, the value now ranges from «1» to «5», making your follower much stronger.

If the follower levels, keep in mind that the new value for each attribute is now in effect the new Base. Now this formula starts making a bit more sense:

Total Chance of being given a stat = Base + Growth points into that stat * Growth Ratio

Attribute Names

As presented in the table

As presented in the actual game

AttributeHealth

Vitality

AttributeStamina

Grit

AttributeEncumbrance

Encumbrance

AttributeMight

Strength

AttributeAccuracy

Accuracy

AttributeAthleticism

Agility

AttributeMetabolism

Survival

AttributeResilience

Consciousness (knockout health – not used)