Skip to content

[MOD] Jimfix - Ascension + SCS fixes, general tweaks - UPDATED FOR SCS v33

BanananautBanananaut Member Posts: 25
edited September 2020 in General Modding
The current version is v3.1a.


This is a small collection of fixes and tweaks for an Ascension + SCS v33 install. It is compatible with BGT on the classic versions of the game and with the Enhanced Editions.

Fixes:
  1. Shield of Reflection works on SCS Flame Arrows
  2. Fix incorrect casting animations
Tweaks:
  1. Add spell school notifications to the combat log
  2. Add expiration notifications for buffs
  3. Add expiration notifications for item buffs
  4. Reveal all hidden doors
  5. Allow Spell Shield to block Wish Breach and Mordenkainen's Disjunction
Full Readme:


This is a small collection of fixes and tweaks aimed at an Ascension + SCS v33 install.

--- Shield of Reflection works on SCS Flame Arrows ---

In vanilla, the Reflection Shield reflects the mage spell Flame Arrow. SCS
mages are scripted to act as if this is the case. However, with the "Make
Protection from Normal Missiles affect some magical projectiles" component,
the Reflection Shield does not actually reflect Flame Arrow. This component
re-adds that ability to the Reflection Shield.

--- Fix incorrect casting animations ---

In the vanilla game, several spells have casting animations that don't match
the actual school of the spell. The Fixpack fixes some of these but misses
others. This component takes a broad approach and checks each standard mage
and priest spell individually. If the casting animation does not match the
spell school, the casting animation is changed.

This component also fixes a vanilla bug where the spell Conjure Animals is
erroneously set as an Enchantment spell.

This component may be overkill. It provides of a listing of all the changes it
makes so if you don't like some of them, you can uninstall the component.

--- Add spell school notifications to the combat log ---

By paying attention to the casting animation or by listening to the casting
sounds, it is possible to determine the school of the spell a mage or priest
is casting. This tweak makes this information clearer by adding a message to
the combat log as well. It should be installed after any component that
modifies spells and combines well with the component that fixes incorrect
casting animations. You can pick the minimum casting speed of spells that you
would like this tweak to affect.

There are two issues with this tweak:
1) It works by modifying the spells so it applies to your spells as well as
enemy spells.

2) It does not take into account the fact that some enemies have innately
lower casting times for spells. The intent of this tweak is to not provide you
with any information that you didn't already have access to, but this may not
always be the case.

If there are any spells that are not affected but should be, or should be
affected but are not, please let me know.

--- Add expiration notifications for buffs ---

This component adds periodic reminders to the combat log for when spell buffs
are about to expire. The reminders come when there are 120, 60, 30, 12, and 6
seconds remaining in the buff. I can add other options if there is interest.

And again, please let me know if this component affects spells that it
shouldn't or if it doesn't affect a spell that it should.

--- Add expiration notifications for item buffs ---

This is the same as the previous component except with buffs from items.
Mostly this affects potions and protection scrolls, but it also includes
the Greenstone and Shield Amulets.

--- Reveal all hidden doors ---

This component sets all hidden doors to be immediately selectable so that you
don't have to wait for a character to detect them.

--- Allow Spell Shield to block Wish Breach and Mordenkainen's Disjunction ---

With SCS changes to the spell system, the Breach from Wish and the complete dispel
from fallen solar's Mordenkainen's Disjunction are both completely unblockable.
This component allows Spell Shield to block them as it would block any other
anti-magic attack.

This component does not seem to be necessary on EE installs, but should still be necessary for Classic installs.

Notes: It seems pretty much everyone else has moved on to the Enhanced Editions, so I have as well. Everything should still be compatible with the Classic versions of the game, but they won't be my main focus for testing anymore. Versions 3.0 and up are intended for SCS v33 and above. If for some reason you are sticking with SCS v30, the last version that was compatible with v30 can be found HERE.

Help with translations is welcome. Just submit a pull request to the GitHub repository.

