command line interface to manage VALORANT skins

Overview

A PROPER RELEASE IS COMING SOON, IF YOU KNOW HOW TO USE PYTHON YOU CAN USE IT NOW!

valorant skin manager command line interface

simple command line interface to manage valorant skins w/ a skin randomizer

skin.cli.mp4

things left to do before v1 release

  • onboarding experience (set region, tutorial, etc)
  • config command
    • set refresh interval
    • set region
    • reset/regen skin inventory (coming in a future update after v1 probably)
  • loadout command should print each gun with its skin tier level color instead of all green
  • write docs

full documentation coming soon, but just install the packages in requirements.txt and run main.py

Commands

  • randomize - randomizes your skins manually (will still automatically happen after each match)
  • modify - modify the skins to be randomized (use arrow keys and enter to select)
  • set - manually set a skin
  • exit
Comments
  • json.decoder.JSONDecodeError: Expecting value: line 2 column 1 (char 1)

    json.decoder.JSONDecodeError: Expecting value: line 2 column 1 (char 1)

    Traceback (most recent call last):
      File "main.py", line 6, in <module>
        from src.cli.command_prompt import Prompt
      File "/mnt/e/Programs/gitrepos/valorant-skin-cli/src/cli/command_prompt.py", line 18, in <module>
        from .validator import Command_Validator
      File "/mnt/e/Programs/gitrepos/valorant-skin-cli/src/cli/validator.py", line 4, in <module>
        commands = Completer.generate_completer_dict()
      File "/mnt/e/Programs/gitrepos/valorant-skin-cli/src/cli/completer_generator.py", line 19, in generate_completer_dict
        skin_data = Loader.fetch_skin_data()
      File "/mnt/e/Programs/gitrepos/valorant-skin-cli/src/flair_loader/skin_loader.py", line 217, in fetch_skin_data
        return json.load(f)
      File "/usr/lib/python3.8/json/__init__.py", line 293, in load
        return loads(fp.read(),
      File "/usr/lib/python3.8/json/__init__.py", line 357, in loads
        return _default_decoder.decode(s)
      File "/usr/lib/python3.8/json/decoder.py", line 337, in decode
        obj, end = self.raw_decode(s, idx=_w(s, 0).end())
      File "/usr/lib/python3.8/json/decoder.py", line 355, in raw_decode
        raise JSONDecodeError("Expecting value", s, err.value) from None
    json.decoder.JSONDecodeError: Expecting value: line 2 column 1 (char 1)
    
    opened by axsddlr 20
  • Skins are not getting detected and 'NoneType' object is not iterable

    Skins are not getting detected and 'NoneType' object is not iterable

    Running main.py has the program working fine, but when I select randomize I am told that

    Exception in thread Thread-2:
    Traceback (most recent call last):
      File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.1520.0_x64__qbz5n2kfra8p0\lib\threading.py", line 954, in _bootstrap_inner
        self.run()
      File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.1520.0_x64__qbz5n2kfra8p0\lib\threading.py", line 892, in run
        self._target(*self._args, **self._kwargs)
      File "F:\valorant-skin-cli-master\valorant-skin-cli-master\src\cli\command_prompt.py", line 52, in main_loop
        self.skin_manager.randomize_skins()
      File "F:\valorant-skin-cli-master\valorant-skin-cli-master\src\flair_management\skin_manager\skin_manager.py", line 90, in randomize_skins
        Randomize(self)
      File "F:\valorant-skin-cli-master\valorant-skin-cli-master\src\flair_management\skin_manager\randomizer.py", line 15, in __init__
        for weapon in loadout['Guns']:
    TypeError: 'NoneType' object is not iterable
    

    I have installed all packages in requirements.txt, and am running main.py. When I run main.py in the command prompt I am not getting the confirmation message that skins have been loaded, and when I check my skins I see that none of them have been detected. The json file in which skin data is stored is not getting updated and I believe this is the reason why skins are not getting detected.

    Python 3.9.5 and pip 21.1.3

    opened by adityas-31 6
  • IndexError: list index out of range

    IndexError: list index out of range

    Traceback (most recent call last):
      File "C:\Users\MyName\Downloads\valorant-skin-cli-master\valorant-skin-cli-master\main.py", line 50, in <module>
        Loader.generate_skin_data(client)
      File "C:\Users\MyName\Downloads\valorant-skin-cli-master\valorant-skin-cli-master\src\flair_loader\skin_loader.py", line 176, in generate_skin_data
        weapon_data["skins"][skin_uuid]["chromas"][list(weapon_data["skins"][skin_uuid]["chromas"].keys())[-1]]['enabled'] = True
    IndexError: list index out of range
    

    Using Python 3.9 if that helps, requirements installed without an issue.

    Not sure why I'm getting this error, not familiar enough with python to discern it.

    opened by ThatMusicBot 4
  • Updated README.MD

    Updated README.MD

    • Added FAQ and Current Features sections
    • Moved some sections around
    • Various formatting changes
    • Updated Getting Started section (formally Installation)

    Because Colin asked

    opened by Soneliem 3
  • Edge reports 1.1.0 release as containing a virus, preventing download

    Edge reports 1.1.0 release as containing a virus, preventing download

    No suggestion on the way forward for this one, not sure what's tripping it here.

    image

    winver: 20H2 19042.1110 Edge ver: 92.0.902.67 (Official build) (64-bit)

    help wanted good first issue 
    opened by PPatBoyd 3
  • Modified Levels for Melee level reset when relaunching CLI

    Modified Levels for Melee level reset when relaunching CLI

    I have the Prime 2.0 Karambit and I much prefer the level 1 base equip. When I

    • Modify/Melee/Prime 2.0/Level 2 disabled
    • Randomize This works properly

    But when relaunching Valorant/CLI, the level 2 animation for the skin get's re-enabled

    opened by RaySoyama 3
  • Setting Prime Karambit animation level.

    Setting Prime Karambit animation level.

    On the latest version (1.0.3), when using the set command into the console to change the Prime Karambit level, a bug occurs where It does not seem able to identify the level 1 animation as a valid command, I even pasted the exact command prior to this version without success.

    I'm not sure if it affects other melees or it's something specific to the Prime Karambit as it happens to be my only knife with 2 animations, but in version 1.0.2 it worked fine.

    opened by lucasvhol 3
  • [Feature Request] Skin / Buddy combos

    [Feature Request] Skin / Buddy combos

    I would love a way to tell the randomizer to change to a specific buddy / set of buddies when a skin is changed. ie if I get the purple Ruination Phantom, I want to be able to tell the randomizer to pick from a set of buddies that match that skin. Dimensional fragment, Reaver, or Soul Capsule.

    Could look something like this in the modify menu [EXC] Ruination Phantom (4 levels, 2 chromas, 3 buddies)

    enhancement 
    opened by Lorphex 2
  • When using

    When using "enable all skins/chromas" in the modify setting, the changes do not save

    I added a video of the bug occurring.

    The settings to "Enable all skins/chromas" doesn't save properly

    https://user-images.githubusercontent.com/42445829/131595601-f74cd92a-7f7c-40de-81be-5d3e642a4111.mov

    completed and testing 
    opened by RaySoyama 2
  • Invalid Region (NA)

    Invalid Region (NA)

    the program encountered an error; please create an issue with the traceback below if this problem persists Traceback (most recent call last): File "main.py", line 28, in <module> File "src\startup.py", line 44, in run File "valclient\client.py", line 56, in __init__ ValueError: Invalid region, valid regions are: ['na', 'eu', 'latam', 'br', 'ap', 'kr', 'pbe'] press enter to exit...

    Ever since updating to v1.2.0 I've been getting this error on the first launch. I don't have a chance to manually select my region. This message is the first thing I see.

    bug 
    opened by Lorphex 2
  • [Design]

    [Design] "randomize" command randomizes both skins and buddies, even though buddy_randomizer disabled in config

    I'm not sure if this is intended behavior, since personally speaking, I'm only using the skin-cli for the skins, not the buddies.

    I would hope running "randomize" only randomizes skins, and then if you add a parameter such as "all", or "buddies", it will randomize those.

    Having the default randomize behavior be only skins for 9 releases, only for it to change is jarring.

    Also whats does the "buddy_randomizer" bool do?

    enhancement 
    opened by RaySoyama 2
  • Skin levels not working

    Skin levels not working

    This happens a lot, for example the elderflame vandal in the skin shuffle it usually sets the vfx level to 2 instead of level 4. This happens with my oni phantom and my g.u.n spectre. This doesn't happen with my rgx vandal and both ruination phantom and spectre. I just got the glitchpop vandal so im hoping it doesn't do the same /:

    opened by amatsu666 0
  • Not an issue, just a question

    Not an issue, just a question

    Are you able to link buddies with skins? I have a red classic skin that i want a red buddy connected to, but a green skin i eant a green buddy connected to. If this isnt possible I think it would be a great addition!

    enhancement 
    opened by ReddHoodie 1
Releases(v1.2.3)
  • v1.2.3(Jan 28, 2022)

    Discord

    Changelog

    • added new config option
      • skin_randomizer > prevent_repeats: prevents getting the same skin multiple times in a row if more than one skin is enabled for the weapon
    • made randomize command clearer (#48)
      • randomize will only randomize skins if config > skin_randomizer > enabled is true, same with buddies (config > buddy_randomizer > enabled)
        • can override this with randomize skins or randomize buddies

    if you encounter any bugs, create an issue if you have suggestions or want to contribute, open a pull request

    read the wiki!

    Full Changelog: https://github.com/colinhartigan/valorant-skin-cli/compare/v1.2.2...v1.2.3

    Source code(tar.gz)
    Source code(zip)
    valorant-skin-cli.exe(11.84 MB)
  • v1.2.2(Sep 11, 2021)

    Discord

    Changelog

    • fixed bug where buddy randomizer wouldn't work if you don't have enough buddies for each gun
    • buddy randomizer will now randomize all your buddies until you don't have any more to apply to a weapon
      • there was a bug where it wouldn't work at all if you don't have enough buddies for each weapon
    • fixed bug where you couldn't enable/disable all skins for melee (#53)
    • fixed bug where having a duplicate of a spray equipped would cause the app to crash when running loadout

    if you encounter any bugs, create an issue if you have suggestions or want to contribute, open a pull request

    read the wiki!

    Source code(tar.gz)
    Source code(zip)
    valorant-skin-cli.exe(11.81 MB)
  • v1.2.1(Sep 2, 2021)

    Discord

    Changelog

    • fixed the bug where randomizer pool preferences wouldn't save when using the enable/disable all skins/chromas option
    • onboarding improvements
      • now prompts user asking if they want to use skin/buddy randomizer (this can be changed later in `config > skin_randomizer/buddy_randomizer)
      • if user owns upgraded prime karambit, they will get a prompt asking if they want to downgrade and equip it

    if you encounter any bugs, create an issue if you have suggestions or want to contribute, open a pull request

    read the wiki!

    Source code(tar.gz)
    Source code(zip)
    valorant-skin-cli.exe(11.80 MB)
  • v1.2.0(Aug 19, 2021)

    Discord

    Changelog

    • buddy randomizer
      • randomizes buddy for each gun
      • currently cant change which buddies are in the pool from the cli (coming soon™)
      • can enable/disable with config > buddy_randomizer > enabled
    • changed setting to enable/disable skin randomizer to config > skin_randomizer > enabled
    • randomize command has different functionality
      • run randomize to randomize both skins and buddies
      • run randomize skins to only randomize skins
      • run randomize buddies to only randomize buddies
    • skin randomizer weights
      • run weights to modify each skin's weight per weapon, weights can be set to an arbitrary scale and if they are equal, the probability is equal
        • ex. setting weights to 5, 5, and 500 for 3 skins for a weapon would result in a .9%, .9%, and 98% chance for each skin to be selected, respectively
      • weights are set to 1 by default for equal probability
      • weapons will only appear in this menu if they have more than 1 skin in the randomizer pool
    • refactored some of the code for the randomizer/weights modification menus for efficiency

    if you encounter any bugs, create an issue if you have suggestions or want to contribute, open a pull request

    read the wiki!

    Source code(tar.gz)
    Source code(zip)
    valorant-skin-cli.exe(11.80 MB)
  • v1.1.0(Jul 31, 2021)

    Discord

    Changelog

    • fixed region autodetecting sometimes not working
    • fixed behavior where skincli would force the highest level to be enabled in randomizer pool (#36) on startup
    • improved loadout print to show buddy/level/chroma and changed text colors to match content tiers
    • loadouts!
      • loadout: show currently equipped loadout
        • if your loadout looks weird expand the window horizontally https://streamable.com/y8ym8g
      • loadout create: create a loadout
      • loadout equip [loadoutname]: equip a loadout
      • loadout preview [loadoutname]: preview a loadout
      • loadout delete [loadoutname]: delete a loadout
      • might want to disable the randomizer so your skins don't get randomized each game while you're using a loadout (config > skin_manager > randomize_after_each_game)
    • added confirmation when resetting

    if you encounter any bugs, create an issue if you have suggestions or want to contribute, open a pull request

    read the wiki!

    Source code(tar.gz)
    Source code(zip)
    valorant-skin-cli.exe(11.51 MB)
  • v1.0.7(Jul 22, 2021)

  • v1.0.6(Jul 19, 2021)

  • v1.0.5(Jul 18, 2021)

  • v1.0.4(Jul 13, 2021)

  • v1.0.3(Jul 11, 2021)

  • v1.0.2(Jul 11, 2021)

  • v1.0.1(Jul 9, 2021)

  • v1.0(Jul 6, 2021)

Owner
colinh
17 y/o full-stack developer
colinh
Wordle helper: help you print posible 5-character words based on you input

Wordle Helper This program help you print posible 5-character words based on you

Gwan Thanakrit Juthamongkhon 4 Jan 19, 2022
Play Wordle Bot - Wordle Bot written in python

Wordle Bot A Bot written in python with a CL Interface to guess adn solve Wordle

Prashant 1 Feb 25, 2022
Python3 parser for Apple's crash reports

pyCrashReport in intended for analyzing crash reports from Apple devices into a clearer view, without all the thread listing and loaded images, just the actual data you really need to debug the probl

7 Aug 19, 2022
Booky - A command line utility for bookmarking files on your terminal!

Booky A command line utility for bookmarking files for quick access With it you can: Bookmark and delete your (aliases of) files at demand Launch them

Pran 1 Sep 11, 2022
A supercharged Git/GitHub command line interface (CLI)

A supercharged Git/GitHub command line interface (CLI).

Donne Martin 7.4k Jan 07, 2023
Custom 64 bit shellcode encoder that evades detection and removes some common badchars (\x00\x0a\x0d\x20)

x64-shellcode-encoder Custom 64 bit shellcode encoder that evades detection and removes some common badchars (\x00\x0a\x0d\x20) Usage Using a generato

Cole Houston 2 Jan 26, 2022
A command-line based, minimal torrent streaming client made using Python and Webtorrent-cli.

ABOUT A command-line based, minimal torrent streaming client made using Python and Webtorrent-cli. Installation pip install -r requirements.txt It use

Janardon Hazarika 17 Dec 11, 2022
Easily handle day to day CLI operation via Python instead of regular Bash programs.

pz Ever wished to use Python in Bash? Would you choose the Python syntax over sed, awk, ...? Should you exactly know what command would you use in Pyt

CZ.NIC 697 Jan 03, 2023
A Simple Python CLI Lockpicking Tool

Cryptex a simple CLI lockpicking tool What can it do: Encode / Decode Hex Encode / Decode Base64 Break Randomly :D Requirements: Python3 Linux as your

Alex Kollar 23 Jul 04, 2022
This CLI give the possibility to do a queries in Star Wars API and returns a JSON in a terminal.

Star Wars CLI (swcli) This CLI give the possibility to do a queries in Star Wars API and returns a JSON in a terminal. Install $ pip install swcli Qu

Pery Lemke 5 Nov 05, 2021
This is a CLI utility that allows you to view RedFlagDeals.com on the command line.

RFD Description Motivation Installation Usage View Hot Deals View and Sort Hot Deals Search Advanced View Posts Shell Completion bash zsh Description

Dave G 8 Nov 29, 2022
⚙ A lightweight command line interface library for creating commands.

⚙ A lightweight command line interface library for creating cli commands. About | Installation | Usage | Features | Contributors | License About Next:

Serum 16 Sep 25, 2022
A CLI for advanced management of your notes with simple commands

PyNoteManager This is a CLI for advanced management of your notes with simple co

3 Dec 30, 2021
A terminal utility to sort image files based on their characteristics.

About A terminal utility to sort image files based on their characteristics. Motivation This program was developed after I've realized that I had too

José Ferreira 1 Dec 10, 2022
Quo is a Python based toolkit for writing Command-Line Interface(CLI) applications.

Quo is a Python based toolkit for writing Command-Line Interface(CLI) applications. Quo is making headway towards composing speedy and orderly CLI applications while forestalling any disappointments

Secretum Inc. 16 Oct 15, 2022
Color preview command-line tool written in python

Color preview command-line tool written in python

Arnau 1 Dec 27, 2021
Apple Silicon 'top' CLI

asitop pip install asitop What A nvtop/htop style/inspired command line tool for Apple Silicon (aka M1) Macs. Note that it requires sudo to run due to

Timothy Liu 1.2k Dec 31, 2022
Key-control - A tool for add keys to your Termux app

Key-Control Is a tool for add keys to your Termux app. Cara Penginstalan $ pkg u

Beereva.id 1 Feb 14, 2022
Pymongo based CLI client, to run operation on existing databases and collections

Mongodb-Operations-Console Pymongo based CLI client, to run operation on existing databases and collections Program developed by Gustavo Wydler Azuaga

Gus 1 Dec 01, 2021
Command line tool to automate transforming the effects of one color profile to another, possibly more standard one.

Finished rendering the frames of that animation, and now the colors look washed out and ugly? This terminal program will solve exactly that.

Eric Xue 1 Jan 26, 2022