
KotOR/KotOR2 Savegame Editor v3.3.7
---------------------------------
Version Notes:
0.1      - Jan 26, 2004  Browser only
0.2.2a   - Feb 5, 2004   First release of editor.
0.3.2a   - Feb 5, 2004   Major bug fix regarding the repacking of GFF/ERF files
0.3.3a   - Feb 7, 2004   Added scalability for different resolutions
0.3.4a   - Feb 8, 2004   Fixed bug that prevented adding more than once force 
                         power at a time.
0.4.0a   - Feb 8, 2004   Added ability to change classes
0.4.1a   - Feb 8, 2004   Bug fix: switching back and forth between Jedi classes
0.4.2dbg - Feb 9, 2004   Debugging version -- outputs information to kse.log
                         file. File is appended only so it will grow as this
                         version is used.
0.4.3dbg - Feb 9, 2004   Deeper diagnostics added, some small code modifications
0.4.4dbg - Feb 9, 2004   Found a bug that affects game repacking for new
                         characters on Endar Spire.  Fixed. 
0.5.1dbg - Feb 14, 2004  Changed method of creating tempfiles in the hopes of 
                         being more XP compliant.  Patched error in repacking
                         ERF file where module did not truncate correctly.
                         Updated size of module in ERF key entry correctly.
                         Logging now dependent on existence of KSE.log file.
0.5.2dbg - Feb 15, 2004  Replaced all instances of 'seek' with 'sysseek' in 
                         ERF/GFF modules.
0.5.3dbg - Feb 15, 2004  Fixed "First Feat/Power" bug
0.6.0b   - Feb 16, 2004  Removed extraneous feats and powers that cause more 
                         trouble than they're worth.  Beta release.
1.0.0a   - Feb 22, 2004  Added ability to modify NPCs (alpha)
1.0.1a   - Feb 22, 2004  Turned on the ability to add feats for NPCs.
1.0.2    - Feb 28, 2004  Added checkbox to turn on/off extraneous feats/powers
1.0.3    - Feb 29, 2004  Fixed bug in previous version that prevented feat/power 
                         from being shown
1.0.4    - Feb 29, 2004  Cosmetics.  Added multiple selectablity to Feats and 
                         Powers lists.
1.0.5    - Feb 29, 2004  Added ability to change PC and NPC class levels
1.1.0    - Mar  1, 2004  Enhanced Feats/Powers List to show current feats/powers 
                         in a different color. Added a Remove button to bottom
                         of list, allowing for multiple removes.
1.2.0    - Mar  6, 2004  Added ability to change Global Booleans and Global
                         Numerics
1.2.2    - Mar  7, 2004  Added ability to change Gender of PC
1.3.0    - Mar 11, 2004  Added ability to add and remove character classes to
                         PCs/NPCs. You can now give your NPCs a sex change too.
                         Added Min1HP field so you can make your PC or NPC
                         Immortal. Added some mouse wheel support for Windows XP 
                         and small other cosmetics.
1.3.1    - Mar 12, 2004  Fixed bug that disallowed Force Power Addition after
                         Jedi class addition on NPC.
1.3.2    - Mar 12, 2004  Fixed bug that disallowed Force Power removal after    
                         Jedi Class addition on NPC.
1.3.3    - Mar 16, 2004  Fixed bug that caused program to close near Jedi 
                         Enclave for some players
1.4.0    - Mar 29. 2004  Now reads from any spells.2da file in Override directory
1.4.1    - Mar 30, 2004  Minor changes to log file

2.0.0    - Jun 15, 2004 Complete re-write to make use of new GFF/ERF functions
                        added appearance and name change for NPC
2.0.1    - Jun 17, 2004 Added Inventory widgets
2.0.2    - Jun 17, 2004 Added Portraits for NPC, changed Inventory list to TList
                        read items from override
2.0.3    - Jun 17, 2004 Added ability to read from override appearance/portraits
2.0.4    - Jun 17, 2004 Updated TwoDA module to not return blank, fixed bugs with
                        position, orientation in inventory editing
2.0.5    - Jun 19, 2004 Fixed bugs regarding BodyVariation, TextureVar in inventory editing
2.0.6    - Jun 21, 2004 Added error handling (Tk::Error) and fixed AREANAME bug
2.0.7    - Jun 23, 2004 Made reading of custom .uti files more robust.
2.0.8    - Aug 12, 2004 (by Darth333) added Soundset manipulation capability
2.1.0    - Sep  1, 2004 Added ability to copy inventory from one savegame to another
                        by right clicking on the root node of the savegame