Thank you to Arkie for the Russian translation.
Post edited by Banananaut on
«1

Comments

  • BlackravenBlackraven Member Posts: 3,486
    Hi everyone, this thread is one I had wanted to create before, but somehow I'd forgotten about it. Thankfully, a couple of days ago @lunar unintenionally reminded me, when he asked me about my mod setup in my current no-reload run with Bardin the Gnomish Cleric/Thief as detailed in the no-reload thread. Lunar was particularly interested in the fact that whenever a wizard or priest casts a spell in my setup, my combat log mentions the school of magic the spell is from as soon as the caster starts any incantation with a casting time of >1. This screenshot is an example. Tolgerias casts PfMW, which is a spell with a casting time of 1, so no notification in the combat log. Bardin on the other hand, casts Fire Storm, with a casting time of 9 (4 in the case of my character thanks to the Robe of Vecna and the Amulet of Power), so the combat log says "Bardin: is casting an Evocation spell" before the spell is actually cast. This is useful information because it can help the player deduce or at least guess the spell that's about to be cast, and take possible countermeasures in the meantime, such as casting a Spell Immunity or quaffing a certain potion. (Of course, if one can hear the incantations and knows what schools they stand for, one can draw the same conclusions without any extra information in the combat log.)
    This little modification and several others are part of a larger mod by GrimJim, who frequents the Bioware Baldur's Gate forums. Some of the mod's components are fixes, others are tweaks. I'm particularly fond of a tweak that gives reminders in the combat log of the time left until a spell expires.

    You can download the mod here. Here's the readme:
    This is a small collection of fixes and tweaks aimed at an Ascension + Fixpack v10 + SCS v30 install. It should be smart about not letting you install components you don't need, but you should still pay attention. I do not have a copy of BG2 EE so please tell me if any additional issues arise in that
    version of the game.

    --- Fix Sunfire Power Levels ---

    The damage effects on the level 10 version of Sunfire incorrectly have a power level of 3. The primary effect of this is that they will be blocked by a Minor or regular Globe of Invulnerability. The level 11 version also has one of its
    damage effects set to power level 6. The component fixes both errors.
    Credit to Alesa_BH for noticing this.

    --- Enable Spell Immunity in Sequencers/Triggers ---

    TobEx is intended to allow you to place Spell Immunity into Contingencies and Triggers. However, this functionality is not enabled by default. This component enables it.

    --- Shield of Reflection works on SCS Flame Arrows ---

    In vanilla, the Reflection Shield reflects the mage spell Flame Arrow. SCS mages are scripted to act as if this is the case. However, with the "Make Protection from Normal Missiles affect some magical projectiles" component,
    the Reflection Shield does not actually reflect Flame Arrow. This component re-adds that ability to the Reflection Shield.

    --- Fix Smarter Abazigal ---

    In previous versions of Ascension + SCS, when Abazigal turned in to a dragon he would also spawn a purple dragon named Tamah. In SCS v30, Tamah does not appear if you have installed the Smarter Abazigal component. Abazigal also has the wrong script which may make him unreasonably difficult to kill for some parties. This component fixes both glitches.
    Credit to Mad Mate on the G3 forums for help with this fix.

    --- Fix Smarter Irenicus at the Throne ---

    A scripting glitch causes Irenicus to be completely harmless during the opening fight at the Throne of Bhaal if you have the component that adds SCS AI to him. This component fixes this.
    Credit to Alesia_BH for noticing this and to Aasim for help with this fix.

    --- Remove Entourage from Ascension Fallen Solars ---

    In the original Ascension version of the first fight at the Throne of the Bhaal, you must fight two Fallen Solars. As of SCS v25, the Smarter Celesitals Component causes both of these Fallen Solars to additionally spawn with two
    Mariliths, a Succubus, and an Alu-fiend. While it has not been officially confirmed, there is significant evidence to suggest that these extra demons are unintentional. This component removes them.

    --- Fix incorrect casting animations ---

    In the vanilla game, several spells have casting animations that don't match the actual school of the spell. The Fixpack fixes some of these but misses others. This component takes a broad approach and checks each standard mage and priest spell individually. If the casting animation does not match the spell school, the casting animation is changed.
    This component also fixes a vanilla bug where the spell Conjure Animals is erroneously set as an Enchantment spell.
    This component may be overkill. It provides of a listing of all the changes it makes so if you don't like some of them, you can uninstall the component.

    --- Prevent silent prebuffs ---

    Under certain conditions, SCS smarter mages will silently cast some long duration prebuffs. This component changes this behavior to always display these prebuffs in the combat log.
    Since this compnent modifies the very long SCS mage scripts, it may take a minute or so to install.

    --- Add spell school notifications to the combat log ---

    By paying attention to the casting animation or by listening to the casting sounds, it is possible to determine the school of the spell a mage or priest is casting. This tweak makes this information clearer by adding a message to
    the combat log as well. It should be installed after any component that modifies spells and combines well with the component that component that fixes incorrect casting animations. You can pick the minimum casting speed of spells that you would like this tweak to affect.
    There are two issues with this tweak:
    1) It works by modifying the spells so it applies to your spells as well as enemy spells.
    2) It does not take into account the fact that some enemies have innately lower casting times for spells. The intent of this tweak is to not provide you with any information that you didn't already have access to, but this may not
    always be the case.
    If there are any spells that are not affected but should be, or should be affected but are not, please let me know.

    --- Add expiration notifications for buffs ---

    This component adds periodic reminders to the combat log for when buffs are about to expire. As with the previous component, it works by modifying the spells so it will affect your spells as well as enemy spells.
    The reminders come when there are 120, 60, 30, 12, and 6 seconds remaining in the buff. I can add other options if there is interest.
    And again, please let me know if this component affects spells that it shouldn't or if it doesn't affect a spell that it should.

    As you can gather from the readme, the mod was written for the original saga, but I haven't run into any issues with EE. I still need to test the ToB components though, which I will now that my character's in ToB. Also, I haven't tested the Sunfire fix yet (maybe that bug had already been fixed in EE anyway).
    All the components can be installed separately, so people who don't play with SCS or Ascension for example, can skip the SCS/Ascension-specific fixes, and install only the Sunfire, Spell Immunity, and casting animation fixes, and the spell school notifications and/or expiration notifications tweaks.

    I'm posting this in General Discussions, so that more people will be likely to notice this little known mod. After some time I'll move the thread to the Mods section. I've thanked GrimJim at the Bioware Forums, and I'm thanking him here again, in case he reads this. Hopefully some of you fellow forumites will enjoy the mod as much as I do.

    I'll also let you know if I run into issues in my current run through ToB.
  • lunarlunar Member Posts: 3,460
    Amazing really, what modders can accomplish with bg today. I believe bg2 has become the single most moddable/modular game, every person can build his own bg2 according to his style and wishes. Most interesting tweaks and fixes here, thank you for the sharing! :)

    I have never noticed silent mage buffs in scs though. I would have wished for it, actually. Not knowing what the enemy is buffed with will be more realistic and up the challenge. I can check the combat log to see if an enemy has spell immunity:abjuration or divination. Realisticaly, my character should not know it at all until he tries to cast a breach or true sight and when one of them fails.
  • BlackravenBlackraven Member Posts: 3,486
    Yep, the game's easy and broad customizability is a great thing :)

    As to the silent (hidden) buffs, I had never noticed such game behavior myself either, but one or two no-reloaders at Bioware ran into it last year.
  • gorgonzolagorgonzola Member Posts: 3,864
    Thanks you and to the modder. I did not know that mod and I find it very interesting, I appreciate also the modularity, I like mods that propose things and don't impose them (mods like SR and IR are a different matter as they propose a whole rebalancing of an aspect of the game so have a good reason to be taken or refused as a whole thing).
    The detectable school of the spells in the combat log is also very useful for the new players, a good way to introduce them to a more informed use of the magic system.
  • lunarlunar Member Posts: 3,460
    Well, even IR and SR can be modified to exclude changes you don't like. Don't like the change to a spell or item, just delete that spell's or items file from your override folder and it should revert to the default behaviour. Or, pick up dltcep and use it yourself to customise everything to your tastes, it is super easy to use! That's why bg2 is my favourite game.
  • gorgonzolagorgonzola Member Posts: 3,864
    edited January 2016
    Is true, and sometimes I use dltcep to modify spells and items, more often just to look inside them when their description is not clear or wrong.
    But my point was that IR and SR have a global approach and set a new balance so is good that they give it as a whole, without sub components, opposite to other mods that impose to you the modder choices also when there is no global approach reason to do it. Improved Anvil is a good example of that, is something similar to Tactics or SCS (for the type of change, not the way they implement it) but doesn't have sub components.
  • agb1agb1 Member Posts: 249
    This mod has been added to BiG World Setup (https://forums.beamdog.com/discussion/comment/704157)
  • dady977dady977 Member Posts: 13
    All of these are amazing tweaks and necessary fixes, thank you!
  • Blind_VisionaryBlind_Visionary Member Posts: 203
    @Blackraven, @Serg_BlackStrider - Do either of you know if there is another place to download this mod? The link above looks like it has expired.
  • Serg_BlackStriderSerg_BlackStrider Member Posts: 211

    @Blackraven, @Serg_BlackStrider - Do either of you know if there is another place to download this mod? The link above looks like it has expired.

    I just realized that his Dropbox link doesn't work anymore and he is unavailable via e-mail we had a conversations before. I want to get his permission to share his mod via my Google Drive but at the moment I can't do that. I dare to share a link here for now but will continue my attempts to connect him and if he will be against this sharing I'll remove it.
  • PokotaPokota Member Posts: 858
    Blackraven mentioned that the original components were from a mod by GrimJim. Which mod was that?
  • islandkingislandking Member Posts: 426
    The spellcasting combat log is great, though I guess that does lower difficulty in some ways that we know what exactly enemy caster is doing instead of just guessing from the casting visual effects, it's like, if Davaeorn's busy casting Know Alignment (just saying), then we'll say "go ahead just do it while we may use this free round to prepare some summons and buffs while you do so instead of interrupt whatever we're doing right now to interrupt you " :)
  • islandkingislandking Member Posts: 426
    Another thing is, you may still consider adding "someone is casting something" log for spells of casting speed 1 because they can still be interrupted.
  • PokotaPokota Member Posts: 858
    The spellcasting notification are so awesome to have in IWD. What needs to be changed for IWD compatibility with the Buff Expirations?
  • JuliusBorisovJuliusBorisov Member, Administrator, Moderator, Developer Posts: 22,754
    Tagging @GrimJim here - most likely, the author would like to say a few words about the mod (and how to distribute it).
  • BanananautBanananaut Member Posts: 25
    edited October 2017
    EDIT: Ignore
    Post edited by Banananaut on
  • BanananautBanananaut Member Posts: 25
    edited October 2017
    Pokota said:

    The spellcasting notification are so awesome to have in IWD. What needs to be changed for IWD compatibility with the Buff Expirations?

    I don't have IWD so I don't know exactly what would need to be done. Does it install at all when you try?

    I ended up just manually specifying all the spells it should apply to. Line 72 of jimfix/lib/expirations.tph begins listing of all of the ones that affect only the caster and line 96 begins listing all of the ones that affect a target. You might be able to just replace those lists with ones appropriate for IWD.
    Post edited by Banananaut on
  • TressetTresset Member, Moderator Posts: 8,268
    @GrimJim I could merge this entire thread with the one you created in the modding section if you want. Let me know if you want me to do that.
  • BanananautBanananaut Member Posts: 25
    @Tresset Yes, that would be a good idea. Thank you.
  • TressetTresset Member, Moderator Posts: 8,268
    It is done.
  • StefanOStefanO Member Posts: 346
    jimfix is playable in BG:EE when installed within the second part (BG2) of a EET installation. Installing jimfix in a pure BG:EE installation fails:

    ERROR locating resource for 'COPY' Resource [SPPR730.SPL] not found in KEY file: [./chitin.key] Stopping installation because of error. Stopping installation because of error. Stopping installation because of error. ERROR Installing [Add expiration notifications for buffs], rolling back to previous state Will uninstall 16 files for [jimfix/setup-jimfix.tp2] component 300. Uninstalled 16 files for [jimfix/setup-jimfix.tp2] component 300. ERROR: Failure("resource [SPPR730.SPL] not found for 'COPY'")
    No other mods were installed.

  • BanananautBanananaut Member Posts: 25
    @StefanO I just uploaded a new version that should fix that. Thanks for the bug report.
  • StefanOStefanO Member Posts: 346
    V2.3 installs perfectly on BG:EE. Thank you for your quick help.
  • BanananautBanananaut Member Posts: 25
    I just posted a new version with a new component that adds expiration notices to item buffs. Primarily this means potions and protection scrolls, but it also includes the Shield and Greenstone Amulets.
  • BanananautBanananaut Member Posts: 25
    edited November 2017
    EDIT: Disregard.
    Post edited by Banananaut on
  • ALIENALIEN Member Posts: 1,271
    @GrimJim IF you have questions about Spell Revisions and Item Revisions, you need to ask at appropriate forums:
    http://gibberlings3.net/forums/index.php?showforum=153
    http://gibberlings3.net/forums/index.php?showforum=157
  • CahirCahir Member, Moderator, Translator (NDA) Posts: 2,819
    @GrimJim do you plan to traify this mod for further translations? I'd like to translate it to Polish, because it's really nice little tweak mod :)
  • semaj577semaj577 Member Posts: 1
    Hi. Testing the mod for bg2-tob, i found than the "Add expiration notifications for buffs" component actually fails to work properly when you cast multiple buffs in the party: it start the count in the first buff, but then the next buffs start only when the first is expired, and even when all buffs are expired -aparently, it doesn´t detect the spells itself, it just a counter than is activated in the casting time, but in this case, is activating when the buffs are expired. This is a problem when cast multiple buffs, the first counter is correct and the nexts, no-. Is a good help for fights, but at this moment, the messages are incorrect and still appears even when all the buffs are gone and even outside fights (celerity, strenght, etc). Maybe a little update is needed.
  • Minsc2017Minsc2017 Member Posts: 34
    Hi Jim, thanks for this mod. Spell expirations is indispensable for my ironman runs.

    One question if you happen to see this. There are a number of spells that begin with the effect "Removal:effects specified by resource ___" opcode 321. They're all for the purpose of preventing spell stacking as far as I can see.

    e.g. SPPR111 Armor of Faith's first effect is Removal:effects for resource SPPR111, etc. Same for spells like Protection from Fire SPPR306, and unfortunately, many of the new spells from IWD Divine Spells mod which I like to use and which I've manually added to your expirations.tph

    So your effects are written to the .spl but are effectively ignored in-game for these spells.

    A work around would be for spell expirations to write the new expiration text effects at the end of the spell's existing effects, rather than at the beginning. If I manually move your effects to the end of the list (or, of course, just anywhere after the opcode 321 effect) then everything works as desired.

    I know some patch functions like ADD_SPELL_EFFECT have an insert_point option that, when negative, write at the end of the effects instead of the beginning. But I don't know enough modding to change your patch functions in expirations.tph to achieve this myself. Adding this option or pointing me to some code would be greatly appreciated.

    Either way, Thanks!
Sign In or Register to comment.