Abilities - osirisOfGit/BG3_Absolutes_Laboratory GitHub Wiki
Dependency On: Spell Lists || Transient: Yes || Additive: No
This mutator allows you to reroll an entity's Abilities, the same way a player would, creating variety in enemy abilities while still ensuring proper difficulty curves.
When determining which Abilities get the highest scores, the following is done in order:
- Check the Overrides section - anything set here will override the following
- Check the spell list that had the most levels assigned - if that has Primary Abilities set, use those
- If more than one list was assigned, check the next with the second-highest amount of levels assigned
- Use the assigned ability priority if currently unset (i.e. the first spell list didn't set Primary)
- If the second spell list's Secondary Ability is the same as the first List's Tertiary Ability, swap the secondary and the tertiary
- If the second list's Second Ability is not the same as the first's tertiary, make it the tertiary ability
- Inspect the entity's current ability scores and use that to determine any missing Ability priorites, including 4/5/6
Priorities 4/5/6 currently can't be set by the user, as that seemed superfluous to me, but open to changing it if necessary
Abilities are changed by applying a Boost via Osi.AddBoost - this is done to ensure the game correctly updates saving throws and the Character window, but also means this value will be wiped on reload (as it has no backing status). May change this in the future, depending on if this really matters when reloading mid-combat.
[DEBUG] (S) ==== Starting mutator Abilities (priority 11) ====
[DEBUG] (S) Rolled values before assignment: [
16,
15,
14,
13,
10,
7
]
[DEBUG] (S) Overridden Ability Priorities are: []
[DEBUG] (S) List Destructo is the highest leveled list assigned (at 2) - using it as the base
[DEBUG] (S) Assigned ability priority tertiaryStat to Strength due to New Spell List having it set when the previous list did not
[DEBUG] (S) Assigned ability priority secondaryStat to Constitution due to New Spell List having it set when the previous list did not
[DEBUG] (S) Assigned ability priority primaryStat to Wisdom due to New Spell List having it set when the previous list did not
[DEBUG] (S) Ability priorities after being determined by spell lists: {
"primaryStat" : "Wisdom",
"secondaryStat" : "Constitution",
"tertiaryStat" : "Strength"
}
[DEBUG] (S) Final ability score priorities: {
"fifth" : "Charisma",
"fourth" : "Intelligence",
"primaryStat" : "Wisdom",
"secondaryStat" : "Constitution",
"sixth" : "Dexterity",
"tertiaryStat" : "Strength"
}
[DEBUG] (S) Entity Abilities updated using Boosts: Ability(Wisdom,0);Ability(Constitution,2);Ability(Strength,0);Ability(Intelligence,-3);Ability(Charisma,-6);Ability(Dexterity,-5);
From Base: [
[
0,
14,
12,
14,
16,
18,
16
]
]
[DEBUG] (S) ==== Finished mutator Abilities in 1ms ====