2.1.1    - Sep  1, 2004 Extended inventory copy ability to work when Inventory node is
                        right-clicked.
2.2.0    - Dec 18, 2004 KSE now generates .sig files into the savegame folder, 
                        allowing Xbox users to modify their savegames (somewhat limited)
3.0.4    - Feb 12, 2005 Initial support for KotOR2: TSL savegames added
3.0.5    - Feb 13, 2005 Added ability to right click the Game Version nodes to manually set the
                        installation path.  This is should make Xbox editing easier.
3.0.6    - Feb 13, 2005 Added Influence under NPC nodes for TSL
3.0.7    - Feb 15, 2005 Fixed Xbox data folder name (should be dataxbox)
3.0.8    - Feb 15, 2005 Added required Upgrade fields for Inventory addition for TSL
3.0.9    - Feb 15, 2005 Fixed influence bug
3.0.10   - Feb 20, 2005 Fixed KotOR1 class bug
3.0.11   - Feb 20, 2005 Changed button toggles on inventory stacking to a textbox.
                        Removed widgets if Apply button clicked with stack of 0
3.0.11s  - Feb 21, 2005 (stealth release) Implemented more robust reading of 2da files
3.2.0    - Feb 22, 2005 Fixed (Disciple -> Bao Dur) and (Hanharr -> Atton) editing bug
3.2.1    - Feb 23, 2005 Changed Feats and Powers to display as they do in-game.
                        'Short' lists for TSL powers and feats will display when 
                        'Show All' checkbox is unchecked
3.2.2    - Feb 25, 2005 Fixed bug where 'short list' of TSL powers was not displaying 
                        or adding powers correctly.
3.2.3    - Feb 26, 2005 Better handling of 2da<->TLK file errors
3.2.4    - Feb 27, 2005 Obscure 2DA bug fix where feat.2da extracted with KT and placed in
                        the TSL override would not read correctly
3.2.5    - Mar  6, 2005 Enabled changing of PC's name to work correctly for TSL (partytable.res)
3.2.6    - Mar 10, 2005 Enabled changing of PC's name to work correctly for TSL (savenfo.res)
3.2.7    - Mar 23, 2005 Added Components and Chemicals to TSL savegame tree
3.2.8    - Mar 31, 2005 Added ability to see portraits from portraits list
3.2.9    - Apr  1, 2005 Added ability to see items from Inventory master list
3.2.10   - Apr  2, 2005 Added ability to read .tga files from override
                        Fixed bug where baseitems.2da not being read correctly for TSL
3.2.11   - Apr  3, 2005 Fixed bug where override .uti files were not getting their icons displayed
                        Stopped logging of feats in kse.log 
3.2.12   - Apr  3, 2005 Added ability to see powers' and feats' icons
3.3.0    - Apr  8, 2005 Added Quest editing (Journal Entries)
3.3.1    - Apr  9, 2005 Fixed bug where not all journal entries possessed were being highlighted blue
                        Fixed bug where customized global.jrl files (with localized strings) 
                         weren't displaying properly
                        Added ability to edit Current Party
3.3.2    - Apr 16, 2005 Fixed a very long standing bug that prevented some Global Numerics from displaying
                        Made Quests node start in collapsed position
                        .sig file creation is now dependent on the 
                        pre-existence of a .sig file in the savegame folder
3.3.3    - Sep 10, 2005 X-box users no longer need to supply chitin.key or .bif files
                        to perform savegame editing.

3.3.4    - 3/28/13      New version by Fair Strides to add functionality for The Jedi Masters(TJM), made by Trex at LF.
		        This will hopefully remove the need swap out the paths between TSL and TJM.
		      - Fair Strides also made it possible to refresh your saved games without having
		        to restart KSE. Hopefully, this can be done while the game is running...
		      - Fair Strides also implemented a scrolling method similar to one used by Notepad.
		        It works for the appearance, portrait, soundset, feat, power, journal, and inventory.
 	 -  9/1/13-
	   11/5/13    - Fair Strides added the use of the Enter/Return key for all text widgets and the journal entries.
		      - Fair Strides also added an entry box when adding items to the inventory, to add to the stack,
		         instead of being stuck with one of the added item.
		      - Fair Strides fixed, restored, and enhanced the add/subtract feature when editing the stack size
		         for inventory items.
3.3.5    - 1/3/2015   - Fixed issues with Journal data not appearing properly.
                      - Fixed issues from 3.3.4, hopefully.
                      - Added ability to edit currently equipped items. # SEE SECTION FOR INFO
