Jump to content

Standardizing creature immunities


Luke

Recommended Posts

So, I'm not sure if this is fixpack material or not, but just in case...

As modders know, there are several undroppable items in these games that are supposed to act as "creature skins", i.e.: they provide all sort of immunities (passive traits) a creature should have (well, to be precise, sometimes such immunities are directly attached to the CRE file, but ok...).

My question is: are they correct? That is to say: do they provide the intended immunities or too much / too few immunities...?

As confirmed by other forumites who know the lore (much) better than me, AD&D 2nd edition is not very informative about that... As a result, such things are up to individual Dungeon Master interpretations and campaign settings... which in turn means that such undroppable items are probably correct... which in turn means there is not a template for each creature type to stick with...

However, there is certainly something odd... I mean, letting aside special cases such as boss creatures and plot-armored creatures (that are normally immune to everything), let us start with the following:

  • Elementals, Salamanders and Genies are vulnerable to everything (Backstab, Entangle, Web, Grease, Petrification, Panic, Deafness, Berserk, Silence, Feeblemind, Stun, Charm, Confusion, Sleep, Blindness, Hold, Paralysis, Polymorph, Poison, Disease ...) Intended...? Probably not...?
    • In IWD:EE, they are at least immune to cure/cause wounds spells and Disease spells, which makes sense me thinks... But I suspect they should get something more...? For instance at least Salamanders should get Sleep, Charm and Hold immunity...
  • Dragons ("dragring.itm") are basically immune to everything except Polymorph and Feeblemind. Intended...? Guess so, since they are boss / very high level creatures, though I'm not 100% sure...
    • Let us say that the immunity to Slow seems out of place, unless that is part of them being boss creatures...?
    • The Monstrous Manual (at least the one I found on the net) only speaks about immunity to normal missiles... I know the games are not meant to be 100% faithful to the source material, but just to point it out
  • Plants are generally are vulnerable to everything (Backstab, Entangle, Web, Grease, Petrification, Panic, Deafness, Berserk, Silence, Feeblemind, Stun, Charm, Confusion, Sleep, Blindness, Hold, Paralysis, Polymorph, Poison, Disease ...) Intended...?
    • Probably not intended since when SoD was released, they added a new undroppable skin ("bdplant.itm") which provides immunity to Backstab, Stun, Petrification, Sleep, Hold, Paralysis, Polymorph, Poison, Disease ...
  • Demonic creatures vary between games. Intended...? Which is the correct variant...?
    • We have "ringdemn.itm" that provides the following immunities:
      • Poison, Charm, Feeblemindedness, Confusion, Polymorph, normal weapons, Panic (BG2:EE and IWD:EE only)
    • We have "bddtrai.itm" (SoD)  that provides the following immunities:
      • Panic, Stun, Poison, Charm, Sleep, Confusion, normal weapons
  • Wyverns ("ring97.itm") are immune to (Entangle, Web, Grease, Hold, Paralysis, Slow)
    • I think we can all agree that immunity to Paralysis is a relic from the past when op157 (Web) was a cosmetic-only opcode, thus it should be removed...
    • As far as Hold and Slow are concerned, they seem to be out of place...?
Edited by Luke
Link to comment

A bit late to notice this thread, but imo very important and thanks for raising this.

I generally agree with standardizing immunities for creature-spell interactions and something I was unwilling to deal with this unilaterally, since this would be quite a systematic change that needs to be discussed openly and planned out methodically. There is also an element of contextuality to that requires a bit of digging into some of the files in oBG2 or even oBG1 to see what developer intent was.

For example, RING97.itm in oBG1 granted immunity to just the opcodes entangle, paralyze, web, grease, and slow that has since evolved into granting immunity to level drain text but not the level drain opcode in BG2EE. All of this needs to be cleaned and there's some amount that can be automated with WeiDU (i.e. checking if there are matching text and opcode immunities). This part would be noncontroversial in an EEFixpack. Then there are a series of immunities that make sense i.e. immunity to grease can be done with a standardized list of SPLSTATE entries. Do we want to clear the explicit "protection from spell" entries? That would make sense if we patch the spells themselves. Can we group entangle and grease immunity into one SPLSTATE (i.e. immunity_flying) if there's (almost?) 100% overlap between two types of creatures? This needs a bit of analysis.

