Skip to content

[MOD] - Change Kits and add Kit overlays.

2»

Comments

  • Gel87Gel87 Member Posts: 415
    Okay, version 8 had loads of bugs, missing things etc xD

    Version 9 is soon done.
    Im missing this as i know of:
    - Remove profience possibilities for shortbow for shaman kit.
    - Check or Poisonous root spile has the proper bams etc assosiated.
    - Manually build the Learn Cleric and Learn Druid spells into wizard book.
    - Fix the learn druid to cleric spellbook script. And manually make the learning spell.
    - All monks combined with add superkit to darkmoon did not add superkit… tried moving the function to live script, lets see.
    - So im super close to a finnished version of mod. Dare i say it allows several thousand new «builds», almost everything can be tuned and combined now.


    Then i think in done :)
    Met some wierdness where monk was reacting to class fighter, shaman was reacting to class druid. Fixed that, but allows to overlay druid kit on shamans via Ability/potion of customization.
    Built potion of customization into a spell instead, because it failed. But the real fault was:
    No trigger in dialog, affed a True() and it worked. So i guess i can convert back.
    Also had to change all LastSummonerOf(Myself) after dialog to LastTalkedToBy(Myself).
  • Gel87Gel87 Member Posts: 415
    Okay, here is version 9.
    1 thing dont work: Druid spells into cleric spellbook.

    All Customization feature dont work if you choose to many choices at once. But you can clua Console GelPot1 and do as many times as you want.
    C:CreateItem("GelPot1")

  • Gel87Gel87 Member Posts: 415
    Okay, now i think i fixed all bugs ^^
    Finally i got a fully working code i believe.

    Version 10:
  • Gel87Gel87 Member Posts: 415
    edited May 12
    VERSION 11 attached here.
    Added Luck and Lore features.
    Fixed psionic blast.
    Fixed some other stuff..

    Okay, so i tested the potion menu fully:
    Thaco
    Speedfactor
    Ac
    Theese had wrong description, chosing nerf gave buff etc… fixed.

    Imminity features had wrong targeting code, basicly added them to creature xD… same with innate spells… fixed

    Opened up the backstab section for shaman. Tested on the Barbarian / Shaman in combi with shaman invisible dance. Choose modifier value via potion system. Worked wonders. Enabled axe backstab in installer, so was done while dual wielding axes.

    Tested adding totemic druid as overlay on shaman, worked wonders. Spirit animals availeble.

    Future plans:
    - Add luck modifiers
    - Add lore modifisers
    - Add animation changes
    - Add more custom spells and innates and level based packages. Adding stuff from some kits i made and like.

    This way you can basicly make ur own kit exactly how you want it with some extra fun feature.

    Forexample change animation to mindflayer, add devour attack, psionic innate package based on level. Or ability per ability.

    Installer option:
    Add all classes to backstab.2da so you can use potion to add backstab modifier. I will make 1 section per relevant class.

    Since im stuck on phone i will start making codes for it:
    /////// ====GelTDia.D==== //////
    // GelPotionOfChoices
    IF ~GlobalLT("GelLuckChoice","LOCALS",1)~ THEN REPLY ~I want to modify my luck~ DO ~SetGlobal("GelLuckChoice","LOCALS",1)~ GOTO GelLuckChoice
    
    IF ~GlobalLT("GelLoreChoice","LOCALS",1)~ THEN REPLY ~I want to modify my lore score~ DO ~ SetGlobal("GelLoreChoice","LOCALS",1)~ GOTO GelLoreChoice
    
    IF ~~ THEN BEGIN GelLuckChoice
      SAY ~Choose your luck bonus~
        IF ~~ THEN REPLY ~+1 Luck.~ DO ~SetGlobal("GelLuckBonusPlus1","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~+2 Luck.~ DO ~SetGlobal("GelLuckBonusPlus2","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~+3 Luck.~ DO ~SetGlobal("GelLuckBonusPlus3","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~+4 Luck.~ DO ~SetGlobal("GelLuckBonusPlus4","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~-1 Luck.~ DO ~SetGlobal("GelLuckBonusMinus1","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~-2 Luck.~ DO ~SetGlobal("GelLuckBonusMinus2","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~-3 Luck.~ DO ~SetGlobal("GelLuckBonusMinus3","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~-4 Luck.~ DO ~SetGlobal("GelLuckBonusMinus4","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~I dont want it, go back.~ GOTO GelPotionOfChoices 
    END
    
    IF ~~ THEN BEGIN GelLoreChoice
      SAY ~Choose your Lore bonus~
        IF ~~ THEN REPLY ~+10 Lore.~ DO ~SetGlobal("GelLoreBonusPlus1","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~+20 Lore.~ DO ~SetGlobal("GelLoreBonusPlus2","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~+30 Lore.~ DO ~SetGlobal("GelLoreBonusPlus3","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~+40 Lore.~ DO ~SetGlobal("GelLoreBonusPlus4","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~-10 Lore.~ DO ~SetGlobal("GelLoreBonusMinus1","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~-20 Lore.~ DO ~SetGlobal("GelLoreBonusMinus2","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~-30 Lore.~ DO ~SetGlobal("GelLoreBonusMinus3","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~-40 Lore.~ DO ~SetGlobal("GelLoreBonusMinus4","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~I dont want it, go back.~ GOTO GelPotionOfChoices
    END
    
    //// ==== GelTDia.baf //////
    IF
      Global("GelLuckBonusPlus1","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuP1",LastTalkedToBy(Myself)))
        SetGlobal("GelLuckBonusPlus1","LOCALS",2)
    END
    
    IF
      Global("GelLuckBonusPlus2","LOCALS",1)
    THEN
      RESPONSE #100
         ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuP1",LastTalkedToBy(Myself)))
         ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuP1",LastTalkedToBy(Myself)))
         SetGlobal("GelLuckBonusPlus2","LOCALS",2)
    END
    
    IF
      Global("GelLuckBonusPlus3","LOCALS",1)
    THEN
      RESPONSE #100
         ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuP1",LastTalkedToBy(Myself)))
         ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuP1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuP1",LastTalkedToBy(Myself)))
         SetGlobal("GelLuckBonusPlus3","LOCALS",2)
    END
    
    IF
      Global("GelLuckBonusPlus4","LOCALS",1)
    THEN
      RESPONSE #100
         ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuP1",LastTalkedToBy(Myself)))
         ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuP1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuP1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuP1",LastTalkedToBy(Myself)))
           SetGlobal("GelLuckBonusPlus4","LOCALS",2)
    END
    
    IF
      Global("GelLuckBonusMinus1","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuN1",LastTalkedToBy(Myself)))
        SetGlobal("GelLuckBonusMinus1","LOCALS",2)
    END
    
    IF
      Global("GelLuckBonusMinus2","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuN1",LastTalkedToBy(Myself)))
        SetGlobal("GelLuckBonusMinus2","LOCALS",2)
    END
    
    IF
      Global("GelLuckBonusMinus3","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuN1",LastTalkedToBy(Myself)))
        SetGlobal("GelLuckBonusMinus3","LOCALS",2)
    END
    
    IF
      Global("GelLuckBonusMinus4","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuN1",LastTalkedToBy(Myself)))
        SetGlobal("GelLuckBonusMinus4","LOCALS",2)
    END
    
    IF
      Global("GelLoreBonusPlus1","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoP1",LastTalkedToBy(Myself)))
        SetGlobal("GelLoreBonusPlus1","LOCALS",2)
    END
    
    IF
      Global("GelLoreBonusPlus2","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoP1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoP1",LastTalkedToBy(Myself)))
        SetGlobal("GelLoreBonusPlus2","LOCALS",2)
    END
    
    IF
      Global("GelLoreBonusPlus3","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoP1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoP1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoP1",LastTalkedToBy(Myself)))
        SetGlobal("GelLoreBonusPlus3","LOCALS",2)
    END
    
    IF
      Global("GelLoreBonusPlus4","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoP1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoP1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoP1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoP1",LastTalkedToBy(Myself)))
        SetGlobal("GelLoreBonusPlus4","LOCALS",2)
    END
    
    IF
      Global("GelLoreBonusMinus1","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoN1",LastTalkedToBy(Myself)))
        SetGlobal("GelLoreBonusMinus1","LOCALS",2)
    END
    
    IF
      Global("GelLoreBonusMinus2","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoN1",LastTalkedToBy(Myself)))
        SetGlobal("GelLoreBonusMinus2","LOCALS",2)
    END
    
    IF
      Global("GelLoreBonusMinus3","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoN1",LastTalkedToBy(Myself)))
        SetGlobal("GelLoreBonusMinus3","LOCALS",2)
    END
    
    IF
      Global("GelLoreBonusMinus4","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoN1",LastTalkedToBy(Myself)))
        SetGlobal("GelLoreBonusMinus4","LOCALS",2)
    END
    
    // copy easier on pc
    //
    
    
    Post edited by Gel87 on
  • Gel87Gel87 Member Posts: 415
    edited May 16
    I have made so much progress now.
    Adding loads of stuff.
    Adding loads of items.
    Adding loads of kits.
    There are so much updates now, so i had to take a break from implementing new stuff and actually make the new version 13? installable. Then i can test if all the bams etc are featured. And that is excellent to test on a completely different baldur's gate folder at work. Then i can easier see if i miss any bams etc.

    Once im done with implementing all the custom kits and spells and items i want, i can enjoy testing them out at work, finnishing up some good ideas i had, make new cool .bam files and balance some stuff better :D

    But since my PC is very old, i make a backup here:

  • Gel87Gel87 Member Posts: 415
    And the new stuff to implement:
    Dno why this one is so big..
  • Gel87Gel87 Member Posts: 415
    Okay, now i have added and tested way more. Newest update here. Fixed some bugs, changed from op code 147 to 171 in TMC and FMTC kits. (avoid xp gain by learning).

    I do have plans to introduce a few more kits and its spells later:
    Maleficent - FMC
    Siren - (Archer)
    Succumb Forest Demon - Shaman kit.
    Skeleton - FMT
    Demon Knight - Will convert from current thief to paladin.
    Necromancer Diablo style.(mainly as a spell package)
    Anti Bard (Glassmaster)

    And more animation changes.
    Skeleton
    Succumb
    Siren
    Orc
    Goblins
    Hoogoblin
    Ogre
    Ogre mage
    Githyankee
  • IllustairIllustair Member Posts: 897
    Looks great!

    How does this interact with mods that add spells, say, OlvynSpells?
  • Gel87Gel87 Member Posts: 415
    edited June 8
    Illustair wrote: »
    Looks great!

    How does this interact with mods that add spells, say, OlvynSpells?

    It depends. Dont know this mod excact.
    Usually not a problem.
    Most vanilla kits are added to the features + some of my own.

    So:
    - Clab table functions are appended, its not overwritten.
    - Overlay kits are in vanilla form, but often mods alter spells. Like RR alters the basespell and then its included, meanwhile death attack is a new named spell which i manual added. If RR is installed you will get it, it RR is not installed you will cast the spell to learn it but will learn nothing as it dont exist.
    - Actually changing the kit, will use the version of the kit your game has.
    - Druid to cleric -> Cleric spellbook, automatic and will find all devine between SPPR100 to 720 or 750 or so. Which means it will include SCS and Iceiwindifications spells.
    - Cleric and Druid spells into wizard book automaticly find all spells within its range, but i decided to only learn specific of it as a wizard with both wizard, druid, cleric and shamn spells included is pretty filled... So i ingored useless ones.

    In most cases your class will learn what ur game is set up to make them learn, same with vanilla kits. But custom kits will not be able to dual from into a new kit, or as overlay. But you can dual them, and then add a overlay on ur 2nd class. Or actually both when level is regained/class reactivated..

    Hard to explain. Your other mods will work, but they may not be content in the kitchanger: Dual to kit, dual to kit and keep old kit, will not work. For multiclasses or potion meny your custom kits should be able to overlay kits(if a multiclass able class).

    Spells will still be able to learn into mage book, and if game is set up to learn new custom spells into priest book that will work as before. I do not alter, i add/overlay and use the things that are in the game itself.

    But i do not search and build the dialog with all the kits your installation has, like Customizable NPC's does.

    I will try to better explain how it works:

    1. All Generalist clab table's gets appended a automatic summoning of kitchanger.
    * This results in: Are you or an NPC a generalist the kitchanger will be summoned.
    * NPC's which are already kitted will get it as well. Via script.
    * If you are a kit and then dual. You always dual into a generalist. Which means creature summon again. You can choose to keep that kit via spell package(if its a vanilla one). And then overwrite its true kit when you change to a new kit on 2nd class. This will clear ur old clab file, and once re-activation of first class happens a new generalist clab table will apear and summon the creature. Now the game reads you as a kind of multiclass example: FIGHTER_THIEF, and you can overlay kits both sides.
    * If you did not overwrite ur first kit, this re-activation point does not introduce a new generalist clab table and you will not get the creature upon class re-activation.
    * A multiclass will summon 2 creatures, so you can overlay 2 kits each side. Or none. The choice is urs. A triple class will summon 3 creatures, one each generalist clab table, and you can in u want overlay 3 kits each class.

    2. When you start, you will have to rest once to trigger the action to give player 1 the override script(NPC has it appended). you will also gain 2 x potions of customization. Player1D.bcs is a rest based script which triggers 1 IF section each rest. It was a fine place to put on a override script on player 1... NPC's are not affected by this. They already have the script appended.

    3. The potion of customization is a different tool, a different dialog. It has tons of choices to make the character however you want. I will maby add more later. But you can tune your stats both ways, add backstab, reduce backstab, add attributes. Add innate, wizard, priest spells, or spellpackages based on levels. You can change into some animations, more are planned, but now its like mindflayer, Banshee(Wailing Virgin), Siren i think, Half Dragon and possible skeleton, i dont remember. Ye vampire too. You can also change race, but i noticed not all the different installs support that, and you have to think about the dual class cases etc...). I have completed the game as Vampire Race, without any issues while using override script. So it should not break such features. Your race is also included in some dialogs troughout the game.

    The potion can also overlay kits. But only for classes that can be a part of a multiclass. Some choices are hidden from unrelevant classes.
    But some classes are read as 2 classes in the game:
    Shaman also react to Druid.
    Monk also react to Fighter.

    This means the potion menu allows overlaying kits from those classes in potion menu, meanwhile i prevented that i kitchanger dialog.

    I would adivse to read the two dialogs:
    GelTDia.D - Potion dialog
    GelNDia.D - Kitchanger dialog

    That will give a very good overview of whats possible.
    My last post contains the newest version:
    Version 15.

    Its more than a kitrelated thing now.
    Lets say you want to play as a Blade, but you would like backstab and 1/2 attacks per round on level 7 and 13, then potion menu can do that. It requires no kitchange or whatever.

    Lets say you want your paladin to backstab with 2 handed swords, well installer + potion menu allows that.

    You want ur whatever kit or class to have a psionic blast and change ur animation to mindflayer you can do that, but you can also add devour attacks, helmet, level scaled psionic pack if you want. You can choose to stop at +4 devour attacks, or go to +6 which are nasty OP.

    You shaman can overlay the druid kit with summon spirit animals, then change shaman dance to something else and add backstab on axes and add a scaled backstab with +1bonus at level 1, 9, 17.

    You can basicly build kits live... Buffs can be countered with XP nerf, thievery nerf or other custom nerfs, whatever you choose.

    The main thing is flexibility. It do not care about lore, gamerules or whatever. But its able to do so. The choice is urs ;)
    You can nerf yourself back to the stoneage, or basicly play godmode. Full freedom :P
    Post edited by Gel87 on
  • IllustairIllustair Member Posts: 897
    Can’t wait to get back into BG, and try this. Keep up the great work, and thank you!
  • Gel87Gel87 Member Posts: 415
    edited June 12
    Illustair wrote: »
    Can’t wait to get back into BG, and try this. Keep up the great work, and thank you!

    Yes its very fun :)
    The dual to shadowdancer is really fun.

    The new true kits i added are:
    - Barbarian / Shaman built upon a shaman class, with scriptet profiency system, custom spells, change of shaman dance.
    - Woodclan Ninja (Pretty much stalker, but more ninja. Custom Ninja Stars(dart profiency), Ninja charge, backstabs, custom profience setup and a few selective nature innates.
    - Banshee (Custom offensive mage)
    - Mindflayer Mage with devour attacks, head and psionic innates.
    - Superthief (All the bonues from all thief kits into 1, with faked hide in plain sight innate).
    - Supermage (Basicly 1 extra spell slot, but no bonuses to learning/savings and no restricitons)
    - Slinging Beastmaster and Cleirc / Slinging beastmaster. Basicly a kit with combined beastmaster and archer. And possible 5 profience in sling. Restricted all metal wepons and armors. Slinging beastmaster is fun alone, but also very nice to dual to cleric if focus on sling. Stalker kit can be overlayd if u want forexample backstab, bonus to hide and those 3 mage spells in devine book. Backstab with quarterstaff. Meanwhile the multiclass version is for multclass of the same combination.
    - Half Dragon Paladin. Restricted to swords, or done so via Thaco penalty and possibilites to be profiencent in other types. Draconic spells etc.
    - Shadow Lurker (Vampire Monk, loads of vampire abilities like bat swarm, Blood Drain, Bloodlink, and some other dark stuff)
    - T/M/C
    - F/T/M/C

    Maby some more which i had forgotten. Anyway, theese spells/innates etc are also part of the potion meny. To pick as singular ability, or as a ability or spell package which scales on level.
    So if you forexample liked the Woodclan ninja, but really want to play as a monk. Well thats no problem.
    You choose forexample monk. (Monk has some extra stuff in kitchanger). But kitchanger will only appear via baseclass ofc(generalist), then use potion menu:
    1. Add innate package for Woodclan ninja.
    2. Put on scaled backstab bonus 1 at lvl 1, 2 at level 9, 3 at lvl 17. Then u can do +1 extra incase u want more.
    3. Set profiency to dart at wanted value.
    Now you are a monk with:
    Ninja Charge ability.
    Can summon Shurikens which scale enchantment on level.
    Cast Black Powderer Smoke Bomb
    Will get some nature spells.
    Can backstab with monkfists, katana, longs sword, knife, shortsword.

    The potion menu also has a lot of custom abilities. You can forexample get the ability to summon a custom familiar. This familiar is a mage/thief and can be partied for potion/wand/scroll usage or to steal from stores. He can also pickpocket/open locks/disarm traps etc.

    There are so many choices its hard to write a readme xD
    Post edited by Gel87 on
Sign In or Register to comment.