TESPCD
The Elder Scrolls - Morrowind
Plugin Conflict Detector
by Ely VanReen Soto


***This software is not created by the makers of Morrowind***

This software is provided "as is" with no expressed or implied warranty.
The author accepts no liability for any damage/loss of business/enjoyment that
this product may cause.


Download Latest Version 0.20 Beta Here

Download Version 0.19 Beta

Send Suggestions/Bugs to [ elyvsoto@hotmail.com ] or
Write them in the Comment Book
Read Comments

Download the Source Code for Version 0.20 Beta
It is a Microsoft Visual C++ 6.0 SP5 Project using MFC.


---How to Use---

There are two modes of Checking Available, Single Versus All and Full Check.

Single Versus All Mode is used to check 1 plugin against another group of plugins. Only Conflicts between your Chosen plugin and the other plugins will be reported. This may assist a plugin maker to verify compatibility with another group of plugins. To select your single plugin select the File menu and then select 'Choose Master'. You may then Select the rest of the plugins by selecting 'Choose Plugins'.

Full Check Mode reports conflicts between all the plugins.

After Selecting your plugins you may begin the Check Operation by selecting 'Check Conflicts' under the Operations menu or by clicking the Red Right Arrow button on the toolbar.

The 'Extract Data' option under the Operations menu can be used to select and load a few groups of plugins at a time before actually running the conflict check.

The Options Dialog allows you to choose which Conflict types you want reported when you run the Check. This dialog can be reached from the Operations menu under 'Options' or by clicking the yellow 'OP' button on the toolbar.

Once your check has been run you can view the conflicting entries in more detail by Double Left Clicking either of the FileNames in either Grid. This can allow you to compare what changes have been made to those entries and let you make a decision of whether to delete it or attempt to merge them.

There are two modes the Viewer can take, Hex View and Grid View.

The Hex Viewer is a Hex Dump of the entry with the 'conflicting' differences highlighted in red. It is a Read Only Viewer.

The Grid Viewer is a formatted Viewer that displays the data in three modes, Hex, Decimal, and Ascii. You may uncheck the readonly checkbox to enable Write mode so that you can edit the entry and save it to your esp. This can allow you to copy changes from the other conflicting entry in an attempt to make them not conflict. Once your Changes are finished you can click 'Write to Esp' to save your changes. A backup is created with the extension .OLD or a user defined one if it already exists. Note: If you make changes to a field, the data must match the type field in format or unpredictable results will occur. For example: If the type field is 'Ascii', your data must be in ascii, if 'Hex', it must be in Hexadecimal notation with two characters in the range of 0 to 9 and A to F corresponding to a Byte. Similarly, the a field of type 'Dec' must be numeric and must fall within the range of the Byte field. Ex: Byte = 1, then Max Data Number is 255. The program will do validity checking in all of these cases to try and make sure your data is valid and appropriate.

If you decide to delete a particular entry you simply select the filename and press DELETE on your keyboard or click the 'Delete Entry' button within the pop-up. A backup will be created with the extension .OLD by default. If this backup already exists it will prompt you to overwrite or to save a new backup.


---Frequenty Asked Questions---

Q. How do I know which entry is being used in game now?
A. The Overriding Entry Filename is displayed in the Column named 'Overriding Esp File'. This file has the latest Last Modified Date.

Q. I have some great monster plugins but not all the monsters are showing up. What do I do?
A. Download and run the the Leveled List Merger Program by 'Horatio'. If you run it everytime you add a new plugin you can ignore all your LEVI and LEVC conflicts.

Q. I keep getting these Dialog warning messages. How do I fix them?
A. One solution is locating the two mods which have the conflicting Dialogs and combining them using the TES Construction Set. It would also be a good idea to delete and/or merge any conflicting entries before combining them.

Q. How do I safely merge two plugins?
A. Check for Conflicts using the detector and delete any entries that you deem unecessary. Then combine any entries that you think are important by choosing a master plugin and adding the changes to its entries from the other plugin. Once you are done there, select the two plugins in the TES Construction Set and make sure the master plugin with your changes is the Active one. Once loaded you can select 'Combine Plugins' from the TES Construction Set's menu.

Q. I deleted a bunch of entries why doesn't my plugin work anymore?
A. Before you delete an entry look at its details within the viewer and/or the TES Construction Set to make sure its not a vital entry or change.

Q. I have a good idea about how this program could work better. What do I do?
A. Email Me at elyvsoto@hotmail.com.


---Features---