Do we want to clear the opcode immunities? I think that can be done in some cases where an opcode might be reused for different categories of spells i.e. the feeblemind opcode is reused in different types of spells (would also make sense for IWD EHopelessness to use this instead of Stun). In these cases, it would be preferrable to remove those immunities accross the board and outsource to via SPLSTATEs i.e. immune_feeblemind, immune_hopelessness, etc. How many SPLSTATE entries would we need then? Is there enough to have some amount remaining for mods? It's worth to have an open discussion imo. On the other hand, the straightforward Hold opcodes can remain as they are. Do we also want to clear the immunity to display texts, status icons, and .bams? I think this needs to be discussed and agreed upon as well.

My general hunch is that with some exceptions, we shouldn't resort to immunity to particular spells but rather do it in a more systematic way (like SPLSTATEs), but that general opcode immunities should remain as they are with some exceptions (i.e. feeblemind). It would also be nice to have the same set of immunities of the same creature types between IWDEE and BG(2)EE unless there's a plot or design intent reason not to (i.e. extraplanar creatures for Cure Wounds spells).

Link to comment
On 12/27/2023 at 1:50 PM, Galactygon said:

There is also an element of contextuality to that requires a bit of digging into some of the files in oBG2 or even oBG1 to see what developer intent was.

Assuming you know very well the underlying AD&D lore, may I ask you to clearly state which creature type (i.e. Undead, Constructs, Elementals, Extraplanar and the like) should be immune to Charm / Hold / Paralysis / Berserk / Polymorph / Sleep / Stun / Confusion / Feeblemind / Petrification / Disease / Poison / Cure Cause Wounds / other...? Could you also include partial immunities such as Elves/Half Elves partial immunity to Charm...?

That is to say: if you were to design the so called creature skins (i.e. "ring95.itm" , "ring97.itm", etc...) from scratch, what would you do...? I mean, as I said in the OP, AD&D 2nd edition is not very informative about that, and it'd be nice to have a clear template to refer to... Additionally, it is also likely that it is now possible to implement things that were not possible before (pre EE engine)...

So to sum up: theoretically speaking, what should be immune to what?

On 12/27/2023 at 1:50 PM, Galactygon said:

For example, RING97.itm in oBG1 granted immunity to just the opcodes entangle, paralyze, web, grease, and slow that has since evolved into granting immunity to level drain text but not the level drain opcode in BG2EE.

As I said before, without having a template to refer to, it may be difficult to understand developer intent... We can all agree that the immunity to paralyze is there because back in the days the Web opcode was cosmetic-only... As a result, it should be removed... As far as Slow and Level Drain are concerned, I think they should be removed as well...? I mean, "ring97.itm" should be the creature skin for Wyverns, and I cannot see why they should be immune to both Slow and Level Drain...

Speaking of this, trolls come to mind: they are immune to most (all?) disabling opcodes probably because back in oBG1 their special death mechanic used to rely on scripts... But since nowadays all of that can be handled via op232/op272, such immunities should probably be removed...?

On 12/27/2023 at 1:50 PM, Galactygon said:

Do we want to clear the opcode immunities? I think that can be done in some cases where an opcode might be reused for different categories of spells i.e. the feeblemind opcode is reused in different types of spells (would also make sense for IWD EHopelessness to use this instead of Stun). In these cases, it would be preferrable to remove those immunities accross the board and outsource to via SPLSTATEs i.e. immune_feeblemind, immune_hopelessness, etc. How many SPLSTATE entries would we need then? Is there enough to have some amount remaining for mods? It's worth to have an open discussion imo.

Yes, getting rid of op101 would probably be the best solution, especially if EEex is not installed... The only issue is that existing mods would need to adapt to the new (splstate-based) system, otherwise the feeblemind / sleep opcodes (among others) cannot be reused in different scenarios...

Link to comment

We have a mishmash system of combat feedback when it comes to immunities in BG1/2:EE, whereas IWD:EE is quite consistent in placing immunity checks in spells rather than equippable immunity rings. You won't glean as much info looking at creature files and immunity rings in IWD:EE.

