Skip to content

New version of Sword Coast Stratagems (v33) now available

DavidWDavidW Member Posts: 823
Sword Coast Stratagems is a collection of interconnected mini-mods for Baldur's Gate (on the BGT/BGTUTU/BGEE versions) and Baldur's Gate II. It is primarily a tactical and AI-enhancement mod: the idea is to make the game's combat more interesting, tactically challenging, and realistic by more effective use of, and choices of, creatures' abilities. It also contains a few rule tweaks and ease-of-use features.

Version 33 is largely a bug-fixing release: it features fixes to 40-odd bugs and compatibility issues, including serious problems with the NPC customization component, the random scrolls component, and Death Spell (which was turning neutrals hostile). It also adds a small new cosmetic component (improved Tales of the Sword Coast textscreens), allows IWD spells to be tied to hotkeys, tweaks the shapeshifter tokens, and makes some slight changes to mage and priest AI.

Grab it direct here. You can also visit the extensive project pages, readme, or SCS forum for more information.
«1

Comments

  • OrlonKronsteenOrlonKronsteen Member Posts: 905
    nzr1621e65an.jpg
  • _Luke__Luke_ Member, Mobile Tester Posts: 1,535
    @JuliusBorisov

    Half-elves have the following traits:
    • 30% resistance against charm and sleep magics.
  • DavidWDavidW Member Posts: 823
    I've updated to v33.2 to fix a problem with the way I'm handling translations.
  • jmerryjmerry Member Posts: 3,829
    I just finished my previous run, which means - time to update to v33.

    While I'm at it, a quick bug report. It has been noted in a few places that the SCS version of Aec'Letec doesn't use its death gaze ability. Looking at the scripts ... this is due to a mistaken ability name. A relevant block from the TANARI.BCS script as modified by SCS:
    RESPONSE #200
    		SetGlobalTimer("castspell","LOCALS",ONE_ROUND)
    		SpellNoDec(LastSeenBy(Myself),TANARI_SILENCE)  // SPIN998.SPL (Silence, 15' Radius)
    		ForceSpellRES("%tanari_gaze%",[GOODCUTOFF])
    
    The problem - there's no spell named tanari_gaze, so that line does nothing. The intended ability (SPIN996, unique to Aec'Letec) has symbolic name TANARI_DEATH_GAZE. All references in the script use this erroneous name, resulting in the demon being unable to use its most famous ability at all.
  • DavidWDavidW Member Posts: 823
    Thanks, nice catch.

    (The issue isn't that there's no spell called 'tanari_gaze'; in this context, %tanari_gaze% is a variable, and the issue is that it's not being set. But why I wanted to use a variable at all, and not just use ForceSpell() and the TANARI_DEATH_GAZE ids ref, I have no recollection...)
  • jmerryjmerry Member Posts: 3,829
    edited August 2020
    On further examination ... the TANARI_DEATH_GAZE name is also used for the nabassu's paralyzing gaze in BG2EE. Presumably, the trilogy version of the game changes the name of Aec'Letec's gaze so that the two different abilities can coexist. As such, a variable is needed there.
    Post edited by jmerry on
  • DavidWDavidW Member Posts: 823
    Ah, thank you. I thought it was probably something like that but couldn't immediately track down which version of the game changed nomenclature.
  • TressetTresset Member, Moderator Posts: 8,264
    I have a question about the IWD spells component. Which spells from IWD did you decide NOT to include and why? I notice a few that seem to be missing from my BG1:EE game data, and I am not sure why they were not included (namely Malavon's Corrosive Fog and Wither). Are these spells included in BG2 but not BG1 or something?
  • jmerryjmerry Member Posts: 3,829
    An issue I've just spotted ...

    The "more consistent Breach" component modifies the Wand of Spell Striking to cast the arcane Breach and Pierce Magic spells. But in the latter case, the level the spell is cast at matters. The wand's description says that it reduces MR by 20% for two turns. As currently implemented, it reduces MR by 12-20% for a duration of 12-20 rounds, depending on the arcane caster level of the wand user.

    Recommended fix: instead of casting with mode 1, cast with mode 2 and level 20.

    Observed in SCS version 33.7.
  • jmerryjmerry Member Posts: 3,829
    edited January 2021
    Another issue with that "more consistent Breach" component:

    Rakshasas, liches, and demiliches get their immunity items modified to grant specific immunity to level 5 spells rather than blanket immunity. But there's one "level 5" spell that's on the immunity list that really shouldn't be: the secondary spell of priest True Seeing (SPPR505D).

    All forms of True Sight/True Seeing act on enemies as level 0 spells, so they work on rakshasas, liches, and demiliches in vanilla even with the blanket immunity.
    With this SCS component, wizard and inquisitor True Sight spells work normally on these monsters, while cleric/druid/shaman True Seeing and priest of Helm True Sight work only on the first pulse but not on any of the other nine rounds.

    While I'm at it, some level 5 spells that really should be added to the specific immunity list on the rakshasa/lich/demilich items:
    Greater Command (SPPR512), Hold Monster (SPWI507), Feeblemind (SPWI509), vampire Domination (SPIN883; Hexxat gets this).
    And item abilities that strike as level 5 spells:
    Cause Critical Wounds (CRITICAL), Slay Living (SLAYLIVE), Wand of the Heavens (WAND11), Wand of Frost (WAND06, BG2 version).
    Post edited by jmerry on
  • JuliusBorisovJuliusBorisov Member, Administrator, Moderator, Developer Posts: 22,724
    edited January 2021
    Huh, I always thought that was intended, as a cleric getting True Sight is much easier and happens much earlier than a wizard getting True Seeing. It would be good to get some insight into what the intended behavior is.
    Post edited by JuliusBorisov on
  • jmerryjmerry Member Posts: 3,829
    edited January 2021
    Sure, priests get True Seeing earlier than wizards get True Sight ... but spells like Oracle, Detect Illusion, Detect Invisibility, and Invisibility Purge all work against those monsters. Only priest True Seeing fails among anti-illusion divinations, and only on the later rounds.
    This is still an explicit list in the .tpa script, so a clarification of intent is welcome. I'm assuming the intent was to block the attack spells that would normally have been blocked by the blanket level 5 immunity, which is why I mentioned the spells to be added.
    The component handles the Wand of Cloudkill by blocking the Cloudkill projectile. The same approach could handle the Wand of Frost (projectile 250), but not the Wand of the Heavens or the two cleric melee spells.
    Also, slight oops - I had Chaos on the list to be added, but there's no need as it's already there. Being out of numerical order confused me.

    On to another component ...
    I've noticed for some time that the updates to insect plague allowing normal weapon protection to block it overlook Enhanced Bard Song. And now, I've figured out why.
    The code that makes the change (for temporary effects) looks for weapon immunity effects with timing mode 0. However, EBS has timing mode 10 - still temporary, but denominated in a different time unit. Check for both timing modes, and this will be fixed.
  • jmerryjmerry Member Posts: 3,829
    edited February 2021
    Continuing the bug reports, here's a pretty trivial one:

    (Component: difficulty-based random spawns in BG2. Observed in v33.7)
    The highest-level mind flayer group contains one instance of the creature "unbhul01". Since there are no Unber Hulks in the game, this does nothing and you get a group of seven enemies instead of the intended eight.

    Obviously a typo, and a one-character fix in spawn.tpa.

    Also ... not a bug, but a suggested change.
    SCS (smarter mages) removes the Shadow Armor from Mae'var, so he can cast spells. OK. The problem is, this leaves no way to get that armor at all, and it's a pretty good option early on for a non-mage thief. My suggestion: give the armor to one of his subordinates instead. In my own game, I used Zyntris (found on the ground floor, code THIEF6).
    Post edited by jmerry on
  • TrouveurTrouveur Member Posts: 495
    Tresset wrote: »
    Trouveur wrote: »
    Hi, I don't know if SCS is the culprit, but on my install (2.6 beta and SCS 33.7), Aec'Letec is immortal.

    I can kill it, but if there is no cultist left, the last Aec'Letec becomes unkillable, even with the cheat key ctrl + Y.

    I can confirm this bug. BD changed the way Aec is killed in patch 2.6 and SCS interferes with this.

    For Aec to die properly, from what I can tell, The following lines need to be added to his script (tanari.bcs):
    IF
    	!Dead("tanar")  // Aec'Letec
    	Global("TanariXP","GLOBAL",1)
    	HPLT(Myself,2)
    	HitBy(LastHitter(Myself),ACID)
    THEN
    	RESPONSE #100
    		SetInterrupt(FALSE)
    		ChangeAnimationNoEffect("tanar2")  // Aec'Letec
    		ActionOverride(LastHitter("tanar"),ApplyDamagePercent("tanar2",100,ACID))  // Aec'Letec
    		SetGlobal("TanariXP","GLOBAL",2)
    		SetInterrupt(TRUE)
    END
    
    IF
    	!Dead("tanar")  // Aec'Letec
    	Global("TanariXP","GLOBAL",1)
    	HPLT(Myself,2)
    	HitBy(LastHitter(Myself),COLD)
    THEN
    	RESPONSE #100
    		SetInterrupt(FALSE)
    		ChangeAnimationNoEffect("tanar2")  // Aec'Letec
    		ActionOverride(LastHitter("tanar"),ApplyDamagePercent("tanar2",100,COLD))  // Aec'Letec
    		SetGlobal("TanariXP","GLOBAL",2)
    		SetInterrupt(TRUE)
    END
    
    IF
    	!Dead("tanar")  // Aec'Letec
    	Global("TanariXP","GLOBAL",1)
    	HPLT(Myself,2)
    	HitBy(LastHitter(Myself),MAGIC)
    THEN
    	RESPONSE #100
    		SetInterrupt(FALSE)
    		ChangeAnimationNoEffect("tanar2")  // Aec'Letec
    		ActionOverride(LastHitter("tanar"),ApplyDamagePercent("tanar2",100,MAGIC))  // Aec'Letec
    		SetGlobal("TanariXP","GLOBAL",2)
    		SetInterrupt(TRUE)
    END
    
    IF
    	!Dead("tanar")  // Aec'Letec
    	Global("TanariXP","GLOBAL",1)
    	HPLT(Myself,2)
    	HitBy(LastHitter(Myself),SLASHING)
    THEN
    	RESPONSE #100
    		SetInterrupt(FALSE)
    		ChangeAnimationNoEffect("tanar2")  // Aec'Letec
    		ActionOverride(LastHitter("tanar"),ApplyDamagePercent("tanar2",100,SLASHING))  // Aec'Letec
    		SetGlobal("TanariXP","GLOBAL",2)
    		SetInterrupt(TRUE)
    END
    
    IF
    	!Dead("tanar")  // Aec'Letec
    	Global("TanariXP","GLOBAL",1)
    	HPLT(Myself,2)
    	HitBy(LastHitter(Myself),PIERCING)
    THEN
    	RESPONSE #100
    		SetInterrupt(FALSE)
    		ChangeAnimationNoEffect("tanar2")  // Aec'Letec
    		ActionOverride(LastHitter("tanar"),ApplyDamagePercent("tanar2",100,PIERCING))  // Aec'Letec
    		SetGlobal("TanariXP","GLOBAL",2)
    		SetInterrupt(TRUE)
    END
    
    IF
    	!Dead("tanar")  // Aec'Letec
    	Global("TanariXP","GLOBAL",1)
    	HPLT(Myself,2)
    	HitBy(LastHitter(Myself),MISSILE)
    THEN
    	RESPONSE #100
    		SetInterrupt(FALSE)
    		ChangeAnimationNoEffect("tanar2")  // Aec'Letec
    		ActionOverride(LastHitter("tanar"),ApplyDamagePercent("tanar2",100,MISSILE))  // Aec'Letec
    		SetGlobal("TanariXP","GLOBAL",2)
    		SetInterrupt(TRUE)
    END
    
    IF
    	!Dead("tanar")  // Aec'Letec
    	Global("TanariXP","GLOBAL",1)
    	HPLT(Myself,2)
    	HitBy(LastHitter(Myself),CRUSHING)
    THEN
    	RESPONSE #100
    		SetInterrupt(FALSE)
    		ChangeAnimationNoEffect("tanar2")  // Aec'Letec
    		ActionOverride(LastHitter("tanar"),ApplyDamagePercent("tanar2",100,CRUSHING))  // Aec'Letec
    		SetGlobal("TanariXP","GLOBAL",2)
    		SetInterrupt(TRUE)
    END
    
    IF
    	!Dead("tanar")  // Aec'Letec
    	Global("TanariXP","GLOBAL",1)
    	HPLT(Myself,2)
    THEN
    	RESPONSE #100
    		SetInterrupt(FALSE)
    		Kill(Myself)
    		SetGlobal("TanariXP","GLOBAL",2)
    		SetInterrupt(TRUE)
    END
    
    IF
    	Name("tanar2",Myself)  // Aec'Letec
    	!Dead("tanar2")  // Aec'Letec
    	Global("TanariXP","GLOBAL",2)
    THEN
    	RESPONSE #100
    		SetInterrupt(FALSE)
    		Kill(Myself)
    		AddexperienceParty(16000)
    		SetGlobal("TanariXP","GLOBAL",3)
    		SetInterrupt(TRUE)
    END
    
    IF
    	!Dead("tanar")  // Aec'Letec
    	GlobalGT("TanariXP","GLOBAL",0)
    	HPLT(Myself,2)
    THEN
    	RESPONSE #100
    		ClearActions(Myself)
    		MoveToObject(Myself)
    		NoAction()
    END
    

    Edit: I am attaching a hotfix for this issue. Drop it in your override if you get this problem. I would only use it in game version 2.6 and I cannot guarantee that I didn't screw up anything SCS-wise.
    I don't know how I missed your post, but thank you for the explanation and fix ! I will try it on my current playthrough.
  • jmerryjmerry Member Posts: 3,829
    I'm kind of embarrassed that it took me this long to spot ... but the v33 fire elemental token (Improved Shapeshifting) has a major inconsistency between the item description and the actual effect. No, not the 25 Dex/24 Dex discrepancy; that doesn't change any combat stats.

    According to the item description, the token has 2 APR and increased movement speed. The actual effect is 2 APR plus haste - the +1 APR kind of haste. In my current party, Cernd (pure druid) has 3 APR with his fire elemental token, and Jaheira (fighter/druid) has 4 APR with hers.

    One of those clearly needs to change. I suspect the intended stats are what's written in the description.
  • jmerryjmerry Member Posts: 3,829
    edited March 2021
    Another subtle bug:

    Enemy spellcasters, with the Improved Priests and/or Improved Mages components, often precast summon spells. The problem is, this is done with an ApplySpell() effect, which appears to not use the caster's level. For spells like Animate Dead that use that caster level, you get the minimum-level version of the summon. Even high-level foes pre-summon dinky little 20-HP skeleton warriors with nonmagical weapons and low magic resistance.
    This only applies to precast spells, but Animate Dead has such a long duration that it gets precast on any difficulty above Basic.

    Observed in v33, game version 2.5.

    And here's another one. (Component: BG2 random encounters)

    The second flail-seeking rakshasa group in chapter 6 has three lines of text that should appear over enemies' heads. However, two of those lines are attributed to a maharajah, which does not appear in the encounter. Either that creature (dw#rrak4) should be added to the encounter, or the lines should be re-attributed to a creature that's actually there.

    Same versions of everything. The relevant file is dw#random.ssl .
    Post edited by jmerry on
  • ArviaArvia Member Posts: 2,101
    edited March 2021
    I apologize if this question has been answered somewhere else, but I couldn't find it. I have installed SCS in the BG:EE folder (2.5, the version from the beamdog client) and now wonder if I have to install it in the SoD folder, too?
    I know SCS hardly changes anything in SoD, but I fear it might mess up the IWD spells or similar changes if I go from modded BG:EE to unmodded SoD, and then import to modded BG2:EE again. So, does anyone have experience and advice?
  • TrouveurTrouveur Member Posts: 495
    Arvia wrote: »
    I apologize if this question has been answered somewhere else, but I couldn't find it. I have installed SCS in the BG:EE folder (2.5, the version from the beamdog client) and now wonder if I have to install it in the SoD folder, too?
    I know SCS hardly changes anything in SoD, but I fear it might mess up the IWD spells or similar changes if I go from modded BG:EE to unmodded SoD, and then import to modded BG2:EE again. So, does anyone have experience and advice?
    Sod is like a DLC for BGEE, so installing SCS on BGEE also install it on SoD.

    But if you have bought BGEE on Steam or GoG, you first need to install modmerger (https://forums.beamdog.com/discussion/50441/modmerge-merge-your-steam-gog-zip-based-dlc-into-something-weidu-nearinfinity-dltcep-can-use) before installing any other mod.
  • ArviaArvia Member Posts: 2,101
    Trouveur wrote: »
    Arvia wrote: »
    I apologize if this question has been answered somewhere else, but I couldn't find it. I have installed SCS in the BG:EE folder (2.5, the version from the beamdog client) and now wonder if I have to install it in the SoD folder, too?
    I know SCS hardly changes anything in SoD, but I fear it might mess up the IWD spells or similar changes if I go from modded BG:EE to unmodded SoD, and then import to modded BG2:EE again. So, does anyone have experience and advice?
    Sod is like a DLC for BGEE, so installing SCS on BGEE also install it on SoD.

    But if you have bought BGEE on Steam or GoG, you first need to install modmerger (https://forums.beamdog.com/discussion/50441/modmerge-merge-your-steam-gog-zip-based-dlc-into-something-weidu-nearinfinity-dltcep-can-use) before installing any other mod.

    I know it works as a DLC, but as SoD has its own game folder, in which I didn't install SCS, I wanted to be sure. Thanks.
  • jmerryjmerry Member Posts: 3,829
    Continuing on my theme ...

    With the "Smarter Beholders" component, the spell failure portrait icon for a Hive Mother's antimagic ray lasts five times as long as the actual effect. If you're using that icon to inform your decision-making, this will cause problems.

    Why this happens ...
    In vanilla, the hive mother's antimagic effect lasts five times as long as that of a regular beholder; duration 30 instead of 6. SCS changes it to instead be more powerful with the same duration. As part of this change, the spell failure effect is externalized to a new spell dw#bhpan, used by both versions of the antimagic ray. However, the portrait icon stays with the original spells, and is left alone with its original durations. Correct for a beholder, too long for a hive mother.

    Recommended fix: move the spell failure portrait icon to dw#bhpan.

    Observed in BG2EE version 2.5, SCS version 33.7.
  • TrouveurTrouveur Member Posts: 495
    Tresset wrote: »
    Trouveur wrote: »
    Hi, I don't know if SCS is the culprit, but on my install (2.6 beta and SCS 33.7), Aec'Letec is immortal.

    I can kill it, but if there is no cultist left, the last Aec'Letec becomes unkillable, even with the cheat key ctrl + Y.

    I can confirm this bug. BD changed the way Aec is killed in patch 2.6 and SCS interferes with this.

    For Aec to die properly, from what I can tell, The following lines need to be added to his script (tanari.bcs):
    IF
    	!Dead("tanar")  // Aec'Letec
    	Global("TanariXP","GLOBAL",1)
    	HPLT(Myself,2)
    	HitBy(LastHitter(Myself),ACID)
    THEN
    	RESPONSE #100
    		SetInterrupt(FALSE)
    		ChangeAnimationNoEffect("tanar2")  // Aec'Letec
    		ActionOverride(LastHitter("tanar"),ApplyDamagePercent("tanar2",100,ACID))  // Aec'Letec
    		SetGlobal("TanariXP","GLOBAL",2)
    		SetInterrupt(TRUE)
    END
    
    IF
    	!Dead("tanar")  // Aec'Letec
    	Global("TanariXP","GLOBAL",1)
    	HPLT(Myself,2)
    	HitBy(LastHitter(Myself),COLD)
    THEN
    	RESPONSE #100
    		SetInterrupt(FALSE)
    		ChangeAnimationNoEffect("tanar2")  // Aec'Letec
    		ActionOverride(LastHitter("tanar"),ApplyDamagePercent("tanar2",100,COLD))  // Aec'Letec
    		SetGlobal("TanariXP","GLOBAL",2)
    		SetInterrupt(TRUE)
    END
    
    IF
    	!Dead("tanar")  // Aec'Letec
    	Global("TanariXP","GLOBAL",1)
    	HPLT(Myself,2)
    	HitBy(LastHitter(Myself),MAGIC)
    THEN
    	RESPONSE #100
    		SetInterrupt(FALSE)
    		ChangeAnimationNoEffect("tanar2")  // Aec'Letec
    		ActionOverride(LastHitter("tanar"),ApplyDamagePercent("tanar2",100,MAGIC))  // Aec'Letec
    		SetGlobal("TanariXP","GLOBAL",2)
    		SetInterrupt(TRUE)
    END
    
    IF
    	!Dead("tanar")  // Aec'Letec
    	Global("TanariXP","GLOBAL",1)
    	HPLT(Myself,2)
    	HitBy(LastHitter(Myself),SLASHING)
    THEN
    	RESPONSE #100
    		SetInterrupt(FALSE)
    		ChangeAnimationNoEffect("tanar2")  // Aec'Letec
    		ActionOverride(LastHitter("tanar"),ApplyDamagePercent("tanar2",100,SLASHING))  // Aec'Letec
    		SetGlobal("TanariXP","GLOBAL",2)
    		SetInterrupt(TRUE)
    END
    
    IF
    	!Dead("tanar")  // Aec'Letec
    	Global("TanariXP","GLOBAL",1)
    	HPLT(Myself,2)
    	HitBy(LastHitter(Myself),PIERCING)
    THEN
    	RESPONSE #100
    		SetInterrupt(FALSE)
    		ChangeAnimationNoEffect("tanar2")  // Aec'Letec
    		ActionOverride(LastHitter("tanar"),ApplyDamagePercent("tanar2",100,PIERCING))  // Aec'Letec
    		SetGlobal("TanariXP","GLOBAL",2)
    		SetInterrupt(TRUE)
    END
    
    IF
    	!Dead("tanar")  // Aec'Letec
    	Global("TanariXP","GLOBAL",1)
    	HPLT(Myself,2)
    	HitBy(LastHitter(Myself),MISSILE)
    THEN
    	RESPONSE #100
    		SetInterrupt(FALSE)
    		ChangeAnimationNoEffect("tanar2")  // Aec'Letec
    		ActionOverride(LastHitter("tanar"),ApplyDamagePercent("tanar2",100,MISSILE))  // Aec'Letec
    		SetGlobal("TanariXP","GLOBAL",2)
    		SetInterrupt(TRUE)
    END
    
    IF
    	!Dead("tanar")  // Aec'Letec
    	Global("TanariXP","GLOBAL",1)
    	HPLT(Myself,2)
    	HitBy(LastHitter(Myself),CRUSHING)
    THEN
    	RESPONSE #100
    		SetInterrupt(FALSE)
    		ChangeAnimationNoEffect("tanar2")  // Aec'Letec
    		ActionOverride(LastHitter("tanar"),ApplyDamagePercent("tanar2",100,CRUSHING))  // Aec'Letec
    		SetGlobal("TanariXP","GLOBAL",2)
    		SetInterrupt(TRUE)
    END
    
    IF
    	!Dead("tanar")  // Aec'Letec
    	Global("TanariXP","GLOBAL",1)
    	HPLT(Myself,2)
    THEN
    	RESPONSE #100
    		SetInterrupt(FALSE)
    		Kill(Myself)
    		SetGlobal("TanariXP","GLOBAL",2)
    		SetInterrupt(TRUE)
    END
    
    IF
    	Name("tanar2",Myself)  // Aec'Letec
    	!Dead("tanar2")  // Aec'Letec
    	Global("TanariXP","GLOBAL",2)
    THEN
    	RESPONSE #100
    		SetInterrupt(FALSE)
    		Kill(Myself)
    		AddexperienceParty(16000)
    		SetGlobal("TanariXP","GLOBAL",3)
    		SetInterrupt(TRUE)
    END
    
    IF
    	!Dead("tanar")  // Aec'Letec
    	GlobalGT("TanariXP","GLOBAL",0)
    	HPLT(Myself,2)
    THEN
    	RESPONSE #100
    		ClearActions(Myself)
    		MoveToObject(Myself)
    		NoAction()
    END
    

    Edit: I am attaching a hotfix for this issue. Drop it in your override if you get this problem. I would only use it in game version 2.6 and I cannot guarantee that I didn't screw up anything SCS-wise.
    I tried your hotfix on an EET SCS playthrough and sadly Aec'Letec remained invincible. :-(
  • jmerryjmerry Member Posts: 3,829
    A couple more things I've spotted recently:

    - The "Improved Priests" component gives precast Iron Skins to level 7+ druids. However, Iron Skins is a level 5 spell; only level 9+ druids should get the precast version. In the base BGEE/BG2EE games, there are exactly two enemy druids in the level 7-8 range affected by this (TDR8A and TDR8B, both part of Kyland Lind's group in the Druid Grove).

    - Not a bug, but a proposal to make certain AI scripts a bit smarter. "Smarter Beholders" will never, under any circumstance, use their antimagic rays on anything but party members. One of the properties of antimagic rays is that they instantly destroy illusionary creatures. An illusionary clone of a party member with the Shield of Balduran or the Cloak of Mirroring is basically untouchable, since that non-droppable item can't be yanked away. Put these together ... beholders should use antimagic rays on clones. Maybe also on any enemy with specific protection buffs against their rays, whether that enemy is a party member or not.
  • CaedwyrCaedwyr Member Posts: 176
    I recently completed a playthrough of BG1 with my games bookclub. Some thoughts about SCS

    Sword Coast Strategems: A must-have mod for a BG1 playthrough. It adds a lot more interesting encounters that are challenging, but not unfair for a wide range of difficulties (we are playing on at least 3 different difficulties and no one had major insurmountable issues with encounters or ended up finding them unfun.)
  • ArviaArvia Member Posts: 2,101
    edited April 2021
    Arvia wrote: »
    Trouveur wrote: »
    Arvia wrote: »
    I apologize if this question has been answered somewhere else, but I couldn't find it. I have installed SCS in the BG:EE folder (2.5, the version from the beamdog client) and now wonder if I have to install it in the SoD folder, too?
    I know SCS hardly changes anything in SoD, but I fear it might mess up the IWD spells or similar changes if I go from modded BG:EE to unmodded SoD, and then import to modded BG2:EE again. So, does anyone have experience and advice?
    Sod is like a DLC for BGEE, so installing SCS on BGEE also install it on SoD.

    But if you have bought BGEE on Steam or GoG, you first need to install modmerger (https://forums.beamdog.com/discussion/50441/modmerge-merge-your-steam-gog-zip-based-dlc-into-something-weidu-nearinfinity-dltcep-can-use) before installing any other mod.

    I know it works as a DLC, but as SoD has its own game folder, in which I didn't install SCS, I wanted to be sure. Thanks.

    Getting back to this issue, just in case anyone else ever runs into the same problem:
    I suppose most people use the Steam or GOG versions and therefore haven't run into the problem. In the Beamdog version, there's a folder for BG and a folder for SoD. The folder for BG contains BG and the SoD folder (the one containing SiegeOfDragonspear.exe) contains both games, which I didn't know, I thought it only contained the DLC and accessed the other folder for BG.
    I installed SCS in the BG folder, but if I start BG from the folder that contains SoD, it accesses its own BG files and SCS isn't there. Meaning: Starting BG from the black UI skin (which is necessary to transition into SoD without importing, to keep your containers etc) means SCS needs to be installed in the Beamdog Library folder that contains SiegeOfDragonspear.exe

    I guess that was obvious to anyone else but me, but just in case another clueless person like me comes around, I wanted to leave this information here. I'm just glad I checked the difficulty slider immediately to see if it was the SCS one and didn't notice it later.
  • barker262barker262 Member Posts: 75
    Tresset wrote: »
    There is an issue with Tremain Belde'ar that is created when SCS is installed in BG1:EE v2.6. This patch changed the quest to raise his son so that instead of Casson simply popping to life, Tremain actually casts the raise dead spell on Casson's body to raise him. The problem with this is that it is done by issuing him the command in a dialog action, SpellRES("SPPR504","CASSON"), which will only work if Tremain actually has Raise Dead memorized. With SCS randomizing priest spells, chances are that Tremain will not have the spell memorized. I will suggest both to you, and to @JuliusBorisov that the command in the dialog action be changed to ForceSpellRES("SPPR504","CASSON"), so that it is more reliable.

    G'day Tresset,
    The above fix for the Tremain bug (which I just encountered as well). Do you use the console to input either of those commands? I cut and paste both options and got a message that the string has a null value, what ever that means.
  • TressetTresset Member, Moderator Posts: 8,264
    @barker262 those commands were designed to be put inside the internal script file for Tremain. For a console command to force Tremain to resurrect Casson, you need to input something like this:

    C:Eval("ActionOverride(\"Tremain\",ForceSpellRES(\"SPPR504\",\"CASSON\"))")

    Enter that code into your console (you can copy/paste it directly into the console in game) and Tremain will cast Raise Dead on Casson. If you want the quest to proceed after entering the code, you must then initiate dialog with the raised Casson.
  • barker262barker262 Member Posts: 75
    Wunderbar. Thanks Tresset. How did you come across that console code? Or is it just general coding knowledge for yourself?
Sign In or Register to comment.