Jump to content

DOWNLOAD MODS

Are you looking for something shiny for your load order? We have many exclusive mods and resources you won't find anywhere else. Start your search now...

LEARN MODDING

Ready to try your hand at making your own mod creations? Visit the Enclave, the original ES/FO modding school, and learn the tricks of the trade from veteran modders...

JOIN THE ALLIANCE

Membership is free and registering unlocks image galleries, project hosting, live chat, unlimited downloads, & more...

Guest Workshop: TES4: Gecko - Basic Operations - By: InsanitySorrow


InsanitySorrow
 Share

Recommended Posts

 

 

TES4: Gecko - Basic Operations

 

 

This workshop will cover the basics of TES4 Gecko, each "tool" inside the gecko will be split up into sections where I can give a brief overview of what it is and does and then show you the basic workings of it. So two sections of this workshop really :shrug:

 

For this tutorial you will need the latest version of TES4: Gecko, as of this workshop its 15.2 and can be downloaded from TESNexus.

 

Okay a brief overview of what we will be doing:

 

 

  • Downloading the latest version of TES4: Gecko
  • Extracting and then running the Application
  • Learning what each "tool" does
  • Workshop examples to learn the basic steps for the tool operations

 

 

So what is TES4: Gecko?

 

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.

 

 

 

Tool Set Descriptions:

 

 

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 Plugin

 

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.

 

Conver 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:

 

  • - editor ID [formID],
  • - form ID [formID],
  • - item name,
  • - XY location for cells [integer, integer],
  • - ownership [formID],
  • - base reference ID [formID],
  • - script text,
  • - response text

 

 

All searches not otherwise specified use regular expression while form ID searches use hexadecimal form IDs. 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/util/regex/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. Also note that "*" may be used as in windows; see that *bat* example earlier in this file. It's possible that this alteRnate usage may collide with the POSIX usage in weird cases. If this happens,please post on the release thread at BSF.

 

There are many changes to this function not listed here. Please check either theBSF release thread or the ST dev thread referenced in the release thread OP formore details.

 

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 Masterlist

 

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 Silent Voice Files

 

This function will create response silent voice files for each dialog entry in the plugin. Any existing response files for the plugin will be deleted. One of the TES4Gecko silence. MP files is copied to the correct file names; which files is copied depends on the word count of the entry. Races and genders are filtered based on both quest and response conditions; any logic errors biased toward generation rather than exclusion. If no conditions are found, two files (male and female) will be created foreach playable race.

 

There are 16 silence files: the TES4Gecko-Silence.mp3 file provides 8 seconds of silence,while 15 others provide from 1 to 15 seconds of silence.. You can replace this file with another one of your choice to change the length. The files 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.

 

If there are exterior cells in the file to be merged, the user is given the optionto either include or exclude cells based on assigned region.

 

Move Worldspace

 

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 <Oblivion-install-directory>\Oblivion\Data but can be set to any directory. The 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.

 

Quoted directly from the teams descriptions found in the readme.

Link to comment
Share on other sites

 

 

The Workshop: Lets learn the basics

 

 

The Beginnings: Ok before we delve deep into the offerings of TES4: Gecko we must first download, extract and then run the tool. So lets go ahead and download it from TESNexus, for this workshop I am going to extract the contents of the file to my desktop to make it easier to work with.

 

You can go ahead and place it where ever you like, placement does not matter, just remember where you put it or make a shortcut to it. Here is a screenshot of what I done:

 

GeckoTut01.jpg

 

Starting the Gecko: After extracting the contents of the archive to your chosen place, navigate the TES4: gecko folders and find the TES4Gecko.jar file. This is the application and it needs the latest version of Java to run, so if you don't have that download and install before running the app.

 

Double-click the .jar file to run the application, when it has started you will be presented with this screen, take a few moments to look over it and get familiar with it. This is where you do all the Gecko work.

 

GeckoTut02.jpg

 

Merge Plugins: Now that we know how to run the application we are going to look at the first function, the Merge Plugins Function.

 

For this part you will need these plugins I created for this tutorial, Download them Here. Each one has a unique weapon in it which so we can see how things get merged. Extract these to your Oblivion\Data directory alongside your other plugins.

 

So first thing to do is run the application and click the Merge Plugins button, you should see another window open up with a list of the current ESPs in your Oblivion Directory.

 

GeckoTut03.jpg

 

Okay so looking at the screen we can see the plugins are displayed in a list with two columns Priority and Plugin. Priority controls what is merged first, and always starts at 1 for the first ESP you want to merge, any at 0 or left blank will be ignored.

 

So what we will do is give our two new ESPs a priority, set the aa Gecko Tutorial 1.esp with a priority of 1 and aa Gecko Tutorial 2.esp a priority of 2 like so:

 

GeckoTut04.jpg

 

Now that we have them setup the next thing is to select the OK button at the bottom to begin merging, a new window will popup (the old one closes) so we can name the new plugin and give it a description if we wish, I have done this like so:

 

 

  • Name: Merged Tutorial Plugins
  • Description: Merged Geckp Tutorial Plugins

 

