Jump to content

SubtleMods: NPC_EE - in-game customization for NPCs


Recommended Posts

I've updated it to v5.0 beta 3, which adds an item for mages and bards to pick up to 2 spells per level (for levels they can cast) so they don't have totally empty spellbooks after adopting the class. Additionally, there is an innate ability for mages, bards, clerics, druids, sorcerers, and shamans that simulates resting, so that after to pick your spells and decide what to memorize, you can cast them immediately. Finally, this liberalizes the class usability restrictions for various NPC-only items, in case you decide to change the class of those NPCs.

So, if you want to change Jaheira into a bard, the sequence would be something like this:

  • put the tome in a quickslot and use it
  • choose a class, set your stats, choose a kit
  • go to the record screen, level up; choose some proficiencies depending on your level
  • use the extra proficiencies innate ability to choose more proficiencies
  • put the spell choice item into a quickslot and use it; learn some spells; then throw it away 
  • go to your spellbook and select some spells to memorize
  • use the spell memorization innate ability

 

Edited by subtledoctor
Link to comment
17 hours ago, subtledoctor said:

But 1) the innate ability should work with the new mechanism

Ok, first of all - this is the best NPC customization mod ever made. The freedom of choice it allows is huge - and I love that. Well done, sir.

The innate ability did indeed work; it also changed NPCs classes, no need for the tome - but with a couple of quirks (this is with NPCs that have been in-party for a while)

Turned Jaheira into a Ranger/broken blade of tempus. Her proficiencies were wiped out, and she had 0 proficiency points at level up, plus only 2 'initial proficiency' abilities

Turned Vienxay into a fighter/sorcerer, but she doesn't get the ability to learn new spells. She correctly got 5 prof points when leveling up, but also 3 'initial ' + 2 'advance ' proficiencies, which seems excessive. This is probably the OP extra you were talking about.

Completely new NPCs:

Ajantis and Shar-Teel do not have the tome - and I unlocked their areas just to test this. After console-adding the book, everything seems to work fine, except Shar-teel doesn't get casting slots. She has 2 mem slots, and she prepared magic missile correctly.

Link to comment
Guest Obtuse User

Couldn't you add dual-class functionality, as well as better compatibility with proficiencies/spell selection, etc by only giving the character enough xp to advance a single level at a time, until all of the xp has been added?

Link to comment

Doesn’t sound easy. First, I’m not even aware of a way to record and remember the current XP at the time the script runs, which is kind of a crucial step! Second, every level has a different XP threshold, and every class has different tables, and every player can mod their game to change these from the expected thresholds. Third, I’m not sure how to make that process run to its end while allowing the player to periodically go to the record screen and level up. Would XP be increased at set intervals, like every 10 seconds? Would the player have to time it right to avoid screwing things up? If the interval is too long, how long would the whole process take? Sounds exhausting.

I mean, if I put a TON of work into it, could I figure out some way to do it? Sure - basic computability suggests scripts can reach whatever conclusion you want, if you’re willing to put enough effort into them. But for all that work, it might still be clunky, and bug-prone. Recall that FAR better modders than I have tackled this sort of thing, and it can tend to involve some pitfalls.

Contrast with what you can do right now:

  1. Choose thief class and Swashbuckler kit (say)
  2. In the console: C:SetCurrentXP(“60000”)
  3. Level up, choose proficiencies, allocate thief skill points
  4. Use a spell for the rest of your proficiencies
  5. Dual-class to mage
  6. In the console: C:SetCurrentXP(“101000”)
  7. Level up

That just seems WAY easier than trying to go level-by-level through a dozen or two dozen levels in different classes, hoping that a script is going to successfully hold your hand the whole way.

Btw changing class to mage/bard/cleric/druid doesn’t let you choose spells in any event, no matter whether you level up fast or slow. So there is no difference there. (I have nevertheless created a mechanism for mages & bards to get a few spells, just for players’ convenience.)

Edited by subtledoctor
Link to comment

