Thanks...
Now that I have made it, I suppose I can use it as a ready example for what I did to make it. Hopefully it'll make sense and compliment Darkkender's tutorial.
Also, for reference, Darkkender's new PC tutorial (
http://www.lucasforums.com/showthread.php?t=149992).
Anyway, to do what I did for this Mekel PC (and actually, it would work very much the same for K2 because Mekel is in the files--the game uses his head model a lot...)
I used Kotor Tool for the extracting of models and .tgas, TSLPatcher and ChangEdit to handle the .2das and installation, and Photoshop for the portrait (any program that can handle .tgas would work as well.)
First step, create a folder for the files you're going to extract (give it a descriptive name like "Mekel PC"). Because I'm using TSLPatcher for this example, inside the new folder, make another called tslpatchdata. All files to be installed need to go into tslpatchdata. You'll also need to place a copy of TSLPatcher in the Mekel PC folder.
So, since Mekel was the new head desired, you need to first get his .mdx and .mdl. In Kotor Tool, go to BIFs --> models.bif --> Aurora Model for the .mdl and BIFs --> models.bif --> Aurora Model Extention to get the .mdx. Fortunately, it's not hard to find them, they are called n_mekelh.mdl and n_mekelh.mdx. Highlight each file and click Extract File on Kotor Tool. It will ask you where to save the file--save it in the new tslpatchdata folder you just made.
Now you need to get the .2das. These are under BIFs --> 2da.bif --> 2D Array. Extract appearance.2da, heads.2da, and portraits.2da into your new tslpatchdata folder. For this version of instructions for making a PC head mod, you won't be directly editing the .2das, but you do need them in the mod so that TSLPatcher can edit them. The reason you need them is because if this is the first mod someone's installed, TSLPatcher will use these files to modify--if they already have these files in Override, TSLPatcher will modify those instead. Basically, TSLPatcher needs them just in case. It won't work right if you don't include them.
Next, Mekel needs a face texture to put on his model. In Kotor Tool, go to ERFs --> TexturePacks --> swpc_tex_tpa.erf --> N. Look for N_MekelH01.tcp. Once found, you have two choices. You can open it by double clicking on it, and clicking "Write File", which will save it as N_MekelH01.tga. That's what you want to do if you want to change the file in any way, which you will if you want to make DS transitions. Alternately, if you don't want to change the file, highlight it, click "Extract File", then choose to extract it as a .tcp. You can't edit a .tcp, but there have been times that I've found they simply look better in-game than a .tga. So if you don't want to change it, save it as a .tcp. Which ever way you go, save it in your new tslpatchdata folder.
Now you have most of the necessary files for a new PC head. You'll need to rename the Mekel files so you don't go confusing the game. I renamed them to P_MekelPCh.mdl, P_MekelPCh.mdx, and P_MekelPCH01.tga.
If you want to make DS transitions, start up your graphics program that can read .tga files and make them. I have a specific way of making them that works for me, but that's another tutorial, I think. Anyway, it's a good idea to use layers so you don't accidentally ruin your original. However you go about it, you can make anwhere from two to four DS transitions, depending on how ambitious you feel. To get an idea of what the game's transitions look like, you can use Kotor Tool to look at them (they'll mainly be files like PFHA01d.tcp; for some reason, it names them d1-d3 for the first three, then d for the most DS, but you can name them how you like, just as long as you remember it.) Save them, however many you made, with names like P_MekelPChD1.tga, etc.
With most of your files in place, you'll need to make a change.ini for TSLPatcher to read. You can make it yourself or you can use ChangeEdit. Using ChangeEdit makes for fewer mistakes, so I'll use it here for an example.
Open ChangeEdit, then go to File --> New... Direct it to your new tslpatchedata folder and click "Save". The program willl switch to Settings. Use this part to configure how TSLPatcher will run. Mainly, I left the settings as they were, except I changed Window Caption to say Mekel PC v0.1, and Log Level to 4. To get more information on what these do, read the readme stoffe wrote!. Leave Make Backups to the default "Before modifying an existing file..." because that's just the nice, decent thing to do in case someone wants to uninstall the mod or they did something like I did and accidentally installed it to K2 instead of K1.
Next, click on the icon for 2DA Files. It will prompt you to add a file with the menu Modfiers. Go to Modifiers --> Add 2DA File... and select heads.2da from your new tslpatchdata folder. It's very important when using TSLPatcher to put .2das in a certain order, so that it can be told to remember certain things with 2DAMEMORY tokens. For a new PC, the order is heads.2da, appearance.2da, and then portraits.2da.
Anyway, once the 2da is loaded, click on it under the icon to start adding the changes you need to make. You'll get a screen that says 2DA Modification. Since we're adding a new head instead of modifying an existing one, click on the "Add line to 2da". It will prompt you to pick a memorable name for the add instructions TSLPatcher will be reading. So, name it something memorable. I named it add_head1. You could name it something else, just as long as you use the name only once. ChangeEdit will warn you if you've already used a name.
Then, double click on the new instructions (it'll look like AddRow0 add_head1.) That will bring up another screen. Click on the folder so it will load up all the columns in heads.2da.
This is what I instructed it to do with the drop down menu and with typing things in:
ExclusiveColumn=head <-- this tells TSLPatcher that if it encounters the 'head' column with the specified value below, it will modify that row instead of making a new one. VERY useful for updating a mod and to prevent you from ending up with multiples of the same row if you reinstall it when it's already installed.
head=P_MekelPCH
headtexvvve=P_MekelPCH01
headtexvve=P_MekelPCH01
headtexve=P_MekelPCH01
headtexe=P_MekelPCH01
2DAMEMORY1=RowIndex <--this is important! Remember it! You'll have to type 2DAMEMORY1 in the first drop down to make this.
If you have DS transitions, you would add them in order instead of using the same file name (note that you don't use .tga or .tcp in this.) headtexvvve is the darkest DS trans (it means 'head texture very very very evil'), while headtexe is the mildest. vvve = 10 GoodEvil in KSE, vve = 20, ve = 30, and e = 40; 40 DS may not register as DS in-game. If you make less than four, use the normal head texture for e, and the others for ve, vve, and vvve. If you make two, a good choice is to use the first DS trans for ve and vve, and the second for vvve. If you make a mistake in adding a modification, highlight it and click on the trashcan icon.
Next, add appearance.2da to the list, and this time we want to add a new row, but we don't want to fill in every field, just modify some, so this time, click on "Copy Line in 2da". Click it three times and give each one a unique name (I used copy_appearance1 - 3.)
Double click on the first one, it will bring up a new screen. It will ask you to set existing line to copy. Set it to RowIndex 136. Click on the folder, then use the drop downs to do this:
ExclusiveColumn=label
label=P_MEKEL_SML
normalhead=2DAMEMORY1 <-- These will be in the second drop down menu. The reason we used a 2DAMEMORY token is because we don't know what the RowIndex for the new head will be in any given person's game--they may have no modifications, or they may have ten. TSLPatcher, however, when instructed to as we did above, will remember the new row.
backuphead=2DAMEMORY1
2DAMEMORY2=RowIndex <--Again, important. Will come into play later.
Go through each CopyRow on appearance.2da and use these settings:
RowIndex=137 <-- I picked these rows because they're for a male PC.
ExclusiveColumn=label
label=P_MEKEL_MED
normalhead=2DAMEMORY1
backuphead=2DAMEMORY1
2DAMEMORY3=RowIndex
And
RowIndex=138
ExclusiveColumn=label
label=P_MEKEL_LRG
normalhead=2DAMEMORY1
backuphead=2DAMEMORY1
2DAMEMORY4=RowIndex
This will make sure Mekel is available for all classes in KotOR.
Close ChangeEdit for now. Use a text editor like Wordpad or Word, something that can make Rick Text Files (.rtfs) to write a file called info.rtf for TSLPatcher. This is essentially a readme, so put in intructions, information, whatever you feel is necessary to know about the mod. Save the file to your new tslpatchdata folder.
Now, run TSLPatcher to install the not-quite-complete mod. We need to do this so we can get a picture of Mekel for his portrait. Run KotOR, create a new character--Mekel will be easy to spot, he's the guy with the big white square for a portrait.
Just go as quick as you can until you get Trask into your party. Make Trask face Mekel, press Caps Lock, look at Trask, then press PrtScn. Exit the game.
Open your graphics program and navigate to the SWKotOR folder. Open the highest numbered .tga in there; it should have a name like KotOR0004.tga. In any case, find the screencap of Mekel you just took. Crop it square and resize it to 128x128 pixels, then save it in your new tslpatchdata folder as po_Mekel_PC.tga. (If you have DS transitions you want to screencap to make portraits of, you'll need to save your new game and use KSE to change your GoodEvil to 40, 30, 20, and 10 for all four transitions, and take screencaps of them as well--if you only made two DS trans, you'll only need to make screencaps for those...if you make less than four, the change may show up at 30 and 10, depends on where you put the changes in heads.2da.)
Now, open ChangeEdit again. Add portraits.2da to the .2das to modify. This time we want to create a new row but not fill everything in, so click "Copy Line in 2DA" Name it something unique (I used copy_portrait1.) Double click on it, in the new screen, make these changes:
RowIndex=18 <-- male PC
ExclusiveColumn=baseresref
baseresref=po_Mekel_PC
appearancenumber=2DAMEMORY3 <-- So it knows to use the new appearance.2da rows.
appearance_s=2DAMEMORY2
appearance_l=2DAMEMORY4
baseresrefe=po_Mekel_PC
baseresrefve=po_Mekel_PC
baseresrefvve=po_Mekel_PC
baseresrefvvve=po_Mekel_PC
(As before with the vvve - e columns, if you have .tgas for DS transitions, use those.)
Go to the icon in ChangeEdit that says Install Files. Type the folder name as Override, and add your .mdl, .mdx, and .tga files. There's a ticky box that toggles just adding the file or overwriting the file if it's already in Override. I used the box to tell TSLPatcher to replace and overwrite the files (this isn't always a good idea, especially if you're modifying files that may already exist in someone else's mod, but in this case, you can be reasonably sure your files are unique so it's OK to overwrite them.) If you want, you can make it replace some files but not others.
Close it...and that should be it. After running TSLPatcher a second time, you will have a new Mekel PC with a portrait. If you want to share your new PC, you'll have to use an archive program like WinZip, WinRar, etc., and put the Mekel PC folder into it whole; that will preserve the folder structure inside so that TSLPatcher will have its tslpatchdata folder intact.
Of course, now that I've written all this, I realize I'm an idiot and did it wrong in the quick Mekel mod I just made, so let me go and fix that... ::feels rather dumb::...