Legendary stores all persistent configuration in a single INI-format file calledDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/legendary-gl/legendary/llms.txt
Use this file to discover all available pages before exploring further.
config.ini. The file is divided into named sections — a global [Legendary] section for application-wide settings, a [default] section for game-launch defaults that apply to every title unless overridden, and per-app sections identified by the game’s Epic app name (e.g. [AppName]). You can also define environment variables for individual games using [AppName.env] sections. Any value you set here persists across runs and avoids having to pass flags on every command invocation.
Config File Location
By default, Legendary reads and writes its configuration at:LEGENDARY_CONFIG_PATHenvironment variable — if set, Legendary uses this directory as the entire config root (theconfig.iniwill be at$LEGENDARY_CONFIG_PATH/config.ini)XDG_CONFIG_HOMEenvironment variable — if set, Legendary creates alegendary/subfolder inside it ($XDG_CONFIG_HOME/legendary/config.ini)- Default fallback —
~/.config/legendary/config.ini
-c / --config-file global flag:
If the config file is modified externally while Legendary is running, Legendary will rename the on-disk file to
config.<mtime>.ini before writing its own changes so you don’t lose anything.Full Example
Below is an annotatedconfig.ini showing every supported option across all sections. Sections and options you do not need can be omitted entirely — Legendary uses sensible defaults for anything not present.
Section Reference
[Legendary] — Global Application Settings
[Legendary] — Global Application Settings
These options control Legendary’s overall behavior and apply to all commands.
macOS-specific options (no effect on Linux or Windows):
| Option | Type | Default | Description |
|---|---|---|---|
log_level | string | info | Logging verbosity. Set to debug for verbose output (same as passing -v on the command line). |
max_memory | integer | system memory | Maximum shared memory in MiB to use during game installation. Reduce this on memory-constrained systems. |
max_workers | integer | auto | Maximum number of parallel worker processes used when downloading. Fewer workers use less CPU and RAM but download more slowly. |
install_dir | path | ~/Games | Default directory where games are installed when no --base-path is provided to install. |
locale | string | system locale | Locale override in RFC 1766 format (e.g. en-US, de-DE). Controls language selection when fetching game manifests. |
egl_sync | boolean | false | Whether bidirectional sync with the Epic Games Launcher is enabled. Managed via legendary egl-sync. |
egl_programdata | path | — | Full path to the EGL Manifests folder inside its ProgramData directory. Required for EGL sync on Linux/macOS running EGL under Wine. |
preferred_cdn | string | — | Hostname of the preferred CDN to use for downloads (e.g. epicgames-download1.akamaized.net). Useful for improving speeds or using a LAN cache. |
disable_https | boolean | false | Disable HTTPS for file downloads. Set to true when using a LAN cache that does not support HTTPS (e.g. LanCache.net). |
disable_update_check | boolean | false | Disable the automatic check for new Legendary releases on startup. |
disable_update_notice | boolean | false (GUI/Windows/macOS), true (Linux CLI) | Disable the notice printed at exit when a new Legendary version is available. |
disable_auto_aliasing | boolean | false | Disable automatic generation of short aliases from game titles. See the Aliases page. |
| Option | Type | Default | Description |
|---|---|---|---|
default_platform | string | Mac on macOS, Windows elsewhere | The default platform used when fetching game manifests and installing games. Set to Windows to prefer Windows builds. |
install_platform_fallback | boolean | true | When a native Mac version of a game is unavailable, automatically fall back to the Windows platform build. |
disable_auto_crossover | boolean | false | Disable the automatic detection and use of CrossOver for launching Windows games on macOS. |
mac_install_dir | path | — | Default installation directory for native Mac applications (.app packages). |
[Legendary.aliases] — Custom Aliases
[Legendary.aliases] — Custom Aliases
The You can manage this section interactively with the
[Legendary.aliases] section lets you map short, memorable names to Epic app names. Each entry follows the format <alias> = <app name>.legendary alias command instead of editing the file by hand. See the Aliases page for full details.[default] and [default.env] — Default Game Launch Settings
[default] and [default.env] — Default Game Launch Settings
Options in the
Environment variables placed in
[default] section apply to every game at launch time unless overridden by a game-specific [AppName] section. This is useful for setting a global Wine executable, prefix, or wrapper without repeating it for every title.| Option | Platform | Description |
|---|---|---|
wrapper | All | Command to wrap the game executable with. For example gamemode (Feral GameMode) or "/path with spaces/gamemoderun". Quote the value if the path contains spaces. |
wine_executable | Linux / macOS | Path (or name) of the Wine binary to use. Example: wine, /usr/bin/wine64. |
wine_prefix | Linux / macOS | Path to the Wine prefix directory (equivalent to the WINEPREFIX environment variable but applied at a higher level). |
crossover_app | macOS | Path to the CrossOver .app bundle. Example: /Applications/CrossOver.app. |
crossover_bottle | macOS | Name of the CrossOver bottle to use. Example: Legendary. |
[default.env] are exported into the environment of every launched game (overridden by any matching key in a game-specific [AppName.env] section):[AppName] and [AppName.env] — Per-Game Settings
[AppName] and [AppName.env] — Per-Game Settings
Replace
Example:Per-game environment variables go in a matching
AppName with the game’s Epic app name exactly as shown by legendary list. Settings here override their [default] counterparts for that title only.| Option | Type | Description |
|---|---|---|
offline | boolean | Launch the game without online authentication by default, as if --offline was passed on the command line. |
skip_update_check | boolean | Skip checking for game updates before launch. |
start_params | string | Additional command-line arguments passed to the game’s executable (in addition to any required Epic arguments). |
language | string | Two-letter language code (e.g. fr, de) to use when launching this game, overriding the system locale. |
wine_executable | path | Override the Wine binary for this specific game. |
wine_prefix | path | Override the Wine prefix for this specific game. |
wrapper | string | Wrapper command for this game. Quote the value if the path contains spaces. |
no_wine | boolean | Do not run this executable through Wine (e.g. when the wrapper itself handles Windows emulation). |
override_exe | relative path | Override the executable that Legendary launches. The path must be relative to the game’s installation directory. Useful for bypassing launchers (e.g. Borderlands). |
disable_sdl | boolean | Disable Selective Downloading (SDL) for this title, forcing a full install of all game components. |
pre_launch_command | path | Command to run before launching the game. |
pre_launch_wait | boolean | Whether to wait for the pre_launch_command to finish before launching the game. Defaults to false. |
crossover_app | path | (macOS) Override the CrossOver .app bundle path for this game. |
crossover_bottle | string | (macOS) Override the CrossOver bottle name for this game. |
[AppName.env] section. These are set in the process environment before the game (or its Wine wrapper) is executed:Related Pages
Environment Variables
Override Legendary’s config directory path using shell environment variables.
Aliases
Create and manage short aliases for Epic app names.
Wine & Linux
Guide to configuring Wine prefixes and executables for Linux gaming.