One of the exciting things that was added to the 2.0 Engine was the ability to select a kit for a multi-classed character during character creation. Currently this feels more like an engine hack than an intended functionality, but it is still a new option that should be explored. There are two ways to assign kits to multi-classes during CharGen, and each of them has some underlying issues.
The first method is to add a single-class kit to an appropriate multi-class kit table. For example, adding the Swashbuckler to the Fighter/Thief table enables the selection of the Swashbuckler for a Fighter/Thief character. You will get the appropriate kit bonuses, but the game will treat you as an unkitted multi-class during character creation (which means that you are not subject to alignment or ability score requirements for the kit, nor kit restrictions on weapon proficiencies or skills). In addition, once you load into the game, the game will say you are an unkitted multi-class in the class description of your character (under the portrait in your character record), and you would not be able to view the description of your kit.
The alternative method is to remake the class as a multi-class kit using the AddKit function of WeiDu and setting the base class of the kit to be a multi-class. This allows you to enforce kit restrictions during character generation, and also allows you to display a custom class name under your portrait and in your inventory (e.g. Fighter/Swashbuckler rather than Fighter/Thief). The disadvantage to this method, however, is that the engine completely disregards the CLAB file you provide for your kit, and instead chooses to use the base class CLAB files (so a Fighter/Swashbuckler would have the base Fighter and base Thief CLABs applied to them.) This prevents application of kit bonuses, making what would otherwise be the preferable solution veritably unusable.
To rectify this problem, and make the second method a viable option, I have developed a macro that handles the assignment of kit abilities within the base class CLAB files. This macro adds a single line to the six base classes that are able to multi-class (fighter, ranger, cleric, druid, mage, thief), and allows for an unlimited number of multi-class kit abilities to be applied via this single line. This system will have no impact on other classes that use these CLAB files. The first component of the mod attached to this post (KittedMulti.rar) demonstrates the installation of a Kensai/Thief kitted multi-class. (As an aside, this system could easily be automated to add single-kit options to each multi-class during character creation removing the need to go into EEKeeper to do this. I'd be willing to code such a mod if there was interest.)
What is possibly even more exciting is that this system enables the application of multiple kits on a single multi-class character. The second component of the attached mod demonstrates a very rough Berserker / Priest of Talos double-kitted multi-class.
To enable the selection of your kit from the multi-class kit table (and grant appropriate kit abilities), you simply need to include the attached library, add 8 lines of code to your mod installation file and include a couple files somewhere in your mod structure (the library and game files are in QD_MULTICLASS.rar). The actual function call should be included immediately after Wisp's fl#add_kit_ee function. You should also run the qd_multiclass_tables function at the beginning of any component that includes multi-class kits, to ensure that the necessary tables exist for ADD_KIT to use.
I should note that, as with any system like this one, there are inherent restrictions. The two requirements that I am aware of are 1) the spell files referenced in the CLAB (e.g. the AP_SPCL123 spells) cannot have filenames longer than 7 characters, and 2) the kit name cannot contain a WeiDu regexp character (any of these: $^.*+?[]\ ). I'm sure that more requirements will become apparent as people utilize this library and break it.
I am publishing this library so that others may make multi-class kits more reliably and efficiently. I do not require nor expect modders to contact me requesting permission to use this library. If you encounter errors in this library, please contact me so that I can provide fixes and updates.
Note that the current KittedMulti.rar has not been updated and likely has bugs. QDMULTI.rar is updated and should work properly.
The first method is to add a single-class kit to an appropriate multi-class kit table. For example, adding the Swashbuckler to the Fighter/Thief table enables the selection of the Swashbuckler for a Fighter/Thief character. You will get the appropriate kit bonuses, but the game will treat you as an unkitted multi-class during character creation (which means that you are not subject to alignment or ability score requirements for the kit, nor kit restrictions on weapon proficiencies or skills). In addition, once you load into the game, the game will say you are an unkitted multi-class in the class description of your character (under the portrait in your character record), and you would not be able to view the description of your kit.
The alternative method is to remake the class as a multi-class kit using the AddKit function of WeiDu and setting the base class of the kit to be a multi-class. This allows you to enforce kit restrictions during character generation, and also allows you to display a custom class name under your portrait and in your inventory (e.g. Fighter/Swashbuckler rather than Fighter/Thief). The disadvantage to this method, however, is that the engine completely disregards the CLAB file you provide for your kit, and instead chooses to use the base class CLAB files (so a Fighter/Swashbuckler would have the base Fighter and base Thief CLABs applied to them.) This prevents application of kit bonuses, making what would otherwise be the preferable solution veritably unusable.
To rectify this problem, and make the second method a viable option, I have developed a macro that handles the assignment of kit abilities within the base class CLAB files. This macro adds a single line to the six base classes that are able to multi-class (fighter, ranger, cleric, druid, mage, thief), and allows for an unlimited number of multi-class kit abilities to be applied via this single line. This system will have no impact on other classes that use these CLAB files. The first component of the mod attached to this post (KittedMulti.rar) demonstrates the installation of a Kensai/Thief kitted multi-class. (As an aside, this system could easily be automated to add single-kit options to each multi-class during character creation removing the need to go into EEKeeper to do this. I'd be willing to code such a mod if there was interest.)
What is possibly even more exciting is that this system enables the application of multiple kits on a single multi-class character. The second component of the attached mod demonstrates a very rough Berserker / Priest of Talos double-kitted multi-class.
To enable the selection of your kit from the multi-class kit table (and grant appropriate kit abilities), you simply need to include the attached library, add 8 lines of code to your mod installation file and include a couple files somewhere in your mod structure (the library and game files are in QD_MULTICLASS.rar). The actual function call should be included immediately after Wisp's fl#add_kit_ee function. You should also run the qd_multiclass_tables function at the beginning of any component that includes multi-class kits, to ensure that the necessary tables exist for ADD_KIT to use.
LAF qd_multiclass_tables STR_VAR mc_dir = ~YourMod/data/structure/here~ END
ADD_KIT ~EXAMPLE~
[...]
LAF fl#add_kit_ee
[...]
END
LAF qd_multiclass
STR_VAR
kit_name = [the internal name of the kit]
kit_clab = [the CLAB file you would like used; this file must exist prior to using this macro]
base_class = [the first letter of base class that you wish to tie the abilities to; accepts F, R, P, D, M, T]
mc_dir = [the directory in your mod file structure that includes the four accompanying IE files]
END
I should note that, as with any system like this one, there are inherent restrictions. The two requirements that I am aware of are 1) the spell files referenced in the CLAB (e.g. the AP_SPCL123 spells) cannot have filenames longer than 7 characters, and 2) the kit name cannot contain a WeiDu regexp character (any of these: $^.*+?[]\ ). I'm sure that more requirements will become apparent as people utilize this library and break it.
I am publishing this library so that others may make multi-class kits more reliably and efficiently. I do not require nor expect modders to contact me requesting permission to use this library. If you encounter errors in this library, please contact me so that I can provide fixes and updates.
Note that the current KittedMulti.rar has not been updated and likely has bugs. QDMULTI.rar is updated and should work properly.








