Skip to content

Bringing Tieflings (adding other Planetouched Races later) to BG1/2 & IWD1 (WIP)

1356

Comments

  • rapsam2003rapsam2003 Member Posts: 1,636
    edited April 2016

    No. I literally just did it. There is photo proof.

    Real proof would be the code. Send it. If you don't have that, then hush.
  • Abdel_AdrianAbdel_Adrian Member Posts: 430

    Oh hey, I made selectable Tieflings, Goblins, and Aasimars....

    Sarcasm?...

    Edit: What did you do?! If you're joking, man...I might cry. lol. It is April Fools' here in the US.
    I'm not messing with you. It was actually so easy that I didn't even use WeiDU yet, the problem is that there aren't sting references for things like goblins where there are for humans and elves. There's more to be done in other words.
    I literally just appended the files I told you about before. Added rows/columns where appropriate, set IDS to appropriate race, changed any -1 value on the tiefling to any other strref, and as long as your races are in the same place spelled the same in every file, it works just fine.
  • rapsam2003rapsam2003 Member Posts: 1,636
    illathid said:

    About paladins - check this mod:
    https://forums.beamdog.com/discussion/42721/npc-mod-sirene-npc-for-bg-ee-v1-0/p1

    it's not that impossible.

    No one said Paladin kits or the Tiefling race were impossible to make, but a tiefling paladin is incredibly unlikely, even more so in a universe that only has human paladins. In 3E/4E/5E, sure, you could justify it somehow, as silly as I find that, but in 2E I don't know and DM that would be okay with a lawful good part-fiend.
    Yeah, fiends fighting their nature is completely ridiculous. I'm mean look at Fall-From-Grace in Planescape: Torment. That Avellone guy is a complete hack.

    /s
    Irrelevant. Paladins aren't going to be available for tieflings in my mod. If you dislike it, you can feel free to edit the files before doing the WeiDU install.

    Now all that needs to be done is for them to be selectable. There has to be some variable somewhere that sets this. I would just need to find it.

    As far as anyone knows, there is not. You would need to hack the executable. Which would not work well given how many different versions and platforms this game is on now. And after every patch, you would have to re-do all the work to make it functional again.
    I comtemplated doing this for a few minutes and then discarded it, haha. I mean, I’d basically have to do a mod on the scale of a “complete conversion”. No thanks.

    While Abdel_ has been a bit... negative... I think he was trying to help by getting you past treading the same ground that 20 different people have already trod, and hitting the same wall that they already hit. This stuff is deeply hard-coded and there's no variable to enable it. Writing software is great and all but this is different - here you are forced to operate within the constraints of an incredibly old and finicky codebase that was never designed to be modded. There are a lot of things that are simply not possible... and after 17 years of modding a mod-hostile game, we have a pretty good idea of what they are.

    I understand this. I don’t appreciate being talking down to, however. Thank you for your respect.

    Most people who go down this road have ended up using scripts as a workaround. But it's a crappy workaround. If you can come up with a better workaround that would be awesome! But I'll bet money it won't involve the vanilla race menus.

    Scripts is one valid option. But it’s also a messy one.
  • rapsam2003rapsam2003 Member Posts: 1,636
    edited April 2016

    Oh hey, I made selectable Tieflings, Goblins, and Aasimars....

    Sarcasm?...

    Edit: What did you do?! If you're joking, man...I might cry. lol. It is April Fools' here in the US.
    I'm not messing with you. It was actually so easy that I didn't even use WeiDU yet, the problem is that there aren't sting references for things like goblins where there are for humans and elves. There's more to be done in other words.
    I literally just appended the files I told you about before. Added rows/columns where appropriate, set IDS to appropriate race, changed any -1 value on the tiefling to any other strref, and as long as your races are in the same place spelled the same in every file, it works just fine.
    Ok, I'm still hesitant to believe you, considering the date today. Make a WeiDU install?

    If you were able to do this, then I'm wondering if I did it incorrectly...

    I used NearInfinity to do it.
  • Abdel_AdrianAbdel_Adrian Member Posts: 430

    No. I literally just did it. There is photo proof.

    Real proof would be the code. Send it. If you don't have that, then hush.
    Wow why are you so damn sassy towards me? You realize I'm trying to help you and you've been pretty rude?
    Well I've got working planar races, I don't need to prove it to you by teaching you WeiDU code to append 2das.
  • rapsam2003rapsam2003 Member Posts: 1,636
    edited April 2016

    No. I literally just did it. There is photo proof.

    Real proof would be the code. Send it. If you don't have that, then hush.

    Wow why are you so damn sassy towards me? You realize I'm trying to help you and you've been pretty rude? .

    I'm sassy towards you because it's April Fools. You know, the day that most folks try to trick other folks. So, if you are genuine, then I apologize.

    Well I've got working planar races, I don't need to prove it to you by teaching you WeiDU code to append 2das.

    And I'm not asking you to do that.

    Seriously, I am sorry, man.


    Anyway, it appears that doing dialog.tlk editing with NearInfinity is actually bad...upon further research. (I don't know why they even include the option in NI to do so if it's buggy.) I was editing the .2da files in Notepad++ and then editing the dialog.tlk for the strrefs. Will retry with WeiDU.
  • Abdel_AdrianAbdel_Adrian Member Posts: 430
    edited April 2016
    Thank you for the apology, that's big of you. We're all friends here and I'm not trolling anyone.

    First off - don't use NI for dialog.tlk, that's mainly what WeiDU is for and it does it much better. Refer to this thread about creating a hard-link to dialog.tlk if you haven't already.
    https://forums.beamdog.com/discussion/6950/player-how-to-getting-mods-to-work-on-bgee/p1

    As far as what I did, it really was just appending the RACExxx.2da's. They all end at half-orc, simply create another column with your race in all caps. Make sure you do this for TEXT/COLR/THAC/FEAT at a minimum and refer to RACE.IDS for the ids column of RACETEXT and be sure to change any -1 value to a positive interger. This is the strref for your race and you will need to write one. My tiefling, goblin, and aasimar races simply use human for now since no one has written their descriptions in game. You should be able to do this all in DLTCEP, I will package up my own version with WeiDU soon, but expect it to heavily reflect 2e PnP.
    Post edited by Abdel_Adrian on
  • Abdel_AdrianAbdel_Adrian Member Posts: 430
    And for the record, Tieflings in BG are just elves with a different name and ids, the latter of which allows for tiefling only items. But this also means they get +1 DEX, -1 CON, sword and bow thac0 bonuses, elven resistances, etc. all hardcoded to their race. This must be kept in mind when adjusting their stats and thac0, but I don't see how one would remove the magical sleep resistance.
  • rapsam2003rapsam2003 Member Posts: 1,636
    edited April 2016

    Thank you for the apology, that's big of you. We're all friends here and I'm not trolling anyone.

    I appreciate it.

    First off - don't use NI for dialog.tlk, that's mainly what WeiDU is for and it does it much better. Refer to this thread about creating a hard-link to dialog.tlk if you haven't already.

    https://forums.beamdog.com/discussion/6950/player-how-to-getting-mods-to-work-on-bgee/p1
    I think I've glanced at that, but...I was hoping to get it working quick and dirty and then clean it up later. Lol

    A look at that link shows that the dialog.tlk wasn't being set correctly. So, the only entry that was "correct" was the race id of 153. Oops...

    As far as what I did, it really was just appending the RACExxx.2da's. They all end at half-orc, simply create another column with your race in all caps. Make sure you do this for TEXT/COLR/THAC/FEAT at a minimum and refer to RACE.IDS for the ids column of RACETEXT and be sure to change any -1 value to a positive interger. This is the strref for your race and you will need to write one. My tiefling, goblin, and aasimar races simply use human for now since no one has written their descriptions in game. You should be able to do this all in DLTCEP, I will package up my own version with WeiDU soon, but expect it to heavily reflect 2e PnP.

    I ended up doing most of this “the hard way” in Notepad++. I used NearInfinity to extract the files and then actually wrote in them. But I think I'll just “start from scratch” using WeiDU. I have all the ideas saved, so it won't take long, especially since I have the WeiDU documentation now.

    Am I correct in assuming that, because I am not adding any new kits, I will not need an edited version of the fl#add_kit_ee.tpa file? There's not an equivalent version for “add races”, I would guess.

    And for the record, Tieflings in BG are just elves with a different name and ids, the latter of which allows for tiefling only items. But this also means they get +1 DEX, -1 CON, sword and bow thac0 bonuses, elven resistances, etc. all hardcoded to their race. This must be kept in mind when adjusting their stats and thac0,

    Roger. Appreciate it. In the code, my changes would really end up as: +1 Int, +1 Cha, -1 Dex, +1 Con, -1 Str, & -1 Wis. Then, thac0 would just need adjustment.

    but I don't see how one would remove the magical sleep resistance.

    I was actually going to use a script to set resistances. The script would just call a “hidden” spell (.spl file) that sets all the values at level one. (I've seen other mods do the same basic kind of check, although the end result of their script was different.) I assume I could do something similar to remove values, by just setting all the magical sleep stuff to 0%. Will require testing.
  • Abdel_AdrianAbdel_Adrian Member Posts: 430
    There is no edited version of fl#add_kit_ee.tpa and you only ever need that for the ADD_KIT function anyway.
    There was never an ADD_RACE function or this would have all been old news.

    I would personally use DLTCEP over NI; I've used both extensively and find the former to be a better tool for extracting and viewing files. I edited my 2da's with EditPad Lite, but any notepad-like program will still be inferior to doing the same thing with WeiDU.
  • rapsam2003rapsam2003 Member Posts: 1,636
    edited April 2016

    There is no edited version of fl#add_kit_ee.tpa and you only ever need that for the ADD_KIT function anyway.

    There was never an ADD_RACE function or this would have all been old news.
    No, I figured. Just the reason I was asking was because, as I understand it, the fl#add_kit_ee.tpa finds the last row and appends to that in the respective files for the respective kits. Figured such functionality might useful for adding races, but...thinking on it, that's a WeiDU function...which doesn't exist. I'm tired, lol.

    I would personally use DLTCEP over NI; I've used both extensively and find the former to be a better tool for extracting and viewing files. I edited my 2da's with EditPad Lite, but any notepad-like program will still be inferior to doing the same thing with WeiDU.

    I have DLTCEP. Noob question: is there some way to extend the box windows for that? The .biff box cuts off half the biff file names for some of the biffs. Anyway, will use DLTCEP in the future. It seems NI is all kinds of buggy, now that I'm looking into issues people had with it.
  • Abdel_AdrianAbdel_Adrian Member Posts: 430
    You can't expand the window AFAIK, but you can expand the width/height of any row/column. Just drag the edge until you can read the whole entry. But opening the file into something like editpad is better for actually editing it than doing so directly in DLTCEP - it's just a possibility.
  • rapsam2003rapsam2003 Member Posts: 1,636

    You can't expand the window AFAIK, but you can expand the width/height of any row/column. Just drag the edge until you can read the whole entry. But opening the file into something like editpad is better for actually editing it than doing so directly in DLTCEP - it's just a possibility.

    Yeah, I figured on extracting it and using Notepad++. Btw, any advantages to editpad over other notepad-like programs?
  • Abdel_AdrianAbdel_Adrian Member Posts: 430
    Editpad is just a good notepad program extensively used for this, just like ConTEXT is for tpa's.

    BTW I've done some more testing and I've basically confirmed the concerns I was expressing before. Various things are attached to the IDS, maybe elsewhere too, but hard-coded and untouchable. So a tiefling is *really* just an elf with a new name, regardless of what classes you enable for them they can only play classes that an elf can. You have to enable the kit for elves to play in order for tieflings to play that kit as well. For goblins....they can't choose ANY class. There might be a way around that, but I can promise it'll be difficult. Aasimar was my third test, since they were added to the same file goblin was, but I quit when there wasn't even a strref for them.
  • rapsam2003rapsam2003 Member Posts: 1,636

    Editpad is just a good notepad program extensively used for this, just like ConTEXT is for tpa's.

    BTW I've done some more testing and I've basically confirmed the concerns I was expressing before. Various things are attached to the IDS, maybe elsewhere too, but hard-coded and untouchable. So a tiefling is *really* just an elf with a new name, regardless of what classes you enable for them they can only play classes that an elf can. You have to enable the kit for elves to play in order for tieflings to play that kit as well.

    Interesting...

    As far as tieflings are concerned, that may not be so bad actually. I'll have to think on that.

    For goblins....they can't choose ANY class. There might be a way around that, but I can promise it'll be difficult. Aasimar was my third test, since they were added to the same file goblin was, but I quit when there wasn't even a strref for them.

    Hmm. Well, shit.
  • illathidillathid Member Posts: 320


    Fall-From-Grace is a LN Succubus Cleric, not a LG Tiefling Paladin, did I miss something?

    Yep you did. If a fiend, a literal embodiment of chaos and evil, can reject both I don't see why there should be any problem with a character with only a tiny fraction of fiendish heritage becoming a champion of Law and Good. Would it be common? No. But there's nothing physically preventing them from striving to overcome their heritage to become a Paladin. There's actually canon tiefling paladins in the Forgotten Realms to boot (Kael, Paladin of Torm).


    Irrelevant. Paladins aren't going to be available for tieflings in my mod. If you dislike it, you can feel free to edit the files before doing the WeiDU install.

    You can of course do whatever you want in you mod. Won't stop me from calling it shortsighted though.
    ¯\_(ツ)_/¯
  • rapsam2003rapsam2003 Member Posts: 1,636
    edited April 2016
    So, as @Abdel_Adrian found out, tieflings are basically renamed elves. However, at least tieflings are selectable and such. I'm almost tempted to see if it's possible to bring over assets from IWD2. As you know, tieflings were considered a "human subrace" in IWD2. As such, selecting humans in IWD2 allowed you to pick Tiefling or Aasimar. I don't think that it's that simple though. /sigh

    I'm certain that I can at least get the save bonuses and whatnot added as a script that calls a spell, even if I can't get past the hard-coded bullshit.

    A few Tiefling pics
    Post edited by rapsam2003 on
  • rapsam2003rapsam2003 Member Posts: 1,636
    edited April 2016
    illathid said:

    You can of course do whatever you want in you mod. Won't stop me from calling it shortsighted though.
    ¯\_(ツ)_/¯

    I don't think it's short sight to sit there and consider whether a choice is VALID IN 2E rules. Unlike in 3.5 or 5E, you can't just pick a class and assume you can be any race. The world of Toril was different in 2E than it is in 5E.

    Edit: In terms of the timeline in Toril, the events that happened in Kael's life happened after the time in which 2E was set. Kael was born in 1372 DR, whereas BGEE is set around 1358 DR. The time of troubles occurred in that 1358 (that's our basic setting for BG's saga), and then the spellplague rock the world in 1385 DR. My point is that you can't point at 2E rules and go, "Here's an example" if that example happened after the timeline went on to 3E.
  • GrammarsaladGrammarsalad Member Posts: 2,582
    Are you still having trouble making the new race select a class? Have you modified kittable and created K_X_X files for the race?

    (Sorry, you may have mentioned this. It's a lot to read)
  • Abdel_AdrianAbdel_Adrian Member Posts: 430
    edited April 2016

    Are you still having trouble making the new race select a class? Have you modified kittable and created K_X_X files for the race?

    (Sorry, you may have mentioned this. It's a lot to read)

    That's an insteresting idea....but a real shot in the dark. If you modify CLSRCREQ.2da, any kit you enable or disable for elf will be enabled or disabled for tiefling as well. Adding a tiefling column doesn't actually do anything because a tiefling is just a renamed elf. So tiefling can see classes because the elf can (K_x_E). But Goblin can't see ANY classes even with a column added to CLSRCREQ.2da. There is no selectable race that can't choose any classes, so there's no race to fix in that 2da to fix goblin. There's also no goblin K_x_G files and I doubt the engine would recognize them at all.

    I think the furthest you can get with this really is a slightly modified elf that says tiefling but is restricted to whatever classes and kits an elf can take. Which is horrible for my complete book of elves mod, so even though I've figured it out this far, I probably won't keep tinkering with it.

    edit: okay I lied. Did a little test, adding K_x_GO files and including them in KITTABLE does nothing.
  • rapsam2003rapsam2003 Member Posts: 1,636
    edited April 2016

    Are you still having trouble making the new race select a class? Have you modified kittable and created K_X_X files for the race?

    (Sorry, you may have mentioned this. It's a lot to read)

    I actually created K_x_x files and modified for Tieflings. It doesn't seem to matter. Tieflings are still limited to the same classes as Elves. Honestly, as silly as it sounds, the easiest way to do what I want -- partially, anyway -- seems to be to use @subtledoctor's Might and Guile. From the readme of M&G:
    Component 500:

    Multiclass Kits

    This component liberalizes the multiclassing rules in targeted ways:

    [...]
    Enables elves to be bards, fighter/clerics, cleric/thieves, cleric/rangers, and cleric/mages.
    [...]
    @subtledoctor, mind if I PM you about this?


    Of course, that only solves Tieflings. It doesn't solve Aasimar or Genasi.


    For some ungodly reason (probably because they never figured anyone would mod things way back in '98), unlike the NWN engine, this stuff isn't just picked up by the engine automatically.
  • Abdel_AdrianAbdel_Adrian Member Posts: 430
    I actually did the same exact thing in my mod Eldritch Magic. Elven Bards are enabled with the Bladesinger and the Elven Minstrel kits, Elven Paladins are enabled with the Undead Hunter kit. All that does is allow tieflings to take those kits as well.
    Multiclass kits are also included in my mod, but I don't see how either of these techniques will help differentiate elves and tieflings. You can still only make a kit based on race/alignment/[multi]class, but tiefling will still be limited to the same choices as elves and vice versa.
  • rapsam2003rapsam2003 Member Posts: 1,636
    edited April 2016

    I actually did the same exact thing in my mod Eldritch Magic. Elven Bards are enabled with the Bladesinger and the Elven Minstrel kits, Elven Paladins are enabled with the Undead Hunter kit. All that does is allow tieflings to take those kits as well.
    Multiclass kits are also included in my mod, but I don't see how either of these techniques will help differentiate elves and tieflings. You can still only make a kit based on race/alignment/[multi]class, but tiefling will still be limited to the same choices as elves and vice versa.

    No, you're right. It doesn't do anything for differentiation. But I do want tielfings to be able to be bards (hello, Haer'Dalis!). And tieflings and thieves really go well together, so adding more multiclass theif kits isn't a bad thing.



    Slightly different topic: for the moment, I'm setting the dialog.tlk entries for tieflings by editing the dialog.tlk directly (which I know is dangerous), but I would like to just append to the dialog.tlk in my .tp2 file. The WeiDU documentation mentions how you can create a .D file, create a new dialog.tlk file, and then appending the new dialog.tlk to the already existing default dialog.tlk. Normally, that's done by something like:
    *pre-create your .D file* weidu newTALKING.d --tlkout new-dialog.tlk weidu --tlkcmp-from new-dialog.tlk --tlkcmp-to dialog.tlk

    How would I do that process via the .tp2 file? Any insight, folks?
  • ThelsThels Member Posts: 1,416

    Ugh. See, that's the problem with this idea of "the game already has some 3E-inspired stuff, might as well chuck a bunch more in." Not for nothing, when the transition was happening in PnP, the books had extensive section detailing how the material should be modified to fit whichever system you were playing. So why do people want to mix them now, without any adjustment?

    I mean, 20 DEX, 20 INT... in this game those are literally godlike levels. Whike in 3E it's totally normal. The numbers mean something completely different in each system. Those numbers are wildly unlike the bonuses for any other race in the game, which should tell you something. Also, with every other race, the total of bonuses and penalties adds up to zero. To have a cumulative +2 bonus... especially when the bonus is in a mechanical stat and the penalty is in a dump stat? That's unheard of... for a reason.

    There is a whole lot of difference between "Let's convert everything to 3rd edition" and "Let's look at what they get as 3rd edition for a basis on inspiration".

    Dex 20 Int 20 is not something I'd like to see in a 2nd edition game, as everything 20+ is godlike and has all kinds of special stuff. 19 is still kind of ok, since races can get there.


    But if you look at Tieflings:

    +2 Dexterity, +2 Intelligence, -2 Charisma.
    Medium size.
    A tiefling’s base land speed is 30 feet.
    Darkvision out to 60 feet.
    Racial Skills: Tieflings have a +2 racial bonus on Bluff and Hide checks.
    Racial Feats: A tiefling gains feats according to its class levels.
    Special Attacks (see above): Darkness.
    Special Qualities (see above): Resistance to cold 5, electricity 5, and fire 5.
    Automatic Languages: Common, Infernal. Bonus Languages: Draconic, Dwarven, Elven, Gnome, Goblin, Halfling, Orc.
    Favored Class: Rogue.
    Level adjustment +1.

    So they get a bonus to dex and int, and a penalty to charisma. Obviously, these bonuses and penalties should be +1 and -1 like all the 2nd edition modifiers are. And to level them out, we need to give them another -1 somewhere. Say... Strength?

    Medium size and 30 feet means it's just the same as humans. And they got Darkvision there, so they should get Infravision.

    They get a bonus to hide, so we should probably give them a solid Hide in Shadows racial bonus.

    Giving them minor resistances to Cold, Electricity and Fire could be nice... Nothing too big. Say 10% out of flavor?

    With Rogue as their favored class, they should obviously have access to the Thief class. Obviously need to add a few more to make sense. Bard, Fighter, Cleric, Mage and some dualclass options would make sense to me.

    The Darkness spell, is there anything like that in BG? If not, maybe just give them a different spell as flavor.

    So all in all, use as a base of inspiration, not just blindly applying everything without thinking things through! That's just stupid.
  • rapsam2003rapsam2003 Member Posts: 1,636
    edited April 2016
    @Thels, most of that stuff can be added, via a script. I think most of the modifying on differentiation for tieflings (except in regards to kits, because I can't do anything about their kit choices) will have to be done via a script that runs as soon as the finishes loading and you enter Candlekeep.
    Thels said:

    The Darkness spell, is there anything like that in BG? If not, maybe just give them a different spell as flavor.

    I don't think such a spell exists, and I don't really feel like giving them a free spell, to be frank.
  • Abdel_AdrianAbdel_Adrian Member Posts: 430
    @Thels Okay so you start with 3E for inspiration, but that's unbalanced in a 2E game so you change everything until it's basically the 2E version of a tiefling. Like really freaking close. Starting with a 2E tiefling as your base model would get you to the same end point with less manipulations and justifications. Obviously do whatever floats your boat, but staying consistent with 2E has been nothing but amazingly beneficial for my mods.

    @rapsam2003 I really don't know what you're trying to do with .D files, but once you have your .D written, use WeiDU to COMPILE dialogs.
  • ThelsThels Member Posts: 1,416
    @Abdel_Adrian: Where exactly do you find the stats for 2e tieflings? As I said, I'm not exactly on the spot regarding 2nd edition stuff, so if there's a 2nd edition book that has all those stats neatly listed, then by all means, use that 2nd edition book!

    @rapsam2003: True. Gotta keep in mind that 3rd edition version has Level Adjustment, so it's obviously on the stronger side. I was thinking perhaps something small and more fluff than actually useful, but just not giving them any spell may be better.
  • Abdel_AdrianAbdel_Adrian Member Posts: 430
    edited April 2016
    @Thels It's called "Planewalker's Handbook." It doesn't matter if you're looking at 1st, 3rd, 4th, or 5th edition, the second edition races and classes will always fit best into a 2E game, which Baldur's Gate absolutely is, despite *very minor* 3E influences. Once you start talking about feats, you might as well be trying to mod BG Dark Alliance.
  • ThelsThels Member Posts: 1,416
    @Abdel_Adrian: I completely agree with you. However, 2nd edition doesn't seem to list stats for any race other than the 6 base rases in most of the core books. I had no idea that The Planeswalker's Handbook listed such stats. Of course, in that case, use those first!

    I merely recommended using 3rd's races as a base of inspiration when no 2nd edition rules can be found.
  • rapsam2003rapsam2003 Member Posts: 1,636

    @rapsam2003 I really don't know what you're trying to do with .D files, but once you have your .D written, use WeiDU to COMPILE dialogs.

    The end result I want is to append to the dialog.tlk. Is it possible to find the very last entry in the dialog.tlk and append to it?

Sign In or Register to comment.