A Streamlit-based application to generate and visualize statistics from Pokémon Showdown user replays.
A web demo is available here!
- Battle Page: Displays statistics about each generation and see the most played Pokémon in each tier
- Player Page: Displays statistics on the most active players in each tier, along with a search bar to find specific players
- Pokémon Page: Displays statistics for the most played Pokémon in each tier, along with their most common moves and usage in battles
Clone the repository:
git clone https://github.com/HolidayOugi/Showdown-ShowerNavigate to the project directory:
cd Showdown-ShowerInstall the required packages:
pip install -r requirements.txtRun the Streamlit app:
streamlit run main.pyBy default, the app looks for local files in the output folder. If none are found, it will download the latest available from this Hugging Face repository.
The formats to analyze can be set by editing the formats.txt file in the input folder. Each line should contain a format name in the form [Gen X] FORMAT.
To generate your own local files, provide .parquet files (one per format) containing replays of Pokémon Showdown battles. Their names must match the format names listed in formats.txt.
The structure of these .parquet files should match that of downloaded replays from the Pokémon Showdown API. A collection of compatible datasets is available here.
If you are starting from scratch, place the .parquet files in the input/parquet folder and run the initialize.py script in the code folder:
cd code
python initialize.pyThis will generate the necessary files in the output folder including:
tiers/: Processed.parquetfiles for each tierplayers/: Player statistics per tier in.parquetformatmatches/: Monthly match statistics per generationgraphs/: Graphs per tier, displayed in the appreplays/: Replay files per Pokémon and formatpokemon.parquet: Overall Pokémon statistics by formatinvalid_pokemon.parquet: List of invalid Pokémon based on the filters ininput/gen_filter
To add new replays to the existing files, you can place the new .parquet files in the input/new_data folder and run the aggregate.py script in the code folder:
cd code
python aggregate.pyThis will merge the new data with the existing statistics in the output folder.
- Metamon Replay Dataset by jakegrigsby
- Pokemon with Stats by christofferms
- PokeAPI Sprites by PokeAPI
All Pokémon-related assets used in this project are the property of Nintendo, Game Freak, and The Pokémon Company. I do not claim ownership of these assets, which are used here for educational and non-commercial purposes only.