Spells in BG1/2:EE in general should adopt the use of opcode 324 more often, even when it seems unnecessary so we get more consistent feedback in the combat log. i.e. Charm Person should check for nonhumanoids and those who carry the immune_charm SPLSTATE. Immunity rings that already block the charm opcode with the associated effects should carry a SPLSTATE effect immune_charm. Immunity against particular resource values should be removed from those rings, since the spells themselves would have IWD-style SPLPROT checks instead.

On 10/17/2023 at 7:11 PM, Luke said:

 

  • Elementals, Salamanders and Genies are vulnerable to everything (Backstab, Entangle, Web, Grease, Petrification, Panic, Deafness, Berserk, Silence, Feeblemind, Stun, Charm, Confusion, Sleep, Blindness, Hold, Paralysis, Polymorph, Poison, Disease ...) Intended...? Probably not...?
    • In IWD:EE, they are at least immune to cure/cause wounds spells and Disease spells, which makes sense me thinks... But I suspect they should get something more...? For instance at least Salamanders should get Sleep, Charm and Hold immunity...

Poison/Disease immunity is done by a SPLPROT RESISTPOISON>=100 check that was extended to all such spells in BG1/2EE in the recent patches. Elementals and elemental-kin (i.e. Salamanders, Water Weirds) should have their RESISTPOISON set to 100 if not already.

Backstab, Entangle, Web, Grease, and Petrification immunity make sense for elementals (make a new immunity ring just for them?). These checks should be added (opcode 324) to the relevant spells as well so they display the immunity message. IWD:EE blocks large creatures from being affected by these spells which includes elementals. It would make sense to also specifically block elementals and elemental-kin (Water Weirds, Salamanders, but not Genies) in IWD:EE and large creatures in BG1/2:EE.

