Skip to content

First NPC Mod Advice Needed

Clumsy_DwarfClumsy_Dwarf Member Posts: 112
So I decided to take a crack at an NPC first. There seems to be a lot of guides on how to so I'm making a Lawful Neutral Dwarven Defender (meat shield for all parties). I got his basic form in game and working and now am going to expand everything from here.

Issue #1
I am wondering about how much power, especially at the start, is too much? I do not want the NPC to be too weak but also not over powered. Right now at level 8 he has...
Str 16
Dex 16
Con 19
Int 11
Wis 14
Chr 10
Starting Magic Equipment: 5 potions of regeneration, Axe +2, Large shield +1

#1a Having played the kit before, healers sometimes have problems healing that big health pool early. I was thinking about maybe doing an item that gives a regeneration close to Cernd's staff (1 hp/12 seconds) instead of the potions. Giving him an ability to make a special potion once per day only he can use that regenerates the same amount of health (60) over a longer period is also on the table. This would make him a little unique too.

#1b A bit concerned the ability scores are a little high. I might bring the strength down at least 1-2 but that will impact carry weight. Not something you want to skimp on with someone in heavy armor.

#1c His AC is -2 if you give him the Ring of Protection from the Chateau de Irenicus. Again seems a bit much early on. Maybe take the magic off the shield? Maybe a lesser armor with a +1 to negate using the ring? Or is the answer to this an #1b just to knock his Agi down 1-2?

#1d Might give him a little speed boost so he gets to the mobs first. Maybe some of my issues can be solved with a bound item (like Edwin's neck piece). Not sure if a item can mod the carry weight but it could solve the regeneration and movement rate issues.

#2 Banters and Interjections, how many is enough? I was thinking of at least 1 per NPC with about half having 2 or more banters (maybe a few 3 person banters). As for interjections, I do not want him to be a "nose in everyone's business" like some fighter/druids we know. Where is that "sweet spot" for both of them?

#3 I hate when you get an NPC at a higher level and the way they were made is not how you would have done it. It is not a big issue with this NPC but my next one might be a fighter/thief. So I was thinking of dealing with leveling via a .txt and the C:Exec("*.txt") command. Just have the player type C:Exec("Relgar12.txt") to level him to 12th level and maybe add some slightly better gear. Not sure how viable this method is, but I would rather give the user more control. I'm thinking if they boost the NPC to level 15 at the start of the game, they would have cheated anyways so I am not worried about that. I want people to get as much use out of the NPCs as they can.

Lastly, if anyone knows of an artist that has already given permission to use their work in game mods with a credit, that would be great as I am using one of my cats as a placeholder :smile:

Thanks in advance.
mf2112Ravenslight

