@subtledoctor , it is curious that you are reporting it not granting the appropriate amount of skill points, because when I changed THIEFSKL.2da for my kensai thief using NI, it worked just fine. However, when I used the thiefskl line in fl#add_kit_ee, it gave me an installation warning and didn't install it. Weird.
Okay, having looked through fl#add_kit_ee, it does something a bit annoying where if you try to give a class other than thief a line on a thief skill table, it gives you an installation exception and instead goes back to the default value. Commenting out lines 135 through 139 in fl#add_kit_ee will stop it from forcing the default values onto your kit, but I'm sure @Wisp had a good reason to include that so caveat emptor.
Here were my findings back when I looked into this:
Limitations of the EE Engine(General): BACKSTAB.2DA, CRIPPSTR.2DA, AND SNEAKATT.2DA - The game only respects new entries to these files for Single-class Theif kits. - Non-thieves and multiclasses must resort to the relevant opcodes(which do not show up on the record screen).
Limitations of the EE Engine(Multiclass Specific): CLABxxxx.2DA, HPCLASS.2DA - Multiclasses (Kitted and un-Kitted) use the files of each of its respective base classes instead of their own entries.
Limitations of the EE Engine(Vanilla Kits): Trial and Error - Repurposing the vanilla kits as Multiclass kits has varied results, as some aspects of them are still hard-coded. - Some of them respect entries to files that new kits will not. - Some of them do not respect entries to files that new kits will.
Limitations of Weidu's "ADD_KIT": KITTABLE.2DA - Kit_Class_Race.2da files for Multiclasses are defined, but do not exist, and ADDKIT will not create them, so this must be done before using ADDKIT.
Limitations of Weidu's "fl#add_kit_ee" function: THIEFSKL.2da AND TRAPLIMT.2DA - This function only respects entries to these files for Single-class Thief kits. - Monks, Bards, and Multiclasses are not supported by the function.
Limitations of Weidu's "ADD_KIT": KITLLIST.2DA - ADD_KIT does not properly add a Multiclass Kit's IDS value. - The last 2 columns(Class ID and KIT ID) get combined with no spacing: "130x00004027" instead of: " 13 0x00004027"
@kjeron , in order (all of this was done in v2.2 or v2.3 SoD):
BACKSTAB.2da, etc. still do not work, even if you add them using NI. CLABxxxx.2da is disregarded, but this system reads a CLAB file provided to figure out what abilities should be granted. This is actually the main fix that my library provides. HPCLASS.2da seems to be working for multiclass kits in SoD v2.3.
Vanilla Kits: A couple of the hardcoded features (e.g. Shadowdancer's Hide in Plain Sight) don't convey, and you have to be a bit creative with bonuses applied outside of a CLAB file (e.g. specialist bonus spell, mage school bonuses), but this is mostly doable.
KITTABLE.2da defines the multiclass tables. One of the functions included in my mod is "qd_multiclass_tables", which generates all missing multiclass tables.
fl#add_kit_ee has a couple of lines that slap you on the wrist and reset your thief table lines if the base class of your kit isn't single class thief. Waiting to hear from @Wisp if that is necessary. I don't recall having any issues with THIEFSKL for monks with my Monastic Orders mod, but I could be wrong.
KITLIST.2da doesn't seem to be displaying that behavior for me.
I haven't checked HLA tables yet, but I'll look into it.
Single-class kits on multiclass characters have the same issue. You only ever get the base multiclass HLA issue. (Still, it's better than the pre-EE situation where this could lead to a hard CTD!) The HLA system in general is pretty inflexible, though I've tried to open it up to easier modding.
I think you misread me there - Multi-class kits get to use their own HLA tables, they are not forced to use the base Multiclass table.
KITLIST.2da doesn't seem to be displaying that behavior for me.
I am curious as to why this would be different. My Weidu is up-to-date (same results with v2.39 and beta2.3901, is v2.40 out?) , from an unmodded KITLIST.2DA: Tried 2.1: "130x00004027" instead of: " 13 0x00004027" Tried 2.2: "130x00004027" instead of: " 13 0x00004027" Tried 2.3: now I get "13 0x000040270x00004027" instead of: " 13 0x00004027"
I did a fresh install and managed to get it working fine (no description errors any more, yay!).
However, when I try to modify the setup.tra to include a new kitted multiclass, I get a LEXOR error in the installation. Am I doing something drastically wrong here? Totally new to this, so just trying to get a feel for what I need to do.
@subtledoctor , there are two functions in qd_multiclass. The first (qd_multiclass) is the function that handles the multiclass abilities rows. The second (qd_multiclass_tables) can be called independently of the first and initializes any multiclass kit tables that don't exist; the second function exists separately to enable the ability to initialize tables before the kit is installed.
@Scrybe , my first guess would be that your kit name includes a weidu regexp character. Post your code or send it to me and I'll see if I can find why its throwing an error.
@kjeron , I'll look into this as well. This is almost certainly an issue with ADD_KIT, so a fix would require a request sent to the people maintaining WeiDu. It still seems strange that this would occur, given that SORCERER (class id = 20) has no such issues and I can't imagine they explicitly coded it to not work with multiclass kits.
@kjeron , I tried installing a Cleric/Mage (class id = 13) kit and found no such issues. Are you sure you are entering them correctly into ADD_KIT (e.g. kit flag then class id, rather than class id then kit flag)?
@Aquidrizzt I tried again in v2.3 and KITLIST is appending correctly now (I'm guessing I had a broken uninstall remaining). But, it still omits the KitIDS column on v2.2 and earlier every time. Oh well, don't look back I guess.
@aquadrizzt thing is, I can simply enter a new paragraph (with no text whatsoever) into the setup.tra provided, and it shows the following error: Even if I delete it and change the file back to exactly the same as it was before, it will still give me that error...
What program are you using to edit the file? I think that's a result of it not supporting the utf-8 character encoding.
@aquadrizzt thing is, I can simply enter a new paragraph (with no text whatsoever) into the setup.tra provided, and it shows the following error:
Even if I delete it and change the file back to exactly the same as it was before, it will still give me that error...
What text editor are you using? I'd recommend ConTEXT for this. Your problem seems to be that unusual character that looks like an "n" Using the wrong program will convert characters into an invalid format unrecognizable by WeiDU.
@Aquadrizzt Yeah, I agree I should look into it. Not sure at the moment, but I just wanted to try out a kitted multiclass :P. Having fun with it so far!
Thanks again for making this and for all the advice
Just wanted to add that it looks like a Unix/Linux End Of Line character read by Windows/DOS, and not a character encoding problem. I get this issue when I forget to convert scripts written on a Linux or OS X machine to Windows/DOS EOL and try to execute them, and vice versa. Not sure about how to change it in ConTEXT, as I use NotePad++ on Windows and vim/gedit on Linux/OS X. In NotePad++, you have to change the EOL conversion of the file to Windows/DOS under the Edit menu.
@Aquadrizzt I just wanted to say how incredible this is, and thank you. This is definitely the best method yet of applying kits to multiclasses. Haven't found any other limitations with my brief tests yet, just been able to confirm most of what's been discussed. My F/M Bladesinger with fully-functioning CLAB:
@Abdel_Adrian , glad to see that someone (other than me) is finding use for this. I've actually refined it a bit, I'll post an updated version once I make sure that I haven't inadvertently broken something.
@kensai , in what way? Multiclass characters use the exact same spell progression as single class casters, they just progress through it slower.
They follow the progression of (multiclass) specialist mages, regardless of whether the mage is kitted or not. Just like Fighter/Illusionist, but even if it were Berserker/Mage, for example.
@Abdel_Adrian, oh right. That is a good point. This is easily fixable though (just add a -1 spell per level effect at 1st level and you're good to go.) I'll add that to the mental list of things to mention when I write a more formal guide.
Comments
Okay, having looked through fl#add_kit_ee, it does something a bit annoying where if you try to give a class other than thief a line on a thief skill table, it gives you an installation exception and instead goes back to the default value. Commenting out lines 135 through 139 in fl#add_kit_ee will stop it from forcing the default values onto your kit, but I'm sure @Wisp had a good reason to include that so caveat emptor.
Limitations of the EE Engine(General): BACKSTAB.2DA, CRIPPSTR.2DA, AND SNEAKATT.2DA
- The game only respects new entries to these files for Single-class Theif kits.
- Non-thieves and multiclasses must resort to the relevant opcodes(which do not show up on the record screen).
Limitations of the EE Engine(Multiclass Specific): CLABxxxx.2DA, HPCLASS.2DA
- Multiclasses (Kitted and un-Kitted) use the files of each of its respective base classes instead of their own entries.
Limitations of the EE Engine(Vanilla Kits): Trial and Error
- Repurposing the vanilla kits as Multiclass kits has varied results, as some aspects of them are still hard-coded.
- Some of them respect entries to files that new kits will not.
- Some of them do not respect entries to files that new kits will.
Limitations of Weidu's "ADD_KIT": KITTABLE.2DA
- Kit_Class_Race.2da files for Multiclasses are defined, but do not exist, and ADDKIT will not create them, so this must be done before using ADDKIT.
Limitations of Weidu's "fl#add_kit_ee" function: THIEFSKL.2da AND TRAPLIMT.2DA
- This function only respects entries to these files for Single-class Thief kits.
- Monks, Bards, and Multiclasses are not supported by the function.
Limitations of Weidu's "ADD_KIT": KITLLIST.2DA
- ADD_KIT does not properly add a Multiclass Kit's IDS value.
- The last 2 columns(Class ID and KIT ID) get combined with no spacing:
"130x00004027" instead of: " 13 0x00004027"
Custom HLA tables do work for Multi-class kits.
BACKSTAB.2da, etc. still do not work, even if you add them using NI.
CLABxxxx.2da is disregarded, but this system reads a CLAB file provided to figure out what abilities should be granted. This is actually the main fix that my library provides.
HPCLASS.2da seems to be working for multiclass kits in SoD v2.3.
Vanilla Kits: A couple of the hardcoded features (e.g. Shadowdancer's Hide in Plain Sight) don't convey, and you have to be a bit creative with bonuses applied outside of a CLAB file (e.g. specialist bonus spell, mage school bonuses), but this is mostly doable.
KITTABLE.2da defines the multiclass tables. One of the functions included in my mod is "qd_multiclass_tables", which generates all missing multiclass tables.
fl#add_kit_ee has a couple of lines that slap you on the wrist and reset your thief table lines if the base class of your kit isn't single class thief. Waiting to hear from @Wisp if that is necessary. I don't recall having any issues with THIEFSKL for monks with my Monastic Orders mod, but I could be wrong.
KITLIST.2da doesn't seem to be displaying that behavior for me.
I haven't checked HLA tables yet, but I'll look into it.
Tried 2.1: "130x00004027" instead of: " 13 0x00004027"
Tried 2.2: "130x00004027" instead of: " 13 0x00004027"
Tried 2.3: now I get "13 0x000040270x00004027" instead of: " 13 0x00004027"
However, when I try to modify the setup.tra to include a new kitted multiclass, I get a LEXOR error in the installation. Am I doing something drastically wrong here? Totally new to this, so just trying to get a feel for what I need to do.
@Scrybe , my first guess would be that your kit name includes a weidu regexp character. Post your code or send it to me and I'll see if I can find why its throwing an error.
@kjeron , I'll look into this as well. This is almost certainly an issue with ADD_KIT, so a fix would require a request sent to the people maintaining WeiDu. It still seems strange that this would occur, given that SORCERER (class id = 20) has no such issues and I can't imagine they explicitly coded it to not work with multiclass kits.
~0x00000780 13~
But, it still omits the KitIDS column on v2.2 and earlier every time. Oh well, don't look back I guess.
Even if I delete it and change the file back to exactly the same as it was before, it will still give me that error...
Using the wrong program will convert characters into an invalid format unrecognizable by WeiDU.
Thanks again for making this and for all the advice
Not sure about how to change it in ConTEXT, as I use NotePad++ on Windows and vim/gedit on Linux/OS X. In NotePad++, you have to change the EOL conversion of the file to Windows/DOS under the Edit menu.
My F/M Bladesinger with fully-functioning CLAB: