Jump to content

SubtleMods: 5E Spellcasting Rules Conversion


Recommended Posts

5 minutes ago, subtledoctor said:

I'll tell you... but you don't need it. The d5[ind]i.spl spells only use opcode 146 or 148 to cast the real spells. So you can set your spellstates in the regular spells and it will still take effect with my mod installed. No need for extra work here.

Thank you and makes sense! No need for me to get weird with adding spellstates if you are already casting from the regular spell.

Link to comment

Happy to help! I am probably digging into your mod at more of a technical level and am looking forward to getting these scripts running. Just had a fun mini-problem to solve for since the spells all seem to go away once one spell is cast and then reset. This was causing my pre-buffing to see there was no more spells to cast so it ended prematurely. I was able to get a timing delay in there (for my scripts), so now it will cast appropriately, and my accelerated pre-buffing still casts at near instant speeds.

Edited by morpheus562
Link to comment

Not really a bug per se, but I just noticed that 5E casting doesn’t handle one new spell, it’s a 9th-level illusionist-only spell added by TnB, basically a “Simulacrum Other” letting your high-level illusionist make a clone of any ally instead of just themselves. Since it is illusionist-only, there is no scroll for it and sorcerers cannot pick it. So this mod misses it. 

I think I need to make an easily-accessible whitelist of files to add to the system so I, or anyone else, can easy add outlier spells like this. 

Link to comment
On 2/8/2022 at 12:43 AM, subtledoctor said:

Also, more on the questionable compatibility front: now this can be installed alongside the Faiths & Powers component that lets priests choose to cast spells normally (Vancian) or like sorcerers (spontaneously). If that component is installed, the 5E casting will be installed for arcane casters only. So then you can make a cleric/mage that is:

Component 30 of Faiths and powers still recommends to not install if planning to use 5e casting.

Link to comment

I am running into an issue with properly tracking and showing a spell is cast to update the overall number of spells available. Normally, for Spell Immunity, I check if the spell is memorized and the player has it, then I force cast SI: Abjuration using either ReallyForceSpell() or ForceSpell(), then I use RemoveSpell(WIZARD_SPELL_IMMUNITY) to remove one instance of the memorized spell. I am not able to do something similar with 5e since it will remove one instance from Spell Immunity but not the rest of the castable spells. Is there something else I should be updating instead?

Link to comment
On 2/11/2022 at 9:17 PM, morpheus562 said:

Can you also add SI: Abjuration and Divination to your list?

 

2 hours ago, morpheus562 said:

am running into an issue with properly tracking and showing a spell is cast to update the overall number of spells available. Normally, for Spell Immunity, I check if the spell is memorized and the player has it, then I force cast SI: Abjuration using either ReallyForceSpell() or ForceSpell(), then I use RemoveSpell(WIZARD_SPELL_IMMUNITY) to remove one instance of the memorized spell.

I've been thinking about how to do this. I think the easiest way is to check for HaveSpellRES() to look for the 5E innate counterpart to Spell Immunity, which you already known how to do. Then, instead of casting it (since it will only bring up the subspell menu), you can force-cast:

  • SI:Abj
  • d5src-5.spl

That will reduce the caster's 5th-level casting slots by one. Though it will not update their visible number of casting slots. If you want to update the UI as well (if this is the only spell cast, so another one doesn't do it), then you would force-cast (in this order):

  • SI:Abj
  • d5src-5.spl
  • d5zz172.spl
  • d5zspld.spl
  • d5zspla.spl

The 172 spell removes all of the 5E innates, and zspld/zspla add them back in numbers that reflect the change made by d5src-5.spl.

Link to comment

Some good stuff in the works. Minor, but good. I've figured out how to give players a choice about how bonus-spell-slot items should be handled with this system: 1) bonus memorization slots only (default behavior); 2) bonus memorization and casting slots (the current option); and 3) bonus casting slots only (soon to be added).

Also have much better handling of spell-doubling items like Evermemory/Kontik's Ring/Edion's Ring: they are back to having their normal behavior for vanilla sorcerers and Vancian casters, while they get the "refresh spell slots once per day" item ability for 5E casters and multiclass sorcerers.