Salamanders are immune to sleep (not knockdown), charm, hold, and paralysis according to this source. In IWD:EE they're vulnerable to everything, while in BG2:EE they have RING95.itm which gives them immunities they shouldn't be immune to (Death, Level Drain, Morale, etc.). They're unaffected by Charm anyways, since they're not humanoid (Charm Monster isn't an available spell here). AD&D makes a distinction between Charm and Domination, where immunity to Domination is far less common. Should we make this distinction in the IE? I'm more for it, given that Domination is an underwhelming spell.

Genies aren't really elemental-kin or elementals. They lack general immunities according to this source and they don't wear get immunity rings either ingame. They're fine as they are.

Blindness and Polymorph immunity is a borderline case. I can see the argument for elementals, but not for others.

Berserk, Confusion, Deafness, Fear, Panic, Polymorph, Silence, Stun aren't listed among the immunities in the source material and they're not immune to these effects either as of 2.6. We can leave these vulnerabilities as they are (Salamanders become vulnerable to these if RING95 is taken away from them).

RING95.itm is used for more than just undead: a quick NI search shows that Shambling Mounds, Jellies, Salamanders, Golems, Bone Fiends, and Puddings all use this ring which is a bit sloppy. There are other such examples of multiple seemingly unrelated groups of creatures sharing immunity items. That's why it's so important (imho) to map the current immunities somewhere like an excel before we try to make any changes.

On 10/17/2023 at 7:11 PM, Luke said:

 

  • Dragons ("dragring.itm") are basically immune to everything except Polymorph and Feeblemind. Intended...? Guess so, since they are boss / very high level creatures, though I'm not 100% sure...
    • Let us say that the immunity to Slow seems out of place, unless that is part of them being boss creatures...?
    • The Monstrous Manual (at least the one I found on the net) only speaks about immunity to normal missiles... I know the games are not meant to be 100% faithful to the source material, but just to point it out
  • Wyverns ("ring97.itm") are immune to (Entangle, Web, Grease, Hold, Paralysis, Slow)
    • I think we can all agree that immunity to Paralysis is a relic from the past when op157 (Web) was a cosmetic-only opcode, thus it should be removed...
    • As far as Hold and Slow are concerned, they seem to be out of place...?

Many of the non-boss dragons have RING97.itm equipped instead of DRAGRING.itm, so removing Paralysis, Hold,  Slow, Level Drain immunity from RING97.itm will remove those immunities from some dragons.

DRAGRING currently grants immunity to Charm, Silence, Sleep, Stun, Hold, Entangle, Web, and Grease

RING97 currently grants immunity to Slow, Hold, Entangle, Web, Grease, and Level Drain

I suggest removing immunity to Slow and Level Drain from RING97.itm and granting immunity to wing buffett. The only non-boss dragon who should be immune to level drain is DRAGSHAD.cre (source), so maybe clone their hand-to-hand as DRAGSHAD.itm and put level drain immunity there? Immunity to Hold I and II for dragons makes sense since they're huge creatures, while Otiluke's Resilient Sphere (that uses Hold III) should be patched to fail when cast onto large creatures (like Entangle). Then RING97.itm can become a generic dragon immunity item.

I think we need a new immunity ring for medium-sized flyers (Wyverns, Beholders, etc.) that only protects against Entangle, Web, and Grease. Even smaller flyers like Gauths and Imps can get yet another new immunity ring that only protects against Grease and Entangle and not Web.

On 10/17/2023 at 7:11 PM, Luke said:

 

  • Plants are generally are vulnerable to everything (Backstab, Entangle, Web, Grease, Petrification, Panic, Deafness, Berserk, Silence, Feeblemind, Stun, Charm, Confusion, Sleep, Blindness, Hold, Paralysis, Polymorph, Poison, Disease ...) Intended...?
    • Probably not intended since when SoD was released, they added a new undroppable skin ("bdplant.itm") which provides immunity to Backstab, Stun, Petrification, Sleep, Hold, Paralysis, Polymorph, Poison, Disease ...

BDPLANT.itm is a much better alternative to the undead immunity ring RING95.itm which Shamblers currently have. Immunity to Backstab, Petrification, Poison/Disease, Polymorph (plants are a different kingdom compared to creatures), and Stun all make sense. They're semi-intelligent species so they're not immune to Sleep, Charm, Hold, Paralysis, Confusion, etc. in the source material.

Myconids are also plant creatures but they should be vulnerable to everything except Poison/Disease, Petrification, and Polymorph. They currently share a hand-to-hand attack with Umber Hulks (UMBER01.itm) which for some reason also grants immunity to Confusion. Imho it should protect against Umber Hulk Confusion specifically (i.e. when reflected by Spell Turning) rather than all forms of Confusion. Umber Hulks don't have this immunity in IWD:EE.

All plant creatures (incl Jellies, Slimes) should use the already existing GENERAL.ids entry 7-plant which can then be used to do an IWD-style check in Polymorph Other / Sphere of Chaos. Shamblers shouldn't be classed as (earth) elementals but use the already existing RACE.ids entry 176-shambling_mound.

For slimes and jellies, the source material is inconsistent when discussing those immunities. Gelatinous Cubes are immune to "electricity, fear, holds, paralyzation, polymorph, and sleep-based attacks" while other forms of slimes/jellies have minimal info on their immunities apart from certain types of damage.

Entangle, web, grease, hold, paralyzation, poison, petrification, and polymorph immunities all make sense for jellies and slimes accross the board. I guess confusion, charm, fear, sleep, and stun can be included as well. Protection against level drain is the only one that doesn't make any sense.

So jellies and slimes need their own immunity ring. The description for SPWI496.spl (Shapeshift: Mustard Jelly) will need to be updated to account for any changes.

On 10/17/2023 at 7:11 PM, Luke said:

 

  • Demonic creatures vary between games. Intended...? Which is the correct variant...?
    • We have "ringdemn.itm" that provides the following immunities:
      • Poison, Charm, Feeblemindedness, Confusion, Polymorph, normal weapons, Panic (BG2:EE and IWD:EE only)
    • We have "bddtrai.itm" (SoD)  that provides the following immunities:
      • Panic, Stun, Poison, Charm, Sleep, Confusion, normal weapons

Fiends/Demonic creatures are a topic within itself with lots of creatures and many types of immunities. We need more information before I can form an opinion.

6 hours ago, Luke said:

Assuming you know very well the underlying AD&D lore, may I ask you to clearly state which creature type (i.e. Undead, Constructs, Elementals, Extraplanar and the like) should be immune to Charm / Hold / Paralysis / Berserk / Polymorph / Sleep / Stun / Confusion / Feeblemind / Petrification / Disease / Poison / Cure Cause Wounds / other...? Could you also include partial immunities such as Elves/Half Elves partial immunity to Charm...?

As mentioned above, RING95.itm seems to be the go-to item for "unnatural creatures". Constructs and Undead have similar opcode immunities but others (i.e. Shamblers) don't as mentioned above. Extraplanar immunity isn't applicable in the BG series, but I'm guessing the swath of immunities granted to fiends and celestials are supposed to represent this sort of immunity. (Half-)elfish immunities to Charm and Sleep have been implemented awhile ago in oBGFixpack that the EEs inherited.

6 hours ago, Luke said:

Speaking of this, trolls come to mind: they are immune to most (all?) disabling opcodes probably because back in oBG1 their special death mechanic used to rely on scripts... But since nowadays all of that can be handled via op232/op272, such immunities should probably be removed...?

Yes, I think troll immunities can be completely removed now as their original purpose was quite obvious.

6 hours ago, Luke said:

Yes, getting rid of op101 would probably be the best solution, especially if EEex is not installed... The only issue is that existing mods would need to adapt to the new (splstate-based) system, otherwise the feeblemind / sleep opcodes (among others) cannot be reused in different scenarios...

Yes, we still need opcode 101 and its accompanying effects to not break any mods. There are few spells that use feeblemind or sleep, so they can be blocked one-by-one in addition to using immunity SPLSTATEs.

Link to comment

This is quite a broad topic and we're discussing many things at the same time. Let's break it down.

  • Regrouped immunity items according to creature type: regardless of whether we make any changes to immunities or not, completely different categories of creatures (i.e. undead and shamblers) shouldn't share the same immunity ring. Agreeing to a set of standard immunity rings with no changes to creature immunities (i.e. just making carbon copies is enough) is uncontroversial and is a prerequisite to untying the Gordian knot of creature immunities in BG2:EE if the need for changes arises. It's also a convenient way for mods such as SCS to piggyback and make any systematic changes to groups of creatures. I would even argue for introducing the same immunity rings in IWD:EE and leaving them empty so mods affecting both BG12 and IWD can same patch the same items. If you agree with establishing a commonly agreed upon set of immunity items @CamDawg then this should be the first priority imho. Note that some creatures (i.e. Death Tyrants) have a venn diagram of overlapping immunities and need multiple rings. However, they also wear IMMUNE1.itm (nonmagical weapon immunity). So a set of weapon immunity amulets, say IMMUAM1.itm need to be created to allow for those creatures to wear an extra ring.
  • Using a set of agreed-upon SPLSTATES to use for immunity items: again, an uncontroversial change that creates a future-proof infrastructure. This will require numerous spells to be patched to either use opcode 318 (no feedback) or 324 (IWD-style feedback) so those SPLSTATEs completely block the entire spell. Note that in today's engine, you cannot block many secondary effects such as color glow or lightning effects (not play .bam/.vvc). Protecting against particular spells inside immunity rings like it's done right now is a hard-to-maintain system and prone to bugs/oversights. So again, an uncontroversial and much needed change imho.
  • Fix certain creatures' GENERAL/RACE/CLASS entries if they were missing in oBG2 but have been added during the EEs: this is something that can be done on a case-by case basis and isn't necessarily tied to the immunity system. IDS files should be identical between BG1:EE, SoD, and BG2:EE but not IWD:EE (though it's convenient they are).
  • Propose changes to creature immunities: In order to make any proposals, the immunity rings need to be assigned to groups of similar creatures first, and then a list of existing and proposed immunities should be created so changes can be discussed on a case-by-case basis. Even if no changes are agreed upon, mods can conveniently introduce them without having to worry about reassigning immunity rings. Some proposals would more likely reach agreement (i.e. remove level drain immunity from Wyverns) than others.
  • Then there's a question of how we make the BG-style immunity system seperate from the IWD-style immunity system: since SoD, numerous spells and abilities have already gotten an IWD-style immunity treatment i.e. they display the IWD-style "Unaffected by ..." text in the combat log. Do we roll those changes back @CamDawg or do we make them into feedbackless text (opcode 318)? Or did you refer to specific immunities for specific creatures? The biggest difference between the BG2 and IWD systems is the use of immunity rings in BG2 whereas IWD almost completely lacks them and uses creatures' IDS entries. The proposed SPLSTATE system is somewhat of a reconciliation between the two systems and could be applied to both IWD:EE and BG2:EE even if those SPLSTATES aren't set by immunity rings in IWD:EE. It's a great way to streamline and future-proof for future mods.
     
Edited by Galactygon
Link to comment
8 hours ago, CamDawg said:

IWD and BG use different mechanics, and this won't be changed by EEFP.

Yes, but the underlying lore is the same though... Having said that, if you really think some of the proposed changes is out of scope, then I'll submit them for Tweaks Anthology (as I've already done with Cure / Cause Wounds spells vs unnatural creatures...)

10 hours ago, Galactygon said:

Spells in BG1/2:EE in general should adopt the use of opcode 324 more often, even when it seems unnecessary so we get more consistent feedback in the combat log. i.e. Charm Person should check for nonhumanoids and those who carry the immune_charm SPLSTATE. Immunity rings that already block the charm opcode with the associated effects should carry a SPLSTATE effect immune_charm. Immunity against particular resource values should be removed from those rings, since the spells themselves would have IWD-style SPLPROT checks instead.

Yes, that should be the plan...

10 hours ago, Galactygon said:

Poison/Disease immunity is done by a SPLPROT RESISTPOISON>=100 check that was extended to all such spells in BG1/2EE in the recent patches. Elementals and elemental-kin (i.e. Salamanders, Water Weirds) should have their RESISTPOISON set to 100 if not already.

Disease immunity is only partially done by a SPLPROT RESISTPOISON >= 100 check... Keep in mind that the disease opcode can also cause Strength / Dexterity / Constitution / Intelligence / Wisdom / Charisma loss, as well as Slow... As a result, SPLPROT RESISTPOISON >= 100 might not be enough...

As a side note, in IWD:EE spells / attacks that cause Disease do check (via op318/324) for unnatural creatures... However, we cannot do the same in BG games because there might be some exceptions (f.i. the demon in Watcher's Keep is intended to be vulnerable to Poison...)

11 hours ago, Galactygon said:

Backstab, Entangle, Web, Grease, and Petrification immunity make sense for elementals (make a new immunity ring just for them?). These checks should be added (opcode 324) to the relevant spells as well so they display the immunity message. IWD:EE blocks large creatures from being affected by these spells which includes elementals. It would make sense to also specifically block elementals and elemental-kin (Water Weirds, Salamanders, but not Genies) in IWD:EE and large creatures in BG1/2:EE.

Sounds good.

Again, if @CamDawg thinks Entangle, Web and Grease should not check for large creatures in BG games, then I'll submit the change for Tweaks Anthology...

11 hours ago, Galactygon said:

Salamanders are immune to sleep (not knockdown), charm, hold, and paralysis according to this source. In IWD:EE they're vulnerable to everything, while in BG2:EE they have RING95.itm which gives them immunities they shouldn't be immune to (Death, Level Drain, Morale, etc.). They're unaffected by Charm anyways, since they're not humanoid (Charm Monster isn't an available spell here). AD&D makes a distinction between Charm and Domination, where immunity to Domination is far less common. Should we make this distinction in the IE? I'm more for it, given that Domination is an underwhelming spell.

Sounds really good (also thanks for sharing the source, I'm saving it right now...)

SoD appears to be faithful to the source since Salamanders (f.i. "bdsalf01.cre") are immune to Sleep , Charm, Hold, and Paralysis... Some comments:

  • As already discussed elsewhere, the immunity to Sleep also protects them from Earthquake and the like (unintended)
    • The splstate-based immunity system should solve this issue...
  • The source states Hold, not Paralysis... Again, should we consider Hold (op175) and Paralysis (op109) the same thing (and thus block both...?)
  • In IWD:EE spells that cause Level Drain check for Salamanders (among others). Should we do the same in BG...?

Finally, how would you distinguish between Charm and Domination? By using two different splstates...?

11 hours ago, Galactygon said:

Genies aren't really elemental-kin or elementals. They lack general immunities according to this source and they don't wear immunity rings either ingame. They're fine as they are.

Fair enough.

The only "issue" is that their sleep animation looks "silly", since it's basically invisible (they retreat into their lamp...) Anyway, not really an issue, just saying...

11 hours ago, Galactygon said:

Blindness and Polymorph immunity is a borderline case. I can see the argument for elementals, but not for others.

Well, Blindness and Polymorph are powerfull debuffs, and thus should be considered imho...

Creatures that do not rely on sight (f.i. Oozes, Dragons, other...?) should probably be immune to Blindness, shouldn't they...?

As far as Polymorph is concerned, Lycanthropes and Dopplegangers should probably be immune to it (as @kjeron said, they can just change back into their original form...)

11 hours ago, Galactygon said:

DRAGRING currently grants immunity to Charm, Silence, Sleep, Stun, Hold, Entangle, Web, and Grease

RING97 currently grants immunity to Slow, Hold, Entangle, Web, Grease, and Level Drain

According to the source, Dragons should only be immune to Normal Missiles, with some exceptions: the one you mentioned and the Deep Dragon ("They are born with immunities to charm, sleep, and hold..."), possibly others...

As you said, we can strip Slow and Level Drain from "ring97.itm" and use it for Dragons... Then, we can add extra immunities to their creature weapons or directly patch the CRE file... And if someone really wants a "cheated" dragon, it can use "dragring.itm"...

11 hours ago, Galactygon said:

Even smaller flyers like Gauths and Imps can get yet another new immunity ring that only protects against Grease and Entangle and not Web.

Why would you leave these vulnerable to Web...?

(to be continued...)

Link to comment
15 hours ago, Galactygon said:

BDPLANT.itm is a much better alternative to the undead immunity ring RING95.itm which Shamblers currently have. Immunity to Backstab, Petrification, Poison/Disease, Polymorph (plants are a different kingdom compared to creatures), and Stun all make sense. They're semi-intelligent species so they're not immune to Sleep, Charm, Hold, Paralysis, Confusion, etc. in the source material.

Makes sense.

If that is the case, then immunity to Hold/Paralysis/Sleep should be removed from "bdplant.itm"...

15 hours ago, Galactygon said:

Myconids are also plant creatures but they should be vulnerable to everything except Poison/Disease, Petrification, and Polymorph. They currently share a hand-to-hand attack with Umber Hulks (UMBER01.itm) which for some reason also grants immunity to Confusion.

In SoD Myconids wear "bdplant.itm" and do not use "umber01.itm"... As a result, we should either make a new skin or patch the CRE files so as to grant them only Poison/Disease, Petrification, and Polymorph immunity...

15 hours ago, Galactygon said:

All plant creatures (incl Jellies, Slimes) should use the already existing GENERAL.ids entry 7-plant which can then be used to do an IWD-style check in Polymorph Other / Sphere of Chaos. Shamblers shouldn't be classed as (earth) elementals but use the already existing RACE.ids entry 176-shambling_mound.

Totally agree on this.

To be precise, only Olive/Green slimes are technically "plants"... As a result, the other jellies (f.i. Mustard Jelly) should remain flagged as GENERAL=MONSTER...?

15 hours ago, Galactygon said:

Fiends/Demonic creatures are a topic within itself with lots of creatures and many types of immunities. We need more information before I can form an opinion.

The source material states nothing (apart from certain types of damage...) The only exception appears to be Lemures and Mariliths, which are supposed to be immune to mind-affecting opcodes (this is already the case in SoD since Lemures are equipped with "ipsion.itm"...) Again, the only thing that seems out of place in "ipsion.itm" is the immunity to Paralysis (op109)... That is to say: should immunity to op175 always be paired with immunity to op109...?

Related (kinda): quite some time ago I advocated for adding CLASS.IDS entries to better identify demons and devils (as opposed to just TANARI and IMP...) I mean, we have an entry for each type of wolf/bear/elemental/etc..., so why not doing something for devils and demons...? @CamDawg already said this is out of scope, though I'd like to know your opinion... Taking inspiration from the source material, even something like GREATER_BAATEZU, LESSER_BAATEZU, LEAST_BAATEZU / LEAST_TANARRI, LESSER_TANARRI, GUARDIAN_TANARRI, GREATER_TANARRI, TRUE_TANARRI should suffice...

 

Link to comment
6 hours ago, Galactygon said:

Note that some creatures (i.e. Death Tyrants) have a venn diagram of overlapping immunities and need multiple rings. However, they also wear IMMUNE1.itm (nonmagical weapon immunity). So a set of weapon immunity amulets, say IMMUAM1.itm need to be created to allow for those creatures to wear an extra ring.

What about getting rid of immunity items? That is to say: what about transferring immunities from equipped items to CRE effects? That should matter most in case they wear droppable (PC-usable) rings/amulets/etc, though I must admit the circumstances are very rare...

6 hours ago, Galactygon said:

This will require numerous spells to be patched to either use opcode 318 (no feedback) or 324 (IWD-style feedback) so those SPLSTATEs completely block the entire spell.

As a rule of thumb

  • use 324 if the parent SPL has a name or there exists an ITM with the same "resref" that is meant to be used by the Player
  • use 324 if the parent ITM is meant to be used by the Player
  • 318 in all other cases
6 hours ago, Galactygon said:

IDS files should be identical between BG1:EE, SoD, and BG2:EE but not IWD:EE (though it's convenient they are).

As I've already said above, demons and devils should deserve some love...

Aside from that, I too think the IDS files should be the identical between all the games... Speaking of this, I suggest adding SALAMANDER_FIRE and SALAMANDER_FROST to BG CLASS.IDS so as to match IWD CLASS.IDS... In BG(2) / SoD Salamanders are flagged as ELEMENTAL_FIRE / ELEMENTAL_WATER, which sounds a bit inaccurate...

Link to comment
On 12/27/2023 at 1:50 PM, Galactygon said:

How many SPLSTATE entries would we need then? Is there enough to have some amount remaining for mods? It's worth to have an open discussion imo.

As part of one of my pending pull request, I added the following splstates: CONFUSION_IMMUNITY, STUN_IMMUNITY, CHARM_IMMUNITY, BERSERK_IMMUNITY, DEAFNESS_IMMUNITY, BLINDNESS_IMMUNITY, SILENCE_IMMUNITY, HOLD_IMMUNITY, PARALYZED_IMMUNITY, POLYMORPH_IMMUNITY, FEEBLEMIND_IMMUNITY, PANIC_IMMUNITY, GREASE_IMMUNITY, WEB_IMMUNITY, ENTANGLE_IMMUNITY, PETRIFY_IMMUNITY.

Edited by Luke
Link to comment

It's a moot point to discuss any changes in detail until we agree on splitting up/reorganizing creature immunity items and whether or not we should use additional splstates. Until that happens, I won't comment on the individual changes for now. Immunity items are a much more practical way to manage groups of creatures with identical immunities than effects directly carried by the .cre.

If/once we do agree, the existing immunities will need to be drawn up and then reviewed case-by-case to see what/if any changes go into the Fixpack and what doesn't.

We also need to agree how to handle SPLPROT checks in BG2 in a standardized matter. Ever since the initial IWD:EE release, effects using the new opcodes made their debut in SoD and by now a handful of spells in the BGEE games use IWD-style protection feedback. Do we want to keep IWD-style protection feedback and propagate it to other spells? Or do we change it to silent/no feedback (opcode 318)? When talking about "other spells" I am referring to SPLPROT checks that would check for those new IMMUNITY splstates should we decide to implement them. IWD:EE would still keep their existing immunity checks of creature parameters (size, race, class, etc.) while BGEEs would still have opcode protection effects via immunity items. The thinking is that these SPLSTATEs would simply complement both systems and remove the need to list all spells of a certain category when applying a particular immunity.

Additional GENERAL/RACE/CLASS/etc. entries are a different discussion altogether.

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...