You can just iterate down the mxspl*** table and find the first non-zero entry to determine when a class gets access to a spell level. I think the number of mods that change these levels currently number zero, so I wouldn't worry too hard about it. There are mods, however, that may grant spells beyond vanilla levels (Minsc got a 6th level spell on my last run w/Tweaks' IWD ranger tables component), which would be something you'll need to address.
The engine does not remove spells once granted, so unless you have an active mechanism to remove them you could hand out complete divine spellbooks at level 1. The only reasons not to is that it looks awkward and could cause complications for restricted spells being granted too early, e.g. giving Holy Word early to Player1 and then having him/her fall to evil during the Hell trials.
That's not too bad of an idea. Iirc, characters already have all ' universal' spells at first level (at least in one game version)
Thanks to all for quick helpfull answers. I've tested it and indeed there is no issue at all (asides from the spellbook filling little bit earlier). Now let's just cross fingers it won't nerf or even bug SCS casters.
Hello, discussion here seems to be a lot about development. I have a question about use of this mod, feel free to delete this post if it's not the right place to ask.
First off, love these mods. Having all of these different kits really makes this game more unique and immersive for me. Five stars!
//
My problem is this: I have created a Dwarven Fighter/Cleric of True Neutral alignment, with the purpose of making them an Alaghor of Clangeddin.
I installed the component option "new kits through dialog" rather than "through menu", and I'm wondering if there is some story event where I will be allowed to advance/change my characters class?
Many other kits were available during character creation, but when I chose to multiclass my Alaghor, no kit was available to choose.
I'm about to finish the Vale of Shadows and want to make sure not to advance too far if I messed something up at character creation.
Also, she's level 4 in cleric and only has two spells! One level 1 (cure light wounds) and one level 2 (i don't remember off hand, haven't used it much).
Thank you!!
//
If it's helpful, I'm running the EE and my load order for mods looks like this.
Lavalt Runescarred Faiths and Powers Might and Guile Tome and Blood tweaks anthology (didn't use any combat/progression modifiers) SoB
Just a heads up, I've updated the official beta release to 0.71. This includes all of the fixes we've talked about for the last month or two. It also includes separate usability/proficiency variables for every weapon type, with the exception of clubs and staffs which are lumped together.
I cam very close to deprecating the "install option 1" component which puts only the archetype kits in menus and has you choose a deity in-game through a dialogue. Then I relented and left it in for IWDEE and SoD players. We can remove it when those games are updated with scroll bars in the kit menus.
This update does not address the problems that have been identified with dual-classing. That will take some time to figure out.
Cheers!
Op link updated. I'll update the quick reference excel when I get a chance
How would the choose deity kit operate, just a list of deities to choose from? The possibility of a little in depth dialogue that adds some background to the bio and what is drawing a character to a specific deity would be interesting.
I just tried creating a FTR / Elementalist dual class in BGEE. Became 3rd lvl Fighter and then dualled to Elementalist. It shows I can select Scimitar as a proficiency (for Mystics -> Occultist which is where the Elementalist currently falls), but then scimitar in my inventory are red and cannot be equipped.
Or at any rate the parameters are different, and the results are therefore different as well. Whether the kit in my 2nd, cleric class is a single-class kit or a multiclass kit, I can raise my proficiencies in any weapon category. I am not constrained by the kit's restrictions in either case.
I think this is because we had to enable proficiency with all weapons for the trueclass cleric in order to make non-standard options be available for kits. If this is the case then we might need to restrict the trueclass (maybe to just a small set like club/staff/dagger/sling), and bundle a UI mod with FnP like this one: https://forums.beamdog.com/discussion/59647/mod-unhide-chargen-options
That's getting a bit away from the core mission of FnP, but it appears that it might be necessary thanks to the 2.0 changes to the proficiency screen... I bet this works just fine on IWDEE.
And of course, as far as I'm aware UI tweaks like that cannot be done with a Weidu installer - I mean look at these install instructions for the linked UI mod:
1. Download the zip file from the bottom of this post and unzip it into your override folder
2. Backup your UI.menu file, then open it up for editing
3. First, we'll make the race, class, kit, alignment, and racial enemy list rows a bit narrower so we can fit more options in there.
3a) Search for all instances of "area 0 0 340 44" (without quotes) and replace them with "area 0 0 340 32".
3b) Search for all instances of "rowheight 44" and replace them with "rowheight 32".
4. We need to ensure that the mod maps out all the available character options at the start of the character creation process. Search for the following code segment: name 'CHARGEN' align center center ignoreesc Below it, insert the following code: onOpen "generateAllChargenOptions()"
5. Now we'll make some changes to the class menu to restore the hidden classes. Search for name 'CHARGEN_CLASS'
5a) A few lines below, replace the onopen segment (the whole line) with the following code: onopen " lastChargenClass = nil currentChargenClass = nil if (createCharScreen:GetCurrentStep() == const.STEP_DUALCLASS_CLASS) then allChargenClasses = chargen.class allChargenOptionsGenerated = false end "
5b) A few lines below, replace text lua "Infinity_FetchString(chargen.class[rowNumber].name)" with text lua "Infinity_FetchString(allChargenClasses[rowNumber].name)"
5c) Directly below the label segment that includes the above line, insert: label { area 0 0 340 32 rectangle 1 rectangle opacity 180 enabled "getClassDisabled(allChargenClasses[rowNumber].id)" }
5d) Two lines below, replace the action segment (including the two quotation marks and everything between them) with: actionUpdate " if (allChargenClasses[currentChargenClass] and getClassDisabled(allChargenClasses[currentChargenClass].id)) then currentChargenClass = lastChargenClass else lastChargenClass = currentChargenClass end if (allChargenClasses[currentChargenClass]) then createCharScreen:OnClassSelectButtonClick(allChargenClasses[currentChargenClass].id) end "
5e) Scroll down to table "chargen.class" and replace it with table "allChargenClasses"
5f) Scroll down to text lua "classOrGeneralHelp()" and replace it with text lua "getClassHelpText()"
6. Now we'll unhide the hidden kits. Scroll down to name 'CHARGEN_KIT'
6a) Insert just below the above line: onopen "lastChargenKit = currentChargenKit"
6b) A few lines below, replace text lua "Infinity_FetchString(chargen.kit[rowNumber].name)" with text lua "Infinity_FetchString(allChargenClasses[currentChargenClass].kits[rowNumber].name)"
6c) Directly below the label segment that includes the above line, insert: label { area 0 0 340 32 rectangle 1 rectangle opacity 180 enabled "getKitDisabled(allChargenClasses[currentChargenClass].kits[rowNumber].id)" }
6d) Two lines below, replace the action segment with: actionUpdate " if (allChargenClasses[currentChargenClass].kits[currentChargenKit] and getKitDisabled(allChargenClasses[currentChargenClass].kits[currentChargenKit].id)) then currentChargenKit = lastChargenKit else lastChargenKit = currentChargenKit end if (allChargenClasses[currentChargenClass].kits[currentChargenKit]) then createCharScreen:OnKitSelectButtonClick(allChargenClasses[currentChargenClass].kits[currentChargenKit].id) end "
6e) Scroll down to table "chargen.kit" and replace it with table "allChargenClasses[currentChargenClass].kits"
6f) Scroll down to text lua "kitOrGeneralHelp()" and replace it with text lua "getKitHelpText()"
7. Now we'll do the same for the alignment menu. Scroll down to name 'CHARGEN_ALIGNMENT'
7a) A few lines below, replace the onopen segment with the following code: onopen " lastChargenAlignment = nil currentChargenAlignment = nil "
7b) A few lines below, replace text lua "Infinity_FetchString(chargen.alignment[rowNumber].name)" with text lua "Infinity_FetchString(allChargenAlignments[rowNumber].name)"
7c) Directly below the label segment that includes the above line, insert: label { area 0 0 340 32 rectangle 1 rectangle opacity 180 enabled "getAlignmentDisabled(allChargenAlignments[rowNumber].id)" }
7d) Two lines below, replace the action segment with: actionUpdate " if (allChargenAlignments[currentChargenAlignment] and getAlignmentDisabled(allChargenAlignments[currentChargenAlignment].id)) then currentChargenAlignment = lastChargenAlignment else lastChargenAlignment = currentChargenAlignment end if allChargenAlignments[currentChargenAlignment] then createCharScreen:OnAlignmentSelectButtonClick(allChargenAlignments[currentChargenAlignment].id) end "
7e) Scroll down to table "chargen.alignment" and replace it with table "allChargenAlignments"
7f) Scroll down to text lua "alignmentOrGeneralHelp()" and replace it with text lua "getAlignmentHelpText()"
8. Finally, we need to restore the hidden proficiencies. Search for name 'CHARGEN_PROFICIENCIES'
8a) A few lines below, replace the onopen segment with the following code: onopen " currentChargenProficiency = nil currentChargenThiefSkill = nil ticksPassed = 0 ticksStarting = 0 if (chargen.levelingUp or (createCharScreen:GetCurrentStep() == const.STEP_DUALCLASS_PROFICIENCIES)) then allChargenProficiencies = chargen.proficiency allChargenOptionsGenerated = false profRowDict = nil else translateProficiencyRows() end "
8b) Scroll down to text lua "Infinity_FetchString(chargen.proficiency[rowNumber].name)" and replace it with with text lua "Infinity_FetchString(allChargenProficiencies[rowNumber].name)"
8c) Search for all instances of chargen.proficiency[rowNumber].value and replace them with getTranslatedProficiencyValue(rowNumber)
8d) Scroll down to frame lua "getPlusFrame(7)" and insert below it enabled "getTranslatedProficiencyEnabled(rowNumber)"
8e) Scroll down to frame lua "getMinusFrame(8)" and insert below it enabled "getTranslatedProficiencyEnabled(rowNumber)"
8f) Search for all instances of chargen.proficiency[currentChargenProficiency].id and replace them with getTranslatedProficiencyId(currentChargenProficiency)
8g) Scroll down to table "chargen.proficiency" and replace it with table "allChargenProficiencies"
8h) Search for text lua "proficiencyOrGeneralHelp()" and replace it with text lua "getProficiencyHelpText()"
Seriously - WTF???
Even if I'm wrong and you can do this with Weidu (the EEUITweaks mod seems to do it), it will probably be incompatible with, and/or overwritten by, any other mods that alter UI.menu. Because after spending 15 years jumping through insane hoops to deal with Bioware's decision to put all text strings in the game into a single monolithic .tlk file, Beamdog evidently decided it would be a good idea to do the same thing for the new UI system.
Seriously Beamdog, WTF?? That's twice in one day you've made it harder for me to make an awesome mod for players, instead of easier. Congratulations: you've me me look forward to the end of my lunch hour and going back to my day job. I didn't even think that was possible.
Hmm, I think I remember reading somewhere that UI can, or soon will be, installable via weidu. It may be that the linked mod just doesn't it (say, because it was created before this possible). I feel fairy confident that it must be possible now because of EEUITweaks.
I don't think this is beamdogs fault. They just added a new feature and weidu just needed an update to accommodate it (I think-- I've been meaning to research the ui stuff).
Does the fixes for spells mean the Shadow Monsters and Shades spells are fixed (the ones brought over from IWD)?
Yeah, I'm fairly sure that i have them fixed. Give a day so and I'll upload a hotfix.[ Grr, I remembered that I have a thing. It'll be Friday at the earliest (though Saturday still good a bigger fix).]Actually, if you like, (and if are inclined) feel free compile a list of 'liked but bugged' spells. Likely, most of those have been fixed on my internal build, and I'll work to fix the others. This bigger fix will take a few more days, but i could guarantee it by Saturday (I have a new supply of migraine pills, so even those won't stop me)
It's about time i fixed those spells in the official build
I don't think this is beamdogs fault. They just added a new feature and weidu just needed an update to accommodate it
Beamdog decided to change the proficiency screen to hide proficiencies you cannot actually get - that's all well and good as far as it goes, and in the thread for the more d I linked to, you'll see me actually defending the change.
But I didn't realize the visual change was tied to actual functional changes to the way that screen interacts with weapprof.2da, resulting in modders being unable to distinguish between proficiencies open to kits and proficiencies open to the base classes. It was perfectly moddabke before, and now they have put an extra at hurdle in the way. I don't understand why.
Oh yeah, there is that. They just failed to anticipate/notice mods like fnp... (An unknown unknown)
Comments
First off, love these mods. Having all of these different kits really makes this game more unique and immersive for me. Five stars!
//
My problem is this: I have created a Dwarven Fighter/Cleric of True Neutral alignment, with the purpose of making them an Alaghor of Clangeddin.
I installed the component option "new kits through dialog" rather than "through menu", and I'm wondering if there is some story event where I will be allowed to advance/change my characters class?
Many other kits were available during character creation, but when I chose to multiclass my Alaghor, no kit was available to choose.
I'm about to finish the Vale of Shadows and want to make sure not to advance too far if I messed something up at character creation.
Also, she's level 4 in cleric and only has two spells! One level 1 (cure light wounds) and one level 2 (i don't remember off hand, haven't used it much).
Thank you!!
//
If it's helpful, I'm running the EE and my load order for mods looks like this.
Lavalt
Runescarred
Faiths and Powers
Might and Guile
Tome and Blood
tweaks anthology (didn't use any combat/progression modifiers)
SoB
I have problem with installation: https://github.com/UnearthedArcana/Faiths_and_Powers/issues/84
I don't think this is beamdogs fault. They just added a new feature and weidu just needed an update to accommodate it (I think-- I've been meaning to research the ui stuff). Yeah, I'm fairly sure that i have them fixed.
Give a day so and I'll upload a hotfix.[ Grr, I remembered that I have a thing. It'll be Friday at the earliest (though Saturday still good a bigger fix).]Actually, if you like, (and if are inclined) feel free compile a list of 'liked but bugged' spells. Likely, most of those have been fixed on my internal build, and I'll work to fix the others. This bigger fix will take a few more days, but i could guarantee it by Saturday (I have a new supply of migraine pills, so even those won't stop me)It's about time i fixed those spells in the official build