Jump to content

Shambling mounds inconsistency in the trilogy


Recommended Posts

FWIW, I’m a huge fan of implementing P&P rules in these games but, much like jastey, I do consider those tweaks rather than fixes. This is because it seems clear to me that BioWare deviated from P&P on purpose in many places and, in the context of the Fixpack, developer intent is the baseline rather than P&P books.

Link to comment

Leaving aside SoD (which I don't know so well), the baseline games fairly consistently use only 5 GENERAL values: Humanoid, GiantHumanoid, Animal, Undead, Monster. The first four of those are tied to specific in-game resources (though I can't offhand think of one tied to GiantHumanoid, to be fair... but I think there's one somewhere). You can interpret the fifth as 'miscellaneous': if something isn't affected by Charm Person, Charm Animal, or Hold Undead (and isn't a giant humanoid!) it's a monster.

Link to comment
On 6/19/2022 at 2:37 PM, Graion Dilach said:

Plant is already used in SoD so the dev intent is there

That, on the other hand, would be a reason to think about unifying some "Plant" monster race. If it's there but not used consistently so we can assume it's sloppy dev intend.

Link to comment

Yeah, I too agree that at least GENERAL/RACE/CLASS/SEX/GENDER values should be the same across all games, that is to say:

  • GENERAL=PLANT
  • RACE=SHAMBLING_MOUND
  • CLASS=NO_CLASS
  • GENDER=0 (or NIETHER)
  • SEX=0 (or NIETHER)

I mean, these are not generic monsters after all... More importantly, they're not ELEMENTALs (as @CamDawg said, this is relevant for Rangers whose favored enemy is ELEMENTAL and items such as Ring of Earth Control / the Staff of Earth...)

Edited by Luke
Link to comment

(TL;DR: leave IWDEE alone. Change BG2EE to GENERAL=MONSTER, RACE=SHAMBLING_MOUND, CLASS=NO_CLASS. Change BPSHAMB from BGEE to RACE=SHAMBLING_MOUND, CLASS=NO_CLASS, and either (a) change BPSHAMB to GENERAL=PLANT and give it bplant.itm, or (b) leave its GENERAL unchanged.)

OK, on the specific question here:

1) For reasons I've already given, I attach basically zero weight to consistency between the games, absent demonstrated developer intent to achieve consistency.

2) There is no actual overlap between any of the three games here. The BG2EE shambling mounds present in BGEE/SoD are unused in the unmodded game (one of them is summoned by a trap in Watcher's Keep, one of them is used by a BG2-only magic item.)

3) The GENERAL, RACE and CLASS categories are not lore descriptions visible in-game to the player; they are technical categories used by spells and scripting. What matters is that they are assigned to produce the right in-game effects. (Nothing observable would change if you text-swapped 'MONSTER' for 'MISCELLANEOUS_ANIMATE_ENTITY' in the game, for instance.)

With that said, looking game-by-game:

(i) In IWDEE, shambling mounds are GENERAL=MONSTER, RACE=SHAMBLING_MOUND, CLASS=NO_CLASS. That's a slight tweak from oIWD, where they're RACE=MYCONID. I assume that's a deliberate change so that shambling mounds (which are plant creatures but not fungus creatures) are not affected by the undead-or-fungus targeting of the Sunbeam spell. In any case I don't see any bug here, so no need for change.

(ii) In SoD, the SoD-added shambling mounds are GENERAL=PLANT, RACE=SHAMBLING_MOUND, class=None. I don't see any problem there, nor anything that needs fixing. It's slightly odd that they have class=None rather than class=NO_CLASS, but that's either (a) harmless, or (b) actually targeted by some bit of scripting in SoD, in which case changing it would be disastrous. In any case, there's no need to change it, so there is a need not to change it.