3.3.6    - 7/30/2015  - Added support for KotOR 2's Steam Updates' Cloud Saves
                      - Added support for a .ini file to save settings.
                      - Added an auto-updater (courtesy of Pazuzu156).
3.3.7    - 9/6/2015   - Fixed many issues caused by the new Steam detection, as well as possible .ini issues.
                      - Chev Chelios aided greatly in moving path detection to an external program that will generate .ini
                        or Registry entries.

Description:
------------
KotOR Savegame Editor is a Perl/Tk application used in the editing of
Star Wars: Knights of the Old Republic savegame files.

The following fields are currently editable:
- Savegame name
- Player name
- NPC Name
- Appearance (player and party)
- Portrait (player and party)
- Attributes
- Skill Ranks
- Equipment (player and party)***
- Feats (add/remove)**
- Powers (add/remove)**
- Cheats Used flag
- Hit Points (current and max*)
- Force Points (current and max*)
- Experience Points (player and party)
- Good/Evil rating
- Credits
- Time played
- Class (see notes below)**
- Levels
- Current Party
- NPCs
- Global Booleans
- Global Numerics
- Gender
- Min1HP
- Inventory**
- Influence (TSL only)
- Chemicals (TSL only)
- Components (TSL only)
- Quests

*=Note: Max Hit Points and Max Force Points, while editable appear to be calculated
at the time the savegame is loaded.  Therefore while these fields are editable, the
game will change the values back to what it calculates as correct.  It is therefore
better to change your Wis/Cha and Con to affect your MFP and MHP.

** Not supported on Xbox Saves, will cause "Damaged Savegame" message.

*** See special section for detailed instructions


-----------------
Credits
-----------------
tk102        - The creation of and initial support of KSE, as well as related programming libraries.
Pazuzu156    - The creation and hosting of the KSE updater and mirror.
Chev Chelios - The proposal, creation, and support of the KPF to detect the game paths.

-----------------
Before Using KSE
-----------------

Before using KSE, it recommended that you make a backup of your 'saves'
directory, just in case.

For KotOR1, it is also recommended that you download the KSE Fixed Cutscene Files
and place them into your override folder.  

Available at www.starwarsknights.com/tools.php,
a direct link is www.starwarsknights.com/mtools/kse_cutscene_fixed.zip

An alternate link:
http://www.mediafire.com/download/9h9872u2q6du2dq/kse_cutscene_fixed.zip

If there is a problem with the updater, please PM Pazuzu156 at this link:
http://deadlystream.com/forum/user/13604-pazuzu156/

---------------
Intro to KSE
---------------
KSE is a stand-alone executable that can be located anywhere on your
hard drive.  Upon launch, it attempts to locate the KotOR and TSL installation
directories based upon its registry entry.  If an installation directory is
not located in this manner, a BrowseForFolder dialog is displayed and KSE will
look for the presence of swkotor.exe (for KotOR1) or swkotor2.exe (for KotOR2)
in that directory. Savegames are assumed to be in a folder called 'saves' under
the installation directory.  Each savegame file ('savegame.sav') is assumed to
be in its own subfolder along with 'partytable.res', 'savenfo.res', and
'GLOBALVARS.res' files. These assumptions are all based upon a normal 
installation, so if you haven't moved files around you're fine.

----------------------------------------------------------------------
Manually specifying the game installation path (Xbox users take heed)
----------------------------------------------------------------------
You can manually specify the installation path for KotOR or TSL by right clicking
the node that says "Knights of the Old Republic" or "The Sith Lords".  A popup
menu will appear next to your cursor.  Choose 'Change Installation Path' and you
will be prompted to browse for the installation folder.  The tree will be updated
automatically if savegames are found.  Note that KSE expects the following files and
file structure:

\dialog.tlk
\saves\(various save folders)\savegame.sav
\saves\(various save folders)\savenfo.res
\saves\(various save folders)\globalvars.res
\saves\(various save folders)\partytable.res
\texturepacks\swpc_tex_gui.erf  [OPTIONAL - for item/spell/portrait picture display]
\override\(.2da files or .uti files)   [OPTIONAL]

(As of v3.3.3, the chitin.key and various .bif files are not required)

------------------------------
Note for Xbox users: Sig files
-------------------------------
Sig files are signatures that tell the Xbox that the savegame is legitimate. There are
7 .sig files that are required for a legitimate Xbox savegame:
SAVE_PARTY.sig
SAVE_VARS.sig
SAVE_INFO.sig
screen.sig
SAVE_HEADERVAR.sig
SAVE_DATA.sig
SAVE_HEADER.sig

