Legendary - A free and open-source replacement for the Epic Games Launcher
GPL-3.0 License
Bot releases are hidden (Show)
Another set of long-overdue fixes, alongside a critical hotfix for the Webview login being broken.
As always you can support Legendary development via Ko-Fi ♥
Note: Due to some compatibility issues no DEB package is provided for this release.
launch
command
download
/install
command
--bind
parameter to bind to one or more IPs (e.g. to use multiple network interfaces simultaneously)LEGENDARY_CONFIG_PATH
environment variableinfo
command crashing if game has no custom attributes setlist-files
not working with empty install tag ""
disable_sdl
config optionauth --token
not workingEpicGamesLauncher
for some reasonPublished by derrod over 1 year ago
How does this work again...?
This releases ships some long-overdue bug fixes and a few smaller features including support for uninstallers that some games (pretty much just Fortnite) now have, improved handling of installing additional SDL tags after the fact, and safeguards to prevent two legendary instances running at once from corrupting the database.
As always you can support Legendary development via Ko-Fi or by purchasing CrossOver through my affiliate link ♥
install
command
--reset-sdl
will now work correctly to add or remove SDL contentinfo
command
uninstall
command
--skip-uninstaller
flag to skip running the uninstaller on Windowslist-saves
if a game no longer has metadata (e.g. was removed from account)info
command not displaying install information if DLC is availableupdate
the installed version for an app is now updated even if no files changed, e.g. with Civilization VI DLC that had its version increased along the base game even though no changes were made to the filesPublished by derrod almost 2 years ago
This release improves handling of login errors due to Epic requiring account actions and fixes installing some games (cough KSP) that have specified invalid installation directories.
As always you can support Legendary development via Ko-Fi or by purchasing CrossOver through my affiliate link ♥
Note: Due to my Mac no longer having a universal python build the attached binary is x86/Intel and will run through Rosetta. This shouldn't really be an issue, but is annoying.
Published by derrod almost 2 years ago
This release fixes a bug that could lead to game or save data being deleted when downloading a cloud save.
At what point do hotfixes stop being "hot"?
As always you can support Legendary development via Ko-Fi or by purchasing CrossOver through my affiliate link ♥
Note: This version requires python3.9 or higher.
--accept-path
flag to sync-saves
to accept resolved path instead of skipping when -y
is setNote: Due to my Mac no longer having a universal python build the attached binary is x86/Intel and will run through Rosetta. This shouldn't really be an issue, but is annoying.
Published by derrod almost 2 years ago
This is another hotfix release for Legendary mainly fixing logging in via WebView2 on Windows.
As always you can support Legendary development via Ko-Fi or by purchasing CrossOver through my affiliate link ♥
Note: This version requires python3.9 or higher.
Note: Due to my Mac no longer having a universal python build the attached binary is x86/Intel and will run through Rosetta. This shouldn't really be an issue, but is annoying.
Published by derrod about 2 years ago
This is another hotfix release for Legendary, that fixes downloading of manifests not working sometimes due to Epic breaking their CDN for some reason, as well as some other minor fixes that have been made since the last release.
As always you can support Legendary development via Ko-Fi or by purchasing CrossOver through my affiliate link ♥
Published by derrod about 2 years ago
This is a major(?) hotfix release for Legendary, that fixes the Epic login not working and includes some other minor fixes that have been made since the last release.
As always you can support Legendary development via Ko-Fi or by purchasing CrossOver through my affiliate link ♥
legendary auth
has been changed so that --code
is now used for such authorization codes, and --token
for exchange tokensPublished by derrod over 2 years ago
This is a minor hotfix release for Legendary, that addresses a few issues reported or fixed since 0.20.26, but brings no major new features or changes.
As always you can support Legendary development via Ko-Fi or by purchasing CrossOver through my affiliate link ♥
With the latest DXVK and Wine updates the EOS overlay is now functional on Linux. This means that it can be used to invite friends, see your achievements, etc.
Legendary supports installing and enabling the overlay via the eos-overlay
commands, which have been updated to make life a little easier.
To set up the overlay for a prefix you can run legendary eos-overlay install
followed by one of:
legendary eos-overlay enable --prefix /path/to/prefix
legendary eos-overlay enable --app <app name>
- if a prefix for that app is set in the Legendary configlegendary eos-overlay enable --bottle <bottle name>
(macOS only)
This step must be repeated for any prefix the overlay is supposed to be enabled in.
Note that at the time of writing this has not been tested on macOS.
legendary repair --repair-and-update <app name>
eos-overlay
no longer requires a prefix to be set for install
/update
, remove
, and info
subcommandsPublished by derrod over 2 years ago
It's been a long time, how have you been?
This is a minor bugfix release for Legendary, that addresses a few issues reported or fixed since 0.20.25, but brings no major new features or changes.
As always you can support Legendary development via Ko-Fi or by purchasing CrossOver through my affiliate link ♥
install
will show a warning for all other games using the 2K Launcher, and suggest executables that could be used via override_exe
to launch the game directly
install
now shows available wiki entries before and after installing-y
/--yes
will now correctly work with sync-saves
and skip unconfigured gamesCX_BOTTLE
being checked even when CrossOver is not in use (#414)cleanup
command~/Applications
on macOS when not all files are in an app bundlePublished by derrod over 2 years ago
This is a minor feature and bugfix release to solve some issues related to EGL sync and game compatibility.
egl-sync
--migrate
flag added to migrate game installations from the Epic Games Launcher to Legendary
launch
-epicsandboxid
EOS launch parameter (may fix #367, not sure yet)disable_https
not applying to manifest downloadspywebview
for webview-based loginAs always you can support Legendary development via Ko-Fi or by purchasing CrossOver through my affiliate link ♥
Published by derrod almost 3 years ago
This is the biggest release in quite a while, intended to make using Legendary on Macs easier than ever before, and bringing some previously missing overlay features to Windows. Of course, there are improvements and bug fixes for Linux users as well.
This release adds integration with CrossOver to make running Windows games on your Mac as easy and seamless as possible.
After a brief one-time setup, games can be run immediately after installing with zero additional configuration required.
Thanks to CodeWeaver's work on CrossOver and DXVK-on-Metal many titles will "just work".
If you wish to purchase a copy of CrossOver you can support Legendary development (♥) and save a bit by purchasing it through my affiliate link and using the promo code LEGENDARY15
on https://www.codeweavers.com/store.
Of course it is still possible to configure which bottles to use, which CrossOver version to run, etc. Either via new config and command line parameters or the new crossover
command or --crossover
launch option which will provide an interactive setup allowing you to select a version and bottle to use on a per-game basis or as the default.
In addition to the semi-automatic setup Legendary also offers an experimental fully automatic setup (just requires CrossOver to be installed). The new crossover --download
option makes it possible to download and set-up preconfigured Bottles and get started in no time. Currently this offers a clean default bottle as well as one set-up for Rocket League, but this may be expanded upon in the future.
This feature is experimental and not supported by CodeWeavers, please only report issues on the Legendary Discord or this repo.
As part of this effort a few workarounds for games have already been added to the Wiki, and this will be expanded upon more in the future as people try games and discover compatibility issues and work out how to fix them.
Also see full setup guide on the Wiki: https://github.com/derrod/legendary/wiki/CrossOver-Setup-(macOS)
Currently I have no plans on expanding this to Linux, as the community-driven support for Wine and sorrunding toolset is very good there compared to macOS, but if there's demand for supporting CrossOver on Linux I may look into expanding it to that in the future.
Finally, I'd like to thank the folks over at CodeWeavers for answering a whole bunch of my questions that helped make this possible, and also for providing me with the promo code mentioned above!
With this release it becomes possible to install and manage the Epic In-Game Overlay on your machine to use social features and view achievments without having to install the Epic Games Launcher. It's also possible to disable or enable the overlay at will without having to uninstall it.
Currently the overlay only works on Windows, but installation into Wine prefixes or Bottles is possible in case it starts working with a new overlay and/or Wine version. Or if there's a game that for some reason requires it to be running, even if it's not functional on Linux/Mac.
The default installation directory has been changed to ~/Games
for Windows titles, and ~/Applications
for Mac-native applications. This does not affect existing installations and can be changed with the install_dir
and mac_install_dir
config variables.
Additionally, this release provides the new move
command to make it easier to move currently installed games to a new location (see commands section below for details).
Commands can now be run before the game is launched via the pre_launch_command
configuration option. This can be set globally or per-game and allows running any application or script before or as the game is being launched (depending on the pre_launch_wait
setting).
The use cases for this include things like changing power-saving mode when launching a game, automatically starting a recording, etc. I'm sure people will find good uses for it.
As part of this release several things were cleaned up and changed in the Command Line Interface, this includes re-ordering commands to be in alphabetical order, renaming a few of them to remove unnecessary parts, and also not showing the wall of text that is the full help unless -H
/--full-help
is specified. Also some whitespace was added around important messages that would otherwise be somewhat drowned out by the rest of the output.
One of the changes in this update is a new message shown when finalsing a game install that notifies the user about known workarounds or fixes for the selected title on their current operating system.
This largely draws upon the work of @CommandMC and his EpicLinux Wiki, with some additional entries pulled from the Legendary Wiki itself (mainly for macOS).
This feature is something I do want to build upon in the future to provide more info about game compatibility directly within Legendary.
-A
/--api-timeout
parameter to change the HTTP request timeout for the Epic API (default: 10 seconds)-H
/--full-help
flag to show full help (all commands) rather than just the list of commands-c
/--config-file
option, which will be removed in the future as it has caused more issues than it solvescrossover
[new]
legendary crossover [App Name]
--crossover-bottle
and --crossover-app
can be used to skip the respective interactive selection--reset
can be used to remove the current selection from the config--download
(experimental)
--ignore-version
is specified all Bottles will be shown, regardless of the versions they're marked as compatible witheos-overlay
[new]
legendary eos-overlay <subcommand>
install
/update
/remove
- download and install or uninstall the overlay (default: ~/Games/.overlay
)enable
/disable
- add/remove the registry entries used by the EOS SDK to find the overlay installation to loadinfo
- prints some information about the current registry configuration and overlay install (if any)--path
can be used to override the installation location or overlay install to "enable"--prefix
/--bottle
to specify wine prefix/bottle to enable overlay in, if set in the config --app <app name>
can be used insteadinstall
launch
--crossover
flag to go through interactive setup (like crossover
command), but immediately launch the game after--crossover-app
and --crossover-bottle
parameters to specify or override the used version and bottlemove
[new]
legendary move <app name> <new location>
legendary move sugar ~/Games
will move the RocketLeague
game folder from its previous location into ~/Games
--skip-move
flag to only update the Legendary database, without actually moving the game files
verify
Renamed commands:
import-game
=> import
list-games
=> list
verify-game
=> verify
The old command names will still work as aliases, but those may be removed in the future.
Per-app settings:
[App Name]
; A command to run before launching the gmae
pre_launch_command = /path/to/script.sh
; Whether or not to wait for command to exit before starting the game
pre_launch_wait = false
Legendary settings:
[Legendary]
; Fallback to "Windows" platform if native version unavailable
install_platform_fallback = true
; Disable automatic CrossOver use
disable_auto_crossover = false
; Default directory for native Mac applications (.app packages)
mac_install_dir = /User/legendary/Applications
Per-app settings:
[App Name]
crossover_app = /Applications/CrossOver.app
crossover_bottle = Legendary
Note about Windows exe: Now built using Python 3.9, which will no longer run on Windows 7 or older (which wasn't supported anyway)
Note about macOS binary: Built as universal binary using pre-release version of PyInstaller 4.8, please let me know if there are any issues on Intel Macs
Published by derrod almost 3 years ago
This release had an issue, please use 0.20.24 instead: https://github.com/derrod/legendary/releases/tag/0.20.24
(Binaries retained for archive purposes)
Published by derrod almost 3 years ago
Another smaller hotfix to address some outstanding issues before my Christmas break:
repair
when the installed manifest is unavailable for some reason (#380)cleanup
command which was broken after adding macOS supportexternal_activation
to info
command output to note if a game requires activation via Origin or UplayAlso check out the previous 0.20.19 release and 0.20.20/21 hotfixes:
Published by derrod almost 3 years ago
Small hotfix release to address some issues that have cropped up recently.
import-game
Command
activate
Command
Also check out the previous 0.20.19 release and 0.20.20 hotfix:
Published by derrod almost 3 years ago
This is a small hotfix release to resolve some issues with 0.20.19 as well as some small (backwards-compatible) change to the CLI.
list-games
--include-non-installable
has been renamed to -T
/--third-party
. The old name may be removed in a future releaseactivate
-U
shortcut and --ubisoft
alias to --uplay
option-O
/--origin
option to activate origin games
Also check out the full 0.20.19 changelog: https://github.com/derrod/legendary/releases/tag/0.20.19
Published by derrod almost 3 years ago
Two major features, a whole bunch of bugfixes, please don't break it too quickly!
Legendary now supports macOS out of the box, both native and Windows titles (through WINE) can be installed and launched.
Cloud saves are also supported, as well as most other features. Syncing installed games with the Mac version of the Epic Games Launcher is unsupported however (no ETA).
When using legendary on macOS it will now prefer native titles by default, to list/download Windows titles use --platform Windows
or change the default_platform
configuration variable.
Note that due to a bug in PyInstaller the provided binary is x86 only. This will change once PyInstaller releases a fixed version.
Rejoice a long-standing problem (issue #69, nice) is finally solved! The new activate
command allows for activating Uplay titles purchased/claimed on the Epic Games Store to be activated on your Ubisoft account. They can then be installed directly via Uplay, no third-party launcher needed.
To activate your titles simply run legendary activate --uplay
, if you do not have a Ubisoft account linked yet simply follow the instructions provided.
activate
[New]
--uplay
parameterimport-game
--platform
parameter, defaults Windows
on Linux/Windows and Mac
on macOSinfo
--platform
parameter, defaults Windows
on Linux/Windows and Mac
on mainstall
--platform
no longer disables installing, defaults Windows
on Linux/Windows and Mac
on macOSlist-files
/list-games
--platform
parameter now defaults to Windows
on Linux/Windows and Mac
on macOSlist-installed
status
sync-saves
default_platform
config value to override OS-detection based selection (Mac
on macOS, Windows
everywhere else)wget
'ing (or curl
'ing if that's more your thing)As a sidenote, the repo now includes a Kaitai Struct definition file for Epic's binary manifest format: doc/ue_manifest.ksy
Published by derrod almost 3 years ago
This is a quick hotfix to fix syncing with EGL version 13.0.6 or newer. Currently it will work but show a warning, a future version will fix this properly.
clean-saves
[new]
--delete-incomplete
to also delete a cloud saves if it's only partially missingdownload-saves
/sync-saves
clean-saves
and try againinfo
null
instead of an empty objectinstall
{AppData}
variable will now correctly resolve to %LOCALAPPDATA%
rather than %APPDATA%
--csv
/--tsv
line endings are now explicitly set to \n
to prevent issues when piping the output on WindowsPublished by derrod almost 3 years ago
This is yet another release mostly fixing a few issues and providing a new command to clean cloud saves that have become obsolete/corrupt.
clean-saves
[new]
--delete-incomplete
to also delete a cloud saves if it's only partially missingdownload-saves
/sync-saves
clean-saves
and try againinfo
null
instead of an empty objectinstall
{AppData}
variable will now correctly resolve to %LOCALAPPDATA%
rather than %APPDATA%
--csv
/--tsv
line endings are now explicitly set to \n
to prevent issues when piping the output on WindowsPublished by derrod about 3 years ago
Yet another hotfix to fix further issues with the webview based login and some other minor issues.
WebView2
is available (should be the case on any reasonably up to date Windows 10/11)launch --dry-run
not working for Origin titlesinfo
Command
This is a hotfix to address two potential crashes, one of which had been reported on AUR.
Starting with this release Legendary offers the option to log into your Epic account via an embedded web view. This greatly simplifies the sign-in process for first-time users or those not all too familiar with the technical language used during the manual login flow.
This feature is already available in the Windows binaries and can be easily installed on most Linux distributions. The prebuilt Linux binaries do not currently support it but may in the future.
pip install legendary-gl[webview]
- no further dependencies required!pip install -U legendary-gl[webview]
)PyGObject
sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0
Legendary requires pywebview
of version 3.4 or higher. If your distribution provides recent enough packages for pywebview
you can add it and its dependencies for one of its supported web engines to your legendary package. See the pywebview documentation for details.
While pywebview
supports both Qt (QtWebKit
/ QtWebEngine
) and GTK (WebKit2
) as rendering engines, only GTK has been tested extensively and is the recommended option.
Should you want/need to use Qt as the dependency in your package please make sure all login options work correctly. At least in my testing on my build machine (running an older Ubuntu LTS release) Qt did not function correctly in some cases.
alias
command
alias add <app name> <alias>
will now also resolve aliases used in place of the app nameauth
command
--disable-webview
flag to force manual authentication flow even if webview is availableinstall
command
--skip-dlcs
flag to skip asking if the user wants to install DLCsimport-game
command
install
does.--with-dlcs
flag to automatically attempt to import all DLC--skip-dlcs
flag to skip asking if the user wants to import DLCspywebview
as optional dependency in setup.py to make legendary[webview]
option available via PyPIPublished by derrod about 3 years ago
This is a hotfix to address two potential crashes, one of which had been reported on AUR.
Starting with this release Legendary offers the option to log into your Epic account via an embedded web view. This greatly simplifies the sign-in process for first-time users or those not all too familiar with the technical language used during the manual login flow.
This feature is already available in the Windows binaries and can be easily installed on most Linux distributions. The prebuilt Linux binaries do not currently support it but may in the future.
pip install legendary-gl[webview]
- no further dependencies required!pip install -U legendary-gl[webview]
)PyGObject
sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0
Legendary requires pywebview
of version 3.4 or higher. If your distribution provides recent enough packages for pywebview
you can add it and its dependencies for one of its supported web engines to your legendary package. See the pywebview documentation for details.
While pywebview
supports both Qt (QtWebKit
/ QtWebEngine
) and GTK (WebKit2
) as rendering engines, only GTK has been tested extensively and is the recommended option.
Should you want/need to use Qt as the dependency in your package please make sure all login options work correctly. At least in my testing on my build machine (running an older Ubuntu LTS release) Qt did not function correctly in some cases.
alias
command
alias add <app name> <alias>
will now also resolve aliases used in place of the app nameauth
command
--disable-webview
flag to force manual authentication flow even if webview is availableinstall
command
--skip-dlcs
flag to skip asking if the user wants to install DLCsimport-game
command
install
does.--with-dlcs
flag to automatically attempt to import all DLC--skip-dlcs
flag to skip asking if the user wants to import DLCspywebview
as optional dependency in setup.py to make legendary[webview]
option available via PyPI