(The decision to add a new GENERAL category to SoD, incidentally, is not one I would have made, since I think it's a bit dangerous, but obviously they did make it.)

The BPSHAMB shambling mound is GENERAL=MONSTER, RACE=ELEMENTAL, CLASS=ELEMENTAL_EARTH. Note that this is fairly good evidence that Beamdog (as of the original EEs, not as of SoD) thought shambling mounds ought to be categorized as MONSTER, since this creature is clearly adjusted from the oBG2 shambling mound. It is probably harmless either to leave or to change the RACE/CLASS entries (I don't see any scripting sensitive to it - some scripts check race=ELEMENTAL but they're not used by creatures that will encounter BPSHAMB). If it would please people's aesthetic sensitivities to change BPSHAMB to RACE=SHAMBLING_MOUND, CLASS=NO_CLASS, go for it.

After SoD, Beamdog roll out sensitivity to the 'plant' GENERAL category into their scripting for NPCs. The concrete effect of changing the GENERAl category for BPSHAMB from 'MONSTER' to 'PLANT' is that various NPCs will change their targeting. Imoen, for instance, will not cast Confusion on PLANTs. Now, BDSHAMB is actually immune to confusion via the 'bplant' item, but BPSHAMB is not. 

My feeling is that it is reasonable to suppose the devs intended this to apply to plants in general, and so to change BPSHAMB to PLANT and give it bplant.itm. But we should do both or neither. This is an example of my (3) above: what matters here is not whether 'PLANT' feels a better 'fit' than MONSTER, but whether 'PLANT' actually interfaces correctly with AI and spell targeting.

(iii) in BG2EE, shambling mounds are GENERAL=GIANTHUMANOID, RACE=ELEMENTAL, CLASS=ELEMENTAL_EARTH. Several things are sensitive to ELEMENTAL in BG2EE, and shambling mounds clearly aren't intended to be elementals, so this should be changed (it might as well be to RACE=SHAMBLING_MOUND, CLASS=NO_CLASS).

No creature in BG2EE is assigned general=PLANT, of course. In oBG2, the category doesn't even exist. In oBG2 terms the clear category for Shambling Mounds would be MONSTER, and I think it's reasonable to see GIANTHUMANOID as a mistake. So the oBG2 fixpack ought to change it to MONSTER.

Moving to the EE, the PLANT general type exists in BG2EE scripting only through AI scripts imported from SoD, which as it stands do nothing. And quite a number of scripts in BG2EE reference the MONSTER type. I think it is actively dangerous from a scripting POV (to say nothing of what it might do to mods) to shift shamblers over to the PLANT category in BG2EE. And it's pretty clearly not developer intent.

From a resource perspective, the only place (afaict) that the game references plants is the Horrid Wilting spell, which has an unimplemented -2 save penalty to plants. But we can implement that keyed to RACE=SHAMBLING_MOUND and RACE=MYCONID. We don't need something as sweeping as a new GENERAL to address something as specific as a single-spell save penalty.
 

Link to comment
2 hours ago, DavidW said:

It's slightly odd that they have class=None rather than class=NO_CLASS, but that's either (a) harmless, or (b) actually targeted by some bit of scripting in SoD, in which case changing it would be disastrous. In any case, there's no need to change it, so there is a need not to change it.

As I said here, all 0 should be 255.

As you can see by looking at "class.ids", unlike class #255, class #0 does not exist (what NearInfinity labels as `0|None` is just the default value, not an actual/existing "class.ids" identifier... Even the default value for dialogue at CRE offset 0x2CC is labeled as `None`, but that does not imply that a "None.DLG" file does exist as a game resource...)

If a modder wanted to add a brand new class value, he should be able to use index #0 (i.e., the first available unused index)... And that's why all existing 0s should be changed to 255...

Edited by Luke
Link to comment
5 hours ago, Luke said:

As you can see by looking at "class.ids", unlike class #255, class #0 does not exist (what NearInfinity labels as `0|None` is just the default value, not an actual/existing "class.ids" identifier...

Like many hardcoded entries, it is omitted from the label file, but it does exist.

5 hours ago, Luke said:

If a modder wanted to add a brand new class value, he should be able to use index #0 (i.e., the first available unused index)... And that's why all existing 0s should be changed to 255...

You cannot use value "0" for custom EA/GENERAL/CLASS/RACE/ALIGNMENT/GENDER values.

"0" is hardcoded as "Any", as in:

See([0.0.0.0.0.0])

Will return true for any visible creature.

Now if there is a reason to specifically target creatures with "NO_CLASS" or "NO_RACE", then assigning 255 makes sense, otherwise it doesn't matter whether they have 0 or 255.  AFAIK they are not referenced in any scripts/dialogues, so if anything the "NO_CLASS" and "NO_RACE" entries should be removed to free up space, and their creatures remapped to "0".

Link to comment
12 hours ago, kjeron said:

You cannot use value "0" for custom EA/GENERAL/CLASS/RACE/ALIGNMENT/GENDER values.

"0" is hardcoded as "Any", as in:

See([0.0.0.0.0.0])

Will return true for any visible creature.

Yeah, you're definitely right, me dumb... I had completely forgotten about that...

And for that specific reason, unlike "splstate.ids", valid values range from 1 to 255 (instead of 0 to 255...)

12 hours ago, kjeron said:

AFAIK they are not referenced in any scripts/dialogues, so if anything the "NO_CLASS" and "NO_RACE" entries should be removed to free up space, and their creatures remapped to "0".

Yeah, makes sense, I'll "fix" my other thread...

Link to comment

Right, so let's refocus the discussion a bit. Looking through the thread, I think David's hit most of the points I would have made, which I'll summarize as:

  • IWDEE and BGEE/BG2EE implemented the rules differently (and IWDEE is fine as-is)
  • Shmounds should definitely not be raced/classed as elementals in BG2EE
  • SHAMBLING_MOUND/NO_CLASS are good choices for race/class across the BGs

The sticking point remains what to do with the general field. As David points out this is a purely internal field never exposed to the player, so our main concern is how they interact with existing AI and item/spell effects. However, I think there's merit in unifying the general field across the BGs, but only if we can do so without breaking other stuff.

So, let's refocus this specifically on the general field. Across the BG series, shmounds use either MONSTER, GIANTHUMANOID, or PLANT. I think it's useful to review any items, spells, or scripting which intersects with these, and a little research yields:

  • The Kneecapper (BG, BG2) and Pritchard's Family Stiletto (SoD) provide additional to-hit and damage bonuses vs. GIANTHUMANOIDs
  • The Root of the Problem (BG, BG2) provides additional to-hit and damage bonuses vs. GIANTHUMANOIDs and MONSTERs
  • The Cloak of the Beluir Watch provides additional AC vs. GIANTHUMANOIDs
  • Most of the 'advanced AI' NPC scripting (BG, BG2) will exclude PLANTs as a target for the Confusion spell specifically
  • PLANTs are made immune (SoD) from bleeding attacks from cornugons (including Thrix) and the items Vexation and Festering Spear
  • A few AI instances of targeting MONSTER specifically, e.g. a priest script using Flame Strike on general MONSTER. While there are many more scripting references targeting MONSTER, generally they're usually paired with additional targeting so that they would be excluding shmounds even if we changed them to be general MONSTERs. Standalone MONSTER-targeting is uncommon.

So PLANT is targeted a little more extensively in SoD than I originally thought, with both shmounds and myconids tagged as PLANT. In BG2EE myconids are MONSTERs and shmounds are GIANTHUMANOIDs, save one tagged MONSTER.

Let's open this back up: with new information in hand, what to do with the general fields of shmounds?

Link to comment

I brought up Gender at a later point that some of these are gendered as FEMALE, I guess that's also not a point of contention then, right?

TBH, my main point with this topic was to get the RACE/CLASS/GENDER changes in (which seems to be a consensus). At this point, the least intrusive solution to me sounds like using PLANT in BG1 and GIANTHUMANOID in BG2.

The problem is that transferring PLANT over to BG2 would then lead to another debate if myconids should be dragged along (with this providing the precedent), and I also share David's opinion on that sounding too much (the cornugon change would be something which also should be ported over for PLANT then...) etc. etc.

Edited by Graion Dilach
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...