Jump to content

Discussion: BG2 Kit Creation Series


Recommended Posts

how would I restrict a class to a certain alignment (and gender, too, if possible)? Like, say I want to make a kit for a Priestess of Lolth; obviously, she isn't going to be worshipped by the good-natured folk.
Well you take this line from the kit install tutorial and make it match what you wish in game:
 // appended to ALIGNMNT.2da
 ~C!Selune			    0	   0	   0	   1	   0	   0	   1	   1	   0~ 

Link to comment

Since ToBEx no longer restricts ony 255 kits, the code snippet:

  WRITE_SHORT 0x244 0 // doesn't change
 WRITE_BYTE  0x246 ~%A#SHAR%~ // the internal name of your kit, surrounded by %
 WRITE_BYTE  0x247 0x40 // doesn't change

will fail for any kits added by ADD_KIT that happen to have a serial number >255 (because BYTEs)

 

How about changing it to something more dynamic like:

  SET x = IDS_OF_SYMBOL(~kit~ ~A#SHAR~) // the internal name of your kit
 SET y = x / 0x10000 // doesn't change
 SET z = x & 0xFFFF // doesn't change
 WRITE_SHORT 0x244 ~%y%~ // doesn't change
 WRITE_SHORT 0x246 ~%z%~ // doesn't change

 

Preserves the old functionality while allowing kit values >255 :cheers:

 

EDIT: Wisp provided a much more elegant solution here

  WRITE_LONG 0x244 (A#SHAR + 0x4000) << 16 // the internal name of your kit

Edited by Lollorian
Link to comment

I'm trying to make a knight kit for fighters. Part of this kit's features include a d12 hit die. I can't seem to figure out how to change the hit die for a given class in a BGT install. I looked at how EE did it for the dwarven defender and it appears they did it through two .2da files: hpbbn and hpclass. The former is similar to other class hp tables; the latter appears to be simply tell the game which hp table to consult for a given class/kit. I recreated these tables and can get them to install to my override folder, but the game doesn't seem to be referencing them at character creation or level up. No matter what I've tried, the class only gets a d10 hit die. Is it possible to change this? If so, what tables do I need to amend?

 

The only other work around I've been able to come up with would be to create a custom spl to increase the maximum hp by 2 and then add that to the clab file for the first 9 levels. Obviously, this second solution seems very hacky and inelegant. Any help would be appreciated.

Link to comment

Is it possible to change this? If so, what tables do I need to amend?

 

The only other work around I've been able to come up with would be to create a custom spl to increase the maximum hp by 2 and then add that to the clab file for the first 9 levels. Obviously, this second solution seems very hacky and inelegant. Any help would be appreciated.

Well, no, it's not possible.

The fun thing with the +2 HPs, the original Barbarian has that exact bonus coded in the kit, even though it says that it get's d12 HPs.

The Enhanced Edition has the file the two additional tables just for this operation.

Link to comment

I'm trying to make a knight kit for fighters. Part of this kit's features include a d12 hit die. I can't seem to figure out how to change the hit die for a given class in a BGT install. I looked at how EE did it for the dwarven defender and it appears they did it through two .2da files: hpbbn and hpclass. The former is similar to other class hp tables; the latter appears to be simply tell the game which hp table to consult for a given class/kit. I recreated these tables and can get them to install to my override folder, but the game doesn't seem to be referencing them at character creation or level up. No matter what I've tried, the class only gets a d10 hit die. Is it possible to change this? If so, what tables do I need to amend?

 

The only other work around I've been able to come up with would be to create a custom spl to increase the maximum hp by 2 and then add that to the clab file for the first 9 levels. Obviously, this second solution seems very hacky and inelegant. Any help would be appreciated.

hpclass only works on an EE game or if the relevant bits of TobEx are installed on BG2. Without either, you'll have to fake it with the +2 hp trick.

 

edit: I take that back. TobEx only externalizes the tables for classes, not kits, so it's EE or +2 hp.

Edited by CamDawg
Link to comment

Thanks for the rapid responses! Looks like I'll just amend the CLAB file then.

 

I'm also tinkering with the idea for a Hammer of Moradin kit (3.5 Player's Guide to Faerun). Some quick questions as I start to formulate the kit:

1) Is it possible to allow Dwarves to be paladins or is the racial restriction hard-coded?

