Counter-Strike Fantasy Optimiser
Recommending five-player lineups under budget, team and tournament constraints.
Status: Live demo available.
Try the live optimizer →Explore the FISSURE Playground 3 dataset. The app may take a moment to start when idle.
Overview
Picking a Counter-Strike fantasy lineup means balancing player performance, price and tournament constraints. This Python project searches for five-player lineups within a given budget and ranks them using a configurable scoring model.
How it works
1. Prepare the player data
A CSV file provides player names, prices, ratings and team ranks. Optional fields add recent form, tournament seeding, market probabilities and bracket information.
2. Set the rules
Choose a budget, lock specific players and set team requirements. Additional options control bracket balance and whether players from opposing teams in an opening match can appear together. The current implementation allows up to two players per team.
3. Score and search
The optimiser combines player ratings with configurable weights for team rank and optional factors such as recent form and market probabilities. It uses dynamic programming to build candidate lineups while tracking their cost and constraints.
4. Compare lineups
Results include the selected players, total price and model score. Multiple suggested lineups can be returned for comparison. The score is a ranking measure, not a prediction of fantasy points.
Results and evaluation
I used the third-ranked lineup from this run for FISSURE Playground 3 and finished in the top 15% of the overall worldwide event leaderboard.
| Player | Price | Model score |
|---|---|---|
| yuurih | 210,000 | 1.9820 |
| FalleN | 198,000 | 1.8729 |
| NertZ | 208,000 | 1.8266 |
| huNter | 200,000 | 1.7545 |
| venomzera | 184,000 | 1.3703 |
Total price: 1,000,000 / 1,000,000
Total model score: 8.906337, including 0.10 in bonuses for two team stacks.
Settings used for this run
- Team-rank weight: 0.55; market-probability weight: 0.28.
- Recent-form weight: 0.35; form adjustment cap: 0.08.
- Stack bonus: 0.05 per two-player team stack.
- At least two players from each bracket side, A and B.
- Maximum two players per bracket group and per team.
- Maximum one distinct team from each opening matchup.
- Requested output: 40 lineups.
Player scores are rounded for display. These scores express the model's ranking preferences, not predicted fantasy points. This example demonstrates the output; it does not establish predictive accuracy on completed tournaments.
Limitations and next steps
- Recommendations depend on the input data and chosen scoring weights.
- The scoring model does not guarantee real-world fantasy performance.
- Candidate tracking can consume substantial memory, which needs attention before supporting multiple simultaneous users.
- Next steps include performance improvements, evaluation against completed tournaments and a browser interface.