Fix Class-Warlock: Pact Magic slot-level table, Magical Cunning, Lifedrinker, Devouring Blade
Verified against Progressions.lsx: Warlock's WarlockSpellSlot progression
jumps to 2nd-level slots at Level 3 (ActionResource(WarlockSpellSlot,2,2) +
override zeroing level-1 slots), not staying at 1st level through Level 4 as
the wiki's table claimed. Verified Shout_MagicalCunning: it fires
RestoreResource(WarlockSpellSlot,1,N) for N=1..5 simultaneously, but since a
Warlock's slots only ever exist at one current tier (older tiers are
overridden to 0 capacity), only one of those calls actually restores
anything — the mod grants a flat 1 slot back, not tabletop 5e's "half your
expended slots, rounded up." Verified Lifedrinker's actual StatsFunctors:
DealDamage(1d6,Necrotic) + RegainHitPoints(1d6+ConstitutionModifier), once
per turn — a flat-damage lifesteal effect, not Charisma-modifier scaling
damage as tabletop 5e and the previous wiki text described. Verified
DevouringBlade: its Conditions require PactOfTheBlade_Hex + ThirstingBlade
already active at Level 12+, and its only StatsFunctor is
ApplyStatus(EXTRA_ATTACK_THIRSTING_BLADE_2) — a third Pact weapon attack per
Attack action, not a generic damage/condition enhancer.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2acf10b
Fix Spellfire Sorcery: Spellfire Burst trigger, missing effect list, Absorb Spells mechanic
Verified SpellfireSorcery_3_SpellfireBurst in Passive.stats: its Conditions
require HasStatus('USING_METAMAGIC'), so it only triggers on Metamagic-boosted
casts, not general Sorcery Point spending as the wiki claimed (and promised
"one of the following" effects without ever listing them). Filled in the
three actual options from the SpellFireBurst container spell (Target.stats):
Bolstering Flames on an ally, or 1d4 Fire/Radiant damage to an enemy. Also
fixed Absorb Spells: Counterspell_Success's SpellProperties
(RestoreResource on HasPassive('SpellfireSorcery_6_AbsorbSpells')) triggers
on successfully countering a spell, not on the target "failing a saving
throw" — Counterspell has no saving throw in either tabletop 5e or this mod.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
c25b969
Fix Shadow Magic: Beasts of Ill Omen (Level 6) is entirely unimplemented
Exhaustive search across Progressions.lsx and Passive.stats found zero
references to Beasts of Ill Omen, Hound of Ill Omen, or any matching spell —
the ShadowMagic subclass's Progressions entries only grant EyesOfTheDark and
StrengthOfTheGrave at Level 3, with no Level 6 passive at all. The wiki
previously documented full Hound-summon mechanics for a feature that grants
nothing in-game. Rewrote the doc to flag this clearly, verified the Level 3
spell lists and Power of Shadow abilities against SpellLists.lsx and
Passive.stats (accurate, both are vanilla base-game passives), and cleaned
up broken table formatting in the process.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
84adb70
Fix Frost Sorcery: Frozen Body's real formula/scope, Cold-Hearted has no save or size limit
Verified FrostSorcery_3_FrozenBody in Passive.stats: Boosts is
IncreaseMaxHP(ClassLevel(Sorcerer)) — a flat "equal to your Sorcerer level"
bonus, not tabletop 5e's "+3 then +1/level" curve — plus StatusImmunity
(PRONE_ICE), which the wiki omitted. The separate hidden
FrostSorcery_3_FrozenBody_Movement passive applies
ActionResourceConsumeMultiplier(Movement,0.25,0) only on 'SurfaceWaterFrozen',
i.e. a 75% movement-cost reduction (1ft per 4ft moved), not the 50% ("1ft per
2ft") the wiki stated, and it's specific to frozen water, not generic
"ice or snow." Also verified FrostSorcery_6_ColdHearted: its Conditions only
check IsSpell() and Cold damage dealt — no Large-or-smaller size check and no
saving throw — so the Speed reduction (confirmed at exactly -15ft via
COLD_HEARTED's Boosts) is automatic and unconditional, not an "attempt" as
tabletop 5e frames it.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
b188b16
Fix Aberrant Sorcery: Psionic Sorcery only removes Verbal component, not Somatic
Verified Abberant_6_PsionicSorcery in Passive.stats: its UnlockSpellVariant
call includes ModifySpellFlags(Verbal,0) and ModifySpellFlags(Stealth,1), but
no Somatic-component removal. The wiki claimed "no Verbal or Somatic
components," which overstated the effect — the Stealth flag makes the cast
undetectable, but Somatic isn't explicitly dropped in the data. Updated the
Playstyle Notes to note Subtle Metamagic is what actually removes the
remaining Somatic component for full detection immunity.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
04d824e
Fix Class-Sorcerer: Sorcerous Restoration is not implemented
Verified ActionResourceDefinitions.lsx: SorceryPoint uses ReplenishType "Rest"
(Long Rest only), and no passive anywhere in Progressions.lsx grants a Level 5
Sorcerous Restoration feature (the Level 4/5 Sorcerer progression nodes only
add spell selectors, no PassivesAdded). Tabletop 5e's partial Short Rest SP
recovery at this level has no equivalent in this mod's data.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
f04a373
Fix Thief: Bonus Action Throw and half fall damage belong to Second-Story Work, not Fast Hands
Verified FastHands in Passive.stats: its only Boosts is the Spell-Scroll-as-
Bonus-Action conversion (UnlockSpellVariant with IsScrollSpell()) — no Throw
grant. SecondStoryWork's own Boosts are FallDamageMultiplier(0.5) and
UnlockSpell(Throw_Throw_BonusAction), which the wiki had misattributed to
Fast Hands and omitted the fall-damage halving entirely. Climb Speed itself
comes from SecondStoryWork's vanilla base class and remains accurate.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
77bcda5
Blank Swashbuckler doc: subclass has no implementation in the mod's data
Exhaustive search across Progressions.lsx, Passive.stats, and the full
Editor/Public trees found zero references to Swashbuckler, Fancy Footwork,
Rakish Audacity, or Panache, and no icon asset — same situation as Swarm
Keeper. Notably, the "SneakAttack_Rakish" spell/interrupt infrastructure
(icon: Action_RakishAudacity_SneakAttack_Ranged) still exists but is now
wired only to Highway Rider's Ride Them Down (gated on being mounted),
suggesting this mechanic was repurposed rather than the subclass being
cut outright. Applying the same precedent set for Swarm Keeper: blanking
the page rather than documenting mechanics that don't exist in-game.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
98c19a3
Fix Soulknife: Psychic Blades enchants your weapon (doesn't summon one); Psi-Bolstered Knack is a toggle
Verified Shout_PsychicBlades in Shout.stats: it applies the PSYCHIC_BLADE
equipment status to your equipped Dagger/Shortsword/Scimitar (requires one —
IsWeaponOfProficiencyGroup check), granting CannotBeDisarmed, ItemReturnToOwner,
WeaponDamageTypeOverride(Psychic), and WeaponProperty(Thrown) via
Status_BOOST.stats — this uses your weapon's own damage die, not an
independently-conjured 1d6/1d4 blade as tabletop 5e and the previous wiki text
described. This also means a fully-disarmed Soulknife with no eligible weapon
has nothing to enchant, contradicting the old "no equipment needed" framing.
Also fixed Psi-Bolstered Knack: Soulknife_3_PsiBolsteredKnack is an
IsToggled passive that unconditionally spends a die on every ability/skill
check while active (OnAbilityCheck context), not a reactive "only spend on
a failed check that then succeeds" ability as tabletop 5e implements it.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
ae18f3f
Fix Scion of the Three: Bloodthirst has three HP-threshold triggers, not just Bloodied
Verified DeadThree_3_Bloodthirst's Boosts unlock three separate interrupts
(Interrupt_Bloodthirst_50/25/10 in Interrupt.stats), each firing when a
target's HP crosses 50%, 25%, or 10% respectively — not a single "becomes
Bloodied" trigger. Also found Interrupt_Bloodthirst_50's Properties applies
ADDITIONAL_SNEAKATTACK_CHARGE to the user, granting a bonus Sneak Attack use
per Bloodthirst trigger, which the wiki didn't mention at all. Verified the
Dread Allegiance deity/cantrip/resistance table is accurate as documented.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
0d10535
Fix Highway Rider: Hair Trigger has no Expertise, Trusty Mount refreshes on Short Rest
Verified HighwayRider_3_HairTrigger in Passive.stats: its only effect is
applying HAIR_TRIGGER (once per combat, OnTurn) for the free first-turn
attack — no Expertise-with-Firearms boost exists on it. The shared
"FirearmExpert" passive (also used by Gunslinger) applies FIREARM_ADD_BONUS
to equipped firearms, not a skill-proficiency grant, so corrected that
feature's description too. Also verified HighwayRider_3_TrustyMount's
UnlockSpell call passes "UntilShortRest" as the cooldown parameter, meaning
Find Steed resets on a Short Rest, not a Long Rest as the Playstyle Notes
claimed.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
486a193
Fix Blade of Radiance: Divine Point floor, missing Radiant-resistance-ignore, Erupting Blades range, Chains of Judgement framing
Verified BladeOfRadiance_3_DivineBlessings in Passive.stats: the Divine Point
pool is a flat 2 at minimum (not 1) plus 1 more at each of Wisdom
14/16/18/20/22/24, so the "1 plus Wisdom modifier, minimum 1" framing
undercounts at Wisdom 10-13. Also added SanctifiedChampion's
IgnoreResistance(Radiant,Resistant) benefit, entirely missing from the wiki.
Fixed Erupting Blades' line length from 45ft to 40ft (Zone.stats Range:12m).
Clarified Chains of Judgement is its own melee attack (dealing full weapon
damage plus Wisdom-modifier Radiant, per Target.stats ChainsOfJudgement's
SpellSuccess) rather than a rider tacked onto an existing hit, and specified
the exact enemy tags (Aberration/Fiend/Beast/Undead) for the Divine Point
refund condition.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
30ee5b0
Fix Assassin: Initiative bonus is flat not Advantage; Surprising Strikes triggers differ from tabletop
Verified Assassinate_Initiative in Passive.stats: Boosts is only Initiative(5),
a flat bonus with no Advantage(Initiative) anywhere — matching this mod's
recurring "flat bonus disguised as Advantage" pattern seen elsewhere (Champion's
Remarkable Athlete, Gunslinger's Quick Draw). Also verified Assassinate_Ambush:
its Advantage condition is `not HadTurnInCombat()` with no target-side
parameter, meaning it checks the Assassin's own turn state (first turn of
combat) rather than whether the target has acted, and its bonus-damage
StatsFunctors trigger on `IsWeaponAttack() and not IsMiss()` — any weapon hit,
not specifically a Sneak Attack — gated to once per combat via the
OncePerCombat flag rather than a hard "round 1" check.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
7e4a690
Fix Arcane Trickster: missing Illusion/Enchantment spell restriction, Magical Ambush trigger wording
Verified Progressions.lsx: ArcaneTrickster's SelectSpells calls from Level 3
onward pass the "ArcaneTricksterIlluEnch" school filter, restricting most
spell choices to Illusion and Enchantment — the wiki described unrestricted
Wizard list access. Also fixed the Magical Ambush feature text, which said
the Disadvantage rider only triggers while Invisible; MagicalAmbush's
Conditions in Passive.stats also check for SNEAKING_CLEAR/LIGHTLY_OBSCURED/
HEAVILY_OBSCURED, matching the doc's own footnote that the header
contradicted.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
c2bdfa0
Fix Class-Rogue: Cunning Strike is a free toggle not a damage-cost trade-off; add missing Level 6 Expertise
Verified the SneakAttack spell (Target.stats): its SpellSuccess always deals
the full MainMeleeWeapon + LevelMapValue(SneakAttack) damage and separately
checks IF(HasPassive(CunningStrike_X)) to apply the rider effect, with no
damage-dice cost anywhere in the formula — contradicting the wiki's claim
that "each effect costs 1d6 of Sneak Attack damage." Also confirmed
CunningStrike_Poison/Trip/Withdraw share ToggleGroup "Rogue_5_CunningStrike"
(mutually exclusive toggle, not a per-attack menu). Verified the SneakAttack
LevelMapSeries (1d6/2d6/3d6/4d6/5d6/8d6 at levels 1/3/5/7/9/11) and corrected
the cited Level 11 total from 6d6 to 8d6. Removed the unsupported claim that
Improved Sneak Attack lets you apply two Cunning Strike effects at once (no
such passive or second toggle slot exists in Progressions.lsx). Also added
the Level 6 Expertise grant (SelectSkillsExpertise for 2 more skills),
entirely missing from the progression table.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
8d72de7
Fix Winter Walker: Frigid Explorer's missing bonus Cold damage, Hunter's Rime die size
Verified WinterWalker_3_FirigidExplorer in Passive.stats: it also grants a
once-per-turn 1d4 Cold weapon damage bonus (scaling to 1d6 at Ranger Level 11,
via the shared LevelMapValue(FeyWanderer) table), which the wiki omitted
entirely — it only described the Resistance-ignoring and self-Resistance
effects. Also fixed Hunter's Rime: HUNTERS_RIME_TEMPHP's Boosts grant
TemporaryHP(1d8+ClassLevel(Ranger)), not 1d10 as previously stated, corrected
in the feature text, intro, and Playstyle Notes example calculation.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
b50415b
Fill in missing weapons on mastery table (Musket, Trident, War Pick, Pistol)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
d6e8dee
Blank Swarm Keeper doc: subclass has no implementation in the mod's data
Exhaustive search across Progressions.lsx, Progressions.tbl, ClassDescriptions,
Passive.stats, and the full Stats tree found zero references to Swarm Keeper,
Gathered Swarm, Writhing Tide, or Mighty Swarm. It also has no icon asset,
unlike every other implemented Ranger subclass. Per user direction, blanking
the page rather than documenting mechanics that don't exist in-game.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
ed794a4
Fix Hunter: Superior Hunter's Prey deals its own Force damage, not Hunter's Mark's
Verified Projectile_SuperiorHuntersPrey in Projectile.stats: it deals a fixed
1d6 Force damage, not "that spell's extra damage" (Hunter's Mark deals damage
matching the weapon type). Also verified Hunter_11_SuperiorHuntersPrey's
Properties has no OncePerTurn flag, so the proc isn't capped to once per turn
as the wiki claimed — it can trigger again on a second Extra Attack hit.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
c8b4e3f
Fix Hollow Warden: Wrath of the Wild's actual benefits were entirely undocumented
Verified WRATH_OF_THE_WILD in Status_BOOST.stats: the transformation grants
+1 AC (+2 at Ranger Level 11 via a ClassLevelHigherOrEqualThan check), an
Unnerving Aura (3m/10ft radius; enemies fail a Wisdom save at the start of
their turn or become Frightened, verified via UNNERVING_AURA's OnTickSuccess),
and unlocks Interrupt_ProwlingRetribution (a Reaction melee counter-attack
against anyone who lands a nearby melee hit) — none of which the wiki
mentioned; it only described flavor text ("gaining eldritch benefits").
Also fixed Hungering Might: RollBonus(SavingThrow,WisdomModifier,Constitution)
has no minimum-floor override, so the "(minimum of +1)" claim was fabricated,
and clarified that the vague "triggers the Hungering Might effect" is
concretely a 1d10+Wisdom-modifier heal (confirmed via HUNGERING_MIGHT's
OnApplyFunctors).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
0190d1c
Add Whip to Slow weapon mastery list
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
bc88095
Fix Gloom Stalker: Dread Ambusher is repeatable, not turn-1-only; add missing Superior Darkvision
Verified against ActionResourceDefinitions.lsx: DreadfulStrikeTurn has
ReplenishType "Turn" (resets every turn) and DreadfulStrike has ReplenishType
"Rest" with a Wisdom-scaled charge pool (1 base + 1 at each of Wisdom
14/16/18/20/22/24, from DreadAmbusher's Boosts in Passive.stats) — this is a
once-per-turn attack usable a limited number of times per Long Rest, not a
single ambush restricted to the first turn of combat as the wiki claimed.
Also verified the attack (Target.stats/Projectile.stats DreadAmbusher) costs
a full ActionPoint, not a free add-on to the Attack action. Also added the
Level 3 "SuperiorDarkvision" passive (confirmed via Progressions.lsx) that
was missing from the wiki entirely, and noted DreadAmbusher's Initiative
Boost has a minimum floor of +1 that exceeds a flat Wisdom-modifier match at
Wisdom 10-11.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
137db61
Fix Fey Wanderer: missing skill proficiency, Misty Wanderer is Short Rest not Long Rest
Verified against Progressions.lsx: Level 3's SelectSkills(...) grants a choice
of Deception/Performance/Persuasion proficiency (5.5 Fey Wanderer Skill List)
alongside the Wisdom-to-Charisma-check bonus, which the wiki's Otherworldly
Glamour section omitted entirely. Also verified
FeyWanderer_11_MistyWanderer_Resource's BoostContext includes OnShortRest, so
Misty Wanderer's charges replenish on a Short Rest, not a Long Rest as
previously stated (fixed in the intro, feature text, and Playstyle Notes).
Also corrected a stale "Roving (+15 ft)" reference to the actual +10 ft.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
d6428ae
Fix Beast Master: missing Level 5 Companion's Bond, contradictory command-action wording
Verified against Progressions.lsx: BeastMaster gains a "CompanionsBond" passive
at Level 5 (DisplayName confirms "Level 5: Companion's Bond" in english.xml)
that the wiki's progression table and feature list omitted entirely. Also
resolved a contradiction where the intro said the Beast acts via a "Bonus
Action command" while the Level 3 details said "no action required by
you" — the mod grants the beast independent action economy (2024-rules
Beast Master), so the intro's Bonus Action framing was wrong.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
1277203
Fix Class-Ranger: missing Fighting Style at Level 2, wrong Roving speed bonus
Verified against Progressions.lsx: Ranger's Level 2 progression includes
SelectPassives(...,1,FightingStyle) using the same "Ranger fighting style"
PassiveList (Archery/Defense/Dueling/GWF/Protection/TWF/BlindFighting/
UnarmedFighting/Interception/ThrownWeaponFighting) as Fighter and Monster
Hunter — this feature was entirely missing from the wiki. Also fixed Roving:
Ranger_6_Roving's Boosts grant ActionResource(Movement,3,0), i.e. +10ft, not
+15ft as previously stated (and corrected the derived "45 ft Speed in Medium
Armor" example to 40 ft in Playstyle Notes).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
724ee20
Fix Oath of Vengeance: Vow of Enmity range and Relentless Avenger's movement bonus
Verified VowOfEnmity in Target.stats: TargetRadius is 9m (~30ft), not 10ft as
the wiki stated. Also verified RELENTLESS_AVENGER's Boosts grants
ActionResource(Movement,4.5,0), i.e. +15ft movement, and added that concrete
figure in place of the vague "increased movement" wording.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
979dfb5
Fix Oath of the Noble Genies: Elemental Smite effects are not elemental damage
Verified Interrupt_DaosCrush/DjinnisEscape/EfreetisFury/MaridsSurge against the
mod's Interrupt.stats, Status_BOOST.stats, and Projectile.stats. Only Efreeti's
Fury deals elemental damage (2d4 Fire). Dao's Crush is a Strength-save-or-
Restrain with no damage, Djinni's Escape is a self-buff (physical resistance +
prone/restrain immunity + a teleport spell) rather than a Lightning attack, and
Marid's Surge is a Strength-save-or-knockback+Prone with no Cold damage. The
wiki previously described all four as elemental-damage effects matching their
genie's theme.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
4b0e5c4
Fix Oath of the Crown intro: Level 7 is Divine Allegiance, not an Aura of Courage upgrade
The intro claimed "Aura of Courage is strengthened by the Level 7
subclass feature," but Progressions.lsx shows the actual Level 7 grant
is PassivesAdded="DivineAllegiance" - the damage-redirection Reaction
already correctly described later in the same document. There is no
Aura of Courage interaction anywhere in the Crown oath's data. Fixed
the intro to match the rest of the document instead of contradicting it.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
f94060c
Fix Paladin: Lay on Hands is discrete charges not a flowing HP pool, add Channel Oath charge counts
Lay on Hands was described with tabletop 5e's classic mechanic - a
shared HP pool (5x Paladin level) you draw an arbitrary amount from per
use. Actual data shows this mod (following BG3's own established
implementation) uses a LayOnHandsCharge discrete-charge resource
instead: 3 charges at Level 1, +1 at Level 4, +1 at Level 10 (5 max),
spent on fixed-size heal spell variants (LayOnHands, LayOnHands_BigHeal
costing 2 charges, LayOnHands_Cure, LayOnHands_SmallHeal) rather than a
freely-divisible pool.
Added the previously unstated Channel Oath charge counts: 2 at Level 3,
3 at Level 11 (ActionResource(ChannelOath,...) grants in Progressions.lsx).
Verified Radiant Strikes' mechanic matches the internally-named
ImprovedDivineSmite passive (IF(IsMeleeAttack()):
CharacterWeaponDamage(1d8,Radiant) + CharacterUnarmedDamage(1d8,Radiant))
exactly - same feature, no separate undocumented passive.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
ce7da38
Fix Occultist Guild: Mage Hunter auto-breaks Concentration, Occult Knowledge includes Bard, Arcane Interference range split
Mage Hunter was described as imposing "Disadvantage on the saving throw
[the target] makes to maintain its Concentration." Actual data
(OccultistGuild_7_MageHunter: StatsFunctorContext OnDamage,
Conditions IsConcentrating(context.Target), StatsFunctors
BreakConcentration(context.Target)) shows Concentration breaks
automatically and unconditionally on damage - there is no saving throw
involved at all, making this considerably stronger than described.
Occult Knowledge was described as drawing from "Cleric, Druid, or
Wizard." The selector (SelectSpells on GUID 858d4322, the mod's shared
"5.5 Bard Magical Secrets" pool) merges 28 spell lists spanning Bard,
Cleric, Druid, and Wizard (all levels and cantrips) - Bard was missing
from the doc's description entirely.
Arcane Interference was described as triggering "when a creature you
can see within 60 feet of you casts a spell." Actual data shows it (a)
triggers on any enemy spell cast regardless of target, not just spells
aimed at you or an ally, and (b) shares Studied Response's melee/ranged
range split (Interrupt_ArcaneInterference_Melee caps at 2m/~7ft,
_Ranged extends to 18m/60ft) rather than a flat 60ft for all cases.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
86e5d79