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
A CLI for creating styled-components for React projects quickly

new-component Ian Cleary (iancleary) Description Welcome! This is a CLI for creating styled-components for React projects quickly. Note: I've rewrote

Ian Cleary (he/him/his) 1 Feb 15, 2022
A Python-based Wordle solver and CLI player

Wordle A Python-based Wordle solver and CLI player This was created using Python 3.9.7. SPOILER ALERT: the data directory contains spoilers for upcomi

Will Fitzgerald 1 Jul 24, 2022
spade is the next-generation networking command line tool.

spade is the next-generation networking command line tool. Say goodbye to the likes of dig, ping and traceroute with more accessible, more informative and prettier output.

Vivaan Verma 5 Jan 28, 2022
GetRepo-py is a command line client that queries GitHub API and searches repositories by given arguments

GetRepo-py is a command line client that queries GitHub API and searches repositories by given arguments

Davidcin 3 Feb 14, 2022
A curated list of awesome things related to Textual

Awesome Textual | A curated list of awesome things related to Textual. Textual is a TUI (Text User Interface) framework for Python inspired by modern

Marcelo Trylesinski 5 May 08, 2022
Color preview command-line tool written in python

Color preview command-line tool written in python

Arnau 1 Dec 27, 2021
The easiest way to create beautiful CLI for your programs.

The Yandere is a program written in Python3, allowing you to create your own beautiful CLI tool.

Billy 31 Dec 20, 2022
RSS reader client for CLI (Command Line Interface),

rReader is RSS reader client for CLI(Command Line Interface)

Lee JunHaeng 10 Dec 24, 2022
The Pythone Script will generate a (.)sh file with reverse shell codes then you can execute the script on the target

Pythone Script will generate a (.)sh file with reverse shell codes then you can execute the script on the targetPythone Script will generate a (.)sh file with reverse shell codes then you can execute

Boy From Future 15 Sep 16, 2022
A webmining CLI tool & library for python.

minet is a webmining command line tool & library for python (= 3.6) that can be used to collect and extract data from a large variety of web sources

médialab Sciences Po 165 Dec 17, 2022
telescope.nvim is a highly extendable fuzzy finder over lists.

telescope.nvim is a highly extendable fuzzy finder over lists. Built on the latest awesome features from neovim core. Telescope is centered around modularity, allowing for easy customization.

nvim-telescope 8.4k Jan 05, 2023
A simple python implementation of a reverse shell

llehs A python implementation of a reverse shell. Note for contributors The project is open for contributions and is hacktoberfest registered! llehs u

Archisman Ghosh 2 Jul 05, 2022
Command Line Manager + Interactive Shell for Python Projects

Manage Command Line Manager + Interactive Shell for Python Projects

Python Manage 123 Aug 28, 2022
Regis-ltmpt-auto - Program register ltmpt 2022 automatis

LTMPT Register Otomatis 2022 Program register ltmpt 2022 automatis dibuat untuk

1 Jan 13, 2022
EODAG is a command line tool and a plugin-oriented Python framework for searching, aggregating results and downloading remote sensed images while offering a unified API for data access regardless of the data provider

EODAG (Earth Observation Data Access Gateway) is a command line tool and a plugin-oriented Python framework for searching, aggregating results and downloading remote sensed images while offering a un

CS GROUP 205 Jan 03, 2023
LSD (Linux Spotify Downloader) is a command line tool for downloading or rather recording content on Spotify.

LSD (Linux Spotify Downloader) is a command line tool for downloading or rather recording content on Spotify.

Jannis Zahn 7 Jun 21, 2022
🌌 A Python script to generate blog banners from command line.

Auto Blog Banner Generator A Python script to generate blog banners. This script is used at RavSam. The following image is an example of the blog bann

RavSam 10 Sep 20, 2022
A minimal todo list for your terminal.

todo A minimal todo list for your terminal. Installation Run the following command. pip install git+https://github.com/piero-vic/todo.git Usage todo

Piero Lescano 7 Aug 08, 2022
Interactive Redis: A Terminal Client for Redis with AutoCompletion and Syntax Highlighting.

Interactive Redis: A Cli for Redis with AutoCompletion and Syntax Highlighting. IRedis is a terminal client for redis with auto-completion and syntax

2.2k Dec 29, 2022
Patool is a portable command line archive file manager

Patool Patool is an archive file manager. Various archive formats can be created, extracted, tested, listed, searched, repacked and compared with pato

318 Jan 04, 2023