Skip to content

Legendary Explorer - 6.1

Compare
Choose a tag to compare
@Mgamerz Mgamerz released this 05 Dec 21:54
· 1490 commits to master since this release
1a22a52

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.
image

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.
image

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).

image

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.

image

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
    image
  • 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 to the same directory as the input files
  • Settings: Fix game path settings not being updated when changed in the settings window
  • Binary Interpreter: 'ForceStreamTextures' text block in Level objects been fixed
  • Properties: Static Array properties and properties with instanced names are now handled properly by LEC and LEX.
  • Interp Editor: Fixed changes not displaying when the opened file was edited in another tool.
  • Fixed startup crash if the appsettings.json got corrupted.
  • Fixed error when reading some UDK SkeletalMeshes.
  • Fixed Hexbox being the incorrect width on high-dpi displays
  • Cross-file cloning: fixed shaders sometimes failing to copy over

Known issues

These issues will be addressed in upcoming nightly builds.

  • Attempting to port certain objects out of global files (SFXGame, BIOC_Materials, etc) can lead to invalid imports being made due to how resolution of these objects is done (the ForcedExport flag)
  • When cross-porting an import from another file, it has the wrong PackageFile attribute, which can break things like Texture2D which use Engine, not Core as their packagefile
  • Enumerate all imports fails to resolve some native-only things in some games like Core.Function
  • Enumerate all imports in LEX resolves imports that aren't actually resolvable in the game. This is due to them being assigned the wrong package file for the class. This will need its strictness improved to be accurate