KSE can create the first 6 of them. The SAVE_HEADER.sig cannot be recreated by KSE at
this time.  Therefore Xbox users will need to preserve their original SAVE_HEADER.sig 
and cross their fingers that it their KSE-edited game will accept that .sig file. 

KSE began generating .sig files automatically as of v2.2.0.  As of v3.3.2, KSE will 
now only generate .sig files if a .sig file exists in your \saves\(whatever) directory.
If you haven't copied over the .sig files from your Xbox with savegame.sav file, you 
can create a dummy file with a .sig extension in that savegame folder and that will be 
enough for KSE to know that you want to generate .sig files when you edit your game.

-------------
Using KSE
-------------
Upon detection of the above folder/files, KSE will layout each savegame in
a treeview window. Click on the [+] and [-] buttons to open/close. When
selecting a savegame for the first time, there is a couple seconds of
delay as the file information is loaded into memory, so don't panic.
Highlighting different items in the treeview will bring up editing options
in the pane to the right of the treeview window.

In the editing pane, there are will usually be two buttons at the
bottom labeled as 'Apply' and 'Commit Changes'.  The Apply button will
update the treeview and apply changes in memory.   Commit Changes will
write the changes in memory to the actual files.  Most changes require the
savegame.sav file to be re-written which takes a little while.  You will
receive a message indicating success in editing the savegame. Note: you don't
have to Commit Changes until you're done Applying changes to memory; however,
if you are editing multiple savegames, you will need to Commit Changes for
each savegame. 

Feats and powers have a different appearance in the editing pane. If
the 'Feats' group or 'Force Powers' group is selected, the editing pane
will contain a listbox of all available Feats or Powers to choose from.
Instead of an Apply button, there is an 'Add Feat' or 'Add Power' button.  
If you already have the feat/power, this button does nothing.  If not, the
treeview will be updated and the changes will be Applied to memory. 

If a particular feat/power is selected from the treeview, you will have the
option to Remove it using the editing pane.  There's no need to edit
feats/powers -- you have to Remove the old one and Add the new one.


---------------------------------------------
Override Folder: Subdirectories NOT supported
---------------------------------------------
Although TSL supports subdirectories in the Override folder, KSE does not.  Too often,
there are two or more files that are named the same and KSE would have to make some
arbritrary decision as to which one to use.  Inevitably this will generate bug reports
because the end-user expected the other file to be used by KSE.  So to save us both that
grief, if you wish to add custom items to your inventory or use some custom 2da file,
you will need to make sure that you copy those custom files into your override root folder,
perform your KSE edits, then remove them.  (Note that KotOR also does not recognize
subdirectories.)

-----------------------------
Notes About Feats and Powers
-----------------------------
As of version 1.0.2, a checkbox has been added which allows you to turn on and 
off the 'extra' feats and powers that aren't normally accessible during level 
ups.  These are for experimentation and modding purposes.  Please don't email me 
if you crash the game after adding one of these weird feats/powers. However, if 
you discover a use for one, please post your finding to an appropriate forum so 
others may learn from your tweaking.  

-------------------------
Reminder: No Safety Net!
-------------------------
It should be noted that there isn't much in the way of safety nets built
into this program.  You can attempt for example to specify a negative
number of experience points or apply other crazy settings which KotOR may
or may not understand. I guess that's half the fun, but consider yourself
warned.  If you're really attached to your savegame, MAKE A BACKUP FIRST.

-----------------------------------------------
Notes regarding Class-changing/Adding/Removing
-----------------------------------------------
As of version 0.4.0a, KSE provides the ability to change a character class. This 
makes for very interesting possiblities, including playing as a Droid or as a 
non-Jedi class combination. It also allows the player to change their initial 
class into a Jedi class.  There are a couple things to consider when changing 
classes:

  - In TSL, don't choose the "Bounty Hunter (CUT!)" class unless you're 
asking for trouble

  - Do not make a multi-classed character the same class in both classes. 
KotOR doesn't seem to like that.
  
  - Before changing your class into a droid, you may want to unequip all 
items first.  I've had the game hang during loading when I didn't do this.

  - The droid classes grant you Feats like Logic Upgrade but you won't see 
the icon for them in your Feats screen.  Also, KotOR doesn't let you equip droid 
armor/weapons/implants.  That's too bad. :-(

  - (For KotOR1) If you make your early single-class character a Jedi class, you'll 
probably also want to grant him/her the Feat:  Force Sensitive to give you an 
extra 40 points, otherwise you won't be able to do much in the way of force 
powers until you level up.  Also, you won't be able to get any Force Points 
until you level up once.

