AYasinAkalin / MELE_quickIniEditor

A terminal application allowing users and modders to modify .ini and Coalesced_*.bin files of ME Legendary Edition easily without replacing the whole file; losing possible early modifications in process. (ME3 is not supported)
GNU General Public License v3.0
3 stars 0 forks source link
game mass-effect-legendary-edition modding

MELE Quick Ini Editor - Introduction

This small terminal application allows users and modders to apply certain changes to Mass Effect Legendary Edition's configuration files without replacing the whole file; losing possible early modifications in process.

Currently editable files are all .ini files inside Coalesced_*.bin, BIOEngine.ini and BIOGame.ini, GamerSettings.ini. Currently Mass Effect 1 and 2 are supported.

To Modders

Modders only need to provide users .txt files inside MOD folder as filled. Modders can also just share their changes in syntax provided below.

Your addition to .txt files will be reflected on the game's .ini files.

To developers

This section is for people who downloaded THE SOURCE CODE, not the release package.

Python 3.5> required to run the program from source code. Use the following commands to run.

python PATHTO_QUICKINIEDITOR.PY Change PATHTO_QUICKINIEDITOR.PY according to what directory your terminal session is in.

If your terminal is pointing the folder the source code is in, above command becomes: python quickIniEditor.py

Building

I use Py2exe to produce a distribution package. setup.py I use is included in the source code. This is the command I use to build: python setup.py py2exe It will create a folder called dist and put your build and exe inside it.

Run the program (for users)

Download the latest release, extract the .zip file, run quickIniEditor.exe.

You also need to fill .txt files inside MOD folder or replace the .txt file provided by your mod or as you like it. Read below to learn more.

This program won't change change your files unless you make changes to .txt files since they are shipped empty.

Quick look at INI Files

.ini files consist of sections and key-value pairs under each section. A key in a .ini file is called an option. An option must have a value attached to it with =.

Syntax

You only need to put lines using one of these syntax. Each line you are going to put is called a modification line. Syntax of a modification line is below:

1) Syntax for replacing an existing option

vanillaString;;modificationString

2) Syntax for adding a new option

;;modificationString@[sectionName]

vanillaString

vanillaString is one of the original line you are aiming to modify that is found on Mass Effect Legendary Edition's respective game's .ini file.

This line DefaultGame=SFXGame.BioSPGame from Mass Effect Legendary Edition\Game\ME1\BioGame\Config\BIOGame.ini is an example to a vanillaString.

You should put vanillaStrings as is.

Delimiter (;;)

;; is delimiter between vanillaString and modificationString. Don't put spaces between the delimiter and vanillaString and modificationString.

modificationString

Modified state of vanillaString. This includes your modification. Use the same option name in the vanillaString.

This line DefaultGame=Asimov is a modifiedString example. Option is still DefaultGame, but I changed its value to Asimov from SFXGame.BioSPGame.

New Addition Operator (@)

@ tells the program that a new option that wasn't present is to be added.

If you use addition operator leave vanillaString part empty and always include a sectionName with brackets after the operator.

sectionName

sectionName is a name of a section in an .ini file. It tells the program where you want your new option to be put.

Examples

Example 1

Consider the following modification line in ModsToBIOGame.txt

DefaultGame=SFXGame.BioSPGame;;DefaultGame=Asimov

When the program runs, DefaultGame=SFXGame.BioSPGame inside BIOGame.ini will be replaced by DefaultGame=Asimov.

Example 2

Consider the following modification lines in ModsToBioEngine.txt

GameName=Mass Effect;;GameName=Mass Effect 655
bEnableSpam=False;;bEnableSpam=True
;;NewOption=False@[URL]
;;NewOption=False@[A.New.Section]
;;NewOption=False@[A.New.Section]
;;Number=9995.12@[B.New.Section]

When the program runs, BIOGame.ini will include these changes:

Takeaways from Example 2

1) There could be identical options under different sections.

This is why NewOption=False is added under [A.New.Section] even though the exact same option with the same value was placed under [URL] section.

2) There could be only one option with the same value under one section.

For this reason second inquiry to insert NewOption=False under [A.New.Section] will be rejected by the program.

File correspondence

.txt File .ini File .ini File's Location
ModsToBIOEngine.txt BIOEngine.ini Game\ME1\BioGame\Config
ModsToBIOGame.txt BIOGame.ini Game\ME1\BioGame\Config
ModsToCoaBIOCompat.txt -_-_BIOGame_Config_BIOCompat.ini Game\ME1\BioGame\CookedPCConsole\Coalesced_INT.bin
ModsToCoaBIOCredits.txt -_-_BIOGame_Config_BIOCredits.ini Game\ME1\BioGame\CookedPCConsole\Coalesced_INT.bin
ModsToCoaBIOEditor.txt -_-_BIOGame_BIOEditor.txt Game\ME1\BioGame\CookedPCConsole\Coalesced_INT.bin
ModsToCoaBIOEditorKeyBindings.txt -_-_BIOGame_Config_BIOEditorKeyBindings.ini Game\ME1\BioGame\CookedPCConsole\Coalesced_INT.bin
ModsToCoaBIOEditorUserSettings.txt -_-_BIOGame_Config_BIOEditorUserSettings.ini Game\ME1\BioGame\CookedPCConsole\Coalesced_INT.bin
ModsToCoaBIOEngine.txt -_-_BIOGame_Config_BIOEngine.ini Game\ME1\BioGame\CookedPCConsole\Coalesced_INT.bin
ModsToCoaBIOGame.txt -_-_BIOGame_Config_BIOGame.ini Game\ME1\BioGame\CookedPCConsole\Coalesced_INT.bin
ModsToCoaBIOLightmass.txt -_-_BIOGame_Config_BIOLightmass.ini Game\ME1\BioGame\CookedPCConsole\Coalesced_INT.bin
ModsToCoaBIOInput.txt -_-_BIOGame_Config_BIOInput.ini Game\ME1\BioGame\CookedPCConsole\Coalesced_INT.bin
ModsToCoaBIOParty.txt -_-_BIOGame_Config_BIOParty.ini Game\ME1\BioGame\CookedPCConsole\Coalesced_INT.bin
ModsToCoaBIOQA.txt -_-_BIOGame_Config_BIOQA.ini Game\ME1\BioGame\CookedPCConsole\Coalesced_INT.bin
ModsToCoaBIOStringTypeMap.txt -_-_BIOGame_Config_BIOStringTypeMap.ini Game\ME1\BioGame\CookedPCConsole\Coalesced_INT.bin
ModsToCoaBIOUI.txt -_-_BIOGame_Config_BIOUI.ini Game\ME1\BioGame\CookedPCConsole\Coalesced_INT.bin
ModsToCoaBIOWeapon.txt -_-_BIOGame_Config_BIOWeapon.ini Game\ME1\BioGame\CookedPCConsole\Coalesced_INT.bin