2026/03/11 Update

Fixed Expeditious Retreat's duration.
Fixed Avariel's dive with weapons that have multiple damage types.
Hybsil's description now points to the right TLK entry.
Fixed Dragon Cloud's creature weapons & stats.
Stone Power shouldn't delete all of you spell effects.
Stone Power should be a prereq for Deepstone Sentinel.
GetMaxSpellLevelForCasterLevel() should work with newspellbook spells.
Barbarian Rage should be an instant feat.
Added BAB 2 req to several PrCs to prevent a Bioware bug where they are available in chargen.
This commit is contained in:
Jaysyn904
2026-03-11 11:23:55 -04:00
parent 86666c51e8
commit 90c7bd3557
19 changed files with 131 additions and 52 deletions

View File

@@ -1,18 +1,19 @@
2DA V2.0
LABEL ReqType ReqParam1 ReqParam2
0 Dwarf RACE 0 ****
1 FirebldDwrf RACE 106 ****
2 ArcticDwarf RACE 151 ****
3 GoldDwarf RACE 152 ****
4 GreyDwarf RACE 153 ****
5 GlacrDwarf RACE 154 ****
6 Urdunnir RACE 155 ****
7 WildDwarf RACE 156 ****
8 Korobokuru RACE 245 ****
9 Maeluth RACE 206 ****
10 PowerAtk FEATOR 28 ****
11 Base_Attack BAB 10 ****
12 ScriptVar VAR PRC_AllowDeepSt 0
13 ScriptVar VAR PRC_PrereqDeepSt 0
14 Balance SKILL 32 13
LABEL ReqType ReqParam1 ReqParam2
0 Dwarf RACE 0 ****
1 FirebldDwrf RACE 106 ****
2 ArcticDwarf RACE 151 ****
3 GoldDwarf RACE 152 ****
4 GreyDwarf RACE 153 ****
5 GlacrDwarf RACE 154 ****
6 Urdunnir RACE 155 ****
7 WildDwarf RACE 156 ****
8 Korobokuru RACE 245 ****
9 Maeluth RACE 206 ****
10 Balance SKILL 32 13
11 StonePower FEATOR 5294 ****
12 PowerAtk FEATOR 28 ****
13 Base_Attack BAB 10 ****
14 ScriptVar VAR PRC_AllowDeepSt 0
15 ScriptVar VAR PRC_PrereqDeepSt 0

View File

@@ -1,6 +1,7 @@
2DA V2.0
LABEL ReqType ReqParam1 ReqParam2
0 ScriptVar VAR PRC_ArcSpell3 0
1 MartialProf FEAT 45 ****
2 ScriptVar VAR PRC_AllowEldknight 0
LABEL ReqType ReqParam1 ReqParam2
0 BaseAttackBonus BAB 2 ****
1 MartialProf FEAT 45 ****
2 ScriptVar VAR PRC_AllowEldknight 0
3 ScriptVar VAR PRC_ArcSpell3 0

View File

@@ -1,7 +1,8 @@
2DA V2.0
LABEL ReqType ReqParam1 ReqParam2
0 Lore SKILL 7 1
1 Spellcraft SKILL 16 1
2 ScriptVar VAR PRC_AllowKnightWeave 0
3 ScriptVar VAR PRC_PrereqKnightWeave 0
LABEL ReqType ReqParam1 ReqParam2
0 BaseAttackBonus BAB 2 ****
1 Lore SKILL 7 1
2 Spellcraft SKILL 16 1
3 ScriptVar VAR PRC_AllowKnightWeave 0
4 ScriptVar VAR PRC_PrereqKnightWeave 0

View File

@@ -1,8 +1,9 @@
2DA V2.0
LABEL ReqType ReqParam1 ReqParam2
0 Lore SKILL 7 4
1 Spellcraft SKILL 16 4
2 ScriptVar VAR PRC_DivSpell2 0
3 ScriptVar VAR PRC_PrereqSapphire 0
4 ScriptVar VAR PRC_AllowSapphire 0
LABEL ReqType ReqParam1 ReqParam2
0 BaseAttackBonus BAB 2 ****
0 Lore SKILL 7 4
1 Spellcraft SKILL 16 4
2 ScriptVar VAR PRC_DivSpell2 0
3 ScriptVar VAR PRC_PrereqSapphire 0
4 ScriptVar VAR PRC_AllowSapphire 0