Morrowind plugin (ESP) files contain entries of new or changed objects that the plugin adds to the game. These entries are identified by an 'ID' and a 'Name' by Morrowind. If any two plugins are loaded that contain the same ID-Name combination then Morrowind will only use the plugin file with the most recent 'Last Modified' date. Those entries that are ommited can cause problems for the plugin they were intended for. These problems can be minor, such as a weapon doing less or more damage than it intended, or it can be major, such as a Script not running when intended.

This program 'TESPCD' detects these conflicting ID-Name combinations and reports them to the user. The user can then see the entries that conflict by double-left clicking the filenames in the graph in both a Hex and Grid type format.

With this information Mod makers/users can either modify their plugins to avoid the conflicts or the users can manually choose to delete or combine the entries to allow the plugins to function together.

1. Locates Conflicting entries for the following Objects:

 Alchemy/Potions  - ALCH
 Apparatus(Calcinators)  - APPA
 BirthSigns   - BSGN
 Miscellaneous  - MISC
 Weapons   - WEAP
 Activators   - ACTI
 Armors   - ARMO
 Body Parts    - BODY
 Books    - BOOK
 Globals       - GLOB
 Gameplay Settings  - GMST
 Static Objects  - STAT
 Scripts   - SCPT
 Creature Level Lists - LEVC
 Item Level Lists  - LEVI
 Light Types   - LIGH
 Ingredients   - INGR
 NPCs    - NPC_
 Races    - RACE
 Classes   - CLAS
 Cloths   - CLOT
 Containers   - CONT
 Creatures   - CREA
 Doors    - DOOR
 Enchantments  - ENCH
 Spells   - SPEL
 Sounds   - SOUN
 Sound Gen   - SNDG
 Skills   - SKIL
 Region Changes  - REGN
 Repair Tools  - REPA

2.  Ability to View Conflicting Entry Data if you double click on the filenames in the Grid.

3.  Reports Entries that are marked as Deleted in a seperate Grid. These should be monitored closely since these are often mistakes.

4.  Ability to Delete Reported Entries if you select a particular filename and press DELETE. It will Backup your esp with the extension .OLD or your own specified filename if .OLD filename already exists.

4.  Ability to edit and modify entries.



---Proposed Features---

1. Viewing and modifying an entire Esp File
2. Comparing Containers and Doors and other Global Objects
 against master file to see if globally modified
3. Optional Reporting of Cell Object Deletions.
 (Someone puts a house and decides to delete a npc that was standing there)



---Version Details---

V0.20 Beta
 All New Entry Dialog to Ease Entry Viewing
 Ability to Edit Entries and Save them to your Plugin
 (This allows you to Copy and Paste Across Plugins to Ease Plugin Compatibility)
 Updated Backup Code to be less annoying
 Option Settings Now Saved in ini File
 Various Minor Bug Fixes

V0.19 Beta
 The Plugin Entry that is Overriding will be displayed in the First Column with the name 'Overriding Esp File'
 Entry Deletion Reporting in a Warning Grid.
 Deletion of any Reported Entry - Press Delete while a particular Filename in a grid entry is selected
 Backup Code for Deletion Sanity
 GUI Touchups
 Misc. Bug Fixes

V0.181 Alpha
 Quick Addition to Hex Viewer showing changes between the entries in Red

V0.18 Alpha
 Added Options Dialog to choose which Conficts to Display
 Added Hex Viewer to see Entries if you Double-Left-Click on the Conflicting Filenames
 Added Right-Click Context Menus to Tree File View to Remove and Add Plugins more easily
 Added Ability to do new checks without restarting the application
 Fixed a bug that froze the Operations
 Fixed other misc. bugs

V0.17 Alpha
 Improved Accuracy of Conflict Detection *Much More Accurate Now*
 This is done by a byte by byte comparison of all the data
 in the conflicting entries
 Added Detection for a few more entries

V0.16 Alpha
 Optimized Data Extraction Functions
 Added Detection for many more entries
 Added Single Versus All Mode of Detection for Mod Makers
 Fixed Could not select more than 1000 characters in filenames in Open Dialog

V0.15 Alpha
 -Reworked GUI-
 Enabled Print/Print Preview
 Added Ability to Sort GRID (Click on Fixed Grid Row to Sort)
 Added Easier File Addition
 Added Progress Bar

V0.10 Alpha
 Initial Release



---Issues---

1. DIAL - Dialog Detection Disabled
     To correct Dialog entries warning errors you can combine the conflicting plugins.



---Not Supported in Near Future---

1. Ability to Check Overlapping Objects on the Map