0. Mod Manager and Legendary Explorer overview
ME3Tweaks Mod Manager and Legendary Explorer serve different parts of the same development workflow. Mod Manager creates, organizes, validates, installs, and updates the DLC mod. Legendary Explorer opens and edits the packages and other game data that the DLC contains.
A typical development cycle is:
Create or update the source mod in Mod Manager's library
-> Edit its packages with Legendary Explorer
-> Return the edited files to the source mod
-> Reload or restart Mod Manager
-> Apply the mod
-> Test the installed result in game
Do not treat the installed DLC directory as the authoritative project copy. The source mod belongs in Mod Manager's mod library. Applying the mod creates or updates the installed copy used by the game.
Create a blank DLC with Mod Manager
Mod Manager can generate the working structure required for a new DLC mod.
This is safer and faster than assembling moddesc.ini, AutoLoad.ini, global
TLK packages, and the DLC directory by hand.
In current Mod Manager documentation, the command is:
- Open Tools.
- Open Developer tools.
- Choose Custom DLC Starter Kit.
- Select Mass Effect Legendary Edition 1.
- Enter the requested mod and DLC information.
- Choose unused mount and TLK identifiers. Review the identifiers already reported as used rather than copying values from another mod.
- Generate the Starter Kit.
Some versions of Mod Manager label this route Tools > Mod Development > Generate new DLC mod (Starter Kit). Both names refer to the same general Starter Kit workflow.
After generation, Mod Manager reloads its library and selects the new mod. Right-click it and choose Open mod folder to reach the source-mod directory.
The generated project includes a Mod Manager description and a DLC_MOD_*
directory containing the initial DLC structure. That is the starting point
for adding or overriding packages with Legendary Explorer.
Move between Mod Manager and Legendary Explorer
Use Mod Manager to:
- create the initial DLC scaffold;
- keep the source mod in its library;
- validate the mod's installation description and payload;
- apply the mod to the selected game target;
- update or remove an installed development version; and
- launch Legendary Explorer from the configured tool menu.
Use Legendary Explorer to:
- inspect and edit package exports;
- edit Kismet sequences;
- create and inspect plot transitions;
- edit conversations;
- inspect and edit TLK data; and
- compare source, installed, and highest-mounted package providers.
After editing a package in Legendary Explorer, save it into the source mod's DLC payload. Return to Mod Manager, reload the mod information when necessary, and choose Apply Mod to deploy the changed source files.
Restart Mod Manager after structural changes
Mod Manager caches mod metadata and file information aggressively. A source file can be correct on disk while Mod Manager continues using information it read earlier.
Use the library refresh control after adding, deleting, or renaming payload
files. Restart Mod Manager after changing moddesc.ini, especially when
changing installation sections, generated-feature declarations, source or
destination directories, requirements, alternates, or the files referenced by
those sections.
When an error refers to an old filename, an earlier feature configuration, or a file that no longer exists, suspect cached mod information before changing the new files to match the stale error. Close Mod Manager completely, reopen it, confirm that the current mod information is displayed, and then apply the mod again.
Unreal Engine and Kismet
Mass Effect is built on Unreal Engine 3, with extensive BioWare systems
layered on top of the engine. Its .pcc and .upk packages contain Unreal
objects such as levels, actors, classes, variables, conversations, and scripted
logic.
Kismet is Unreal Engine 3's visual scripting system. Instead of expressing every level behavior as conventional source code, designers arrange objects in a graph and connect them with execution and variable links.
A Kismet graph commonly contains:
- Events, which begin execution when something happens.
- Actions, which perform work such as displaying a message, changing an object, starting a conversation, or executing a plot transition.
- Conditions, which choose an output according to a value or game state.
- Variables, which supply objects, numbers, strings, plot state, and other inputs to actions.
- Sequences, which contain and organize the graph.
Legendary Explorer's Sequence Editor is a specialized view of the Kismet
objects stored inside a package. The graph is not a separate script file: its
nodes and links are exports and serialized properties within the .pcc.
Saving a Kismet change therefore saves a changed version of the containing
package.
Class names help identify where a Kismet object comes from:
SeqAct_*,SeqEvent_*, andSeqVar_*are generally Unreal Engine sequence objects.BioSeqAct_*,BioSeqEvt_*, andBioSeqVar_*are BioWare objects that connect Kismet to Mass Effect systems.
For example, a generic Unreal SeqAct_Delay can wait before execution
continues, while BioWare's BioSeqAct_ShowMessage displays a Mass Effect
message using TLK string references.
Kismet does not replace the game's underlying UnrealScript classes. The classes define what kinds of objects and actions exist; a Kismet sequence creates instances of those classes, assigns their properties, and connects them into level-specific behavior.
Because Kismet is stored in the package, two mods that change the same sequence package do not automatically combine their graphs. The highest-mounted package supplies the complete runtime version, including all of its Kismet changes.
Package Editor
Package Editor opens .pcc, .upk, and related Unreal package files. Use it
to inspect imports, exports, properties, metadata, scripts, and the package
hierarchy.
For Ghost in the Machine, Package Editor provides access to packages such as
BIOA_UNC51_00_DSG.pcc. A package is the container file. Objects such as
sequences, actions, variables, conversations, and talk tables are exports
inside that package.
An export's leaf name is not always enough to identify it. Use the Metadata tab's Instanced full path when another tool or file format requires the complete object path.
Sequence Editor
Sequence Editor displays and edits Kismet logic stored in a package. Use it to follow execution links, add actions and variables, check plot state, execute transitions, and display messages.
Open a sequence export in Package Editor and switch to Sequence Editor. Before changing a graph, record its package, instanced full path, relevant export numbers, and existing input and output links. When inserting new logic, preserve every original output unless the design intentionally replaces it.
Ghost in the Machine uses Sequence Editor for work such as detecting successful probe interaction, recording module recovery, checking whether a module is available, displaying Hannibal's messages, and controlling the module-installation interface.
Plot Editor
Plot Editor displays quests, plot variables, conditionals, consequences, and transitions. Use it to inspect existing plot behavior, search for identifier usage, and edit the state-event maps in a plot-manager package.
A plot bool stores persistent true-or-false state. A transition is a separately numbered operation that changes one or more plot variables. Do not confuse a plot-bool ID with a transition ID.
Ghost in the Machine uses plot state to remember which modules Shepard recovered, where modules were installed, which capabilities are active, and how the quest ended.
TLK Manager and TLK Editor
A TLK, or talk table, maps numeric string references to displayed text. In
LE1, talk tables can be exports inside .pcc packages. TLK Editor's ordinary
file-open control does not provide the intuitive route for opening one of
these embedded LE1 talk tables.
To open a source-mod talk table:
- Open TLK Manager.
- Choose Add TLK.
- Select the source-mod
.pccthat contains the talk table. - Select the added talk-table entry in TLK Manager.
- Use Export/Import/Edit to open that entry in TLK Editor.
- Edit and save the source package.
- Rebuild or apply the mod before testing.
Automatic TLK discovery normally finds files in the installed game. That is useful for inspection, but editing an automatically discovered result can change an installed copy instead of the mod's source. Add the source-mod package explicitly when authoring the mod.
Dialogue Editor
Dialogue Editor displays the entry and reply structure of a BioConversation.
Use it for spoken dialogue, dialogue-wheel choices, plot checks attached to
replies, and transitions executed by conversation nodes.
Ghost in the Machine may eventually use Dialogue Editor for direct conversations with Hannibal. Non-dialogue interfaces such as a module-control wheel may still use conversation machinery even when Shepard is interacting with a device rather than a character.
TLK Manager versus Dialogue Editor
Dialogue Editor controls the structure and behavior of a conversation. TLK data supplies the text referenced by that structure. Changing a line's text does not necessarily require changing the conversation package, while adding a new branch or changing its conditions does.
Before editing a conversation, determine whether the requested result is:
- a replacement for text under an existing string reference;
- a new string requiring a new reference;
- a structural dialogue change; or
- both a text and structural change.
Find the highest-mounted package
The game can have several files with the same package name: the original package, an official DLC version, and one or more mod overrides. The game ordinarily loads the copy supplied by the provider with the highest applicable mount priority.
This winning copy is the highest-mounted package. Editing a lower-mounted copy can produce a perfectly valid file that has no visible effect because the game never loads it.
To locate the runtime package in Legendary Explorer:
- Open any installed copy of the package in Package Editor.
- Open the Tools menu.
- Choose Open version of file with highest mount priority.
- Package Editor opens the version that the current game installation will actually load.
- Inspect its full filesystem path to determine whether it comes from the
base game, an official DLC, or a mod's
DLC_MOD_*directory.
Package Editor may also identify an opened package as NOT HIGHEST MOUNT. Treat that warning as evidence that another installed provider is winning. Do not assume that the currently displayed package represents runtime behavior merely because its filename is correct.
Use the highest-mounted command against the installed game, not merely against files in the source-mod workspace. The result depends on the DLCs and mods currently installed for that game target.
Decide how to handle an existing override
When another mod already supplies the package you need to change, make an explicit compatibility decision before editing.
The main options are:
- Build on the existing mod: require that mod, use its package as the starting point, and mount your DLC above it. This is appropriate when your feature relies on that mod's changes. Ghost in the Machine uses this approach for packages inherited from Diversity.
- Override vanilla independently: begin with the vanilla package and declare the other package-replacing mod incompatible. Users must choose one implementation because whichever package mounts highest will hide the other.
- Provide alternate installations or compatibility patches: ship different package versions depending on which other mod is installed. Mod Manager supports alternate installation structures, but this tutorial series does not cover authoring them yet.
- Use a supported merge system: for game data covered by a specific Mod Manager merge feature, prefer that feature to replacing the entire package. There is no universal merge that automatically combines arbitrary edits to the same PCC.
Do not take another mod's package merely because it mounts highest and silently distribute it as your own. If the implementation incorporates that mod's work, make the dependency and attribution explicit and confirm that redistribution or derived use is appropriate.
After applying your development build, repeat Tools > Open version of file with highest mount priority. Confirm that the winning path now belongs to the intended installed DLC and that its contents include both the required upstream behavior and your changes.
Source files, installed files, and runtime providers
Keep these three roles distinct:
- The source-mod file is the file that should be edited and retained as the authoritative mod input.
- The installed file is the copy deployed into the game for testing.
- The highest-mounted provider is the package version that wins when several DLCs or mods supply the same logical package.
A correct source edit can appear to fail if the mod was not rebuilt or installed. A correct installed edit can appear to fail if another package mounts above it. Verify the source first, then the installed output, and finally the highest-mounted runtime provider before changing the implementation in response to an in-game failure.