Skip to content

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

1246

Comments

  • Abdel_AdrianAbdel_Adrian Member Posts: 430
    @rapsam2003 I don't know how to do what you're asking in the way that you're asking...but that's essentially what compiling a .D file does. It appends the dialog.tlk file at the very end, creating new strrefs so you don't overwrite old ones, or someone else's mod. That's why WeiDU is so great. So write up your .D, use the COMPILE funtion in WeiDU, and it should append the end of dialog.tlk.

    Also, here's page 81 of the Planewalker's Handbook, if you're interested:

  • rapsam2003rapsam2003 Member Posts: 1,636
    Thels said:

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

    Well, to me, there needs to be a reason for giving races things. I mean, if it's just some basic "fluff spell", which has a graphical effect and doesn't actually do anything...well, that's kind of silly.

    I never liked spells like that. For instance, when I play p&p 5E with my buddies, Tieflings always have Thaumaturgy. And it does NOTHING useful, unless the DM is willing to be generous. Here's Thaumaturgy from the 5E PHB:
    Thaumaturgy
    Transmutation cantrip
    Casting Tim e: 1 action
    Range: 30 feet
    Components: V
    Duration: Up to 1 m inute
    You manifest a minor wonder, a sign of supernatural power, within range. You create one of the following
    magical effects within range:
    • Your voice booms up to three times as loud as normal for 1 minute.
    • You cause flames to flicker, brighten, dim , or change color for 1 minute.
    • You cause harmless tremors in the ground for 1 minute.
    • You create an instantaneous sound that originates from a point of your choice within range, such as a rumble of thunder, the cry of a raven, or ominous whispers.
    • You instantaneously cause an unlocked door or window to fly open or slam shut.
    • You alter the appearance of you r eyes for 1 minute.
    If you cast this spell multiple times, you can have up to three of its 1-minute effects active at a time, and you can dismiss such an effect as an action.
    Some people consider that a utility cantrip, but I consider it useless. All it really is, it's for flavor. And it implies tieflings have some latent magical ability by default (because ALL tieflings get this spell in 5E, want it or not).
  • rapsam2003rapsam2003 Member Posts: 1,636
    edited April 2016

    @rapsam2003 I don't know how to do what you're asking in the way that you're asking...but that's essentially what compiling a .D file does. It appends the dialog.tlk file at the very end, creating new strrefs so you don't overwrite old ones, or someone else's mod. That's why WeiDU is so great. So write up your .D, use the COMPILE funtion in WeiDU, and it should append the end of dialog.tlk.

    Ah, that's awesome! The WeiDU documentation did NOT make that clear, at all. lol. So, all I really need to do is to create a .D file and then compile it. Cool.

    Also, I have that exact handbook. It's awesome.
  • Abdel_AdrianAbdel_Adrian Member Posts: 430
    @rapsam2003 That's actually a great utility cantrip - for PnP. PC games are very different, roleplaying is different. You can't cast your cantrip and have NPCs react differently towards you for it, but you can in a tabletop campaign. Same with all other 2e races and kits, there's roleplay mechanics that don't transfer well to a computer game.
  • ThelsThels Member Posts: 1,416
    I personally like it more when different races have different stats. I'm quite a fan of 3.5, but one of the things I dislike about it is all elven subraces having the same abilities, except for stats. I'd much rather see them all having the same stats, and different flavor abilities than "Pick Gray elf if you prefer Int, or Wood elf if you prefer Str." That said, it's true that a lot of flavor abilities don't work well in an old CRPG like this.

    Seems like Abdel Adrian is getting onto something. Does this mean we can actually have multiple races now that 2.0 is available?

    The sheet that abdel linked is also pretty useful. It shows which race can be which class. So Tieflings can be Fighters, Thieves, Clerics and Mages, but not Rangers, Paladins, Druids or Bards.

    Of course, still gotta decide if they get access to Monks, Sorcerers, Shamans and various kits.

    @Abdel_Adrian: Are there other 2nd edition books that show such tables for nonstandard races? And are there restrictions on what races can be implemented in BG?
  • Abdel_AdrianAbdel_Adrian Member Posts: 430
    Thels said:


    @Abdel_Adrian: Are there other 2nd edition books that show such tables for nonstandard races? And are there restrictions on what races can be implemented in BG?

    Yes and yes.
    The Complete Books of Humanoids/Elves/Dwarves/Gnomes & Halflings etc. as well as the 2e Monster Manual and all the various campaigns have tons of "nonstandard races."
    Drow can be found in Complete Book of Elves, Half-Ogres and similar PC options can be found in the Monster Manual (one of the core 3 books, mind you, unlike the Planewalker's Handbook), and then of course there are the planar races we've been discussing.

    We've also been discussing the limitations throughout this thread. Assume they are many and very debilitating. I published a mod with a tiefling kit and a drow kit. I made selectable tieflings, goblins, and aasimars. I still think new races beyond the 7 selectable ones are technically impossible. At least for now.

  • ThelsThels Member Posts: 1,416
    edited April 2016
    Wait, you made them selectable, but you don't think they're technically possible? Did you need to disable others to do so?

    I understand that some racial abilities may be problematic, but if, say for example, we want a load of new races that are all statistically identical to humans, would that be possible?

    I also don't recall the monster manual listing stats for any creature other than the half-ogre.
  • rapsam2003rapsam2003 Member Posts: 1,636

    I made selectable tieflings, goblins, and aasimars. I still think new races beyond the 7 selectable ones are technically impossible. At least for now.

    I forgot to ask, do goblins & aasimars have at least the base class kits for you? Or can they not even select a class period?

  • rapsam2003rapsam2003 Member Posts: 1,636
    edited April 2016
    Thels said:

    Wait, you made them selectable, but you don't think they're technically possible? Did you need to disable others to do so?

    The problem is, if the engine doesn't support a race as a player race (which it only supports the main 7), then adding them just makes it so you can see them in the character screen. Tieflings kind of work as "selectable", but the game treats them as elfs with a different game. As such, you can select them, choose any class kits that elves have, and have all the same attributes as elves.
  • Abdel_AdrianAbdel_Adrian Member Posts: 430

    I forgot to ask, do goblins & aasimars have at least the base class kits for you? Or can they not even select a class period?

    They have nothing, they're unplayable. Changing KITTABLE and adding K_x_x files did nothing because the IDS itself prevents taking a class, AFAIK. There's too many existing IDS' for me to try out, seeing if one or two has a few classes attached. Making a new IDS is a possibility, but not something I'm going to try. Using human, elf, half-orc, even tiefling, and then applying in-game changes is one potential fix, but you're still limited to the classes listed in KITTABLE for whatever race you chose.
  • Abdel_AdrianAbdel_Adrian Member Posts: 430
    Thels said:

    Wait, you made them selectable, but you don't think they're technically possible? Did you need to disable others to do so?

    I understand that some racial abilities may be problematic, but if, say for example, we want a load of new races that are all statistically identical to humans, would that be possible?

    I also don't recall the monster manual listing stats for any creature other than the half-ogre.

    You could, in theory, make races that are just renamed humans the way tieflings are renamed elves. Your new races can take any class a human can though, so this to me is not a solution. You're just writing different strrefs on otherwise 100% human characters.
  • The user and all related content has been deleted.
  • ThelsThels Member Posts: 1,416

    Thels said:

    Wait, you made them selectable, but you don't think they're technically possible? Did you need to disable others to do so?

    I understand that some racial abilities may be problematic, but if, say for example, we want a load of new races that are all statistically identical to humans, would that be possible?

    I also don't recall the monster manual listing stats for any creature other than the half-ogre.

    You could, in theory, make races that are just renamed humans the way tieflings are renamed elves. Your new races can take any class a human can though, so this to me is not a solution. You're just writing different strrefs on otherwise 100% human characters.
    Ok, so it would be impossibly to alter abilities from there? Darn. You made it sound like you were almost there, with that select race screen. I just don't have an idea of what's going on under the hood for BG.
  • rapsam2003rapsam2003 Member Posts: 1,636

    You could, in theory, make races that are just renamed humans the way tieflings are renamed elves. Your new races can take any class a human can though, so this to me is not a solution. You're just writing different strrefs on otherwise 100% human characters.

    It's not a solution, no. But it may be a workaround -- as far as Genasi and Aasimar are concerned. Since Aasimar are generally good, it would be fine to let them be whatever humans are in terms of kits, as that would open up paladins and clerics to them.
    If I think about it, there's really not a lot preventing Genasi from being the different class kits what humans have either. I know that the Planeswalker manual actually specifies very specific class kits for them, but I don't think that makes sense in BGEE. Genasi are rather passionate but aren't really tied to a specific alignment, so they could easily be any alignment.


    As with the other races, I could use a script with a "hidden spell" to set their attributes.
  • rapsam2003rapsam2003 Member Posts: 1,636


    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:

    In addition to the K_B_E files, you also need to edit clsrcreq.2da.
    That's a good point. I'll try that later.
    Thels said:

    Ok, so it would be impossibly to alter abilities from there? Darn. You made it sound like you were almost there, with that select race screen. I just don't have an idea of what's going on under the hood for BG.

    Well, I mean the fact that they are selectable means we're able to get a bit further than before patch2.0. But that's it, just A BIT. The rest of it needs to be done via "hacks" or "workarounds". /shrug

  • Abdel_AdrianAbdel_Adrian Member Posts: 430


    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:

    In addition to the K_B_E files, you also need to edit clsrcreq.2da.
    Of course, that was done.
  • rapsam2003rapsam2003 Member Posts: 1,636
    @Abdel_Adrian, are all of your "races" attached to classes then? So, Abyssal Warrior is changed after the CC screen, for example?
  • rapsam2003rapsam2003 Member Posts: 1,636

    You could, in theory, make races that are just renamed humans the way tieflings are renamed elves. Your new races can take any class a human can though, so this to me is not a solution. You're just writing different strrefs on otherwise 100% human characters.

    It's not a solution, no. But it may be a workaround -- as far as Genasi and Aasimar are concerned. Since Aasimar are generally good, it would be fine to let them be whatever humans are in terms of kits, as that would open up paladins and clerics to them.
    If I think about it, there's really not a lot preventing Genasi from being the different class kits what humans have either. I know that the Planeswalker manual actually specifies very specific class kits for them, but I don't think that makes sense in BGEE. Genasi are rather passionate but aren't really tied to a specific alignment, so they could easily be any alignment.


    As with the other races, I could use a script with a "hidden spell" to set their attributes.
    Update to this: I was able to get Aasimar to display the same classes & kits as humans, which works because humans can select everything and the PlaneswalkerHandbook says that Aasimar can as well.
  • Abdel_AdrianAbdel_Adrian Member Posts: 430

    Update to this: I was able to get Aasimar to display the same classes & kits as humans, which works because humans can select everything and the PlaneswalkerHandbook says that Aasimar can as well.

    Yes, I was able to do the same thing with Goblin and Aasimar, I was correct that more is attached to the IDS than one would think.

    In summary:

    abracead.2da - mods character stats based on race, doesn't work for new races.
    abracerq.2da - min/max statistics, doesn't work for new races.
    clsrcreq.2da - dictates which classes and kits each race can be, doesn't work for new races (i.e. tieflings always reflect elves.)
    kittable.2da and custom K_X_X.2da's - displays kits for races at char generation, doesn't work for new races.
    racethac.2da - determines racial thac0 bonuses, doesn't work for new races.
    racecolr.2da, racefeat.2da, and racetext.2da hardly matter under these circustances.
    New races in v2.0 are still impossible, unless you can figure out something with race.ids.
  • rapsam2003rapsam2003 Member Posts: 1,636
    edited April 2016
    Well, the problem I'm discovering is that even if I select "Aasimar", it will show as "human". Even the bio is the human bio. Which means that, on the CC, race is defined by the race.ids.

    In fact, when I actually finished CC & started a game, the character showed as all human. The only thing that was different was that I was able to see:


    I wouldn't care so much about most of the other stuff (because scripts are a wonderful thing), if I could actually set Aasimar as human and then see everything as "Aasimar" and not "Human".
  • Abdel_AdrianAbdel_Adrian Member Posts: 430

    Well, the problem I'm discovering is that even if I select "Aasimar", it will show as "human". Even the bio is the human bio. Which means that, on the CC, race is defined by the race.ids.

    In fact, when I actually finished CC & started a game, the character showed as all human. The only thing that was different was that I was able to see:

    Actually, that's not what that means. I was explaining that before - no one wrote anything for nonstandard races, there's no text for you to see. The bio actually isn't attached to the ids, it's just a strref and one doesn't exist for some 8th race, you have to write it yourself. The problem isn't the strrefs though bc you can easily change those and have a dozen copies of human that *say* any race you want, but are just humans. To make a true tiefling though, is just a renamed elf, a true goblin/aasimar/genasai doesn't work because of the ids, not the strref.
  • Abdel_AdrianAbdel_Adrian Member Posts: 430
    edited April 2016

    I wouldn't care so much about most of the other stuff (because scripts are a wonderful thing), if I could actually set Aasimar as human and then see everything as "Aasimar" and not "Human".

    My apologies, I misunderstood. This is a bit of a compound problem, but one more reason this is impossible. I'm fairly certain shared IDS' will just set your race to the first of that IDS value on the array. So if your race is set to ids 1 and so is human, which is first on the list, you become a human. You're not even playing as your own race at all. The strrefs were technically changed though, but now for a selectable yet unplayable race.

  • rapsam2003rapsam2003 Member Posts: 1,636
    edited April 2016

    I wouldn't care so much about most of the other stuff (because scripts are a wonderful thing), if I could actually set Aasimar as human and then see everything as "Aasimar" and not "Human".

    My apologies, I misunderstood. This is a bit of a compound problem, but one more reason this is impossible. I'm fairly certain shared IDS' will just set your race to the first of that IDS value on the array. So if your race is set to ids 1 and so is human, which is first on the list, you become a human. You're not even playing as your own race at all. The strrefs were technically changed though, but now for a selectable yet unplayable race.

    Yup. I'm going to have to use a script to "hack" it. /sigh
  • Abdel_AdrianAbdel_Adrian Member Posts: 430

    Yup. I'm going to have to use a script to "hack" it. /sigh

    Let me know if you get a script to work, I'd be interested in the details. Personally I don't think it'll work the way you want. I think it'll either affect the true race (IDS) that you're selecting but not playing, or it'll affect the race you're actually playing as well as the one it's a copy of (e.g. human).
  • rapsam2003rapsam2003 Member Posts: 1,636
    edited April 2016
    Update: will test script tonight. Got tired last night.
    Post edited by rapsam2003 on
  • rapsam2003rapsam2003 Member Posts: 1,636
    edited April 2016
    I got it working! The script checks if the below conditions are true. If all of them are true, it gives the player an innate spell called "Tiefling Origins".
    1. If the player's XP is less than 2000 (basically, if the PC is lvl 1);
    2. If the player's race is Human;
    3. And if the player is within Candlekeep.
    The script is appended to AR2600.bcs, so that it runs in Candlekeep only.





    I even was able to change the bio via the script:

    According IESDP, you can use the action SetPlayerSound to change the biography, because the biography is technically a SoundSlot called "EXISTANCE5".
    SetPlayerSound(O:Object*,I:STRREF*,I:SlotNum*SNDSLOT)


    There is also a 2nd script, appended to AR2700.bcs. (AR2700 is the Candlekeep Coastway. http://baldursgate.wikia.com/wiki/Candlekeep_Coastway ) This script checks if the player still has the spell "Tiefling Origins" memorized. If so, then it will remove the spell.
    Post edited by rapsam2003 on
  • ThelsThels Member Posts: 1,416
    edited April 2016
    @rapsam2003: So rather than being able to select it from the race interface, you need to cast a spell to change your race, and you can only do so before you talk to Gorion to leave Candlekeep?

    Not as nice as being able to select it during the Race step of the character generation.

    By the way, perhaps that can still be integrated in some way. Could you make it so that, say, you have Tiefling listed as an 8th race, but if you choose tiefling, you become, say, a human. But during character generation, when selecting the tiefling race, the tiefling description states that you must cast the "become tiefling" special ability while still in candlekeep?

    Unfortunately, though, that is still much more limited than actual race selection, as the new races can't have their own ability score limits.
  • rapsam2003rapsam2003 Member Posts: 1,636
    edited April 2016
    Thels said:

    @rapsam2003: So rather than being able to select it from the race interface, you need to cast a spell to change your race, and you can only do so before you talk to Gorion to leave Candlekeep?

    Not as nice as being able to select it during the Race step of the character generation.

    By the way, perhaps that can still be integrated in some way. Could you make it so that, say, you have Tiefling listed as an 8th race, but if you choose tiefling, you become, say, a human. But during character generation, when selecting the tiefling race, the tiefling description states that you must cast the "become tiefling" special ability while still in candlekeep?

    Unfortunately, though, that is still much more limited than actual race selection, as the new races can't have their own ability score limits.

    The problem is that, while that would work for Tieflings (because BGEE recognizes Tieflings as a renamed version of Elves), it will NOT work Aasimar or any of the Genasi. What would happen with Aasimar is that it would let you select it as a "valid race", but then you would NOT be able to select any classes or class kits. (Both myself and @Abdel_Adrian already tested this part.) See, the engine hard codes what races can have what kits. Since the engine thinks tielfing == elf, if I did it the way you're describing, then tieflings can select all the elf class kit options. Aasimar will get no class kit options. Same for genasi. Same for gith races, which may be a later addition.

    If I use a script to give a spell, then the user can choose to use the spell or not. The class & class kit would already be chosen. Abilities would be chosen already and then adjusted by the script. Ability adjustments and resistances and thief skills are set by the spell. I am going to be printing out a line to the message panel that informs the user that they have gained an "Origin" spell and tell them what it does.
    Post edited by rapsam2003 on
  • Abdel_AdrianAbdel_Adrian Member Posts: 430
    You could in theory leave tiefling as ID = 153, they would reflect elves, but your script can take that into account. All of my various tieflings that used human now use elf as a starting point and I find that preferable. Tieflings are supposed to look more like elves/half-elves than humans anyway, like Haer'dalis, not to mention it takes care of infravision for you.
    And speaking of infravision - it's cool that you added icons for infravision and elemental resistances, but technically those are inconsistent with current racial bonuses and would not require icons to be displayed, your call.
    I'm also curious why you made them gain the spell with your script rather than just apply the effects of the spell. That way they never have to cast it or unlearn it, it's cast upon them once and is permanent from then on.

    My "solution" was to allow my Abyssal Warrior to only be selectable by elves (rather than humans or otherwise), then I enabled tieflings, which could select elven kits, then you could choose elf OR tiefling, but the Abyssal Warrior kit automatically changes your stats and race from an elf to a tiefling so it wouldn't matter what you choose. This doesn't require a script, but only really works as a CLAB.

    Would you be so kind as to share your script for testing purposes? I wouldn't use it in any published mod without permission and an acknowledgement, of course. (And even then I just want to test it for myself).
  • rapsam2003rapsam2003 Member Posts: 1,636
    edited April 2016

    You could in theory leave tiefling as ID = 153, they would reflect elves, but your script can take that into account. All of my various tieflings that used human now use elf as a starting point and I find that preferable. Tieflings are supposed to look more like elves/half-elves than humans anyway, like Haer'dalis, not to mention it takes care of infravision for you.

    Yeah, they are using 153. The script doesn’t change the model from human to elf, although I believe it actually changes the base thief skills, etc. I may have it change it the model. That might be better.


    In fact, I may actually have the script fire off a spell that changes the race & model from human to elf BEFORE it then changes race to tiefling. That would make it more seemless, I think. I would also have to remove elf magic resistance with a different spell.

    I might do the same thing for Aasimar, once tiefling is rock solid. Because Aasimar also resemble elves/half-elves.

    And speaking of infravision - it's cool that you added icons for infravision and elemental resistances, but technically those are inconsistent with current racial bonuses and would not require icons to be displayed, your call.

    True. It was more a visual way to show it was working. Mostly for testing. Will remove in official release.

    I'm also curious why you made them gain the spell with your script rather than just apply the effects of the spell. That way they never have to cast it or unlearn it, it's cast upon them once and is permanent from then on.

    Well, the intent is to allow the player to choose one spell from a group of multiple spells. So, one could be “tiefling” or “Aasimar”, etc. I haven’t added it yet, but the idea would be that picking one “origin” would then cause the user to be unable to pick another. If a user wanted to pick another race like that, they would have to start a new game.

    My "solution" was to allow my Abyssal Warrior to only be selectable by elves (rather than humans or otherwise), then I enabled tieflings, which could select elven kits, then you could choose elf OR tiefling, but the Abyssal Warrior kit automatically changes your stats and race from an elf to a tiefling so it wouldn't matter what you choose. This doesn't require a script, but only really works as a CLAB.

    What did you for Aasimar, if I may ask?

    Would you be so kind as to share your script for testing purposes? I wouldn't use it in any published mod without permission and an acknowledgement, of course. (And even then I just want to test it for myself).

    I will send it to you later. I am unable to send it now, because I’m not at home.
Sign In or Register to comment.