Legendary - A free and open-source replacement for the Epic Games Launcher
GPL-3.0 License
Bot releases are hidden (Show)
Published by derrod about 3 years ago
Please use https://github.com/derrod/legendary/releases/tag/0.20.15 instead.
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
Minor update with some tweaks to the aliasing system, the info
command and a fix for importing login information from the Epic Games Launcher.
-J
/-pretty-json
flag that determines whether json output is pretty-printedinfo
--json
flagThe auto-aliasing system was tweaked in the following ways:
btps
rather than btp
)alias list
will no longer show invalid aliases due to the internal list not being cleared before refreshing itPublished by derrod about 3 years ago
New feature release that adds automatic aliases as well as CLI alias management.
alias
command
add
, rename
, remove
, list
add
adds new alias, example: legendary alias add Eider hm3
will create the alias "hm3" for "HITMAN 3"rename
will rename an alias, example legendary alias rename hm3 hit3
will rename "hm3" to "hit3"remove
will delete an alias, example legendary alias remove hit3
will remove alias "hit3"list <app name/alias>
will show all user-defined and automatic aliases for the specified title, example: legendary alias list Eider
. This also resolves alias itself so for example legendary alias list hitman3
will also worklist
will show all user-defined aliasesThis version of legendary features a new method that automatically generates aliases for your games. The goal of this feature is to improve the usability of common commands by making them more human readable. For instance if you wish to install "Kena: Bridge of Spirits" you can now simply type legendary install kena
and it will do it!
These aliases follow common patterns that people use to abbreviate game titles, and also include the game's title and installation directory name itself. These aliases are case-insensitive (unlike user-defined ones) and are treated as lower priority than user-defined aliases.
fortnite
among
, amongus
, among us
, au
grand theft auto v
, grandtheftauto5
, grandtheftautov
, gta5
,gtav
star wars battlefront ii
, star wars battlefront ii celebration edition
, starwarsbattlefront2
, starwarsbattlefront2celebrationedition
, starwarsbattlefrontii
, starwarsbattlefrontiicelebrationedition
, swb2
, swb2ce
, swbf2
, swbf2ce
, swbfi
, swbfice
, swbfii
, swbfiice
, swbi
, swbice
, swbii
, swbiice
(Yeah, it's a long one)warframe
, wf
Additionally the first word that is not "the", "for", or "of" will also be used as an alias as long as no conflicts exist. For instance "Ghostbusters The Video Game Remastered" will be shortened to ghostbusters
, provided you do not own any other game that also starts with "Ghostbusters".
Since aliases may change or be removed when new games are purchased and collisions occur, or the algorithm is changed, it is recommended to also manually set those you expect to use commonly.
Auto-aliasing can be disabled via the config via the disable_auto_aliasing
option.
Published by derrod about 3 years ago
More fixes, and a whole bunch of CLI changes and hopefully some QoL improvements such as aliases for app names.
-c
/--config-file
option for running Legendary with a non-default configlist-installed
Command
list-games
Command
--force-refresh
flag: Will forcefully refresh all app metadatainstall
/download
Command
--with-dlcs
flag: Automatically installs all DLCs--skip-sdl
flag: Skips selective downloading prompt and continue with defaults (only required components)--disable-sdl
flag / disable_sdl
config parameter: Disables selective downloading for this title and downloads all components
--install-tag
works as normal--reset-sdl
or remove the parameter from the config file--reset-sdl --disable-sdl
will reset selected install tags while keeping SDL disabledlaunch
Command
--origin
flag: Now verifies that specified app is an Origin app and properly supports wrapper options--json
flag: Print JSON-formatted information about the launch environment and exit (mainly for third-party developers)info
Command
Epic's app names or often long, impossible to memorise, and plainly annoying to use. To address this issue to some extent legendary now supports user-defined aliases for app names. They are defined in the config like so:
[Legendary.aliases]
; Alias = App Name
HITMAN 3 = Eider
gtav = 9d2d0eb64d5c44529cece33fe2a46482
Aliases are case-sensitive, can include spaces and are supported by all commands that use app names. You can define multiple aliases for one game as well.
Aliases with spaces have to be passed to legendary in quotes, in this example to launch HITMAN 3 we would run legendary launch "HITMAN 3"
.
Future releases will support adding/removing/listing aliases from directly from the command line.
Selective downloading definitions are now available for Unreal Engine 4.23-5.0 (Early Access) and "Beyond: Two Souls". Additionally the Fortnite definition file has been updated to add a missing HD textures tag.
\t
in there)Published by derrod about 3 years ago
This release marks the fourth one in record time! Thanks to me being a bit more free right now than the last few months. This time around there will be Origin linking/launching, and some changes to the update check mechanism to finally make it useful as a delivery mechanism for updated selective downloading information.
launch
command
--origin
flag to treat the selected title as an Origin game
list-games
command
--include-non-installable
it will now give you the command to link/launch Origin titles--csv
, --json
, or --tsv
are usedThe check for updates now is an opt-out feature on all platforms. This is due to the check now being used for additional information such as selective downloading definition files.
However the notification for available updates will only be shown on Windows or when running the PyInstaller Linux binary provided for download here.
On first launch after the update legendary will create the following entries and comments in your configuration file to allow for an easy opt-out:
[Legendary]
; Disables the automatic update check
disable_update_check = false
; Disables the notice about an available update on exit
disable_update_notice = false
The check is of course anonymous and no personal data is transferred and no logs are stored.
Published by derrod about 3 years ago
This is a hotfix release that fixes logging in as well as importing an existing login from EGL on Linux.
Published by derrod about 3 years ago
Didn't think we'd see each other so soon...
This release fixes some issues related to config files that prevented the use of install tags and completely broke legendary for first time users. It also adds a feature I've been working on: Update checks! Yay!
status
command
--offline
status will now print legendary version information and update information (if available)On exit legendary will print information about available updates.
The check for updates is done once every 24 hours when a command that also connects to epic is executed (e.g. list-games
), or every time status
is used. This is only enabled by default on Windows and can be turned on/off via the enable_update_check
config variable on all systems.
In the future this mechanism will be expanded to cover other information that can be updated without requiring a full legendary release, such as selective downloading information or game-specific workarounds or fixes. These improvements will then also be enabled on Linux by default.
Published by derrod about 3 years ago
It's been a while, hasn't it?
This is a minor release with a few fixes and features that have been written over the last 9 or so months, including some changes in the background to prepare for planned larger updates in the future.
launch
command
--override-exe
/ override_exe
(config) option
install
command
--install-tag
now no longer disables installing and is saved to config
list-files
--preferred-cdn
/ preferred_cdn
(config) option
--no-https
/ disable_https
(config) option
list-games
command
--include-non-installable
to show games that cannot be installed but are registered on the account
--set-defaults
option when launchingPublished by derrod almost 4 years ago
Minor hotfix to fix save path resolution on Linux (my bad, not enough testing) and make sure games are always ordered alphabetically (case-insensitively).
This release provides a reworked selective-downloading feature and some optimizations to improve the download process of games like Pillars of Eternity, which has been previously problematic due to a misconfiguration on the publisher's side.
install
now has a --reset-sdl
flag to redo the optional component selection
repair
at the momentPublished by derrod almost 4 years ago
This release provides a reworked selective-downloading feature and some optimizations to improve the download process of games like Pillars of Eternity, which has been previously problematic due to a misconfiguration on the publisher's side.
install
now has a --reset-sdl
flag to redo the optional component selection
repair
at the momentPublished by derrod almost 4 years ago
This pre-release version provides a reworked selective-downloading feature and some optimizations to improve the download process of games like Pillars of Eternity, which has been previously problematic due to a misconfiguration on the publisher's side.
To install this version via pip you will have to manually specify the version, as pip ignores release candidate versions by default: pip install legendary-gl==0.20.5rc1
.
install
now has a --reset-sdl
flag to redo the optional component selection
repair
at the momentPublished by derrod almost 4 years ago
As the name implies, this update is specifically meant for Cyberpunk 2077. Mainly it adds some early support for "selective downloads" so only needed language packs can be installed. This will hopefully be expanded to other games in the future (although only ~3 actually support it).
Note that changing installed language packs after installation is currently not really supported, although manually changing the config file and then running a repair or installing an update (if available) will download additional ones, no longer required files will not be deleted when updating or repairing.
Changes:
max_workers
can now be configured via the configuration filePublished by derrod almost 4 years ago
This release includes minor fixes, including one for a change in how one of Epic's (currently sparsely used) CDNs works that would cause failures when attempting to download a game.
-y
/--yes
now works after the subcommand as welldefault.env
now behaves as expected (game specific overrides no longer disable the defaults entirely)Another minor release in a series of minor releases. Most notably this release finally includes a safe way of cleaning up the manifests that legendary stores in its config directory as well as a minor change to how they are stored.
uninstall
command
--keep-files
command to remove game from legendary without deleting the filescleanup
command (New)
~/.config/legendary
by default)--keep-manifests
option to not delete old manifests (e.g. when still desired for downgrading)install
will now warn if a game requires Uplay and fail if the game requires Uplay to even install (partially adresses #69)Published by derrod almost 4 years ago
Another minor release in a series of minor releases. Most notably this release finally includes a safe way of cleaning up the manifests that legendary stores in its config directory as well as a minor change to how they are stored.
uninstall
command
--keep-files
command to remove game from legendary without deleting the filescleanup
command (New)
~/.config/legendary
by default)--keep-manifests
option to not delete old manifests (e.g. when still desired for downgrading)install
will now warn if a game requires Uplay and fail if the game requires Uplay to even install (partially adresses #69)Published by derrod about 4 years ago
Everyone rejoice the inevitable bugfix release is here!
--version
alias for -V
and --debug
alias for -v
--delta-manifest
overridelist-files
import-game
now correctly converts relative paths to absolutelist-games
/list-installed
/list-files
commands now have a --json
option for output formattinglist-installed
will now include size/directory in TSV/CSV outputinstall
changes:
--repair-and-update
flag to upgrade to the latest version when repairing--ignore-free-space
to ignore the free space error (e.g. if the reading is incorrect)--disable-delta-manifests
disables the use of optimised delta manifests for patchingstatus
command (New)
--json
egl-sync
will now show a notice about games potentially missing in the "importable games" listAlso introduced since the last update: my ko-fi profile!, it's a tipping service that allows you to buy me a coffee if you enjoy my work.
Published by derrod about 4 years ago
Finally, the long awaited... oh, wait no, this is just another minor release with some bug fixes and QoL changes. But it does bring the version numbers more in line with what you'd expect from semantic versioning. And I'm not just doing that so I can keep releasing 0.20.X bugfix releases while procrastinating on actually finishing the rewrites...
Anyway, let's get to what actually changed:
import-game
now correctly converts relative paths to absolutelist-games
/list-installed
/list-files
commands now have a --json
option for output formattinglist-installed
will now include size/directory in TSV/CSV outputinstall
changes:
--repair-and-update
flag to upgrade to the latest version when repairing--ignore-free-space
to ignore the free space error (e.g. if the reading is incorrect)--disable-delta-manifests
disables the use of optimised delta manifests for patchingstatus
command (New)
--json
egl-sync
will now show a notice about games potentially missing in the "importable games" listAlso introduced since the last update: my ko-fi profile!, it's a tipping service that allows you to buy me a coffee if you enjoy my work.
Published by derrod over 4 years ago
0.0.19 will be - barring any critical fixes - the last release of the 0.0.X versions of Legendary, and probably also the last release for a while due to real life keeping me busy.
The next update is planned to be 0.1.0, and is supposed to be a major milestone with rewrites of some of the larger components. However that won't be ready until maybe mid-July if the current irl busyness keeps up.
Changes for 0.0.19:
uninstall
will now only remove the files in the game's manifest to prevent accidental deletion of save files or user created configs etc.list-installed
/launch
will now show errors if a game appears to have been deleteddownload-saves
now works correctly againPublished by derrod over 4 years ago
Minor feature and bugfix release to address some more issues with egl-sync
and add some smaller QoL features.
Changes:
auth
command
--import
will now work on Linux (WINE prefix will need to be specified)egl-sync
command
--disable-sync
to disable automatic sync without unlinkinglaunch
command
--set-defaults
/--reset-defaults
to save specified parameters (--wine
, --offline
, etc.) to the config
--dry-run
to quickly change a setting without manually editing the config or launching the gamewine_prefix
config option (will behave like --wine-prefix
)list-installed
command
--show-dirs
to print installation directories for games in listOther Fixes/Improvements:
-y
was used incorrectly--egl-wine-prefix
and --egl-manifest-path
for egl-sync
--yes
/-y
for egl-sync
Published by derrod over 4 years ago
Epic changed the API for logging in, this means older versions of Legendary where still able to keep a session, but logging in wasn't working anymore. This release fixes that.
Original 0.0.15 Changelog: https://github.com/derrod/legendary/releases/tag/0.0.15
Published by derrod over 4 years ago
This is a bugfix release for 0.0.15 containing a fix that prevents egl-sync
from working on installs with empty configuration files. Other than that there are only a few minor changes to the output of --help
.
Fixes:
Legendary
section exists in config to prevent crashes with egl-sync