ModProfile (.me3) configuration reference¶
What is a ModProfile configuration?¶
A ModProfile configuration is a versioned TOML file that tells me3 which mods to load, how to load them, and the games they support. It acts as a manifest for your mod setup, listing asset override packages and native DLLs with an optional load order.
- How it's used: me3 reads the ModProfile to know which mods to load and in what order. You can launch a profile by double-clicking it (Windows) or using the CLI (
me3 launch --profile my-profile.me3). - Versioning: The
profileVersionfield ensures older profiles remain compatible after breaking changes. - Flexibility: Profiles can be stored anywhere, reference relative or absolute paths, and are forward compatible with new me3 features.
Example configuration¶
profileVersion = "v1"
savefile = "MyModdedSave.sl2"
start_online = true
[[supports]]
game = "eldenring"
[[packages]]
path = 'mods/MyCoolTexturePack/'
[[packages]]
path = 'mods/MyCoolModelPack/'
[[natives]]
path = 'mods/MyAwesomeMod.dll'
Dissecting the example configuration¶
- profileVersion: This is the version of me3 this profile was written for. It allows older profiles to continue working correctly after breaking changes are made in the profile format.
- savefile: This optional field specifies the file name of the savefile the game will use instead of the default one (e.g.
ER0000.sl2in Elden Ring). It's extremely handy for compartmentalizing modded content to avoid save corruption and multiplayer bans. If a file with that name does not already exist, me3 copies and renames an existing base savefile. The default save directory is unchanged. - start_online: By default, me3 prevents the game from connecting to the official multiplayer matchmaking servers. This functionality can be reenabled for use with private server mods like Waygate and DS3OS (it is not needed for Seamless Co-op).
- [[supports]]: Each block lists a game supported by this profile. Profiles that list exactly one game can be launched without specifying which game to launch.
- [[packages]]: Each block defines a package of asset overrides.
pathpoints to the folder containing the mod files. You can add multiple packages by adding more[[packages]]blocks. Note that we use single quotes here, to avoid having to escape backslashes in Windows paths. - [[natives]]: Each block defines a native DLL mod to load. The
pathpoints to the DLL file. You can add multiple natives by adding more[[natives]]blocks.
Reference¶
See below for a rendered version of the mod profile schema.
Properties¶
ModProfile¶
- One of
- object: Refer to ModProfileV1.
profileVersion(string, required): Must be:"v1".
Definitions¶
Dependent (object)¶
id(string, required)optional(boolean, required)
Game (string)¶
List of games supported by me3.
- One of
- : DARK SOULS III (Steam App ID: 374320). Must be one of:
["darksouls3", "ds3"]. - : Sekiro: Shadows Die Twice (Steam App ID: 814380). Must be one of:
["sekiro", "sdt"]. - : Elden Ring (Steam App ID: 1245620). Must be one of:
["eldenring", "er", "elden-ring"]. - : Armored Core VI: Fires of Rubicon (Steam App ID: 1888160). Must be one of:
["armoredcore6", "ac6"]. - : Elden Ring Nightreign (Steam App ID: 2622380). Must be one of:
["nightreign", "nr", "nightrein"].
- : DARK SOULS III (Steam App ID: 374320). Must be one of:
ModFile (string)¶
A filesystem path to the contents of a package. May be relative to the [ModProfile] containing it.
ModProfileV1 (object)¶
savefile(['string', 'null']): This optional field specifies the file name of the savefile the game will use instead of the default one (e.g.ER0000.sl2in Elden Ring).start_online(boolean): By default, me3 prevents the game from connecting to the official multiplayer matchmaking servers. This functionality can be reenabled. Default:false.natives(array): Native modules (DLLs) that will be loaded. Default:[].packages(array): A collection of packages containing assets that should be considered for loading before the DVDBND. Default:[].supports(array): The games that this profile supports. Default:[].
Native (object)¶
enabled(boolean): Should this native be loaded? Default:true.load_early(boolean): Should this native be loaded before the game has initialized? Default:false.finalizer(['string', 'null']): An optional symbol to be called when this native successfully is queued for unload.initializer: An optional symbol to be called after this native successfully loads.- Any of
- : Refer to NativeInitializerCondition.
- null
load_after(array): Default:[].load_before(array): Default:[].optional(boolean): If this native fails to load and this value is false, treat it as a critical error. Default:false.path: Path to the DLL. Can be relative to the mod profile. Refer to ModFile.
NativeInitializerCondition¶
- One of
- object: Cannot contain additional properties.
delay(object, required)ms(integer, format: uint, required): Minimum:0.
- object: Cannot contain additional properties.
function(string, required)
Package (object)¶
A package is a source for files that override files within the existing games DVDBND archives. It points to a local path containing assets matching the hierarchy they would be served under in the DVDBND.
enabled(boolean): Enable this package? Default:true.id(['string', 'null']): The unique identifier for this package.load_after(array): A list of package IDs that this package should load after. Default:[].load_before(array): A list of packages that this package should load before. Default:[].path: A path to the source of this package. Refer to ModFile.
Supports (object)¶
game: Refer to Game.since(['string', 'null'])