Jump to content

SubtleMods: 5E Spellcasting Rules Conversion


Recommended Posts

Just FYI for anyone who is doing an install in the next ~24 hours: I've found a compatibility between this mod and the Tome & Blood Magus kit. I've fixed it already on my local machine, just need to do a crap-ton of testing with different permutations of these mods and Scales of Balance, then I'll upload a fix.

EDIT - done. Updated to version 1.8.

Edited by subtledoctor
Link to comment

If I understand things correctly, this mod replaces the identify spell with a variant that works with 5E (ie not using the vanilla "identify" dialog, which is harcoded).

It _appears_ this identify spell doesn't work (or that I didn't manage to find how it works, maybe).

On a bg2ee I only installed this

// Log of Currently Installed WeiDU Mods
// The top of the file is the 'oldest' mod
// ~TP2_File~ #language_number #component_number // [Subcomponent Name -> ] Component Name [ : Version]
~5E_SPELLCASTING/5E_SPELLCASTING.TP2~ #0 #100 // Change All Casters to 5E System: 1.8
~5E_SPELLCASTING/5E_SPELLCASTING.TP2~ #0 #901 // Bonus Spell Slot Items and 5E Casters -> bonuses to both memorization slots and casting slots: 1.8

and made a mage (non specialist).

At the start, Imoen has a second level identify spell know (but not prepared).

Later on, when my test character finds a identify spell and learns from it, he obtains a first level spell.

Both spell have the same description (including the fact that it's stated as a first level spell).

After having both of them prepare it and sleep, none of them can cast it, neither the first nor the second level version.

And the vanilla identify dialog doesn't detect the availability of the identify spell either, but I suppose that was a given...

 

EDIT: I tried selecting Identify at character creation but this one didn't work either.

setup-5e_spellcasting.debug.zip

Edited by mickabouille
Link to comment

For Imoen knowing the spell as a second level one, maybe that's this ?

  COPY_EXISTING_REGEXP GLOB ~^.+\.cre$~ ~override~
	PATCH_IF (%SOURCE_SIZE% > 0x2d3) BEGIN
	  READ_BYTE 0x273 class
	  PATCH_IF (class == 1 || class == 13 || class == 14 || class == 7 || class == 10 || class == 17 || class == 19 || class == 5) BEGIN // wizard casters
		REMOVE_KNOWN_SPELL ~spwi110~
		REMOVE_MEMORIZED_SPELL ~spwi110~
		ADD_KNOWN_SPELL ~%spell_res%~ #1 ~wizard~
	  END
	END
  BUT_ONLY

With the ADD_KNOWN_SPELL doc saying

Quote

When applied to a CRE file, this patch causes the given spell to be known. Note that spellLevel counts from 0 (e.g., you should say #2 for a third-level Fireball). Possible values for spellType are priest, innate and wizard. Example:

Maybe #1 should be identify_level instead?

Edited by mickabouille
Link to comment

When I examine charname spells in NI, I find a spell spwi126.spl with a missing name (No such index).

This part may be relevant then:

Quote

Adding spell D5_NEW_IDENTIFY
[./override/SPELL.IDS] loaded, 26285 bytes
Copying and patching 1 file ...
[5E_spellcasting/lib/semi_spont/d5tb110.spl] loaded, 466 bytes
Copied [5E_spellcasting/lib/semi_spont/d5tb110.spl] to [override/spwi126.spl]
[*.IDS] forgotten
Appending to files ...
[./override/SPELL.IDS] loaded, 26285 bytes
Appended text to [spell.ids]
Copying 1 file ...
Copied [.../inlined/null.file] to [override/add_spell.ids] (NO BACKUP MADE!)
Copying and patching 1 file ...
[./override/add_spell.ids] loaded, 0 bytes
Copied [add_spell.ids] to [override/add_spell.ids] (NO BACKUP MADE!)
Clearing the IDS map.
[*.IDS] forgotten
Added spell D5_NEW_IDENTIFY

Screenshot_20220318_123604.png

Edited by mickabouille
Link to comment

Ah - the problem is not that the spell doesn't work, only that the 5E system doesn't know to prepare it because it is added after the system does all thee necessary spell conversions. I'm pretty sure the Identify spell is being added at the end of the component, it needs to be at the beginning instead. (And yeah it should be added as a 1st-level spell, not a 2nd-level spell.

Will fix and update ASAP.

Link to comment
31 minutes ago, Graion Dilach said:

TBH that Identify issue is triggered with the TnB multiclass sorcs as well. It's a library-wide one.

I don't follow. If you install the Revised Identify spell in TnB and then install multiclass sorcerers, it works fine. If you don't install Revised Identify first, then the multiclass sorcerer component will install it automatically, but will do so out of order, as I just described. It's a very simple fix, just need to  call the function earlier.

1 hour ago, mickabouille said:

Why?

Btw it drives me batty how sometimes Weidu functions will be like "and here you put the spell level... except in this case, you have to put the spell level minus one, for no particular reason! :jump:

Edited by subtledoctor
Link to comment

@subtledoctor Sorry to keep bombarding you.

Is appears that 5e spellcasting does not work specifically for nahals reckless dweomer as this does not have a scroll and is then explicitly excluded from the addition of other spells. Is there a reason this is not allowed to be included?

There is also a separate incompatibility with level one cantrips & 5e casting again relating to nahals. This is added as a new spell directly in the clab so again wouldn't work with 5e casting, I understand that it's not possible to automatically pick up spells added this way but is there a way to add compatibility so these two mods can work together, feels like it's a case of modifying the code to include it in d5zclons and then replacing the text in the clab file with the appropriate cloned spell. Don't know if that's something that is easy to do or even possible? I hope I'm not completely misunderstanding how spells are added.

Link to comment
28 minutes ago, Enigmajazz said:

Sorry to keep bombarding you.

That's okay! I can only play the game so much, and there are too many classes and kits etc. to play everything, so there is no way to really, rigorously test everything. (I never play wild mages so they can easily escape my notice.) Effectively crowd-sourcing it is really necessary. So I always want to hear when things go wrong. Generally it's not hard to adjust it. Case in point, I wrote functions just for this sort of situation. So I just need to find the filenames for NRD, Chaos Shield, and Improved Chaos Shield (any others?), and for each of them run

LAF add_semi_spells STR_VAR new_spell = ~spwi124~ cast_spell = ~spwi124~ spell_type = ~arcane~ END
LAF add_semi_spells STR_VAR new_spell = ~spwi222~ cast_spell = ~spwi222~ spell_type = ~arcane~ END
LAF add_semi_spells STR_VAR new_spell = ~spwi723~ cast_spell = ~spwi723~ spell_type = ~arcane~ END

LAF process_semi_spells

I can write up a hotfix mod, just not right now. And I'll update this as well.

Will have the L1Cantrips version included as well.

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