View your VALORANT performance in different areas of every map in the game!

Overview



Valorant-Zone-Stats

Inspired by Leetify's awesome Map Zones Tool for CS:GO

A simple desktop program to view your VALORANT performance in different areas across all maps!

map page

Quick Links

Installation

Download the exe from the latest release, then double-click to run the program!

Alternatively, download the zip in the release. Extract it to anywhere you would like, then run valorant-zone-stats.exe.

Info: Application data is stored in your APPDATA folder, typically C:\Users\USERNAME\AppData\Roaming\Valorant-Zone-Stats.

Explanations for each file:

  • matches.db: Stores your past matches for analysis, since Riot does not provide all past matches.
  • storage.json: Keeps track of matches the program should ignore (e.g. deathmatch) to reduce loading time.
  • settings.ini: Stores your settings, currently only your region.

Usage

Make sure the program is running on a computer where you are logged into VALORANT. Click on the "Fetch User" button, then click on the "Fetch Matches" button. This may take a while the first time, since it will be grabbing your recent matches from VALORANT. If matches do not appear, try changing your region (which is automatically detected the first time you run the program.

The regions are: NA (North America), AP (Asia Pacific), EU (Europe), KO (Korea), BR (Brazil), LATAM (Latin America)

home page

Once a list of your recent matches is populated, navigate to the "Map" tab on the top left. From there, you can choose the map you would like to see your zone stats in, as well as filter by attacker/defender/both side.

map page

You are also able to click into each zone to see the specific kills/deaths that occurred. You can also zoom with your scrollwheel and pan by dragging on the map.

zone kills

Icon Legend

  • Solid Green: Position where you killed someone
  • Empty Green: Position of the victim
  • Solid Red: Position where you died
  • Empty Red: Position of the killer

Note that you will need to fetch matches again when you open the program again in the future. It should be a bit faster since all your older matches are already stored on your computer.

Building

Python 3.8.8 was used to develop this program.

Create a virtualenv with the dependencies (listed in requirements.txt), start a terminal in the root directory of the project, activate the virtualenv, then execute run.bat.

To package the program run either build.bat (for a folder) or build_onefile.bat (for a single exe). Don't forget to activate the virtualenv first!

Credits

TODO

  • Make UI polygons non-rectangular (match the shape of the map)
  • Add more filters for statistics (e.g. per-agent)
  • Improve match list and add statistics for each match
  • Improve color coding for the maps (current it is green if K/D >= 1.0, red otherwise)
  • Potentially remake the map zones
  • Analyze other types of matches (unrated & customs) instead of only competitive
  • Offline mode (without needing VALORANT to be running)

How?

The program uses the same data the careers page gets (scoreboard, timelines, performance). The polygons that form the map zones were handcrafted in Desmos, based on a general idea of the map zones. A small script is used to convert Desmos polygons into a format the code can utilize (namely the Shapely library).

Legal Disclaimer

This project is in no way affiliated with Riot Games. It only uses VALORANT's client API to download matches on behalf of the user.

Comments
  • Fracture Map Added

    Fracture Map Added

    Hello fracture:) Most significantly this uses a new way to generate the zones to make it quicker. For adding maps. I added the photoshop file with the template I fed in. The background of it is what I started with. Zone names are the official so renaming always a potential option. Not sure if we want a manual zone across the middle for the ropes as you can kill and be killed on them. Clearly no ability to differentiate when in tunnels vs on top. the x/y multiplier and x/y offset are just the official valorant-api.com values without manual tweaking. They seem quite accurate.

    opened by mitchcapper 2
  • Create logs directory at startup for first time use

    Create logs directory at startup for first time use

    When running the program for the first time, the program tries to use logging.FileHandler to create the debug.log file in the Valorant-Zone-Stats folder in AppData. The issue is that this folder does not exist when a new user starts the app for the first time. and logging.FileHandler will not create this directory on its own.

    Hence the program crashes with the following error

    FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\<username>\\AppData\\Roaming\\Valorant-Zone-Stats\\debug.log'
    

    I notice that migrate_files tries to create that directory if it does not exist, however it is after the logger is attempted to initialize, hence the required directories are never created.

    Instead of creating the app folder in migrate_files function which is run on module's main method. We can create that folder one time (if does not already exist), right before the logger is loaded, this will ensure that the folder is always present in all cases.

    This PR should fix the above issue and has been tested on my machine.

    bug 
    opened by Ashesh3 1
  • Simplify coordinate calculations

    Simplify coordinate calculations

    Simplify how we calculate coordinates (exact same numbers obtained). Note this also is storing numbers exactly how the official game does. One non-change is the zones in our per map custom config info. Those have the Y value really at 1-y, so when we load in the zones we will just revert the 1-y there.

    Top left would be 45 (so want -45 to cancel it out to 0).

    Coordinates are officially: for x that is left 0 right 1 for y that is top 0 bottom 1

    minus the map zones stored in the json those are y is inverted to top is 1 bottom is 0.

    We don't need to re-run stats because the cached stats only stores the ingame raw coordinates.

    opened by mitchcapper 0
  • Improved an Auth Failure Exception Message

    Improved an Auth Failure Exception Message

    Throw our own exception during the auth flow that is a bit more clear if access_token is not present.
    

    This error is thrown if the riot client is launched but not valorant. We can still fetch matches.

    opened by mitchcapper 0
  • Add Single Match Debugging

    Add Single Match Debugging

    Added Debug constant options to just look at a specific match in the database.
    Can also optionally specify the PUUID to avoid logging in.
    Print zone names on map if debugging too.
    

    Clarified one console message to be more clear as well.

    opened by mitchcapper 0
  • Pearl map addition

    Pearl map addition

    Hey there, when will pearl be added to the map selection? I really, really like this project and I tend to use it often.

    Thanks for all the hard work!

    enhancement 
    opened by JonJaded 1
  • StatsVersion per map

    StatsVersion per map

    Right now there is just a global stats version, works well if you change the stats itself in some way (so all maps need to re-run), which is what it was likely designed for. If you do something like adjust the zones on a map you either have to re-run stats on all matches for all maps or won't get those stats updates for existing matches. I have code so that if a zone is missing in the match stats cache to flag the match for re-running stats. This would allow you to make a minor name change to a zone (or add a new zone) if you wanted to force only the matches for that map to update.

    If the version was per map though you could increase it on a zone update.

    opened by mitchcapper 0
