DavidW Posted January 6 Posted January 6 This is an advance-warning thread about features that will be in beta 3 of Talents of Faerun (hopefully releasing pretty soon, but no promises.) Various of ToF's features - spell spheres, subraces, kits - might naturally be assigned to kits, spells, and NPCs introduced by other mods. However, ToF naturally lives quite late in the install order (it needs to do various UI edits that require an overview of all kits in the game, for instance) whereas a lot of the mods that might naturally use ToF content would install earlier. I could add the content myself, but it's a lot of hassle and might be seen as intrusive. My solution to this (live in beta 3) is to let any mod define an ini file that you can use to tell ToF what to apply to your content. As an example, I'm going to use a few mods by Lava. Lava's 'Weasels!' mod adds several priest spells that naturally belong in the sphere of Animals Lava's 'Dusky' mod adds a cleric/thief of Mask, who might naturally be given the 'thief of mask' kit Lava's 'T'viy' mod adds a cleric of Urdlen. Urdlen isn't one of the gods I cover in ToF, but it might still be natural to use ToF features to give that cleric a bespoke spell list. The cleric of Urdlen is also a deep gnome and it would be natural to assign it the appropriate subrace. Here's how you'd tell ToF to do these things. (It would actually be natural to do them for each mod separately; I'm combining them for illustrative purposes.) You define an ini file that looks something like this: [npc_kit] DUSKY=DW_MASK_THIEF [npc_subrace] L#TVI=GNOME_DEEP [kit:L#TVI] spheres=+earth,-good bonus_spells=CLERIC_BEAST_CLAW,WIZARD_FLESH_TO_STONE [spheres] CLERIC_SUMMON_WEASELS=animal CLERIC_WEASELPAWS=animal CLERIC_POWER_OF_THE_WEASEL_GOD=animal You give it a guaranteed-unique name (I suggest the same name as your mod folder) When you install that mod, you drop it into the folder 'weidu_external/data/dw_shared/dw_talents_3p'. When ToF is installed, it will find that file and apply your changes. In the next few posts I'll explain the details a bit. I should say that I didn't check the particular choices in my example with Lava and I didn't give them much thought: they're a code illustration, nothing more. Quote
DavidW Posted January 6 Author Posted January 6 Assigning spheres to spells You do this with the [spheres] section of your ini: [spheres] CLERIC_SUMMON_WEASELS=animal CLERIC_WEASELPAWS=animal CLERIC_POWER_OF_THE_WEASEL_GOD=animal Each entry will be of the form 'spell_id=sphere_id'. (sphere_id is case-insensitive, I think, but use lowercase for definiteness) You can find an up-to-date list of sphere ids by looking at dw_talents/sphere/sphere_list.2da; the current list is: air, all, animal, charm, combat, divination, divine, earth, fey, fire, good, healing, moon, nature, necromantic, plant, protection, summoning, sun, wards, water, evil. (The 'nature' list is empty on a clean install of ToF: it exists to give a home to third-party druid-only spells.) If your spell description has a 'Sphere: xxx' entry, ToF will try to update it. It won't add a Sphere: entry if your current spell description lacks one. Quote
DavidW Posted January 6 Author Posted January 6 Assigning subraces to NPCs You do this with the 'npc_subrace' section of the ini: [npc_subrace] L#TVI=GNOME_DEEP Each entry is of the form dv=subrace_id (and I think should be case-insensitive). The dv is the usual 'death variable' or 'scripting name' that occurs at offset 0x28 of a cre file. An up-to-date list of subrace ids can be found by installing ToF and then looking at weidu_external/data/dw_shared/ The current list is: GNOME_ROCK, GNOME_DEEP, DWARF_SHIELD, DWARF_GOLD, DWARF_DUERGAR, HALFLING_LIGHTFOOT, HALFLING_STRONGHEART, HALFLING_GHOSTWISE, ELF_MOON, ELF_SUN, ELF_WILD, ELF_WOOD, ELF_DROW, ELF_WINGED, ELF_DUSK, AASIMAR, TIEFLING, GENASI_AIR, GENASI_EARTH, GENASI_WATER, GENASI_FIRE. (Note that ELF_WINGED and ELF_DUSK are purely cosmetic, NPC-only kits that don't do anything beyond displaying the subrace name on the character sheet.) Applying a subrace only affects joinable NPCs. It also doesn't apply any subrace modifiers to ability scores or thief abilities; I assume you will have applied those directly to the base character. It does apply bespoke special abilites like fire resistance or granted spells. ELF_DROW and GNOME_DEEP are hardcoded to zero the NPC's magic resistance. Quote
DavidW Posted January 6 Author Posted January 6 Assigning kits to NPCs You do this with the 'npc_kit' section of the ini: [npc_kit] DUSKY=DW_MASK_THIEF Each entry is of the form cre_resref=kit_id (kit ids taken from kit.ids) and should be case-insensitive. Note that unlike npc_subrace, you need to give the cre file resref, not the death variable. (So if you have multiple versions of your NPC at different levels, you'll need to call out all of them.) The intended purpose of this section is to affect joinable NPCs. You can apply it to non-joinable NPCs (e.g. enemies) and their kit will be altered; this will have no effect in ToF but SCS will notice and (if your NPC uses a standard script) will apply abilities, scripts, spells etc. However, there are deficiencies with this way of talking to SCS; I hope to introduce a more effective way shortly. Quote
DavidW Posted January 6 Author Posted January 6 Assigning spells to kits (part 1) In this case there is one section per kit, with a header name 'kit:kit_id', where kit_id is the kitlist.2da id for the kit. (This should normally be the same as the kit.ids entry; Bioware breaks this rule but you shouldn't.) For instance, the 'Crawler of Urdlen' kit from Weasel's "T'viy" mod has this entry: [kit:L#TVI] spheres=+earth,-good bonus_spells=CLERIC_BEAST_CLAW,WIZARD_FLESH_TO_STONE There are two fields, 'spheres' and 'bonus_spells'. (Both are optional.) 'spheres' describes which spheres a character can use. You can do this just as a comma-separated list of spheres: the entry for the unmodified cleric, for instance, would look like this: spheres=all,charm,combat,divination,divine,evil,good,healing,necromantic,protection,summoning,wards whereas the entry for the unmodified druid would be spheres=air,all,animal,divination,earth,fey,fire,healing,moon,nature,plant,protection,sun,water But it is usually easier to take the defaults as a starting point and indicate which spheres are added (by prepending a plus) and/or subtracted (by prepending a minus). So the Crawler of Urdlen gets the basic cleric spheres, plus Earth, minus Good. (You can get a list of defaults by looking at the defaults column of dw_talents/sphere/sphere_list.2da; clerics, druids, paladins, rangers, shamans and blackguards are all indicated by their respective first letters.) As minor advice for spheres: Everyone should have access to 'all' All clerics, but no druids, should have access to 'divine'; all druids, but no clerics, should have access to 'nature'. (These are where third-party spells get put, apart from anything else). Think carefully before removing healing or protection: they contain fairly critical spells that can make the game unfun if you don't have them. A list of spells in each sphere can be found inside ToF at dw_talents/doc/subdocuments_dw/spheres.html, or here. Quote
DavidW Posted January 6 Author Posted January 6 Assigning spells to kits (part 2) You can further customize the spells assigned to a divine kit by adding specific spells. For instance, it might seem thematically appropriate to Urdlen to give his clerics access to the Beast Claw spell. You can even give them arcane spells (or rather: new divine versions of arcane spells); maybe priests of Urdlen should be able to use Flesh to Stone off the wizard list? (eh, probably not to be honest: it's a coding example, not necessarily good design). This is easy to do: just set the bonus_spells field equal to a comma-separated list of the ids of the spells you want to add. Any wizard spells will be autoconverted into priest versions usable only by this kit. (8th or 9th level spells will be reduced to 7th level; other levels will be unchanged.) Quote
DavidW Posted January 6 Author Posted January 6 There are probably other things that could be exposed like this (HLAs possibly) but that's all I have time for right now. Comments, suggestions, questions welcome! Quote
mickabouille Posted January 7 Posted January 7 Thanks for for explaining all this. Are the references to kits in the post about subraces erroneous? Quote
DavidW Posted January 7 Author Posted January 7 Following a query I had: I’m happy to be given these ini files and host them myself (the functionality is not in beta 3 but is simple to add). That might be useful for people who have lots of mods and don’t want to update them all at once. It’s a one off offer though - I don’t want to have to update ToF every time any mod that uses it changes! Also happy to work with people to help them design inis if they’re unsure of the format. Quote
Guest morpheus562 Posted January 7 Posted January 7 Is there a link to the subraces and what they do? Quote
mickabouille Posted January 7 Posted January 7 https://gibberlings3.github.io/Documentation/readmes/subdocuments_dw/tof_race.html Quote
Angel Posted January 7 Posted January 7 Very nice, I will add information about spheres of added spells to MiH Fixes&Restorations and MiH Spellpack. Something to consider: What about a similar mechanism to tell SCS about new spells mages and priests can use? Quote
DavidW Posted January 7 Author Posted January 7 That’s drastically more work: it affects overall spell balance and needs individual scripting. Quote
Dan_P Posted January 9 Posted January 9 Hi, is there a way or will you be adding a way to restrict specific proficiencies for a kit (if using the component that expands class profs). Or is that something you'd have to handle yourself on your end. Thanks. Quote
Recommended Posts
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.