- Download Git from https://git-scm.com.
- Run the installer and follow the setup wizard with default settings.
- Open Command Prompt:
- Press
Win + R
, typecmd
, and press Enter.
- Press
- Navigate to the folder where you want to save the project:
Replace
cd <desired-folder-path>
<desired-folder-path>
with the folder path where you want to clone the project. - Clone the repository:
git clone https://github.com/gabetucker2/lolMatchupGenerator.git
- Change to the project folder:
cd lolMatchupGenerator
- Visit https://www.python.org/downloads/ and download the latest version of Python.
- Run the installer.
- Important: Ensure you check the box for "Add Python to PATH" during the installation process.
- Complete the installation by following the wizard prompts.
- Open Command Prompt.
- Type the following command to check the Python version:
If installed correctly, you should see the version number (e.g.,
python --version
Python 3.x.x
).
- Open the
config.json
file in the project folder. - Adjust the settings to your preference, such as adding champions to the
exclude_champions
oronly_include_champions
lists if you don't want certain champions to be included, or if you only want certain champions to be included. Ifonly_include_champions
has at least one element, the script will ignoreexclude_champions
.
- Double-click the
run.bat
file in the project folder. - A Command Prompt will open, displaying the best top lane champ pools based on the provided data.
- A heatmap will open, visualizing all champ matchup correlations.
Email [email protected] with any questions!
The League of Legends Top Lane Matchup Generator helps you build an optimized champion pool by minimizing counterpicks while maximizing coverage for top lane matchups.
- Enlarge image here: Enlarged image
- Winrate Data Source: Extracted from www.op.gg
- Patch Version: 14.23
- Rank: Emerald +
This heatmap is meta-agnostic, meaning that how meta a champion is has no impact on the champion's matchup correlations with other champs.
Ambessa and Yone have a 0.76
correlation. Since this correlation coefficient is so close to 1
, this means they tend to counter similar champs, and they tend to be countered by similar champs. Therefore, Ambessa and Yone would be bad champs to have in the same champ pool.
Conversely, Warwick and Dr. Mundo have a -0.27
correlation. Since this correlation coefficient is much closer to -1
than most other correlation coefficients, this means they tend to counter different champs, and they tend to be countered by different champs. Therefore, Warwick and Dr. Mundo would be exceptional champs to have in the same champ pool.
- K'Sante (best blind pick in top lane, worst counterpick in top lane)
- Gnar
- Aatrox
- Volibear
- Aurora
- Renekton
- Gragas
- Urgot
- Sett
- Ornn
- Shen
- Darius
- Pantheon
- Ambessa
- Fiora
- Galio (worst blind pick in top lane, best counterpick in top lane)
- Vayne
- Trundle
- Wukong
- Udyr
- Heimerdinger
- Quinn
- Malphite
- Tryndamere
- Cassiopeia
- Rumble
- Irelia
- Yorick
- Akali
- Ryze
- Smolder (best average counterpick addition in top lane)
- Dr. Mundo
- Cassiopeia
- Akali
- Yorick
- Heimerdinger
- Fiora
- Vayne
- Galio
- Urgot
- Olaf
- Volibear
- Swain
- Singed
- Ryze
- Gragas (worst average counterpick addition in top lane)
- Kled
- Camille
- Jax
- Ambessa
- Aatrox
- Gangplank
- Poppy
- Tahm Kench
- Mordekaiser
- Irelia
- Gnar
- Tryndamere
- Darius
- Garen
- Dr. Mundo / Smolder (best two-trick combo in the game)
- Cassiopeia / Dr. Mundo
- Akali / Smolder
- Cassiopeia / Dr. Mundo
- Smolder / Yorick
The rest of this dataset is unfortunately not very interesting because the 15 champs most likely to be strong counterpick additions for your champ pool list are repeating so frequently. To solve this and make a more interesting best two-trick list, let's add a rule saying that no champs can be in more than N pools. This will add more variation:
- Dr. Mundo / Smolder
- Akali / Cassiopeia
- Heimerdinger / Yorick
- Fiora / Vayne
- Galio / Urgot
- Olaf / Volibear
- Singed / Swain
- Ryze / Vladimir
- Nasus / Ornn
- Cho'Gath / Illaoi
- Malphite / Maoki
- Aurora / Udyr
- Warwick / Yone
- K'Sante / Trundle
- Kennen / Shen
- Dr. Mundo / Smolder
- Cassiopeia / Smolder
- Cassiopeia / Dr. Mundo
- Akali / Yorick
- Akali / Heimerdinger
- Heimerdinger / Yorick
- Fiora / Vayne
- Fiora / Galio
- Galio / Vayne
- Olaf / Urgot
- Urgot / Volibear
- Olaf / Volibear
- Singed / Swain
- Ryze / Swain
- Ryze / Singed
- Cassiopeia / Dr. Mundo / Smolder
- Akali / Heimerdinger / Yorick
- Fiora / Galio / Vayne
- Olaf / Urgot / Volibear
- Ryze / Singed / Swain
- Nasus / Ornn / Vladimir
- Cho'Gath / Illaoi / Malphite
- Aurora / Maokai / Udyr
- Trundle / Warwick / Yone
- K'Sante / Kennen / Shen
- Rumble / Sion / Teemo
- Gwen / Kayle / Sylas
- Quinn / Riven / Yasuo
- Pantheon / Renekton / Sett
- Jayce / Wukong / Zac
- Cassiopeia / Dr. Mundo / Smolder
- Akali / Dr. Mundo / Smolder
- Akali / Cassiopeia / Yorick
- Fiora / Heimerdinger / Yorick
- Fiora / Heimerdinger / Vayne
- Galio / Urgot / Vayne
- Galio / Olaf / Urgot
- Olaf / Swain / Volibear
- Singed / Swain / Volibear
- Ryze / Singed / Vladimir
- Ornn / Ryze / Vladimir
- Cho'Gath / Nasus / Ornn
- Cho'Gath / Illaoi / Nasus
- Illaoi / Malphite / Maokai
- Malphite / Maokai / Udyr
- Akali / Cassiopeia / Dr. Mundo / Smolder
- Fiora / Heimerdinger / Vayne / Yorick
- Galio / Olaf / Urgot / Volibear
- Ryze / Singed / Swain / Vladimir
- Cho'Gath / Illaoi / Nasus / Ornn
- Aurora / Malphite / Maokai / Udyr
- K'Sante / Trundle / Warwick / Yone
- Kennen / Rumble / Shen / Teemo
- Gwen / Kayle / Sion / Sylas
- Quinn / Renekton / Riven / Yasuo
- Jayce / Pantheon / Sett / Wukong
- Darius / Garen / Tryndamere / Zac
- Gnar / Irelia / Mordekaiser / Tahm Kench
- Aatrox / Ambessa / Gangplank / Poppy
- Camille / Gragas / Jax / Kled
- Akali / Cassiopeia / Dr. Mundo / Smolder
- Cassiopeia / Dr. Mundo / Smolder / Yorick
- Akali / Fiora / Heimerdinger / Yorick
- Fiora / Galio / Heimerdinger / Vayne
- Galio / Olaf / Urgot / Vayne
- Olaf / Swain / Urgot / Volibear
- Ryze / Singed / Swain / Volibear
- Ornn / Ryze / Singed / Vladimir
- Cho'Gath / Nasus / Ornn / Vladimir
- Cho'Gath / Illaoi / Malphite / Nasus
- Illaoi / Malphite / Maokai / Udyr
- Aurora / Maokai / Udyr / Warwick
- Aurora / Trundle / Warwick / Yone
- K'Sante / Shen / Trundle / Yone
- K'Sante / Kennen / Shen / Teemo
We can take the standard deviation of each champion to determine which champions are the best blind picks and the worst blind picks. A higher standard deviation means it's a worse blind pick since that champion has a higher probability of being counterpicked. The inverse is true for how strong each champion is as a counterpick. Note that champions with a lower play rate in the top lane (e.g., Ryze) may skew results.
Likewise, we can calculate the average of each champion's correlations in our heatmap to determine how good a champion is as a counterpick addition to your champion pool. This is how we generate the strength of champion pools: by finding the lowest possible sum of each champion's correlations with one another in terms of who they counter.