Releases: ME3Tweaks/LegendaryExplorer
Legendary Explorer 6.4.1
Legendary Explorer 6.4.1 is a small bugfix update for the stable branch.
New features
- None
Changed features
- None
Bugfixes
- Fix updating WwiseEvent lengths when the object name contains multiple integers
- Cloned lines in FaceFXEditor will have the correct index set
- Fix LE1 coalesced serialization so that debug messages will print when using Debug Logger ASI
- Fix missing LE1 config filenames
- Animation Importing: Ignore pre-existing raw animation data as it may be wrong
- Improve pathfinding editor performance when viewing volumes
- Fix OT ComponentMap indices, as they would be off by one sometimes
Legendary Explorer 6.4
It's been about a year since our last stable release of Legendary Explorer, and we've made a lot of improvements! Hopefully future stables will come out a bit faster. Unfortunately, we are pretty busy right now, so we didn't have time to write up a super detailed changelog - most of the good stuff is behind the scenes!
Here's some highlights from the past year of updates - there's far more than listed here.
LEX
- LEX: Toolset now runs on .NET 8, which has a whole load of performance improvements
- LEX: Script Compiler has been significantly improved and is now more accurate and robust for both compiling and decompiling UnrealScript
- LEX: Script Compiler now supports // comments in the body of functions
- LEX: Metadata tab in Package Editor now has 'Memory path' which is useful when you need the path the game will use at runtime
- LEX: Can now create empty textures in the create menu, with optional SWFs too
- LEX: Tools that use ASIs mods will now request installation from ME3Tweaks Mod Manager, which helps keep duplicates out of the ASI folder
- LEX can now handle mipped .dds files, .jpg files for texture sources
- LEX: LiveLevelEditor: Can now toggle hidden on/off
- LEX: Sequence Editor now shows more contextual data as comments on nodes such as WwisePostEvents
- LEX: Lots of new experiments, most of them probably not useful to users (well, in Mgamerz' menu), but the menu is bigger now
- LEX: Loads of performance improvements in many areas of the toolset
- LEX: FaceFX binary parsing is improved in the Binary tab
LEC
- LEC: Improved support for custom classes in various usages
- LEC: Add ConfigBundle from ME3TweaksCore, a unified front end for working with config files from all games
- LEC: Add Bio2DAMerge from ME3TweaksCore, a way to merge 2DA tables
- LEC: Add LooseClassCompiler, a way to compile classes in a file from .uc files on disk. Can be used to mass build classes in a folder and link them all up with references. Great for building mods from code.
- LEC: Relinker now more accurately ports objects as imports when they can be when the port exports as imports when possible option is used
- LEC: Relinker is now more accurate and should have less trouble with duplicate-named objects if the classes differ
- LEC: EntryChecker checks for trash references more accurately
- LEC: Probably serialize LE1/LE2 coalesced files to keep the localized error messages that appErrorf uses when using DebugLogger ASI
A lot of bugs were also fixed. Too many to list!
Legendary Explorer 6.3
This is a summary of major changes from Legendary Explorer 6.2 to Legendary Explorer 6.3. It's been so long since a major release that there are far too many items to list here; this only covers the major user-facing changes. There are far more minor changes that are not included here, most of them under the hood.
Legendary Explorer
Legendary Explorer Stable now uses .NET 7 Desktop to run. The changes listed below are ones specific to the front-end editors.
New features
- You can now replace streaming audio in LE1. Due ot how this works in the game, this may or may not be entirely reliable. A better method is to build a streaming bank from scratch using the tutorials on the LEX wiki
- You can now import WwiseBanks made in the proper Wwise 2019 version directly into LE2 and LE3, and it will create events and wwisestreams for you automatically. See the tutorial on the LEX wiki
- Can now export and import bnk files directly to export (if you don't know what you're doing, don't do this)
- Sequence Editor: SetPawnMeshes now covers SFXSkeletalMesh actors (LE2)
- Dialogs for opening packages now has an item on the left that shows direct links to game paths. Due to how windows explorer works it will show ME1/ME2/ME3 for LE games
- Lots of experiments from @Exkywor:
- Properties (in package editor): Can now right click copy/paste a single property (will be expanded in future)
- Script Editor: You can now edit properties on any object
- Package Editor: Now notifies you if you are not using the highest mounted version of a file
- Sequence Editor: Compare with unmodded/other package in tools menu with auto navigation to changed nodes
- Package Editor: new tool menu items: 'Create Package Export' and 'Create Object Referencer'
- UModel has been updated to version 1589 (October 2022) and now will prompt you for what format to export in such as gltf
Changed features
- Replacing texture with only one mip no longer asks if you want to store in TFC since it will always be package stored
- Binary interpreter now has more fields that can be edited
- Unrealscript IDE: Now supports basic code completion
- Package Editor: Treeview items now have more data listed under them
- JPEXS/Scaleform: Open in JPEXs now exports textures so newer versions of JPEX can load textures in the tool
- JPEXS/Scaleform: Can import if file is in temp directory, not just if previously marked as exported to disk
- AssetDB: Improve memory usage and performance by using new version of database with bitpacking
- UModel export now exports full resolution textures instead of only package stored mips
- Sequence Editor experiment: Load custom classes from current package - allows you to make a custom class and put it into the toolbox without having to manually load the package
- Meshplorer: Allow you to auto correct rotation and skip bone count warning if incoming mesh has different number of bones
- Lots of kismet objects have auto-comments such as Originator values
- Can play audio for ME1/LE1 SoundNodeWaves in most cases by looking up streaming audio info and attempting to determine the audio type - not entirely reliable right now
Bugfixes
- Fix bugs that could prevent meshes from properly rendering in the mesh renderer
- Sequence Editor: LE2 SFXSeqAct_OverrideCasualApperance has been fixed. This only works when adding it new
- Lots of bug fixes for Script Editor
- AssetDB: Fix memory leaks
- Fix application closing not respecting you choosing 'keep open' if a package is modified in a tool and not saved
- Lots more not documented
Legendary Explorer Core
Legendary Explorer Core (LEC) is the back end which handles various filetypes and is shared across many tools.
New features
- Packages can now be opened using
MEPackageHandler.UnsafePartialLoad()
, where you provide a predicate of what data to actually load. This can be useful if you only need data out of a very small amount of the package, this greatly speeds up things such as scanning when used appropriately - A new constructor
MEPackageHandler.CreateAndOpenPackage()
creates a package on disk and returns the object. It used tor require 2 steps. - You can now limit which object databases are loaded, allowing you to significantly reduce memory use if your tool only opens packages from a specific game(s)
- Now contains classes for working with Legendary Edition's persistent save files (GamerProfile)
Changed features
- UDK package support is improved with more property parsing support
- Disallow saving unsupported UDK packages
Bugfixes
- Fix porting not working when porting a custom class between files
- Sourcing oodle dll is more reliable now
- Improve ResolveImport() heuristics for edge cases (some still fail)
- FindImport/Export has some workarounds for when finding the opposite type - e.g. Engine.pcc has an import for Engine and an export for Engine
- Lots more not documented
Legendary Explorer - 6.2
This is a summary of major changes from Legendary Explorer 6.1 to Legendary Explorer 6.2. There are too many items to list here; this only covers the major user-facing changes. There are far more minor changes that are not included here, most of them under the hood.
Legendary Explorer
Legendary Explorer Stable now uses .NET 6 Desktop to run. The changes listed below are ones specific to the front-end editors.
New features
- Porting across games now has a 'Port using donors' option. This uses same-named exports in the destination game to improve porting, such as taking an existing same named material.
- Metadata Editor: Click to go to archetype, class, and superclass
- Asset Database: you can now filter by all bool properties on materials, which allows you to find materials much easier
- The UnrealScript editor has seen huge improvements and can now compile entire classes, as well as search. It also has seen massive performance improvements
- FaceFX Editor: Now includes a waveform graph to show you the audio in line with the phonemes of the mouth
- Live Level Editor is now available for all 3 Legendary Edition games. This allows you to edit levels while the game itself is running!
- You can now bulk import/export TLKs thanks to #324
- Soundpanel: You can now create new AFCs when replacing audio by choosing the name when you replace it
- Package Editor: Hold shift and drag entries around to reorganize them - much faster than editing the link!
Changed features
- Texture viewing now uses a GPU accelerated viewer to improve performance, along with options for channels and alpha
- Lots of LE1 classes that had unparsed binary have been added
- Package Editor: 'Open other version of this file' now swapps BIOC_Base and SFXGame for ME1/LE1
- Package Editor: When trashing entries, a warning is shown if it will result in broken references
- Package Editor: More items in the tree have subtext under them based on their parsed properties
- Bio2DA Editor: Check if items being imported are indexed, and use indexed names if they are
- Properties: Show types of arrays/structs more reliably
- Bytecode: Now shows replication block bytecode on classes
- Sequence Editor: Now supports showing input activation pins when using Kismet Logger tracing
- Sequence Editor: New custom kismet classes have been added for all 3 games.
- Dialogue Dumper: Huge increase in speed due to package opening optimizations
- Sequence Editor, Pathfinding Editor: Significant performance improvements due to changes in graph code
Bugfixes
- Static array indexed properties now show their index in the interpreter
- Dialogue Dumper now properly can dump LE1/ME1 non-INT localizations
- Fix 'find unmodded candidate' not searching in TESTPATCH (ME3)
- Custom class support in tools has been slightly improved
- Texture Studio: Right click goto export now works for non-vanilla textures. Big performance improvements due to changes in LEC
- Many smaller bugfixes
Legendary Explorer Core
Legendary Explorer Core (LEC) is the back end which handles various filetypes and is shared across many tools.
New features
- Packages can now be opened using
MEPackageHandler.UnsafePartialLoad()
, where you provide a predicate of what data to actually load. This can be useful if you only need data out of a very small amount of the package, this greatly speeds up things such as scanning when used appropriately - A new constructor
MEPackageHandler.CreateAndOpenPackage()
creates a package on disk and returns the object. It used tor require 2 steps.
Changed features
- Code for resolving imports has been significantly improved, including accounting for the
ForcedExport
flag - Creating a texture map should be significantly faster due to optimizations calculating CRCs and opening packages
Bugfixes
- Saving a UDK package will make package behave as saved, rather than save-as'd (will change behavior in LEX)
- Add BioGuiResources to Coalesced compiling (used for PC version of ME3/LE3)
- Slightly improved console platform support for OT console files
- (Game 3) Serializing coalesced will now automatically lowercase property and section names as they appear to only work if lowercase. This is only done on serialization, deserialization is unchanged
- Porting across files will no longer be able to import from files that load after, e.g. engine cannot import from sfxgame. This is a rare condition but may have occurred if developer tried to be crafty
- Many smaller bugfixes
Legendary Explorer - 6.1
Legendary Explorer 6.1 is an update to the stable build of Legendary Explorer. We have spent considerable time improving things under the hood since the initial release back in July.
As always, if you want the latest features and bugfixes, use the Nightly version from the Tools menu in ME3Tweaks Mod Manager, which is always built from the latest code on the Beta branch.
If you want to keep up with information about Legendary Explorer development and news (such as when we merge a feature branch into nightly, which can introduce significant instability), join the ME3Tweaks Discord.
New Tools
Plot Database
Plot Database is a new tool for browsing the plot databases provided by BioWare for each game, and for creating plot databases for your own mods. Plot elements are displayed in a hierarchical structure, and can be searched, or filtered by element type. This tool is still a work in progress.
You are also able to create, load, and save plot states for your own mods, which can then be viewed contextually in other tools in the same manner as the basegame states. Mod trees are stored as individual .json files that can be shared with collaborators or on mod pages. Support will eventually be added for syncing custom mod plot data with the ME3Tweaks server.
Texture Studio
Texture Studio is the toolset's mod-wide texture replacement tool. This tool is still pretty new and likely needs some more work. You select a 'workspace', which is typically your mod folder. A texture map is then built for your workspace, which calculates where each unique texture (unique being the Instanced Full Path of a texture) is used. This differs from Mass Effect Modder, which uses the CRC of a texture to identify all places where that specific texture is used in the game, regardless of the Instanced Full Path (some textures are duplicated in the game).
You can then see all instances of a texture by its in-memory name, and change all instances at the same time to a specific TFC. Instances in red are items with mismatched CRCs; that is, the texture data between instances of this in-memory path are not the same, and should all be changed to be the same, or the offending ones be renamed to be unique - otherwise, you don't really know what's going to load in-game.
Right now this tool is designed for use with ME2/3 and LE1/2/3. ME1's texture system is a real nightmare to work with. In the future we would like to cache the texture map to disk to make it spend less time scanning every time you use the tool.
New Features
Sequence Editor
- Support for LE1, LE2, LE3 kismet logs (which can be gathered with the respective Kismet Logger ASIs, installable from ME3Tweaks Mod Manager)
- Support for right clicking a sequence reference with a 'goto' feature
- SeqVars added from the toolbox will have the relevant property for that type pre-added (eg. IntValue for SeqVar_Int, or VectValue for SeqVar_Vector)
- Deprecated and non-functional sequence objects have been removed from the toolbox.
Asset DB
- Plot usage compilation can now be enabled in the Tools menu. With this enabled, all usages of bools, ints, floats, conditionals, and transitions across the game will be catalogued in Asset DB
- Added the ability to specify which localization will be scanned when generating the database
- Added 'Copy usages' button to filelist that will copy the list of files to the clipboard
- Added 'Open File in Windows Explorer' context menu item to usages in all tabs
- Material filters will be generated for every possible BoolProperty on material exports
Package Editor
- Can now import/export embedded .fxa files for FaceFXAssets
Property Editor (formerly Interpreter)
- Arrays of structs and objects now show their object types, such an array of Vector3 structs
- Can copy property name from the context menu
Metadata Editor
- Archetype, Class, and Superclass are now clickable links that take you to the referenced entry. If it's an import, it opens a new package editor that goes to the resolved entry
Binary Interpreter
- Add 'Resolve Import' and 'Open in Package Editor (this instance)' right-click menu options to object references
AnimNode Tree
- A WIP tab has been added to Package Editor to visualize AnimNode blend hierarchies
Interp Editor
- Add file drag-and-drop
- When editing an InterpData associated with a line of dialogue, the TLK string for the line will be shown at the top of the editor
- An experiments menu has been added to Interp Editor
Dialogue Editor
- Double-clicking on a stage direction will select the associated dialogue node
FaceFX Editor
- Add hotkey 'G' to insert a new key at zero
Live Level Editor
- WIP Live Level Editor support has been added for LE1
- Game interop backend has been re-written to make support for new games easier
Script Editor
- Add ability to compile States, Structs, Enums, and the defaultproperties block
Curve Editor
- Can now select a reference curve and export an individual curve to excel via context menu
Conditionals Editor
- Now shows an error message when compilation fails, instead of silently reverting to the unedited conditional
Changed features
- Package Editor: Can now create LE1, LE2, LE3, and ME1 levels
- Package Editor: Force Reload Package is now an experiment due to people using it without reading the warning
- Sequence Editor: Force Reload Package is now an experiment due to people using it without reading the warning
- Texture Viewer: Default to 'all supported file types' when replacing textures, instead of filtering only to PNG
- Mesh Renderer: Improve memory performance by evicting textures from the cache after they become stale
- Property Editor: Struct properties of type RvrMultiplexorEntry, BioStageCamera, BioStageCameraCustom now have a parsed value
- Property Info: LightmapTexture2D now contains properties for LE2, LE3. This class is native so these are manually compiled
- Pathfinding Editor: small improvements to grouping and group editing tools. Improved trashing.
New experiments
- Package Editor, Interp Editor: Add experiments to create preset Director, Actor, and Camera InterpGroups, and preset Gesture tracks
- Dialogue Editor: Add experiment to change a node StringRef without breaking its VO, WwiseStream, and FaceFX
- Bunch of stuff from the main toolset dev group
Legendary Explorer Core (LEC) changes
Legendary Explorer Core is the backend library that other C# projects can use to edit Mass Effect files.
- Bio2DA classes were moved from LEX to LEC. The Excel features remain in LEX only. The features for accessing and setting values in 2DA tables has been significantly expanded to make it easier to use
- Improved FaceFXAsset binary parsing
- Add support for LE1 DLC to MELoadedFiles
- Fixed TOC algorithm not properly excluding LE1 DLC mods that don't start with DLC_
- Due to changes across the board, lots of method signatures have changed
Performance:
- FaceFX Editor and Curve Editor are more responsive when editing curves with large numbers of points
- Script Editor takes less time to initialize
- Large cross-file cloning operations should no longer freeze the UI for a few seconds
Bugfixes
- TLK Editor: Interface is disabled until a TLK File is loaded, to prevent throwing errors due to no file being loaded
- TLK Manager: Check LE1 DLC folder exists before trying to get all TLKs. It used to assume it existed and would silently error out
- TLK Manager: Edit button now works for LE1 TLK files
- Global package editing: Editing a name now invalidates the lookup table for entries. Before, editing a name and then editing another into place could result in lookups resolving the wrong entry
- BioInert binary is now parsed. Porting a BioInert before this across files would likely yield a game crash as the data was not linked
- Package Editor: Check for duplicate indexes now checks imports as well as exports. Originally it only checked exports
- Sequence Editor: Double clicking on an item in the toolbox now works even if you click on the blank space to the right, instead of only the text
- Dialogue Editor: Serialization of Dialogue Nodes works properly for ME3/LE3 (the speakerlist property name were 1 character off from Game2)
- Dialogue Editor: Setting the bIsMajorDecision and bIsDefaultAction values now actually set the appropriate property on the export
- Property Editor: Fix infinite error dialogs showing up if you try to close a window twice (or more) that has pending changes, and then accept losing your changes on the first dialog
- Bio2DA Editor: Fix row names missing the first _ due to Windows accessibility features
- Soundpanel: Fix export to ogg with ww2ogg for LE games
- Soundpanel: Fix Wwise audio conversion for ME3
- Soundpanel: Fix null reference error when dragging audio timeline with audio stopped
- Soundpanel: Fix binary parsing of HIRC events in ME2
- Texture Panel: Fix a bug where replacing textures as package stored would replace textures into a TFC
- Mesh Renderer: Fix incorrect UI coordinate display
- Package Dumper: When dumping files via drag-and-drop, the files will output ...
Legendary Explorer - 6.0
Legendary Explorer is an upgraded and rebranded version of ME3Explorer - ME3Tweaks Fork, so we have kept the old versioning system. As such, this is the next major version of the toolset after ME3Explorer 5.1.
Legendary Explorer (LEX) supports both the Original Trilogy (OT) and the Legendary Edition (LE) version of the Mass Effect series of games. It is recommended that all mod developers move to Legendary Explorer, even if you are not planning on modding the LE, as all active development will be taking place on LEX.
Global Changes
- Support for Legendary Edition files has been added to all tools
- ME3Explorer has been renamed to Legendary Explorer (LEX for short), and ME3ExplorerCore has been renamed to Legendary Explorer Core (LEC for short)
- Both LEX and LEC have been upgraded to .NET 5, which means to use the applications you will require the .NET 5 Runtime
- Saving packages will initialize a busy pane while LE packages are being compressed as they can take several seconds to save
- CLI arguments have been updated, allowing for more file types to be associated in Windows Explorer. You can now double click on a .DLC or .CND file to open in the toolset! File association options can be found in the new Settings window, or under the Options menu in Package Editor
- Huge optimizations have been made to package saving and compression
- There are now different icons for different file types
- You can now port SeekFreeShaderCaches. You don't ever need to do this manually; if a material references an item in the shader cache, it will automatically port information over. This applies to both OT and LE.
Tool Changes
Renamed, and Deprecated Tools
- PSA Viewer has been removed
- Plot Database has been removed (a new version is in the pipeline)
- Script Database has been removed
- ASI Manager has been removed. A new version based on M3's implementation will be ported in for a future update
- ME2/ME3 TLK Editor has been removed in favor of TLK Editor and TLK Manager
- AutoTOC has been moved to debug mode only
- SFAR Explorer has been moved to debug mode only
- Interpreter has been renamed to Properties
- Soundplorer has been renamed to Sound Explorer
- Meshplorer has been renamed to Mesh Explorer
- Coalesced Editor has been renamed to Coalesced Compiler
Main Window
- The Main Window has been redesigned by Audemus as a fresh, modern UI
- All tool icons have been redesigned, with 16x16 versions added to use as toolbar icons
- A new settings window contains all settings from across the toolset in a central location.
- A new WIP "Help Center" window provides links to tutorials and other resources for new developers
Package Editor
- Information from the plot database about BioAutoConditionals functions will be shown in the TreeView when Show Metadata is enabled
- Force reload package now only works if you've enabled experiments
Binary Interpreter
- Added support for most LE formats
Properties
- Interpreter tab was renamed to Properties tab
- Improved support for SFXTimeline properties
- More parsed struct values are displayed
- Plot bool, int, float, conditional, and transition information from the plot database will be displayed on appropriate properties
Script Editor
- Fix bug causing an entire application crash in rare instances
BIK Export Loader
- Legendary Explorer now ships a slimmed-back version of VLC for playing of Bink 1 videos
- Playback of Bink 2 videos is not currently supported
Bio2DA Editor
- Plot int, conditional, and transition information from the plot database will be displayed when an appropriate cell is selected
Texture Viewer
- Add support for BC7 textures
- Switch to the DirectXTex library for all BC texture encoding/decoding
- Texture rendering is GPU accelerated
Asset Database
- Asset Database has had performance improvements, however it will require a regeneration of the database
- Asset DB thread count has been capped to prevent excessive memory usage
Conditionals Editor
- Conditionals Editor has been completely rewritten from WinForms to WPF
- Many options have been moved from the edit menu to a context menu
- Support for creating new .cnd files and adding new conditionals has been added
- More information about the conditional from the plot database will be shown in the listbox.
Coalesced Compiler
- Coalesced Compiler now integrates d00t's LECoal tool, and can convert both ME3/LE3 and LE1/LE2 coalesced formats.
- You can now drag and drop a .bin, .extractedbin, or .xml file onto Coalesced Compiler to select as a file source
- Improved UI, and filetype detection
Dialogue Editor
- "Male" and "Female" audio tabs have been combined into a single tab utilizing the new Soundpanel Miniplayer
- Plot bool, conditional, and transition information from the plot database will be displayed in the right side panel
FaceFX Editor
- Support for editing lines embedded in FaceFXAssets has been added
Live Level Editor
- The bundled ASIs for LLE have been removed from the toolset, because they began to get antivirus detections for some reason. You'll have to manually download these now so we can keep shipping builds. Nothing in these ASI files had changed so we don't know why it's now triggering.
Plot Editor
- Plot bool, int, float, and transition information from the plot database will be displayed in some situations. Plot Editor is due for a re-write, so this feature is not fully implemented.
Sequence Editor
- Support for reading sequence object positioning in LE files has been added
- Right click 'skip sequence element' has been added, and can be used to skip a sequence element to a specific output
Sound Explorer
- Support for replacing audio in LE2 and LE3 has been added
- WwiseCLI.exe paths now need to be specified by the user to enable usage of multiple Wwise versions. A new dialog has been added to achieve this.
TFC Compactor
- TFC Compacter no longer uses MEM behind the scenes and no longer regenerates mips, so you shouldn't lose any quality on recompaction. It now has checks for CRC mismatches which will be viewable in the soon-to-be-released Texture Studio tool.
TLK Editor
- Edit panel can no longer take up the entire window, thanks to Herobrine24 for the bug report
Core Library Updates
- The TOC file implementation has been updated to be more in line with vanilla TOC files, with support added for LE and new unit tests.
- Texture handling is now part of the Core library.
- The BioWare plot databases have been integrated into the Core library, and can be loaded and accessed through the PlotDatabases class.
ME3Explorer - ME3Tweaks Fork 5.1
The final major release of ME3Explorer, with huge improvements to Script Editor, FaceFX Editor, Package Editor, and more.
This is NOT Legendary Explorer and does not support the LE versions of the game. Beta versions of Legendary Explorer are available through the tools menu in ME3Tweaks Mod Manager.
Changelog at #251
ME3Explorer - ME3Tweaks Fork 5.0.3
Fixes several issues including (but not limited to) TFC Compactor, Export to UDK, and others.
Changelog at #216
ME3Explorer - ME3Tweaks Fork 5.0.2
Fixes several issues including (but not limited to) TFC lookup and WwiseBank corruption when HIRC editing.
Changelog at #213
ME3Explorer - ME3Tweaks Fork 5.0.1
Fixed some minor issues, added a few minor features. Changelog at #211