Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

New Premium Module: Tyrants of the Moonsea! Read More
Attention, new and old users! Please read the new rules of conduct for the forums, and we hope you enjoy your stay!

Quick Buffing in Infinity Engine Games

JebbleJebble Member Posts: 26
Buffing is an essential and fun part of all D&D games. They give strategical choices on whether to use a spell slot on a long term effect or one that deals with an encounter more efficiently. They are also enables for some fun builds like the cleric/fighter or the mage/fighter.

In the infinity engine games some buffs last such a long time that you want to cast them after every rest, like armor, stone-skin and contingencies. Doing this after every rest quickly gets tedious, however. For example, in my current IWD2 game I cast 13 spells in total after each rest. That is a lot of time wasted just pressing buttons.

I have searched far and wide for scripts or mods that automates this process or makes it quicker both for BG2:EE, ICD:EE and ICD2, but have so far had no luck.

Therefore I come to you for advice. First of all, does any scripts for these game already exist?

If none exist, I would like to get into the modding action, to make a simple script or mod that can do this. I have never modded before, but have experience programming. If one were to create this, how should you go about it? Should it be a hotkey script, an AI script or a full fledged mod?

Comments

  • Mantis37Mantis37 Member Posts: 1,045
    I believe that there was an auto-buff script in SCS...? But not to an advanced level of contingencies etc.

  • JebbleJebble Member Posts: 26
    Mantis37 said:

    I believe that there was an auto-buff script in SCS...? But not to an advanced level of contingencies etc.

    I never got this to work properly. The problem is that you cannot make use of any other AI script when using it and you cannot choose which party members to cast the spells on. It also with personnel hotkey mappings. In addition this only works for the BG series and not the IWD games.

  • BillyYankBillyYank Member Posts: 2,769
    Summoning @semiticgod , he mentioned a custom instant buff spell he made for some of his no-reload runs.

  • JebbleJebble Member Posts: 26
    I am sad to see that there is nothing of the sort out there. I thought it was something people in general found a bit tedious.

  • subtledoctorsubtledoctor Member Posts: 11,463
    Even if you script it, AFAIK you would still need to sit there and watch the spells being cast, at normal speed. Creating the script, perfecting it to be flexible enough to cover different situations, attaching it to an ability, giving the ability to all the right characters... it's more trouble than it's worth.

    Alternatively, make a single super-spell that encompasses the effects of various other spells... but then you need to make sure you have those spells memorized, and then erase them by hand to make it simulate have cast them separately... that sounds kind of more annoying than just casting the spells. Again, more trouble than it's worth.

    The compromise I settled on, and I think lots of other people too, it simply to not buff do much. Walk around with long-term buffs active (EE 2.0+ player scripts will do this for you automatically) and then I apply one, maybe two buffs when needed. So it only ever takes 6-12 seconds. You're not constantly invulnerable to everything, so fight be one a bit more unpredictable, "stay on your toes" affairs, and you don't have to rest that much. The overall experience is smoother, more challenging, and more fun.

    Jebble
  • GrimLefourbeGrimLefourbe Member Posts: 635
    You could probably make an innate usable out of combat that gives IA and reduced spell casting time. You'd still have to select all the spells instantly but I think it'd work to reduce time spent doing it.

    It might be possible to do from an UI point as well, I believe the UI can use console commands.

    In my current playthrough, I only cast Stoneskin and I bound it to a hotkey so it's quick. You can do it for most spells I believe.

    subtledoctorJebble
  • JebbleJebble Member Posts: 26

    Even if you script it, AFAIK you would still need to sit there and watch the spells being cast, at normal speed. Creating the script, perfecting it to be flexible enough to cover different situations, attaching it to an ability, giving the ability to all the right characters... it's more trouble than it's worth.

    Alternatively, make a single super-spell that encompasses the effects of various other spells... but then you need to make sure you have those spells memorized, and then erase them by hand to make it simulate have cast them separately... that sounds kind of more annoying than just casting the spells. Again, more trouble than it's worth.

    The compromise I settled on, and I think lots of other people too, it simply to not buff do much. Walk around with long-term buffs active (EE 2.0+ player scripts will do this for you automatically) and then I apply one, maybe two buffs when needed. So it only ever takes 6-12 seconds. You're not constantly invulnerable to everything, so fight be one a bit more unpredictable, "stay on your toes" affairs, and you don't have to rest that much. The overall experience is smoother, more challenging, and more fun.

    This is what I was afraid of. I am a bit of a power gamer, so I have a hard time not applying the great long term buffs like protection from evil, chaotic commands and stoneskin. And it has been bearable to cast these. In IWD2 however, you need to cast so many longterm buffs to stay effective and I am about to quit that game now solely because of this.

    You could probably make an innate usable out of combat that gives IA and reduced spell casting time. You'd still have to select all the spells instantly but I think it'd work to reduce time spent doing it.

    It might be possible to do from an UI point as well, I believe the UI can use console commands.

    In my current playthrough, I only cast Stoneskin and I bound it to a hotkey so it's quick. You can do it for most spells I believe.

    This seems look are good solution. It should speed up the process considerably. Thanks! I will look into it.

  • subtledoctorsubtledoctor Member Posts: 11,463

    You could probably make an innate usable out of combat that gives IA and reduced spell casting time. You'd still have to select all the spells instantly but I think it'd work to reduce time spent doing it.

    This sounds like a near-perfect solution. Aura cleansing + a -9 bonus to casting time, give it a short duration - ~4-6 seconds - and tick the non-combat flag in the .SPL file. (And don't start the fight until those 4-6 seconds are up. Maybe apply some visual effect as well, like the Blur effect, so it's obvious when the time is up.

    You'd have to give it global effects with 172 and 171 effects to remove and replace itself, in order not to limit it to being once per day.

    Only real problem is that it would clutter up your innate abilities bar. Maybe in the ability header, set it to appear with spells instead of innates. That way it is always in the same place. And the point is for it to make it easier for you to cast a few spells, so it makes sense you would find it next to your spells...

  • kjeronkjeron Member Posts: 2,132
    You can use a combination of "ReallyForceSpell()" and "RemoveSpell()" actions in place of the "Spell()" action to force it to be instant in a script.

  • semiticgodsemiticgod Member, Moderator Posts: 14,077
    I didn't notice I had been summoned by @BillyYank until now... I do in fact use custom auto-buffing spells.

    I use two spells. The first rests the party and grants Improved Alacrity and +20 to casting speed. This means you can just click each buffing spell manually and cast it instantly without any pauses.

    The second spell casts spells from a list. All of them cast simultaneously, but you have to tweak the spell in Near Infinity to make sure the caster is getting the right spells.

    Attached are both spells. You can assign them with EEKeeper, and they will appear in your Innate Abilities spell list (if the character in question has no innates, it won't show up; the icon will be black). Use "Lay on Hands" to allow instant casting of any spell for 6 seconds, for the whole party. That's the simpler option; it requires no modding.

    Use "Spell Shield" to allow an individual party member to cast all their buffs at once. That's the faster option; it requires customization.

    To customize "Spell Shield," open "AURA002" in Near Infinity. It should have a list of "Cast Spell" effects, each of which has a spell name in the "Resource" line. Go to "Resource" and replace what's there with the buffs you want. All of them will cast instantly when you use it in-game. You can create extra copies of the spell if you want different buffs for each party member.

    If you don't use Near Infinity, you can just use "Lay on Hands" instead. It's almost as quick, and also eliminates the need for resting and healing between battles.

    Jebble
  • JebbleJebble Member Posts: 26
    Sorry for my late response. I had a small hiatus from Baldurs Gate and didn't check the forums.

    This looks awesome @semiticgod. Thank you for your response. I've got both AURA001 and AURA002 to work. Took me some time before I realized I just had to put them in the override folder. I just got acquainted with near infinity and can edit both spells. AURA001 was edited to have a bit longer duration, as it was too short to cast all the spells. I also removed the resting portion of the spell, so it can be used when applying short term buffs before a battle. Only problem with it, is the fact that you have to click the innate ability button. Do you know of any way to assign the ability to a hotkey? That would be super sweet.

    AURA002 I haven't gotten too work well. I have a couple of question regarding that spell.

    1. Does the spell only work on characters who has the ability given? So if each character should have a buff, should I apply AURA002 ability to each character independently and then activate the ability for each party member?
    2. Can the spell somehow subtract spell slots from characters, or should I just prepare one less spell for each buff spell used?
    3. Does party wide spells work on the whole party? When trying, it seems that they don't? Do I do something wrong?

    As the last question, I would like to know if you have and experience with trying to convert these spells into IWD2? Dale Keeper can't detect them when putting them into the overwrite folder, even when tweaking them a bit in Near Infinity. Maybe I should just convert some other useless spell to have the quick casting effects.

    Even If I can't edit AURA002 to be useful, AURA001 is still very nice. Thanks!

  • semiticgodsemiticgod Member, Moderator Posts: 14,077
    @Jebble: No hotkey possible for the spell itself, but you can assign a hotkey for the Innate Abilities icon, which will save you a single click. You could also change AURA001 or AURA002 to be a mage spell or cleric spell (make sure "Ability location" is set to "Spell slots" instead of "Innate slots" in Near Infinity) and therefore put it in a quick spell slot, right next to the moon and star on your toolbar at the bottom of the screen in-game. This will also save you a click.

    Or you could rename AURA001 as SPWI111, in which case it would completely replace the Infravision spell (or whatever spell you named it to), allowing you to cast it via hotkey. Just make sure you don't replace a spell you might want.

    1. AURA001 should be party-wide. It rests and grants Improved Alacrity to speed up manual buffing. I think you can make AURA002 party-wide as well (you would need to change the "Target" field in Near Infinity, but I prefer to create multiple different copies of AURA002 for each party member. That is, a fighter will have a buffing spell that casts Chaotic Commands and Death Ward, as if the party cleric was casting it on them, while a mage will have a buffing spell that casts Stoneskin and Shield.
    2. You could rig it to subtract spell slots, but unless you're a sorcerer, they might delete spells besides the ones you want to vanish. I keep all spell slots filled, in case I get caught by surprise and it wouldn't be fair for me to buff instantly. I just remember not to re-cast spells I've already cast using the buffing spell.
    3. Party-wide spells usually affect the party by using a special invisible projectile, which has roughly the range of a Fireball spell. If one of your party members is too far away, or is around a corner, they won't get affected.
    4. I've never been able to create or edit spells in IWD2. A lot of stuff is hard-coded, and almost nothing will translate if copied over from the other games; IWD2's 3rd edition engine works a lot differently. That said, I've been able to create custom buffing items that grant improved alacrity and +20 to casting speed while equipped.

  • JebbleJebble Member Posts: 26
    Thank you @semiticgod for your quick and thorough answer. Your help is truly appreciated.

    Changing AURA001 to a useless spell (like Infravision), might not be a bad idea. This is a really great suggestion, and should be easy to do with Near Infinity. This is actually what I did in IWD2, where i put the effects of AURA001 into Armor of faith. It works perfectly and without any problems. I gave my cleric extra level one spell slots, so he could memorize an ample amount of Armor of Faith.

    1. It is probably the best to have a unique ability for each party member when it works this way.
    2. Too bad. Shouldn't be too much of a problem keeping track of it yourself, however.
    3. Ahh, I see. I'm new to Near-Infinity, so I missed which value that defined the AoE.
    4. Doesn't work with custom spells, but adjusting already existent spells work, as explained above.

    AURA001 works really well, but AURA002 seems like a lot of work if each party member only needs two buff spells on average. With AURA002 you also need to keep track of the level of the caster, it seems, and you to level it up every-time your party raise in level.

    semiticgod
Sign In or Register to comment.