A tool to predict CS2 map picks for upcoming matches based on team players' historical match data from FaceIt. It analyzes past matches where the current team composition was present and calculates map preference probabilities.
Warning
This project was built to try and predict ESEA match map picks in less than 2 hours and is not intended to be robust nor accurate. It does not guarantee any correct predictions and should be used for entertainment purposes only.
Important
This tool uses the FaceIt API, and does not implement any handling of eventual API rate limits or errors. A PR to improve error handling and robustness would be welcome.
- Fetches match data and player histories from FaceIt API
- Filters historical matches based on team player presence (configurable percentage)
- Analyzes map preferences from filtered matches
- Supports BO1, BO3, BO5, BOX...
- Provides probability predictions for map picks
- Colorized output for better readability
- Debug mode and match link display options
- Python 3.6 or higher
- FaceIt server side API key (get one from FaceIt Developer Portal)
-
Clone the repository:
git clone https://github.com/bWlrYQ/esea-map-pick-probability cd esea-map-prob -
Install dependencies (preferably in a virtual environment):
pip install -r requirements.txt
-
Copy
.env.exampleto.envand set your FaceIt API key:cp .env.example .env
Edit
.envand set:FACEIT_API_KEY=your_faceit_api_key_here
Run the main script with a FaceIt match ID:
python map-prob.py -i <match_id> -i, --match-id: FaceIt match ID (required, or enter interactively)--debug: Enable debug output--show-links: Display links to historical matches
python map-prob.py -i 1-f101d4d4-5af5-4a4c-a075-fb1369538552 --debug --show-linksThis will:
- Fetch the match data for the given ID
- Retrieve recent match histories for all players on both teams
- Filter matches where at least 80% of the current team players were present
- Analyze map preferences from those matches
- Display map pick probabilities
The tool uses the following defaults:
- Minimum team presence: 80% of players
- Player history limit: 120 matches per player
esea-map-prob/
├── lib/
│ ├── __init__.py
│ ├── faceit_api.py # FaceIt API wrapper
│ └── match_analysis.py # Match filtering and analysis logic
├── map-prob.py # Main script
├── requirements.txt
├── .env
└── README.md
Don't bother, it's a shit project
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
