SilentRuin
May 13th, 2026, 07:06
This power extracted from a spell nodes defined button save used to translate into [SAVEVS: constitution 11] but no longer does.
#3 = { s'type' = s'cast', s'savebase' = s'fixed', s'label' = s'Bite_Giant Centipede', s'order' = #1, s'save' = s'constitution', s'savemod' = #11, s'onmissdamage' = s'' }
Looking at the code it appears to expect only type of "powersave" so that this is not translated into anything. This used to translate type "cast" also before the major update.
This is in the rewritten EE extension that was ported to the new world of effects. Basically, it appears any spell used to override the default power definition will no longer work when its a CAST saving throw definition in the spell because its uses the type "cast" instead of "powersave". Looking at older checks I can see that all are supported in parseNPCPowerBuildValue except "cast" and "castsave".
The actual full data returned from parseNPCpower is
[5/13/2026 12:57:07 AM] { #1 = { s'bWeapon' = bTRUE, s'label' = s'Bite_Giant Centipede', s'range' = s'M', s'endpos' = #31, s'startpos' = #1, s'rangedist' = s'5', s'type' = s'attack', s'modifier' = #4 }, #2 = { s'label' = s'Bite_Giant Centipede', s'clauses' = { #1 = { s'dice' = { #1 = s'd4' }, s'dmgtype' = s'piercing', s'modifier' = #2 } }, s'startpos' = #65, s'type' = s'damage', s'range' = s'M', s'endpos' = #92 }, #3 = { s'type' = s'cast', s'savebase' = s'fixed', s'label' = s'Bite_Giant Centipede', s'order' = #1, s'save' = s'constitution', s'savemod' = #11, s'onmissdamage' = s'' }, #4 = { s'sInitSource' = s'', s'label' = s'Bite_Giant Centipede', s'order' = #1, s'sExpiration' = s'', s'sUnits' = s'', s'nDuration' = #0, s'sTargeting' = s'', s'sName' = s'Stable', s'type' = s'effect', s'sApply' = s'' }, #5 = { s'order' = #1, s'type' = s'damage', s'clauses' = { #1 = { s'dice' = { #1 = s'd6', #2 = s'd6', #3 = s'd6' }, s'modifier' = #0, s'statmult' = #1, s'stat' = s'', s'dmgtype' = s'poison' } }, s'label' = s'Bite_Giant Centipede' }, #6 = { s'sInitSource' = s'', s'label' = s'Bite_Giant Centipede', s'order' = #2, s'sExpiration' = s'', s'sUnits' = s'minute', s'nDuration' = #60, s'sTargeting' = s'', s'sName' = s'Poisoned; Paralyzed', s'type' = s'effect', s'sApply' = s'' } }
Which currently translates into
Bite [M] [ATK: +4] [DMG: 1d4+2 piercing] [EFF: Stable] [DMG: 3d6 poison] [EFF: Poisoned; Paralyzed (D:60 MIN)] [W]
But used to translate into
Bite [M] [ATK: +4] [DMG: 1d4+2 piercing] [SAVEVS: constitution 11] [EFF: Stable] [DMG: 3d6 poison] [EFF: Poisoned; Paralyzed (D:60 MIN)] [W]
#3 = { s'type' = s'cast', s'savebase' = s'fixed', s'label' = s'Bite_Giant Centipede', s'order' = #1, s'save' = s'constitution', s'savemod' = #11, s'onmissdamage' = s'' }
Looking at the code it appears to expect only type of "powersave" so that this is not translated into anything. This used to translate type "cast" also before the major update.
This is in the rewritten EE extension that was ported to the new world of effects. Basically, it appears any spell used to override the default power definition will no longer work when its a CAST saving throw definition in the spell because its uses the type "cast" instead of "powersave". Looking at older checks I can see that all are supported in parseNPCPowerBuildValue except "cast" and "castsave".
The actual full data returned from parseNPCpower is
[5/13/2026 12:57:07 AM] { #1 = { s'bWeapon' = bTRUE, s'label' = s'Bite_Giant Centipede', s'range' = s'M', s'endpos' = #31, s'startpos' = #1, s'rangedist' = s'5', s'type' = s'attack', s'modifier' = #4 }, #2 = { s'label' = s'Bite_Giant Centipede', s'clauses' = { #1 = { s'dice' = { #1 = s'd4' }, s'dmgtype' = s'piercing', s'modifier' = #2 } }, s'startpos' = #65, s'type' = s'damage', s'range' = s'M', s'endpos' = #92 }, #3 = { s'type' = s'cast', s'savebase' = s'fixed', s'label' = s'Bite_Giant Centipede', s'order' = #1, s'save' = s'constitution', s'savemod' = #11, s'onmissdamage' = s'' }, #4 = { s'sInitSource' = s'', s'label' = s'Bite_Giant Centipede', s'order' = #1, s'sExpiration' = s'', s'sUnits' = s'', s'nDuration' = #0, s'sTargeting' = s'', s'sName' = s'Stable', s'type' = s'effect', s'sApply' = s'' }, #5 = { s'order' = #1, s'type' = s'damage', s'clauses' = { #1 = { s'dice' = { #1 = s'd6', #2 = s'd6', #3 = s'd6' }, s'modifier' = #0, s'statmult' = #1, s'stat' = s'', s'dmgtype' = s'poison' } }, s'label' = s'Bite_Giant Centipede' }, #6 = { s'sInitSource' = s'', s'label' = s'Bite_Giant Centipede', s'order' = #2, s'sExpiration' = s'', s'sUnits' = s'minute', s'nDuration' = #60, s'sTargeting' = s'', s'sName' = s'Poisoned; Paralyzed', s'type' = s'effect', s'sApply' = s'' } }
Which currently translates into
Bite [M] [ATK: +4] [DMG: 1d4+2 piercing] [EFF: Stable] [DMG: 3d6 poison] [EFF: Poisoned; Paralyzed (D:60 MIN)] [W]
But used to translate into
Bite [M] [ATK: +4] [DMG: 1d4+2 piercing] [SAVEVS: constitution 11] [EFF: Stable] [DMG: 3d6 poison] [EFF: Poisoned; Paralyzed (D:60 MIN)] [W]