View File

@@ -1,6 +1,7 @@
2DA V2.0
LABEL ReqType ReqParam1 ReqParam2
0 Lore SKILL 7 2
1 ScriptVar VAR PRC_AllowScion 0
2 ScriptVar VAR PRC_PrereqScion 0
LABEL ReqType ReqParam1 ReqParam2
0 BaseAttackBonus BAB 2 ****
1 Lore SKILL 7 2
2 ScriptVar VAR PRC_AllowScion 0
3 ScriptVar VAR PRC_PrereqScion 0

View File

@@ -1,7 +1,8 @@
2DA V2.0
LABEL ReqType ReqParam1 ReqParam2
0 ScriptVar VAR PRC_AllowWWolf 0
0 BaseAttackBonus BAB 2 ****
1 TrueLyncathrope FEATOR 3520 ****
2 IronWill FEATOR 22 ****
3 ScriptVar VAR PRC_PrereqWWolf 0
4 ScriptVar VAR PRC_AllowWWolf 0

View File

@@ -327,12 +327,12 @@
323 Travel_Domain_Power 5963 16827781 id_travel **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 5 1725 **** 0.5 1 **** 1 **** **** **** **** **** **** **** **** **** FEAT_TRAVEL_DOMAIN_POWER 6 **** **** **** **** **** 0 1
324 Trickery_Domain_Power 5964 16827782 id_trickery **** **** **** **** **** **** **** **** **** **** 0 0 0 10 5 384 **** 0.5 1 **** 1 **** **** **** **** **** **** **** **** **** FEAT_TRICKERY_DOMAIN_POWER 6 **** **** **** **** **** 0 1
325 Water_Domain_Power 5965 16827787 id_water **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 5 1733 **** 0.5 33 **** 1 **** **** **** **** **** **** **** **** **** FEAT_WATER_DOMAIN_POWER 6 **** **** **** **** **** 0 1
326 BarbarianRage2 6426 6084 ife_rage **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 1 307 327 0.5 2 **** 1 **** **** **** **** **** **** **** **** **** FEAT_BARBARIAN_RAGE 6 **** **** **** **** **** 0 1
327 BarbarianRage3 6427 6084 ife_rage **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 1 307 328 0.5 3 **** 1 **** **** **** **** **** **** **** **** **** FEAT_BARBARIAN_RAGE 6 **** **** **** **** **** 0 1
328 BarbarianRage4 6428 6084 ife_rage **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 1 307 329 0.5 4 **** 1 **** **** **** **** **** **** **** **** **** FEAT_BARBARIAN_RAGE 6 **** **** **** **** **** 0 1
329 BarbarianRage5 6431 6084 ife_rage **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 1 307 **** 0.5 30 **** 1 **** **** **** **** **** **** **** **** **** FEAT_BARBARIAN_RAGE 6 **** **** **** **** **** 0 1
330 BarbarianRage6 6430 6084 ife_rage **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 1 307 331 0.5 5 **** 1 **** **** **** **** **** **** **** **** **** FEAT_BARBARIAN_RAGE 6 **** **** **** **** **** 0 1
331 BarbarianRage7 6431 6084 ife_rage **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 1 307 **** 0.5 6 **** 1 **** **** **** **** **** **** **** **** **** FEAT_BARBARIAN_RAGE 6 **** **** **** **** **** 0 1
326 BarbarianRage2 6426 6084 ife_rage **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 1 307 327 0.5 2 **** 1 **** **** **** **** **** **** **** **** **** FEAT_BARBARIAN_RAGE 6 **** **** **** **** **** 0 0
327 BarbarianRage3 6427 6084 ife_rage **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 1 307 328 0.5 3 **** 1 **** **** **** **** **** **** **** **** **** FEAT_BARBARIAN_RAGE 6 **** **** **** **** **** 0 0
328 BarbarianRage4 6428 6084 ife_rage **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 1 307 329 0.5 4 **** 1 **** **** **** **** **** **** **** **** **** FEAT_BARBARIAN_RAGE 6 **** **** **** **** **** 0 0
329 BarbarianRage5 6431 6084 ife_rage **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 1 307 **** 0.5 30 **** 1 **** **** **** **** **** **** **** **** **** FEAT_BARBARIAN_RAGE 6 **** **** **** **** **** 0 0
330 BarbarianRage6 6430 6084 ife_rage **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 1 307 331 0.5 5 **** 1 **** **** **** **** **** **** **** **** **** FEAT_BARBARIAN_RAGE 6 **** **** **** **** **** 0 0
331 BarbarianRage7 6431 6084 ife_rage **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 1 307 **** 0.5 6 **** 1 **** **** **** **** **** **** **** **** **** FEAT_BARBARIAN_RAGE 6 **** **** **** **** **** 0 0
332 DamageReduction2 6432 8339 ife_damred **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** 333 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_DAMAGE_REDUCTION 3 **** **** **** **** **** 0 1
333 DamageReduction3 6433 8340 ife_damred **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** 334 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_DAMAGE_REDUCTION 3 **** **** **** **** **** 0 1
334 DamageReduction4 6434 8341 ife_damred **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** 1067 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_DAMAGE_REDUCTION 3 **** **** **** **** **** 0 1
@@ -870,7 +870,7 @@
866 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 0 1
867 FEAT_WHIRLWIND_ATTACK 8654 8655 ife_X2WWndAtt 4 **** 13 13 **** **** **** **** 392 389 0 0 1 **** **** 561 868 1 **** **** 1 **** **** **** **** **** **** **** **** **** FEAT_WHIRLWIND_ATTACK 2 **** **** **** **** **** 0 1
868 FEAT_IMPROVED_WHIRLWIND 8656 16824497 ife_X2ImpWW **** **** 23 **** **** **** **** **** 392 389 0 0 1 **** **** 645 **** 1 **** **** 1 867 3609 **** **** **** **** **** **** **** FEAT_IMPROVED_WHIRLWIND 2 **** **** **** **** **** 1 1
869 FEAT_MIGHTY_RAGE 8659 8660 ife_X2MightRage **** 21 **** **** **** 21 **** **** 331 **** 0 0 0 **** **** 642 **** 1 3 **** 1 **** **** **** **** **** **** **** **** **** FEAT_MIGHTY_RAGE 2 **** **** **** **** **** 1 1
869 FEAT_MIGHTY_RAGE 8659 8660 ife_X2MightRage **** 21 **** **** **** 21 **** **** 331 **** 0 0 0 **** **** 642 **** 1 3 **** 1 **** **** **** **** **** **** **** **** **** FEAT_MIGHTY_RAGE 2 **** **** **** **** **** 1 0
870 FEAT_EPIC_LASTING_INSPIRATION 8661 8662 ife_X2LastInsp **** **** **** **** **** **** **** **** 257 **** 0 0 0 **** **** **** **** 0.2 **** **** **** **** **** **** **** **** 11 25 **** **** FEAT_EPIC_LASTING_INSPIRATION 5 **** **** **** **** **** 1 1
871 FEAT_CURSE_SONG 8663 8664 ife_X2CursSong **** **** **** **** **** **** **** **** **** **** 0 0 0 8 **** 644 **** 0.5 **** **** 1 **** **** **** **** **** **** **** **** **** FEAT_CURSE_SONG 5 **** **** **** **** **** 0 1
872 FEAT_EPIC_WILD_SHAPE_UNDEAD 83891 83580 ife_X2UdShp **** **** **** **** **** **** **** **** 903 **** 0 0 0 10 1 685 **** 1 3 **** 1 **** **** **** **** **** **** **** **** **** FEAT_WILD_SHAPE_UNDEAD 6 **** **** **** **** **** 1 1

