Skip to content

[How to] Making kit mods for the EE!

189101113

Comments

  • CrevsDaakCrevsDaak Member Posts: 7,155
    edited June 2019
    SX1050 wrote: »
    My thoughts on how to manage:

    Eff1 -> brings Lvl2
    Eff2 -> brings Lvl4 and deletes Lvl2
    Eff3 -> brings Lvl6 and deletes Lvl4

    But I dont know HOW...

    I see no chance in increasing the amount of damage, and deleting an eff could maybe possible...

    Any hints or ideas for me?
    I think you could add opcode 321 to each file and remove the one behind it, applying the custom spells via the CLAB table (I'm not sure what could happen if they're applied all at once, if a lower level one remains, you should add a 1 second delay to the removal opcode, but I doubt the game engine could possibly get order of effect application wrong).
    I'm not really sure whether opcode 321 will remove effects marked with duration 9 and dispel 2, but if that works, that's it.
    Ideally you should use one spell for each time the effect needs to change so that the damage is upgraded.
    Mind you that if you plan on making your mod compatible with the original game, you'll find using opcode 321 might not be as ideal, but I don't know of any other way to do this.
  • SX1050SX1050 Member Posts: 8
    edited June 2019
    Hello again,

    I have searched through all the opcodes and tried some, but without succeed.

    I decided to gain the full abbility (200Dmg 3% activationchance) on LvL 1 (!!!), but you must be minimum Lvl 10 to trigger the abbility.

    Now I have another Problem, I know how to create a custom weapon, how do I place it in the game?

    Problem solved :)

    greetings sx1050
    Post edited by SX1050 on
  • CaloNordCaloNord Member Posts: 1,809
    edited June 2019
    Okay this worked just fine for me too, however, it's not showing up in the kit list for mages?
    I can ee keeper it onto a character no problem, but there is no custom name in the character sheet or anywhere else?? :/:(

    Use tiny words, I'm terrible at this. :P
    Post edited by CaloNord on
  • SX1050SX1050 Member Posts: 8
    Hello CaloNord,

    the maximum possible count of kits for a class are 10. Mages already have 10 Kits, so you have to delete/disable one kit to show your own.

    greetings sx1050
  • CaloNordCaloNord Member Posts: 1,809
    I thought we'd fixed that? I have scroll bars in my cleric kits for example, there are about 30 in there?
  • CrevsDaakCrevsDaak Member Posts: 7,155
    CaloNord wrote: »
    Okay this worked just fine for me too, however, it's not showing up in the kit list for mages?
    I can ee keeper it onto a character no problem, but there is no custom name in the character sheet or anywhere else?? :/:(

    Use tiny words, I'm terrible at this. :P

    Post your code so I can take look at it, it's easier to find out what's wrong that way.
  • RaduzielRaduziel Member Posts: 4,714
    SX1050 wrote: »
    Hello CaloNord,

    the maximum possible count of kits for a class are 10. Mages already have 10 Kits, so you have to delete/disable one kit to show your own.

    greetings sx1050

    That's no longer a thing.
  • CaloNordCaloNord Member Posts: 1,809
    It's very bare bones, just a straight copy paste from the first post.

    BACKUP ~Archmage/backup~
    AUTHOR ~Calo~

    BEGIN "Archmage kit for Mages"
    INCLUDE "Archmage/lib/fl#add_kit_ee.tpa"
    ADD_KIT ~C1AM~
    ~C1AM 1 1 1 1 1 1 1 1~
    ~C1AM 0 2 0 0 2 0 0 2 0 0 0 0 0 0 0 2 0 2 0 0 0 0 2 0 0 0 2 2 2 0 2 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0~
    ~C1AM 0 9 0 0 0 0~
    ~C1AM 0 0 0 0 0 0~
    ~C1AM 69 666 0 0 7 42~
    ~C1AM 0 15 0 0 0 0~
    // LG LN LE NG TN NE CG CN CE
    ~C1AM 1 1 1 1 1 1 1 1 1~
    // F C M T D R
    ~C1AM 1 1 0 1 0 0~
    ~Archmage/CLABC1AM.2da~
    ~K_M_H K_M_D K_M_G K_M_E K_M_HE K_M_HL K_M_HO~
    ~0x00002000 1~
    ~CAM~
    ~* * * BAG28 * * * BOOT01 AMUL17 * * AROW11,80 * * * * * DAGG12 SW1H28 *~
    SAY ~archmage~
    SAY ~Archmage~
    SAY ~ARCHMAGE: The highest art is magic - often referred to as the Art. Its most advanced practitioners are frequently archmages, bending spells in ways unavailable to other spellcasters. Decades of practice have made these individuals some of the most powerful and respected on Faerun.~

    LAF fl#add_kit_ee
    INT_VAR
    biography = 29492
    briefdesc = RESOLVE_STR_REF (~ARCHMAGE: The highest art is magic - often referred to as the Art. Its most advanced practitioners are frequently archmages, bending spells in ways unavailable to other spellcasters. Decades of practice have made these individuals some of the most powerful and respected on Faerun.~)
    fallen = 0
    fallen_notice = RESOLVE_STR_REF (~You have failed ur ppl.~)
    STR_VAR
    kit_name = ~C1AM~
    backstab = ~1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1~
    clswpbon = ~1 0 3~
    numwslot = ~2~
    thiefskl = ~0 0~
    traplimt = 60
    clascolr = ~35 67 67 25 80~
    clasiskl = ~0 0 0 0 0 0 0~
    thiefscl = ~0 0 0 0 0 0 0 0~
    hpclass = ~HPAM~
    clsrcreq = ~1 1 1 1 1 1 1~
    clasthac = ~0~
    sneakatt = ~1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1~
    crippstr = ~0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0~
    END

    COPY "Archmage/CLABC1AM.2DA" override
    "Archmage/LUCAM.2DA" override
    "Archmage/HPAM.2DA" override
  • CrevsDaakCrevsDaak Member Posts: 7,155
    CaloNord wrote: »
    It's very bare bones, just a straight copy paste from the first post.
    The code in the first post is meant more as an example than anything else, I wouldn't really expect it to work, and, it has many strings that are useless in real mods (particularly the part for the new EE kit extensions). There's many other things such as the HP table that if you're not changing from the base-class it's better to leave aside (if you are, fair game, but adding identical files to the game is pointless).
    The function that performs the EE extensions will fill in anything you leave empty with the class defaults.
    That said, I have absolutely no idea why yours in particular would be failing. I know barely anything compared to what I used to.
  • RaduzielRaduziel Member Posts: 4,714
    edited June 2019
    @CaloNord

    I see no obvious reasons for your kit not be showing up - at least not in the code.

    Have you tried to click, hold and drag to see if the kit list scrolls down and shows your kit?

    For some reason Beamdog thought that a scrollbar is not necessary. This drove me nuts for hours first time I had this issue.
  • CaloNordCaloNord Member Posts: 1,809
    edited June 2019
    Alright, progress. Using @Raduziel handy Barbarian-Shaman as a base and tweaking it and some stuff from the OP to my own ends (it was a tutorial kit ;) I've been able to get it all in game and working. It displays as it should now and seems to work just fine. :):)

    This is just a test, but it seems to be working as intended.
    dbdwvc1i9bob.png


    Side note, Kitlist.2da, unusuable flags, what are the defaults for a mage??





    Post edited by CaloNord on
  • ArthasArthas Member Posts: 1,091
    Is there an easy way to remove disadvantages from a kit?
  • SX1050SX1050 Member Posts: 8
    If you know how to mod a class, YES

    If you dont know, NO

    You should read the "How To" from the beginning.

    Which class is it you want to modify and what is the disadvantage?
  • RaduzielRaduziel Member Posts: 4,714
    Arthas wrote: »
    Is there an easy way to remove disadvantages from a kit?

    It depends.

    Some kits have its penalties delivered by spells through their CLAB. Editing the entry that matches this spell to "****" seals the deal.

    Some kits have their disadvantage linked to their usability flag. Those are trickier to deal with.
  • ArthasArthas Member Posts: 1,091
    @SX1050 @Raduziel

    I would like to remove all the disadvantages of this kit: https://www.gibberlings3.net/mods/kits/geomantic/

    and why not... I would do the same with this kit:

    http://www.shsforums.net/files/file/132-druidic-sorcerer-kit/
  • CryosaurCryosaur Member Posts: 15
    Question about UNUSABLE flags: Is zero (0x00000000) a valid kit usability? If so, is it different from the "Base Class" (0x00004000) usability, and how so?
  • RaduzielRaduziel Member Posts: 4,714
    @Cryosaur

    All my kits uses the zero flag with no issues so far.

    I don't know the difference between using it or the trueclass flag as when it comes to modding I'm basically a drunk monkey trying to write a symphony.
  • southfla79southfla79 Member Posts: 214
    edited July 2019
    Arthas wrote: »
    @SX1050 @Raduziel

    I would like to remove all the disadvantages of this kit: https://www.gibberlings3.net/mods/kits/geomantic/

    and why not... I would do the same with this kit:

    http://www.shsforums.net/files/file/132-druidic-sorcerer-kit/

    @Arthas. The spell that applies the XP penalty is CA#XPMOD. You can replace that from the kits clab file (ca#dsor.2da) with **** prior to install. That should remove the penalty for the kit. This is for the geomantic kit.

    You could probably figure out the spell for the druid sorceror kit if you look at the tp2 file. Hopefully the spell is commented so you know what is what.
  • CryosaurCryosaur Member Posts: 15
    Raduziel wrote: »
    Many of my kits use the zero flag with no issues so far.

    So, zero is a valid unusability... Hmm, and I see that the value does get written to KITLIST.2da unchanged--weidu does not silently auto-correct it. Does anyone with more... xp or lore (heh) know if there is a difference between zero and the "base class" unusability?
  • kjeronkjeron Member Posts: 2,368
    Cryosaur wrote: »
    So, zero is a valid unusability... Hmm, and I see that the value does get written to KITLIST.2da unchanged--weidu does not silently auto-correct it. Does anyone with more... xp or lore (heh) know if there is a difference between zero and the "base class" unusability?
    Zero is no unusability flags.
    Base Class unusability flag is used by various items/spells exclusive to the Wild-Mage to exclude the Trueclass/Generalist Kit from using them. Prior to op319, it was also used (and may still be) to restrict items specifically to a single kit.
  • GwendolyneGwendolyne Member Posts: 461
    edited July 2019
    If you want a kit that is classical and EE games compatible; there is a great chance you need to specify specific usability flags as classical games don't recognize opcode #319.

    For example, I use

    0x12000008 for the Diamond Knight = Cavalier (0x00000008) + Shapeshifter (0x10000000) + Helm (0x02000000)
    Flag Cavalier = no throwing weapons
    Flag Shapeshifter = used to remove armors (except plates), shields (except large), flails, maces and morningstars usability ; and to add plates, medium shields and katanas usability.
    Flag Helm = used to remove daggers, halberds, short swords and crossbows usability ; and to add medium shields and katanas usability.

    0x04200020 for the Unicorn Rider = Undead Hunter (0x00000020) + Blade (0x00200000) + Lathander (0x40000000)
    Flag Undead Hunter = paladin (used to make it different from the Diamond Knight).
    Flag Blade = used to remove plates, splint, chain mails, large shields and composite bows usability ; and to add medium shields usability.
    Flag Lathander = used to remove halberds, two handed swords and crossbows usability ; and to add medium shields and katanas usability.
    Post edited by Gwendolyne on
  • CryosaurCryosaur Member Posts: 15
    kjeron wrote: »
    Zero is no unusability flags. Base Class unusability flag is used by various items/spells exclusive to the Wild-Mage to exclude the Trueclass/Generalist Kit from using them. Prior to op319, it was also used (and may still be) to restrict items specifically to a single kit.
    I understand all that. What I mean is that no kits in the base game have zero unusability; the base kits without their own flag use a combination of flags or the "Generalist" flag. Even though the game doesn't explode if your custom kits use zero unusability, it seems like there might be unforeseen consequences. What I wanted to know is if anyone is aware of reasons (besides the very limited Wild Mage equipment thing) to definitely assign the "Generalist Mage or Other Kit" flag to a custom kit.

    @Gwendolyne Do you know of a list of all the flags that includes hidden (hardcoded) side effects?
  • The user and all related content has been deleted.
  • sybs1213sybs1213 Member Posts: 2
    Hi all, I am new to BG modding and working on something like Beguiler of 3.5e (a mixture of some roger abilities and enchantment&illusion spells). For now, I use bard as the base class, but the issue is that bark cannot cast any higher-than-6-level spells. Just wonder if it is possible to remove the spell level cap. THX
  • CrevsDaakCrevsDaak Member Posts: 7,155
    sybs1213 wrote: »
    Hi all, I am new to BG modding and working on something like Beguiler of 3.5e (a mixture of some roger abilities and enchantment&illusion spells). For now, I use bard as the base class, but the issue is that bark cannot cast any higher-than-6-level spells. Just wonder if it is possible to remove the spell level cap. THX
    Yes, you just have to add a bunch of columns to the mxsplbrd table. Mind you that you will also modify the Bard base-class this way. You can probably use the opcode to give extra Mage spells per level to remove those for the other kits and base-class anyway.
  • sybs1213sybs1213 Member Posts: 2
    CrevsDaak wrote: »
    Yes, you just have to add a bunch of columns to the mxsplbrd table. Mind you that you will also modify the Bard base-class this way. You can probably use the opcode to give extra Mage spells per level to remove those for the other kits and base-class anyway.

    Cool! Thank you very much for your tips :D

  • nysinysi Member Posts: 60
    edited August 2019
    First I would like to thank CrevsDaak and all of those helping on this subject.

    I've been able to progress a lot on kit making today but got stuck by a strange thing, and it look a lot like the issue SX1050 got on precedent page.

    The funny thing is that I was also doing a Deathbringer kit for warrior. And plan to add it to Sarevok.

    Issue : My kit show up in the character selection screen, but when I'm in game, the character is shown as fighter in the character screen.

    - I've made my mod with Weidu and do not get any error during installation.
    - I've rewrite my code several time and even tried to make another kit from scratch but got the same problem.
    - I've try to make the mod work on BG2EE without any other mod and an EET installation (with mod) : Same issue.
    - If I create a new character, choose Deathbringer kit, I got a fighter in game. If I level it, I do not gain ability from my clab*.2da file. If I save the game and edit it with shadowkeep, I can see "Deathbringer" as the kit for my character.
    - I got the same issue if I summon Sarevok after my mod patch its CRE file. It's a fighter, shown as Deathbringer in the save when looking with Shadowkeeper

    TP2 is as follow :
    BACKUP ~NysiMod/Backup~
    AUTHOR ~Nysi (vottevaere@gmail.com)~
    VERSION ~v1.0~
    ALWAYS
      INCLUDE ~%MOD_FOLDER%/lib/fl#add_kit_ee.tpa~
    END
    
    // Sarevok
    BEGIN ~Add a Deathbringer Kit to Sarevok~
    ADD_KIT ~NY2DBG~
      ~NY2DBG                1           1           1           1           1           0           0           0~
      ~NY2DBG 0 1 0 0 1 0 0 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0~
      ~NY2DBG                0       9       0       0       0       0~
      ~NY2DBG                0       0       0       0       0       0~
      ~NY2DBG                0       0      0       0       0       0~
      ~NY2DBG                0       0      0       0       0       0~
      ~NY2DBG                0       1       1       1       1       1       1       1       1~
      ~NY2DBG                1       1       1       0       0       0~
      ~%MOD_FOLDER%/2da/clabnydb.2da~
      ~K_F_H~
      ~0x00080000    4~
      ~fl1~
      ~LEAT14 * * BAG28 RING06 RING05,10 * BOOT02 AMUL19 BRAC16 BELT06 AROW11,40 BULL03,40 BOLT06,40 POTN52,5 POTN04,2 POTN14,5 DAGG12 SW1H28 STAF08~
    SAY ~deathbringer~
    SAY ~Deathbringer~
    SAY ~DEATHBRINGER: Deathbringers are a special group of warriors trained in the art of intimidation and war. 
    
    They can scare their enemies into paralyzation by locking eye contact, as well as destroy in a single blow. 
    They are also a group of scattered cultists that are still trying to revive Bhaal, even though his essence is locked up in the Upper Planes.
    
    Advantages:
    - At 10th level gains Deathbringer Assault
    
    Disadvantages:
    - -3 penalty to Wisdom and Charisma~
    
    LAF fl#add_kit_ee
      INT_VAR
        briefdesc = RESOLVE_STR_REF (~DEATHBRINGER: Sarevok unique class.~)
      STR_VAR
        kit_name = NY2DBG
        clasiskl = "" // Inherit from parent class
    END
    
    // Change Sarevok kit to Deathbringer
    COPY ~override/sarevok.cre~ ~override~
          READ_BYTE 0x272 race
          READ_BYTE 0x273 class
          READ_BYTE 0x246 kit
          PATCH_PRINT ~%SOURCE_FILE% was a %class% with kit %kit%.~
          PATCH_IF class = 2 THEN BEGIN
            WRITE_SHORT 0x246 (IDS_OF_SYMBOL (~kit~ ~NY2DBG~))    
                
            READ_BYTE 0x272 race
            READ_BYTE 0x273 class
            READ_BYTE 0x246 kit    
            PATCH_PRINT ~%SOURCE_FILE% is now a %class% with kit %kit%.~    
    END
    


    If one of you could have a clue, I would be really grateful.

    @SX1050
    You said you resolved your issue after correcting something into clastxt.2da ?
    I do not have this file in my installation, may be you were not using an EE version?
    Can you tell me what you did to solve your issue?
  • kjeronkjeron Member Posts: 2,368
    ...
      ~0x00080000    4~
    ...
    
    4 = THIEF
    Needs to be "2" (FIGHTER):
    ~0x00080000    2~
    
  • nysinysi Member Posts: 60
    My bad you're right !
    I've made the change and it's now working. Thanks a lot.

    I don't know how but I was sure 4 was for fighter
  • The user and all related content has been deleted.
Sign In or Register to comment.