Jump to content

[Discussion] SoD's new hidden spells and the effect it has on mod spellbooks and character transfers


Recommended Posts

This will be a bit complicated one.

At this point, if a player rebuilds the same spell mod changes between BG1EE and BG2EE, they can continue characters between the games without problems.

However, SoD adds a few additional spells (and even hide a few in hidespl.2da) which don't overlap with IWDification, and only partially overlap with SR, partially breaking the spell incdices between the two games. This can lead to an unsuspecting player exporting his say, SoD+IWD spells druid from the game with, just for example, two Sunscorches memorized, import it to BG2EE (which also only has the IWDification spells installed as additional ones) and end up with dummy spells because the SoD-added Fairie Fire is missing among the L1 priest spells and the Sunscorch (which is supposed to be last spell added IIRC) ends up having a smaller index and the imported character ends up with two spell slots occupied with spells they can't unmemorize.

IMO the issue belongs to the Fixpack somewhat because modders cannot assume things here reliably and I would suggest to just install and hide the SoD spells to ensure consistency in SPELL.IDS among the games, but I am also interested in how others see this problem.

(This is fairly commonplace, Bubb cleared out a savegame last month and this morning someone ran into this on Reddit as well).

Link to comment

Another somewhat related issue are multiple symbolic names for the same spell resource, which can be a source of bugs or compatibility issues. One example is Nahal's Reckless Dweomer (SPWI124), which can be referenced as WIZARD_ALARM in all games, but also as WIZARD_NAHALS_RECKLESS_DWEOMER in BG2EE. Depending on the tool you're using to (de-)compile or check scripts, or the current order of file entries, you might end up with one name or the other.

List of duplicate entries in SPELL.IDS:

Spoiler

BGEE (with or without SoD):
2924 BERESH_CHANGE
2924 WIZARD_SUMMON_PLANATAR_EVIL

2925 KAISHAS_CHANGE
2925 WIZARD_COMET

3899 RED_EFFECT
3899 ZOMBIE_SICKNESS

BG2EE:
2124 WIZARD_ALARM
2124 WIZARD_NAHALS_RECKLESS_DWEOMER

2302 WIZARD_DISPEL_MAGIC
2302 WIZARD_REMOVE_MAGIC

2705 WIZARD_KHELBENS_WARDING_WHIP
2705 WIZARD_WARDING_WHIP

2921 WIZARD_IMPROVED_ALACRITY
2921 WIZARD_IMPROVED_ALUCRITY

2924 BERESH_CHANGE
2924 WIZARD_SUMMON_PLANATAR_EVIL

2925 KAISHAS_CHANGE
2925 WIZARD_COMET

3123 DRUID_HUMAN_FORM
3123 DRUID_SHAPESHIFT_FROM_BLACKBEAR

3899 RED_EFFECT
3899 ZOMBIE_SICKNESS

4321 BERSERKER_ENRAGE
4321 BERSERKER_RAGE

4412 SET_SNARE_TRAP
4412 THIEF_SET_SNARE

4414 SET_SPECIAL_SNARE_TRAP
4414 THIEF_SET_SPECIAL_SNARE

IWDEE:
4103 AURA_OF_DESPAIR
4103 BLACKGUARD_AURA_OF_DESPAIR

 

Link to comment
1 hour ago, argent77 said:

List of duplicate entries in SPELL.IDS:

  Reveal hidden contents

BGEE (with or without SoD😞
2924 BERESH_CHANGE
2924 WIZARD_SUMMON_PLANATAR_EVIL

2925 KAISHAS_CHANGE
2925 WIZARD_COMET

3899 RED_EFFECT
3899 ZOMBIE_SICKNESS

BG2EE:
2124 WIZARD_ALARM
2124 WIZARD_NAHALS_RECKLESS_DWEOMER

2302 WIZARD_DISPEL_MAGIC
2302 WIZARD_REMOVE_MAGIC

2705 WIZARD_KHELBENS_WARDING_WHIP
2705 WIZARD_WARDING_WHIP

2921 WIZARD_IMPROVED_ALACRITY
2921 WIZARD_IMPROVED_ALUCRITY

2924 BERESH_CHANGE
2924 WIZARD_SUMMON_PLANATAR_EVIL

2925 KAISHAS_CHANGE
2925 WIZARD_COMET

3123 DRUID_HUMAN_FORM
3123 DRUID_SHAPESHIFT_FROM_BLACKBEAR

3899 RED_EFFECT
3899 ZOMBIE_SICKNESS

4321 BERSERKER_ENRAGE
4321 BERSERKER_RAGE

4412 SET_SNARE_TRAP
4412 THIEF_SET_SNARE

4414 SET_SPECIAL_SNARE_TRAP
4414 THIEF_SET_SPECIAL_SNARE

IWDEE:
4103 AURA_OF_DESPAIR
4103 BLACKGUARD_AURA_OF_DESPAIR

Guess that the goal is to have the same human-friendly identifiers across all games, right...?

I'm not sure though... I mean, on BG:EE I'd delete WIZARD_SUMMON_PLANATAR_EVIL and keep BERESH_CHANGE, whereas on BG2:EE I'd do the opposite (since the HLA is actually available there...)

Edited by Luke
Link to comment
1 hour ago, Luke said:

Guess that the goal is to have the same human-friendly identifiers across all games, right...?

I'm not sure though... I mean, on BG:EE I'd delete WIZARD_SUMMON_PLANATAR_EVIL and keep BERESH_CHANGE, whereas on BG2:EE I'd do the opposite (since the HLA is actually available there...)

Yes, one approach could be to keep the same identifiers across the games. Another option could be to prefer the name that describes the referenced spell more accurately. For example, KAISHAS_CHANGE in BG1 and WIZARD_COMET in BG2.

Since WeiDU resolves a value to the last instance found in the referenced IDS file, a simple reordering should fix it.

Link to comment

So two issues here:

On 4/27/2022 at 1:46 PM, Graion Dilach said:

IMO the issue belongs to the Fixpack somewhat because modders cannot assume things here reliably and I would suggest to just install and hide the SoD spells to ensure consistency in SPELL.IDS among the games, but I am also interested in how others see this problem.

I think this is worth addressing. It's a problem that players can conceivably run into with only a mod or two, and especially since it can conceivably be fixed with a little IDS padding.

On 4/28/2022 at 1:38 AM, argent77 said:

Another somewhat related issue are multiple symbolic names for the same spell resource, which can be a source of bugs or compatibility issues.

I'm not as sold on this. Stated at its simplest: modders already work around this, and we risk forcing them to change existing workarounds, so that future mods don't have to use workarounds. Whether we're adding, removing, and/or re-ordering, we're introducing a non-zero chance of breaking a mod--not for a bug fix, but better organized IDS files.

Link to comment
On 11/2/2022 at 7:29 PM, CamDawg said:

I think this is worth addressing. It's a problem that players can conceivably run into with only a mod or two, and especially since it can conceivably be fixed with a little IDS padding.

Yep, I have ran into it multiple times.  That's how I discovered Faerie Fire and Dancing Lights even exist in SoD. ^^

On 11/2/2022 at 7:29 PM, CamDawg said:

I'm not as sold on this. Stated at its simplest: modders already work around this, and we risk forcing them to change existing workarounds, so that future mods don't have to use workarounds. Whether we're adding, removing, and/or re-ordering, we're introducing a non-zero chance of breaking a mod--not for a bug fix, but better organized IDS files.

Just as a note, both EET and MiH: F&R contain code to automatically remove unused or duplicated entries from spell.ids.  Doing so has the advantage of freeing up several slots for new spells without hitting the 50+ spells per level bug.

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