For the Creator seciton enter your own name, before we continue it should look like so:

 

GeckoTut05.jpg

 

Now that you have it all setup click the OK button to begin merging, you will see a progress bar and the mention of loading the Oblivion.esm etc. These are all normal and with this workshop should only be shown for roughly 30 seconds. Once thats done you will recieve a message saying the plugins have been merged like so:

 

GeckoTut06.jpg

 

Congrats on your first plugin merging :shrug:, now lets have a quick look at it, open the Construction Set and load our new merged plugin, once it has loaded look in the weapons section and you should see two weapons at the very top of the list:

 

GeckoTut07.jpg

 

And thats it, our two weapons have been merged into the same plugin, when merging basic plugins with different changes like the two weapons in this example all will be merged, its when you merge in a more advanced way that you have to be careful what ESPs are merged this way instead of manually.

Link to comment
Share on other sites

Nice tut again, IS! Gecko is a very powerfull and at the same time relatively easy to understand tool which I use quite a lot (even more than TES4Edit). It makes modding so much more convenient, especially for filtering out esp's and creating esm based structures.

I spoke to one of the early developers a few years ago: KomodoDave. An extremely nice guy, who is still on my Bethsoft friends list. Hope he's doing well, because he hasn't been active lately. smile.gif

Link to comment
Share on other sites

  • 5 months later...

Okay so the merge itself worked pefectly fine then, when using Player.Additem in-game you need to use the FormID of the object instead of the editor ID.

An easier way I would suggest is to make a little quest script that gives the player the weapons when the game loads, it's very simple and allows you to use the editor IDs.

Scriptname aaGeckoTutAddScript

Short DoOnce

Begin GameMode
If DoOnce == 0
Player.Additem aaGeckTut01 1
Player.Additem aaGeckTut02 1
Set DoOnce to 1
Endif
End[/code]

Link to comment
Share on other sites

I am not familiar with scripts. Where do I type the commands?

Okay so the merge itself worked pefectly fine then, when using Player.Additem in-game you need to use the FormID of the object instead of the editor ID.

An easier way I would suggest is to make a little quest script that gives the player the weapons when the game loads, it's very simple and allows you to use the editor IDs.

Scriptname aaGeckoTutAddScript


Short DoOnce


Begin GameMode

   If DoOnce == 0

      Player.Additem aaGeckTut01 1

      Player.Additem aaGeckTut02 1

      Set DoOnce to 1

   Endif

End

Link to comment
Share on other sites

What you need to do is open up the script editor in the CS, copy and paste that code into the editor screen and save. Make sure this is done inside your Geck Tut ESP, else the IDs will needed changing.

Make a new quest, attach the new script you saved and then make sure StartGame Enabled is checked, also give it a priority, I usually give it a 90. Afte that is done save the ESP and load your game, if done right you will get the weapons added, only once though.

Link to comment
Share on other sites

And here is what happened when I tried to follow the instructions for the script editor in the CS:

scriptproblem.jpg

Is it me? What am I doing wrong, or not doing right? Is there something wrong w/ the merged files? Did I merge wrong? I thought I followed the instructions for that correctly. Perhaps you can examine my merged file and see what the problem is?

http://www.4shared.com/file/244630886/34464537/Merged_Tutorial_Plugins.html

Link to comment
Share on other sites

Okay for the first screenshot you need to use the Form ID while using the console in-game, this is a seperate ID to that of the edtor ID and can be found out the same way as the editor ID.

As for the second shot, that message means the weapons either don't exist or their ID's are somehow different. I'll take a look at your ESP and advise you from there.

Link to comment
Share on other sites

The ESP is fine, you have followed the tutorial correctly :D, The script issue was an error on my part, I did not put in the item IDs correctly, a little spelling mistake.

Fixed now though:

Scriptname aaGeckoTutAddScript

Short DoOnce

Begin GameMode
If DoOnce == 0
Player.Additem aaGeckoTut01 1
Player.Additem aaGeckoTut02 1
Set DoOnce to 1
Endif
End[/code]

Link to comment
Share on other sites

Ok, now I tried it this way & it's like nothing happened! You know? It had NO affect on the game whatsoever! I did not find those 2 items in the game! I mean, didn't I do this right????

stillascriptproblem.jpg

The ESP is fine, you have followed the tutorial correctly :D, The script issue was an error on my part, I did not put in the item IDs correctly, a little spelling mistake.

Fixed now though:

Scriptname aaGeckoTutAddScript


Short DoOnce


Begin GameMode

   If DoOnce == 0

      Player.Additem aaGeckoTut01 1

      Player.Additem aaGeckoTut02 1

      Set DoOnce to 1

   Endif

End

Link to comment
Share on other sites

  • 2 years later...

Hello. I remember i used the "Clean Plugin" feature a few years ago successfully. Now I'm playing Oblivion again, downloaded a mod, wanted to Clean it, but the Gecko crashes with a message that "Not enough heap memory". How much of what do I need to clean my plugin?

JRE 6 installed, 1 gig free and 256 ram on one pc, 2 gigs and 512 ram on second.

Please help.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...