2) Is it possible to have more than one racial enemy? The prestige class gives bonuses against goblins, giants, and drow so I'd like to try to keep this if possible.

3) Would it even be possible to replicate the throwing and returning warhammer class abilities of the class? The prestige class allows any warhammer wielded by the hammer of Moradin to have the throwing and returning ability. Is there a way to do this through creating a custom spell and then adding it to the CLAB file?

Link to comment

1...?

1. The racial Charisma penalty is more or less there, as the regular Paladin needs the 17 minimum, it's not something that you would usually do... but I think the ToBEx has this covered.

2. Erhm, not to my knowledge ... but you can try to go around this by applying targeted bonuses to the characters attacks vs. the specific species.

3. Well, you can make a spell that replaces the used item with a magical.... but there's like a 1000 item mods that have different items, do you wish to make the mod account for all of them, individually ? You might be better off by just giving the ability to create a temporary throw-able hammer that get's better when you gain levels.

Edited by Jarno Mikkola
Link to comment

Looks like I have quite a bit of work ahead of me.

 

Back to the knight kid mod from above. So I put in the BGHP+2.spl into the CLAB table, but for some reason it doesn't apply the bonus at first level. It seems to work fine at every other level. Does anyone have any ideas about why this would happen? And if so, how can I get it to read that entry or otherwise fix it?

 

The only workaround I've come up with would be to put a BGHP+4.spl in the 2nd level ability so that it automatically corrects itself at 2nd level, but obviously that's a very weak solution.

Link to comment

I feel it's worth mentioning that adding +2 hp per level is way different, and way better, than rolling 1d12 for hp. The solutions is quite easy: mathematically, the average over time of rolling 1d10+1 works out to be precisely the same as rolling 1d12. So if you really want this to work as intended, you should be adding +1 per level, not +2.

 

1d10+2 hp per level is the same as rolling 1d14.

Link to comment

1d10+2 hp per level is the same as rolling 1d14.

Nope. By average it is, but we are not talking about average but a dice that has 14 sides that all have equal chance of being landed to, so 1 is as possible as the 14 unlike in the 1d10+2, and so you know, the game rules have an exception that allows you to gain full 10 out of every 1d10 if you like by setting the Difficulty to Easy, and 2/3's of max if it's less than hardcore. Cause the system is rigged.
Link to comment

Nope. By average it is, but we are not talking about average but a dice that has 14 sides that all have equal chance of being landed to, so 1 is as possible as the 14 unlike in the 1d10+2, and so you know, the game rules have an exception that allows you to gain full 10 out of every 1d10 if you like by setting the Difficulty to Easy, and 2/3's of max if it's less than hardcore. Cause the system is rigged.

What?? I'm fairly certain that's not true. My understanding is, on Core Rules difficulty you get normal dice rolls, on Normal difficulty you get max hp every roll.

 

As for the average, well the average is what matters. A mythical 14-equal-sided die has equal chances to land on any of 14 possible results, ranging from 1 to 14. A 10-sided die with +2 added has equal chances to land on any of 10 possible results, ranging from 3 to 12. The range of the latter will of course tend to skew toward the middle, but over time, added up, the results from both methods will be roughly equal.

 

If you're avoiding any dice rolls by playing with max hp then yes there will be a difference, but I'm not assuming a player will inevitably choose to fix the outcome of dice rolls, in a game where almost all of the rules are literally defined by dice rolls. Why not just play in Story Mode?

 

In sum, if you want to simulate a 1d12 roll as best you can with a d10 die, the best way is to roll 1d10+1. If you want 12hp/level that's a different question.

