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
Tic-Tac-Toe Game in python3 Tkinter

Tic Tac Toe Tic-Tac-Toe Game in python3 Tkinter About: Tic Tac Toe or Noughts and Crosses as called in British is a pencil and paper game for two play

Sai Swarup Yakkala 5 Nov 06, 2022
Simple Covid-19 shooter game in python.

Covid_game 🍹 Simple Single Player Covid Game Using Python. 🍹 Has amazing background music theme. 😄 Game Instructions: Initial Health is 5, try to s

Tanya Yadav 2 Aug 05, 2022
Minecraft-Bedrock-Modpack-Maker - Simple tool to combine multiple addons into one. Not finished

Minecraft-Bedrock-Modpack-Maker Simple tool to combine multiple addons into one. Not finished! Any contributing is welcome. How to use: Move all .mcpa

MivianCoin 1 Jan 06, 2022
Tic tac toe game developed by naman in python

TIC TAC TOE GAME DEVELOPED BY NAMAN IN PYTHON . IT USES MINMAX ALGORITHM TO COMPETE IN DIFFICULTY MODE

Naman Anand 4 Jun 24, 2022
A bot that deletes any embeds sent by a tropical webhook containing hex #000000 rancher's boots

tropical-webhook-cleanup how to use download the source code as zip get your discord bot token from https://discord.com/developers/applications put yo

carreb 0 Nov 25, 2022
3D online shooter written on Panda3D 1.10.10 and Python 3.10.1

на русском itch.io page Droid Game 3D This is a fresh game that was developed using the Panda3D game engine and Python language in the PyCharm IDE (I

Marcus Kemaul 5 Jun 04, 2022
游戏中按TAB键查看所有玩家分数的小程序

DDNet-show-points-in-game DDRaceNetwork 游戏中按TAB键查看所有玩家分数的小程序

3 Oct 13, 2022
Projeto Flappy Bird temática doom, projeto python e pygame

Doom-Bird Tecnologias usadas Requisitos para inicializar o jogo: Python faça o download em: https://www.python.org/downloads/ Após instalar o Python d

João Guilherme 1 Dec 08, 2021
Web frontend to play games from 2008 Miniclip - uses Ruffle for playback

cliparchive Description A set of scripts to download games from the Wayback Machine's archive of Miniclip.com, and a Web frontend to play them using r

Simon Garrelou 3 Dec 09, 2022
Blackjack Game made using Python

Blackjack Game made using Python Blackjack is a popular card game played in most of the casino.This is an intuition to replicate the same card game us

SUHASJAGADISH 1 Nov 28, 2021
A Simple Scissor Paper Rock Game On Python Using Pygame.

Scissor Paper Stone Game Using Pygame This is a simple GUI based game made on pygame python. Installation Run code on your machine: git clone https:

Dipin Adhikari 0 Mar 21, 2022
Adventure-Game - Adventure Game which is created using Python

Adventure Game 🌇 This is a Adventure Game which is created using Python. Featur

ArinjoyTheDev 1 Mar 19, 2022
Utility to find games owned by all (or at least some) of the passed players.

SteamCommonGameFinder Utility to find games that are owned by all (or at least some) of the players you pass into this programm. You can already find

Daniel O'Grady 4 Jan 04, 2022
A fun discord bot for music, mini games, admin controls, economy, ai chatbot and levelling system

A fun discord bot for music, mini games, admin controls, economy, ai chatbot and levelling system. This bot was specially made for Dspark discord server.

2 Aug 30, 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
Repository with console python implementation of Simple Artificial Life (simplified MAS) and Conway's game of life

artificial-life-game Repository with console python implementation of Simple Artificial Life (simplified MAS) and Conway's game of life Installation c

Vladislav 6 Nov 14, 2022
Ghdl-interactive-sim - Interactive GHDL simulation of a VHDL adder using Python, Cocotb, and pygame

GHDL Interactive Simulation This is an interactive test bench for a simple VHDL adder. It uses GHDL to elaborate/run the simulation. It is coded in Py

Chuck Benedict 2 Aug 11, 2022
🥕Try and keep da carrot alive or else . . .

Carrot 🥕 Warning 💥 : I am not a botanist. I do not study carrots or plant life. I am a noob programmer :P. So don't belive anything you see in this

1 Jan 03, 2022
Nerdle - a nerd's approach to solving Wordle

Nerdle - a nerd's approach to solving Wordle

4 Nov 28, 2022
A solution program of 24. game.

A solution program of 24. game.

1 Dec 12, 2022