http://www.tesnexus.com/downloads/file.php?id=8665 Download for TESIV Gecko.
The Gecko is one of those great utilities that is little known. Even if a player knows of it, they are understandably leery of using it, not wanting to ruin their game or the mod they downloaded. However, you'll find that there's virtually no risk involved and the only problem you will experience merging mods is that you didn't know ALL that the mod did. It's best to know what the mods do before you even think about merging it.
What I will do is post the read me for the mod then explain it's better uses in "plainspeak" so you're not buried in technical jargon.
-------------------------
TES4Gecko - Version 14.5
-------------------------
Created by TeamGecko
- New development and Original TES4 Plugin Utility code: ScripterRon (Ron
Hoffman)
- Original Gecko plugin splitter and compare code: KomodoDave (N David Brown)
- Gecko project leader: dev_akm (Aubrey K McAuley)
Credits: TES4Gecko Version 13 represents ScripterRon's return to working on
TES4Gecko project, and the results are dramatic. TES4Gecko Version 12 was
created using the source code from ScripterRon's wonderful TES4 Plugin Utility
(Version 11.1), which he graciously donated to the project. The vast majority of
the functionality here was created by ScripterRon -- TeamGecko merely attempted
to expand and enhance his amazing work.
Overview
----------------------------------
TES4Gecko works with The Elder Scrolls IV: Oblivion plugin and master files
(*.esp/*.esm). It is designed to let mod-creators manipulate plugin and master
files in ways that Bethesda either did not imagine or decided to leave out of
the official Construction Set.
TES4Gecko has a wide variety of useful functions, such as merging two or more
plugins into a single plugin or removing data that doesn't need to be in a
plugin (accidental changes). It can convert a plugin file to a master file or a
master file to a plugin file, move worldspaces, generate silent dialog MP3s, and
a ton of other useful stuff. Selected plugin records can be removed from a
plugin or copied to another plugin. It will also split a single plugin file into
master/plugin components and compare two plugins, highlighting the differences
between them.
Please see the Available Functions section below for critical details and
warnings about how individual functions work.
Discussion of TES4Gecko is on the Bethesda Elder Scrolls Construction Set forum
(http://www.gamesas.com/bgsforums/). Search for TES4Gecko if you don't see the
thread right away.
New Features and Changes
----------------------------------
TES4Gecko Version 13 adds a ton of new features, drastically revamps the code
base, and fixes a bunch of bugs. Here's a few of the biggest new features.
The Compare Plugins function has been redesigned to improve performance. It now
allows comparisons of very large files, such as Oblivion.esm, which in turn made
it possible to add a new "Clean Plugin" function to remove any entries from a
plugin that do not actually differ from Oblivion.esm (accidental changes). The
'Toggle Ignore' and 'Copy to Clipboard' functions are now available on the
Compare Plugins screen. The "Split Plugin" function now has an option to create
an independent ESM/ESP pair (where the ESM has no dependency on the ESP). The
Display/Copy function now displays the plugin master list with the associated
modindex for records tied to that master, supports both FormID and EditorID
search functions, and provides automatic highlighting of master records. The
master list order can now be changed, Worldspaces can be moved into the
Oblivion.esm modindex (00) to avoid vanishing landscape problems, and BOOK
subrecords are merged.
See the version history near the end of this document for a complete list of
changes and fixes.
Installation
----------------------------------
To install this utility, place the TES4Gecko.jar and the TES4Gecko-Silence.mp3
files into a directory of your choice. To run the utility, create a program
shortcut and specify "javaw -Xmx1024m -jar
the program to run, where
directory where you extracted the jar file. If the path for java isn't set on
your system, you will need to specify the full path to javaw.
A sample program shortcut is included that specifies \Tmp as the install
directory. The -Xmx1024m argument specifies the maximum heap size in megabytes
(the example specifies a heap of 1024Mb, or 1Gb). You can increase the size if
you run out of space merging very large plugins. Note that Windows will start
swapping if the Java heap size exceeds the amount of available storage and this
will significantly impact performance.
The Sun Java 1.6 runtime is required. You can download JRE 1.6 from
http://java.com/download/index.jsp. If you are unsure what version of Java is
installed on your system, open a command prompt window and enter "java -
version".
=========================================================================
=========================================================================
Available functions:
Apply Patch
-----------
This function will recreate a modified plugin file by applying a patch file to a
plugin file. The patch file must have been created by the Create Patch function
and the plugin file must be the base plugin file that was used to create the
patch.
The 'Merge Plugins' function should be used if you want to combine two different
plugin files and the 'Merge to Master' function should be used if you want to
merge a plugin into a master file.
Clean Plugin
------------
This function will remove records from the plugin that are the same as records
in the master. Plugin records that modify or delete master records will not be
removed.
Compare Plugins
---------------
This function will let you browse the record structures of two plugins side-by-
side. Differences between the two plugins will be highlighted. This will let
you easily see what changes have been made in a new version of a plugin. You
can copy records from either plugin to the clipboard plugin. You can also
delete records in either plugin. Refer to the "Display Plugin" function for
more information on copying and deleting plugin records.
Note that records copied from the plugins are not merged into the clipboard -
they are copied as-is. This means that a record will not be copied if the
clipboard already contains a record with the same form ID.
Convert to Master
-----------------
This function will convert a plugin file (*.esp) to a master file (*.esm). The
plugin file will not be deleted. The output file will be overwritten if it
exists.
Convert to Plugin
-----------------
This function will convert a master file (*.esm) to a plugin file (*.esp). The
master file will not be deleted. The output file will be overwritten if it
exists.
Create Patch
------------
This function will create a patch file by comparing a modified plugin file to
the original plugin file. The master list must be the same for both the
original plugin and the modified plugin. The patch file will contain just those
items that were added, changed or deleted. The patch file name will be the same
as the original plugin file name but with an extension of ".esu" instead of
".esp". The modified plugin file can then be recreated by applying the patch
file to the original plugin file using the Apply Patch function. The
Display/Copy function can be used to display the contents of the patch file.
A record is considered to be changed if the subrecord data is not identical.
Since the Construction Set does not always write out the subrecord data in the
same order when saving a plugin and sometimes writes random data in unused
subrecord fields, this can cause records to be treated as changed even though no
changes were made.
Display/Copy
------------
This function will display the records in a plugin. Records that modify a
master record will be highlighted to make it easier to distinguish between local
records and shared records.
The "Ignore" flag can be set or reset to cause a record to be ignored when
saving the plugin. The record is physically removed from the plugin when the
plugin is saved. The "Ignore" flag for all records in a group will be toggled
when a group is selected. An attempt to set the "Ignore" flag for a subrecord
will be ignored since subrecords do not have an "Ignore" flag. However,
subrecords can be deleted and will be removed from the record.
Records can be copied to a clipboard plugin called "Gecko Clipboard.esp". An
existing clipboard plugin will be overwritten each time the clipboard is saved.
The clipboard plugin can be merged with another plugin or loaded by the
Construction Set. Optionally, any records referenced by the copied records will
also be copied to the clipboard plugin.
The "Copy" and "Toggle Ignore" buttons work on the selected rows in the plugin
tree display. Multiple records can be selected using the normal Windows
conventions. Hold down the SHIFT key to select all rows between the previous
selection and the new row. Hold down the CTRL key to add just the new row to
the selection.
You can search for a record based on its editor ID or its form ID. The editor
ID search term is specified as a regular expression while a form ID search term
is the hexadecimal form ID. If a match is found, the tree node for the matching
record will be selected.
An editor ID search expression can be the complete editor ID such as
"OOOBraidedCuirass". Or it can contain regular expression constructs to specify
the match pattern. The matching is case-insensitive because the editor ID is
not case senstive, thus "OOO" will match "ooo". The following are some useful
regular expression constructs. Refer to
http://java.sun.com/javase/6/docs/api/java...ex/Pattern.html for more
information on regular expression patterns. A special character can be
specified as part of the search string by escaping it. For example, if you want
to find an editor ID containing a period, specify "\." instead of "." in the
search expression since an unescaped period will match any character.
. = Any character
X* = Zero or more occurrences of X
X? = Zero or one occurrences of X
X+ = One or more occurrences of X
X{n} = n occurrences of X
For example, to search for any record starting with "OOO", the search term would
be "OOO.*". Note that the records are searched in the order they appear in the
plugin and not in the order they are displayed. Use the "Find Next" button to
continue the search from the last match.
Edit Description
----------------
This function will edit the plugin version, creator and summary fields. The
version can be set to 0.8 (base Oblivion) or 1.0 (Shivering Isles expansion).
Edit Master List
----------------
This function will edit the master list for a plugin. A master entry can be
renamed or removed. An error will be posted if the master file is still
referenced by an item in the plugin. The user can continue and forcibly remove
the master entry, in which case all records referencing the master will also be
removed. The user can also change the order of the master list entries. This
doesn't change the order in which master files are loaded, but it can be used to
synchronize form ID values when comparing two plugins (two items are considered
to be different if they both reference the same master but the masters are in
different positions in their respective master lists).
Generate Responses
------------------
This function will create response voice files for each dialog entry in the
plugin. Any existing response files for the plugin will be deleted. The
TES4Gecko-Silence.mp3 file is copied to the correct file names. If the dialog
uses the GetIsID function, a single file will be created based on the NPC race
and gender. If the dialog uses the GetIsRace function, two files (male and
female) will be created based on the specified race. Otherwise, two files (male
and female) will be created for each playable race.
The TES4Gecko-Silence.mp3 file provides 8 seconds of silence. You can replace
this file with another one of your choice to change the length. The file must
be recorded as a mono file with a 44KHz sample rate and a 64Kbps bit rate.
Merge Plugins
-------------
This function will merge two or more plugin files and create a new merged plugin
file. The output file will be overwritten if it exists. The files will be
merged in the order specified by the assigned priority values. Priority 1 files
will be merged before priority 2 files, priority 2 files will be merged before
priority 3 files, etc. Files with the same priority will be merged based on the
file modification timestamps. A file will not be merged if it has not been
assigned a priority or if the priority value is not valid (priority values must
be greater than zero). Specify priority values by clicking on a row in the
plugin table and then typing in the desired number.
If you check the 'Delete last master record conflict' box, the second
conflicting record will be removed from the merged file. Otherwise, the first
conflicting record will be removed. Two records conflict if they both modify
the same object in the master file.
If you check the 'Edit master leveled list conflicts' box, leveled list
conflicts will be displayed and you will be able to manually merge the leveled
list items. Items can be copied from the plugin leveled list to the merged
leveled list, items can be deleted from the merged leveled list, and the level
and count values for items in the merged leveled list can be changed. If this
box is not checked, leveled list conflicts will be resolved by adding the unique
entries from the second leveled list to the first leveled list (an entry is
considered to be a duplicate of an existing entry if it has the same level
number and item form ID).
Form ID and Editor ID conflicts are resolved by assigning new values. For this
reason, an existing save game may be invalidated if a new merged plugin file is
created and a conflict exists that did not exist in an earlier merged plugin
file. The Form ID and Editor ID will not be changed if there are no conflicts
with the existing values.
IMPORTANT NOTE: TES4Gecko does not contain support for processing scripts. If
an Editor ID conflict occurs and you choose to rename the Editor ID, then you
must check the scripts in the merged plugin (using the Bethesda Construction
Set) and manually change the Editor ID from the old value to the new value. The
compiled scripts will work properly after the merge without any changes but the
scripts will fail if they are recompiled without first updating the Editor ID
values in the script source.
If two plugins modify the same record in a master file, the conflict is resolved
by selecting those subrecords that are not the same as the corresponding master
subrecords. If both plugins modify the same subrecord, the subrecord from the
first plugin or the second plugin will be used depending on which option was
selected in the merge dialog. Lists are handled by adding unique list items
from the second plugin to the list from the first plugin.
Voice response files for each plugin are merged. Landscape files are not merged
since there is no way to tell if a particular landscape record is used by a
given plugin. Instead, the Move Worldspaces function should be used to move all
worldspaces in a plugin to the master index before attempting to merge the
plugin.
Merge to Master
---------------
This function will merge a plugin file into an existing master file. Items in
the master file which are modified by the plugin will be replaced by the plugin
definitions. This allows master changes to be tested first in a plugin before
committing the changes to the master.
Voice response files are merged. Landscape files are not merged since there is
no way to tell if a particular landscape record is used by a given plugin.
Instead, the Move Worldspaces function should be used to move all worldspaces in
a plugin to the master index before attempting to merge the plugin.
Move Worldspaces
----------------
This function will move WRLD and visible-when-distant STAT records from the
plugin index to the 00 index. Distant land files will be renamed if they are
found in Meshes\Landscape\LOD or Textures\LandscapeLOD\Generated. Distant
statics records will be updated if they are found in DistantLOD. The DistantLOD
files must be generated before moving worldspaces if a plugin contains visible-
when-distant references to statics defined in a master other than the first
master. The DistantLOD files are optional if all of the visible-when-distant
references are to statics defined in the plugin or in the first master.
Placeholders can be inserted to mark moved worldspaces and statics. These are
scrolls with the original form ID and an editor ID consisting of "TES4Gecko"
followed by the 8-digit relocated form ID. Placeholders are required if you are
moving worldspaces in a master and you have one or more dependent plugins that
reference the master. Otherwise, inserting placeholders is up to you.
If you want to relocate worldspace in a master with one or more plugins, you
must first relocate the worldspaces in the master (be sure to insert
placeholders). Then relocate worldspaces for each of the dependent plugins
(inserting placeholders at this point is optional).
If a plugin contains a visible-when-distant reference to a static defined in a
master but the master version of the static has not been relocated, a cloned
static definition will be added to the plugin and this definition will be
relocated. If the plugin already contains the static definition, the plugin
definition will be relocated, which means the plugin definition will no longer
override the master definition for the static.
Set Directory
-------------
This function set the directory containing the plugin files. This is usually
directory must already exist. Note that some functions require access to the
files in the master list for a plugin. If you set the directory to a different
location, you must copy any required master files to this directory.
Split Plugin
---------------
This function will split a plugin file into an ESM/ESP pair with the ESP
dependent on the ESM. The resulting split master will be "clean", containing
only new content that did not already exist in another master. The resulting
plugin will contain only changes to other masters. Doors linking new cells to
existing cells will be split correctly to avoid contaminating the master with
changes (which can cause landscape problems). New content added to existing
Cells (interiors) and Worldspaces will be correctly kept in the ESP because they
are in effect changing another master.
In addition, visible-when-distant references will be placed in the split plugin.
This is necessary because Oblivion has a problem with missing land when a non-00
master contains visible-when-distant references.
A dependent ESM contains all new items from the original plugin while the ESP
contains all modifications to another master, including references added to a
cell defined in another master. This will cause the ESM to require the ESP if
any of the items in the ESM (such as packages or scripts) refer to any of these
references. Loading the ESM without the ESP will result in errors because these
references will not be defined. Items defined in the ESP will use the ESM
module index instead of the ESP module index so that the master can reference
them.
An independent ESM contains all new items from the original plugin with the
exception of items that reference anything still defined in the ESP. For
example, if a new script references a character added to a cell defined by
another master, the script will remain in the ESP and will not be moved to the
ESM. The result is the ESM can be used without the ESP. Items defined in the
ESP will use the ESP module index since they are not referenced by any items in
the ESM.
The resulting split files will be saved automatically with an OUTPUT_ prefix, so
splitting mymod.esp will create an OUTPUT_mymod.esm and an OUTPUT_mymod.esp.
You'll need to remove this prefix before using the new split pair.
Used in conjunction with Merge to Master and Compare Plugins (see below), the
Split Plugin feature should help to facilitate large team projects. Once an
initial split is made and the files are distributed to team members, they can
keep adding new material to the ESP or can create new plugins based on the
master. At the end of each development phase (an arbitrary point you agree on
with other team members), all the new changes and work should be merged back
into the master and a new set of resulting baseline files distributed back out
to the team. When conflicting changes occur during this process, you can use the
Compare Plugins feature to examine the conflicts and use Merge Plugins to
resolve them.
=========================================================================
=========================================================================
Record merge rules for master object conflicts
----------------------------------------------
ACTI - Activator
Attribute subrecords are merged on a one-by-one basis. A plugin subrecord is
chosen if it is not the same as the corresponding subrecord in the master. If
both plugin subrecords are different from the master subrecord, then the
subrecord is chosen based on whether the first or the last conflict should be
deleted.
ALCH - Potion
The initial effects merged list contains all of the effects from the first
occurrence of the potion in a plugin. Unique effects from subsequents
occurrences of the potion are then added to the merged list. An effect is
unique if it has a different effect name/subtype. For a script effect, the
effect is unique if it uses a different script.
The potion value will be set to the highest value encountered. Auto-calculate
will be turned off if it is off for any occurrence of the potion in a plugin.
AMMO - Ammunition
Attribute subrecords are merged on a one-by-one basis. A plugin subrecord is
chosen if it is not the same as the corresponding subrecord in the master. If
both plugin subrecords are different from the master subrecord, then the
subrecord is chosen based on whether the first or the last conflict should be
deleted.
ANIO - Animated object
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
APPA - Apparatus
Attribute subrecords are merged on a one-by-one basis. A plugin subrecord is
chosen if it is not the same as the corresponding subrecord in the master. If
both plugin subrecords are different from the master subrecord, then the
subrecord is chosen based on whether the first or the last conflict should be
deleted.
ARMO - Armor
Attribute subrecords are merged on a one-by-one basis. A plugin subrecord is
chosen if it is not the same as the corresponding subrecord in the master. If
both plugin subrecords are different from the master subrecord, then the
subrecord is chosen based on whether the first or the last conflict should be
deleted.
BOOK - Book
Attribute subrecords are merged on a one-by-one basis. A plugin subrecord is
chosen if it is not the same as the corresponding subrecord in the master. If
both plugin subrecords are different from the master subrecord, then the
subrecord is chosen based on whether the first or the last conflict should be
deleted.
BSGN - Birthsign
Attribute subrecords are merged on a one-by-one basis. A plugin subrecord is
chosen if it is not the same as the corresponding subrecord in the master. If
both plugin subrecords are different from the master subrecord, then the
subrecord is chosen based on whether the first or the last conflict should be
deleted.
The initial merged spell list contains all of the spells from the first
occurrence of the birthsign in a plugin. Unique spells from subsequent plugins
are then added to the merged list.
CELL - Cell
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
CLAS - Class
Attribute subrecords are merged on a one-by-one basis. A plugin subrecord is
chosen if it is not the same as the corresponding subrecord in the master. If
both plugin subrecords are different from the master subrecord, then the
subrecord is chosen based on whether the first or the last conflict should be
deleted.
CLOT - Clothing
Attribute subrecords are merged on a one-by-one basis. A plugin subrecord is
chosen if it is not the same as the corresponding subrecord in the master. If
both plugin subrecords are different from the master subrecord, then the
subrecord is chosen based on whether the first or the last conflict should be
deleted.
CLMT - Climate
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
CONT - Container
Attribute subrecords are merge on a one-by-one basis. A plugin subrecord is
chosen if it is not the same as the corresponding subrecord in the master. If
both plugin subrecords are different from the master subrecord, then the
subrecord is chosen based on whether the first or the last conflict should be
deleted.
The initial merged container contains all of the items from the first occurrence
of the container in a plugin. Unique items from subsequent containers are then
added to the merged container.
CREA - Creature
Attribute subrecords are merged on a one-by-one basis. A plugin subrecord is
chosen if it is not the same as the corresponding subrecord in the master. If
both plugin subrecords are different from the master subrecord, then the
subrecord is chosen based on whether the first or the last conflict should be
deleted.
The initial faction list contains all of the factions from the first occurrence
of the creature in a plugin. Unique factions from subsequent plugins are then
added to the merged list.
The initial inventory list contains all of the items from the first occurrence
of the creature in a plugin. Unique items from subsequent plugins are then
added to the merged list.
The initial merged spell list contains all of the spells from the first
occurrence of the creature in a plugin. Unique spells from subsequent plugins
are then added to the merged list.
The initial merged package list contains all of the AI packages from the first
occurrence of the creature in a plugin. Unique packages from subsequent plugins
are then added to the merged list.
CSTY - Combat style
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
DIAL - Dialog
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
DOOR - Door
Attribute subrecords are merged on a one-by-one basis. A plugin subrecord is
chosen if it is not the same as the corresponding subrecord in the master. If
both plugin subrecords are different from the master subrecord, then the
subrecord is chosen based on whether the first or the last conflict should be
deleted.
EFSH - Effect shaders
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
ENCH - Enchantment
The initial effects merged list contains all of the effects from the first
occurrence of the enchantment in a plugin. Unique effects from subsequents
occurrences of the enchantment are then added to the merged list. An effect is
unique if it has a different effect name/subtype. For a script effect, the
effect is unique if it uses a different script.
The total charge and cost for the enchantment will be set to the highest values
encountered. Auto-calculate will be turned off if it is off for any occurrence
of the enchantment in a plugin.
EYES - Eyes
Attribute subrecords are merged on a one-by-one basis. A plugin subrecord is
chosen if it is not the same as the corresponding subrecord in the master. If
both plugin subrecords are different from the master subrecord, then the
subrecord is chosen based on whether the first or the last conflict should be
deleted.
FACT - Faction
Attribute subrecords are merged on a one-by-one basis. A plugin subrecord is
chosen if it is not the same as the corresponding subrecord in the master. If
both plugin subrecords are different from the master subrecord, then the
subrecord is chosen based on whether the first or the last conflict should be
deleted.
Faction ranks are merged as a single entity based on which plugin has a
different number of ranks than the master. If both plugins have a different
number of ranks, then the faction ranks are chosen based on whether the first or
the last conflict should be deleted.
The initial interfaction relations merged list contains all of the factions from
the first occurrence of the faction in a plugin. Unique interfaction relations
from subsequent occurrences of the faction are then added to the merged list.
FLOR - Flora
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
FURN - Furniture
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
GRAS - Grass
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
GLOB - Global Variable
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
GMST - Game Setting
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be delete.
HAIR - Hair
Attribute subrecords are merged on a one-by-one basis. A plugin subrecord is
chosen if it is not the same as the corresponding subrecord in the master. If
both plugin subrecords are different from the master subrecord, then the
subrecord is chosen based on whether the first or the last conflict should be
deleted.
IDLE - Idle animation
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
INGR - Ingredient
The initial effects merged list contains all of the effects from the first
occurrence of the ingredient in a plugin. Unique effects from subsequents
occurrences of the ingredient are then added to the merged list. An effect is
unique if it has a different effect name/subtype. For a script effect, the
effect is unique if it uses a different script.
The ingredient value will be set to the highest value encountered. Auto-
calculate will be turned off if it is off for any occurrence of the ingredient
in a plugin.
KEYM - Key
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
LIGH - Light
Attribute subrecords are merged on a one-by-one basis. A plugin subrecord is
chosen if it is not the same as the corresponding subrecord in the master. If
both plugin subrecords are different from the master subrecord, then the
subrecord is chosen based on whether the first or the last conflict should be
deleted.
LSCR - Load screen
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
LVLC - Leveled Creature, LVLI - Leveled Item, LVSP - Leveled Spell
Attribute subrecords are merged on a one-by-one basis. A plugin subrecord is
chosen if it is not the same as the corresponding subrecord in the master. If
both plugin subrecords are different from the master subrecord, then the
subrecord is chosen based on whether the first or the last conflict should be
deleted.
The initial merged list contains all of the list items from the first occurrence
of the leveled list in a plugin. Unique list items from subsequent leveled
lists are then added to the merged list.
LTEX - Land texture
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
MGEF - Magic effects
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
MISC - Miscellaneous item
Attribute subrecords are merged on a one-by-one basis. A plugin subrecord is
chosen if it is not the same as the corresponding subrecord in the master. If
both plugin subrecords are different from the master subrecord, then the
subrecord is chosen based on whether the first or the last conflict should be
deleted.
NPC - Non-player character
Attribute subrecords are merged on a one-by-one basis. A plugin subrecord is
chosen if it is not the same as the corresponding subrecord in the master. If
both plugin subrecords are different from the master subrecord, then the
subrecord is chosen based on whether the first or the last conflict should be
deleted.
The initial faction list contains all of the factions from the first occurrence
of the NPC in a plugin. Unique factions from subsequent plugins are then added
to the merged list.
The initial inventory list contains all of the items from the first occurrence
of the NPC in a plugin. Unique items from subsequent plugins are then added to
the merged list.
The initial merged spell list contains all of the spells from the first
occurrence of the NPC in a plugin. Unique spells from subsequent plugins are
then added to the merged list.
The initial merged package list contains all of the AI packages from the first
occurrence of the NPC in a plugin. Unique packages from subsequent plugins are
then added to the merged list.
PACK - Package
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
QUST - Quest
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
RACE - Race
Attribute subrecords are merged on a one-by-one basis. A plugin subrecord is
chosen if it is not the same as the corresponding subrecord in the master. If
both plugin subrecords are different from the master subrecord, then the
subrecord is chosen based on whether the first or the last conflict should be
deleted.
Racial abilities and reactions are merged by adding unique entries from each
plugin to the current merged list.
Face and body meshes/textures are chosen based on which ones are different from
the corresponding master value. If both plugins are different from the master,
then the mesh/texture is chosen based on whether the first or the last conflict
should be deleted.
REGN - Region
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
SBSP - Subspace
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
SCPT - Script
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
SGST - Sigil stone
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
SKIL - Skill
Attribute subrecords are merged on a one-by-one basis. A plugin subrecord is
chosen if it is not the same as the corresponding subrecord in the master. If
both plugin subrecords are different from the master subrecord, then the
subrecord is chosen based on whether the first or the last conflict should be
deleted.
SLGM - Soul gem
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
SOUN - Sound
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
SPEL - Spell
The initial effects merged list contains all of the effects from the first
occurrence of the spell in a plugin. Unique effects from subsequents
occurrences of the spell are then added to the merged list. An effect is unique
if it has a different effect name/subtype. For a script effect, the effect is
unique if it uses a different script.
The total cost and skill level for the spell will be set to the highest values
encountered. Auto-calculate will be turned off if it is off for any occurrence
of the spell in a plugin.
STAT - Static
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
TREE - Tree
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
WATR - Water
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
WEAP - Weapon
Attribute subrecords are merged on a one-by-one basis. A plugin subrecord is
chosen if it is not the same as the corresponding subrecord in the master. If
both plugin subrecords are different from the master subrecord, then the
subrecord is chosen based on whether the first or the last conflict should be
deleted.
WRLD - World space
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
WTHR - Weather
The entire record is merged. A plugin record is chosen if it is not the same as
the corresponding record in the master. If both plugin records are different
from the master record, then the record is chosen based on whether the first or
the last conflict should be deleted.
=========================================================================
=========================================================================
Version 1: TES4Plugin
---------------------
Initial release.
Version 2: TES4Plugin
---------------------
Top-level records marked as 'Ignore' will not be copied to the merged plugin.
Records in sub-groups will still be copied even if marked as 'Ignore' until I
know more about what happens when you omit records found in a sub-group.
Compressed records are expanded as needed instead of expanding all records when
loading the plugin. This should significantly reduce the storage requirements
when merging large plugins.
WRLD and CELL records in a master can be modified by multiple plugins. An error
will still be posted if any other record type is modified by more than one
plugin. Research is continuing to determine what can safely be modified without
breaking the merged plugin.
Version 3: TES4Plugin
---------------------
Add the capability to convert a master file to a plugin file.
Add the capability to edit the plugin description.
Create the application preferences data directory if it doesn't exist.
The XCHG subrecord is now recognized.
References in additional subrecords are now adjusted when merging plugins.
The CS ignores underscores in an Editor ID, so conflicts will now be resolved by
appending 'X' to the Editor ID.
Version 4: TES4Plugin
---------------------
Add the Display Records function.
All ignored records are deleted during a merge.
Leveled lists (creature, item, spell) are now merged.
Version 5: TES4Plugin
---------------------
Add the capability to display the complete subrecord data in a popup window.
Conditions are now processed properly in quest (QUST), package (PACK) and dialog
(INFO) records.
Top-level groups now have descriptive names instead of the 4-character record
type.
Version 6: TES4Plugin
---------------------
Deleted records are indicated in the record display tree view.
Eyes (ENAM) and Hair (HNAM) subrecords are now processed properly for Races.
Conflicts will be removed from the merged file.
Duplicate items will be removed from the merged file.
The plugin merge list is now sorted by the last modified date.
The Set Directory function now uses a file chooser dialog.
Leveled list conflicts can be edited during the merge.
Version 7: TES4Plugin
---------------------
Both references in the race voice override subrecord (VNAM) will be updated
during a merge.
Add the capability to generate silent dialog response files.
Add the capability to merge a plugin file into a master file.
Merge the associated voice files when merging plugins.
The merge order is now specified explicitly by the user instead of being
determined by the file modification dates.
Change the Display Records function to display both master files and plugin
files.
WRLD, CELL and DIAL subgroups will be merged instead of being duplicated.
Version 8: TES4Plugin
---------------------
Fix problem with form ID conflicts after a master record conflict.
Duplicate references not removed when merging subgroup.
Group label not updated when the label is a form ID (WRLD/CELL/DIAL).
Update references in XTEL and XLOC subrecords.
Replace NL with CRLF in plugin summary.
Version 9: TES4Plugin
---------------------
Use a case-insensitive compare when checking for Editor ID conflicts.
When displaying a plugin, sort the records for a top-level group based on the
Editor ID.
Correctly handle ENAM subrecord for SKIL record.
Correctly handle MGEF record.
Correctly handle SCIT subrecord for ENCH and SPEL records.
Correctly handle adding a tail to an existing race.
Add spill file support.
Toggle the "Ignore" flag for all records in a group when "Toggle Ignore" is
selected for a group.
Accept Version 1.0 plugin files. New plugin files are still created as Version
0.8.
Don't save ignored records and empty groups.
Version 10: TES4Plugin
----------------------
Add subrecord merge support.
Copy records referenced by the selected records for the Display/Copy function.
Don't build the subrecord nodes for the Display/Copy function until they are
needed.
Correctly handle the same CELL record in different groups.
Correctly handle XCLR subrecord for CELL records.
Allow a plugin to rename an object in a master file.
Version 11: TES4Plugin
----------------------
Allow any record or group to be copied.
Update GetDistance function references.
Handle escape sequences (%xx) in file URL paths.
Initialize the merged plugin description to the description from the first
plugin in the merge.
Add confirmation dialog if the output file already exists.
Add function to edit the plugin master list.
Add functions to create and apply plugin patches.
Version 12: TES4Gecko
---------------------
Renamed the project TES4Gecko.
Added Plugin Splitter to create an ESM/ESP pair from a source plugin.
Added Compare Plugins to view two plugins and highlight differences between
them.
Added "Yes to All" button on Merge to Master.
Fixed other minor interface issues.
Revised documentation.
Version 13: TES4Gecko
---------------------
Check master file size as well as master timestamp to decide if the index file
should be rebuilt.
Set the initial directory to the Oblivion\Data directory.
Preserve the plugin version whenever the plugin is modified.
Add progress bar when loading/saving/updating plugins.
Add support for patching master files as well as plugin files.
Fix problem with "\r\r\n" sequences when the edited description already contains
"\r\n".
Fix reversed 'Yes' and 'No' options in merge confirmation dialog.
Use file chooser when renaming a master list entry, allow selection of master or
plugin file.
Allow a master list entry to be deleted even if the plugin contains references
to the master. The records containing the references will be deleted.
Fix bug where removing a master did not update the plugin record form ID values.
Allow the master list order to be changed. While this doesn't affect the order
in which master files are loaded, it can be used to synchronize form ID values
for the Compare function.
Redesign the Compare Plugins function to improve the performance.
Add 'Toggle Ignore' and 'Copy to Clipboard' functions to the Compare Plugins
dialog.
Add Clean Plugin function.
Add Move Worldspaces function.
Form ID references in LNAM subrecords were not being updated.
Subgroup CELL record references were not getting updated, causing CELL
references to be lost or moved.
Allow the plugin version to be changed by the Edit Description function.
Correctly merge GMST and MGEF records with the same editor ID but different form
ID values.
Add the ability to split a plugin into an independent ESM/ESP pair.
Update the Display/Copy function to display the plugin master list and the
associated index values.
Add search option to the Display/Copy function.
Highlight master records for the Display/Copy function.
Merge BOOK subrecords.
Fix dialog chains when merging/copying info records.
Form ID references in PGRL subrecords were not being updated.
Add the ability to copy an item without also copying its references.
Add the ability to delete subrecords.
Insert the 'visible distant children' subgroup before the 'temporary children'
subgroup.
Form ID reference in SNAM subrecord of WTHR record were not being updated.
Form ID references in WLST subrecord of CLMT record were not being updated.
Form ID references in ATXT subrecord of LAND record were not being updated.
The "Move to plugin index" option for the Move Worldspaces function has been
removed because it does not work for plugins referencing relocated masters.
Visible-when-distant statics defined in a master but referenced in a plugin will
be cloned in the plugin if they need to be relocated.
Version 14: TES4Gecko
---------------------
Add the exterior cell X,Y coordinates to the tree node description.
Assign interior cell block/subblock based on the merged form ID for the cell.
Change the Split Plugins function to move visible-when-distant groups to the
plugin.
Form ID references in DATA subrecord of IDLE record were not being updated.
Creature sounds merged incorrectly.
________________________________________________________________________________
__________________________________________________________________________
All this sounds daunting, but I assure you it's rather easy to merge plugins. The best place to start is to merge 2 plugins together. Try 2 small tweaks that you like or better yet, just for your own peace of mind, 2 you could care less about. What you'll do is go to the Gecko folder, click the "jar" file and a screen will come up. The first bit on the screen is merge plugins. Then go to the 2 tweaks you want to merge. Click on one of them and put the number 1 in the box to the left of the mod name. Go to the second tweak and put the number 2. Now Go to Ok, at the bottom of the window you have open. You'll be shown a screen with a possible mod name box, Default is Merged plugin.esp but you can name it however you want. for now let's say you picked Merged Plugin.esp. The Gecko will now copy the 2 esps into one, and will let you know if it isn't possible(this happens very rarely). After the 2 plugins are merged, you now have both of those esp's still intact plus the Merged plugin.esp. Now I suggest you take the 2 tweaks out of your data folder(If using Wrye Bash you can simply "hide" them and they'll auto go to that folder). Now I suggest you name the MergedPlugin.esp to one of the 2 mods you just merged so it can go to that mod's place in the load order when you use FCOM helper. It's as simple as that. If you don't like the merger you just did, simply delete the Merged plugin.esp and use the 2 esp's you merged...they're still intact.
Some good advice in merging is:
1) Merging weapons and armor mods is rather easy as the mods are mostly just textures and meshes. The ESP's are pretty small. I've merged over 150 weapons and armor mods into one esp and it's still under 2mb. That ought to tell you something.
2) if you have massive mergers like the one I just mentioned, then the OBMM will either take forever to make it into an OMOD or just give up before it can. This doesn't make the new esp unplayable, far from it. It just means you don't need an OMOD for it. I'd recommend using Wrye Bash instead if you're at the point you need to merge mods anyway.
3)Merging tweaks is easy, but make sure you know exactly what the tweak does before you do it. some Tweaks SOUND like just what you want, til you play them and discover that you were wrong. This has happened to me several times.
4) Dungeon mods are easy to merge, but be careful that you know where all the dungeons are located in the world. You don't want mods occupying the same world space. Believe it or not, this doesn't happen very often. Guess we've all been lucky.
5) Quest mods are a bit trickier due to their content. I strongly advise NOT to merge the big quest mods with Gecko, and stick with the smaller ones. However, one small mod I've noticed has a missing mesh in it's design, Cherdynhal Murder Mystery. Yes, I spelled Cheydinhall wrong, but so did the mod maker. Don't merge this one.
6) DO NOT TOUCH THE MODS ASSOCIATED WITH FCOM. The complexities of the load order designs with FCOM convergence will be complicated by this. I'm not just saying don't touch the "big 4 overhauls" but all mods that have plugins associated with it such as Slof's Robe Trader, Blood & Mud, etc. Trust me, there's plenty of room to merge without touching these.
7) Be wary of merging mods with multiple masters. Let's say you have a patch to VH Bloodlines. It makes sense to merge this patch with VH bloodlines and it will work. However, since the patch has a dependency on the VH Bloodlines mod it'll carry over into the merger. So you'll then have a merged plugin that is dependant on itself and will not work. With Wrye Bash you can change this dependancy to a different mod, such as a master file you will always be using.
8) for those really big mergers where you have a ton in one, you might want to keep a notepad entry noting what you have merged into that one esp. This is simply something you can look at when you have a question.
***Sometimes after a merger it'll make the bmusicenabled feature in your Oblivion.ini reset to 0. Simply go into the Oblivion.ini and go to Bmusicenabled and put the value to 1.
Anyway. Do not be afraid to try out the Gecko. Please post your questions here and I'll try and answer them if I have the time.