Spell interruption has not changed. I'm not sure where this idea came from.
Well, probably from a misinterpretation of mine
So, just to make sure I got it right:
Every spell will be interrupted if any hit to the caster results in the “took damage/flinch” animation. There’s no clear understanding of what causes this animation in favour of the “small blood” animation, which is far less likely and does not interrupt spell casting. A hit causing 0 damage cannot result in the “took damage/flinch” animation. Mages may be more prone to interruption than other casters, but this is inconclusive (and seems unlikely IMO). The probabability of interruption may be related to the direction that the caster is facing, but this is inconclusive (and seems unlikely IMO). Spells cast from items and some “hard coded” spells are uninterruptible.
The requirement to avoid interruption is having 100 or more resistance to the type of damage being dealt.
Dealing '0' or even negative damage will still interrupt if they have less than 100 resistance. If you want a spell to interrupt even if the target is immune to the damage, or if the spell doesn't deal damage in the first place and you just want it to interrupt spellcasting, you can add a non-lethal or untyped 0-damage effect to trigger it.
The "flinch" animation is an effect, not cause, of the interruption - you can force this animation with opcode 138 without interrupting spell-casting.
Priests can be interrupted while casting, druids can be interrupted when shapechanging, Charname can be interrupted when using Bhaal powers, fighters can be interrupted when triggering HLAs... arcane/divine/innate, it doesn't matter, they are all interrupted every time upon taking any damage.
@subtledoctor that may be the intention, but it's not the reality in the game. You've mentioned forced spell casting, which certainly explains some instances where spells are not interrupted, but not all.
It's easy to see that there's something else going on as it's not uncommon for spells cast by the PC to not be interrupted by damage. I couldn't be bothered to do an extended test, but spending a few minutes in Candlekeep with a summoned kobold suggested that something like a quarter of attempted spells were not being interrupted by damage - see this example. That number might be wrong, but I don't believe that anyone could play the unmodded game much without coming across this situation regularly. I can certainly accept that the intended mechanic is for 100% interruption and it's just a bug that prevents that happening - perhaps being hit at a particular frame or segment of the round for instance. However, whatever the reason the game is not currently providing 100% interruption.
It's easy to see that there's something else going on as it's not uncommon for spells cast by the PC to not be interrupted by damage. I couldn't be bothered to do an extended test, but spending a few minutes in Candlekeep with a summoned kobold suggested that something like a quarter of attempted spells were not being interrupted by damage - see this example.
It's easy to see that there's something else going on as it's not uncommon for spells cast by the PC to not be interrupted by damage. I couldn't be bothered to do an extended test, but spending a few minutes in Candlekeep with a summoned kobold suggested that something like a quarter of attempted spells were not being interrupted by damage - see this example.
It appears to be "Target Point" spells that can bypass disruption, quite consistently.
I gave a Cleric/Mage the MinHP1 item and set a 5APR ogre on him, he could cast Bless and Haste almost every time, but he was always interrupted on the first hit when casting Armor and CLW.
Heya! I thought it would be fun to look into the discrepancy of failure rates between creature-targeted spells and point-targeted spells. Turns out that point-targeted spells, for some reason, have a condition which states that the spell can ONLY be interrupted by damage if the spell-point is within a certain view arc of the character casting it. Here's a ss of the arc:
This arc follows the rotation of the character. So, if you cast a spell slightly off-center from a character's rotation, it is simply impossible for it to be interrupted.
Turns out that point-targeted spells, for some reason, have a condition which states that the spell can ONLY be interrupted by damage if the spell-point is within a certain view arc of the character casting it.
This arc follows the rotation of the character. So, if you cast a spell slightly off-center from a character's rotation, it is simply impossible for it to be interrupted.
No idea how you managed to find this out, but that’s super wierd and super interesting!
Call Lightning has always been the only spell in my entire career that reasonably could resist disrupt on the player side. even then only when it felt like it.
As for enemy disruption, I've found it's completely random around each battle instance. Sometimes they'll never disrupt then I quickload and try the same fight again and then they'll decide to 100% disrupt every time. (very dumb if you ask me)
@Bubb I'm not sure about "impossible", unless the angle shifts around during the various casting animations.
Once the first hit connected, and failed to interrupt, I was still able to get an interrupt by spamming "Ctrl+Y" on the character before they finished casting. It took literal spamming though, as the extra 3-4 hits from the ogre and just a couple of "Ctrl+Y"'s was rarely enough to interrupt if the first hit didn't interrupt it. Did not pause while doing this.
From your screenshot, it looks like the angle of disruption is +/-15° of the orientation of the creature, is that correct?
@kjeron: Sorry, I don't know the exact angle. I couldn't make heads or tails of the arc's assembly definition, so I simply brute-force checked 1000 pixels around the caster to get the visual representation.
Also, I was a a bit wrong with what causes the spell-failure immunity. The arc will always envelop the spell-point by rotating the character until it does so.
The actual bug, it seems, is that the damage animation causes the SSW, SWW, NWW, NNW, NNE, NEE, SEE, and SSE rotations to momentarily shift to one of the others. This is processed before the spell-failure check, and it can cause the view-arc to move out of the spell-point's jurisdiction. Here's a gif showing the bug:
Spamming CTRL-Y probably manages to sneak in the spell-failure check before the damage animation plays.
It's not too hard, just need to cast in one of these 8 directions:
The actual bug, it seems, is that the damage animation causes the SSW, SWW, NWW, NNW, NNE, ENE, ESE, and SSE rotations to momentarily shift to one of the others.
Or, prevent enemy spellcasters from casting in one of those 8 directions.
For Fireball-type aoe's, the game now even gives you a decent reference. For the WNW/ENE/WSW/ESE directions, just line up your character with one of the side's diagonal lines of the AoE indicator as such:
For the NNW/NNE/SSW/SSE directions, you need to be just inside the upper/lower diagonal lines, to anywhere not directly up or down.
If you two manage to create a repro case that would be much appreciated. We will file an internal ticket if you provide us a save with repro steps that trigger the interruption bug at a reasonable frequency.
These are measured from the players perspective of the angle, not the in-game perspective of the angle (where vertical distance is only 3/4 horizontal distance.)
Looking back at BG1, those sprites only had 8 directions (N,NE,E,SE,S,SW,W,NW), I wonder if the BG2 engine just forced all animations to "snap" into one of those directions when playing the "flinch" animation to avoid crashing the old animations. I wonder if it does this with any other animations.
@kjeron: Looks good! One additional thing to note: actor-targeted spells will also never fail if the caster is in one of these rotations when hit.
Self-targeted spells, whether it be spells that only target the caster, or actor-targeted spells that are targeted at the caster, will always fail on hit, no matter the direction.
Does anyone know if there is a way to be immune to spell disruption, a cheat or something ? I've found the option "Uninterruptible" on EE keeper but it doesn't work.
@Maxiglider: The only ways to avoid spell disruption are to either avoid the damage, use the highly precise bug mentioned earlier in this thread (which sounds interesting but very difficult to execute), or to cast spells strictly via script (specifically, the ForceSpell and ReallyForceSpell commands).
You could also give a large casting speed bonus to a character (say, a -10 bonus to casting time, like the -1 bonus from the Amulet of Power or -4 from the Robe of Vecna) to reduce casting time to zero. In that case, the spellcasting animation will only last a single frame, in which case the window for disruption would be 1/30 of a second, enough to almost completely remove the chance of disruption. This has the side effect of speeding up spellcasting, however, which would grant other in-combat advantages.
For spell failure like from Miscast Magic, you can get true immunity to that by using the Immunity to Effect opcode, opcode 101, and setting the right parameter to the Miscast Magic opcode (I'm not referring to the Uninterruptible flag; this is a special opcode applied to a character). You can apply that via a custom item or spell or directly give it to a character using EEKeeper. But that won't prevent spell disruption from damage.
Individual spells can also be flagged to ignore spell failure or dead magic zone-related spell failure, but that will only apply to those specific spells, and that will also fail to prevent spell disruption from damage.
Comments
So, just to make sure I got it right:
Every spell will be interrupted if any hit to the caster results in the “took damage/flinch” animation. There’s no clear understanding of what causes this animation in favour of the “small blood” animation, which is far less likely and does not interrupt spell casting. A hit causing 0 damage cannot result in the “took damage/flinch” animation. Mages may be more prone to interruption than other casters, but this is inconclusive (and seems unlikely IMO). The probabability of interruption may be related to the direction that the caster is facing, but this is inconclusive (and seems unlikely IMO). Spells cast from items and some “hard coded” spells are uninterruptible.
Did I miss or misunderstand anything?
Dealing '0' or even negative damage will still interrupt if they have less than 100 resistance. If you want a spell to interrupt even if the target is immune to the damage, or if the spell doesn't deal damage in the first place and you just want it to interrupt spellcasting, you can add a non-lethal or untyped 0-damage effect to trigger it.
The "flinch" animation is an effect, not cause, of the interruption - you can force this animation with opcode 138 without interrupting spell-casting.
It's easy to see that there's something else going on as it's not uncommon for spells cast by the PC to not be interrupted by damage. I couldn't be bothered to do an extended test, but spending a few minutes in Candlekeep with a summoned kobold suggested that something like a quarter of attempted spells were not being interrupted by damage - see this example.
That number might be wrong, but I don't believe that anyone could play the unmodded game much without coming across this situation regularly. I can certainly accept that the intended mechanic is for 100% interruption and it's just a bug that prevents that happening - perhaps being hit at a particular frame or segment of the round for instance. However, whatever the reason the game is not currently providing 100% interruption.
It’s screenshots like this that leave me somewhat confused about how the mechanisms work in practise.
I gave a Cleric/Mage the MinHP1 item and set a 5APR ogre on him, he could cast Bless and Haste almost every time, but he was always interrupted on the first hit when casting Armor and CLW.
Went back and tested on an old BGEE v1.3, same behavior.
This arc follows the rotation of the character. So, if you cast a spell slightly off-center from a character's rotation, it is simply impossible for it to be interrupted.
As for enemy disruption, I've found it's completely random around each battle instance. Sometimes they'll never disrupt then I quickload and try the same fight again and then they'll decide to 100% disrupt every time. (very dumb if you ask me)
oh i see it's being debunked, nice
Once the first hit connected, and failed to interrupt, I was still able to get an interrupt by spamming "Ctrl+Y" on the character before they finished casting. It took literal spamming though, as the extra 3-4 hits from the ogre and just a couple of "Ctrl+Y"'s was rarely enough to interrupt if the first hit didn't interrupt it. Did not pause while doing this.
From your screenshot, it looks like the angle of disruption is +/-15° of the orientation of the creature, is that correct?
Also, I was a a bit wrong with what causes the spell-failure immunity. The arc will always envelop the spell-point by rotating the character until it does so.
The actual bug, it seems, is that the damage animation causes the SSW, SWW, NWW, NNW, NNE, NEE, SEE, and SSE rotations to momentarily shift to one of the others. This is processed before the spell-failure check, and it can cause the view-arc to move out of the spell-point's jurisdiction. Here's a gif showing the bug:
Spamming CTRL-Y probably manages to sneak in the spell-failure check before the damage animation plays.
Or, prevent enemy spellcasters from casting in one of those 8 directions.
For Fireball-type aoe's, the game now even gives you a decent reference.
For the WNW/ENE/WSW/ESE directions, just line up your character with one of the side's diagonal lines of the AoE indicator as such:
For the NNW/NNE/SSW/SSE directions, you need to be just inside the upper/lower diagonal lines, to anywhere not directly up or down.
If you two manage to create a repro case that would be much appreciated. We will file an internal ticket if you provide us a save with repro steps that trigger the interruption bug at a reasonable frequency.
These are my best approximation of the angles for each direction from my tests:
9.5° - 24° = North-North-East
24° - 49.9° = North-East
49.9° - 76.25° = East-North-East
76.25° - 103.75° = East
103.75° - 130.1° = East-South-East
130.1° - 156° = South-East
156° - 170.5° = South-South-East
170.5° - 189.5° = South
189.5° - 204° = South-South-West
204° - 229.9° = South-West
229.9° - 256.25° = West-South-West
256.25° - 283.75° = West
283.75° - 310.1° = West-North-West
310.1° - 336° = North-West
336° - 350.5° = North-North-West
These are measured from the players perspective of the angle, not the in-game perspective of the angle (where vertical distance is only 3/4 horizontal distance.)
Self-targeted spells, whether it be spells that only target the caster, or actor-targeted spells that are targeted at the caster, will always fail on hit, no matter the direction.
Does anyone know if there is a way to be immune to spell disruption, a cheat or something ?
I've found the option "Uninterruptible" on EE keeper but it doesn't work.
You could also give a large casting speed bonus to a character (say, a -10 bonus to casting time, like the -1 bonus from the Amulet of Power or -4 from the Robe of Vecna) to reduce casting time to zero. In that case, the spellcasting animation will only last a single frame, in which case the window for disruption would be 1/30 of a second, enough to almost completely remove the chance of disruption. This has the side effect of speeding up spellcasting, however, which would grant other in-combat advantages.
For spell failure like from Miscast Magic, you can get true immunity to that by using the Immunity to Effect opcode, opcode 101, and setting the right parameter to the Miscast Magic opcode (I'm not referring to the Uninterruptible flag; this is a special opcode applied to a character). You can apply that via a custom item or spell or directly give it to a character using EEKeeper. But that won't prevent spell disruption from damage.
Individual spells can also be flagged to ignore spell failure or dead magic zone-related spell failure, but that will only apply to those specific spells, and that will also fail to prevent spell disruption from damage.