Also have a way for new spells to be seamlessly added to the system (and to TnB's alternate sorcerer spell-learning system) that is install-order-agnostic, the spells can be added before or after. Not sure anyone will take advantage of it, but it is nice to have it working.

Link to comment
12 hours ago, subtledoctor said:

That will reduce the caster's 5th-level casting slots by one. Though it will not update their visible number of casting slots. If you want to update the UI as well (if this is the only spell cast, so another one doesn't do it), then you would force-cast (in this order):

  • SI:Abj
  • d5src-5.spl
  • d5zz172.spl
  • d5zspld.spl
  • d5zspla.spl

The 172 spell removes all of the 5E innates, and zspld/zspla add them back in numbers that reflect the change made by d5src-5.spl.

So I added this in and it grey's out the casting button and I am unable to cast spells (of any level) until I rest again. Is there something else I am missing?

My code looks like:

ReallyForceSpell(Myself,WIZARD_SPELL_IMMUNITY_ABJURATION)  // SPWI590.SPL (Immunity: Abjuration)
SetGlobalTimer("MO_SpellCast","LOCALS",3)
ReallyForceSpellRES("d5src-5",Myself)  // No such index
ReallyForceSpellRES("d5zz172",Myself)  // No such index
ReallyForceSpellRES("d5zspld",Myself)  // No such index
ReallyForceSpellRES("d5zspla",Myself)  // No such index

Interesting observation, if I do just the following code, then it will show 1 more level 5 spell than expected in the ui. If I attempt to cast a level 5 spell, it will work and then set lvl 5 spells to have 15 castings.

ReallyForceSpell(Myself,WIZARD_SPELL_IMMUNITY_ABJURATION)  // SPWI590.SPL (Immunity: Abjuration)
SetGlobalTimer("MO_SpellCast","LOCALS",3)
ReallyForceSpellRES("d5src-5",Myself)  // No such index

 

Edited by morpheus562
Link to comment

I have this memory of something about scripts doing things in reverse order? You really want those to be in the right order - if zz172 happens after zspla/zspld, then you won’t have any more spellcasting until things reset with a rest. In normal usage, even though I have precise control over which gets cast when, I still put zspla/zspld on a 1-second delay, just in case. (That’s why you see the button blink off and on when you cast a spell.)

Link to comment

Order is always top to bottom in scripts. Adding a pause did the trick:

ReallyForceSpell(Myself,WIZARD_SPELL_IMMUNITY_ABJURATION)  // SPWI590.SPL (Immunity: Abjuration)
SetGlobalTimer("MO_SpellCast","LOCALS",3)
ReallyForceSpellRES("d5src-5",Myself)  // No such index
ReallyForceSpellRES("d5zz172",Myself)  // No such index
Wait(1)
ReallyForceSpellRES("d5zspld",Myself)  // No such index
ReallyForceSpellRES("d5zspla",Myself)  // No such index

Thank you!

Edited by morpheus562
Link to comment

I'm thinking about having the converted Sequencer spells from Tome & Blood just be an integrated part of this, rather than a separate option. Also, the revised version of Identify. Just make those changes automatically, as part of this spellcasting system.

Thoughts?

EDIT - yeah the more I think about it, the more this sounds like a no-brainer. Just, if you install the 5E spellcasting system, those spells get changed to work with the new system. It amounts to an unasked-for bonus for the most part - the new Identify can identify up to four items instead of just one, and the new sequencers can be filled with any known spell, instead of memorized spells.

Edited by subtledoctor
Link to comment

Updated to v1.6. This includes important changes to the underlying "semi-spontaneous casting" function library. Of note:

--  Tome & Blood's "Revised Identify Spell" and 5E-compatible sequencers are now included in all mods with the semi-spont library. These tweaks will be installed automatically whenever the 5E casting method is applied to arcane spells. Happily, this version of 5E-compatible sequencers and contingencies is now compatible with the four "innate sequencers" options in Tome & Blood.

-- You now have three choices as to how bonus spell-slot items like the Ring of Wizardry are handled with 5E casting:

  1. they only give bonus memorization slots (don't install anything)
  2. they give bonus memorization slots and bonus casting slots (the old option)
  3. they only give bonus casting slots (a new option)

This now gives players the chance to use what I think is the best combination: bonus casting slots only from items (here), and bonus memorization slots only from high stats (in Scales of Balance). But between this and the recent SoB update, you now have full control over how to handle bonus slots from ability scores and items.

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