Escolar Documentos
Profissional Documentos
Cultura Documentos
Bugfixes
#618 - 3.3 and 4.0.0 fail to update records when changing form IDs
(breaks auto-renumbering, merging)
PayPal button
By popular demand, a PayPal button has been added for people that prefer to make
a one-off donation instead of pledging on Patreon.
Table of Contents
The TOC button in the top left corner of the What's New Form (also when docked in
the What's New Tab) can be used to show or hide a Table of Contents.
Double Click or Enter in the TOC will scroll the selected header into view.
State (visible or not) and width of the TOC is saved and restored when the Form
shows again.
Search
A search edit has been added to the What's New Viewer.
F3 when the main text is focused keeps searching from the current cursor position.
Enter when the search edit is focused keeps searching from the current position if
the search text has remained unchanged, or starts for the start if the search text has
changed.
Zoom
UI Themes
xEdit now supports a number of build in UI Themes. They can be activated either
through the "Theme" sub menu in the system menu (icon on the top left corner) of
the main window, or via the UI Theme tab in the Options.
The UI Theme tab in the Options provides a preview of the selected theme.
In both the Theme menu and the UI Theme tab, the themes are separated into Light
(darker text on lighter background) and Dark (lighter text on darker background)
themes.
While the Legend form is open, when changing the focused cell in the View treeview,
the matching cell (Conflict This/Conflict All) in the Legend window is focused.
High-DPI aware
xEdit is now flagged as High-DPI aware and the UI should generally scale correctly
when the scale factor is set to > 100% in the windows settings. A known limitation is
that window caption bars and some other elements are not scaling correctly when
custom themes are used.
"Hamburger" Menu
A "Hamburger Menu" button has been added to the top left corner of the main
window. This button opens a menu with (currently) the following entries:
Localization
Save
Options
More menu items that are unnecessarily (= not depending on context) in different
context menus may get moved to this menu in the future.
ESL support
xEdit now fully supports the ESL flag in the file header (as well as the .esl extension
which implicitly always sets the ESL flag).
ESL flagged modules will be loaded into a "light" slot and will have their FormIDs
mapped into the FExxx space. Exactly like the game engine. This means it is now
possible to have up to 253 "full" modules (00 to FD) and 4096 "light" modules (FE000
to FEFFF) loaded at the same time.
The ESL flag does not affect load order (light modules can load before full modules,
the first digits of the FormID are NOT a reliable way to determine load order
anymore).
xEdit will prevent files from being saved with set ESL flag if they are not compatible
(contain new records with an ObjectID, that's the last digits in the FormID, > $FFF)
and will warn on loading incorrectly ESL flagged modules.
ESL support can be controlled with two parameters: -IgnoreESL will load all modules
into full slots, ignoring the ESL flag and the .esl extension -PseudoESL will load all ESL
compatible modules into light slots, even without the ESL flag and the .esl extension.
This works even for games that do not have ESL support in the game engine.
Fallout 76 support
Fallout 76 mode can be enabled by renaming the exe to FO76Edit.exe or starting it
with -fo76 as parameter.
Fallout 76 support is generally ready to the point that anyone should be able to use
it to look at SeventySix.esm without much of a chance for error messages or crashes.
But significant amount of work remains to further refine the record definitions and
identify the many new "Unknown" values that have been added.
Referenced By Caching
Referenced By information is now being cached after being build. The cache files
only need to be rebuild if the CRC of the module or application changes.
Refs are only saved to cache if reaching a threshold of more than 500 records in the
file or ref building is taking more than 2 seconds.
The message log shows if referenced information is build or loaded, and if build, if it
has been saved.
The cache system can be controlled with these parameters: -DontCache = completely
disables ref caching -DontCacheLoad = don't load cache files if present, but save if
possible -DontCacheSave = don't save cache files after building refs -C:{path} = path
to use for cache files
xEdit no longer simply uses the system ANSI codepage, but instead uses specific
encodings for certain classes of strings.
These changes allow explicit control of all used codepages, and make xEdit's
behaviour independent from the ANSI system codepage of the local OS.
String classes
General strings - These are values like file names, developer comments,
internal names that are never visible to the player.
VMAD properties of type string or array of string - These only exist in
Skyrim and later. They are strings stored in the module file, but in a distinctly
different way then other strings.
Translatable strings - These are strings stored in the module file that a
player of the game might get to see. For Oblivion, Fallout 3, and Fallout New
Vegas, these are string fields explicitly marked as such in the xEdit record
definitions. For Skyrim and newer, this also includes any localizable string
(strings that will be stored in the external .strings files when a module is
localized) if the module is not actually localized.
General strings now always explicitly use codepage 1252 (ANSI - Latin I). This can be
overridden using -cp-general:<codepage> where <codepage> is either utf8 or a
codepage number. It should normally never be necessary to override this.
VMAD properties are always explicitly stored as UTF8. There is no way to override
this. All supported games always expect these strings to be UTF8 and any other
codepage would result in errors.
Localized strings are accessed based on the language name that's part of the
filename of the .strings files.
Languages
For Skyrim (not SE) and older, the following language names are recognized:
arabic - 1256
chinese - UTF8
czech - 1250
danish - 1252
english - 1252
finnish - 1252
french - 1252
german - 1252
greek - 1253
hungarian - 1250
italian - 1252
japanese - UTF8
norwegian - 1252
polish - 1250
portuguese - 1252
russian - 1251
spanish - 1252
swedish - 1252
turkish - 1254
english - 1252
For Fallout 4 and Fallout 76, the following language names are recognized:
en - 1252
It is possible to set the codepage used for a language (new or overridding a default
from the list above) by modifying the settings file (shown as "Using settings file:" in
the messages log on start).
There is currently no UI support for this, but the settings file can be opened in a text
editor and a [cpoverride] section can be added or modified like this:
[cpoverride]
english=utf8
klingon=6666
The specified value must be utf8 or a valid codepage (which 6666 isn't, that was just
an example).
The specified codepage will affect any place where a codepage is derived from
language.
Default language
xEdit used to always default to "English" ("En" for Fallout 4) as language if not
explicitly specified on the command line using -l:<language>. While it is still possible
to use that switch to override the language selection, xEdit will now attempt to get
the correct language from the <game>.ini file, from the iLanguage key for Oblivion,
and the sLanguage key for any later games.
Localized strings
xEdit will automatically use the correct codepage for localized strings, even when the
language is switched at runtime using the localization context menu.
The fallback for localized strings in unknown languages is always UTF8. (SSE, FO4,
and FO76 always use UTF8 for anything except english.)
The codepage for these files can be overridden byte creating a text file with the same
name as the .strings file, but the extension .cpoverride instead. e.g.
Skyrim_English.cpoverride. The file should contain a single line with the desired
codepage.
For localized strings, while this language setting affects the inital choice of which
.strings files are being used for localized modules, this can be changed at runtime
using the localization context menu.
Translatable strings
Translatable string use the same codepage as localized strings, but based on the
language defined at program start (either from the <game>.ini or explicitly using
-l:<language>) For games before Skyrim, the same list of language names and
codepages as listed above applies. Changing the language through the localization
context menu after xEdit has started will not change the codepage being used for
translatable (but not localized) strings.
The codepage used for translatable strings can be globally overridden (has priority
over the language selection) using the -cp:<codepage> or -cp-trans:<codepage>
command line parameter where <codepage> is either utf8 or a codepage number. -cp
is supported for backward compatibility, -cp-trans is preferred.
Alternatively, the codepage for translatable strings can now be overridden by placing
the text <cp:xxxx> somewhere in the description (in the file header) of the module.
xxxx can be utf8 or any valid codepage number, e.g. 1252. codepages with less than 4
digits must use leading 0s, e.g. <cp:0930>.
Log entries
The following entries near the top of the message log provide information about the
used language and codepages:
When .strings files are loaded, the used encoding is shown in the log:
When a module has a .cpoverride applied to it, it is also recorded in the log:
Specifically, for TES4, FO3, and FNV load order is derived from file modify times. For
TES5/SSE and FO4 from the order in plugins.txt. For TES5 (which does not contain
inactive modules in it's plugins.txt) the load order for inactive modules is
supplemented from loadorder.txt.
For SSE and FO4, files with the .esm and .esl extensions are always treated as having
the ESM flag set, even if it is missing in the file.
1. {game}.esm
2. Update.esm - SSE
If during loading of modules in this order a module is being loaded for which one or
more required master module is not already loaded, then the required module is
loaded first. This allows non-ESM flagged files to be pulled forward into the ESM
block.
It is now using a treeview which allows you to see the required masters.
There are columns for File Order (giving the exact reason for the position in the
order), ESM flag, ESL flag (for SSE and FO4), Load Order (for active modules) and
FormID Prefix.
The visible modules can be filtered using an edit above the treeview.
Modules with missing masters are shown with strike-through and can't be checked.
For selecting modules to be loaded, checked modules will implicitly check all
required masters (shown with [.] instead of [X]).
You are able to save and load named presets of checked modules.
Double Click or Ctrl+Enter will check only the selected module and automatically
close the dialog with OK.
When used for "Copy as ... into", template entries allow you to specify the desired
extension and initial ESM/ESL flag values for a new file.
When used for "Copy as ... into", the previous selection is remembered.
With this option active, CTRL must be held down for Double Click to be accepted in
the Module, Mod Group, and (old style) file selection forms.
If a normal file and a .ghost file exist, the .ghost file is ignored.
Except in the save dialog, the UI does not show the .ghost extension.
A ModGroup can never hide the winning override or the original master record.
A setup where all real conflicts have been resolved by patches and all false positives
hidden by ModGroups will show an empty navigation treeview after applying a "Filter
to show conflicts". With this as the starting point, adding one new mod to an existing
setup with 100's of mods will result in only the conflicts caused by the addition of
that new mod to show up when running "Filter to show conflicts". This makes it very
easy then to adjust the load order, created targeted patches to resolve real conflicts,
and finally again create new ModGroups to hide away any false positives.
The dialog is based on a treeview, so you can directly expand the individual
ModGroups to see their contents.
You can filter the treeview to more easily find a specific ModGroup.
The context menu on the View treeview has options to disable or enable ModGroups,
as well as a function for reloading all ModGroups and show the ModGroup selection
dialog again.
Creating ModGroups
The second is when looking at the View tab with at least 3 records visible (master + 2
overrides). The context menu on the header of the view treeview has a "Create
ModGroup..." function, which can also be called by pressing Ctrl+M while the View
treeview is focused. This function will then show a Module Selection dialog listing all
modules that contribute override records to the current View and where you can
check the modules that should be part of this new ModGroup. After confirming the
desired modules a new ModGroup will be created and the ModGroup Editor will be
opened.
ModGroup Editor
The ModGroup Editor shows the list of modules that are part of the ModGroup.
New modules can be added by pressing Insert. Modules can be moved up or down
by pressing Ctrl + Cursor Up / Cursor Down. CRCs can be added to a module by
pressing Shift+Insert when that module is selected, or just Insert if one of the existing
CRCs if that module is selected. A selected module or CRC can be deleted by
pressing Delete.
If one or more CRCs has been added to an module, then the CRC of the currently
loaded module must match one of these CRCs, otherwise the module is treated as if
it wasn't present.
Source - A override record in this module will cause the overrides with
the same FormID to be hidden from all modules flagged as Target and listed
above this Source in this ModGroup.
o Always - The load order of the module does not matter at all.
The flags can be toggled by focusing them and pressing space, or by clicking on
them with the mouse.
Before a ModGroup can be saved, it must be given a name. There are two functions
to make this easier:
Pressing Ctrl+N while having a module selected will set the name of
the ModGroup to the name of the module (minus extension).
Ctrl+C can be used on any listed module to copy it's name to the
clipboard which can then be pasted into the Name edit.
After confirming the ModGroup Editor with OK, a Module Selection will be shown
with all modules that are part of the ModGroup to select in which .modgroups file
this ModGroup should be saved.
.modgroups files
.modgroups files are files with the same name as a module, but the extension
.modgroups.
These are text files that contain one or more ModGroup entries.
Only .modgroups files that have the same name as a module that is present will be
loaded.
ModGroups from .modgroups files that do not belong to a currently loaded module
will not show errors if they are invalid.
Editing ModGroups
It first shows a ModGroup Selection dialog, then loads the selected ModGroup into
the same ModGroup Editor as is used for creating new ModGroups.
Deleting ModGroups
The ModGroup Selection that is then shown allows to select one or more
ModGroups for deletion.
Updating CRCs
This function first shows a Module Selection with all modules that are part of
ModGroups with either no CRC or missing the current CRC.
After that a ModGroup Selection is shown with all ModGroups that are missing the
current CRC of one or more of the previously selected modules.
After choosing which ModGroups to update, the missing CRCs will be added to all
checked ModGroups.
Compare Selected
The Compare Selected context menu entry now shows the number of currently
selected records as Compare Selected (x).
When more records than the specified limit are selected, "Compare Selected" can still
be triggered via the context menu on the navigation treeview, like before.
It can now only be used when in "Compare Selected" mode. In return, it now behaves
exactly the same as dragging the value from the focused cell to the other cells in the
same row in the view treeview. This solves all previous problems with the function.
A new "Copy multiple to selected records" functions has been added, it allows
performing "Copy to selected records" for a selection from all top level entries in the
current view to be performed in one operation.
Holding Shift+Ctrl+Alt when starting xEdit triggers a dialog asking if all settings
should be reset.
In either case, the existing settings file is being backed up and all settings are reset to
their default values.
-AllowDirectSave will load all non-official (official = game master, official dlcs, CCs)
modules without using memory mapped files
-AllowDirectSave:a.esm,b.esl,c.esp will load only the listed modules without using
memory mapped files. The list may include official modules.
"Show Unsaved Hint" replaces previous "Auto Save"
option
When "Show Unsaved Hint" is checked in the Options (on by default) then if there
are any unsaved changes older than 10 minutes a balloon hint is being shown under
the Hamburger Menu, listing the unsaved files and how long they have been
unsaved.
Clicking the hint will show the usual save selection dialog.
Clicking the [X] in the hint or ignoring it for 15 seconds until it disappears on it's own
will snooze it for 10 minutes.
With this option active, saving will reset the modified flag for elements (which caused
them to show in Bold).
Showing the in-place editor for fields with large drop down lists of potential values
(especially FormIDs) has been hugely (multiple orders of magnitude) sped up.
Apply filter
A huge speed up in applying certain filters has been achieved.
"Apply Filter to show Conflict Losers" has been renamed to "Apply Filter to show
Conflicts" and changed from showing [ctConflictLoses] to showing
[ctIdenticalToMasterWinsConflict, ctConflictWins, ctConflictLoses].
The 3 "Apply Filter..." menu items functions have been extended with 3 "Apply Filter...
(selected files only)" functions. These behave the same as the original functions,
except that only selected files are added to the treeview before the filter is being
applied. This will not change the filter outcome for the nodes that have been added
to the treeview, and will simply prevent nodes from files that weren't included in the
selection from showing up in the result. This can dramatically speed up the filter
process. e.g. when applying a filter for cleaning, it's not necessary to apply that filter
to any file except the one that should be cleaned.
When a filter is applied, the navigation treeview is "fossilized" (always has been that
way). This means that all nodes in the treeview, visible or not, have been created at
the time the filter was applied, and the treeview will not react to structural changes
(like adding new records to a file) while the filter remains applied. This was not well
understood by most users before. To prevent confusion, a hint is now shown above
the navigation treeview explaining this while a filter is active.
When "Apply filter for Cleaning" is executed, ModGroups, "Show Master and Leafs",
and "Quick Show Conflict" mode are automatically disabled.
The "By BaseRecord" check list box will now only contain records that can actually be
base records (= placed in a CELL by a reference record).
When a check list box is focused, +, -, and * keys can be used to trigger "Select All",
"Select None", and "Invert Selection".
If a preset has been selected in the Filter Options dialog, and the options have been
changed after loading the preset, a confirmation dialog will now be shown to confirm
if these changed options should be saved back into the preset.
Reachable information
This function has been present in xEdit for a long time, but seems to have become
non-functional.
It is now possible to build reachable information for all games supported by xEdit.
A record is considered "reachable" if a normal player, starting a fresh game with the
current load order, and without using the console or other tricks, is able potentially
to somehow interact with that record.
xEdit will now by default prevent any direct changes to Master Files. The correct way
to add a master is to use the "Add Masters" function in the context menu of the
navigation treeview. The correct way to remove a master is to make sure the file no
longer contains any references to the master in question and use the "Clean Masters"
function in the context menu.
To allow direct editing of the Master Files again, xEdit must now be started with
-AllowMasterFilesEdit in addition to -IKnowWhatImDoing. Please only use that
parameter when really required and when you actually do know what you are doing.
"Sort Masters" has been renamed to "Sort Masters (to match current load order)" to
make it's function more clear.
"Clean Masters" has been renamed to "Clean Masters (= Remove all unused
Masters)" to make it's function more clear.
All 3 functions should perform much faster and use much less memory. They will also
no longer leave Elements that needed to be internally updated (but which don't have
their visual value changed) visually marked as modified.
When this is active, the ESM, ESL, and Localized flags are shown for file nodes in the
navigation treeview.
This makes it possible to track the Referenced By information for this record.
Tips updated
The Tips shown at program start have been updated to take into account changes
made to xEdit.
The Tips no longer require the external file EditTips.txt and are now embedded in the
exe.
-quickclean - after selecting a single module, the module and required masters are
loaded, a filter for cleaning is automatically applied for the selected module only, and
"Undelete and Disable References" and "Remove "Identical to Master" records" are
executed for the selected module. -quickautoclean - same as above, but the "Filter,
UDR, Remove ITM" sequence is repeated 3 times, automatically saving the file after
each iteration, and finally "BOSS/LOOT Cleaning Report" is executed.
Quick Clean mode automatically turns off "Simple Records" (to ensure the largest
number of possible ITMs are recognized) and sets "I Know What I'm Doing" mode (to
prevent the edit warning).
A user reported that after cleaning Dawnguard.esm, parts of the soul cairn
worldspace do no longer load in the game. This is an old issue that's already present
in 3.2.1 and probably before.
To fix this issue, xEdit is now marking all groups and main records as modified before
saving when using Quick [Auto] Clean. This forces these elements to be individually
saved, instead of simply writing out the bytes from the original file.
This means that using Quick Clean will now produce a different CRC than using the
old manual method (explicitly applying filter and explicitly performing UDR and
remove ITM).
For TES5/SSE and FO4, comparison of vertices in triangles is now based on the vertex
coordinates instead of the vertex number.
Record definitions have been improved and standardized for all games with nav
meshes.
When an error happens during saving on program shutdown, the closing of the
program is interrupted instead of simply continuing.
"Compare to..."
The "Compare to..." function now handles modules with HITMEs (FormIDs with a
ModID HIgher Than Master Entries) better.
It is, effectively, the reverse of "Merge into Master". If you have two versions of a
module and produce a delta patch, then using the "Merge into Master" process of
merging the delta patch into the first version of the module will result in the 2nd
version of the module.
Creating a delta patch works similar to using "Compare to...". After loading the old
version of a module normally, the "Create delta patch using..." function asks for a
newer version of the same module and the name of the to be created delta patch.
It will then make a copy of the newer version into the data folder, using the specified
name and .esu as extension (= Elder Scrolls Update, an extension that TES4Gecko
introduced for delta patches).
This copied file will then be loaded using the same method as "Compare to...". Any
record existing in the old version of the module and not in this new version will be
copied and then flagged as deleted. Any record that is identical (using the same rules
as ITM detection) between the two modules will be removed from the delta patch.
This leaves the delta patch with only the records that have changed between the two
versions of the module.
It is recommended that the delta patch is saved and xEdit closed after creating it.
Like with "Compare to..." last folder will be remembered (even across session).
One of the most important uses of a delta patch is when a module that another
module uses as master has been updated.
Suppose you have ModA and ModB, and a CompatPatchAB. ModA got updated and
you want to figure out if CompatPatchAB must be updated.
Create a delta patch between the old and new version of ModA, then restart xEdit
and load: ModA, DeltaPatchA, ModB, CompatPatchAB.
"Create delta patch using..." can also be used to turn an .esp replacer into a patch.esp
(rename outside xEdit after creating it) which can be used on top of the original .esp.
This is especially useful in cases where for the same original .esp there are two or
more .esp replacers with different functions that you normally can't use together. By
changing the .esp replacers into patch.esps they can be used at the same time
together with the original .esp. (May require the creation of another patch if there are
conflicts between these different patches that need to be resolved.)
.esu is a file extension that the game engine doesn't recognize, which makes it
suitable for files like delta patches that shouldn't normally be loaded into the game.
GitHub - Where you can find the latest development version of xEdit, as
well as report issues.
Discord - The xEdit Discord server. Real-time chat with other xEdit users
and developers. Everyone is welcome.
Update check
GitHub
xEdit will automatically perform a check for a newer version on GitHub
This can be turned of with the "Don't check for GitHub update" option.
If an update is available, a balloon hint will be shown under the GitHub button on
start.
NexusMods
This can be turned of with the "Don't check for NexusMods update" option.
If an update is available, a balloon hint will be shown under the NexusMods button
on start.
If xEdit is an even minor version (e.g. 4.0.x, 4.2.x, ...) when it is started for the first time
(after this change) then update checking on GitHub is initially disabled (but can be
turned on in the Options).
If the button is clicked or the hint closed with the [x] then it will not be shown again
for a while.
The "I'm a patron or donor" option can be used to disable the hint if you have
pledged on Patreon or directly donated on NexusMods to permanently disable the
hint.
All Columns have a minimum width of half the standard width specified in Options.
Fit All - The title column (first column) uses the standard width, the
remaining space is equally distributed among all columns. The column size is
automatically adjusted if the window is resized
Fit Text - The width of the columns is automatically adjusted to fit all
text currently visible on screen. The column widths are updated automatically
when scrolling.
Fit Smart - Combination of Fit Text and Fit All. The width of the columns
is automatically adjusted to fit all text currently visible on screen. If the total
width of all columns exceeds the client width of the treeview, then all columns
except the title column (first column) are proportionally shrunk so that all
columns fit inside the client width of the treeview. The column widths are
updated automatically when scrolling.
When active:
If more than one record is being displayed, all rows with a Conflict All
status of Benign Conflict or lower are hidden.
If only a single record is being displayed (which would hide all rows),
empty rows are being hidden instead.
Setting it to 0 disables the behaviour and does instead make sure the view is
updated for every record scrolled through.
As an example, without the option, a record with 2 overrides looked like this:
A B B
B C A
C
A
B B B
A
C C
For arrays, their name (in the title colum = first column) will have (sorted) or
(aligned) added if the array is sorted or aligned.
The filter will only keep nodes that contain the filtered for values, as well as their
parents all the way to the root.
There is an option to keep the children, siblings, and parent's siblings of nodes
matching the filter.
Enter to jump: by Name -> and/or -> by Value -> View treeview
After Add (menu) / Insert (keyboard) the focus will be placed on the added element.
This can be turned off with the option "Focus newly added elements in View"
(defaults to true).
This is especially relevant in combination with alignment and elements which type
and name depends on the value of some other element.
Previous versions of xEdit used the winning override of these implicitly copied
records as source.
From now on, xEdit will instead use the highest override visible to the target file
(based on it's masters) as a source.
Merge into master
To support "merge into master" functionality (for replacing the use of version control
in CK) two new functions have been implemented:
Optionally it's possible to try and preserve the ObjectID (the not load order
dependant part of the FormID) during this operation.
This does not actually yet copy the records into the master, but is a necessary first
step.
Warning: The function will NOT rename any external files that might contain the
FormID in their file names.
Normally, that function will not overwrite an existing record with the same FormID in
the target.
If the "(with overwriting)" variant is used, then an existing record in the target will
trigger a confirmation dialog to decide if the record should be overwritten. The
dialog also gives the choice of "Yes for all" and "No for all".
After injecting forms into master, by performing a "Deep copy as override (with
overwriting) into..." from all top level groups of a module, and selecting one of its
masters as the target, then selecting to overwrite all existing records and having the
targets of all records flagged as deleted removed, the Version Control based
functionality of CK to merge a plugin into master can be emulated.
Warning: The function will NOT rename any external files that might contain the
FormID in their file names.
Warning: The function will NOT rename any external files that might contain the
FormID in their file names.
All 3 functions will show a list of affected record signatures before performing the
renumbering.
Collapsing or expanding a single node is stored in the elements and applies only for
that one record. It may also get forgotten when navigating away from the record and
coming back later. (This depends if the element gets freed or not, which depends on
exactly which element it is and if it has been modified or not.)
When holding control while clicking the [-] in front of the node, the collapse or
expansion is stored in the type definition instead of the Element and applies to all
Elements of that definition. That means it will be preserved when navigating between
different records.
It is possible to have the type collapsed and then expand individual elements, or
have the type expanded and then collapse individual elements. When expanding or
collapsing a type (by holding control) then the state of all individual elements of that
type is reset to match the state of the type.
In addition to clicking on the [-], nodes can also be collapsed or expanded by double
clicking on the desired row in column 0 (the title column) as long as Compare
Selected is not active (which already uses double click in the title column to trigger
sorting by the values in that row).
When editing it, it can be set to ? to automatically set it to the highest Object ID in
the Module + 1
This is an ongoing change and not all long operations may have been converted to
the new system yet.
If that plugin is loaded into FO4, and FO4Edit is started as the same time as the
game, with the same load order, then it is possible to activate GameLink using the
context menu of the "Path" bar at the top of the xEdit window.
This function is currently only available for FO4, but might be added to other games
in the future.
A generic mechanism has been implemented to allow setting of default values in the
record definitions, so that they can be automatically set when an element of that
type is added. This is especially important for elements where the default of all bytes
set to 0 does not result in a valid value.
A generic mechanism has been added to allow "recursive" record definitions. This
now allows VMAD Properties of type "Struct" or "Array of Struct" to contain members
that are again of type "Struct" or "Array of Struct", up to arbitrary numbers of nesting
levels deep.
It is now possible to add (VMAD) Scripts and Properties through the UI (both Adding
and drag'n'drop).
Version Control Info is now decoded for all games and shows as yyyy-mm-dd User: x
Index: y or None (if all 0).
Using EditorID to flag ITMs as intentional
In TES5/SSE and FO4/FO76 EDIT is now flagged as case sensitive, with a conflict
priority of cpOverride.
That means that changes to the case of any character will be recognized as a change.
But at the same time, the EditorID will never be considered to have a higher conflict
level than "override without conflict".
As the game engine treats EditorIDs always as case insensitive, changing the case of
a character will not affect the game at all, but at the same time will make xEdit no
longer treat the record as an ITM.
The function will the first search for an existing CELL (copying as override into the
current file if necessary) and only if no existing CELL can be found will a new one be
created.
It is now also possible to add LAND, PGRD, and NAVM records to CELL through the
UI.
For LAND and PGRD (each of which can only have a single record per CELL), the
same search for an existing record and copy as override if necessary is implemented
as for CELLs.
When adding a reference (REFR, ACHR, ...) to a temporary exterior CELL, its initial
position is set to the centre of that CELL.
This functionality is also available to scripts through the existing Add() method.
If a record is copied (as new or override) into a module for which the Group where
the record is placed is currently expanded, it will show up instantly. (Before it was
necessary to collapse and expand that group before the record showed up.)
This change is especially noticeable together with the automatic updating of the
CELL containing a reference that was mentioned above. When the position of a
reference is changed in the View tab, the navigation treeview will now instantly show
that reference under it's new CELL (while keeping that reference selected in the
navigation treeview).
There are known floating point and compression errors in the original Bethesda
game files. The fact that these errors are shown now instead of silently ignored as
before does not mean than anything is more broken then it was. You just know
about it now.
When changing the selected script, if the current script has been modified, a
confirmation dialog asks if the changes should be saved first. (Silently discarded
changes previously).
When the dialog is closed, if the current script has been modified, a confirmation
dialog asks if the changes should be saved. (Silently overwrote the existing script
previously). When closing and not saving, the modified script is still the one that's
executed.
When saving a script and the file already exists, a backup copy will be made before
overwriting the file.
Scripting improvements
procedure AddMasterIfMissing(aeFile: IwbFile; asMasterFilename: string;
aSortMasters: Boolean = True); now takes an optional boolean parameter (defaults
to true) to turn off automatic sorting of masters after adding procedure
AddMasters(aeFile: IwbFile; aMasters: TStrings); Adds the list of masters in
aMasters to aeFile. If sorting is desired an explicit call to SortMasters is necessary.
var
Properties: IwbContainer;
begin
//...
BeginUpdate(Properties);
try
// add man Property entries to Properties
finally
EndUpdate(Properties);
end;
end;
ElementEditValue and ElementNativeValue now always work for Flags, no matter if the
flag is currently set or not.
Bugfixes
A large number of reported bugs have been fixed. (This is list incomplete as many
bugs have been fixed before keeping of this list was started.)
#574 - stick to row doesn't work with alt+navigation
#576 - Record flags aren't copied correctly when dragged and dropped
#583 - Edited scripts not marked as not modified when manually saved
(reported on discord) - some texts are cut off in Options Form when a
very wide system font is set
LODGen 2.2.0
x64 fixes
Scripting updates
New scripts
o Sort CC plugins right after last DLC, Other ESL after last ESM
BSArch v0.5
"Reset structure" right click menu in the right view pane to add missing
fields if any
new scripts and scripting APIs to work with json, nifs, materials, lod files
new scripts
load Mod Organizer (1, not 2) profile internally using command line
parameter -moprofile:<profilename>
new -O: parameter to set the output folder for TES4LODGen generation
(much faster), for example "-O:..\ModOrganizer\mods\Generated DistantLOD"
[FNV] Don't undelete refs of TREEs with LOD, bug in the game engine
causes a crash
[TES5] TES5LODGen, in right click menu -> Other -> Generate LOD
[TES5] Weapon/Armor/Ammunition spreadsheets
[TES5] BODT/BOD2 and different VMAD version objects are now lined
up for conflict resolution
hold Shift while starting xEdit to skip restoring window state (for users
stuck with xEdit outside of viewable desktop area)
hold Shift while clicking OK in plugins selection window for one time
skipping of building references for all plugins
Ctrl+C copies only Node text to clipboard, Esc closes the View window
BSA files are loaded by exact matching with plugin names for TES5, and
partial matching for previous games
[TES4] fixed error when copying MGEF and REFR with XLOC subrecord
Added a second command line parameter to specify the game's ini file
location.
[TES5] Blocks adding new script property and new scripts. Please use
CK to create them.
Scripting:
Fixes:
Misc:
Code modified for compatibility with both Delphi XE and XE3 in the
same source files.
issue 104 : Files others than esp and esm (and ghost) are timestamped.
issue 88 : Delete from the view pane column title contextual menu is
disabled (due to a hard to reproduce bug). This is a workaround, not a fix.
issue 119 : [TES5] The CK adds useless XLRL records when reverting a
change. Those XLRL are considered benign and the record ITM.
issue 110 : Check for errors now checks for invalid FormIDs. Also, new
"Check for errors" sample script.
Scripting:
Scripts can use other scripts with standard pascal "uses" keyword.
New functions available.
Fixes:
issue 111 : AV when saving subrecords with prefixed arrays. Sizing and
memory allocation are done properly during every phase.
issue 108 : Very slow saving after editing ESM flag. Background
updating limited as much as possible during saves.
issue 106 : Error adding a new master to plugin with own navmeshes.
Fire Union decider when they can effectivly properly work, not before.
Known issue:
issue 123 : Using Check for errors after sort master, before saving and
reloading: the Cell formID will not be updated. (that is a display issue only).
issue 102 : Objects with property names but no assigned values don't
display the names. The CK does not save the property name in the plugin in
that case so it is correct.
Misc:
[TES5] Fixed bug in RACE with sorted biped object names. If you
modified race records with previous versions, drag&drop biped object names
from master to restore them.
[TES5] Additional decoding in WRLD and RACE for new data saved with
CK 1.8
"Options" menu
Copy "Compare to" selected file to the game's data folder if it is not
there
o Relations
o Form Lists
o NPC's tints are now sorted by tint index for better conflicts
detection
[TES5] Fixed bugs when copying RACE and QUST (empty model was
created for RACE; QUST location aliases were turning into ref ones).
[TES5] Create start-enabled quests sequence SEQ file (you can select
several files at once).
[FNV] CHAL record was missing some challenge types from Dead
Money DLC.
[FNV] Disabled DIAL sorting, was causing errors when copying INFO
records.
Fixed minor bug when Edit can't find game's folder. If your registry
settings is invalid due to a Steam bug and Edit is unable to find your game,
put it in the game's root folder where the game executable file is
(Oblivion.exe, TESV.exe, etc).
Quest Stage field for Quest + Stage Perk Effect Type now has a drop
down with all stages available for the selected quest
single click on an already selected field now opens the editor again
fixed in-place editor to properly cover the complete field and have it's
text align exactly with the text normally displayed
Renumber FormIDs from will change all FormIDs of records belonging to that file
(but not any override records which might be contained in that file) so that they start
at the specified value.
This is useful if you have multiple modules that you plan to update in the future, but
also want to always provide a merged version (e.g. using FO3Plugin). By assigning
non overlapping FormIDs to the different modules, you can make sure that no
FormID reassignment of conflicting FormIDs has to take place when merging.
Also, this version has been compiled with the "large address aware" flag and will be
able to use up to 4GB when running under a 64bit version of Windows.
The Undelete and Disable function will set the Player ACHR [00000014]
as Enable Parent with the "Set Enable State to Opposite of Parent" flag set.
Given that the player should never end up being disabled, that should
properly remove them from the gameworld, even if they are persistent
references and the enabled state has already been stored in the savegame.
The Undelete and Disable function will also now properly list all
affected references, just like the "Remove 'Identical to Master' Record"
function does.
The selection dialog now allows double clicking an entry, this will
automatically select that entry, deselect all others and close the dialog as if the
OK button had been pressed.
A lot of "unknown" fields and flag values now have a proper name
Selection dialog (used for files, record to skip, mod groups, ..) has a
context menu with "Select all", "Select None" and "Invert Selection"
Bugfix: Filtering could wrongly filter out records with conflicts if their
parent is also a record (not a group) and didn't contain a conflict
double clicking on a row in the right side treeview will open a window
that shows the text of that field in a multi line memo. So you can now easily
read scripts or books
Possible range check error when loading a file with errors should be
gone