View File

@@ -103,8 +103,69 @@ string GetClassString(int nClass)
return sClass;
}
int GetMaxSpellLevelForCasterLevel_NewSB(int nClass, int nCasterLevel, object oPC)
{
// Use the existing GetSpellslotLevel which properly handles new spellbook
int nEffectiveLevel = GetSpellslotLevel(nClass, oPC);
// Get the spell known table for this class
string sFile = Get2DACache("classes", "SpellKnownTable", nClass);
// Find the highest spell level available at this effective caster level
int nSpellLevel;
for(nSpellLevel = 9; nSpellLevel >= 0; nSpellLevel--)
{
string sTemp = Get2DACache(sFile, "SpellLevel" + IntToString(nSpellLevel), nEffectiveLevel - 1);
if(sTemp != "" && StringToInt(sTemp) > 0)
{
break;
}
}
return nSpellLevel;
}
// gets the maximum spell level that nClass can cast at nCasterLevel
int GetMaxSpellLevelForCasterLevel(int nClass, int nCasterLevel)
int GetMaxSpellLevelForCasterLevel(int nClass, int nCasterLevel)
{
// Check if this character is using the new spellbook system
object oPC = OBJECT_SELF; // You may need to pass oPC as a parameter
if(GetLocalInt(oPC, "NSB_Class") == nClass)
{
// Use new spellbook calculation
return GetMaxSpellLevelForCasterLevel_NewSB(nClass, nCasterLevel, oPC);
}
// Original Bioware calculation
string sFile = Get2DACache("classes", "SpellGainTable", nClass);
nCasterLevel--;
int nSpellLevel;
if (Get2DACache(sFile, "NumSpellLevels", 9) != "")
{
string sTemp = Get2DACache(sFile, "NumSpellLevels", nCasterLevel);
if (sTemp != "")
{
nSpellLevel = StringToInt(sTemp)-1;
if (nSpellLevel <= 0) nSpellLevel = 0;
}
}
else
{
for (nSpellLevel=9; nSpellLevel >= 0; nSpellLevel--)
{
string sTemp = Get2DACache(sFile, "SpellLevel" + IntToString(nSpellLevel), nCasterLevel);
if (sTemp != "")
{
break;
}
}
}
return nSpellLevel;
}
/* int GetMaxSpellLevelForCasterLevel(int nClass, int nCasterLevel)
{
string sFile;
// Bioware casters use their classes.2da-specified tables
@@ -143,7 +204,8 @@ int GetMaxSpellLevelForCasterLevel(int nClass, int nCasterLevel)
}
return nSpellLevel;
}
*/
// gets the minimum spell level that nClass can cast at nCasterLevel
int GetMinSpellLevelForCasterLevel(int nClass, int nCasterLevel)
{

View File

@@ -871,6 +871,7 @@ void CreateSwitchNameArray()
//craft
array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_DISABLE_CRAFT);
//array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_CRAFT_ENHANCEMENT_CAP);
array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_CRAFT_TIMER_MULTIPLIER);
array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_CRAFT_TIMER_MAX);
array_set_string(oWP, "Switch_Name", array_get_size(oWP, "Switch_Name"), PRC_CRAFT_TIMER_MIN);