Incidentally, I thought about Jaheira & Khalid the other day, how weird it always was that they are supposed to be seasoned adventures (Gorion's companions, at least for a time) and Harper agents, and yet there they are as 1st-level noobs when you meet them. Suddenly I realized what the answer should be: they should be dual-classed! Maybe they adventured for while, up to 6th level or so, and then Gorion settled down to raise Charname so J&K decided to get married and retire from the adventuring life. And what do you do in retirement? You pick up a hobby! (A.k.a., dual-class.)

It would give them  big store of hit points early in the game, but otherwise it would not affect balance at all. And toward the end of BG1 it would give them a nice late-game bonus when they recover their first class abilities, while still not really being OP or unbalanced.

If Beamdog every gets off their butts and produces the 2.6 patch for iOS, I'll finally do an EET setup and then with this mod it will be simple:

  • Choose first class and kit
  • In the console: C:SetCurrentXP(“45000”)
  • Level up, choose proficiencies, allocate skill points
  • Dual-class

Easy-peasy! Question then becomes, what class should they have? Jaheira is pretty easy, I think: give her levels as a fighter and dual to druid, so she is a 1st-level druid when you meet her. Khalid, on the other hand, is much more of a conundrum. Given that he is a straight fighter, anything you add is gravy. So you could try a non-traditional dual, like cleric->fighter. Having spent his early career as a support character would explain his demeanor, and a burst of low-level divine spellcasting in mid/late BG1 would be a nice little bonus for him. If your headcanon is that Jaheira joined a grove after spending time as an adventurer, then maybe make Khalid a cleric->ranger instead, which could be cool. Would probably have to switch his INT and WIS in these cases.

Alternatively, another possibility that would explain his demeanor is to give him thief levels for his first class. Maybe his instinct is to run away so much because... that what he used to do. Suddenly getting thief abilities in mid/late BG1 would also be a nice bonus, because that's right about the time a lot of people dual-class Imoen from thief to mage. This way you could maintain some level of thieving abilities in the party if you don't want to take up a spot with Montaron/Safana/Skie/Coran/Alora. He's already got the DEX for it...

Heck, even mage->fighter would be interesting, and kind of work. Maybe in the first part of their career Khalid was a timid back-row caster and Jaheira was his strong, gallant protector. And now in their second time around the roles are reversed, which lends all that tension to their relationship. He's already got the INT for it...

Edited by subtledoctor
Link to comment

I like the idea that Khalid might have once been a street urchin, forced to develop some rudimentary thief skills just to survive.  He seems too honorable for much else regarding that line of work.  Mostly HiS and PP, but with his INT maybe some Detect Illusion just for fun.

Edited by Awachi
Link to comment

Damn… there seems to be some kind of problem with the 5.0 beta… some kit abilities not being applied. I only noticed it with a bunch of other mods installed so it may be an interaction. Maybe something about the line endings of the .2da tables? Or maybe something about skipping the level 1 column when you level up from 0 to >1? Need to investigate. 

Link to comment

It seems to work fine when testing the mod itself, but in an install with more mods I saw what is consistent with what you saw:

  • I could create a Jinxer and it would properly apply all kit abilities - 5E spellcasting is initialized (which comes from the 1st-level column of CLABMA01.2da) and I get three feat abilities (two from 1st level, i.e. QD_MCM01.spl and one from 4th level, i.e. QD_MCM04.spl) and both Jinxer bard songs (one from QD_MCM01.spl and one from QD_MCM06.spl).
  • When I drop Imoen's XP to 50 and then turn her into a Jinxer, and then level her up from level 0 to level 1, 5E casting is initialized* (AP_ directly from CLABM01.2da), she gets her 1st-level bard song** (from QD_MCM01.spl) but she does not get her 1st-level feat abilities*** (also from QD_MCM01.spl).
  • When I leave Imoen's XP alone and simply turn her into a Jinxer, and then level her up from level 0 straight to level 7, 5E casting is not initialized, and she does get her first bard song, and she does not get the level 1 feat abilities, and she does get the other kit abilities from level 4 and level 6.

* Mostly. I actually just tried it again and while it said "5E casting initialized," it did not actually do so.

** Oddly, she gets the 1st-level bard song at level 0, before leveling up to level 1. Which means that possibly she is processing some of d5_JINX.2da before hitting level 1? Which shouldn't happen because a) obviously 1st-level kit abilities should not be processed until 1st level, and b) a multiclass should not process the multiclass kit table, it should only process CLABMA01.2da and CLABTH01.2da. So alternatively she might be processing some of CLABMA01.2da, and having... some of QDMCM01.2da applied at level 0? (But not all of it, because she doesn't get the feats.) Why and how something is being applied at level 0 is an important piece of the puzzle.

*** Oddly, when I look at Imoen in the save file, she has 206 immunity to D5MCFB1.spl and D5MCFB2.spl, which are the spells that give bards those two 1st-level feats. Immunity to those spells should only happen if the spells themselves were cast, i.e. it should only be possible to be immune to them if you actually got the feats. What I am seeing - the spells were processed to apply opcode 206 immunity, but were not processed to apply opcode 171 to give the feats - should be impossible.

Sometimes with scripts, if there is too much going on in the game, parts of a script will simply be skipped. That is why I tend to stay away from using scripts and instead use spell effects whenever possible. With spell effects things cannot be skipped, instead the game will briefly pause to process them, as we see with the Mana Sorcerer. So I really can't see why parts of a spell (QD_MCM01.spl or D5MCFB1.spl) would be applied but other parts would not.

This is truly confounding. But I have some information to go on, so I can test one or two things.

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