|This tutorial requires basic hex reading and editing. Guidance is provided.|
Implementing a DLC mod for ME2 is very similar to ME3, with a few key differences. Before embarking on this tutorial, you should research whether a DLC mod is right for your project by taking a look at MOD101: Creating Mods for Mass Effect.
There are five steps to creating a DLC mod for ME2:
- Set up DLC folder structure
- Copy, edit, and rename a TLK file
- Copy and edit a Mount.dlc
- Copy and edit a BIOEngine.ini
- Install ME2 DLL Patcher
Completion of this tutorial requires the following applications:
DLC Folder StructureEdit
Procedure for creating the proper folder structure for an ME2 DLC mod mirrors that of ME3: follow the same conventions as BioWare's existing DLC, but keep your names unique. This means:
- A main folder of DLC_EXP_MODNAME inside ..Mass Effect 2\BioGame\DLC. "EXP" indicates "expansion". You can also use "MOD" in this location to indicate the DLC is a mod, and not official BioWare content. This method is untested, however, and needs to be verified.
- A CookedPC subfolder inside the DLC_EXP_MODNAME folder. A Movies folder is necessary if your mod will include Bink videos (BIKs).
Almost all files for the DLC mod are placed in the ..\CookedPC. Only BIK files are placed in ..\Movies.
ME2 Talk (TLK files) are essentially identical to ME3, which means contents of the TLK File Format article applies.
- Use ME3Explorer's ME2 + ME3 TLK Editor to extract an existing TLK and use it as a template.
- Remove all content you don't need, while retaining the structure of the male and female sections.
- Consult the DLC Mod Compatibility Resource to choose a unique string for your mod's name and insert the corresponding text. Note: that the example uses string ID 400310. This may be alright, but occurs inside BioWare's known range. It's more foolproof to use a string beyond 817700. It also omits the DLC folder name string.
- Name your TLK. Be aware that ME2 uses different naming conventions than ME3 for the TLK file name (e.g., DLC_40_INT.tlk). Again, you want to keep the name for your mod unique. Names outside BioWare's convention may work, but are currently untested.
Please note that DLC mods for ME2 are still somewhat experimental. If you discover information not posted here, please bring our attention to it in the Wiki section of our forums.
The Mount.dlc for ME2 is quite simple but a little different than ME3. For reference and comparison purposes, below is an unmodded mount file for the Arc Projector weapon DLC:
Copy this or any other ME2 DLC's mount file into your mod's CookedPC. To amend the file for a DLC mod, open it with HxDen and make the following changes:
- DLC Dependency State — 1 byte. Changing this byte from 02 to 01 ensures the mod will not be built into the same game as dependent DLC.
- DLC Mount Priority — 4 bytes. A DLC's mount priority controls how it will override the base game and other DLC, when identical content (like files) is present. The rule is simple: highest priority wins. The other important rule is that no two DLC can share the same mount. Doing so will crash the game. In this case, the mount integer chosen is 310. Using ME3Explorer's Hex Converter insert "310" into the Signed Integer field and then click the adjacent Convert... button. This will translate the integer into various formats. Since the trilogy uses a hex format called "little endian", we need that number, which is 36 01 00 00. Just click into the hex and type over (replace) the existing mount.
- Common Name — Length varies. Next is the common name for your mod (i.e., what you'll title your mod on Nexusmods or another hosting site). Like with the mount priority, just enter this over the existing name, but this time, click into the ANSI text to the right of the hex and enter letters rather than numbers. IMPORTANT: Changes to length of the common name matter. If your common name is shorter, you can make things easy for yourself and "zero out" the remaining vanilla text directly in the hex (not the ANSI). If your common name is LONGER, you must insert additional bytes in HxDen to compensate (Edit > Insert bytes). DO NOT overwrite any of the hex that comes after the vanilla name.
- Common Name Length — 4 bytes. IF you changed the length of the common name in the previous step by removing or adding bytes then you must make an additional edit. The four bytes that precede the common name tell the game its length. Count up your total bytes in HxDen—including the single "." at the end—and enter the integer into Hex Converter (same process as above). Convert to get the hex in little endian and overwrite the vanilla value.
- TLK String ID — 4 bytes. Next is the TLK string ID reference for the common name. Input your string integer from above into Hex Converter and convert it into little endian. Overwrite the vanilla value in the hex. The example uses "400310", which translates to B6 1B 06 00 in hex.
- Folder Name — Length varies. Finally, the DLC mod folder name. Handle this just like the Common Name, and don't disrupt the 5 bytes of zeros at the end. The folder name here should exactly match the folder as you've named it in your ME2 DLC folder.
- Folder Name Length — 4 bytes. This is also handled exactly the same as the Common Name. The length is specified by the preceding 4 bytes. Count up the length of your folder name, including the first empty byte at the end, convert, and overwrite the vanilla value with the new length.
ME2 DLC mods only need a single INI file for functionality: BIOEngine.ini. Other INIs may be needed to implement other features in the mod, but functionality only requires one.
Note the following about the INI in the screenshot to the left:
- SeekFreePCPaths — identifies the relative path to the DLC mod's CookedPC folder
- Engine.DLCModules — refers to the name of the DLC folder (DLC_EXP_ILMM) and the numerical integer embedded in the TLK file name (60; DLC_60_INT.tlk).
- DLCInfo — references have not fully been deciphered. Version=0 and Flags=2/0 are persistent across all BioWare DLC. The Name field should match the TLK String ID for the DLC common name.
ME2 DLL PatcherEdit
ME2 won't load your new DLC mod unless it's told to. For that, you must use a method similar to ME3, which is a DLL Patcher. Erik JS's patcher can be found on GitHub. Consult the Readme for installation directions.
Steam vs Origin vs DiskEdit
Mass Effect 2 is available in a variety of formats. This method should work on any platform, but has only been verified for Steam and physical disk.
|This tutorial was originally released by Deager on the ME3Explorer forum. It has been ported to the wiki and edited for completion and clarity by Giftfish.|