Comments

  •  TheArtisan TheArtisan Member Posts: 3,277
    Well firstly I'd like to say good luck. I'm also a very new modder and creating Sirene was a development nightmare, not to mention my other characters that died in the figurative cradle before anyone even knew them.

    Stats - I would not concern yourself with lowering stats unless you're making them unreasonably high, to the point where even a PC-created character is unable to reach them. My personal rule is - if a player can make those stats fairly, then it's acceptable.

    Banters - no right answer for this one. Obviously more is (almost) always better where banters are concerned, but sometimes you have to accept that certain characters (a personal example being my npc Sirene and Jan in BG2) do not mesh well, and so far I've only been able to make one average banter between them. People won't think too badly of you if that's the case. Hopefully.

    I won't give a number regarding interjections because it's very dependent on the character. Using my own work as an example - a paladin would, most of the time, comment on extremely good or evil acts - either praising the player or criticizing/trying to persuade them against it. As long as it's suitable, the number doesn't matter. I will say that a character who has something to say for every other person gets annoying real fast.

    Levels and experience - it's easier to make a experience-giving script for something like this. I'm not going to post one right now (though I'll pm one or whatever if you need it) but it's not hard to do.

    Portrait - if you're not picky I could probably put together something for you (probably a NWN portrait edit).
    Ravenslightmf2112Clumsy_Dwarflolien
  • Clumsy_DwarfClumsy_Dwarf Member Posts: 112
    edited July 2016
    @Artemius_I Thanks for the input. I would like to take a look at the script. No rush. The project is going at a snail's pace. It took me a whole day of trial and lots of error to get his item working right.

    As far as the portrait goes, I was thinking of at least 3 more NPCs after this one (as long as my sanity stays in place) so If I could find an artist or 2 and get blanket permision, I will solve it.

    Oh, and I think Jan is just hard to write for. Unless you are into verbose stories about distant relatives or the black market turnip trade, there is not a lot there lol.
  •  TheArtisan TheArtisan Member Posts: 3,277
    The experience script is easy. The newer patches added a generic script that levels new NPCs relative to the main character up to a limit. This script is for SoD but it's a simple matter of changing the EXP values.
    <code class="CodeInline">// EXPERIENCE
    
    IF
      Global("BD_JOINXP","LOCALS",1)
      Global("BD_SAFEHOUSE_DONE","GLOBAL",1)
      Global("BDSODXP","LOCALS",0)
      InParty(Myself)
    THEN
      RESPONSE #100
        SetInterrupt(FALSE)
        SetGlobal("BDSODXP","LOCALS",1)
        SetGlobal("BD_JOINXP","LOCALS",0)
        SetInterrupt(TRUE)
    END
    
    IF
      Global("BD_JOINXP","LOCALS",0)
      InParty(Myself)
      XPGT(Player1,249999)
      XPLT(Myself,250000)
    THEN
      RESPONSE #100
        SetInterrupt(FALSE)
        SetGlobal("BD_JOINXP","LOCALS",1)
        ChangeStat(Myself,XP,250000,SET)
        SetInterrupt(TRUE)
    END
    
    IF
      Global("BD_JOINXP","LOCALS",0)
      InParty(Myself)
      XPGT(Player1,199999)
      XPLT(Myself,200000)
    THEN
      RESPONSE #100
        SetInterrupt(FALSE)
        SetGlobal("BD_JOINXP","LOCALS",1)
        ChangeStat(Myself,XP,200000,SET)
        SetInterrupt(TRUE)
    END
    
    IF
      Global("BD_JOINXP","LOCALS",0)
      InParty(Myself)
      XPGT(Player1,160999)
      XPLT(Myself,161000)
    THEN
      RESPONSE #100
        SetInterrupt(FALSE)
        SetGlobal("BD_JOINXP","LOCALS",1)
        ChangeStat(Myself,XP,161000,SET)
        SetInterrupt(TRUE)
    END
    
    IF
      Global("BD_JOINXP","LOCALS",0)
      InParty(Myself)
      XPGT(Player1,134999)
      XPLT(Player1,161000)
      XPLT(Myself,135000)
    THEN
      RESPONSE #100
        SetInterrupt(FALSE)
        SetGlobal("BD_JOINXP","LOCALS",1)
        ChangeStat(Myself,XP,135000,SET)
        SetInterrupt(TRUE)
    END
    
    IF
      Global("BD_JOINXP","LOCALS",0)
      InParty(Myself)
      XPGT(Player1,109999)
      XPLT(Player1,135000)
      XPLT(Myself,110000)
    THEN
      RESPONSE #100
        SetInterrupt(FALSE)
        SetGlobal("BD_JOINXP","LOCALS",1)
        ChangeStat(Myself,XP,110000,SET)
        SetInterrupt(TRUE)
    END
    
    IF
      Global("BD_JOINXP","LOCALS",0)
      InParty(Myself)
      XPGT(Player1,89999)
      XPLT(Player1,110000)
      XPLT(Myself,90000)
    THEN
      RESPONSE #100
        SetInterrupt(FALSE)
        SetGlobal("BD_JOINXP","LOCALS",1)
        ChangeStat(Myself,XP,90000,SET)
        SetInterrupt(TRUE)
    END
    
    IF
      Global("BD_JOINXP","LOCALS",0)
      InParty(Myself)
      XPLT(Player1,90000)
    THEN
      RESPONSE #100
        SetInterrupt(FALSE)
        SetGlobal("BD_JOINXP","LOCALS",1)
        SetInterrupt(TRUE)
    END

    You can check out a few examples of my portrait edits here and see if they're your style. NWN has a broad variety of portraits so I have plenty to work with, and it takes me a couple hours at most to make one into somewhat BG-style.
Sign In or Register to comment.