Jump to content

Saving throws for spells inside Spell Sequencer


critto

Recommended Posts

Hello, everyone.

So, I was investigating an observation that a player has made regarding the behaviour of the game (BG2: EE) when multiple copies of the same spell are put into a spell sequencer. For example, Flame Arrow has a damage effect that does half the damage on a successful saving throw. In my tests, I've seen the creature that has been struck with 3xFire Arrow from a sequencer make only one successful saving throw against the first spell (that was shown in the combat log) but get half the damage from all three instances, judging by the numbers. In another test, I've had a sequencer with 3x Polymorph Other hit a creature. Combat log would sometimes show only a single successful saving throw message, and sometimes two. If that happened, none of the spells would affect the creature.

So, what is going on here, exactly? My current hypothesis is that the engine rolls a single saving throw during a particular time frame (a round?) and uses the rolled value against all spells that require this particular kind of ST. Any insight?

Cheers

Link to comment

The time frame here would be a "tick", the smallest time unit that the game tracks. 15 ticks to a second, so 90 per round.

This same-roll behavior happens unless a pause (or maybe just an auto-pause?) happens on that exact tick, in which case all of the saving throws and probabilities are rolled independently. Which is much worse, and has to be considered a bug.

Spells typically have many effects, all relying on the same saving throw, and in some cases probabilities - this all matters even if there's only one spell involved. If you save against Hold Person, but fail your save against the "Held" string and against the swirly head-thingy because of the pause bug ... well, then you're probably going to make some bad decisions based on that inaccurate visual feedback.

Multiple spells happening at the same moment sharing saves and probabilities? Just a side effect of how things work.

Link to comment

This same-roll behavior happens unless a pause (or maybe just an auto-pause?) happens on that exact tick, in which case all of the saving throws and probabilities are rolled independently. Which is much worse, and has to be considered a bug.

Did I understand correctly that this is an observed and proven behaviour? This explains why people some time report stuff like a portrait icon getting stuck on a character's portrait even if the character saved against the harmful effect. And then you sit and wonder, how did it ever happen.

Link to comment
7 minutes ago, critto said:

 

 

Did I understand correctly that this is an observed and proven behaviour? This explains why people some time report stuff like a portrait icon getting stuck on a character's portrait even if the character saved against the harmful effect. And then you sit and wonder, how did it ever happen.

Yes, most notably when auto-pause on spell cast is selected. 

Link to comment

I actually discovered this when doing sequencers for enemy spellcasters in SCS. Now I insert a SmallWait(1) between each spell cast in a sequencer (I'm regarding the default behavior of the sequencer as a bug; I can fix that bug for enemy spellcasters even if I can't for the PCs.)

Link to comment

I actually discovered this when doing sequencers for enemy spellcasters in SCS. Now I insert a SmallWait(1) between each spell cast in a sequencer (I'm regarding the default behavior of the sequencer as a bug; I can fix that bug for enemy spellcasters even if I can't for the PCs.)

That's a neat trick, thanks.

Link to comment
On 10/17/2023 at 10:16 PM, subtledoctor said:

Eh, to the extent the bug incentivizes making more creative and diverse sequencers, I don’t mind it. 

