Skip to content
This repository has been archived by the owner on Feb 17, 2024. It is now read-only.

kyechou/leagueoflegends

Repository files navigation

Status: Archived

This repository has been archived and no longer maintained.

Due to the upcoming Vanguard kernel-level anti-cheat [1] [2], it will not be possible to play LoL on Linux through wine or its variant. Please see [3] [4] for more details about Vanguard, and [5] [6] [7] for the privacy and security implications of kernel-level anti-cheat systems.

It is encouraged to remove LoL from your Linux machines once Vanguard is rolled out some time early 2024 (currently expected to be released with patch 14.5). To do so, please run leagueoflegends uninstall before removing the helper script (i.e., the AUR package).

[1]: Season 2024 Look Ahead - YouTube
[2]: Vanguard Updates - Riot Games
[3]: Riot Vanguard - League of Legends Wiki
[4]: Riot Vanguard FAQ
[5]: Security Concerns About Kernel-Level Anti-Cheat in Video Games
[6]: Redefining the Risks of Kernel-Level Anti-Cheat in Online Gaming
[7]: /dev/null: Anti-Cheat Kernel Driver


League of Legends

League of Legends helper script for installing and running on Linux.

Warning
Playing LoL on Linux is not officially supported by Riot, so please proceed at your own risk! From Riot: "We also can't guarantee that more restrictive anti-cheat tools won't be introduced in the future, which could potentially conflict with such environments." (#109)

Warning
People have reported being banned for cheating since 13.14 (#109) or when using wine-lol-staging from the AUR (#123). At the moment, it is recommended to use the wine-lol package (which uses GloriousEggroll's version). However, if getting banned is unaffordable, it may be worth considering playing it on Windows or Mac.

Installation

Please choose an installation method suitable for your distribution. Remember to check all dependencies are installed properly if it's installed manually.

Distribution Installation method
Arch Linux AUR: leagueoflegends-git
Debian/Ubuntu ./package.sh debian
sudo dpkg -i <deb_file>
Others Manual installation: sudo make install

Note
With package installation methods, packages specific to individual GPUs are not included in the dependencies, even though we do include the virtual packages vulkan-driver and lib32-vulkan-driver in the AUR package. So please be sure to install the packages required by your specific GPUs. For example, Debian testing requires libnvidia-glvkspirv and libglx-nvidia0 for Nvidia GPUs (see #41).

Dependencies

The following dependencies are included in the AUR package and the generated .deb package. If there's anything incorrect or missing, pull requests are appreciated.

Note
For non-Arch distributions, wine-lol is not included in the package dependencies because they don't have those packages for now. So please be sure to manually install wine-lol by either downloading from a release of wine-ge-custom (which is the same as wine-lol-bin), or from a release of lol-for-linux-installer. After downloading the binary release, extract the content to /opt/wine-lol or /opt/wine-lol-staging.

  • wine-lol (please refer to the associated links for their differences)
  • winetricks
  • bash
  • curl
  • openssl
  • samba
  • mesa-utils
  • gnutls, lib32-gnutls
  • libldap, lib32-libldap
  • openal, lib32-openal
  • libpulse, lib32-libpulse
  • alsa-lib, lib32-alsa-lib
  • mpg123, lib32-mpg123
  • unixodbc, lib32-unixodbc
  • vkd3d, lib32-vkd3d
  • vulkan-icd-loader, lib32-vulkan-icd-loader
  • Vulkan drivers for your graphic cards, both 64-bit and 32-bit packages are required at the moment until Riot ships only the 64-bit binaries. For example:
    • vulkan-intel, lib32-vulkan-intel
    • nvidia-utils, lib32-nvidia-utils
    • vulkan-radeon, lib32-vulkan-radeon
    • amdvlk, lib32-amdvlk

Note
The above package names are based on Arch Linux. For other distributions, the package names will be different. Please refer to the documentation of the distribution for installing the correct Vulkan drivers and other dependencies.

Note
"Starting April 4, 2023, League will no longer be supported by 32-bit operating systems." (dev news) However, currently Riot still ships 32-bit binaries, so both 32-bit and 64-bit dependencies will be needed until all 32-bit binaries are safely rolled out and no longer shipped.

Configuration

There is no need for configuration. You may feel free to skip this part, unless you want to change the install path of the game or where the cache is placed.

The helper script looks for configuration files located at $XDG_CONFIG_HOME/league.sh or ~/.config/league.sh, in that order. The configuration file is a shell script and will be sourced before starting the game. You may define any environment variables or run any commands you want, which might be helpful in special situations.

These are the variables that will be explicitly referenced and used:

  • DATA_HOME: The path where the game is, or will be, installed. (Default: $XDG_DATA_HOME or ~/.local/share)
  • CACHE_HOME: The path for the cache files. (Default: $XDG_CACHE_HOME or ~/.cache)

For example, if the configuration file doesn't exist or if the DATA_HOME variable is not defined, the game would then be installed at ~/.local/share/leagueoflegends/ by default.

Usage

Pre-client-installation checks (Important!)

  • Please make sure you have installed the correct Vulkan driver for your graphics card that you will be using. You can check what is installed with
    ls /usr/share/vulkan/icd.d/
    

Install the Riot and League client

  • First install the game: leagueoflegends install.
    • Please do not log in or launch the game during installation.
    • If the installation progress stucks at 100%, close the window, and run leagueoflegends install again.
  • You may want to prevent the Riot client from minimizing upon exit by modifying the riot client settings. See here for more details.
  • Exit the window when the game installation is finished. (The progress circle disappears.)
  • Start the game: leagueoflegends start.
  • Log in with your Riot credentials and start LoL as usual.
  • Once the League client shows up, please try a practice match to make sure everything works.
  • To remove the game: leagueoflegends uninstall.

Warning
If you've run wine-lol-staging or other flavors of wine 8.0+ before and now have issues with launching the client (especially if you're coming from version 8 to 7), and it says something about unimplemented function winegstreamer.dll.winegstreamer_create_video_decoder. It's because of the difference in wine versions. You need to recreate the wine prefix for it to work, by running leagueoflegends reset-wineprefix.

Note
If you use Nvidia graphics card and have trouble launching the League client or start the game (after champion selection), please check out the troubleshooting section.

leagueoflegends -h can be used to view the full list of options and commands.

[!] Usage: leagueoflegends [options] <command>

    League of Legends - helper program

    Options:
        -h, --help          Show help message
        -v, --verbose       Enable verbose output
        -f, --config        Specify the configuration file
        --pbe               Launch the PBE patchline
        --region <region>   Set region
        --locale <locale>   Set locale (if different from the region)

    Commands:
        start               Start LoL
        stop                Same as kill
        install             Install LoL
        uninstall           Uninstall LoL
        reinstall           Reinstall LoL
        reset-wineprefix    Reset wine prefix
        replay <path>       Replay match (.rofl file)
        add-dxvk            Install DXVK to the LoL wineprefix
        del-dxvk            Remove DXVK from the LoL wineprefix
        rm-dxvk-cache       Remove DXVK cache
        cleanup-logs        Remove log files
        kill                Kill the wine processes of the wineprefix
        run <cmd>           Run shell command with environment variables

Advanced wine configuration

leagueoflegends kill would use wineserver --kill to try to kill all the wine processes of the current wine prefix, which can be helpful if some error happens and the script hangs.

leagueoflegends run <...> can be use to run any command with the wine-related environment variables, such as WINEARCH, WINEDLLOVERRIDES, and WINEPREFIX. This way, you could easily run wine utilities like leagueoflegends run winecfg, or leagueoflegends run winetricks, etc.

Troubleshooting

Riot client keeps running after the league client exits

Currently the Riot client will by default keep running in the background with the system tray icon after the league client exits. You may change the behavior by going to the Riot client settings and selecting the "Exit application" option upon closing the window.

Related issue: #99

Riot client settings

Blank screen with Nvidia graphics card

If you use Nvidia graphics card and have trouble launching the League client or start the game (after champion selection), please exit the game (with leagueoflegends kill) and then try leagueoflegends rm-dxvk-cache before restarting it. This should only need to be done once to clean up the old cache, since DXVK caching is currently disabled. (Reference)

If the issue still remains, you may want to purge and reinstall the Nvidia related packages as described here.

Alternatively, as a quick (and dirty) workaround, remove the nvidia package and install nvidia-dkms instead. Remember to also install the kernel headers packages according to your kernel (e.g., linux-headers). Then reboot and reinstall LoL.