Edited by subtledoctor
Link to comment

Since ToBEx no longer restricts ony 255 kits, the code snippet:

WRITE_SHORT 0x244 0 // doesn't change
  WRITE_BYTE  0x246 ~%A#SHAR%~ // the internal name of your kit, surrounded by %
  WRITE_BYTE  0x247 0x40 // doesn't change
will fail for any kits added by ADD_KIT that happen to have a serial number >255 (because BYTEs)

 

How about changing it to something more dynamic like:

SET x = IDS_OF_SYMBOL(~kit~ ~A#SHAR~) // the internal name of your kit
  SET y = x / 0x10000 // doesn't change
  SET z = x & 0xFFFF // doesn't change
  WRITE_SHORT 0x244 ~%y%~ // doesn't change
  WRITE_SHORT 0x246 ~%z%~ // doesn't change
Preserves the old functionality while allowing kit values >255 :cheers:

 

EDIT: Wisp provided a much more elegant solution here

WRITE_LONG 0x244 (A#SHAR + 0x4000) << 16 // the internal name of your kit

 

OMG! This solved the invalid argument error I was having trying to install a new kit to a newly installed NPC. Thank you!!!

Link to comment

Sorry for this probally super noob question but I went through the Tutorial as is and just copied all the codes in Part 3 made a copy of classb .2da that i copied from the Priest o helm kit, Renamed in MYKIT.2da and copied it into the my mod folder. I reverenced the MYKIT.2da in the Tp2 as such


  // path to your CLAB-style 2da file 
  ~MyMod/MYKIT.2da~

Now i installed and is sais it does so succesfully. However when i go into BG2EE and look for the kit it;s nowhere to be found. What have i forgotten to do? Full code as is now below.

BACKUP ~MyMod/backup~ // so WeiDU can uninstall
AUTHOR ~blank_adder@hotmail.com~ // contact address displayed if installation fails

BEGIN ~Tutorial Kit~ // Techsmith of Gond
// internal name of the kit
ADD_KIT ~C!Selune~

  // appended to CLASWEAP.2da
  ~C!Selune                0           0           1           1           0           1           0           0~

  // appended column-wise to WEAPPROF.2da
  ~C!Selune 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0~
     
  // appended to ABCLASRQ.2da
  ~C!Selune                0       0       0       10       10       0~

  // appended to ABCLSMOD.2da
  ~C!Selune                0       0       0       0       0       0~

  // appended to ABDCDSRQ.2da
  ~C!Selune                0       0       0       0       17      0~

  // appended to ABDCSCRQ.2da
  ~C!Selune                0       0       0       0       15      0~

  // appended to ALIGNMNT.2da
  ~C!Selune                0       0       0       1       0       0       1       1       0~

  // appended to DUALCLAS.2da
  ~C!Selune                1       0       1       1       0       1~

  // path to your CLAB-style 2da file 
  ~MyMod/MYKIT.2da~

  // PC races and classes allowed to use this kit, from KITTABLE.2da
  ~K_C_D K_C_E K_C_G K_C_H K_C_HE K_C_HL K_C_HO~

  // usability flags, added to the end of the KITLIST.2da entry
  ~0x00004000     3~

  // HLA table to use; see LUABBR.2da
  ~C!3~

  // list of starting equipment for PCs starting in ToB. Appended column-wise to 25STWEAP.2da
  ~CHAN09 * HELM07 BAG20 RING06 RING31 * BOOT01 AMUL19 BRAC16 BELT06 AROW11,40 BULL03,40 BOLT06,40 POTN52,5 POTN4,2 POTN14,5 HAM07 SW1H27 STAF08~

  // Lower, mixed, and help kit names and descriptions, added to KITLIST.2da 
  SAY ~Silverstar of Selûne~
  SAY ~Silverstar of Selûne~
  SAY ~SILVERSTAR OF SELÛNE: Description cut due to length~
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...