Only if the spells inside actually require different types of saving throws, i.e. Web and Stinking Cloud in a Minor Sequencer. Comboing spells with the same projectile-speed and save type (like Emotion and Chaos) still only results in one saving throw rolled (most of the time, it's a bit random). If you successfully saved vs Chaos at -4 then the save was also made against Emotion etc.

Note that Slow is faster than most "sparkly" AoE magic, so if put in a sequencer with others will be saved against first and separately.

Link to comment
5 minutes ago, polytope said:

Only if the spells inside actually require different types of saving throws, i.e. Web and Stinking Cloud in a Minor Sequencer.

  Fair enough, but my main point there was the idea of making triple-spell sequencers work better for enemies than they do for the player. As a player, even a player who wants more "challenge," I don't find that particularly attractive. 1) The "one rule for thee, one rule for me" thing always rubs people the wrong way, it is human nature. But more importantly, 2) when every red-circle wizard throws Web at you because Web is optimal, and then a wizard comes along and throws... Better Web, it's just kind of boring. Whereas if that badass wizard, who is powerful enough to spit sequencers, hits you with Web and Stinking Cloud, and you've maybe got one party member stuck in webs and another one doubled over puking... it's just more exciting. More chaos = more fun, in my experience. (Of course this variety is difficult in the base game, which is so inane that even the spell Petrification doesn't use the saving throw named for it :rolleyes: ... but all we can do is address that with mods. (Which I have.))

4 minutes ago, polytope said:

Note that Slow is faster than most "sparkly" AoE magic, so if put in a sequencer with others will be saved against first and separately.

Then one possible solution may be, go through the extant AoE projectiles, and make sure they all have slightly different speeds...? If that works, it might almost be within the ambit of a FixPack...

Link to comment
Just now, subtledoctor said:

Then one possible solution may be, go through the extant AoE projectiles, and make sure they all have slightly different speeds...? If that works, it might almost be within the ambit of a FixPack...

The projectiles, as I recall, are tied to the school by default so sparkly gold for enchantment, but since that's the majority of AoE save-or-else stuff plus Greater Malison (except for the Hold spells lineup, which use a smaller golden AoE) it doesn't really solve the problem.

Not to mention that it's a balance issue if some spells outrun others, an already present issue, true, with for instance Flame Arrow spells particularly speedy and Flesh to Stone quite slow, but no need to aggravate it.

Link to comment
4 hours ago, subtledoctor said:

Fair enough, but my main point there was the idea of making triple-spell sequencers work better for enemies than they do for the player. As a player, even a player who wants more "challenge," I don't find that particularly attractive. 1) The "one rule for thee, one rule for me" thing always rubs people the wrong way, it is human nature. But more importantly, 2) when every red-circle wizard throws Web at you because Web is optimal, and then a wizard comes along and throws... Better Web, it's just kind of boring. Whereas if that badass wizard, who is powerful enough to spit sequencers, hits you with Web and Stinking Cloud, and you've maybe got one party member stuck in webs and another one doubled over puking... it's just more exciting. More chaos = more fun, in my experience.

(a) I'm not very moved by the idea that something which is very clearly a bug shouldn't be fixed in enemy scripting just because there is no clear way to fix it in player use. (The converse would seem pretty weird, after all.)

(b) The issue of variety in sequencers is almost (not quite) 100% orthogonal to the bug here, because the overwhelming majority of spells use a save vs. spell. (Stinking Cloud is a quite rare exception.)

(c) There is a good argument that SCS overuses same-spell sequencers/triggers, but it trades off to some degree against (i) variety between sequencers (better to have all Stinking Cloud + Web, or to have some of those and some double-Web?) and (ii) differentiating spellcaster types (the more mixing there is in sequencers, the more different sorts of wizard start to look the same).

Link to comment

Yeah ultimately I am somewhat wistfully considering the design of the game itself: more spells should have different saving throws; more variety of hostile magic should be as dangerous or moreso than more of the same hostile magic. But the game doesn’t work that way. 

If I was stuck in an elevator with the Bioware devs I would question whether spells like Web should stack with themselves in the first place: once you put a magical effect in an area the effect is there; shouldn't reapplying it remove and replace the first instance?  Spell durations don’t stack; deafness doesn’t self-stack; Glitterdust doesn’t self-stack; Slow doesn’t self-stack; I don’t know if Doom and Malison self-stack but my guess is they don’t; I believe Bad Chant doesn’t self-stack… on the buffs side, very few effects self stack (Strength doesn’t, Bless doesn’t, Chant doesn’t, DUHM doesn’t, Haste doesn’t, Mantle doesn’t, I think Luck doesn’t, I think Magic Resistance doesn’t…) Web self-stacking is so contrary to the usual spell behavior that I would almost call it an oversight on Bioware’s part, or surmise that it may have been technically unavoidable in 2001. Almost. 

But there too, it’s not a comment on SCS, which works with the game it was made for, but just kvetching about things that annoy me (and which, now with the EE engine, I can do something about. 

Edited by subtledoctor
Link to comment

I think it's fairly deeply embedded in the game engine. Web is an AoE projectile; that AoE casts the payload effect every 6 seconds. At the opcode level web *doesn't* stack: if you're webbed, being webbed again doesn't do anything more. But of course if you're in the overlapping areas of multiple Webs, you have to make multiple saving throws per round. I don't think they could address that without a pretty basic-level change in how projectiles work.

(Also more things stack than you think, including things that really shouldn't. The old BG2 Fixpack tried to address this by putting lots of 206s in (so that once one copy of the spell hits you, others don't do anything); EE handles it more naturally by 321. But very often the underlying opcode stacks and it requires explicit work to stop the spell stacking. Slow is an example: the basic slow opcode doesn't stack but the AC and THAC0 penalties do unless you explicitly block it via 206 or 321.)

Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...