View File

@@ -2073,6 +2073,14 @@ const string PRC_CRAFTING_MUNDANE_COST_SCALE = "PRC_CRAFTING_MUNDANE_COST
*/
const string PRC_CRAFTING_TIME_SCALE = "PRC_CRAFTING_TIME_SCALE";
/**
* Caps the enhancement bonus for crafted items to this value
* Set to 0 or negative to disable the cap
* Type: Int
* Values: any integer (0 or negative = no cap)
*/
const string PRC_CRAFT_ENHANCEMENT_CAP = "PRC_CRAFT_ENHANCEMENT_CAP";
/**
* TO DISABLE SPECIFIC PROPERTIES:
*

View File

@@ -24,6 +24,8 @@ Created: 11.11.2018
void main()
{
int nEvent = GetRunningEvent();
int nSpellId = PRCGetSpellId();
if(DEBUG) DoDebug("tob_ft_stnpwr running, event: " + IntToString(nEvent));
object oInitiator = OBJECT_SELF;
@@ -50,7 +52,7 @@ void main()
else if(nEvent == EVENT_ONHEARTBEAT)
{
// No Stacking
PRCRemoveSpellEffects(GetSpellId(), oInitiator, oInitiator);
PRCRemoveSpellEffects(nSpellId, oInitiator, oInitiator);
// Skip applying effects if nothing to apply
int nSwitch = GetLocalInt(oInitiator, "StonePowerSwitch");
if (nSwitch == 0) return;

Binary file not shown.

View File

@@ -67,7 +67,7 @@
63 Uldra Hs 16790171 16790171 16790172 16790171 16790173 **** 3 -2 0 0 0 2 2 20 3 RACE_FEAT_ULDRA 8160 1 RACIAL_TYPE_ULDRA 20 3 1 uldra **** **** **** 4 30 3 1 INT 278
64 Extaminaar Ex 16837901 16837901 16837902 16837903 16837904 **** 6 -2 2 0 0 0 0 30 8 RACE_FEAT_EXTAM 8163 1 RACIAL_TYPE_EXTAMINAAR 20 8 1 human yuanti **** **** 4 30 3 1 INT 267
65 Karsite Ka 16835602 16835602 16835603 16835604 16835605 **** 6 0 0 0 2 0 2 30 43 RACE_FEAT_KARSIT 8163 1 RACIAL_TYPE_KARSITE 18 43 1 human **** 1 1 4 30 3 1 INT 267
66 Hybsil Hy 16790194 16790194 16790195 16790196 16790197 **** 3 -2 6 2 0 0 2 50 3 RACE_FEAT_HYBSIL 16832294 1 RACIAL_TYPE_HYBSIL 15 3 1 hybsil **** **** **** 4 30 3 1 INT 278
66 Hybsil Hy 16790194 16790194 16790195 16790196 16790197 **** 3 -2 6 2 0 0 2 50 3 RACE_FEAT_HYBSIL 16790194 1 RACIAL_TYPE_HYBSIL 15 3 1 hybsil **** **** **** 4 30 3 1 INT 278
67 RethDekala Rt 16790285 16790285 16790286 16790287 16790288 **** 100 8 4 0 4 4 6 30 9 RACE_FEAT_RETH 8163 1 RACIAL_TYPE_RETH_DEKALA 15 236 1 devil **** **** **** 4 30 3 1 INT 281
68 Arkamoi Ar 16790312 16790312 16790313 16790314 16790315 **** 5 0 4 4 4 2 4 30 9 RACE_FEAT_ARKAM 8163 1 RACIAL_TYPE_ARKAMOI 15 9 1 ushemoi **** **** **** 4 30 3 1 INT 274
69 Lashemoi La 16790317 16790317 16790318 16790319 16790320 **** 6 2 0 -6 -2 0 6 30 0 RACE_FEAT_LASHEM 8163 1 RACIAL_TYPE_LASHEMOI 15 0 1 ushemoi **** **** **** 4 30 3 1 INT 274

View File

@@ -42,7 +42,7 @@ void main()
int iNumDice = StringToInt(Get2DACache("baseitems", "NumDice", iWeaponType));
int iCritMult = GetWeaponCritcalMultiplier(oPC, oWeap);
// deal double the damage
if(GetWeaponDamageType(oWeap) == DAMAGE_TYPE_PIERCING)
if(GetWeaponDamageType(oWeap) & DAMAGE_TYPE_PIERCING)
iNumDice *= 2;
struct BonusDamage sWeaponBonusDamage = GetWeaponBonusDamage(oWeap, oTarget);

View File

@@ -65,7 +65,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_TRANSMUTATION
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, 455, FALSE));
//Apply the VFX impact and effects
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration),TRUE,-1,CasterLvl);
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, TurnsToSeconds(nDuration),TRUE,-1,CasterLvl);
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");

View File

@@ -5187,7 +5187,7 @@ Feats Required: Exotic</entry>
<entry id="16521" lang="en" sex="m">Forest Masters</entry>
<entry id="16522" lang="en" sex="m">forest master</entry>
<entry id="16523" lang="en" sex="m">(PRESTIGE CLASS)
Guardians of the pristine wilderness and defenders of the ancient trees, forest masters are the living embodiments of sentient nature. They walk the shadows under the woods and destroy those who would lay waste to the wild lands. Where druids hold all aspects of nature; wind and weather, animal and plant, meadows and mountains- the forest masters consider the forests more ancient than the coming of animals or humans the most sacred spots of the world. Druids most often become forest masters, but it is not unheard of for rangers or clerics of nature deities to leave their kinships behind and follow this path.
Guardians of the pristine wilderness and defenders of the ancient trees, forest masters are the living embodiments of sentient nature. They walk the shadows under the woods and destroy those who would lay waste to the wild lands. Where druids hold all aspects of nature; wind and weather, animal and plant, meadows and mountains, the forest masters consider the forests more ancient than the coming of animals or humans the most sacred spots of the world. Druids most often become forest masters, but it is not unheard of for rangers or clerics of nature deities to leave their kinships behind and follow this path.
A few multiclassed barbarians become forest masters, although they rarely have the dedication to the plant aspect of nature to embrace this worldview. Forest masters often work alone, but are more than capable of working as part of a group. Many times adventurers have spoken with what they thought was a young, small treant, when they were actually speaking with a very powerful forest master. There are no rivalries between groups of forest masters, although individuals may disagree on methods of enacting the will of the Treefather.
@@ -72665,7 +72665,7 @@ Use: Automatic, checked for in DoDisarm()</entry>
<entry id="78002" lang="en" sex="m">Lions of Talisid</entry>
<entry id="78003" lang="en" sex="m">lion of Talisid</entry>
<entry id="78004" lang="en" sex="m">(PRESTIGE CLASS)
The undisputed ruler of the guardinals, Talisid the Celestial Lion is an enormously powerful force for good- and good alone, undiluted by concerns of law or chaos. He is also a mighty druid, and his mortal and guardinal champions are druids and rangers who share both his fierce hatred of evil and his passionate love of the natural world and its creatures. Called the lions of Talisid, these protectors of nature and champions of good emulate their celestial patron in more concrete ways: adopting feline animal companions, assuming great cat forms with their wild shape ability, and eventually roaring like a leonal. Druids and rangers most commonly become lions of Talisid, and only a character with an animal companion can enter the class. Multiclass druid/rangers also commonly adopt the class, and less commonly, fighter/druids or cleric/rangers.
The undisputed ruler of the guardinals, Talisid the Celestial Lion is an enormously powerful force for good, and good alone, undiluted by concerns of law or chaos. He is also a mighty druid, and his mortal and guardinal champions are druids and rangers who share both his fierce hatred of evil and his passionate love of the natural world and its creatures. Called the lions of Talisid, these protectors of nature and champions of good emulate their celestial patron in more concrete ways: adopting feline animal companions, assuming great cat forms with their wild shape ability, and eventually roaring like a leonal. Druids and rangers most commonly become lions of Talisid, and only a character with an animal companion can enter the class. Multiclass druid/rangers also commonly adopt the class, and less commonly, fighter/druids or cleric/rangers.
Like their guardinal patron, lions of Talisid usually work alone or in small groups of close companions, rarely with other lions. NPC lions of Talisid can be found wandering the wilderness, fighting any who would defile the natural world with evil. They are particularly concerned with areas where some evil presence corrupts nature itself, manifesting evil weather and vile corrupted creatures.
@@ -76525,7 +76525,7 @@ Feats Required: Simple, Druid, or Wizard</entry>
<entry id="212201" lang="en" sex="m">This brooch surrounds the wearer with a protective magical barrier, increasing shield AC and immunity to magic missiles while it is worn.</entry>
<entry id="212202" lang="en" sex="m">This circlet is enchanted to unleash powerful energy blasts with a thought, allowing them to project a magical ray of fire when activated.</entry>
<entry id="212203" lang="en" sex="m">This circlet subtly enhances the wearer's charisma, granting a continuous magical bonus to Charisma-based checks, making them more charming and persuasive in social interactions.</entry>
<entry id="212204" lang="en" sex="m">This black garment, embroidered with a weblike pattern in silk, gives the wearer the ability to climb as if a spider climb spell had been placed upon her. In addition, the cloak grants her immunity to entrapment by web spells or webs of any sort-she can actually move in webs at half her normal speed. Once per day, the wearer of this cloak can cast web. She also gains a +2 luck bonus on all Fortitude saves against poison from spiders.</entry>
<entry id="212204" lang="en" sex="m">This black garment, embroidered with a weblike pattern in silk, gives the wearer the ability to climb as if a spider climb spell had been placed upon her. In addition, the cloak grants her immunity to entrapment by web spells or webs of any sort, she can actually move in webs at half her normal speed. Once per day, the wearer of this cloak can cast web. She also gains a +2 luck bonus on all Fortitude saves against poison from spiders.</entry>
<entry id="212205" lang="en" sex="m">This cloak magically enhances the wearer's personal presence, granting a continuous bonus to Charisma as long as it is worn, making them more compelling and influential.</entry>
<entry id="212206" lang="en" sex="m">This cloak creates a magical illusion that makes the wearer appear slightly out of position, making them harder to strike and granting a constant bonus to avoid attacks while it is worn.</entry>
<entry id="212207" lang="en" sex="m">This cloak subtly blends the wearer with their surroundings, providing a constant magical bonus to Hide checks and making them more difficult to detect while it is worn.</entry>