PDA

View Full Version : Class Creation


Fiestainabox
08-14-2006, 01:11 PM
I'm wondering how I go about making a custom class? I've added entries to Classes.2da and Dialog.tlk, but I can't seem to figure out how to give specific feats at certain levels, change how many skill the class gets at level up. I know we can't make custom Force users classes. What exactly do I need to do to make a class?

stoffe
08-14-2006, 02:37 PM
I'm wondering how I go about making a custom class? I've added entries to Classes.2da and Dialog.tlk, but I can't seem to figure out how to give specific feats at certain levels, change how many skill the class gets at level up. I know we can't make custom Force users classes. What exactly do I need to do to make a class?

Here is a brief description of the different columns in classes.2da and what their values reference to, as far as I have been able to figure out. I won't promise this is 100% accurate, but it seemed to work that way when I was experimenting with creating new classes.


Row label - Set to the next number in sequence


label - name of your class. Not used by the game, only to make the 2DA more human readable.


name - dialog.tlk StrRef to string containing the name of the class, as seen in the game.


plural/lower - Unused in the KotOR games, junk left over from NWN. Set to ****.


description - dialog.tlk StrRef to string containing the description of the class. As far as I know only used at character creation, and as such of limited use for custom classes since they won't show up at character creation.


icon - ResRef to a TGA file with icon representing the class. I don't think this is used anywhere in the KotOR games.


hitdie - How much health is gained at each levelup for the class. E.g. if this is set to 8 the character would gain 1-8 VP when leveling up.


attackbonustable - Name of a 2DA file that is used to define the Attack value of this class for each level. See one of the existing CLS_ATK_* files to see how this file must be formatted. You'll need to create a new such 2DA file to give your class unique progression (or use one of the existing if you don't need unique progression).


featstable - Prefix used for the labels of the _list, _granted and _recom columns in feat.2da to define which feats are selectable at levelup, which feats are given at levelup and which feats are given when using the Autolevel feature. To give your new class unique feat progression you must add three new columns to feat.2da for your class.

I.e. if you set the value in the featstable column to "PIR", you would need to add columns with the labels pir_list, pir_granted and pir_recom to your feat.2da file.


savingthrowtable - The name of a 2DA file that is used to define the saving throw progression for each level of the class. See one of the existing CLS_ST_* files to see how this file must be formatted. You'll need to create a new such 2DA file for your class to give it unique progression.


skillstable - Prefix used for the _class and _reco columns in skills.2da to define which skills are class skills for your class, and which skills are picked if you use the Autolevel feature respectively. If you want unique skill configuration for your class you'll need to add two columns to skills.2da for your class.

I.e. if you set the value in the skillstable column to "PIR", you would need to add columns with the labels pir_class and pir_reco to your skills.2da file.


skillpointbase - How many skills points your class gains every levelup. This is the base value before any Intelligence score bonuses/penalties are added.


spellgaintable - Column name in classpowergain.2da defining how many force powers your class gets to pick at each level up. Irrelevant for adding custom classes since you can't create new force user classes.


spellknowntable - Leftover junk from NWN, unused for the KotOR games, just set to ****.


playerclass - Not used for the KotOR games. Set to 1 for all classes.


spellcaster - Set to 1 for force using classes, set to 0 for "normal" classes. Just set to 0 for your custom class since you can't add new force user classes in the KotOR games.


str/dex/con/wis/int/cha - I think these are the starting ability scores for the class if you use the "recommended" button during character creation. Not 100% sure though.


primaryabil - The ability score primarily associated with a particular class, the one that should be increased the most. Don't think it has any bearing on anything in KotOR other than auto-levelup.


alignrestrict - Unused in KotOR, leftover junk from NWN. Set to 0x00.


alignrstrcttype - Unused in KotOR, leftover junk from NWN. Set to 0x0.


constant - Unused in KotOR, leftover junk from NWN. Don't think it matters what you set this to.


forcedie - How much the force pool of the character is increased at each levelup, e.g. if set to 8 you get 1-8 FP at levelup. Set to 0 for new custom classes since this only does anything for force using classes.


armorclasscolumn - Name of column in acbonus.2da which determines how much Defense bonus characters with the class have at each level. You'll have to add a new column to acbonus.2da for your class if you want to give it unique progression.


featgain - Prefix for the labels of the _reg and _bon columns in the featgain.2da file, defining at what levels characters with this class gains new feat picks at levelup. To give unique progression for your class you'll need to add two new columns to featgain.2da for your class. I don't think the _bon column is used for anything in the KotOR games, but it's best to add it anyway if the game engine expects it to be there.

I.e. if you set the value in the featgain column to "PIR", you would need to add columns with the labels pir_regand pir_bon to your featgain.2da file.


Note that you cannot add new columns to 2DA files with KotorTool's 2DA editor, so you'll need to use other tools for that to modify those files accordingly.

Fiestainabox
08-14-2006, 02:56 PM
Thanks alot! That helps me very much!

Darth Mercilous
08-22-2006, 07:15 AM
Great information here, thank you for posting it. I was just wondering about this myself, and now I can start to play around with it.

Regards,

Gov

goldberry
08-22-2006, 01:13 PM
could stoffe's post be put in general tools and tuts? I just feel that people would benefit from this being kept safe, as opposed to needing to bump the topic.

RC-1162
08-22-2006, 08:00 PM
so, if we do this, can we add a new class to the char creation screen? or only in-game?

Fiestainabox
08-25-2006, 03:52 PM
In game only, I don't belive we can add anything to menu's yet. And it only works for non-Jedi classes, so don't get any ideas...

Darth InSidious
08-25-2006, 04:54 PM
There is a workaround - you can create a class, and using scripts grant a few force powers and force points to the class. However in the main iNutter is correct, you cannot create new classes that will allow the kind of force progression currently in-game :)

stoffe
08-25-2006, 08:04 PM
There is a workaround - you can create a class, and using scripts grant a few force powers and force points to the class. However in the main iNutter is correct, you cannot create new classes that will allow the kind of force progression currently in-game :)

It can be used for NPCs in such a way, but not in any useful way for player controlled characters, from what I've seen. You wouldn't know which powers you have since the Powers screen is disabled, how large the force pool is since the force meter won't show up on the GUI for the character, and the character won't regenerate any force points on their own as far as I can tell. You also can't seem to use the powers from the user interface (though scripts can trigger them).