As of version 1.3.0, KSE allows you to add and remove classes to your PC and 
NPCs.  It is known that the games won't recognize more than 2 
classes. I wouldn't recommend removing all 
your classes either.  Then you'd just be a couch potato and you don't need a 
game for that.  :-)


--------------------------------
Notes regarding changing levels
--------------------------------
As of version 1.0.5, you now have the ability to directly change your PC and NPC 
class levels.  Adding additional levels will affect your Hit Points and your Max 
Hit Points and maybe some other secondary attributes.  The amount of experience 
points needed to further level up will also increase accordingly.  You can level 
up past level cap (20 for KotOR, 50 for TSL), though it doesn't do much in terms of gameplay.

Leveling down will subtract previously gained powers/feats/skills and maybe 
attributes that you received from leveling up.  The game stores all the 
information about what level you were when you gained your abilities.  So if you 
level down, it forgets you had those abilities. 

For the normal player, I can't think of much use for changing your level.  For 
modders, changing levels may hold more importance.

-------------------------------
Notes about changing equipment
-------------------------------
As of version 3.3.5, you can change the equipment that the Player or Party Members
are currently wearing. This does have a few sticky spots that you might want to be
aware of, such as:

  - The character must be able to equip the item in the first place, otherwise the
    game unequips it on loading.*
  - As a follow-up, the same applies to equipping weapons. IE: don't equip a two-handed
    weapon and a one-handed in the same set-up.
  - To equip an item on an NPC, you will first have to change a piece of their data,
    such as an attribute.** This is due to an unknown bug to be fixed in the next version.
  - I have not tested how the game likes having a ranged and melee weapon set-up, but I
    wouldn't hold my breath.

*;  The one exception found during testing was in equipping a droid piece on the head... :?
**: This doesn't mean you have to make the attribute higher or lower, just hitting apply
    on the current value works.

===============
Known Bugs
===============
No saves found (You have Steam KotOR 2 and use cloud saves)
-----------------------------------------------------------
Go to your KotOR 2 folder and make a folder called "saves".

Inventory Hiccup
------------------
If an item is added to your inventory and it has the same Tag as another item, KSE
will generate an error.

Getting Stuck During Vision Sequence (KotOR1)
----------------------------------------------
Symptom: After leaving the Endar Spire or Leaving Taris, you run into a sequence
where you should be seeing a "dream" cutscene but instead you're locked up in a 
room with a "CutStart" object that doesn't do anything.  

Cause: You have NOT placed the modified .dlg files into your override directory 
and you have changed your character to a Jedi/Minion/Droid class or you have
changed your Gender to something other than Male or Female.

Fix: Download the KSE Fixed Cutscene Files (available from
http://www.mediafire.com/download/9h9872u2q6du2dq/kse_cutscene_fixed.zip )
and place the .dlg files into your Override folder.
==============================================

After changing appearance to look like (an NPC), the real NPC has no head!
---------------------------------------------------------------
Symptom: You change appearance to look like one of your party NPCs and all is well
until you attempt to enter a new area with that NPC.  Then the NPC loses its head!

Cause: SW:KotOR doesn't like two unique characters appearing together. 

Fix: From T7Nowhere's post on Holowan Labs--

I know how to fix the head problem, but it will take a bit of work.

The thing about it. Bioware set it up so that you can't encounter an npc with your 
head, so in appearance.2da there is a normalhead and backup head columns.

SO in order for and npc not to loose there head that npc would need an backup head.
As Juhani is a unique npc she doen not have a backup and when you transition from 
one area to another the game checks appearance.2da(I suspect) and sinse your 
character comes first the game will give you juhani's head and she looses hers.

There is a way to remedy this and it is simple open up appearance.2da with KT (if 
you have that file in override then open that appeance.2da) go to row 8 which is 
Party_NPC_Juhani and scroll ove until you see columns "normalhead" & "backuphead" 
and simple type 5 in the backuphead column save the file back to override. And now 
you and Juhani can be twins. if you would like juhani to have a different head when 
you take hers then simply open heads.2da to find an appropriate female head (or 
male. what ever make you happy) and type that number in the backuphead column and 
save appearance to override.

Don't worry this is very simple to do.



- tk102
===============================================================

Equipment Section
------------------
Due to an unknown bug, the Equipment branch might become unusable.

The only fix is to restart KSE.
==================
Please report bugs to zxcvbnm6012@yahoo.com

11/7/13 - In addition, please report bugs to tristongoucher@gmail.com Thank you. - Fair Strides.