Releases(v2.2.0)
Owner
Louis
"Sometimes you need to scorch everything to the ground, and start over... People are like that, too. They start over. They find a way." :)
Louis
A Minecraft clone written in python and pyglet.

PyCraft A Minecraft clone written in python and pyglet. Running PyCraft To run PyCraft, run the following code: git clone https://github.com/TheWebCra

The WebCrafters 17 Dec 29, 2022
Solution for automation games play-to-earn

Pillow automation used processing images

Luis Eduardo Camilo 1 Jan 19, 2022
Fully functional BlackJack game with a graphical user interface.

BlackJack Welcome to BlackJack! This game is fully functional, with a casino sound package integrated using Pygame, dynamic game logic developed using

Shwetang Desai 2 Jan 10, 2022
Navicella cavallo, gioco 2D stile space shooter

Navicella Cavallo Il miglior gioco in circolazione Navicella cavallo è un gioco 2D basato sullo stile dei giochi space shooter Come installare Navicel

Matteo 6 Jul 03, 2022
A visualization of how much Manchester United fans enjoyed each game from the first half of the 21/22 Premier League season.

Man-Utd-Fan-Satisfaction-Levels-First-19-games A visualization of how much Manchester United fans enjoyed each game from the first half of the 21/22 P

1 Jan 19, 2022
The Turtle Race Game built in Python with Turtle module.

Turtle Race Game The Turtle Race Game built in Python with Turtle module. Installation If you don't have Turtle module on your computer. You can downl

Aytaç Kaşoğlu 1 Nov 09, 2021
Attempts to solve Wordle-like puzzles.

Attempts to solve Wordle-like puzzles.

cotman 1 Feb 14, 2022
Hexagon game. Two players: AI and User. Implemented using Alpha-Beta pruning to find optimal solution for agent.

Hexagon game. Two players: AI and User. Implemented using Alpha-Beta pruning to find optimal solution for agent.

Anton 1 Oct 18, 2021
Inflitator is a classic doom and wolfenstein3D like game made in Python, using the famous PYGAME module.

INFLITATOR Raycaster INFLITATOR is a raycaster made in Python3 with Pygame. It is a game built on top of a simple engine of the same name. An example

Zanvok Corporation 1 Jan 07, 2022
Automates cubemap generation for Source Engine games.

AutoCube Automates cubemap generation for Source Engine games during compile-time. Download: see the release page Installation Using with CompilePal A

5 Feb 18, 2022
AI plays games with python

AI-plays-games- To use it, you first need to create an img file and save the pic

Murat Ali Avcu 7 Oct 16, 2022
Track your favorite minecraft servers' (too bee too tee) queue at any time at your own convenience!

2b2t Queue Monitor Track your favorite minecraft servers' (too bee too tee) queue at any time at your own convenience! Compiled Usage go to https://gi

Addi 1 Feb 05, 2022
Brawl Stars open source server for v20

Laser Scratch Brawl Stars open source server for v20! Implemented Features Battle End Leaderboard Player Profile Lobby Info Menu Notifications Club Wa

TheIke 17 Nov 19, 2022
Open source Board Games Like Tic Tac Toe, Connect 4, Ludo, Snakes and Ladder etc...

Board-Games What to do... Add Board games like Tic Tac Toe, Connect 4, Ludo, Snakes and Ladder etc... How to do... Fork the repo Clone the repo git cl

Bit By Bit 1 Oct 10, 2022
A small fun project to simulate Conway's Game of Life, created in Python.

A small fun project to simulate Conway's Game of Life, created in Python. Conway's Game of Life simulates a grid of cells, where the state of each cell consists of whether the cell is alive or dead.

Harrison Verrios 1 Jun 19, 2022
This is a two player snake game

Trake This is a two player snake game How to play the game There is food and two players. You try to eat food to become large and gain points. Player

Grrub 1 Dec 19, 2021
An asynchronous Minecraft server wrapper written in python3 with asyncio

mark3 (WIP) A modern Minecraft server wrapper written in python3 with asyncio TODO Note: The order of the following checklist doesn't necessarily mean

Colin Andress 7 Jul 29, 2022
pygame is a Free and Open Source python programming language library for making multimedia applications like games built on top of the excellent SDL library. C, Python, Native, OpenGL.

pygame is a Free and Open Source python programming language library for making multimedia applications like games built on top of the excellent SDL library. C, Python, Native, OpenGL.

pygame 5.6k Jan 01, 2023
BitBot - A simple shooter game

BitBot BitBot - A simple shooter game This project can be discontinued anytime I want, as it is not a "MAJOR" project for me. Which Game Engine does i

whmsft 1 Jan 04, 2022
A python script that uses pygame to display fractals.

Pygame-Fractals A python script that uses pygame to display interactive fractals. There are 3 fractals on the script. They can be displayed on the col

michel 2 Feb 09, 2022