nyx

The first CODM discrod bot -- cath.exe Template
git clone https://codeberg.org/night0721/nyx
Log | Files | Refs | LICENSE

commit 8927aae39d581dd82350bfe3673702046d8df0ca
parent ea494d7fae8a45d42067fed8c239473543294a41
Author: night0721 <[email protected]>
Date:   Fri, 19 Nov 2021 01:56:42 +0800

v3.4.0 latest update with all slash cmds support

Diffstat:
A.dockerignore | 2++
M.env.example | 8+++-----
D.eslintrc.js | 15---------------
M.github/README.md | 58+++++++++++++++++++++++++++++++++++++---------------------
M.github/changelog.md | 33+++++++++++++++++++++++++++++++--
M.gitignore | 1+
D.jshintrc | 3---
ACODM/builds.js | 110+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ACODM/class.js | 55+++++++++++++++++++++++++++++++++++++++++++++++++++++++
ACODM/damage.js | 118+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ACODM/effects.js | 168+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ACODM/sgrelo.js | 111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ACODM/stats.js | 274+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ADockerfile | 24++++++++++++++++++++++++
MLICENSE | 639++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------
DREADME.md | 95-------------------------------------------------------------------------------
Mapp.json | 62++------------------------------------------------------------
Dbot.js | 50--------------------------------------------------
Aclient/CODMClient.js | 2++
Dclient/Cath.js | 72------------------------------------------------------------------------
Aclient/CodeClient.js | 2++
Aclient/GiveawaysClient.js | 38++++++++++++++++++++++++++++++++++++++
Aclient/NYX.js | 149+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mclient/StarboardClient.js | 4++--
Aclient/URLClient.js | 2++
Acommand/CODM/build.js | 828+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/CODM/class.js | 55+++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/CODM/damage.js | 125+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/CODM/effects.js | 170+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/CODM/perk.js | 196+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/CODM/sgrelo.js | 119+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/CODM/stats.js | 302++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mcommand/Config/premium.js | 27++++++++++++++++-----------
Dcommand/Config/set.js | 220-------------------------------------------------------------------------------
Acommand/Config/settings.js | 537+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mcommand/Economy/bal.js | 17+++++++++--------
Mcommand/Economy/bet.js | 74+++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------
Acommand/Economy/blackjack.js | 304+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/Economy/buy.js | 103+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mcommand/Economy/daily.js | 23++++++++++-------------
Dcommand/Economy/drop.js | 44--------------------------------------------
Acommand/Economy/gift.js | 136+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/Economy/give.js | 72++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/Economy/gun.js | 120+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mcommand/Economy/inv.js | 33++++++++++++++++++++++-----------
Dcommand/Economy/lb.js | 37-------------------------------------
Acommand/Economy/multiplier.js | 44++++++++++++++++++++++++++++++++++++++++++++
Mcommand/Economy/profile.js | 39+++++++++++++++++++++------------------
Mcommand/Economy/rich.js | 16+++++++++-------
Mcommand/Economy/shop.js | 90+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------
Mcommand/Economy/slots.js | 69+++++++++++++++++++++++++++++++++++++++++++++++++--------------------
Acommand/Economy/steal.js | 151++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mcommand/Economy/work.js | 19++++++++++++++++---
Dcommand/Fun/8ball.js | 31-------------------------------
Mcommand/Fun/ascii.js | 13+++++++------
Dcommand/Fun/busted.js | 25-------------------------
Dcommand/Fun/cat.js | 28----------------------------
Mcommand/Fun/choose.js | 4++--
Dcommand/Fun/coinflip.js | 17-----------------
Acommand/Fun/dare.js | 19+++++++++++++++++++
Dcommand/Fun/dino.js | 98-------------------------------------------------------------------------------
Dcommand/Fun/dog.js | 28----------------------------
Dcommand/Fun/drake.js | 31-------------------------------
Dcommand/Fun/ds.js | 24------------------------
Dcommand/Fun/emojify.js | 43-------------------------------------------
Acommand/Fun/fun.js | 130+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mcommand/Fun/hack.js | 64++++++++++++++++++++++++++++++++--------------------------------
Mcommand/Fun/hangman.js | 16+++++++---------
Dcommand/Fun/hug.js | 43-------------------------------------------
Acommand/Fun/image.js | 63+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mcommand/Fun/kiss.js | 6+++---
Dcommand/Fun/meme.js | 28----------------------------
Dcommand/Fun/obama.js | 45---------------------------------------------
Dcommand/Fun/pp.js | 32--------------------------------
Dcommand/Fun/rickroll.js | 22----------------------
Mcommand/Fun/rps.js | 53+++++++++++++++++++++++++++++++----------------------
Mcommand/Fun/ship.js | 10+++++-----
Mcommand/Fun/simprate.js | 12++++--------
Dcommand/Fun/sr.js | 28----------------------------
Dcommand/Fun/triggered.js | 25-------------------------
Acommand/Fun/truth.js | 19+++++++++++++++++++
Acommand/Fun/wyr.js | 29+++++++++++++++++++++++++++++
Acommand/Giveaway/giveaway.js | 144+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mcommand/Information/avatar.js | 11+++++------
Mcommand/Information/banner.js | 67+++++++++++++++++++++++++++++++------------------------------------
Mcommand/Information/botinfo.js | 87+++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------
Mcommand/Information/help.js | 83+++++++++++++++++++++++++++++++++++++++++++++++--------------------------------
Dcommand/Information/messageinfo.js | 41-----------------------------------------
Mcommand/Information/ping.js | 11++++++-----
Dcommand/Information/roleinfo.js | 85-------------------------------------------------------------------------------
Dcommand/Information/servericon.js | 17-----------------
Mcommand/Information/serverinfo.js | 178++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
Mcommand/Information/userinfo.js | 78++++++++++++++++++++++++++++++++++++++----------------------------------------
Dcommand/Moderation/announce.js | 60------------------------------------------------------------
Acommand/Moderation/ban.js | 106+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/Moderation/kick.js | 58++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/Moderation/lock.js | 53+++++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/Moderation/mute.js | 119+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/Moderation/nuke.js | 67+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mcommand/Moderation/purge.js | 34++++++++++++++++------------------
Acommand/Moderation/role.js | 59+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mcommand/Moderation/slowmode.js | 4++--
Acommand/Moderation/unban.js | 34++++++++++++++++++++++++++++++++++
Acommand/Moderation/unmute.js | 39+++++++++++++++++++++++++++++++++++++++
Acommand/Moderation/warn.js | 273+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/Music/bassboost.js | 53+++++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/Music/clearqueue.js | 24++++++++++++++++++++++++
Acommand/Music/disconnect.js | 25+++++++++++++++++++++++++
Acommand/Music/grab.js | 52++++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/Music/loop.js | 53+++++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/Music/move.js | 50++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/Music/nowplaying.js | 64++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/Music/pause.js | 29+++++++++++++++++++++++++++++
Acommand/Music/play.js | 145+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/Music/queue.js | 114+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/Music/remove.js | 42++++++++++++++++++++++++++++++++++++++++++
Acommand/Music/resume.js | 28++++++++++++++++++++++++++++
Acommand/Music/seek.js | 53+++++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/Music/shuffle.js | 27+++++++++++++++++++++++++++
Acommand/Music/skip.js | 38++++++++++++++++++++++++++++++++++++++
Acommand/Music/volume.js | 37+++++++++++++++++++++++++++++++++++++
Acommand/NSFW/ass.js | 40++++++++++++++++++++++++++++++++++++++++
Acommand/NSFW/blowjob.js | 48++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/NSFW/boobs.js | 40++++++++++++++++++++++++++++++++++++++++
Acommand/NSFW/hentai.js | 40++++++++++++++++++++++++++++++++++++++++
Acommand/NSFW/milf.js | 40++++++++++++++++++++++++++++++++++++++++
Acommand/NSFW/pussy.js | 42++++++++++++++++++++++++++++++++++++++++++
Acommand/NSFW/thighs.js | 42++++++++++++++++++++++++++++++++++++++++++
Acommand/Owner/accept.js | 50++++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/Owner/add.js | 31+++++++++++++++++++++++++++++++
Mcommand/Owner/blacklist.js | 8++++----
Acommand/Owner/deny.js | 49+++++++++++++++++++++++++++++++++++++++++++++++++
Acommand/Owner/dm.js | 33+++++++++++++++++++++++++++++++++
Mcommand/Owner/eval.js | 27++++++++++++---------------
Acommand/Owner/getinvite.js | 47+++++++++++++++++++++++++++++++++++++++++++++++
Mcommand/Owner/guilds.js | 10++++++----
Mcommand/Owner/restart.js | 8++++++--
Acommand/Owner/rmv.js | 31+++++++++++++++++++++++++++++++
Mcommand/Utilities/afk.js | 8++++----
Acommand/Utilities/codebin.js | 17+++++++++++++++++
Mcommand/Utilities/docs.js | 3+--
Mcommand/Utilities/emojiadd.js | 14+++++++++-----
Mcommand/Utilities/esnipe.js | 73++++++++++++++++++++++++++++++++++++-------------------------------------
Dcommand/Utilities/github.js | 59-----------------------------------------------------------
Dcommand/Utilities/hexcolor.js | 85-------------------------------------------------------------------------------
Mcommand/Utilities/invite.js | 27+++++++++++++--------------
Acommand/Utilities/lyrics.js | 58++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dcommand/Utilities/permission.js | 118-------------------------------------------------------------------------------
Dcommand/Utilities/poll.js | 37-------------------------------------
Dcommand/Utilities/rank.js | 303-------------------------------------------------------------------------------
Mcommand/Utilities/report.js | 8++++----
Acommand/Utilities/shorturl.js | 35+++++++++++++++++++++++++++++++++++
Mcommand/Utilities/snipe.js | 69++++++++++++++++++++++++++++++++++-----------------------------------
Mcommand/Utilities/suggest.js | 23++++++++++++++---------
Dcommand/Utilities/timer.js | 72------------------------------------------------------------------------
Dcommands/Config/check.js | 27---------------------------
Dcommands/Config/disable.js | 46----------------------------------------------
Dcommands/Config/enable.js | 41-----------------------------------------
Dcommands/Economy/blackjack.js | 295-------------------------------------------------------------------------------
Dcommands/Economy/buy.js | 66------------------------------------------------------------------
Dcommands/Economy/gift.js | 100-------------------------------------------------------------------------------
Dcommands/Economy/give.js | 108-------------------------------------------------------------------------------
Dcommands/Economy/steal.js | 117-------------------------------------------------------------------------------
Dcommands/Giveaway/end.js | 17-----------------
Dcommands/Giveaway/giveaway.js | 45---------------------------------------------
Dcommands/Giveaway/reroll.js | 16----------------
Dcommands/Moderation/ban.js | 74--------------------------------------------------------------------------
Dcommands/Moderation/clearWarns.js | 43-------------------------------------------
Dcommands/Moderation/kick.js | 47-----------------------------------------------
Dcommands/Moderation/lock.js | 28----------------------------
Dcommands/Moderation/mute.js | 137-------------------------------------------------------------------------------
Dcommands/Moderation/nuke.js | 54------------------------------------------------------
Dcommands/Moderation/removeWarn.js | 53-----------------------------------------------------
Dcommands/Moderation/role.js | 52----------------------------------------------------
Dcommands/Moderation/unban.js | 30------------------------------
Dcommands/Moderation/unlock.js | 27---------------------------
Dcommands/Moderation/unmute.js | 47-----------------------------------------------
Dcommands/Moderation/warn.js | 59-----------------------------------------------------------
Dcommands/Moderation/warns.js | 48------------------------------------------------
Dcommands/Music/bassboost.js | 33---------------------------------
Dcommands/Music/loop.js | 22----------------------
Dcommands/Music/lyrics.js | 30------------------------------
Dcommands/Music/nowplaying.js | 114-------------------------------------------------------------------------------
Dcommands/Music/pause.js | 17-----------------
Dcommands/Music/play.js | 144-------------------------------------------------------------------------------
Dcommands/Music/queue.js | 44--------------------------------------------
Dcommands/Music/resume.js | 17-----------------
Dcommands/Music/seek.js | 103-------------------------------------------------------------------------------
Dcommands/Music/skip.js | 18------------------
Dcommands/Music/stop.js | 17-----------------
Dcommands/Music/volume.js | 23-----------------------
Dcommands/Owner/accept.js | 38--------------------------------------
Dcommands/Owner/add.js | 15---------------
Dcommands/Owner/cls.js | 11-----------
Dcommands/Owner/deny.js | 36------------------------------------
Dcommands/Owner/dm.js | 20--------------------
Dcommands/Owner/edit.js | 58----------------------------------------------------------
Dcommands/Owner/encrypt.js | 40----------------------------------------
Dcommands/Owner/getinvite.js | 43-------------------------------------------
Dcommands/Owner/info.js | 24------------------------
Dcommands/Owner/premium.js | 17-----------------
Dcommands/Owner/reaction-role.js | 51---------------------------------------------------
Dcommands/Owner/rmv.js | 15---------------
Dcommands/Owner/try.js | 57---------------------------------------------------------
Dcommands/Utilities/help.js | 192-------------------------------------------------------------------------------
Aconfig.js | 17+++++++++++++++++
Dconfig.json | 13-------------
Mevents/afk.js | 38++++++++++++++++----------------------
Mevents/embed.js | 41++++++++++++++++++++++++++++++++---------
Mevents/emoji.js | 26++++++++++++++++----------
Mevents/guild.js | 9++++-----
Mevents/interactionCreate.js | 209+++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------
Devents/level.js | 28----------------------------
Mevents/messageCreate.js | 328++++++++++++++++++++++++++++++++++---------------------------------------------
Mevents/messageDelete.js | 11+++++------
Mevents/messageUpdate.js | 4++--
Mevents/raw.js | 4++--
Mevents/ready.js | 2+-
Mevents/starboard.js | 4++--
Mevents/typingStart.js | 2+-
Aevents/voiceStateUpdate.js | 63+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mindex.js | 20++++++--------------
Mmodels/econ.js | 22+++++++++++++++++++---
Mmodels/guilds.js | 10+++++++++-
Amodels/weapons.js | 30++++++++++++++++++++++++++++++
Mpackage.json | 55+++++++++++++++++++++----------------------------------
Munused/commands/Config/choices.js | 238++++++++++++++++++++++++++++++++++++++++---------------------------------------
Munused/commands/Config/cmd-list.js | 30+++++++++++++++---------------
Munused/commands/Config/create.js | 848++++++++++++++++++++++++++++++++++++++++---------------------------------------
Munused/commands/Config/delete.js | 32++++++++++++++++----------------
Munused/commands/Config/migrate.js | 37+++++++++++++++++++------------------
Munused/commands/Config/modmail-category.js | 54+++++++++++++++++++++++++++---------------------------
Munused/commands/Config/modmail-role.js | 49+++++++++++++++++++++++++------------------------
Munused/commands/Config/panel.js | 44++++++++++++++++++++++----------------------
Munused/commands/Config/rr-add.js | 77+++++++++++++++++++++++++++++++++++++++--------------------------------------
Munused/commands/Config/rr-rmv.js | 62+++++++++++++++++++++++++++++++-------------------------------
Aunused/commands/Fun/busted.js | 27+++++++++++++++++++++++++++
Aunused/commands/Fun/coinflip.js | 17+++++++++++++++++
Munused/commands/Fun/connect4.js | 569+++++++++++++++++++++++++++++++++++++++++--------------------------------------
Aunused/commands/Fun/dino.js | 98+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aunused/commands/Fun/dog.js | 28++++++++++++++++++++++++++++
Aunused/commands/Fun/drop.js | 50++++++++++++++++++++++++++++++++++++++++++++++++++
Aunused/commands/Fun/ds.js | 24++++++++++++++++++++++++
Aunused/commands/Fun/hug.js | 43+++++++++++++++++++++++++++++++++++++++++++
Aunused/commands/Fun/messageinfo.js | 41+++++++++++++++++++++++++++++++++++++++++
Aunused/commands/Fun/obama.js | 45+++++++++++++++++++++++++++++++++++++++++++++
Munused/commands/Fun/quote.js | 75++++++++++++++++++++++++++++++++++++++-------------------------------------
Aunused/commands/Fun/roleinfo.js | 85+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aunused/commands/Fun/sr.js | 29+++++++++++++++++++++++++++++
Aunused/commands/Fun/topic.js | 18++++++++++++++++++
Aunused/commands/Fun/topics.json | 32++++++++++++++++++++++++++++++++
Aunused/commands/Fun/triggered.js | 25+++++++++++++++++++++++++
Aunused/commands/Information/servericon.js | 17+++++++++++++++++
Aunused/commands/Moderation/announce.js | 63+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aunused/commands/Moderation/permission.js | 120+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aunused/commands/Owner/encrypt.js | 39+++++++++++++++++++++++++++++++++++++++
Aunused/commands/Utilities/github.js | 61+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aunused/commands/Utilities/hexcolor.js | 54++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aunused/commands/Utilities/lb.js | 34++++++++++++++++++++++++++++++++++
Munused/commands/Utilities/modmail.js | 303++++++++++++++++++++++++++++++++++++++++---------------------------------------
Aunused/commands/Utilities/poll.js | 38++++++++++++++++++++++++++++++++++++++
Aunused/commands/Utilities/rank.js | 303+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aunused/commands/Utilities/timer.js | 77+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Munused/events/messageCreate.js | 483++++++++++++++++++++++++++++++++++++++++---------------------------------------
Munused/events/messageReaction.js | 44++++++++++++++++++++++----------------------
Munused/models/custom-commands.js | 16++++++++--------
Munused/models/modmail.js | 14+++++++-------
Munused/models/reaction.js | 12++++++------
Autil/Data/aliases.json | 79+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Autil/Data/attachments.json | 3108+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Autil/Data/builds.json | 772+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Autil/Data/dares.json | 27+++++++++++++++++++++++++++
Autil/Data/data.json | 1+
Autil/Data/draws.json | 54++++++++++++++++++++++++++++++++++++++++++++++++++++++
Autil/Data/gun.json | 14++++++++++++++
Autil/Data/item.json | 86+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Autil/Data/scam.json | 4102+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Autil/Data/skins.json | 2++
Autil/Data/statsIndex.json | 49+++++++++++++++++++++++++++++++++++++++++++++++++
Autil/Data/statsNames.json | 24++++++++++++++++++++++++
Autil/Data/truth.json | 64++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Autil/Data/wyr.json | 128+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Autil/assets/images/cod_logo.svg | 2++
Autil/assets/images/nyx_black.svg | 20++++++++++++++++++++
Autil/assets/images/nyx_logo_transparent.webp | 0
Autil/assets/images/nyx_white.svg | 2++
Mutil/dist/cmds.js | 68++++++++++++++++++++++++++++++++++----------------------------------
Mutil/dist/err.js | 10+++++-----
Mutil/dist/handler.js | 109+++++++++++++++++++++++++++++--------------------------------------------------
Dutil/dist/item.js | 68--------------------------------------------------------------------
Dutil/dist/manager.js | 86-------------------------------------------------------------------------------
Dutil/dist/npm.sh | 5-----
Dutil/dist/slash.js | 230-------------------------------------------------------------------------------
Autil/functions/common.js | 818+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mutil/functions/economy.js | 191++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------
Mutil/functions/function.js | 437+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
Mutil/functions/mongoose.js | 103+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------
Dutil/pagination/pagination.js | 46----------------------------------------------
298 files changed, 21780 insertions(+), 8180 deletions(-)

diff --git a/.dockerignore b/.dockerignore @@ -0,0 +1 @@ +node_modules/ +\ No newline at end of file diff --git a/.env.example b/.env.example @@ -1,12 +1,10 @@ TOKEN = MONGO = mongodb://127.0.0.1:27017/test mongo = -testmongo = cathmongo = -CLIENT_SECRET = -CLIENT_ID = SPOTIFY_ID = SPOTIFY_SECRET = host = lavalink.darrennathanael.com port = 2095 -password = whatwasthelastingyousaid -\ No newline at end of file +password = whatwasthelastingyousaid +api = http://api.cath.gq +\ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js @@ -1,15 +0,0 @@ -module.exports = { - env: { - es6: true, - node: true, - }, - extends: "eslint:recommended", - parserOptions: { - ecmaVersion: 2020, - sourceType: "module", - }, - rules: { - indent: ["error", 2], - semi: ["error", "always"], - }, -}; diff --git a/.github/README.md b/.github/README.md @@ -1,17 +1,17 @@ -<h1 align="center"> CATH.EXE </h1> - +<h1 align="center"> NYX </h1> +<!-- header --> <p align="center"> - <img src = "https://media.discordapp.net/attachments/842014909264953354/867806346593042483/Cath-temp-banner.png?width=1244&height=415"> + <a href="https://rebrand.ly/cathSupport" target="_blank"><img alt="NYX_banner" src = "https://media.discordapp.net/attachments/896078559293104128/896091759157858394/nyx_banner_3d.png?width=1341&height=447"></a> <br> <a href="https://discord.com/oauth2/authorize?client_id=800966959268364288&permissions=4231314550&scope=bot%20applications.commands" target="_blank"><img alt='Invite' src="https://img.shields.io/badge/-Invite-5865f2?logo=discord&logoColor=white&style=for-the-badge"></a> - <a href="https://github.com/night0721/cath.exe/blob/main/LICENSE" target="_blank"><img alt='LICENSE' src="https://img.shields.io/static/v1?label=LICENSE&message=Apache%202.0&color=5865F2&style=for-the-badge&scale=1.4"></a> + <a href= "https://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank"><img alt='Licence CC BY-NC-SA 4.0' src ="https://mirrors.creativecommons.org/presskit/buttons/88x31/svg/by-nc-sa.svg" width="82"> <a href="https://trello.com/b/dIgR0QNm" target="_blank"><img alt='Trello' src="https://img.shields.io/badge/Trello-5865F2?style=for-the-badge&logo=trello&logoColor=white"></a> + <a href="https://github.com/night0721/cath"><img alt = 'NPM Package' src="https://img.shields.io/badge/npm-CB3837?style=for-the-badge&logo=npm&logoColor=white"> <a href="https://thunder75.gitbook.io/cath-bot" target="_blank"><img src="https://img.shields.io/static/v1?label=Docs&message=available&color=5865F2&logo=gitbook&logoColor=white&style=for-the-badge&scale=1.4"></a> - <a href="https://ko-fi.com/I2I35XISJ" target="_blank"><img alt='Kofi' src="https://img.shields.io/static/v1?label=Support%20Us&message=KO.FI&color=ff5e5b&logo=kofi&logoColor=white&style=for-the-badge&scale=1.4"></a> - <a href="https://cath.statuspage.io/"target="_blank"><img alt='StatusPage' src="https://img.shields.io/static/v1?&label=Cath.exe&message=Online&color=00DA83&logo=statuspage&logoColor=white&style=for-the-badge&scale=1.4"></a> - <a href="https://cath.statuspage.io/" target="_blank"><img alt='StatusPage' src="https://img.shields.io/static/v1?&label=Cath%202&message=Online&color=00DA83&logo=statuspage&logoColor=white&style=for-the-badge&scale=1.4"></a> - <a href="https://cath.statuspage.io/" target="_blank"><img alt='StatusPage' src="https://img.shields.io/static/v1?&label=API&message=Under%20Devlopment&color=FF5E5B&logo=statuspage&logoColor=white&style=for-the-badge&scale=1.4"></a> - + <a href="https://ko-fi.com/I2I35XISJ" target="_blank"><img alt='Kofi' src="https://img.shields.io/static/v1?label=Support%20Us&message=KO.FI&color=ff5e5b&logo=kofi&logoColor=white&style=for-the-badge&scale=1.4"></a> <br> + <a href="https://nyx-bot.statuspage.io/"target="_blank"><img alt='StatusPage' src="https://img.shields.io/static/v1?&label=NYX&message=Online&color=00DA83&logo=statuspage&logoColor=white&style=for-the-badge&scale=1.4"></a> + <a href="https://nyx-bot.statuspage.io/" target="_blank"><img alt='StatusPage' src="https://img.shields.io/static/v1?&label=NYX%202&message=Online&color=00DA83&logo=statuspage&logoColor=white&style=for-the-badge&scale=1.4"></a> + <a href="https://nyx-bot.statuspage.io/" target="_blank"><img alt='StatusPage' src="https://img.shields.io/static/v1?&label=API&message=Online&color=00DA83&logo=statuspage&logoColor=white&style=for-the-badge&scale=1.4"></a> </p> <p align = "center"> @@ -21,31 +21,44 @@ <!-- description --> -**Cath.exe** is a Multipurpose Discord Bot with many features that include but are not limited to Moderation, Music and Economy. The Call of Duty Stats are courtesy of **Project Lighthouse** by [**Path.exe**](https://www.youtube.com/channel/UC0hvUWYhyx_DOEBzLWEJxsw).<br><br> +**NYX** *(previously known as Cath)* is a first and only **COD Mobile Statistics & Gunsmith** Bot which also doubles as a multipurpose discord bot with many features that include but are not limited to Moderation, Music and Economy. <br> +The Call of Duty Stats are courtesy of **Round Table** by Cygnoux Familia.<br><br> If you like this bot, feel free to :star: **Star** this repository.<br> -# Features +> โš  The Verifed bot instance is current called Cath.exe, we are working on getting it changed +<br> + +# Features +> *This is a Non-Exhaustive list for commands. To access the full list of commands, check out our [Documentation](https://thunder75.gitbook.io/cath-bot/core/commands).* + <a href="https://thunder75.gitbook.io/cath-bot/core/commands" ><img src="https://img.shields.io/static/v1?label=List %20OF&message=Commands&color=5865F2&logo=gitbook&logoColor=white&style=for-the-badge&scale=1.4"></a> -๐Ÿšจ **Moderation** - Classic commands like kick, ban, warn, role and many more.. <br> -๐Ÿ“ˆ **Economy** - A Robust economy system, inspired by **pepe bot.** <br> +๐Ÿšจ **Moderation** - Classic commands like kick, ban, warn, role and many more. <br> +๐Ÿ“ˆ **Economy** - A Robust economy system, inspired by **pepe bot** <br> โœจ **Fun Commands** - A massive collection of fun commands `(35+ commands)` <br> ๐ŸŽต **Music** - Classic Music Commands that can play from various sources. <br> ๐Ÿ›  **Utility** - A wide range of useful commands `(Around 20)` <br> -๐Ÿ•น **Games** - Many fun games to spend your time ... -> To access the full list of commands, check out our [Documentation](https://thunder75.gitbook.io/cath-bot/core/commands). +๐Ÿ•น **Games** - Many fun games to spend your time <br> +๐ŸŽฎ **Call of Duty** - Check the list of Call of Duty Mobile Commands + +## <img height="18px" src="../util/assets/images/cod_logo.svg"> **Call of Duty Mobile** -๐ŸŽฎ **Call of Duty** - Check Call od Duty Mobile Stats exclusivly using our bot -> โš  Only avaliable on the Live instance for now. +- **Weapon Statistics** courtesy of **Round Table** by Cygnoux Familia. +- **Currated Gunsmith Builds** by various content creators like Jokesta, dHitman, Path.exe and more comming soon. +- **Perks** detailed info about the perks. +- **Randomly Generated Class** Wanna try something challenging? try our Randomly Generated Gunsmith builds. + +> We also provide access to our database that includes In-depth Weapon statistics & Gunsmith Builds from various Content Creators, & other Call of duty related info, please [contact us](https://rebrand.ly/cathSupport) for more info. ## More Info [![Top language](https://img.shields.io/github/languages/top/night0721/cath.exe?labelColor=F7DF1E&color=555555&style=for-the-badge&scale=1.4)](https://github.com/night0721/cath.exe) -[![CodeFactor](https://www.codefactor.io/repository/github/night0721/cath/badge?s=ffdc3c246a8b91a3d7064d128a1b81b9dbeca61f&style=for-the-badge)]((https://www.codefactor.io/repository/github/night0721/cath)) +[![CodeFactor](https://www.codefactor.io/repository/github/night0721/cath.js/badge?s=57e6f566f73892f4303edbfeb2fe3ea0b849c876&style=for-the-badge)](https://www.codefactor.io/repository/github/night0721/cath.js) <a href="https://thunder75.gitbook.io/cath-bot/deployment" target="_blank"><img src="https://img.shields.io/static/v1?label=Deployment&message=Guide&color=5865F2&logo=gitbook&logoColor=white&style=for-the-badge&scale=1.4"></a> A detailed Deployment guide can be found [here](https://thunder75.gitbook.io/cath-bot/deployment). + <details> <summary>Made With</summary> @@ -80,15 +93,13 @@ A detailed Deployment guide can be found [here](https://thunder75.gitbook.io/cat ## <img src = "https://cdn.discordapp.com/emojis/867093614403256350.png?v=1" width = 18> Support & Feature Request -Join the official [Support Server](https://discord.gg/SbQHChmGcp) on Discord & we will be happy to assist you. <br> +Join the official [Support Server](https://rebrand.ly/cathSupport) on Discord & we will be happy to assist you. <br> To Request new features contact us on Discord using the support server. ## <img src = "https://cdn.discordapp.com/emojis/867093601962950666.png?v=1" width = "18"> Report Bugs You can report bugs or issues by opening a issue in this repository. Alternatevely you can also contact us on Discord using the support server. -<!-- [![Support Server](https://img.shields.io/discord/718762019586572341?label=Support%20Server&logo=Discord&colorB=5865F2&style=for-the-badge&logoColor=white) ](https://discord.gg/SR7TeNJG67) --> - <p align = "center"> <a href="https://rebrand.ly/cathSupport" target="_blank"><img src="https://discordapp.com/api/guilds/718762019586572341/widget.png?style=banner1"></a> </p> @@ -99,5 +110,10 @@ Contributions are always welcomed, but make sure to read [Contributing.md](/CONT ![Contributors](https://badges.pufler.dev/contributors/night0721/cath.exe?bots=false) +<!-- ## Special Thanks to The Roound Table from Cygnoux Familia. +<p align = "center"> + <a href="https://discord.gg/mjVwkCsWY7" target="_blank"><img src="https://discordapp.com/api/guilds/756525751594909797/widget.png?style=banner1"></a> +</p> --> +โ € <!-- <img src="https://socialify.git.ci/night0721/cath.exe/image?description=1&descriptionEditable=A%20Discord.js%20v13%20Template%20based%20on%20cath.exe&font=Raleway&forks=1&issues=1&language=1&owner=1&pattern=Circuit%20Board&pulls=1&stargazers=1&theme=Dark"> --> diff --git a/.github/changelog.md b/.github/changelog.md @@ -1,5 +1,35 @@ <h1 align="center">Changelog</h1> +# Release v3.3.0 Name Change +We have changed the name of our bot from **Cath.exe** to **NYX**. We have not yet decided on changing the backend names that includes the api & package. + +## Added +- Added guns to be bought using internal currency. +- Added more items in the shops. +- Updated names of contributers in the bot info. + +## Changes / Modification +- Change the footers of embed as we transition from using the Statistics provided by **Project Lighthouse v2** into using Statistics provided by **Round table**. + +# Release v3.2.6 +## Added +- Tips +- Topics +## Fixes +- Added Bot avatar in the footer +- Added timestamps in embeds + + +# Release v3.2.0 +In this version we made the starboard to be globalized, means that you can configure the settings for the starboard per server. +## Added +- drop +- announce +- emojiadd + +snipe&editsnipe fix +To stay up-to-date with our progress, check out our discord server & the Trello page. + # Release v3.0.0 In this version we implement Discord.js v13, which introduces slash commands. we have not implemented all of the commands yet, the moderation commands especially. @@ -42,4 +72,4 @@ No Description Initial Commit # Release v1.0.0 -The bot was not open source & only Night worked on it. -\ No newline at end of file +The bot was not open source & only Night worked on it. diff --git a/.gitignore b/.gitignore @@ -1,4 +1,5 @@ node_modules package-lock.json .env +.prettierignore .vscode \ No newline at end of file diff --git a/.jshintrc b/.jshintrc @@ -1,3 +0,0 @@ -{ - "esversion": 10 -} diff --git a/CODM/builds.js b/CODM/builds.js @@ -0,0 +1,110 @@ +const builds = require("../util/Data/builds.json"); +const guns = builds.Main; +const Discord = require("discord.js"); +const nmDt = require("../util/Data/aliases.json"); +const weaponActualName = nmDt.weaponActualName; +const weaponAlliasName = nmDt.weaponAlliasName; +module.exports = { + name: "build", + description: "Check gun builds", + usage: "(Gun)", + category: "CODM", + status: false, + Owner: true, + run: async (client, message, args) => { + const currGun = weaponIdentifier(args.join(" ").replace("\n", " ")); + if (!currGun) message.reply({ content: "Please specify a gun" }); + if (typeof currGun == "string") { + message.reply({ embeds: [currGun] }); + } else { + const attachNames = currGun.Attachments.map( + x => `**${x.Name}** [${builds.AttachmentTypes[x.Type]}]` + ); + const embed = new Discord.MessageEmbed() + .setTitle( + `Build for ${currGun.Name} (${builds.WeaponTypes[currGun.Type]})` + ) + .setColor(16580400) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setURL(client.web) + .setDescription( + attachNames.reduce( + (t, x, i, a) => t + (i < a.length - 1 ? "\n" : " \n") + x + ) + ) + .setImage(currGun.URL); + return message.reply({ embeds: [embed] }); + } + }, +}; +function weaponIdentifier(inpWeaponName) { + if (inpWeaponName.length < 2) { + return "The name `" + inpWeaponName + "` is too short."; + } + let probableWeapons = []; + for (let i = 0; i < guns.length; i++) { + if (inpWeaponName.Simplify() == guns[i].Name.Simplify()) { + return guns[i]; + } else if (guns[i].Name.Simplify().includes(inpWeaponName.Simplify())) { + probableWeapons.push(i); + } + } + + if (probableWeapons.length == 1) { + return guns[probableWeapons[0]]; + } + + for (let i = 0; i < weaponAlliasName.length; i++) { + for (let j = 0; j < weaponAlliasName[i].length; j++) { + if (weaponAlliasName[i][j].Simplify() == inpWeaponName.Simplify()) { + for (let i2 = 0; i2 < guns.length; i2++) { + if (weaponActualName[i].Simplify() == guns[i2].Name.Simplify()) { + return guns[i2]; + } + } + } + } + } + probableWeapons = [...new Set(probableWeapons)]; + if (probableWeapons.length == 1) { + return guns[probableWeapons[0]]; + } + if (probableWeapons.length > 1) { + return ( + "Did you mean `" + + probableWeapons + .map(x => guns[x].Name) + .reduce((out, x, i) => + [out, x].join(i === probableWeapons.length - 1 ? "` or `" : "`, `") + ) + + "`?" + ); + } + return "Couldn't identify the weapon: `" + '"' + inpWeaponName + '"`'; +} +// ENABLE AFTER Holloween + +// run: async (client, interaction, args) => { +// const embed = new MessageEmbed() +// .setTitle(`Prefix commands are now disabled`) +// .setDescription(`Please enable **Application commands** in the channel settings to get access to slash commands, we have discontinued prefix commands.`) +// .setColor(client.color) +// .setThumbnail(interaction.guild.iconURL({ dynamic: true })) +// .addFields( +// { +// name: "Need help ?", +// value: `Join our **[Support Server](https://discord.gg/SR7TeNJG67)**`, +// inline: true, +// }, +// { +// name: "Support us <a:donate:896985486260846614>", +// value: `[KoFi](https://ko-fi.com/cathteam)`, +// inline: true, +// } +// ) +// .setThumbnail("https://github.com/night0721/cath.js/blob/master/util/assets/images/nyx_logo_transparent.webp") +// .setTimestamp(); +// interaction.followUp({ embeds: [embed] }); +// }, +// }; diff --git a/CODM/class.js b/CODM/class.js @@ -0,0 +1,55 @@ +const { MessageEmbed } = require("discord.js"); +const model = require("../../models/weapons"); +const Attachments = require("../../util/Data/attachments.json"); +module.exports = { + name: "class", + description: "Generate random class in CODM", + category: "CODM", + run: async (client, message, args) => { + const data = async () => { + const d = await model.findOne({}); + const types = d.Categories; + const names = d.Primary; + const category = types[Math.floor(Math.random() * types.length)]; + const weapons = names[0][category]; + return `${weapons[Math.floor(Math.random() * weapons.length)]}`; + }; + const primary_weapon = await data(); + const primary = primary_weapon.replace(/[ -]/g, "_").replace(/\./g, ""); + const slots = shuffle(Object.keys(Attachments[primary][0])); + const slot_1 = slots.next().value, + slot_2 = slots.next().value, + slot_3 = slots.next().value, + slot_4 = slots.next().value, + slot_5 = slots.next().value; + const result = new MessageEmbed() + .setColor(client.color) + .setTitle(`๐ŸŽฒRandom Class of ${primary_weapon}๐ŸŽฒ`) + .setDescription( + `**Attachments**\n**${getAttachment( + primary, + slot_1, + )}**\n**${getAttachment(primary, slot_2)}**\n**${getAttachment( + primary, + slot_3, + )}**\n**${getAttachment(primary, slot_4)}**\n**${getAttachment( + primary, + slot_5, + )}**`, + ) + .setURL(client.web) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp(); + message.reply({ embeds: [result] }); + function* shuffle(array) { + let i = array.length; + while (i--) { + yield array.splice(Math.floor(Math.random() * (i + 1)), 1)[0]; + } + } + function getAttachment(gun, slot) { + const ca = Attachments[gun][0][slot]; + return ca[Math.floor(Math.random() * ca.length)]; + } + }, +}; diff --git a/CODM/damage.js b/CODM/damage.js @@ -0,0 +1,118 @@ +const common = require("../../util/functions/common"); +let currGun = {}, + currStats = [], + currAttachments = {}, + currDRM = {}, + totalEffects = [], + interpretion = "", + hasError = false; +const errMsg = "*Generic placeholder error message*"; + +module.exports = { + name: "damage", + description: "Check gun damage", + usage: "(Gun)", + category: "CODM", + run: async (client, message, args) => { + const repEmb = dmg(args.join(" ").replace("\n", " ")); + if (hasError) { + message.reply({ embeds: [repEmb] }); + } + else { + message.channel.send({ embeds: [repEmb] }); + } + }, +}; + +function dmg(inpmsg) { + currGun = common.weaponIdentifier(inpmsg); + if (typeof currGun == "string") { + hasError = true; + return currGun; + } + currDRM = currGun.drm[0]; + currStats = currGun.stats; + currAttachments = common.attachmentsIdentifier( + inpmsg, + currGun.aments, + currStats, + ); + if (typeof currAttachments == "string") { + hasError = true; + return currAttachments; + } + if (currAttachments.length) { + totalEffects = common.totaler(currAttachments); + currDRM = currGun.drm[totalEffects[37]]; + currDRM.range = currDRM.range.map( + x => (x * (totalEffects[13] + 100)) / 100, + ); + currStats = common.updateStatswithEffects(totalEffects, currStats); + } + const mn = [ + "Head", + "Neck", + "Upper Chest", + "Lower Chest", + "Shoulders", + "Upper Arms", + "Lower Arms", + "Stomach", + "Belly Button", + "Crotch", + "Thighs", + "Calf Muscles", + "Feet", + ], + m1 = currDRM.bodymultiplier, + m2 = [...new Set(m1)], // [1.2, 1, 0.9] + m3 = m1.map(x => m2.indexOf(x)), // [0, 1, 1, 1, 1, 1, 2, 2, 2] + m4 = m2 + .map(x => + m3 + .map((y, i) => { + if (x === m2[y]) { + return mn[i]; + } + }) + .filter(y => y), + ) + .map(x => + x.length === m1.length + ? ["All"] + : x.length === m1.length - 1 + ? ["Others"] + : x, + ); + interpretion = currGun.gunname + common.interpretioner(currAttachments); + return { + title: "**" + interpretion + "**", + color: 4849497, + fields: m4.map((x, i) => { + return { + name: x.join(", ") + ":", + value: common.damageHandler( + currDRM.damage, + currDRM.range, + m2[i], + 100, + 60000 / currStats[5], + currStats[7], + currStats[6], + currStats[0], + ), + }; + }), + footer: { + text: "All the stats courtesy of Project Lighthouse", + icon_url: + "https://media.discordapp.net/attachments/735590814662656102/806960573753327657/cc.png?width=638&height=638", + }, + }; +} +// console.log(dmg("47 + mono")); +/* console.log(dmg("47")); +console.log(dmg("striker + choke")); +console.log(dmg("striker + choke")); +console.log(dmg("striker")); +common.makeError();*/ diff --git a/CODM/effects.js b/CODM/effects.js @@ -0,0 +1,168 @@ +const common = require("../util/functions/common"); +const data = require("../util/Data/data.json"); + +let currGun, currAttachments, interpretion, hasError; +const errMsg = "*Generic placeholder error message*"; + +module.exports = { + name: "effects", + description: "Check gun effects", + usage: "(Gun)", + category: "CODM", + aliases: ["attachements"], + /** + * @param {Client} client + * @param {Message} message + * @param {String[]} args + */ + run: async (client, message, args) => { + const repEmb = attachments(args.join(" ").replace("\n", " ")); + if (hasError) { + message.reply({ embeds: [repEmb] }); + } else { + message.channel.send({ embeds: [repEmb] }); + } + }, +}; + +function attachments(inpmsg) { + const out = "", + at = data.attachmentTypes.map(x => (x.slice(-1) === "s" ? x : x + "s")); + if (inpmsg.includes("+") && inpmsg.includes(":")) { + hasError = true; + return "Bro, can u liek, not do that?"; + } + if (inpmsg.includes(":")) { + const inpAll = inpmsg + .split(":") + .map(x => x.trim()) + .filter(x => x), + inpType = inpAll.length === 2 ? inpAll[1] : null; + if (!inpType) { + hasError = true; + return inpAll.length < 2 + ? "Empty " + (inpAll[0] ? "" : "weapon name and ") + "attachment type" + : "Multiple `:`s detected"; + } + currGun = common.weaponIdentifier(inpAll[0]); + if (typeof currGun == "string") { + hasError = true; + return currGun; + } + let currAttachmentsType = at.filter(x => simplify(x) == simplify(inpType)); + currAttachmentsType = currAttachmentsType.length + ? currAttachmentsType + : at.filter( + x => simplify(x.substring(0, x.length - 1)) == simplify(inpType) + ); + currAttachmentsType = currAttachmentsType.length + ? currAttachmentsType + : at.filter(x => simplify(x).includes(simplify(inpType))); + if (currAttachmentsType.length === 0) { + hasError = true; + return "Couldn't identify `" + inpType + "`"; + } else if (currAttachmentsType.length === 1) { + currAttachmentsType = at.indexOf(currAttachmentsType[0]); + } else { + hasError = true; + return ( + "Did you mean `" + + currAttachmentsType.reduce((out, x, i) => + [out, x].join( + i === currAttachmentsType.length - 1 ? "` or `" : "`, `" + ) + ) + + "`" + ); + } + return { + title: currGun.gunname, + color: 11348938, + fields: [ + { + name: + "**" + + currGun.gunname + + "** has the following " + + at[currAttachmentsType], + value: + "```\n" + + currGun.aments + .filter(x => x.type - 1 === currAttachmentsType) + .map(x => x.name) + .join("\n") + + "```", + }, + ], + footer: { + text: "All the stats courtesy of Project Lighthouse", + icon_url: + "https://media.discordapp.net/attachments/735590814662656102/806960573753327657/cc.png?width=638&height=638", + }, + }; + function simplify(v) { + return v.toLowerCase().replace(/[^0-9a-z]/g, ""); + } + } + currGun = common.weaponIdentifier(inpmsg); + if (typeof currGun == "string") { + hasError = true; + return currGun; + } + hasAttachments = common.hasAttachments(inpmsg); + currAttachments = []; + if (hasAttachments) { + currAttachments = common.attachmentsIdentifier( + inpmsg, + currGun.aments, + currGun.stats + ); + if (typeof currAttachments == "string") { + hasError = true; + return currAttachments; + } + return { + title: currGun.gunname + common.interpretioner(currAttachments), + color: 11348938, + fields: common.attachmentHandler( + common.totaler(currAttachments), + currGun.stats + ), + footer: { + text: "All the stats courtesy of Project Lighthouse", + icon_url: + "https://media.discordapp.net/attachments/735590814662656102/806960573753327657/cc.png?width=638&height=638", + }, + }; + } else { + const availableAttachmentTypes = [ + ...new Set(currGun.aments.map(x => x.type)), + ]; + return { + title: currGun.gunname, + color: 11348938, + fields: [ + { + name: + "**" + currGun.gunname + "** has the following attachment types:", + value: + "```\n" + + availableAttachmentTypes.map(x => at[x - 1]).join(",\n") + + "```", + }, + ], + footer: { + text: "All the stats courtesy of Project Lighthouse", + icon_url: + "https://media.discordapp.net/attachments/735590814662656102/806960573753327657/cc.png?width=638&height=638", + }, + }; + } +} +// console.log(attachments("Peacekeeper:muzzle")); //common.makeError(); +/* console.log(attachments(":")); //common.makeError(); +console.log(attachments("47:optics")); //common.makeError(); +console.log(attachments("47")); //common.makeError(); +console.log(attachments("47 + ")); //common.makeError(); +console.log(attachments("47 + :")); //common.makeError(); +console.log(attachments("47 + red dot")); common.makeError();*/ diff --git a/CODM/sgrelo.js b/CODM/sgrelo.js @@ -0,0 +1,111 @@ +module.exports = { + name: "sgrelo", + descriptiom: "Calculate reload time for shotgun", + run: async (client, message, args) => { + let err = "", + wrn = "", + interpretedAs = []; + function mather(inp) { + const inpArr = interpreter(inp), + outArr = []; + inpArr.map((x, i, a) => { + for (let j = i + 1; j < a.length; j++) { + outArr.push(worker(x, a[j])); + } + }); + const aArr = outArr.map(x => x.a), + iArr = outArr.map(x => x.i); + return ( + "Input: `" + + interpretedAs.join("`, `") + + "`" + + (aArr.length == 1 + ? "\nOpening and Closing Animation Time: " + + beautifier(aArr[0]) + + "\nReload Time: " + + beautifier(iArr[0]) + : "\nAll Opening and Closing Animation Time: " + + aArr.map(x => beautifier(x)).join(", ") + + "\nAll Reload Time: " + + iArr.map(x => beautifier(x)).join(", ") + + "\nAverage Opening and Closing Animation Time: " + + beautifier(aArr.reduce((t, x) => t + x, 0) / aArr.length) + + "\nAverage Reload Time: " + + beautifier(iArr.reduce((t, x) => t + x, 0) / iArr.length)) + ); + } + + function interpreter(inp) { + let out = [ + ...new Set( + inp + .split(/\n|, |,/g) + .filter(x => x) + .map(x => x.toLowerCase().replace(/[^0-9a-z]/g, "")) + ), + ]; + out = out + .map(x => { + interpretedAs.push(x); + const obj = { + b: 0, + f: 0, + }; + if ( + x.split(/b/g).length > 2 || + x.split(/f/g).length > 2 || + x.split(/[a-z]/g).length > 3 + ) { + err += "Unknown identifier `" + x + "`\n"; + } else if (x.indexOf("b") === -1 || x.indexOf("f") === -1) { + err += "Missing identifier `" + x + "`\n"; + } else if (x.indexOf("b") === x.length - 1) { + obj.b = parseFloat(x.split("f")[1].trim()); + obj.f = parseFloat(x.split("f")[0].trim()); + } else if (x.indexOf("f") === x.length - 1) { + obj.b = parseFloat(x.split("b")[0].trim()); + obj.f = parseFloat(x.split("b")[1].trim()); + } else { + err += "Unknown identifier `" + x + "`\n"; + } + if (!obj.b && obj.f) { + err += "Couldn't interpret `" + x + "`\n"; + } else if (!Number.isInteger(obj.b)) { + err += "Decimal bullet count found `" + x + "`\n"; + } else if (!Number.isInteger(obj.f)) { + wrn += "Decimal value found `" + x + "`\n"; + } + return obj; + }) + .filter(x => JSON.stringify(x).length && x); + if (out.length === 1) { + err += "Single equation found\n"; + } + return err || !out.length ? [] : out; + } + + function worker(o1, o2) { + const out = { + i: 0, + a: 0, + }; + out.i = (o1.f - o2.f) / (o1.b - o2.b); + out.a = o1.f - out.i * o1.b; + return out; + } + + function beautifier(num) { + return parseFloat(num.toFixed(2)).toString() + "s"; + } + + const msg = mather(args.join(" ")); + + if (err !== "") { + message.reply(err); + } else if (wrn !== "") { + message.reply({ content: wrn + "\n" + msg }); + } else { + message.channel.send({ content: msg }); + } + }, +}; diff --git a/CODM/stats.js b/CODM/stats.js @@ -0,0 +1,274 @@ +const common = require("../util/functions/common"); +const data = require("../util/Data/data.json"); +const Discord = require("discord.js"); + +let currGun, + currStats, + currAttachments, + currRecoilArr, + currDRM, + interpretion, + recoilAvailable, + chart, + hasError; +const errMsg = "*Generic placeholder error message*"; +module.exports = { + name: "stats", + description: "Check gun stats", + usage: "(Gun)", + category: "CODM", + /** + * @param {Client} client + * @param {Message} message + * @param {String[]} args + */ + run: async (client, message, args) => { + recoilAvailable = false; + hasError = false; + const repEmb = statsHandler(args.join(" ").replace("\n", " ")); + + if (hasError) { + message.reply({ embeds: [repEmb] }); + } + if (recoilAvailable) { + repEmb.fields.push({ + name: "**Recoil Graph**", + value: + "```\nThe Recoil graph below is dynamic (change based on attachment equipped)```", + }); + const recoilImageLink = await chart.getShortUrl(); + repEmb.image = { url: recoilImageLink }; + } + message.reply({ embeds: [repEmb] }); + }, +}; + +function inpHandler(inpmsg) { + statsHandler(inpmsg.split("+")[0]); +} + +function statsHandler(inpmsg) { + let statsNames = [ + "Pellets", + "Detonation Range", + "Explosion Radius", + "Explosion Damage", + "Firing Mode", + "Rate of Fire", + "Bullet in Burst", + "Time Between Burst", + "Bullet Speed", + "Penetration Level", + "Bullet Spread", + "Idle Sway", + "Hipfire Pellet Spread", + "ADS Pellet Spread", + "ADS Time", + "Sprint-to-Fire Time", + "ADS Zoom", + "Magazine", + "Reserve", + "Reload Type", + "Cancel Reload Time", + "Reload Time", + "Full Reload Time", + "Drop Time", + "Raise Time", + "Sprinting Speed", + "Walking Speed", + "Straifing Speed", + "Damage per Tick", + "Number of Ticks", + "Time Between Ticks", + "Breath Hold Time", + "shouldNeverHappen0", + "shouldNeverHappen1", + "shouldNeverHappen2", + "shouldNeverHappen3", + "shouldNeverHappen4", + ], + out = []; + + currGun = common.weaponIdentifier(inpmsg); + if (typeof currGun == "string") { + hasError = true; + return currGun; + } + currStats = currGun.stats; + currDRM = currGun.drm[0]; + currAttachments = []; + currAttachments = common.attachmentsIdentifier( + inpmsg, + currGun.aments, + currStats + ); + if (typeof currAttachments == "string") { + hasError = true; + return currAttachments; + } + currRecoilArr = [1, 1, currGun.stats[17]]; + if (currAttachments.length != 0) { + const totalEffects = common.totaler(currAttachments); + + currStats = common.updateStatswithEffects(totalEffects, currStats); + currRecoilArr = [totalEffects[2], totalEffects[3], currGun.stats[17]]; // must happen after currStats update + currDRM = currGun.drm[totalEffects[37]]; + currDRM.range = currDRM.range.map(x => + Math.round(x * (1 + totalEffects[13] / 100)) + ); + out = common.attachmentHandler(totalEffects, currStats); + } + function statsWorker() { + if (currStats[19] === 2) { + currStats[21] = + currStats[20] + currStats[21] * currStats[17] + currStats[22]; + currStats[20] = 0; + currStats[22] = 0; + } + currStats[25] = (currStats[25] * currStats[26]) / 100; + + const outReady = currStats.map((x, i) => + x ? statsNames[i].padEnd(24) + ":".padEnd(3) + beautifier(i) : "" + ); + out = [ + ...[ + "Basic Stats", + "ADS Stats", + "Bullet Stats", + "Magazine", + "Handling Stats", + "Mobility Stats", + "Miscellaneous Stats", + ].map((x, i) => + fieldMaker( + x, + [ + [04, 05, 09], + [14, 16, 11, 31], + [00, 06, 07, 08, 10, 12, 13], + [17, 18, 19, 20, 21, 22], + [23, 24], + [25, 26, 27, 15], + [28, 29, 30, 01, 02, 03], + ][i] + ) + ), + ...out, + ]; + function fieldMaker(inpName, inpIndx) { + inpIndx = inpIndx.filter(x => outReady[x]); + return inpIndx.length + ? { + name: "**" + inpName + "**", + value: "```\n" + inpIndx.map(x => outReady[x]).join("\n") + "```", + } + : ""; + } + } + statsWorker(); + + function beautifier(j) { + switch (j) { + case 04: + return data.firingModes[currStats[j] - 1]; + case 09: + return data.penetrationLevels[currStats[j] - 1]; + case 19: + return data.reloadTypes[currStats[j] - 1]; + case 08: + if (currStats[j] == -1) { + return "Infinity"; + } else { + return parseFloat(currStats[j].toFixed(2)).toString() + " m/s"; + } + case 03: + return parseFloat(currStats[j].toFixed(2)) + .toString() + .replace(".", " ~ "); + default: + return parseFloat(currStats[j].toFixed(2)).toString() + addUnit(j); + } + + function addUnit(j) { + switch (j) { + case 07: + case 14: + case 15: + case 23: + case 24: + case 31: + return " ms"; + case 27: + case 28: + case 25: + case 26: + return " m/s"; + case 20: + case 21: + case 22: + return " s"; + case 16: + return "%"; + case 06: + return " Rounds"; + case 05: + return " RPM"; + default: + return ""; + } + } + } + interpretion = currGun.gunname + common.interpretioner(currAttachments); + if (currGun.recoil.hr.length > 2) { + chart = common.recoilHandler( + currGun.recoil.hr, + currGun.recoil.vr, + currRecoilArr[0], + currRecoilArr[1], + currRecoilArr[2] + ); + recoilAvailable = true; + } else { + recoilAvailable = false; + } + if (chart == "none") { + recoilAvailable = false; + } + if (chart == "err" || currAttachments == "err") { + hasError = true; + return "Cocaineeee"; + } + const dmg = + common.damageHandler( + currDRM.damage, + currDRM.range, + 1, + 100, + 60000 / currStats[5], + currStats[7], + currStats[6], + currStats[0] + ) || "```This should never happen```"; + out = [ + currGun.description + ? { + name: "**Description:**", + value: "```\n" + currGun.description + "```", + } + : {}, + { name: "**Damage Profile:**", value: dmg }, + ...out, + ]; + out = out.filter(x => x.value); + return { + title: interpretion, + color: 5814783, + fields: out, + footer: { + text: "All data courtesy of Project Lighthouse and CoDM Research Crew", + icon_url: + "https://media.discordapp.net/attachments/735590814662656102/806960573753327657/cc.png?width=638&height=638", + }, + }; +} +// console.log(statsHandler("Holger").fields); diff --git a/Dockerfile b/Dockerfile @@ -0,0 +1,23 @@ +FROM node:alpine + +# Create app directory +WORKDIR /usr/bot/nyx + +# Copy package.json and package-lock.json +COPY package*.json ./ + +# Install packages +RUN npm install + +# Copy the app code +COPY . . + +# Build the project +RUN npm run all + +# Expose ports +# EXPOSE 8080 + +# Run the application +CMD [ "node", "index.js" ] +# not sure what to run index.js or bot.js +\ No newline at end of file diff --git a/LICENSE b/LICENSE @@ -1,201 +1,437 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2021 Night Kaly - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. +Attribution-NonCommercial-ShareAlike 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International +Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution-NonCommercial-ShareAlike 4.0 International Public License +("Public License"). To the extent this Public License may be +interpreted as a contract, You are granted the Licensed Rights in +consideration of Your acceptance of these terms and conditions, and the +Licensor grants You such rights in consideration of benefits the +Licensor receives from making the Licensed Material available under +these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. BY-NC-SA Compatible License means a license listed at + creativecommons.org/compatiblelicenses, approved by Creative + Commons as essentially the equivalent of this Public License. + + d. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + e. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + f. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + g. License Elements means the license attributes listed in the name + of a Creative Commons Public License. The License Elements of this + Public License are Attribution, NonCommercial, and ShareAlike. + + h. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + i. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + j. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + k. NonCommercial means not primarily intended for or directed towards + commercial advantage or monetary compensation. For purposes of + this Public License, the exchange of the Licensed Material for + other material subject to Copyright and Similar Rights by digital + file-sharing or similar means is NonCommercial provided there is + no payment of monetary compensation in connection with the + exchange. + + l. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + m. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + n. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part, for NonCommercial purposes only; and + + b. produce, reproduce, and Share Adapted Material for + NonCommercial purposes only. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. Additional offer from the Licensor -- Adapted Material. + Every recipient of Adapted Material from You + automatically receives an offer from the Licensor to + exercise the Licensed Rights in the Adapted Material + under the conditions of the Adapter's License You apply. + + c. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties, including when + the Licensed Material is used other than for NonCommercial + purposes. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + b. ShareAlike. + + In addition to the conditions in Section 3(a), if You Share + Adapted Material You produce, the following conditions also apply. + + 1. The Adapter's License You apply must be a Creative Commons + license with the same License Elements, this version or + later, or a BY-NC-SA Compatible License. + + 2. You must include the text of, or the URI or hyperlink to, the + Adapter's License You apply. You may satisfy this condition + in any reasonable manner based on the medium, means, and + context in which You Share Adapted Material. + + 3. You may not offer or impose any additional or different terms + or conditions on, or apply any Effective Technological + Measures to, Adapted Material that restrict exercise of the + rights granted under the Adapter's License You apply. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database for NonCommercial purposes + only; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material, + including for purposes of Section 3(b); and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the โ€œLicensor.โ€ The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. +\ No newline at end of file diff --git a/README.md b/README.md @@ -1,94 +0,0 @@ -<h1 align="center"> CATH.EXE </h1> - -<p align="center"> - <img src = "https://media.discordapp.net/attachments/842014909264953354/867806346593042483/Cath-temp-banner.png?width=1244&height=415"> - <br> - <a href="https://trello.com/b/dIgR0QNm"><img alt='Trello' src="https://img.shields.io/badge/-Invite-5865f2?logo=discord&logoColor=white&style=for-the-badge"></a> - <a href="https://rebrand.ly/cathGithubInvite"><img alt='Support Server' src="https://img.shields.io/discord/718762019586572341?label=Support%20Server&logo=Discord&colorB=5865F2&style=for-the-badge&logoColor=white"></a> - <a href="https://trello.com/b/dIgR0QNm"><img alt='Trello' src="https://img.shields.io/badge/Trello-5865F2?style=for-the-badge&logo=trello&logoColor=white"></a> - <a href="https://thunder75.gitbook.io/cath-bot" target="_blank"><img src="https://img.shields.io/static/v1?label=Docs&message=available&color=5865F2&logo=gitbook&logoColor=white&style=for-the-badge&scale=1.4"></a> - <a href="https://ko-fi.com/I2I35XISJ"><img alt='Kofi' src="https://img.shields.io/static/v1?label=Support%20Us&message=KO.FI&color=ff5e5b&logo=kofi&logoColor=white&style=for-the-badge&scale=1.4"></a> - <a href="https://cath.statuspage.io/"><img alt='StatusPage' src="https://img.shields.io/static/v1?&label=Cath.exe&message=Online&color=00DA83&logo=statuspage&logoColor=white&style=for-the-badge&scale=1.4"></a> -<a href="https://cath.statuspage.io/"><img alt='StatusPage' src="https://img.shields.io/static/v1?&label=Cath%202&message=Online&color=00DA83&logo=statuspage&logoColor=white&style=for-the-badge&scale=1.4"></a> - <a href="https://cath.statuspage.io/"><img alt='StatusPage' src="https://img.shields.io/static/v1?&label=API&message=Under%20Devlopment&color=FF5E5B&logo=statuspage&logoColor=white&style=for-the-badge&scale=1.4"></a> - -</p> - -<!-- description --> - -**Cath.exe** is a Multipurpose Discord Bot with many features that include but are not limited to Moderation, Music and Economy. The Call of Duty Stats are courtesy of **Project Lighthouse** by [**Path.exe**](https://www.youtube.com/channel/UC0hvUWYhyx_DOEBzLWEJxsw).<br><br> -If you like this bot, feel free to <img src = "https://discord.com/assets/141d49436743034a59dec6bd5618675d.svg" width = "16"> **Star** and **fork** this repository.<br> - -# Features -<a href="https://thunder75.gitbook.io/cath-bot/core/commands" ><img src="https://img.shields.io/static/v1?label=List %20OF&message=Commands&color=5865F2&logo=gitbook&logoColor=white&style=for-the-badge&scale=1.4"></a> - -๐Ÿšจ **Moderation** - Classic commands like kick, ban, warn, role and many more.. <br> -๐Ÿ“ˆ **Economy** - A Robust economy system, inspired by **pepe bot.** <br> -โœจ **Fun Commands** - A massive collection of fun commands `(35+ commands)` <br> -๐ŸŽต **Music** - Classic Music Commands that can play from various sources. <br> -๐Ÿ›  **Utility** - A wide range of useful commands `(Around 20)` <br> -๐Ÿ•น **Games** - Many fun games to spend your time ... -> To access the full list of commands, check out our [Documentation](https://thunder75.gitbook.io/cath-bot/core/commands). - -๐ŸŽฎ **Call of Duty** - Check Call od Duty Mobile Stats exclusivly using our bot -> โš  Only avaliable on the Live instance for now. - -## More Info - -[![Top language](https://img.shields.io/github/languages/top/night0721/cath.exe?labelColor=F7DF1E&color=555555&style=for-the-badge&scale=1.4)](https://github.com/night0721/cath.exe) -[![CodeFactor](https://www.codefactor.io/repository/github/night0721/cath/badge?s=ffdc3c246a8b91a3d7064d128a1b81b9dbeca61f&style=for-the-badge)]((https://www.codefactor.io/repository/github/night0721/cath)) -<a href="https://thunder75.gitbook.io/cath-bot/deployment" target="_blank"><img src="https://img.shields.io/static/v1?label=Deployment&message=Guide&color=5865F2&logo=gitbook&logoColor=white&style=for-the-badge&scale=1.4"></a> - -A detailed Deployment guide can be found [here](https://thunder75.gitbook.io/cath-bot/deployment). - -<details> - <summary>Made With</summary> - - [![JavaScript](https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge&logo=javascript&logoColor=black)](https://developer.mozilla.org/en-US/docs/Web/JavaScript) - [![node](https://img.shields.io/badge/Node.js-43853D?style=for-the-badge&logo=node.js&logoColor=white)](https://nodejs.org/en/) - [![npm](https://img.shields.io/badge/npm-CB3837?style=for-the-badge&logo=npm&logoColor=white)](https://www.npmjs.com/) - [![MongoDB](https://img.shields.io/badge/MongoDB-4EA94B?style=for-the-badge&logo=mongodb&logoColor=white)](https://mongodb.com/) - <img src ="https://forthebadge.com/images/badges/built-with-love.svg" width = "122"><br> -</details> - -<details> - <summary>Issues & PRs</summary> - - [![Open issues](https://img.shields.io/github/issues-raw/night0721/cath.exe?style=for-the-badge)](https://github.com/night0721/cath.exe/issues) - [![Closed issues](https://img.shields.io/github/issues-closed-raw/night0721/cath.exe?style=for-the-badge)](https://github.com/night0721/cath.exe/issues) - [![Open PRs](https://img.shields.io/github/issues-pr-raw/night0721/cath.exe?style=for-the-badge)](https://github.com/night0721/cath.exe/pulls) - [![Closed PRs](https://img.shields.io/github/issues-pr-closed-raw/night0721/cath.exe?style=for-the-badge)](https://github.com/night0721/cath.exe/pulls) -</details> - -<details> - <summary>Github Stats</summary> - - ![Lines of code](https://img.shields.io/tokei/lines/github/night0721/cath.exe?color=5865F2&logo=github&logoColor=ffffff&style=for-the-badge) - ![GitHub Discussions](https://img.shields.io/github/discussions/night0721/cath.exe?color=5865F2&logo=github&logoColor=ffffff&style=for-the-badge) - ![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/night0721/cath.exe?color=5865F2&logo=github&logoColor=ffffff&style=for-the-badge) - [![Last commit](https://img.shields.io/github/last-commit/night0721/cath.exe?icon=discord&color=5865F2&style=for-the-badge&scale=1.4)](https://github.com/night0721/cath.exe) - <!-- [![Files](https://tokei.rs/b1/github/night0721/cath.exe?category=files&style=for-the-badge)](https://github.com/night0721/cath.exe) --> - -</details> - -# Support, Feature Request & Bug Reports - -## <img src = "https://cdn.discordapp.com/emojis/867093614403256350.png?v=1" width = 18> Support & Feature Request - -Join the official [Support Server](https://discord.gg/SbQHChmGcp) on Discord & we will be happy to assist you. <br> -To Request new features contact us on Discord using the support server. - -## <img src = "https://cdn.discordapp.com/emojis/867093601962950666.png?v=1" width = "18"> Report Bugs - -You can report bugs or issues by opening a issue in this repository. Alternatevely you can also contact us on Discord using the support server. - -[![Support Server](https://img.shields.io/discord/718762019586572341?label=Support%20Server&logo=Discord&colorB=5865F2&style=for-the-badge&logoColor=white) ](https://discord.gg/SR7TeNJG67) - -<h1 align="center"> Contributors </h1> - -Contributions are always welcomed, but make sure to read [Contributing.md](/CONTRIBUTING.md) first. - -![Contributors](https://badges.pufler.dev/contributors/night0721/cath.exe?bots=false) - - -<!-- <img src="https://socialify.git.ci/night0721/cath.exe/image?description=1&descriptionEditable=A%20Discord.js%20v13%20Template%20based%20on%20cath.exe&font=Raleway&forks=1&issues=1&language=1&owner=1&pattern=Circuit%20Board&pulls=1&stargazers=1&theme=Dark"> --> -\ No newline at end of file diff --git a/app.json b/app.json @@ -1,7 +1,7 @@ { - "name": "cath.exe - CODM Bot", + "name": "NYX - CODM Bot", "description": "Host cath.exe through Heroku", - "keywords": ["cat", "cath", "codm", "discord", "discord bot"], + "keywords": ["bot", "nyx", "codm", "discord", "gunsmith"], "repository": "https://github.com/night0721/cath.exe", "env": { "TOKEN": { @@ -11,64 +11,6 @@ "MONGO": { "description": "MongoDB URI from https://mongodb.com/", "value": "" - }, - "CLIENT_ID": { - "description": "Bot ID from https://discord.com/developers/applications", - "value": "" - }, - "CLIENT_SECRET": { - "description": "Client Secret from https://discord.com/developers/applications", - "value": "" - }, - "DMLogID": { - "description": "DM Log Webhook ID", - "value": "" - }, - "DMLogToken": { - "description": "DM Log Webhook Token", - "value": "" - }, - "CMDLogID": { - "description": "Command Log Webhook ID", - "value": "" - }, - "CMDLogToken": { - "description": "Command Log Webhook Token", - "value": "" - }, - "ReadyLogID": { - "description": "Ready Log Webhook ID", - "value": "" - }, - "ReadyLogToken": { - "description": "Ready Log Webhook Token", - "value": "" - }, - "ErrorLogID": { - "description": "Error Log Webhook ID", - "value": "" - }, - "ErrorLogToken": { - "description": "Error Log Webhook Token", - "value": "" - }, - "ServerLogID": { - "description": "Server Log Webhook ID", - "value": "" - }, - "ServerLogToken": { - "description": "Server Log Webhook Token", - "value": "" - }, - "PORT": { - "description": "Port for Heroku to use", - "value": "3000", - "required": false - }, - "REDIRECT": { - "description": "REDIRECT URL", - "value": "", - "required": false } }, "buildpacks": [ diff --git a/bot.js b/bot.js @@ -1,50 +0,0 @@ -const { MessageEmbed, Intents } = require("discord.js"); -const Cath = require("./client/Cath"); -const version = require("./package.json").version; -const config = require("./config.json"); -const client = new Cath({ - allowedMentions: { parse: ["users", "roles"], repliedUser: true }, - presence: { - activities: [ - { - name: `v${version} | ${config.prefix}help`, - type: "STREAMING", - url: "https://www.youtube.com/watch?v=_D5xG7XoF88", - }, - ], - }, - restTimeOffset: 0, - partials: ["MESSAGE", "CHANNEL", "REACTION", "GUILD_MEMBER"], - intents: [ - //Intents.FLAGS.GUILD_MEMBERS, - //Intents.FLAGS.GUILD_PRESENCES, - Intents.FLAGS.GUILDS, - Intents.FLAGS.GUILD_BANS, - Intents.FLAGS.GUILD_EMOJIS_AND_STICKERS, - Intents.FLAGS.GUILD_INVITES, - Intents.FLAGS.GUILD_VOICE_STATES, - Intents.FLAGS.GUILD_MESSAGES, - Intents.FLAGS.GUILD_MESSAGE_REACTIONS, - Intents.FLAGS.DIRECT_MESSAGES, - Intents.FLAGS.DIRECT_MESSAGE_TYPING, - ], -}); -module.exports = client; -require("./util/functions/economy")(client); -require("./util/dist/manager")(client); -require("./util/dist/handler")(client); -process.on("unhandledRejection", async err => { - if (client.user) { - if (client.user.id === client.user.id) { - const embed = new MessageEmbed() - .setTitle("UnhandledRejection Error") - .setDescription(`\`\`\`ini\n${err.stack}\`\`\``) - .setTimestamp() - .setColor(client.color) - .setFooter(client.user.username); - client.channels.cache.get(client.ErrorLog).send({ embeds: [embed] }); - } - } - return console.error(err); -}); -client.start(); diff --git a/client/CODMClient.js b/client/CODMClient.js @@ -0,0 +1,2 @@ +const { CODMClient } = require("cath"); +module.exports = new CODMClient("Gae"); diff --git a/client/Cath.js b/client/Cath.js @@ -1,72 +0,0 @@ -const { Client, Collection } = require("discord.js"); -const config = require("../config.json"); -const { GiveawaysManager } = require("discord-giveaways"); -require("dotenv").config(); -class Cath extends Client { - /** - * @param {Client.options} options - */ - constructor(options = {}) { - super(options); - this.commands = new Collection(); - this.slashCommands = new Collection(); - this.aliases = new Collection(); - this.esnipes = new Collection(); - this.hide = new Collection(); - this.snipes = new Collection(); - this.queue = new Map(); - this.Timers = new Map(); - this.config = config; - this.function = require("../util/functions/function"); - this.data = require("../util/functions/mongoose"); - this.err = require("../util/dist/err"); - this.serr = require("../util/dist/slash"); - this.cat = this.config.ca; - this.SuggestionLog = this.config.Suggestion; - this.ReportLog = this.config.Report; - this.DMLog = this.config.DMLog; - this.CMDLog = this.config.CMDLog; - this.ServerLog = this.config.ServerLog; - this.ErrorLog = this.config.ErrorLog; - this.color = this.config.color; - this.author = "Cath Team"; - this.invite = "https://discord.gg/SbQHChmGcp"; - this.web = this.config.URL; - this.owners = [ - "452076196419600394", //Night - "766645910087139338", //chekseaa - "755476040029306952", //Kaล‚รฟ - "534027706325532694", //Cat drinking a cat - "381442059111759883", //Thunder - "556808365574193194", //chunchunmaru - ]; - this.currency = "<:cp:840231933933387797>"; - this.path = [ - "614423108388126731", - "767173194943168542", - "783633408738721834", - "718762019586572341", - "784052348561522730", - "840225563193114624", - "800396461229080619", - ]; - this.giveaways = new GiveawaysManager(this, { - storage: "./util/Data/giveaways.json", - updateCountdownEvery: 1000, - default: { - botsCanWin: false, - embedColor: this.color, - reaction: "๐ŸŽ‰", - }, - }); - } - start() { - this.data - .connect(process.env.MONGO) - .then(() => console.log("Connected to MongoDB!")) - .catch(e => console.log(e)); - this.login(process.env.TOKEN); - } -} - -module.exports = Cath; diff --git a/client/CodeClient.js b/client/CodeClient.js @@ -0,0 +1,2 @@ +const { CodeClient } = require("cath"); +module.exports = new CodeClient(); diff --git a/client/GiveawaysClient.js b/client/GiveawaysClient.js @@ -0,0 +1,38 @@ +const { GiveawaysClient } = require("cath"); +const client = require(".."); +require("dotenv").config(); +module.exports = new GiveawaysClient({ + client, + MongooseConnectionURI: process.env.MONGO, + GiveawayMessages: { + dmWinner: true, + giveaway: "๐ŸŽ‰ **GIVEAWAY** ๐ŸŽ‰", + giveawayDescription: + "๐ŸŽ Prize: **{award}**\n๐ŸŽŠ Hosted by: {hostedBy}\nโฒ๏ธ Winner(s): `{winners}` \n๐Ÿ™ Entrants: {totalParticipants} \n\n**Requirements:** {requirements}", + endedGiveawayDescription: + "๐ŸŽ Prize: **{award}**\n๐ŸŽŠ Hosted by: {hostedBy}\nโฒ๏ธ Winner(s): {winners} \n๐Ÿ™ Entrants: {totalParticipants}", + giveawayFooterImage: "https://emoji.gg/assets/emoji/3461-giveaway.gif", + winMessage: + "Congratulations {winners}! You have won **{award}** from total `{totalParticipants}` entrants!", + rerolledMessage: "Rerolled! {winner} is the new winner of the giveaway!", + toParticipate: "**Click the `Enter` button to enter the giveaway!**", + newParticipant: + "You have successfully entered for this giveaway! There are total `{totalParticipants}` entrants", + alreadyParticipated: "**You have already participated in this giveaway!**", + noParticipants: "There isn't enough entrant in this giveaway!", + noRole: + "You don't have the required role(s)\n{requiredRoles}\n for the giveaway!", + dmMessage: + "You have won a giveaway in **{guildName}**!\nPrize: [{award}]({giveawayURL})", + noWinner: + "There isn't any winner in this giveaway due to not enough entrants", + alreadyEnded: "The giveaway had already ended!", + dropWin: "{winner} Won The Drop!!", + noWeeklyExp: + "you dont have the required minimum weekly xp to join this giveaway", + noLevel: "You dont have the minimum required level to join this giveaway", + nonoRole: + "You do not have the {requiredRoles} role(s) which is required to join this giveaway", + editParticipants: true, + }, +}); diff --git a/client/NYX.js b/client/NYX.js @@ -0,0 +1,149 @@ +const { Client, Collection, MessageEmbed } = require("discord.js"); +const { Manager } = require("erela.js"); +const config = require("../config"); +const Spotify = require("erela.js-spotify"); +const utils = require("../util/functions/function"); +require("dotenv").config(); + +class NYX extends Client { + /** + * @param {Client.options} options + */ + constructor( + options = { + presence: { + activities: [ + { + name: `v${require("../package.json").version} | /help`, + type: "STREAMING", + url: "https://www.youtube.com/watch?v=YSKDu1gKntY", + }, + ], + }, + shard: "auto", + restTimeOffset: 0, + partials: ["MESSAGE", "CHANNEL", "REACTION", "GUILD_MEMBER"], + intents: 24207, + } + ) { + super(options); + this.slashCommands = new Collection(); + this.hide = new Collection(); + this.esnipes = new Collection(); + this.snipes = new Collection(); + this.config = config; + this.data = require("../util/functions/mongoose"); + this.color = config.color; + this.author = "Team NYX"; + this.invite = "https://discord.gg/SbQHChmGcp"; + this.docs = "https://thunder75.gitbook.io/nyx/"; + this.web = config.URL; + this.owners = [ + "452076196419600394", // Night + "534027706325532694", // Cat drinking a cat + "381442059111759883", // Thunder + "556808365574193194", // chunchunmaru + "746753527338238115", // mightyful + ]; + this.currency = "<:cp:840231933933387797>"; // <a:pumpkin:898975476863877170> + this.xp = "<:nyx_xp:900309007472926720>"; + this.path = [ + "614423108388126731", // Camper on Duty + "767173194943168542", // Dark Bonker + "718762019586572341", // NYX Nation + "869583978108157972", // Lighthouse Community + "840225563193114624", // Command Test + ]; + const client = this; + require("../util/functions/economy")(client); + this.manager = new Manager({ + plugins: [ + new Spotify({ + clientID: process.env.SPOTIFY_ID, + clientSecret: process.env.SPOTIFY_SECRET, + }), + ], + nodes: [ + { + host: config.Lavalink.Host, + port: config.Lavalink.Port, + password: config.Lavalink.Password, + retryDelay: 5000, + }, + ], + autoPlay: true, + send: (id, payload) => { + const guild = client.guilds.cache.get(id); + if (guild) guild.shard.send(payload); + }, + }) + .on("nodeConnect", node => + console.log(`Node "${node.options.identifier}" has connected`) + ) + .on("nodeError", (node, error) => + console.log( + `Node "${node.options.identifier}" encountered an error: ${error.message}` + ) + ) + .on("trackStart", (player, track) => { + const channel = client.channels.cache.get(player.textChannel); + const embed = new MessageEmbed() + .setColor(config.color) + .setAuthor( + `Now Playing`, + "https://cdn.discordapp.com/emojis/897017864085712936.gif" + ) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setThumbnail(player.queue.current.displayThumbnail()) + .setDescription(`[${track.title}](${track.uri})`) + .addField( + "Duration", + `\`${utils.prettyMs(track.duration, { + colonNotation: true, + })}\``, + true + ); + channel.send({ embeds: [embed] }); + }) + .on("queueEnd", player => { + const channel = client.channels.cache.get(player.textChannel); + const embed2 = new MessageEmbed() + .setColor(config.color) + .setAuthor( + `Queue has ended`, + "https://cdn.discordapp.com/emojis/897017864085712936.gif" + ) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp(); + channel.send({ embeds: [embed2] }); + // player.destroy(); Remove if 24/7 + }); + } + start() { + require("../util/dist/handler")(this); + this.data + .connect(process.env.MONGO) + .then(() => console.log("Connected to MongoDB โœ…")) + .catch(e => console.log(e)); + this.login(process.env.TOKEN); + } + err(c, e) { + const embed = new MessageEmbed() + .setTitle("An Error Occured") + .setColor("RED") + .setDescription(`โŒ | ${e}`) + .setTimestamp() + .setFooter(`Made by ${this.author}`, this.user.displayAvatarURL()); + c.followUp({ embeds: [embed] }); + } + se(c, e) { + const embed = new MessageEmbed() + .setColor(this.color) + .setDescription(e) + .setTimestamp(); + c.followUp({ embeds: [embed] }); + } +} + +module.exports = NYX; diff --git a/client/StarboardClient.js b/client/StarboardClient.js @@ -1,6 +1,6 @@ const { StarboardClient } = require("cath"); -const client = require("../bot"); +const client = require(".."); module.exports = new StarboardClient({ client, - color: "02023a", + color: client.color, }); diff --git a/client/URLClient.js b/client/URLClient.js @@ -0,0 +1,2 @@ +const { URLClient } = require("cath"); +module.exports = new URLClient(); diff --git a/command/CODM/build.js b/command/CODM/build.js @@ -0,0 +1,828 @@ +const { MessageEmbed } = require("discord.js"); +const axios = require("axios"); +const moment = require("moment"); +module.exports = { + name: "build", + description: "Get gunsmith builds", + type: "CHAT_INPUT", + category: "CODM", + options: [ + { + type: "SUB_COMMAND", + name: "assault_rifle", + description: "Get a gunsmith build for a Assault Rifle", + options: [ + { + type: 3, + name: "name", + description: "Name of the Gun", + required: true, + choices: [ + { + name: "AK117", + value: "ak117", + }, + { + name: "M16", + value: "m16", + }, + { + name: "Type 25", + value: "type25", + }, + { + name: "AK-47", + value: "ak47", + }, + { + name: "ASM10", + value: "asm10", + }, + { + name: "M4", + value: "m4", + }, + { + name: "BK57", + value: "bk57", + }, + { + name: "LK24", + value: "lk24", + }, + { + name: "Man-o-War", + value: "manowar", + }, + { + name: "ICR-1", + value: "icr1", + }, + { + name: "KN-44", + value: "kn44", + }, + { + name: "HBRa3", + value: "hbra3", + }, + { + name: "HVK-30", + value: "hvk30", + }, + { + name: "DR-H", + value: "drh", + }, + { + name: "Peacekeeper MK2", + value: "peacekeepermk2", + }, + { + name: "FR .556", + value: "fr556", + }, + { + name: "AS VAL", + value: "asval", + }, + { + name: "CR-56 AMAX", + value: "cr56amax", + }, + { + name: "M13", + value: "m13", + }, + { + name: "Swordfish", + value: "swordfish", + }, + ], + }, + { + type: 3, + name: "youtuber", + description: "Select a Content Creator", + required: true, + choices: [ + { + name: "Path.exe", + value: "path", + }, + { + name: "Jokesta", + value: "jokesta", + }, + ], + }, + { + type: 3, + name: "tag", + description: "Playstyle/game mode of the build", + required: true, + choices: [ + { + name: "Aggressive", + value: "aggressive", + }, + { + name: "Passive", + value: "passive", + }, + { + name: "Search & Destroy", + value: "snd", + }, + { + name: "Respawn", + value: "respawn", + }, + ], + }, + ], + }, + { + type: "SUB_COMMAND", + name: "sub_machine_gun", + description: "Get a gunsmith build for a Sub Machine Gun", + options: [ + { + type: 3, + name: "name", + description: "Name of the Gun", + required: true, + choices: [ + { + name: "RUS-79u", + value: "rus79u", + }, + { + name: "PDW-57", + value: "pdw57", + }, + { + name: "Razorback", + value: "razorback", + }, + { + name: "MSMC", + value: "msmc", + }, + { + name: "HG40", + value: "hg40", + }, + { + name: "Pharo", + value: "pharo", + }, + { + name: "GKS", + value: "gks", + }, + { + name: "Cordite", + value: "cordite", + }, + { + name: "QQ9", + value: "qq9", + }, + { + name: "Fennec", + value: "fennec", + }, + { + name: "Chicom", + value: "chicom", + }, + { + name: "AGR 556", + value: "agr556", + }, + { + name: "QXR", + value: "qxr", + }, + { + name: "PP19 Bizon", + value: "pp19bizon", + }, + { + name: "MX9", + value: "mx9", + }, + ], + }, + { + type: 3, + name: "youtuber", + description: "Select a Content Creator", + required: true, + choices: [ + { + name: "Path.exe", + value: "path", + }, + { + name: "Jokesta", + value: "jokesta", + }, + ], + }, + { + type: 3, + name: "tag", + description: "Playstyle/game mode of the build", + required: true, + choices: [ + { + name: "Aggressive", + value: "aggressive", + }, + { + name: "Passive", + value: "passive", + }, + { + name: "Search & Destroy", + value: "snd", + }, + { + name: "Respawn", + value: "respawn", + }, + ], + }, + ], + }, + { + type: "SUB_COMMAND", + name: "sniper_rifle", + description: "Get a gunsmith build for a Sniper Rifle", + options: [ + { + type: 3, + name: "name", + description: "Name of the Gun", + required: true, + choices: [ + { + name: "Arctic .50", + value: "arctic50", + }, + { + name: "M21 EBR", + value: "m21ebr", + }, + { + name: "DL Q33", + value: "dlq33", + }, + { + name: "Locus", + value: "locus", + }, + // { + // name: "XPR-50", + // value: "xpr50", + // }, + // { + // name: "NA-45", + // value: "na45", + // }, + { + name: "Outlaw", + value: "outlaw", + }, + { + name: "Rytec AMR", + value: "rytecamr", + }, + ], + }, + { + type: 3, + name: "youtuber", + description: "Select a Content Creator", + required: true, + choices: [ + { + name: "Path.exe", + value: "path", + }, + // { + // name: "little_b", + // value: "littleb", + // }, + ], + }, + { + type: 3, + name: "tag", + description: "Playstyle/game mode of the build", + required: true, + choices: [ + { + name: "Aggressive", + value: "aggressive", + }, + { + name: "Passive", + value: "passive", + }, + { + name: "Search & Destroy", + value: "snd", + }, + { + name: "Respawn", + value: "respawn", + }, + ], + }, + ], + }, + { + type: "SUB_COMMAND", + name: "light_machine_gun", + description: "Get a gunsmith build for a Light Machine Gun", + options: [ + { + type: 3, + name: "name", + description: "Name of the Gun", + required: true, + choices: [ + { + name: "S36", + value: "s36", + }, + { + name: "UL736", + value: "ul736", + }, + { + name: "RPD", + value: "rpd", + }, + { + name: "M4 LMG", + value: "m4lmg", + }, + { + name: "Chopper", + value: "chopper", + }, + { + name: "Holger 26", + value: "holger26", + }, + { + name: "Hades", + value: "hades", + }, + ], + }, + { + type: 3, + name: "youtuber", + description: "Select a Content Creator", + required: true, + choices: [ + { + name: "Path.exe", + value: "path", + }, + ], + }, + { + type: 3, + name: "tag", + description: "Playstyle/game mode of the build", + required: true, + choices: [ + { + name: "Aggressive", + value: "aggressive", + }, + { + name: "Passive", + value: "passive", + }, + { + name: "Search & Destroy", + value: "snd", + }, + { + name: "Respawn", + value: "respawn", + }, + ], + }, + ], + }, + { + type: "SUB_COMMAND", + name: "shotgun", + description: "Get a gunsmith build for a Shotgun", + options: [ + { + type: 3, + name: "name", + description: "Name of the Gun", + required: true, + choices: [ + { + name: "HS2126", + value: "hs2126", + }, + { + name: "BY15", + value: "by15", + }, + { + name: "Striker", + value: "striker", + }, + { + name: "KRM_262", + value: "krm262", + }, + { + name: "Echo", + value: "echo", + }, + { + name: "HS0405", + value: "hs0405", + }, + { + name: "R9-0", + value: "r90", + }, + ], + }, + { + type: 3, + name: "youtuber", + description: "Select a Content Creator", + required: true, + choices: [ + { + name: "Path.exe", + value: "path", + }, + { + name: "dHitman", + value: "dhitman", + }, + ], + }, + { + type: 3, + name: "tag", + description: "Playstyle/game mode of the build", + required: true, + choices: [ + { + name: "ADS", + value: "ads", + }, + { + name: "Hipfire", + value: "hipfire", + }, + ], + }, + ], + }, + { + type: "SUB_COMMAND", + name: "marksman_rifle", + description: "Get a gunsmith build for a Marksman Rifle", + options: [ + { + type: 3, + name: "name", + description: "Name of the Gun", + required: true, + choices: [ + { + name: "Kilo Bolt-Action", + value: "kiloboltaction", + }, + { + name: "SKS", + value: "sks", + }, + { + name: "SP-R 208", + value: "spr208", + }, + { + name: "MK2", + value: "mk2", + }, + ], + }, + { + type: 3, + name: "youtuber", + description: "Select a Content Creator", + required: true, + choices: [ + { + name: "Path.exe", + value: "path", + }, + // { + // name: "Little_b", + // value: "littleb", + // }, + ], + }, + { + type: 3, + name: "tag", + description: "Playstyle/game mode of the build", + required: true, + choices: [ + { + name: "Aggressive", + value: "aggressive", + }, + { + name: "Passive", + value: "passive", + }, + { + name: "Respawn", + value: "respawn", + }, + ], + }, + ], + }, + { + type: "SUB_COMMAND", + name: "pistol", + description: "Get a gunsmith build for a Pistol", + options: [ + { + type: 3, + name: "name", + description: "Name of the Gun", + required: true, + choices: [ + { + name: "J358", + value: "j358", + }, + { + name: "MW11", + value: "mw11", + }, + { + name: ".50 GS", + value: "gs50", + }, + { + name: "Renetti", + value: "renetti", + }, + { + name: "Shorty", + value: "shorty", + }, + { + name: "Crossbow", + value: "crossbow", + }, + ], + }, + { + type: 3, + name: "youtuber", + description: "Select a Content Creator", + required: true, + choices: [ + { + name: "Path.exe", + value: "path", + }, + ], + }, + { + type: 3, + name: "tag", + description: "Playstyle/game mode of the build", + required: true, + choices: [ + { + name: "Respawn", + value: "respawn", + }, + ], + }, + ], + }, + ], + run: async (client, interaction, args) => { + const allguns = { + ak117: "AK117", + m16: "M16", + type25: "Type 25", + ak47: "AK-47", + asm10: "ASM10", + m4: "M4", + bk57: "BK57", + lk24: "LK24", + manowar: "Man-O-War", + icr1: "ICR-1", + kn44: "KN-44", + hbra3: "HBRa3", + hvk30: "HVK-30", + drh: "DR-H", + peacekeepermk2: "Peacekeeper MK2", + fr556: "FR .556", + asval: "AS VAL", + cr56amax: "CR-56 AMAX", + m13: "M13", + swordfish: "Swordfish", + + j358: "J358", + gs50: ".50 GS", + mw11: "MW11", + renetti: "Renetti", + shorty: "Shorty", + crossbow: "Crossbow", + + kiloboltaction: "Kilo Bolt-Action", + sks: "SKS", + spr208: "SP-R 208", + mk2: "mk2", + + s36: "S36", + ul736: "UL736", + rpd: "RPD", + m4lmg: "M4LMG", + chopper: "Chopper", + holger26: "Holger 26", + hades: "Hades", + + arctic50: "Arctic .50", + m21ebr: "M21 EBR", + dlq33: "DL Q33", + locus: "Locus", + // na45: "NA 45", + // xpr50: "XPR-50", + locus: "Locus", + outlaw: "Outlaw", + rytecamr: "Rytec AMR", + + hs2126: "HS2126", + by15: "BY15", + striker: "Striker", + krm262: "KRM 262", + echo: "Echo", + hs0405: "HS0405", + r90: "R9-0", + + rus79u: "RUS-79U", + hg40: "HG-40", + pdw57: "PDW-57", + chicom: "Chicom", + razorback: "Razorback", + msmc: "MSMC", + pharo: "Pharo", + gks: "GKS", + cordite: "Cordite", + qq9: "QQ9", + fennec: "Fennec", + agr556: "AGR 556", + qxr: "QXR", + pp19bizon: "PP19 Bizon", + mx9: "MX9", + }; + const all = { + assault_rifle: "Assault Rifle", + sniper_rifle: "Sniper Rifle", + marksman_rifle: "Marksman Rifle", + shotgun: "Shotgun", + light_machine_gun: "Light Machine Gun", + sub_machine_gun: "Sub Machine Gun", + + path: "Path.exe", + dhitman: "dHitman", + jokesta: "Jokesta", + // littleb:"Little B", + + aggressive: "Aggressive", + passive: "Passive", + snd: "Search And Destroy", + respawn: "Respawn", + ads: "ADS", + hipfire: "Hipfire", + }; + const gun = args[1]; + const cc = args[2]; + const tag = args[3]; + const data = await axios + .get( + `${process.env.api}/api/v1/codm/builds?name=${gun}&cc=${cc}&tag=${tag}`, + { + headers: { + Authorization: "Gae", + }, + } + ) + .then(res => res.data) + .catch(); + const unavaliable = new MessageEmbed() + .setDescription( + `<:nyx_not_available:897378400031879188> We don't have a ${all[tag]} **${allguns[gun]}** gunsmith build by **${all[cc]}**, Please try another tag or a differnt content creator` + ) + .setColor(client.color); + if (!data) { + interaction.followUp({ embeds: [unavaliable] }); + } else { + const arr = []; + data.attachments.map((e, i) => { + return arr.push(`**${i + 1}: ${e}**`); + }); + const embed = new MessageEmbed() + .setTitle( + `${data.weaponName}(${data.weaponType})'s ${all[tag]} build from ${data.author}` + ) + .setDescription( + `<:nyx_description:897379659665264650> Description \`\`\`\n${data.notes}\n\`\`\`` + ) + .setColor(16580400) + .setImage(data.imageUrl) + .setFooter( + `Builds Aggregated by ${client.author}`, + client.user.displayAvatarURL() + ) + .setTimestamp() + .addFields( + { + name: "<:nyx_author:897379080549314601> Author:", + value: `\`\`\`\n${data.author}\n\`\`\``, + inline: true, + }, + { + name: "<a:lastupdate:897381474330873887> Last Updated:", + value: `\`\`\`\n${moment(Date.parse(data.lastUpdate)).format( + "MMMM Do YYYY" + )}\n\`\`\``, + inline: true, + }, + { + name: ":id: CWTS:", + value: `\`\`\`\n${data.cwts}\n\`\`\``, + inline: true, + }, + { + name: ":paperclip: Attachments:", + value: arr.join("\n"), + }, + { + name: "<a:tags:897034924140404776> Tags", + value: data.tags.join(", "), + } + ) + .setURL(client.web); + interaction.followUp({ + embeds: [embed], + }); + } + }, +}; + +// ENABLE AFTER Holloween + +// run: async (client, interaction, args) => { +// const embed = new MessageEmbed() +// .setTitle(`Prefix commands are now disabled`) +// .setDescription(`Please enable **Application commands** in the channel settings to get access to slash commands, we have discontinued prefix commands.`) +// .setColor(client.color) +// .setThumbnail(interaction.guild.iconURL({ dynamic: true })) +// .addFields( +// { +// name: "Need help ?", +// value: `Join our **[Support Server](https://discord.gg/SR7TeNJG67)**`, +// inline: true, +// }, +// { +// name: "Support us <a:donate:896985486260846614>", +// value: `[KoFi](https://ko-fi.com/cathteam)`, +// inline: true, +// } +// ) +// .setThumbnail("../../util/assets/images/nyx_logo_transparent.webp") +// .setTimestamp(); +// interaction.followUp({ embeds: [embed] }); +// }, +// }; diff --git a/command/CODM/class.js b/command/CODM/class.js @@ -0,0 +1,55 @@ +const { MessageEmbed } = require("discord.js"); +const model = require("../../models/weapons"); +const Attachments = require("../../util/Data/attachments.json"); +module.exports = { + name: "class", + description: "Generate random class in CODM", + category: "CODM", + run: async (client, interaction) => { + const data = async () => { + const d = await model.findOne({}); + const types = d.Categories; + const names = d.Primary; + const category = types[Math.floor(Math.random() * types.length)]; + const weapons = names[0][category]; + return `${weapons[Math.floor(Math.random() * weapons.length)]}`; + }; + const primary_weapon = await data(); + const primary = primary_weapon.replace(/[ -]/g, "_").replace(/\./g, ""); + const slots = shuffle(Object.keys(Attachments[primary][0])); + const slot_1 = slots.next().value, + slot_2 = slots.next().value, + slot_3 = slots.next().value, + slot_4 = slots.next().value, + slot_5 = slots.next().value; + const result = new MessageEmbed() + .setColor(client.color) + .setTitle(`๐ŸŽฒ A Randomly Generated Class for ${primary_weapon} ๐ŸŽฒ`) + .setDescription( + `**Attachments**\n**${getAttachment( + primary, + slot_1 + )}**\n**${getAttachment(primary, slot_2)}**\n**${getAttachment( + primary, + slot_3 + )}**\n**${getAttachment(primary, slot_4)}**\n**${getAttachment( + primary, + slot_5 + )}**` + ) + .setURL(client.web) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp(); + interaction.followUp({ embeds: [result] }); + function* shuffle(array) { + let i = array.length; + while (i--) { + yield array.splice(Math.floor(Math.random() * (i + 1)), 1)[0]; + } + } + function getAttachment(gun, slot) { + const ca = Attachments[gun][0][slot]; + return ca[Math.floor(Math.random() * ca.length)]; + } + }, +}; diff --git a/command/CODM/damage.js b/command/CODM/damage.js @@ -0,0 +1,125 @@ +const common = require("../../util/functions/common"); +let currGun = {}, + currStats = [], + currAttachments = {}, + currDRM = {}, + totalEffects = [], + interpretion = "", + hasError = false; +const errMsg = "*Generic placeholder error message*"; + +module.exports = { + name: "damage", + description: "Check gun damage", + usage: "(Gun)", + category: "CODM", + options: [ + { + type: 7, + name: "gun", + description: "Gun name", + required: true, + }, + ], + run: async (client, interaction, args) => { + const repEmb = dmg(args[0].replace("\n", " ")); + if (hasError) { + interaction.followUp({ embeds: [repEmb] }); + } else { + interaction.followUp({ embeds: [repEmb] }); + } + }, +}; + +function dmg(inpmsg) { + currGun = common.weaponIdentifier(inpmsg); + if (typeof currGun == "string") { + hasError = true; + return currGun; + } + currDRM = currGun.drm[0]; + currStats = currGun.stats; + currAttachments = common.attachmentsIdentifier( + inpmsg, + currGun.aments, + currStats + ); + if (typeof currAttachments == "string") { + hasError = true; + return currAttachments; + } + if (currAttachments.length) { + totalEffects = common.totaler(currAttachments); + currDRM = currGun.drm[totalEffects[37]]; + currDRM.range = currDRM.range.map( + x => (x * (totalEffects[13] + 100)) / 100 + ); + currStats = common.updateStatswithEffects(totalEffects, currStats); + } + const mn = [ + "Head", + "Neck", + "Upper Chest", + "Lower Chest", + "Shoulders", + "Upper Arms", + "Lower Arms", + "Stomach", + "Belly Button", + "Crotch", + "Thighs", + "Calf Muscles", + "Feet", + ], + m1 = currDRM.bodymultiplier, + m2 = [...new Set(m1)], // [1.2, 1, 0.9] + m3 = m1.map(x => m2.indexOf(x)), // [0, 1, 1, 1, 1, 1, 2, 2, 2] + m4 = m2 + .map(x => + m3 + .map((y, i) => { + if (x === m2[y]) { + return mn[i]; + } + }) + .filter(y => y) + ) + .map(x => + x.length === m1.length + ? ["All"] + : x.length === m1.length - 1 + ? ["Others"] + : x + ); + interpretion = currGun.gunname + common.interpretioner(currAttachments); + return { + title: "**" + interpretion + "**", + color: 4849497, + fields: m4.map((x, i) => { + return { + name: x.join(", ") + ":", + value: common.damageHandler( + currDRM.damage, + currDRM.range, + m2[i], + 100, + 60000 / currStats[5], + currStats[7], + currStats[6], + currStats[0] + ), + }; + }), + footer: { + text: "All the stats courtesy of Project Lighthouse", + icon_url: + "https://media.discordapp.net/attachments/735590814662656102/806960573753327657/cc.png?width=638&height=638", + }, + }; +} +// console.log(dmg("47 + mono")); +/* console.log(dmg("47")); +console.log(dmg("striker + choke")); +console.log(dmg("striker + choke")); +console.log(dmg("striker")); +common.makeError();*/ diff --git a/command/CODM/effects.js b/command/CODM/effects.js @@ -0,0 +1,170 @@ +const common = require("../../util/functions/common"); +const data = require("../../util/Data/data.json"); + +let currGun, currAttachments, interpretion, hasError; +const errMsg = "*Generic placeholder error message*"; + +module.exports = { + name: "effects", + description: "Check gun effects", + usage: "(Gun)", + category: "CODM", + options: [ + { + type: 7, + name: "gun", + description: "Gun name", + required: true, + }, + ], + run: async (client, interaction, args) => { + const repEmb = attachments(args[0].replace("\n", " ")); + if (hasError) { + interaction.followUp({ embeds: [repEmb] }); + } else { + interaction.followUp({ embeds: [repEmb] }); + } + }, +}; + +function attachments(inpmsg) { + const out = "", + at = data.attachmentTypes.map(x => (x.slice(-1) === "s" ? x : x + "s")); + if (inpmsg.includes("+") && inpmsg.includes(":")) { + hasError = true; + return "Bro, can u liek, not do that?"; + } + if (inpmsg.includes(":")) { + const inpAll = inpmsg + .split(":") + .map(x => x.trim()) + .filter(x => x), + inpType = inpAll.length === 2 ? inpAll[1] : null; + if (!inpType) { + hasError = true; + return inpAll.length < 2 + ? "Empty " + (inpAll[0] ? "" : "weapon name and ") + "attachment type" + : "Multiple `:`s detected"; + } + currGun = common.weaponIdentifier(inpAll[0]); + if (typeof currGun == "string") { + hasError = true; + return currGun; + } + let currAttachmentsType = at.filter(x => simplify(x) == simplify(inpType)); + currAttachmentsType = currAttachmentsType.length + ? currAttachmentsType + : at.filter( + x => simplify(x.substring(0, x.length - 1)) == simplify(inpType) + ); + currAttachmentsType = currAttachmentsType.length + ? currAttachmentsType + : at.filter(x => simplify(x).includes(simplify(inpType))); + if (currAttachmentsType.length === 0) { + hasError = true; + return "Couldn't identify `" + inpType + "`"; + } else if (currAttachmentsType.length === 1) { + currAttachmentsType = at.indexOf(currAttachmentsType[0]); + } else { + hasError = true; + return ( + "Did you mean `" + + currAttachmentsType.reduce((out, x, i) => + [out, x].join( + i === currAttachmentsType.length - 1 ? "` or `" : "`, `" + ) + ) + + "`" + ); + } + return { + title: currGun.gunname, + color: 11348938, + fields: [ + { + name: + "**" + + currGun.gunname + + "** has the following " + + at[currAttachmentsType], + value: + "```\n" + + currGun.aments + .filter(x => x.type - 1 === currAttachmentsType) + .map(x => x.name) + .join("\n") + + "```", + }, + ], + footer: { + text: "All the stats courtesy of Project Lighthouse", + icon_url: + "https://media.discordapp.net/attachments/735590814662656102/806960573753327657/cc.png?width=638&height=638", + }, + }; + function simplify(v) { + return v.toLowerCase().replace(/[^0-9a-z]/g, ""); + } + } + currGun = common.weaponIdentifier(inpmsg); + if (typeof currGun == "string") { + hasError = true; + return currGun; + } + hasAttachments = common.hasAttachments(inpmsg); + currAttachments = []; + if (hasAttachments) { + currAttachments = common.attachmentsIdentifier( + inpmsg, + currGun.aments, + currGun.stats + ); + if (typeof currAttachments == "string") { + hasError = true; + return currAttachments; + } + return { + title: currGun.gunname + common.interpretioner(currAttachments), + color: 11348938, + fields: common.attachmentHandler( + common.totaler(currAttachments), + currGun.stats + ), + footer: { + text: "All the stats courtesy of Project Lighthouse", + icon_url: + "https://media.discordapp.net/attachments/735590814662656102/806960573753327657/cc.png?width=638&height=638", + }, + }; + } else { + const availableAttachmentTypes = [ + ...new Set(currGun.aments.map(x => x.type)), + ]; + return { + title: currGun.gunname, + color: 11348938, + fields: [ + { + name: + "**" + currGun.gunname + "** has the following attachment types:", + value: + "```\n" + + availableAttachmentTypes.map(x => at[x - 1]).join(",\n") + + "```", + }, + ], + footer: { + text: "All the stats courtesy of Project Lighthouse", + icon_url: + "https://media.discordapp.net/attachments/735590814662656102/806960573753327657/cc.png?width=638&height=638", + }, + }; + } +} +// console.log(attachments("Peacekeeper:muzzle")); //common.makeError(); +/* console.log(attachments(":")); //common.makeError(); +console.log(attachments("47:optics")); //common.makeError(); +console.log(attachments("47")); //common.makeError(); +console.log(attachments("47 + ")); //common.makeError(); +console.log(attachments("47 + :")); //common.makeError(); +console.log(attachments("47 + red dot")); common.makeError();*/ diff --git a/command/CODM/perk.js b/command/CODM/perk.js @@ -0,0 +1,196 @@ +const { MessageEmbed } = require("discord.js"); +const { CODMClient } = require("cath"); +const c = new CODMClient("Gae"); +module.exports = { + name: "perk", + description: "Get perk stats", + type: "CHAT_INPUT", + usage: "{Perk}", + category: "CODM", + options: [ + { + type: "SUB_COMMAND", + name: "red", + description: "Red Perk", + options: [ + { + type: 3, + name: "perk", + description: "Perk", + required: true, + choices: [ + { + name: "Fast Recover", + value: "fastrecover", + }, + { + name: "Persistence", + value: "persistence", + }, + { + name: "Flak Jacket", + value: "flakjacket", + }, + { + name: "Skulker", + value: "skulker", + }, + { + name: "Agile", + value: "agile", + }, + { + name: "Lightweight", + value: "lightweight", + }, + { + name: "Restock", + value: "restock", + }, + { + name: "Tactician", + value: "tactician", + }, + { + name: "Overclock", + value: "overclock", + }, + { + name: "Martydom", + value: "martydom", + }, + { + name: "Iron Lungs", + value: "ironlungs", + }, + ], + }, + ], + }, + { + type: "SUB_COMMAND", + name: "green", + description: "Green Perk", + options: [ + { + type: 3, + name: "perk", + description: "Perk", + required: true, + choices: [ + { + name: "Vulture", + value: "vulture", + }, + { + name: "Toughness", + value: "toughness", + }, + { + name: "Tracker", + value: "tracker", + }, + { + name: "Ghost", + value: "ghost", + }, + { + name: "Cold Blooded", + value: "coldblooded", + }, + { + name: "Hardwired", + value: "hardwired", + }, + { + name: "Quick Fix", + value: "quickfix", + }, + { + name: "Amped", + value: "amped", + }, + { + name: "Recon", + value: "recon", + }, + { + name: "Gung Ho", + value: "gungho", + }, + ], + }, + ], + }, + { + type: "SUB_COMMAND", + name: "blue", + description: "Blue Perk", + options: [ + { + type: 3, + name: "perk", + description: "Perk", + required: true, + choices: [ + { + name: "Hardline", + value: "hardline", + }, + { + name: "Demo Expert", + value: "demoexpert", + }, + { + name: "Tactical Mask", + value: "tacticalmask", + }, + { + name: "Alert", + value: "alert", + }, + { + name: "Engineer", + value: "engineer", + }, + { + name: "Dead Silence", + value: "deadsilence", + }, + { + name: "Shrapnel", + value: "shrapnel", + }, + { + name: "High Alert", + value: "highalert", + }, + { + name: "Launcher Plus", + value: "launcherplus", + }, + ], + }, + ], + }, + ], + run: async (client, interaction, args) => { + const val = args[1]; + const d = await c.getperk(val); + const embed = new MessageEmbed() + .setColor( + d.type == "green" + ? "09654a" + : d.type == "red" + ? "8a0a0a" + : d.type == "blue" + ? "1047a4" + : client.color + ) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setTitle(d.perk) + .addField("Effects", d.effects); + interaction.followUp({ embeds: [embed] }); + }, +}; diff --git a/command/CODM/sgrelo.js b/command/CODM/sgrelo.js @@ -0,0 +1,119 @@ +module.exports = { + name: "sgrelo", + description: "Calculate reload time for shotgun", + options: [ + { + type: 7, + name: "gun", + description: "Gun name", + required: true, + }, + ], + run: async (client, interaction, args) => { + let err = "", + wrn = "", + interpretedAs = []; + function mather(inp) { + const inpArr = interpreter(inp), + outArr = []; + inpArr.map((x, i, a) => { + for (let j = i + 1; j < a.length; j++) { + outArr.push(worker(x, a[j])); + } + }); + const aArr = outArr.map(x => x.a), + iArr = outArr.map(x => x.i); + return ( + "Input: `" + + interpretedAs.join("`, `") + + "`" + + (aArr.length == 1 + ? "\nOpening and Closing Animation Time: " + + beautifier(aArr[0]) + + "\nReload Time: " + + beautifier(iArr[0]) + : "\nAll Opening and Closing Animation Time: " + + aArr.map(x => beautifier(x)).join(", ") + + "\nAll Reload Time: " + + iArr.map(x => beautifier(x)).join(", ") + + "\nAverage Opening and Closing Animation Time: " + + beautifier(aArr.reduce((t, x) => t + x, 0) / aArr.length) + + "\nAverage Reload Time: " + + beautifier(iArr.reduce((t, x) => t + x, 0) / iArr.length)) + ); + } + + function interpreter(inp) { + let out = [ + ...new Set( + inp + .split(/\n|, |,/g) + .filter(x => x) + .map(x => x.toLowerCase().replace(/[^0-9a-z]/g, "")) + ), + ]; + out = out + .map(x => { + interpretedAs.push(x); + const obj = { + b: 0, + f: 0, + }; + if ( + x.split(/b/g).length > 2 || + x.split(/f/g).length > 2 || + x.split(/[a-z]/g).length > 3 + ) { + err += "Unknown identifier `" + x + "`\n"; + } else if (x.indexOf("b") === -1 || x.indexOf("f") === -1) { + err += "Missing identifier `" + x + "`\n"; + } else if (x.indexOf("b") === x.length - 1) { + obj.b = parseFloat(x.split("f")[1].trim()); + obj.f = parseFloat(x.split("f")[0].trim()); + } else if (x.indexOf("f") === x.length - 1) { + obj.b = parseFloat(x.split("b")[0].trim()); + obj.f = parseFloat(x.split("b")[1].trim()); + } else { + err += "Unknown identifier `" + x + "`\n"; + } + if (!obj.b && obj.f) { + err += "Couldn't interpret `" + x + "`\n"; + } else if (!Number.isInteger(obj.b)) { + err += "Decimal bullet count found `" + x + "`\n"; + } else if (!Number.isInteger(obj.f)) { + wrn += "Decimal value found `" + x + "`\n"; + } + return obj; + }) + .filter(x => JSON.stringify(x).length && x); + if (out.length === 1) { + err += "Single equation found\n"; + } + return err || !out.length ? [] : out; + } + + function worker(o1, o2) { + const out = { + i: 0, + a: 0, + }; + out.i = (o1.f - o2.f) / (o1.b - o2.b); + out.a = o1.f - out.i * o1.b; + return out; + } + + function beautifier(num) { + return parseFloat(num.toFixed(2)).toString() + "s"; + } + + const msg = mather(args[0]); + + if (err !== "") { + interaction.followUp(err); + } else if (wrn !== "") { + interaction.followUp({ content: wrn + "\n" + msg }); + } else { + interaction.followUp({ content: msg }); + } + }, +}; diff --git a/command/CODM/stats.js b/command/CODM/stats.js @@ -0,0 +1,302 @@ +const common = require("../../util/functions/common"); +const data = require("../../util/Data/data.json"); +const Discord = require("discord.js"); + +let currGun, + currStats, + currAttachments, + currRecoilArr, + currDRM, + interpretion, + recoilAvailable, + chart, + hasError; +const errMsg = "*Generic placeholder error message*"; +module.exports = { + name: "stats", + description: "Check gun stats", + usage: "(Gun)", + category: "CODM", + options: [ + { + type: 3, + name: "gun_name", + description: "Name of the gun", + required: true, + choices: [], + }, + { + type: 3, + name: "1st_attchment", + description: "First attachment", + }, + { + type: 3, + name: "2nd_attchment", + description: "Second attachment", + }, + { + type: 3, + name: "3rd_attchment", + description: "Third attachment", + }, + { + type: 3, + name: "4th_attchment", + description: "Forth attachment", + }, + { + type: 3, + name: "5th_attchment", + description: "Fifth attachment", + }, + ], + run: async (client, interaction, args) => { + recoilAvailable = false; + hasError = false; + console.log(args); + const repEmb = statsHandler(args.join(" ").replace("\n", " ")); + if (hasError) { + interaction.followUp({ embeds: [repEmb] }); + } + if (recoilAvailable) { + repEmb.fields.push({ + name: "**Recoil Graph**", + value: + "```\nThe Recoil graph below is dynamic (change based on attachment equipped)```", + }); + const recoilImageLink = await chart.getShortUrl(); + repEmb.image = { url: recoilImageLink }; + } + interaction.followUp({ embeds: [repEmb] }); + }, +}; + +function inpHandler(inpmsg) { + statsHandler(inpmsg.split("+")[0]); +} + +function statsHandler(inpmsg) { + let statsNames = [ + "Pellets", + "Detonation Range", + "Explosion Radius", + "Explosion Damage", + "Firing Mode", + "Rate of Fire", + "Bullet in Burst", + "Time Between Burst", + "Bullet Speed", + "Penetration Level", + "Bullet Spread", + "Idle Sway", + "Hipfire Pellet Spread", + "ADS Pellet Spread", + "ADS Time", + "Sprint-to-Fire Time", + "ADS Zoom", + "Magazine", + "Reserve", + "Reload Type", + "Cancel Reload Time", + "Reload Time", + "Full Reload Time", + "Drop Time", + "Raise Time", + "Sprinting Speed", + "Walking Speed", + "Straifing Speed", + "Damage per Tick", + "Number of Ticks", + "Time Between Ticks", + "Breath Hold Time", + "shouldNeverHappen0", + "shouldNeverHappen1", + "shouldNeverHappen2", + "shouldNeverHappen3", + "shouldNeverHappen4", + ], + out = []; + + currGun = common.weaponIdentifier(inpmsg); + if (typeof currGun == "string") { + hasError = true; + return currGun; + } + currStats = currGun.stats; + currDRM = currGun.drm[0]; + currAttachments = []; + currAttachments = common.attachmentsIdentifier( + inpmsg, + currGun.aments, + currStats + ); + if (typeof currAttachments == "string") { + hasError = true; + return currAttachments; + } + currRecoilArr = [1, 1, currGun.stats[17]]; + if (currAttachments.length != 0) { + const totalEffects = common.totaler(currAttachments); + + currStats = common.updateStatswithEffects(totalEffects, currStats); + currRecoilArr = [totalEffects[2], totalEffects[3], currGun.stats[17]]; // must happen after currStats update + currDRM = currGun.drm[totalEffects[37]]; + currDRM.range = currDRM.range.map(x => + Math.round(x * (1 + totalEffects[13] / 100)) + ); + out = common.attachmentHandler(totalEffects, currStats); + } + function statsWorker() { + if (currStats[19] === 2) { + currStats[21] = + currStats[20] + currStats[21] * currStats[17] + currStats[22]; + currStats[20] = 0; + currStats[22] = 0; + } + currStats[25] = (currStats[25] * currStats[26]) / 100; + + const outReady = currStats.map((x, i) => + x ? statsNames[i].padEnd(24) + ":".padEnd(3) + beautifier(i) : "" + ); + out = [ + ...[ + "Basic Stats", + "ADS Stats", + "Bullet Stats", + "Magazine", + "Handling Stats", + "Mobility Stats", + "Miscellaneous Stats", + ].map((x, i) => + fieldMaker( + x, + [ + [04, 05, 09], + [14, 16, 11, 31], + [00, 06, 07, 08, 10, 12, 13], + [17, 18, 19, 20, 21, 22], + [23, 24], + [25, 26, 27, 15], + [28, 29, 30, 01, 02, 03], + ][i] + ) + ), + ...out, + ]; + function fieldMaker(inpName, inpIndx) { + inpIndx = inpIndx.filter(x => outReady[x]); + return inpIndx.length + ? { + name: "**" + inpName + "**", + value: "```\n" + inpIndx.map(x => outReady[x]).join("\n") + "```", + } + : ""; + } + } + statsWorker(); + + function beautifier(j) { + switch (j) { + case 04: + return data.firingModes[currStats[j] - 1]; + case 09: + return data.penetrationLevels[currStats[j] - 1]; + case 19: + return data.reloadTypes[currStats[j] - 1]; + case 08: + if (currStats[j] == -1) { + return "Infinity"; + } else { + return parseFloat(currStats[j].toFixed(2)).toString() + " m/s"; + } + case 03: + return parseFloat(currStats[j].toFixed(2)) + .toString() + .replace(".", " ~ "); + default: + return parseFloat(currStats[j].toFixed(2)).toString() + addUnit(j); + } + + function addUnit(j) { + switch (j) { + case 07: + case 14: + case 15: + case 23: + case 24: + case 31: + return " ms"; + case 27: + case 28: + case 25: + case 26: + return " m/s"; + case 20: + case 21: + case 22: + return " s"; + case 16: + return "%"; + case 06: + return " Rounds"; + case 05: + return " RPM"; + default: + return ""; + } + } + } + interpretion = currGun.gunname + common.interpretioner(currAttachments); + if (currGun.recoil.hr.length > 2) { + chart = common.recoilHandler( + currGun.recoil.hr, + currGun.recoil.vr, + currRecoilArr[0], + currRecoilArr[1], + currRecoilArr[2] + ); + recoilAvailable = true; + } else { + recoilAvailable = false; + } + if (chart == "none") { + recoilAvailable = false; + } + if (chart == "err" || currAttachments == "err") { + hasError = true; + return "Cocaineeee"; + } + const dmg = + common.damageHandler( + currDRM.damage, + currDRM.range, + 1, + 100, + 60000 / currStats[5], + currStats[7], + currStats[6], + currStats[0] + ) || "```This should never happen```"; + out = [ + currGun.description + ? { + name: "**Description:**", + value: "```\n" + currGun.description + "```", + } + : {}, + { name: "**Damage Profile:**", value: dmg }, + ...out, + ]; + out = out.filter(x => x.value); + return { + title: interpretion, + color: 5814783, + fields: out, + footer: { + text: "[OUTDATED] All data courtesy of Project Lighthouse 2.0 and CoDM Research Crew", + icon_url: + "https://media.discordapp.net/attachments/735590814662656102/806960573753327657/cc.png?width=638&height=638", + }, + }; +} diff --git a/command/Config/premium.js b/command/Config/premium.js @@ -12,21 +12,23 @@ module.exports = { required: true, }, ], - run: async (client, interaction, args) => { + run: async (client, interaction) => { try { - console.log(interaction.options.getBoolean("choice")); const user = await client.data.getUser(interaction.user.id); const guild = await client.data.getGuild(interaction.guild.id); if (interaction.options.getBoolean("choice") == true) { if (guild.Premium == true) { - return client.serr(interaction, "Config", "premium", 506); + interaction.followUp({ content: "This server is already premium" }); } if ( (user.Tier == 1 && user.PremiumServers.length >= 5) || (user.Tier == 2 && user.PremiumServers.length >= 2) || (user.Tier == 3 && user.PremiumServers.length >= 0) ) { - return client.serr(interaction, "Config", "premium", 505); + interaction.followUp({ + content: + "You have already reached the maximum amount of premium servers", + }); } else { await client.data.setPremium(interaction.guild.id, "true"); await client.data.pushGuild( @@ -50,7 +52,7 @@ module.exports = { ), ], }); - client.channels.cache.get(client.ServerLog).send({ + client.channels.cache.get(client.config.ServerLog).send({ embeds: [ new MessageEmbed() .setTitle("New Premium Server") @@ -68,11 +70,14 @@ module.exports = { } } else { if (guild.Premium == false) { - return client.serr(interaction, "Config", "premium", 507); + interaction.followUp({ content: "This server isn't premium yet" }); } - if (!user.PremiumServers.includes(interaction.guild.id)) - return client.serr(interaction, "Config", "premium", 509); - else { + if (!user.PremiumServers.includes(interaction.guild.id)) { + interaction.followUp({ + content: + "You can't remove due to you aren't the person who made the server premium", + }); + } else { await client.data.setPremium(interaction.guild.id, "false"); await client.data.pushGuild( interaction.user.id, @@ -94,7 +99,7 @@ module.exports = { ), ], }); - client.channels.cache.get(client.ServerLog).send({ + client.channels.cache.get(client.config.ServerLog).send({ embeds: [ new MessageEmbed() .setTitle("Premium Server Removed") @@ -113,7 +118,7 @@ module.exports = { } } catch (e) { console.log(e); - return client.serr(interaction, "Config", "premium", 999); + interaction.followUp({ content: `**Error**: ${e.message}` }); } }, }; diff --git a/command/Config/set.js b/command/Config/set.js @@ -1,220 +0,0 @@ -const starboardClient = require("../../client/StarboardClient"); -module.exports = { - name: "set", - description: "Configure settings for the server", - UserPerms: ["ADMINISTRATOR"], - category: "Config", - options: [ - { - type: 1, - name: "muterole", - description: "Set mute role for the server", - options: [ - { - type: 8, - name: "role", - description: "The role for muted users", - required: true, - }, - ], - }, - { - type: 1, - name: "prefix", - description: "Set prefix for the server", - options: [ - { - type: 3, - name: "prefix", - description: "The prefix for the server", - required: true, - choices: [], - }, - ], - }, - { - type: 1, - name: "welcome", - description: "Set welcome channel for the server", - options: [ - { - type: 7, - name: "channel", - description: "The channel for welcome messages", - required: true, - }, - ], - }, - { - type: 1, - name: "goodbye", - description: "Set goodbye channel for the server", - options: [ - { - type: 7, - name: "channel", - description: "The channel for goodbye messages", - required: true, - }, - ], - }, - { - type: 1, - name: "starboard", - description: "Set starboard channel for the server", - options: [ - { - type: 7, - name: "channel", - description: "The channel for starboard messages", - required: true, - }, - { - type: 4, - name: "starcount", - description: "The required amount of star to trigger the starboard", - required: true, - }, - ], - }, - { - type: 1, - name: "chatbot", - description: "Set chatbot channel for the server", - options: [ - { - type: 7, - name: "channel", - description: "The channel for chatbot messages", - required: true, - }, - ], - }, - { - type: 1, - name: "log", - description: "Set log channel for the server", - options: [ - { - type: 7, - name: "channel", - description: "The channel for log messages", - required: true, - }, - ], - }, - { - type: 1, - name: "level", - description: "Set whether level system is activated for the server", - options: [ - { - type: 5, - name: "choice", - description: "whether level system is activated for the server", - required: true, - }, - ], - }, - ], - run: async (client, interaction, args) => { - if (args[0].toLowerCase() === "muterole") { - const role = interaction.guild.roles.cache.get(args[1]); - if (role.managed) { - interaction.followUp({ content: "You must provide a non bot role" }); - } else { - await client.data.setMuterole(interaction.guild.id, args[1]); - interaction.followUp({ - content: `Saved **${role.name}** as the mute role`, - }); - } - } else if (args[0].toLowerCase() === "prefix") { - await client.data.setPrefix(interaction.guild.id, args[1]); - interaction.followUp({ content: `Saved \`${args[1]}\` as the prefix` }); - } else if (args[0].toLowerCase() === "welcome") { - const channel = interaction.guild.channels.cache.get(args[1]); - if (channel.type !== "GUILD_TEXT") - interaction.followUp({ content: "Please provide a text channel" }); - else { - await client.data.setWelcome(interaction.guild.id, args[1]); - interaction.followUp({ - content: `Saved **${channel}** as the welcome channel`, - }); - } - } else if (args[0].toLowerCase() === "goodbye") { - const channel = interaction.guild.channels.cache.get(args[1]); - if (channel.type !== "GUILD_TEXT") - interaction.followUp({ content: "Please provide a text channel" }); - else { - await client.data.setGoodbye(interaction.guild.id, args[1]); - interaction.followUp({ - content: `Saved **${channel}** as the goodbye channel`, - }); - } - } else if (args[0].toLowerCase() === "starboard") { - const channel = interaction.guild.channels.cache.get(args[1]); - if (channel.type !== "GUILD_TEXT") - interaction.followUp({ content: "Please provide a text channel" }); - else { - starboardClient.config.guilds.add({ - id: interaction.guild.id, - options: { - starCount: args[2], - starboardChannel: args[1], - }, - }); - await client.data.setStarboard(interaction.guild.id, args[1], args[2]); - interaction.followUp({ - content: `Saved **${channel}** as the starboard channel`, - }); - } - } else if (args[0].toLowerCase() === "chatbot") { - const channel = interaction.guild.channels.cache.get(args[1]); - if (channel.type !== "GUILD_TEXT") - interaction.followUp({ content: "Please provide a text channel" }); - else { - await client.data.setChatbot(interaction.guild.id, args[1]); - interaction.followUp({ - content: `Saved **${channel}** as the chatbot channel`, - }); - } - } else if (args[0].toLowerCase() === "log") { - const channel = interaction.guild.channels.cache.get(args[1]); - if (channel.type !== "GUILD_TEXT") - interaction.followUp({ content: "Please provide a text channel" }); - else { - let webhookid; - let webhooktoken; - await channel - .createWebhook(interaction.guild.name, { - avatar: interaction.guild.iconURL({ format: "png" }), - }) - .then(webhook => { - webhookid = webhook.id; - webhooktoken = webhook.token; - }); - await client.data.setLog( - interaction.guild.id, - channel.id, - webhookid, - webhooktoken - ); - interaction.followUp({ - content: `Saved **${channel}** as the log channel`, - }); - } - } else if (args[0].toLowerCase() === "level") { - if (args[1]) { - await client.data.setGLevel(interaction.guild.id, "true"); - interaction.followUp({ - content: `Levelling is enabled in this server now.`, - }); - } else { - await client.data.setGLevel(interaction.guild.id, "false"); - interaction.followUp({ - content: `Levelling is disabled in this server now.`, - }); - } - } - }, -}; diff --git a/command/Config/settings.js b/command/Config/settings.js @@ -0,0 +1,537 @@ +const starboardClient = require("../../client/StarboardClient"); +const { MessageEmbed } = require("discord.js"); +const fs = require("fs"); +module.exports = { + name: "settings", + description: "Configure settings for the server", + UserPerms: ["ADMINISTRATOR"], + category: "Config", + options: [ + { + type: 1, + name: "muterole", + description: "Configure mute role settings for the server", + options: [ + { + type: 8, + name: "role", + description: "The role for muted users", + required: true, + }, + ], + }, + { + type: 1, + name: "prefix", + description: "Configure prefix settings for the server", + options: [ + { + type: 3, + name: "prefix", + description: "The prefix for the server", + required: true, + choices: [], + }, + ], + }, + { + type: 1, + name: "welcome", + description: "Configure welcome channel settings for the server", + options: [ + { + type: 7, + name: "channel", + description: "The channel for welcome messages", + required: true, + channelTypes: ["GUILD_TEXT"], + }, + ], + }, + { + type: 1, + name: "goodbye", + description: "Configure goodbye channel settings for the server", + options: [ + { + type: 7, + name: "channel", + description: "The channel for goodbye messages", + required: true, + channelTypes: ["GUILD_TEXT"], + }, + ], + }, + { + type: 1, + name: "starboard", + description: "Configure starboard channel settings for the server", + options: [ + { + type: 7, + name: "channel", + description: "The channel for starboard messages", + required: true, + channelTypes: ["GUILD_TEXT"], + }, + { + type: 4, + name: "starcount", + description: "The required amount of star to trigger the starboard", + required: true, + }, + ], + }, + { + type: 1, + name: "chatbot", + description: "Configure chatbot channel settings for the server", + options: [ + { + type: 7, + name: "channel", + description: "The channel for chatbotmessages", + required: true, + channelTypes: ["GUILD_TEXT"], + }, + ], + }, + { + type: 1, + name: "log", + description: "Configure log channel settings for the server", + options: [ + { + type: 7, + name: "channel", + description: "The channel for log messages", + required: true, + channelTypes: ["GUILD_TEXT"], + }, + ], + }, + { + type: 2, + name: "enable", + description: "Enable commands/category for the server", + options: [ + { + type: 1, + name: "command", + description: "To enable commands", + options: [ + { + type: 3, + name: "name", + description: "The command name to be enabled", + required: true, + }, + ], + }, + { + type: 1, + name: "category", + description: "To enable categories", + options: [ + { + type: 3, + name: "name", + description: "The category name to be enabled", + required: true, + choices: [ + { + name: "codm", + value: "CODM", + }, + { + name: "config", + value: "Config", + }, + { + name: "economy", + value: "Economy", + }, + { + name: "fun", + value: "Fun", + }, + { + name: "information", + value: "Information", + }, + { + name: "moderation", + value: "Moderation", + }, + { + name: "utilities", + value: "Utilities", + }, + ], + }, + ], + }, + ], + }, + { + type: 2, + name: "disable", + description: "Disable commands/category for the server", + options: [ + { + type: 1, + name: "command", + description: "To disable commands", + options: [ + { + type: 3, + name: "name", + description: "The command name to be disabled", + required: true, + }, + ], + }, + { + type: 1, + name: "category", + description: "To disable categories", + options: [ + { + type: 3, + name: "name", + description: "The category name to be disabled", + required: true, + choices: [ + { + name: "codm", + value: "CODM", + }, + { + name: "config", + value: "Config", + }, + { + name: "economy", + value: "Economy", + }, + { + name: "fun", + value: "Fun", + }, + { + name: "information", + value: "Information", + }, + { + name: "moderation", + value: "Moderation", + }, + { + name: "utilities", + value: "Utilities", + }, + ], + }, + ], + }, + ], + }, + { + type: 1, + name: "level", + description: "Configure level settings for the server", + options: [ + { + type: 5, + name: "choice", + description: "Set whether level system is activated for the server", + required: true, + }, + ], + }, + { + type: 1, + name: "nsfw", + description: "Configure nsfw settings for the server", + options: [ + { + type: 5, + name: "choice", + description: "Set whether NSFW commands are activated for the server", + required: true, + }, + ], + }, + { + type: 1, + name: "tips", + description: "Configure tips settings for the server", + options: [ + { + type: 5, + name: "choice", + description: "Set whether tips system is activated for the server", + required: true, + }, + ], + }, + { + type: 1, + name: "overall", + description: "See overall settings for the server", + options: [], + }, + ], + run: async (client, interaction, args, utils, data) => { + if (args[0].toLowerCase() === "muterole") { + const role = interaction.guild.roles.cache.get(args[1]); + if (role.managed) { + interaction.followUp({ content: "You must provide a non bot role" }); + } else { + await client.data.setMuterole(interaction.guild.id, args[1]); + interaction.followUp({ + content: `Saved **${role.name}** as the mute role`, + }); + } + } else if (args[0].toLowerCase() === "prefix") { + await client.data.setPrefix(interaction.guild.id, args[1]); + interaction.followUp({ content: `Saved \`${args[2]}\` as the prefix` }); + } else if (args[0].toLowerCase() === "welcome") { + const channel = interaction.guild.channels.cache.get(args[1]); + if (channel.type !== "GUILD_TEXT") { + interaction.followUp({ content: "Please provide a text channel" }); + } else { + await client.data.setWelcome(interaction.guild.id, args[1]); + interaction.followUp({ + content: `Saved **${channel}** as the welcome channel`, + }); + } + } else if (args[0].toLowerCase() === "goodbye") { + const channel = interaction.guild.channels.cache.get(args[1]); + if (channel.type !== "GUILD_TEXT") { + interaction.followUp({ content: "Please provide a text channel" }); + } else { + await client.data.setGoodbye(interaction.guild.id, args[1]); + interaction.followUp({ + content: `Saved **${channel}** as the goodbye channel`, + }); + } + } else if (args[0].toLowerCase() === "starboard") { + const channel = interaction.guild.channels.cache.get(args[1]); + if (channel.type !== "GUILD_TEXT") { + interaction.followUp({ content: "Please provide a text channel" }); + } else { + starboardClient.config.guilds.add({ + id: interaction.guild.id, + options: { + starCount: args[2], + starboardChannel: args[1], + }, + }); + await client.data.setStarboard(interaction.guild.id, args[1], args[2]); + interaction.followUp({ + content: `Saved **${channel}** as the starboard channel`, + }); + } + } else if (args[0].toLowerCase() === "chatbot") { + const channel = interaction.guild.channels.cache.get(args[1]); + if (channel.type !== "GUILD_TEXT") { + interaction.followUp({ content: "Please provide a text channel" }); + } else { + await client.data.setChatbot(interaction.guild.id, args[1]); + interaction.followUp({ + content: `Saved **${channel}** as the chatbot channel`, + }); + } + } else if (args[0].toLowerCase() === "log") { + const channel = interaction.guild.channels.cache.get(args[1]); + if (channel.type !== "GUILD_TEXT") { + interaction.followUp({ content: "Please provide a text channel" }); + } else { + let webhookid; + let webhooktoken; + await channel + .createWebhook(interaction.guild.name, { + avatar: interaction.guild.iconURL({ format: "png" }), + }) + .then(webhook => { + webhookid = webhook.id; + webhooktoken = webhook.token; + }); + await client.data.setLog( + interaction.guild.id, + channel.id, + webhookid, + webhooktoken + ); + interaction.followUp({ + content: `Saved **${channel}** as the log channel`, + }); + } + } else if (args[0].toLowerCase() === "level") { + if (args[1]) { + await client.data.setGLevel(interaction.guild.id, "true"); + interaction.followUp({ + content: `Levelling is enabled in this server now.`, + }); + } else { + await client.data.setGLevel(interaction.guild.id, "false"); + interaction.followUp({ + content: `Levelling is disabled in this server now.`, + }); + } + } else if (args[0].toLowerCase() === "nsfw") { + if (args[1]) { + await client.data.setNSFW(interaction.guild.id, "true"); + interaction.followUp({ + content: `NSFW is enabled in this server now.`, + }); + } else { + await client.data.setNSFW(interaction.guild.id, "false"); + interaction.followUp({ + content: `NSFW is disabled in this server now.`, + }); + } + } else if (args[0].toLowerCase() === "tips") { + if (args[1]) { + await client.data.setTips(interaction.guild.id, "true"); + interaction.followUp({ + content: `Tips is enabled in this server now.`, + }); + } else { + await client.data.setTips(interaction.guild.id, "false"); + interaction.followUp({ + content: `Tips is disabled in this server now.`, + }); + } + } else if (args[0].toLowerCase() === "enable") { + const type = args[1].toLowerCase(); + const name = args[2].toLowerCase(); + if (type === "command") { + if (!!client.slashCommands.get(name) === false) { + interaction.followUp({ + content: `There isn't any command/category named \`${name}\``, + }); + } else if (!data.Guild.Commands.includes(name)) { + interaction.followUp({ + content: `\`${args[2]}\` command had already been enabled`, + }); + } else if ( + data.Guild.Commands.includes(name) && + !!client.slashCommands.get(name) === true + ) { + await client.data.enable(interaction.guild.id, "command", name); + interaction.followUp({ + content: `\`${args[2]}\` command is now enabled`, + }); + } + } + if (type === "category") { + const category = fs.readdirSync("./command"); + if (!data.Guild.Category.includes(args[2])) { + interaction.followUp({ + content: `\`${args[2]}\` category had already been enabled`, + }); + } + if ( + data.Guild.Category.includes(args[2]) && + category.includes(args[2]) + ) { + await client.data.enable(interaction.guild.id, "category", args[2]); + interaction.followUp({ + content: `\`${args[2]}\` category is now enabled`, + }); + } + } + } else if (args[0].toLowerCase() === "disable") { + const type = args[1].toLowerCase(); + const name = args[2].toLowerCase(); + if (type === "command") { + if (!!client.slashCommands.get(name) === false) { + interaction.followUp({ + content: `There isn't any command/category named \`${name}\``, + }); + } else if (data.Guild.Commands.includes(name)) { + interaction.followUp({ + content: `\`${args[2]}\` command had already been disabled`, + }); + } else if ( + !data.Guild.Commands.includes(name) && + !!client.slashCommands.get(name) === true + ) { + await client.data.disable(interaction.guild.id, "command", name); + interaction.followUp({ + content: `\`${args[2]}\` command is now disabled`, + }); + } + } + if (type === "category") { + const category = fs.readdirSync("./command"); + if (data.Guild.Category.includes(args[2])) { + interaction.followUp({ + content: `\`${args[2]}\` category had already been disabled`, + }); + } + if ( + !data.Guild.Category.includes(args[2]) && + category.includes(args[2]) + ) { + await client.data.disable(interaction.guild.id, "category", args[2]); + interaction.followUp({ + content: `\`${args[2]}\` category is now disabled`, + }); + } + } + } else { + const d = ` + **Mute Role**: ${ + interaction.guild.roles.cache.get(data.Guild.Muterole) + ? interaction.guild.roles.cache.get(data.Guild.Muterole) + : "None" + } + **Prefix**: ${data.Guild.Prefix ? data.Guild.Prefix : "C."} + **Welcome Channel**: ${ + interaction.guild.channels.cache.get(data.Guild.Welcome) + ? interaction.guild.channels.cache.get(data.Guild.Welcome) + : "None" + } + **Goodbye Channel**: ${ + interaction.guild.channels.cache.get(data.Guild.Goodbye) + ? interaction.guild.channels.cache.get(data.Guild.Goodbye) + : "None" + } + **Starboard Channel**: ${ + interaction.guild.channels.cache.get(data.Guild.Starboard) + ? interaction.guild.channels.cache.get(data.Guild.Starboard) + : "None" + } + **Chatbot Channel**: ${ + interaction.guild.channels.cache.get(data.Guild.Chatbot) + ? interaction.guild.channels.cache.get(data.Guild.Chatbot) + : "None" + } + **Log Channel**: ${ + interaction.guild.channels.cache.get(data.Guild.Log) + ? interaction.guild.channels.cache.get(data.Guild.Log) + : "None" + } + **Level**: ${data.Guild.Level ? "Enable" : "Disabled"} + **NSFW**: ${data.Guild.NSFW ? "Enable" : "Disabled"} + **Tips**: ${data.Guild.Tips ? "Enable" : "Disabled"} + **Disabled Commands**: ${ + data.Guild.Commands.length ? data.Guilds.Commands.join(",") : "None" + } + **Disabled Categories**: ${ + data.Guild.Category.length ? data.Guilds.Category.join(",") : "None" + } + `; + const embed = new MessageEmbed() + .setTitle(`**${interaction.guild.name}** Settings`) + .setColor(client.color) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setDescription(d); + interaction.followUp({ embeds: [embed] }); + } + }, +}; diff --git a/command/Economy/bal.js b/command/Economy/bal.js @@ -8,21 +8,22 @@ module.exports = { { type: 6, name: "user", - description: "The user you want to hack", - required: true, + description: "The user you want to see", + required: false, }, ], type: "CHAT_INPUT", run: async (client, interaction, args) => { - const user = interaction.guild.members.cache.get(args[0]); + const user = + interaction.guild.members.cache.get(args[0]) || interaction.member; const bal = await client.bal(user.id); - let embed = new MessageEmbed() - .addField(`${client.currency} Balance`, `**${bal}**`) + const embed = new MessageEmbed() + .setTitle(`${user.displayName}'s Balance`) + .setDescription(`**${bal}** ${client.currency}`) .setColor(client.color) .setURL(client.web) - .setTitle(`${user.displayName}'s Balance`) .setTimestamp() - .setFooter(`Requested by ${client.author}`); - await interaction.followUp({ embeds: [embed] }); + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()); + interaction.followUp({ embeds: [embed] }); }, }; diff --git a/command/Economy/bet.js b/command/Economy/bet.js @@ -1,53 +1,81 @@ const { MessageEmbed } = require("discord.js"); +const { bool } = require("cath"); module.exports = { - name: "gamble", + name: "bet", usage: "(Number)", timeout: 5000, description: "Win double amount of coins or lose all coins", category: "Economy", options: [ { - type: 10, + type: 4, name: "cp", description: "The number of CP you want to bet", required: true, }, ], - run: async (client, interaction, args, utils, data) => { - const max = 1000000; - const amt = args[0]; - if ((await client.bal(interaction.user.id)) < amt) { - return client.serr(interaction, "Economy", "bet", 20); - } - if (amt > max) { - return client.serr(interaction, "Economy", "bet", 101); - } - if (utils.toBool() === true) { - const winamt = amt * 1; + run: async (client, interaction, args) => { + const max = 100000; + let amt = args[0]; + if (amt > max) amt = max; + const winamt = amt * 2; + if (args[0] < 100) { + interaction.followUp({ + content: `You need to bet at least 100${client.currency}`, + }); + } else if ((await client.bal(interaction.user.id)) < amt) { + interaction.followUp({ content: "You don't have enough balance" }); + } else if (bool()) { + const multi = (await client.multi(interaction)) / 10 + 1; await client.add(interaction.user.id, winamt, interaction); await client.ADDBWin(interaction.user.id); const abc = new MessageEmbed() .setColor("GREEN") .setTimestamp() + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) .setTitle(`${interaction.user.username} wins a gamble game`) - .setDescription( - `You win\n**${winamt}**${client.currency}\nYou now have **${ - parseInt(await client.bal(interaction.user.id)) + amt - }**${client.currency}` + .addFields( + { + name: "Won", + value: `**${Math.round(winamt * multi)}**${client.currency}`, + inline: true, + }, + { + name: "New Balance", + value: `**${Math.round( + (await client.bal(interaction.user.id)) + winamt * multi + )}**${client.currency}`, + inline: true, + }, + { + name: "Multiplier", + value: `x${2 + multi}`, + inline: true, + } ); - await interaction.followUp({ embeds: [abc] }); + interaction.followUp({ embeds: [abc] }); } else { await client.rmv(interaction.user.id, amt); const cba = new MessageEmbed() .setColor("RED") .setTimestamp() + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) .setTitle(`${interaction.user.username} loses a gamble game`) - .setDescription( - `You lost\n**${amt}**${client.currency}\nYou now have **${ - parseInt(await client.bal(interaction.user.id)) - amt - }**${client.currency}` + .addFields( + { + name: "Lost", + value: `**${amt}**${client.currency}`, + inline: true, + }, + { + name: "New Balance", + value: `**${ + parseInt(await client.bal(interaction.user.id)) - amt + }**${client.currency}`, + inline: true, + } ); - await interaction.followUp({ embeds: [cba] }); + interaction.followUp({ embeds: [cba] }); } }, }; diff --git a/command/Economy/blackjack.js b/command/Economy/blackjack.js @@ -0,0 +1,304 @@ +const Discord = require("discord.js"); +module.exports = { + name: "blackjack", + usage: "(Number)", + description: "Play a blackjack game to win money", + category: "Economy", + timeout: 10000, + options: [ + { + type: 4, + name: "cp", + description: "The number of CP you want to give", + required: true, + }, + ], + run: async (client, interaction, args) => { + let money = args[0]; + const max = 100000; + if (money > max) money = max; + const user = interaction.user; + if (money < 100) { + interaction.followUp({ + content: `You need to blackjack at least 100 ${client.currency}`, + }); + } else if ((await client.bal(user.id)) < money) { + interaction.followUp({ content: "You don't have enough balance" }); + } else { + let numCardsPulled = 0; + let gameOver = false; + const player = { + cards: [], + score: 0, + }; + const dealer = { + cards: [], + score: 0, + }; + function getCardsValue(a) { + let cardArray = [], + sum = 0, + i = 0, + dk = 10.5, + doubleking = "QQ", + aceCount = 0; + cardArray = a; + for (i; i < cardArray.length; i += 1) { + if ( + cardArray[i].rank === "J" || + cardArray[i].rank === "Q" || + cardArray[i].rank === "K" + ) { + sum += 10; + } else if (cardArray[i].rank === "A") { + sum += 11; + aceCount += 1; + } else if (cardArray[i].rank === doubleking) { + sum += dk; + } else { + sum += cardArray[i].rank; + } + } + while (aceCount > 0 && sum > 21) { + sum -= 10; + aceCount -= 1; + } + return sum; + } + + const deck = { + deckArray: [], + initialize: function () { + let suitArray, rankArray, s, r, n; + suitArray = ["b", "d", "g", "s"]; + rankArray = [2, 3, 4, 5, 6, 7, 8, 9, 10, "J", "Q", "K", "A"]; + n = 13; + + for (s = 0; s < suitArray.length; s += 1) { + for (r = 0; r < rankArray.length; r += 1) { + this.deckArray[s * n + r] = { + rank: rankArray[r], + suit: suitArray[s], + }; + } + } + }, + shuffle: function () { + let temp, i, rnd; + for (i = 0; i < this.deckArray.length; i += 1) { + rnd = Math.floor(Math.random() * this.deckArray.length); + temp = this.deckArray[i]; + this.deckArray[i] = this.deckArray[rnd]; + this.deckArray[rnd] = temp; + } + }, + }; + deck.initialize(); + deck.shuffle(); + async function bet(outcome) { + if (outcome === "win") { + await client.add(user.id, money, interaction); + await client.ADDBJWin(interaction.user.id); + } + if (outcome === "lose") { + await client.rmv(user.id, money); + } + } + + function endMsg(f, msg, cl, dealerC) { + let cardsMsg = ""; + player.cards.forEach(function (card) { + const emAR = ["โ™ฅ", "โ™ฆ", "โ™ ", "โ™ฃ"]; + const t = emAR[Math.floor(Math.random() * emAR.length)]; + cardsMsg += "[`" + t + card.rank.toString(); + if (card.suit == "d1") cardsMsg += "โ™ฅ"; + if (card.suit == "d2") cardsMsg += "โ™ฆ"; + if (card.suit == "d3") cardsMsg += "โ™ "; + if (card.suit == "d4") cardsMsg += "โ™ฃ"; + cardsMsg += "`](https://cath.gq/) "; + }); + cardsMsg += " > " + player.score.toString(); + + let dealerMsg = ""; + if (!dealerC) { + const emAR = ["โ™ฅ", "โ™ฆ", "โ™ ", "โ™ฃ"]; + const t = emAR[Math.floor(Math.random() * emAR.length)]; + dealerMsg = "[`" + t + dealer.cards[0].rank.toString(); + if (dealer.cards[0].suit == "d1") dealerMsg += "โ™ฅ"; + if (dealer.cards[0].suit == "d2") dealerMsg += "โ™ฆ"; + if (dealer.cards[0].suit == "d3") dealerMsg += "โ™ "; + if (dealer.cards[0].suit == "d4") dealerMsg += "โ™ฃ"; + dealerMsg += " ? ?`](https://cath.gq/)"; + } else { + dealerMsg = ""; + dealer.cards.forEach(function (card) { + const emAR = ["โ™ฅ", "โ™ฆ", "โ™ ", "โ™ฃ"]; + const t = emAR[Math.floor(Math.random() * emAR.length)]; + dealerMsg += "[`" + t + card.rank.toString(); + if (card.suit == "d1") dealerMsg += "โ™ฅ"; + if (card.suit == "d2") dealerMsg += "โ™ฆ"; + if (card.suit == "d3") dealerMsg += "โ™ "; + if (card.suit == "d4") dealerMsg += "โ™ฃ"; + dealerMsg += "`](https://cath.gq/) "; + }); + dealerMsg += " > " + dealer.score.toString(); + } + + const gambleEmbed = new Discord.MessageEmbed() + .setColor(cl || client.color) + .setTimestamp() + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTitle(interaction.user.username + `'s Blackjack game`) + .addField("You", cardsMsg, true) + .addField("NYX", dealerMsg, true) + .addField(f, msg); + interaction.followUp({ embeds: [gambleEmbed] }); + } + + async function endGame() { + if (player.score === 21) { + bet("win"); + gameOver = true; + await endMsg( + `Win! You got 21!`, + `NYX had ${dealer.score.toString()}`, + `GREEN` + ); + } + if (player.score > 21) { + bet("lose"); + gameOver = true; + await endMsg( + `Lost! You reached over 21!`, + `NYX had ${dealer.score.toString()}`, + `RED` + ); + } + if (dealer.score === 21) { + bet("lose"); + gameOver = true; + await endMsg( + `Lost! The dealer got 21!`, + `NYX had ${dealer.score.toString()}`, + `RED` + ); + } + if (dealer.score > 21) { + bet("win"); + gameOver = true; + await endMsg( + `Win! NYX reached over 21!`, + `NYX had ${dealer.score.toString()}`, + `GREEN` + ); + } + if ( + dealer.score >= 17 && + player.score > dealer.score && + player.score < 21 + ) { + bet("win"); + gameOver = true; + await endMsg( + `Win! You defeated NYX!`, + `NYX had ${dealer.score.toString()}`, + `GREEN` + ); + } + if ( + dealer.score >= 17 && + player.score < dealer.score && + dealer.score < 21 + ) { + bet("lose"); + gameOver = true; + await endMsg( + `Lost! NYX won!`, + `NYX had ${dealer.score.toString()}`, + `RED` + ); + } + if ( + dealer.score >= 17 && + player.score === dealer.score && + dealer.score < 21 + ) { + gameOver = true; + await endMsg(`Tie!`, `NYX had ${dealer.score.toString()}`, `RED`); + } + } + + function dealerDraw() { + dealer.cards.push(deck.deckArray[numCardsPulled]); + dealer.score = getCardsValue(dealer.cards); + numCardsPulled += 1; + } + + function newGame() { + hit(); + hit(); + dealerDraw(); + endGame(); + } + + function hit() { + player.cards.push(deck.deckArray[numCardsPulled]); + player.score = getCardsValue(player.cards); + + numCardsPulled += 1; + if (numCardsPulled > 2) { + endGame(); + } + } + + function stand() { + while (dealer.score < 17) { + dealerDraw(); + } + endGame(); + } + newGame(); + async function loop() { + if (gameOver) return; + + endMsg( + "To hit type `h`, for stand type `s`", + `GoodLuck ;)`, + client.color + ); + + const filter = m => m.author.id === interaction.user.id; + interaction.channel + .awaitMessages({ filter, max: 1, time: 1200000, errors: ["time"] }) + .then(interaction => { + interaction = interaction.first(); + if ( + interaction.content.toLowerCase() === "h" || + interaction.content.toLowerCase() === "hit" + ) { + hit(); + loop(); + return; + } else if ( + interaction.content.toLowerCase() === "s" || + interaction.content.toLowerCase() === "stand" + ) { + stand(); + loop(); + return; + } else { + bet("lose"); + endMsg("Invalid response", `You lost ${money}`, "RED"); + return; + } + }) + .catch(_ => { + interaction.channel.send({ content: "Lost!!" }); + bet("lose"); + return; + }); + } + await loop(); + } + }, +}; diff --git a/command/Economy/buy.js b/command/Economy/buy.js @@ -0,0 +1,103 @@ +const { MessageEmbed } = require("discord.js"); +const inventory = require("../../models/econ"); +const items = require("../../util/Data/item.json"); +module.exports = { + name: "buy", + usage: "(Item)", + description: "Buy something from the shop", + category: "Economy", + options: [ + { + type: 3, + name: "item", + description: "The item to buy", + required: true, + }, + { + type: 4, + name: "amount", + description: "The amount to buy", + required: true, + }, + ], + run: async (client, interaction, args) => { + const itemToBuy = args[0].toLowerCase(); + const validItem = !!items.find(item => item.aliases.includes(itemToBuy)); + const num = args[1]; + if (num < 0) { + interaction.followUp({ + content: `You need to buy at least 1 item`, + }); + } else if (!validItem) { + interaction.followUp({ + content: + "The item is not valid\nIf you want to get information about the item, use `/shop`", + }); + } else { + const itemName = items.find(item => + item.aliases.includes(itemToBuy) + ).name; + const dbName = items.find(item => + item.aliases.includes(itemToBuy) + ).dbname; + const itemPrice = items.find(item => + item.aliases.includes(itemToBuy) + ).price; + const itemEmoji = items.find(item => + item.aliases.includes(itemToBuy) + ).emoji; + const buyable = items.find(item => + item.aliases.includes(itemToBuy) + ).buyable; + if ((await client.bal(interaction.user.id)) < itemPrice * num) { + interaction.followUp({ content: "You don't have enough balance" }); + } else if (!buyable) { + interaction.followUp({ content: `That item isn't buyable` }); + } else { + const params = { User: interaction.user.id }; + inventory.findOne(params, async (err, data) => { + if (data) { + const hasItem = Object.keys(data.Inventory).includes(dbName); + if (!hasItem) { + data.Inventory[dbName] += num; + } else { + data.Inventory[dbName] += num; + } + await inventory.findOneAndUpdate(params, data); + } else { + new inventory({ + User: interaction.user.id, + Inventory: { + [dbName]: num, + }, + }).save(); + } + }); + interaction.followUp({ + embeds: [ + new MessageEmbed() + .setTimestamp() + .setDescription( + `**${ + interaction.user.username + }** buys ** ${num} ${itemEmoji}${itemName}** for **${ + itemPrice * num + }**${client.currency}` + ) + .setColor("GREEN") + .setURL(client.web) + .setAuthor( + interaction.user.tag, + interaction.user.displayAvatarURL({ dynamic: true }) + ) + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL() + ), + ], + }); + await client.rmv(interaction.user.id, itemPrice * num); + } + } + }, +}; diff --git a/command/Economy/daily.js b/command/Economy/daily.js @@ -5,30 +5,27 @@ module.exports = { category: "Economy", timeout: 1000 * 60 * 60 * 24, run: async (client, interaction, args) => { - var money; + let money; const user = await client.data.getUser(interaction.user.id); if (user) { if (user.Premium == true) { money = 20000; - let pre_embed = new MessageEmbed() - .setAuthor( - interaction.member.user.tag, - interaction.user.displayAvatarURL({ dyanmic: true }) - ) + const pre_embed = new MessageEmbed() + .setTitle(`${user.username}'s profile`) .setDescription( - `**Here is your daily ${money}${client.currency}!\nThanks for supporting Cath!**` + `Here is your daily **${money}** ${client.currency}\nYou can use this again in 24hrs` ) .setURL(client.web) .setColor(client.color) - .setFooter(`Made by ${client.author}`) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) .setTimestamp(); await client.add(interaction.user.id, money, interaction); - return await interaction.followUp({ embeds: [pre_embed] }); + return interaction.followUp({ embeds: [pre_embed] }); } else { money = 10000; - let norm_embed = new MessageEmbed() + const norm_embed = new MessageEmbed() .setAuthor( - interaction.member.user.tag, + interaction.user.tag, interaction.user.displayAvatarURL({ dyanmic: true }) ) .setDescription( @@ -36,10 +33,10 @@ module.exports = { ) .setURL(client.web) .setColor(client.color) - .setFooter(`Made by ${client.author}`) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) .setTimestamp(); await client.add(interaction.user.id, money, interaction); - return await interaction.followUp({ embeds: [norm_embed] }); + return interaction.followUp({ embeds: [norm_embed] }); } } }, diff --git a/command/Economy/drop.js b/command/Economy/drop.js @@ -1,44 +0,0 @@ -module.exports = { - name: "drop", - usage: "{Channel} (Number)", - description: "Drops money to a channel", - category: "Economy", - options: [ - { - type: 7, - name: "channel", - description: "The channel you want to drop", - required: true, - }, - { - type: 4, - name: "cp", - description: "The amount of CP to drop", - required: true, - }, - ], - run: async (client, interaction, args) => { - const channel = interaction.guild.channels.cache.get(args[0]); - const coinsAmount = args[1]; - if ((await client.bal(interaction.user.id)) < coinsAmount) { - return client.serr(interaction, "Economy", "drop", 20); - } - const filter = msg => - msg.guild.id === interaction.guild.id && msg.content === `claim`; - interaction.followUp({ - content: "The drop has started in " + channel.toString(), - }); - channel.send({ - content: `${interaction.user.username} has dropped a ${client.currency} bomb! Type \`claim\` to claim ${client.currency}!!`, - }); - client.rmv(interaction.user.id, parseInt(coinsAmount)); - channel.awaitMessages({ filter, max: 1, time: 60000 }).then(async msg => { - const id = msg.first().author.id; - const coinsToClaim = parseInt(coinsAmount); - await client.add(id, coinsToClaim, interaction); - msg.first().reply({ - content: `Congratultions! You have claimed **${coinsToClaim}** ${client.currency}!`, - }); - }); - }, -}; diff --git a/command/Economy/gift.js b/command/Economy/gift.js @@ -0,0 +1,136 @@ +const { MessageEmbed } = require("discord.js"); +const inventory = require("../../models/econ"); +const items = require("../../util/Data/item.json"); +module.exports = { + name: "gift", + timeout: 5000, + usage: "(User) (Item)", + description: "Gift item to an user", + category: "Economy", + options: [ + { + type: 6, + name: "user", + description: "The user you want to gift", + required: true, + }, + { + type: 3, + name: "item", + description: "The item to gift", + required: true, + }, + { + type: 4, + name: "amount", + description: "The amount to gift", + required: true, + }, + ], + run: async (client, interaction, args) => { + const user = interaction.guild.members.cache.get(args[0]); + if (user.id === interaction.user.id) { + interaction.followUp({ content: "You can't gift yourself items" }); + } + const itemToGift = args[1].toLowerCase(); + const number = args[2]; + const validItem = !!items.find(item => item.aliases.includes(itemToGift)); + if (number < 0) { + interaction.followUp({ + content: `You need to gift at least 1 item`, + }); + } else if (!validItem) { + interaction.followUp({ + content: + "The item is not valid\nIf you want to get information about the item, use `/shop`", + }); + } else { + const params = { + User: interaction.user.id, + }; + const param = { + User: user.id, + }; + const itemName = items.find(item => + item.aliases.includes(itemToGift) + ).name; + const dbName = items.find(item => + item.aliases.includes(itemToGift) + ).dbname; + const itemEmoji = items.find(item => + item.aliases.includes(itemToGift) + ).emoji; + inventory.findOne(params, async (err, data) => { + if (data.Inventory) { + const hasItem = Object.keys(data.Inventory).includes(dbName); + if (hasItem) { + if (data.Inventory[dbName] <= number) { + interaction.followUp({ + content: `You don't have enough items to gift`, + }); + } else { + data.Inventory[dbName] -= number; + interaction.followUp({ + embeds: [ + new MessageEmbed() + .setColor(client.color) + .setAuthor( + interaction.user.tag, + interaction.user.displayAvatarURL({ dynamic: true }) + ) + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL() + ) + .setTimestamp() + .setDescription( + `**${interaction.user.username}** has given **${ + user.user.username + } ${number.toLocaleString()} ${itemEmoji}${itemName}**` + ), + ], + }); + user + .send({ + content: `**${ + interaction.user.tag + }** has given you **${number.toLocaleString()} ${itemEmoji}${itemName}** in **${ + interaction.guild.name + }**`, + }) + .catch(e => {}); + await inventory.findOneAndUpdate(params, data); + } + } else { + interaction.followUp({ + content: `You don't have enough items to gift`, + }); + } + } else { + interaction.followUp({ + content: `You don't have enough items to gift`, + }); + } + }); + inventory.findOne(param, async (err, data) => { + if (data?.Inventory) { + const hasItem = Object.keys(data.Inventory).includes(dbName); + if (!hasItem) { + data.Inventory[dbName] += number; + } else { + data.Inventory[dbName] += number; + } + await inventory.findOneAndUpdate(param, data); + } else { + new inventory({ + User: user.id, + CP: 0, + Inventory: { + [dbName]: number, + }, + }).save(); + } + }); + } + }, +}; diff --git a/command/Economy/give.js b/command/Economy/give.js @@ -0,0 +1,72 @@ +const m = require("../../models/econ"); +module.exports = { + name: "give", + timeout: 5000, + usage: "(User) (Number)", + description: "Give money to an user", + category: "Economy", + options: [ + { + type: 6, + name: "user", + description: "The user you want to give", + required: true, + }, + { + type: 4, + name: "cp", + description: "The number of CP you want to give", + required: true, + }, + ], + run: async (client, interaction, args) => { + const max = 300000; + const user = interaction.guild.members.cache.get(args[0]); + let parsed = args[1]; + if (parsed > max) parsed = max; + if (parsed < 100) { + interaction.followUp({ + content: `You need to give at least 100 ${client.currency}`, + }); + } else if (user.id === interaction.user.id) { + interaction.followUp({ content: "You can't give yourself money" }); + } else if (parsed > (await client.bal(interaction.user.id))) { + interaction.followUp({ content: "You don't have enough balance" }); + } else { + m.findOne({ User: interaction.user.id }, async (err, data) => { + if (data) { + data.CP -= parsed; + data.save(); + } else { + client.createProfile(interaction.user.id); + } + }); + m.findOne({ User: user.id }, async (err, data) => { + if (data) { + data.CP += parsed; + data.save(); + } else { + new m({ CP: parsed }); + } + }); + interaction.followUp({ + content: `**${interaction.user.username}** gave **${ + user.user.username + }** **${parsed.toLocaleString()}** coins, you now have **${( + (await client.bal(interaction.user.id)) - parsed + ).toLocaleString()}** ${client.currency} and they have **${( + (await client.bal(user.id)) + parsed + ).toLocaleString()}** ${client.currency}`, + }); + user + .send({ + content: `**${ + interaction.user.tag + }** gave you **${parsed.toLocaleString()}** coins in **${ + interaction.guild.name + }**`, + }) + .catch(); + } + }, +}; diff --git a/command/Economy/gun.js b/command/Economy/gun.js @@ -0,0 +1,120 @@ +const { MessageEmbed } = require("discord.js"); +const e = require("../../models/econ"); +const list = require("../../util/Data/gun.json"); +module.exports = { + name: "gun", + description: "Configure Weapon Master System settings", + options: [ + { + type: 1, + name: "select", + description: "Select the gun for the game", + options: [ + { + name: "gun", + description: "The gun you want to select", + type: 3, + required: true, + choices: [ + { + name: "kuk69", + value: "kuku69", + }, + { + name: "nani45", + value: "nani45", + }, + ], + }, + ], + }, + { + type: 1, + name: "list", + description: "See the information for the guns", + options: [], + }, + { + type: 1, + name: "info", + description: "See the stats of your gun", + }, + ], + run: async (client, interaction, args) => { + if (args[0] === "list") { + const lists = list.map(value => { + return `**${value.emoji} ${value.name}**\n**Description**: ${value.description}`; + }); + const embed = new MessageEmbed() + .setColor(client.color) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setDescription(lists.join("\n\n")); + interaction.followUp({ embeds: [embed] }); + } else if (args[0] === "select") { + if (args[1] == "kuku69") { + await e.findOne({ User: interaction.user.id }, async (err, data) => { + if (!data) { + new e({ + User: interaction.user.id, + Gun: { + Name: "kuku69", + Rank: "Iron", + Kills: 0, + XP: 0, + Level: 1, + }, + }); + } else { + data.Gun.Name = "kuku69"; + await data.save(); + } + }); + interaction.followUp({ content: "**Your current gun:\nkuku69**" }); + } + if (args[1] == "nani45") { + await e.findOne({ User: interaction.user.id }, async (err, data) => { + if (!data) { + new e({ + User: interaction.user.id, + Gun: { + Name: "nani45", + Rank: "Iron", + Kills: 0, + XP: 0, + Level: 1, + }, + }); + } else { + data.Gun.Name = "nani45"; + await data.save(); + } + }); + interaction.followUp({ content: "**Your current gun:\nnani45**" }); + } + } else if (args[0] === "info") { + await e.findOne({ User: interaction.user.id }, async (err, data) => { + if (!data?.Gun.Name) { + interaction.followUp({ + content: + "You don't have a gun yet! Please use `/gun select` to select your gun!", + }); + } else { + const link = list.find(a => a.name === data.Gun.Name).link; + const embed = new MessageEmbed() + .setThumbnail(link) + .setTimestamp() + .setColor(client.color) + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL() + ) + .addField("Name", data.Gun.Name, true) + .addField("Rank", data.Gun.Rank, true) + .addField("XP", data.Gun.XP.toString(), true); + interaction.followUp({ embeds: [embed] }); + } + }); + } + }, +}; diff --git a/command/Economy/inv.js b/command/Economy/inv.js @@ -1,6 +1,7 @@ const { MessageEmbed } = require("discord.js"); const inv = require("../../models/econ"); -const util = require("../../util/pagination/pagination"); +const { Pagination } = require("cath"); +const items = require("../../util/Data/item.json"); module.exports = { name: "inventory", description: "Check the inventory of an user", @@ -15,21 +16,29 @@ module.exports = { required: false, }, ], - run: async (client, interaction, args, data, utils) => { + run: async (client, interaction, args) => { + const util = new Pagination(); const user = interaction.guild.members.cache.get(args[0]) || interaction.member; inv.findOne({ User: user.id }, async (err, data) => { if (data) { - if (!data.Inventory) + if (!data.Inventory) { return interaction.followUp({ content: `User doesn't have any data`, }); - const mappedData = Object.keys(data.Inventory).map(key => { - if (data.Inventory[key] == 0) { - return; - } - return `\n**${key}** โ€” ${data.Inventory[key]}`; - }); + } + const mappedData = Object.keys(data.Inventory) + .map(key => { + if (data.Inventory[key] == 0) { + return; + } else { + const name = items.find(val => val.dbname === key).name; + const emoji = items.find(val => val.dbname === key).emoji; + const type = items.find(val => val.dbname === key).type; + return `\n**${emoji}${name}** โ€” ${data.Inventory[key]}\n **Type**: \`${type}\``; + } + }) + .filter(e => e !== undefined); if (mappedData.length == 0) { return interaction.followUp({ content: `User doesn't have any data`, @@ -44,13 +53,15 @@ module.exports = { .setFooter(`Page 1 of ${c.length}`); try { const msg = await interaction.followUp({ embeds: [embed] }); - if (mappedData.length > 5) + if (mappedData.length > 5) { await util.pagination(msg, interaction.user, c); + } } catch (e) { console.log(e); } - } else + } else { return interaction.followUp({ content: `User doesn't have any data` }); + } }); }, }; diff --git a/command/Economy/lb.js b/command/Economy/lb.js @@ -1,37 +0,0 @@ -const Levels = require("discord-xp"); -const { MessageEmbed } = require("discord.js"); -module.exports = { - name: "leaderboard", - timeout: 5000, - description: "Check the leaderboard of a server", - category: "Economy", - Level: true, - run: async (client, interaction, args) => { - const rawLeaderboard = await Levels.fetchLeaderboard( - interaction.guild.id, - 10 - ); - if (rawLeaderboard.length < 1) - return interaction.followUp({ content: "There isn't any data" }); - const leaderboard = await Levels.computeLeaderboard( - client, - rawLeaderboard, - true - ); - const lb = leaderboard.map( - e => - `**${e.position}**. ${e.username}#${e.discriminator} Level: ${ - e.level - } XP: ${e.xp.toLocaleString()}` - ); - const embed = new MessageEmbed() - .setTitle(`**Leaderboard for ${interaction.guild.name}**`) - .setDescription(`\n${lb.join("\n")}`) - .setFooter( - `Requested by ${interaction.user.tag}`, - interaction.user.displayAvatarURL({ dynamic: true }) - ) - .setColor(client.color); - interaction.followUp({ embeds: [embed] }); - }, -}; diff --git a/command/Economy/multiplier.js b/command/Economy/multiplier.js @@ -0,0 +1,44 @@ +const { MessageEmbed } = require("discord.js"); + +module.exports = { + name: "multiplier", + description: "Displaying your/user's multiplier.", + category: "Economy", + options: [ + { + type: 6, + name: "user", + description: "The user you want to see", + required: false, + }, + ], + run: async (client, interaction, args) => { + let i = ""; + let e = 0; + const user = + interaction.guild.members.cache.get(args[0]) || interaction.member; + const data = await client.data.getUser( + args[0] ? args[0] : interaction.member.id + ); + if (data?.Premium) { + i += "\nPremium User - 25%\n"; + e += 25; + } + if (client.path.includes(interaction.guild.id)) { + i += "NYX Partnered Server - 15%\n"; + e += 15; + } + if (interaction.channel.name.toLowerCase().includes("nyx")) { + i += "Channel Name includes NYX - 10%\n"; + e += 10; + } + const embed = new MessageEmbed() + .addField(`**Total Multiplier: ${e}%** (Maximum: 50%)`, i) + .setColor(client.color) + .setURL(client.web) + .setTitle(`${user.displayName}'s Multiplier`) + .setTimestamp() + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()); + interaction.followUp({ embeds: [embed] }); + }, +}; diff --git a/command/Economy/profile.js b/command/Economy/profile.js @@ -12,7 +12,7 @@ module.exports = { required: false, }, ], - run: async (client, interaction, args, data, utils) => { + run: async (client, interaction, args) => { const user = interaction.guild.members.cache.get(args[0]) || interaction.member; const bjwin = await client.bjWin(user.user.id); @@ -22,25 +22,28 @@ module.exports = { const bal = await client.bal(user.user.id); const multi = await client.multi(interaction); const game = new MessageEmbed() - .setFooter( - `Requested by ${user.user.tag}`, - user.user.displayAvatarURL({ dynamic: true, size: 4096 }) - ) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) .setColor("7196ef") .setTitle(`${user.displayName}'s profile`) - .addField( - "**Stats**\n", - `๐Ÿƒ Blackjack wins: \`${bjwin}\`\n` + - `๐ŸŽฐ Slots wins: \`${swin}\`\n` + - `๐Ÿ•น Bet wins: \`${bwin}\`\n` + - `โŒจ๏ธCommands used: \`${cmdused}\`\n` + - `Totalwins: \`${bjwin + swin + bwin}\``, - true - ) - .addField( - "**Balance**\n", - `๐Ÿ’ฒCP: \`${bal}\`\n` + `โž•Multiplier: \`${`1.${multi}x`}\`` + .setDescription(`Current Balance ${bal} ${client.currency}`) + .setURL(client.web) + .addFields( + { + name: "Basic", + value: ` + Total Commands Used \`${cmdused}\`\n + ${client.xp} Multiplier \`${`1.${multi}x`}\``, + inline: true, + }, + { + name: "๐ŸŽŠ Wins", + value: `Overall โฏ \`${bjwin + swin + bwin}\` + ๐Ÿƒ Blackjack โฏ \`${bjwin}\`\n + ๐ŸŽฐ Slots โฏ \`${swin}\`\n + ๐Ÿ•น Bets โฏ \`${bwin}\`\n`, + inline: true, + } ); - await interaction.followUp({ embeds: [game] }); + interaction.followUp({ embeds: [game] }); }, }; diff --git a/command/Economy/rich.js b/command/Economy/rich.js @@ -3,7 +3,8 @@ module.exports = { name: "rich", description: "Displaying top 10 richest users.", category: "Economy", - run: async (client, interaction, args) => { + timeout: 4000, + run: async (client, interaction) => { const collection = new Collection(); await Promise.all( interaction.guild.members.cache.map(async member => { @@ -18,25 +19,26 @@ module.exports = { : null; }) ); - if (!collection) - return await interaction.followUp({ + if (!collection) { + return interaction.followUp({ content: `None of the members got ${client.currency}!`, }); + } const ata = collection.sort((a, b) => b.bal - a.bal).first(10); - await interaction.followUp({ + interaction.followUp({ embeds: [ new MessageEmbed() .setTitle(`Richest users in ${interaction.guild.name}`) .setDescription( ata .map((v, i) => { - return `${i + 1}: ${ + return `**${i + 1}โฏ** ${ interaction.guild.members.cache.get(v.id).user.tag - } => **${v.bal}${client.currency}**`; + } =โฏ **${v.bal} ${client.currency}**`; }) .join("\n") ) - .setFooter(`Made by ${client.author}`) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) .setTimestamp() .setColor(client.color), ], diff --git a/command/Economy/shop.js b/command/Economy/shop.js @@ -1,28 +1,78 @@ const { MessageEmbed } = require("discord.js"); -const util = require("../../util/pagination/pagination"); -const items = require("../../util/dist/item"); +const { Pagination } = require("cath"); +const items = require("../../util/Data/item.json"); module.exports = { name: "shop", description: "Check the items from the shop", category: "Economy", - run: async (client, interaction, args) => { - const list = items.map((value, index) => { - return `**${value.item}** โ€” ${value.price.toLocaleString()}${ - client.currency - }\nID: \`${value.id}\``; - }); - const c = util.chunk(list, 5).map(x => x.join("\n\n")); - const embed = new MessageEmbed() - .setTitle("**cath.exe shop**") - .setTimestamp() - .setDescription(c[0]) - .setColor(client.color) - .setFooter(`Page 1 of ${c.length}`); - try { - const msg = await interaction.followUp({ embeds: [embed] }); - if (list.length > 5) await util.pagination(msg, interaction.user, c); - } catch (e) { - console.log(e); + options: [ + { + type: 3, + name: "item", + description: "The item you want to see", + required: false, + }, + ], + run: async (client, interaction, args, utils, data) => { + if (!args[0]) { + const util = new Pagination(); + const list = items.map(value => { + return `**${value.emoji} ${ + value.name + } โ€” [${value.price.toLocaleString()} ${ + client.currency + }](https://www.youtube.com/watch?v=YSKDu1gKntY)**\n\`Aliases:\` **${value.aliases.join( + ", " + )}**\n\`Type:\` **${value.type}**`; + }); + const c = util.chunk(list, 5).map(x => x.join("\n\n")); + const embed = new MessageEmbed() + .setTitle("**NYX Shop**") + .setTimestamp() + .setDescription(c[0]) + .setColor(client.color) + .setFooter(`Page 1 of ${c.length}`); + try { + const msg = await interaction.followUp({ embeds: [embed] }); + if (list.length > 5) await util.pagination(msg, interaction.user, c); + } catch (e) { + console.log(e); + } + } else { + const itemToSearch = args[0].toLowerCase(); + const validItem = !!items.find(item => + item.aliases.includes(itemToSearch) + ); + if (!validItem) { + interaction.followUp({ + content: + "The item is not valid\nIf you want to get information about the item, use `/shop`", + }); + } else { + const theitem = items.find(i => i.aliases.includes(itemToSearch)); + const all = new MessageEmbed() + .setTitle(`${theitem.emoji} ${theitem.name}`) + .setDescription( + ` + **Owns** - ${ + data.UserEcon.Inventory?.[theitem.dbname] + ? data.UserEcon.Inventory?.[theitem.dbname] + : 0 + } + **Cost Price** - ${client.currency} ${theitem.price}\n + **Sell Price** - ${client.currency} ${ + theitem.sellable ? theitem.sell : "Unable to sell" + }\n + **Aliases** - \`${theitem.aliases.join(", ")}\`\n\n` + ) + .setColor(client.color) + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL({ dynamic: true }) + ) + .setTimestamp(); + interaction.followUp({ embeds: [all] }); + } } }, }; diff --git a/command/Economy/slots.js b/command/Economy/slots.js @@ -7,14 +7,14 @@ module.exports = { category: "Economy", options: [ { - type: 10, + type: 4, name: "cp", - description: "The number of CP you want to bet", + description: "The number of CP you want to slots", required: true, }, ], run: async (client, interaction, args) => { - const max = 1000000; + const max = 100000; const slots = [ "<:blushca:852174555513618502>", "<:abusecat:853501068074942464>", @@ -29,22 +29,28 @@ module.exports = { const slotseven = slots[Math.floor(Math.random() * slots.length)]; const sloteight = slots[Math.floor(Math.random() * slots.length)]; const slotnine = slots[Math.floor(Math.random() * slots.length)]; - const amt = args[0]; - if (amt > max) return client.serr(interaction, "Economy", "bet", 101); - if ((await client.bal(interaction.user.id)) < amt) { - return client.serr(interaction, "Economy", "bet", 20); - } - if ( + const ar = [1.3, 1.5, 1.7, 1.9, 2.1, 2.3, 2.5, 2.7, 2.9, 3.1, 3.3, 3.5]; + const r = ar[Math.floor(Math.random() * ar.length)]; + let amt = args[0]; + if (amt > max) amt = max; + if (amt < 100) { + interaction.followUp({ + content: `You need to slot at least 100${client.currency}`, + }); + } else if ((await client.bal(interaction.user.id)) < amt) { + interaction.followUp({ content: "You don't have enough balance" }); + } else if ( (slotOne === slotTwo && slotOne === slotThree) || (slotfour === slotfive && slotfour === slotsix) || (slotseven === sloteight && slotseven === slotnine) ) { - const winamt = Math.floor(Math.random() * 2 * amt); + const winamt = Math.round(r * amt); + const multi = (await client.multi(interaction)) / 10 + 1; await client.add(interaction.user.id, winamt, interaction); await client.ADDSWin(interaction.user.id); const won = new MessageEmbed() .setColor("GREEN") - .setFooter(`Made by ${client.author}`) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) .setTimestamp() .addField( "|-----|-----|----|", @@ -59,17 +65,31 @@ module.exports = { `| ${slotseven} | ${sloteight} | ${slotnine} |` ) .setTitle(`${interaction.user.username} wins a slots game`) - .setDescription( - `You win\n**${winamt + amt}**${client.currency}\nYou now have **${ - parseInt(await client.bal(interaction.user.id)) - amt - }**${client.currency}` + .addFields( + { + name: "Won", + value: `**${Math.round(winamt * multi)}**${client.currency}`, + inline: true, + }, + { + name: "New Balance", + value: `**${Math.round( + (await client.bal(interaction.user.id)) + winamt * multi + )}**${client.currency}`, + inline: true, + }, + { + name: "Multiplier", + value: `x${r + multi}`, + inline: true, + } ); interaction.followUp({ embeds: [won] }); } else { await client.rmv(interaction.user.id, amt); const lost = new MessageEmbed() .setColor("RED") - .setFooter(`Made by ${client.author}`) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) .setTimestamp() .addField( "|-----|-----|----|", @@ -84,10 +104,19 @@ module.exports = { `| ${slotseven} | ${sloteight} | ${slotnine} |` ) .setTitle(`${interaction.user.username} loses a slots game`) - .setDescription( - `You lost\n**${amt}**${client.currency}\nYou now have **${ - parseInt(await client.bal(interaction.user.id)) - amt - }**${client.currency}` + .addFields( + { + name: "Lost", + value: `**${amt}**${client.currency}`, + inline: true, + }, + { + name: "New Balance", + value: `**${ + parseInt(await client.bal(interaction.user.id)) - amt + }**${client.currency}`, + inline: true, + } ); interaction.followUp({ embeds: [lost] }); } diff --git a/command/Economy/steal.js b/command/Economy/steal.js @@ -0,0 +1,151 @@ +const db = require("../../models/econ"); +const { MessageEmbed } = require("discord.js"); +const { bool } = require("cath"); +module.exports = { + name: "rob", + description: "Rob money from an user", + usage: "(User)", + category: "Economy", + timeout: 120000, + options: [ + { + type: 6, + name: "user", + description: "The user you want to rob", + required: true, + }, + ], + run: async (client, interaction, args, utils) => { + const s = new Set(); + const tryrob = interaction.guild.members.cache.get(args[0]); + if (tryrob.id === interaction.user.id) { + interaction.followUp({ content: "You can't rob yourself" }); + } else if (s.has(tryrob.user.tag)) { + interaction.followUp({ + content: + "That user has already been robbed within three minutes, be kind!", + }); + } else { + await db.findOne({ User: interaction.user.id }, async (err, data) => { + if (data) { + if (!data.CP) { + data.CP = 0; + data.save(); + interaction.followUp({ content: "You don't have enough balance" }); + } else { + await db.findOne({ User: tryrob.id }, async (err1, data1) => { + const coins = Math.floor(Math.random() * data.CP); + const coins1 = Math.floor(Math.random() * data1?.CP); + if (!data1) { + client.createProfile(tryrob.id); + interaction.followUp({ + embeds: [ + new MessageEmbed() + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL() + ) + .setTimestamp() + .setAuthor( + interaction.user.tag, + interaction.user.displayAvatarURL({ dynamic: true }) + ) + .setColor("RED") + .setDescription( + `They don't have any ${client.currency}. Be kind!` + ), + ], + }); + } else if (data1) { + if (data1.CP <= 0 || !data1.CP) { + interaction.followUp({ + embeds: [ + new MessageEmbed() + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL() + ) + .setTimestamp() + .setAuthor( + interaction.user.tag, + interaction.user.displayAvatarURL({ dynamic: true }) + ) + .setColor("RED") + .setDescription( + `They don't have any ${client.currency}. Be kind!` + ), + ], + }); + } + if (bool()) { + data.CP += coins1; + data.save(); + data1.CP -= coins1; + data1.save(); + s.add(tryrob.user.tag); + setTimeout(function () { + s.delete(tryrob.user.tag); + }, 1000 * 60 * 3); + tryrob + .send( + `**${ + interaction.user.tag + }** has robbed you **${coins1.toLocaleString()}** coins in **${ + interaction.guild.name + }**` + ) + .catch(e => {}); + interaction.followUp({ + embeds: [ + new MessageEmbed() + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL() + ) + .setTimestamp() + .setAuthor( + interaction.user.tag, + interaction.user.displayAvatarURL({ dynamic: true }) + ) + .setColor("GREEN") + .setDescription( + `You robbed **${tryrob.user.tag}**! And you got \`${coins1}\`${client.currency}` + ), + ], + }); + } else { + data.CP -= coins; + data.save(); + data1.CP += coins; + data1.save(); + interaction.followUp({ + embeds: [ + new MessageEmbed() + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL() + ) + .setTimestamp() + .setAuthor( + interaction.user.tag, + interaction.user.displayAvatarURL({ dynamic: true }) + ) + .setColor("RED") + .setDescription( + `You failed on robbing **${tryrob.user.tag}**! And you had to pay him/her \`${coins}\`${client.currency}` + ), + ], + }); + } + } + }); + } + } + if (!data) { + client.createProfile(interaction.user.id); + interaction.followUp({ content: "You don't have enough balance" }); + } + }); + } + }, +}; diff --git a/command/Economy/work.js b/command/Economy/work.js @@ -1,10 +1,11 @@ +const { MessageEmbed } = require("discord.js"); module.exports = { name: "work", description: "Work to earn money", category: "Economy", timeout: 1000 * 60 * 10, run: async (client, interaction, args, utils) => { - const job = [ + const jobs = [ "Software engineer", "Programmer", "Teacher", @@ -15,10 +16,22 @@ module.exports = { "Banker", ]; const earning = utils.rndint(5000, 3000); - const jobs = job[Math.floor(Math.random() * job.length)]; + const job = jobs[Math.floor(Math.random() * jobs.length)]; await client.add(interaction.user.id, earning, interaction); interaction.followUp({ - content: `You worked as a **${jobs}** and earned **${earning}${client.currency}**`, + embeds: [ + new MessageEmbed() + .setAuthor( + interaction.user.tag, + interaction.user.displayAvatarURL({ dynamic: true }) + ) + .setDescription( + `Good Job! You worked as a **${job}** and earned **${earning}${client.currency}**` + ) + .setTimestamp() + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setColor(client.color), + ], }); }, }; diff --git a/command/Fun/8ball.js b/command/Fun/8ball.js @@ -1,31 +0,0 @@ -const { MessageEmbed } = require("discord.js"); -const { random8ball } = require("cath"); -module.exports = { - name: "8ball", - usage: "(Question)", - description: "8ball an answer", - category: "Fun", - type: "CHAT_INPUT", - options: [ - { - type: 3, - name: "question", - description: "The question you want to ask", - required: true, - }, - ], - run: async (client, interaction, args) => { - const data = await random8ball(); - const embed = new MessageEmbed() - .setAuthor( - `๐ŸŽฑ ${interaction.member.user.tag} asks`, - interaction.user.displayAvatarURL({ dynamic: true }) - ) - .setDescription(`**๐ŸŽฑQuestion:** \n${args[0]} \n**๐ŸŽฑAnswer:** \n ${data}`) - .setColor(client.color) - .setTimestamp() - .setURL(client.web) - .setFooter(`Made by ${client.author}`); - await interaction.followUp({ embeds: [embed] }); - }, -}; diff --git a/command/Fun/ascii.js b/command/Fun/ascii.js @@ -1,4 +1,4 @@ -const figlet = require("figlet"); +const axios = require("axios"); module.exports = { name: "ascii", description: "Converts text into ASCII art", @@ -13,10 +13,11 @@ module.exports = { }, ], run: async (client, interaction, args) => { - const msg = args[0]; - figlet.text(msg, async (err, data) => { - if (err) console.log(err); - await interaction.followUp(`\`\`\`${data}\`\`\``); - }); + const data = await axios + .get( + `https://artii.herokuapp.com/make?text=${encodeURIComponent(args[0])}` + ) + .then(res => res.data); + interaction.followUp(`\`\`\`${data}\`\`\``); }, }; diff --git a/command/Fun/busted.js b/command/Fun/busted.js @@ -1,25 +0,0 @@ -const { MessageAttachment } = require("discord.js"); -module.exports = { - name: "busted", - description: "Bust someone", - category: "Fun", - options: [ - { - type: 6, - name: "user", - description: "The user you want to use the effect", - required: true, - }, - ], - type: "CHAT_INPUT", - run: async (client, interaction, args) => { - const user = interaction.guild.members.cache.get(args[0]); - const ima = new MessageAttachment( - `${process.env.api}/api/v1/image/busted?q=${user.user.displayAvatarURL({ - format: "png", - size: 2048, - })}` - ); - await interaction.followUp({ files: [ima] }); - }, -}; diff --git a/command/Fun/cat.js b/command/Fun/cat.js @@ -1,28 +0,0 @@ -const { MessageEmbed } = require("discord.js"); -const { getreddit } = require("cath"); -module.exports = { - name: "cat", - category: "Fun", - description: "Get a cat from reddit", - run: async (client, interaction, args) => { - let subreddits = ["cat", "cats"]; - let subreddit = subreddits[Math.floor(Math.random() * subreddits.length)]; - const data = await getreddit(subreddit); - await interaction.followUp({ - embeds: [ - new MessageEmbed({ - title: data.title, - url: data.url, - image: { url: data.image }, - timestamp: Date.now(), - footer: { text: data.footer }, - color: client.color, - author: { - name: interaction.member.user.tag, - iconURL: interaction.user.displayAvatarURL({ dynamic: true }), - }, - }), - ], - }); - }, -}; diff --git a/command/Fun/choose.js b/command/Fun/choose.js @@ -67,7 +67,7 @@ module.exports = { }, ], run: async (client, interaction, args) => { - let choices = args[Math.floor(Math.random() * args.length)]; - await interaction.followUp(`I will choose - \`${choices}\``); + const choices = args[Math.floor(Math.random() * args.length)]; + interaction.followUp(`I will choose - \`${choices}\``); }, }; diff --git a/command/Fun/coinflip.js b/command/Fun/coinflip.js @@ -1,17 +0,0 @@ -const { MessageEmbed } = require("discord.js"); -module.exports = { - name: "coinflip", - description: "Flip a coin", - category: "Fun", - run: async (client, interaction, args) => { - let HT = ["Heads!", "Tails!"]; - let pick = HT[Math.floor(Math.random() * HT.length)]; - let embed = new MessageEmbed() - .setColor(client.color) - .setTitle("CoinFilp Game") - .setTimestamp() - .setFooter(`Made by ${client.author}`) - .setDescription(pick); - await interaction.followUp({ embeds: [embed] }); - }, -}; diff --git a/command/Fun/dare.js b/command/Fun/dare.js @@ -0,0 +1,19 @@ +const { MessageEmbed } = require("discord.js"); +const dares = require("../../util/Data/dares.json"); + +module.exports = { + name: "dare", + description: "The maturity level of the topics the question can relate to", + run: async (client, interaction) => { + const embed = new MessageEmbed() + .setAuthor( + interaction.user.tag, + interaction.user.displayAvatarURL({ dyamic: true }) + ) + .setTitle(dares[Math.round(Math.random() * (dares.length - 1))]) + .setColor(client.color) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp(); + interaction.followUp({ embeds: [embed] }); + }, +}; diff --git a/command/Fun/dino.js b/command/Fun/dino.js @@ -1,98 +0,0 @@ -module.exports = { - name: "dinochrome", - category: "Fun", - description: "Dinosaur in Chrome", - run: async (client, interaction, args) => { - await interaction.deleteReply(); - let msg = await interaction.channel.send(`---------------๐Ÿฆ–`); - let time = 1 * 1000; - setTimeout(function () { - msg.edit(`-----------๐Ÿฆ–----`); - }, time); - time += 1.5 * 1000; - - setTimeout(function () { - msg.edit(`----------๐Ÿฆ–------`); - }, time); - time += 1.5 * 1000; - - setTimeout(function () { - msg.edit(`--------๐Ÿฆ–--------`); - }, time); - time += 1.5 * 1000; - - setTimeout(function () { - msg.edit(`------๐Ÿฆ–-----------`); - }, time); - time += 1.5 * 1000; - - setTimeout(function () { - msg.edit(`-------๐Ÿฆ–-----------`); - }, time); - time += 1.5 * 1000; - - setTimeout(function () { - msg.edit(`---๐ŸŒต-----๐Ÿฆ–---------`); - }, time); - time += 1.5 * 1000; - - setTimeout(function () { - msg.edit(`---๐ŸŒต-๐Ÿฆ–-------------`); - }, time); - time += 1.5 * 1000; - - setTimeout(function () { - msg.edit(`๐Ÿฆ–\n ---๐ŸŒต--------------`); - }, time); - time += 1.5 * 1000; - - setTimeout(function () { - msg.edit(`------๐Ÿฆ–---๐ŸŒต--------------`); - }, time); - time += 1.5 * 1000; - - setTimeout(function () { - msg.edit(`----๐Ÿฆ–-----๐ŸŒต----------------`); - }, time); - time += 1.5 * 1000; - - setTimeout(function () { - msg.edit(`-๐ŸŒต๐ŸŒต-----๐Ÿฆ–-------๐ŸŒต--------`); - }, time); - time += 1.5 * 1000; - - setTimeout(function () { - msg.edit(`----๐ŸŒต๐ŸŒต-๐Ÿฆ–----------๐ŸŒต------`); - }, time); - time += 1.5 * 1000; - - setTimeout(function () { - msg.edit(`๐Ÿฆ–\n ---๐ŸŒต๐ŸŒต-------------๐ŸŒต---`); - }, time); - time += 1.5 * 1000; - - setTimeout(function () { - msg.edit(`-----๐Ÿฆ–---๐ŸŒต๐ŸŒต-------------๐ŸŒต--`); - }, time); - time += 1.5 * 1000; - - setTimeout(function () { - msg.edit(`-------๐Ÿฆ–-----๐ŸŒต๐ŸŒต-------------`); - }, time); - time += 1.5 * 1000; - - setTimeout(function () { - msg.edit(`๐ŸŽ‚----๐Ÿฆ–--------๐ŸŒต๐ŸŒต-----------`); - }, time); - time += 1.5 * 1000; - - setTimeout(function () { - msg.edit(`---๐ŸŽ‚--๐Ÿฆ–----------๐ŸŒต๐ŸŒต---------`); - }, time); - time += 1.5 * 1000; - - setTimeout(function () { - msg.edit(`**โ“‚โ“˜โ“ขโ“ขโ“˜โ“žโ“ โ’ธโ“žโ“œโ“Ÿโ“›โ“”โ“ฃโ“”โ““ !**\n ---๐ŸŽ‚๐Ÿฆ–----------๐ŸŒต๐ŸŒต-------------`); - }, time); - }, -}; diff --git a/command/Fun/dog.js b/command/Fun/dog.js @@ -1,28 +0,0 @@ -const { MessageEmbed } = require("discord.js"); -const { getreddit } = require("cath"); -module.exports = { - name: "dog", - category: "Fun", - description: "Get a dog from reddit", - run: async (client, interaction, args) => { - let subreddits = ["dog", "dogs"]; - let subreddit = subreddits[Math.floor(Math.random() * subreddits.length)]; - const data = await getreddit(subreddit); - await interaction.followUp({ - embeds: [ - new MessageEmbed({ - title: data.title, - url: data.url, - image: { url: data.image }, - timestamp: Date.now(), - footer: { text: data.footer }, - color: client.color, - author: { - name: interaction.member.user.tag, - iconURL: interaction.user.displayAvatarURL({ dynamic: true }), - }, - }), - ], - }); - }, -}; diff --git a/command/Fun/drake.js b/command/Fun/drake.js @@ -1,31 +0,0 @@ -const { MessageAttachment } = require("discord.js"); -const axios = require("axios"); -module.exports = { - name: "drake", - description: "Drake meme", - usage: "(Text) (Text)", - category: "Fun", - options: [ - { - type: 3, - name: "first", - description: "The first text", - required: true, - }, - { - type: 3, - name: "second", - description: "The second text", - required: true, - }, - ], - run: async (client, interaction, args) => { - const res = await axios.get( - `https://frenchnoodles.xyz/api/endpoints/drake/?text1=${args[0]}&text2=${args[1]}`, - {} - ); - let i = await res.buffer(); - const drake = new MessageAttachment(i); - await interaction.followUp({ files: [drake] }); - }, -}; diff --git a/command/Fun/ds.js b/command/Fun/ds.js @@ -1,24 +0,0 @@ -const axios = require("axios"); -module.exports = { - name: "doublestruck", - description: "Doublestruck your text", - usage: "(text)", - category: "Fun", - type: "CHAT_INPUT", - options: [ - { - type: 3, - name: "text", - description: "The text you want to convert", - required: true, - }, - ], - run: async (client, interaction, args) => { - let text = args[0].split(" ").join("+"); - let res = await axios.get( - "https://api.popcatdev.repl.co/doublestruck?text=" + text - ); - let json = await res.json(); - await interaction.followUp(json.text); - }, -}; diff --git a/command/Fun/emojify.js b/command/Fun/emojify.js @@ -1,43 +0,0 @@ -module.exports = { - name: "emojify", - usage: "(Word)", - description: "Emojify a sentence", - type: "CHAT_INPUT", - category: "Fun", - options: [ - { - type: 3, - name: "text", - description: "The text you want to convert", - required: true, - }, - ], - run: async (client, interaction, args) => { - const mapping = { - " ": " ", - 0: ":zero:", - 1: ":one:", - 2: ":two:", - 3: ":three:", - 4: ":four:", - 5: ":five:", - 6: ":six:", - 7: ":seven:", - 8: ":eight:", - 9: ":nine:", - "!": ":grey_exclamation:", - "?": ":grey_question:", - "#": ":hash:", - "*": ":asterisk:", - }; - "abcdefghijklmnopqrstuvwxyz".split("").forEach(c => { - mapping[c] = mapping[c.toUpperCase()] = ` :regional_indicator_${c}:`; - }); - await interaction.followUp( - args[0] - .split("") - .map(c => mapping[c] || c) - .join("") - ); - }, -}; diff --git a/command/Fun/fun.js b/command/Fun/fun.js @@ -0,0 +1,130 @@ +const { MessageEmbed, MessageAttachment } = require("discord.js"); +const { random8ball } = require("cath"); +module.exports = { + name: "fun", + description: "Fun commands", + options: [ + { + type: 1, + name: "8ball", + description: "8ball an answer", + options: [ + { + type: 3, + name: "question", + description: "The question you want to ask", + required: true, + }, + ], + }, + { + type: 1, + name: "rickroll", + description: "Rickroll?", + }, + { + type: 1, + name: "emojify", + description: "Emojify a sentence", + options: [ + { + type: 3, + name: "text", + description: "The text you want to convert", + required: true, + }, + ], + }, + { + type: 1, + name: "pp", + description: "Check how long is the user", + options: [ + { + type: 6, + name: "user", + description: "The user you want to see", + required: false, + }, + ], + }, + ], + run: async (client, interaction, args) => { + if (args[0] == "8ball") { + const data = await random8ball(); + const embed = new MessageEmbed() + .setAuthor( + `๐ŸŽฑ ${interaction.user.tag} asks`, + interaction.user.displayAvatarURL({ dynamic: true }) + ) + .setDescription( + `**๐ŸŽฑQuestion:** \n${args[1]} \n**๐ŸŽฑAnswer:** \n ${data}` + ) + .setColor(client.color) + .setTimestamp() + .setURL(client.web) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()); + interaction.followUp({ embeds: [embed] }); + } else if (args[0] === "rickroll") { + const roll = [ + "Never gonna give you up", + "Never gonna let you down", + "Never gonna run around and desert you", + "Never gonna make you cry", + "Never gonna say goodbye", + "Never gonna tell a lie and hurt you", + ]; + const rick = roll[Math.floor(Math.random() * roll.length)]; + interaction.followUp({ + content: `**${rick}**`, + files: [ + new MessageAttachment( + "https://i.pinimg.com/originals/88/82/bc/8882bcf327896ab79fb97e85ae63a002.gif" + ), + ], + }); + } else if (args[0] === "emojify") { + const mapping = { + " ": " ", + 0: ":zero:", + 1: ":one:", + 2: ":two:", + 3: ":three:", + 4: ":four:", + 5: ":five:", + 6: ":six:", + 7: ":seven:", + 8: ":eight:", + 9: ":nine:", + "!": ":grey_exclamation:", + "?": ":grey_question:", + "#": ":hash:", + "*": ":asterisk:", + }; + "abcdefghijklmnopqrstuvwxyz".split("").forEach(c => { + mapping[c] = mapping[c.toUpperCase()] = ` :regional_indicator_${c}:`; + }); + interaction.followUp( + args[1] + .split("") + .map(c => mapping[c] || c) + .join("") + ); + } else if (args[0] === "pp") { + const { user } = + interaction.guild.members.cache.get(args[1]) || interaction.member; + const embed = new MessageEmbed() + .addField( + `${user.username}'s peepee`, + `8${"=".repeat(Math.floor(Math.random() * 20))}D` + ) + .setColor(client.color) + .setTitle("Peepee size machine") + .setTimestamp() + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()); + interaction.followUp({ + embeds: [embed], + }); + } + }, +}; diff --git a/command/Fun/hack.js b/command/Fun/hack.js @@ -13,8 +13,8 @@ module.exports = { }, ], type: "CHAT_INPUT", - run: async (client, interaction, args) => { - let answers = [ + run: async (client, interaction, args, utils) => { + const answers = [ "@yousuck.noob", "@hesnoob.haha", "@thisguy.suck", @@ -33,7 +33,7 @@ module.exports = { "@gmail.com", "@yahoo.com", ]; - let passwords = [ + const passwords = [ "Disb****", "disc******", "pass**********", @@ -50,7 +50,7 @@ module.exports = { "egghunt2***", "secr*****", ]; - let ips = [ + const ips = [ "10.313.523.502.00.1", "25.537.753.462.29.2", "21.175.866.974.07.08", @@ -69,69 +69,69 @@ module.exports = { interaction.channel .send(`Hacking ${taggedUser.user.username}...`) .then(async msg => { - client.function.sleep(100); + utils.sleep(100); msg.edit("Status: โ– โ–กโ–กโ–กโ–กโ–กโ–กโ–กโ–กโ–กโ–ก 0%"); - client.function.sleep(100); + utils.sleep(100); msg.edit("Status: โ– โ– โ–กโ–กโ–กโ–กโ–กโ–กโ–กโ–กโ–ก 7%: Hacking Email..."); - client.function.sleep(600); + utils.sleep(600); msg.edit( `Status: โ– โ– โ– โ–กโ–กโ–กโ–กโ–กโ–กโ–กโ–ก 8%:\n \`Email: ${taggedUser.user.username}@yousuck.noob\`\n \`Password: ${passwrd}\` ` ); - client.function.sleep(600); + utils.sleep(600); msg.edit("Status: โ– โ– โ–กโ–กโ–กโ–กโ–กโ–กโ–กโ–กโ–ก 9%: Logging in to the Email..."); - client.function.sleep(2000); + utils.sleep(2000); msg.edit("Status: โ– โ– โ– โ–กโ–กโ–กโ–กโ–กโ–กโ–กโ–ก 12%: Turning off the antivirus"); - client.function.sleep(1000); + utils.sleep(1000); msg.edit("Status: โ– โ– โ– โ– โ–กโ–กโ–กโ–กโ–กโ–ก 14%: Downloading SYNAPSE X"); - client.function.sleep(100); + utils.sleep(100); msg.edit("Status: โ– โ– โ– โ–กโ–กโ–กโ–กโ–กโ–กโ–กโ–ก 17%: Deleting Captcha..."); - client.function.sleep(100); + utils.sleep(100); msg.edit("Status: โ– โ– โ–กโ–กโ–กโ–กโ–กโ–กโ–กโ–กโ–ก 20%: Deleting Paypal account..."); - client.function.sleep(10); + utils.sleep(10); msg.edit("Status: โ– โ– โ– โ–กโ–กโ–กโ–กโ–กโ–กโ–กโ–ก 21%"); - client.function.sleep(12); + utils.sleep(12); msg.edit("Status: โ– โ– โ– โ– โ–กโ–กโ–กโ–กโ–กโ–กโ–ก 22%"); - client.function.sleep(100); + utils.sleep(100); msg.edit("Status: โ– โ– โ– โ– โ– โ–กโ–กโ–กโ–กโ–กโ–ก 24%: Paypal account deleted"); - client.function.sleep(1000); + utils.sleep(1000); msg.edit("Status: โ– โ– โ– โ– โ–กโ–กโ–กโ–กโ–กโ–ก 29%: Hacking is almost ready..."); - client.function.sleep(80); + utils.sleep(80); msg.edit("Status: โ– โ– โ– โ–กโ–กโ–กโ–กโ–กโ–กโ–กโ–ก 31%"); - client.function.sleep(80); + utils.sleep(80); msg.edit("Status: โ– โ– โ– โ– โ–กโ–กโ–กโ–กโ–กโ–กโ–ก 36%"); - client.function.sleep(40); + utils.sleep(40); msg.edit("Status: โ– โ– โ– โ– โ– โ–กโ–กโ–กโ–กโ–กโ–ก 41%"); - client.function.sleep(60); + utils.sleep(60); msg.edit("Status: โ– โ– โ– โ– โ–กโ–กโ–กโ–กโ–กโ–กโ–ก 47%"); - client.function.sleep(50); + utils.sleep(50); msg.edit("Status: โ– โ– โ– โ– โ– โ– โ–กโ–กโ–กโ–กโ–ก 53%"); - client.function.sleep(3000); + utils.sleep(3000); msg.edit( `Status: โ– โ– โ– โ– โ– โ– โ– โ–กโ–กโ–กโ–ก 58%: Email password changed so ${taggedUser.user.username} can not login` ); - client.function.sleep(500); + utils.sleep(500); msg.edit("Status: โ– โ– โ– โ– โ– โ– โ–กโ–กโ–กโ–กโ–ก 66%"); - client.function.sleep(60); + utils.sleep(60); msg.edit("Status: โ– โ– โ– โ– โ– โ–กโ–กโ–กโ–กโ–กโ–ก 74%"); - client.function.sleep(20); + utils.sleep(20); msg.edit(`Status: โ– โ– โ– โ– โ– โ–กโ–กโ–กโ–กโ–กโ–ก 79%: IP address found: ${ip}`); - client.function.sleep(83); + utils.sleep(83); msg.edit("Status: โ– โ– โ– โ– โ– โ– โ–กโ–กโ–กโ–ก 80%"); - client.function.sleep(50); + utils.sleep(50); msg.edit("Status: โ– โ– โ– โ– โ– โ– โ– โ–กโ–กโ–ก 85%"); - client.function.sleep(14); + utils.sleep(14); msg.edit("Status: โ– โ– โ– โ– โ– โ– โ– โ– โ– โ–กโ–ก 93%"); - client.function.sleep(70); + utils.sleep(70); msg.edit("Status: โ– โ– โ– โ– โ– โ– โ– โ– โ– โ– โ–ก 97%"); - client.function.sleep(90); + utils.sleep(90); msg.edit("Status: โ– โ– โ– โ– โ– โ– โ– โ– โ– โ– โ–  100%"); const embed = new MessageEmbed() .setDescription(`${taggedUser} has been hacked!`) .addField("Email", `${taggedUser.user.username}${answer}`) .addField("Password", `${passwrd}`) .addField("IP address", `${ip}`) - .setFooter(`Made by ${client.author}`) - .setColor("02023a"); + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setColor(client.color); await msg.edit({ embeds: [embed] }); }); }, diff --git a/command/Fun/hangman.js b/command/Fun/hangman.js @@ -5,12 +5,13 @@ module.exports = { name: "hangman", description: "Play a hangman game", category: "Fun", - run: async (client, interaction, args) => { + run: async (client, interaction) => { await interaction.deleteReply(); - if (playing.has(interaction.channel.id)) + if (playing.has(interaction.channel.id)) { return interaction.followUp({ content: "Only one game may be occurring per channel.", }); + } playing.add(interaction.channel.id); try { const data = await axios @@ -26,10 +27,7 @@ module.exports = { while (word.length !== confirmation.length && points < 6) { const embed = new MessageEmbed() .setColor(client.color) - .setFooter( - interaction.user.tag, - interaction.user.displayAvatarURL({ dynamic: true }) - ) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) .setTimestamp() .setTitle("Hangman game").setDescription(` ${displayText === null ? "Here we go!" : displayText ? "Good job!" : "Nope!"} @@ -46,7 +44,7 @@ module.exports = { ============= \`\`\` `); - let m = await interaction.channel.send({ embeds: [embed] }); + await interaction.channel.send({ embeds: [embed] }); const filter = res => { const choice = res.content.toLowerCase(); return ( @@ -60,7 +58,6 @@ module.exports = { max: 1, time: 30000, }); - //m.delete(); if (!guess.size) { await interaction.channel.send({ content: "Sorry, time is up!" }); break; @@ -84,10 +81,11 @@ module.exports = { } } playing.delete(interaction.channel.id); - if (word.length === confirmation.length || guessed) + if (word.length === confirmation.length || guessed) { return interaction.channel.send({ content: `You won. The word is **${word}**!`, }); + } return interaction.channel.send({ content: `You lost. The word is **${word}**.`, }); diff --git a/command/Fun/hug.js b/command/Fun/hug.js @@ -1,43 +0,0 @@ -const { MessageEmbed } = require("discord.js"); -module.exports = { - name: "hug", - description: "Hug someone", - category: "Fun", - usage: "(User)", - options: [ - { - type: 6, - name: "user", - description: "The user you want to hug", - required: true, - }, - { - type: 3, - name: "words", - description: "The words you want to say", - required: false, - }, - ], - type: "CHAT_INPUT", - run: async (client, interaction, args) => { - const user = interaction.guild.members.cache.get(args[0]); - words = args[1]; - if (user.id === interaction.user.id) { - return await interaction.followUp("You can't hug yourself"); - } - const embed = new MessageEmbed() - .setDescription(`${interaction.user} **hugs** ${user}`) - .setImage( - `https://media.tenor.com/images/ca88f916b116711c60bb23b8eb608694/tenor.gif` - ) - .setColor(client.color) - .setTimestamp() - .setFooter(`Made by ${client.author}`); - if (words) { - embed.addField("Words:", reason); - } - await interaction - .followUp({ embeds: [embed] }) - .then(msg => msg.react("๐Ÿ’•")); - }, -}; diff --git a/command/Fun/image.js b/command/Fun/image.js @@ -0,0 +1,63 @@ +const { MessageEmbed } = require("discord.js"); +const { getreddit } = require("cath"); +module.exports = { + name: "image", + description: "Generate images", + options: [ + { + type: 1, + name: "meme", + description: "Get a meme from reddit", + }, + { + type: 1, + name: "cat", + description: "Get a cat from reddit", + }, + ], + run: async (client, interaction, args) => { + if (args[0] == "meme") { + const subreddits = ["comedyheaven", "dank", "meme", "memes"]; + const subreddit = + subreddits[Math.floor(Math.random() * subreddits.length)]; + const data = await getreddit(subreddit); + interaction.followUp({ + embeds: [ + new MessageEmbed({ + title: data.title, + url: data.url, + image: { url: data.image }, + timestamp: Date.now(), + footer: { text: data.footer }, + color: client.color, + author: { + name: interaction.user.tag, + iconURL: interaction.user.displayAvatarURL({ dynamic: true }), + }, + }), + ], + }); + } else if (args[0] === "cat") { + const subreddits = ["cat", "cats"]; + const subreddit = + subreddits[Math.floor(Math.random() * subreddits.length)]; + const data = await getreddit(subreddit); + interaction.followUp({ + embeds: [ + new MessageEmbed({ + title: data.title, + url: data.url, + image: { url: data.image }, + timestamp: Date.now(), + footer: { text: data.footer }, + color: client.color, + author: { + name: interaction.user.tag, + iconURL: interaction.user.displayAvatarURL({ dynamic: true }), + }, + }), + ], + }); + } + }, +}; diff --git a/command/Fun/kiss.js b/command/Fun/kiss.js @@ -23,7 +23,7 @@ module.exports = { const user = interaction.guild.members.cache.get(args[0]); words = args[1]; if (user.id === interaction.user.id) { - return await interaction.followUp("You can't kiss yourself"); + return interaction.followUp("You can't kiss yourself"); } const embed = new MessageEmbed() .setDescription(`${interaction.user} **kisses** ${user}`) @@ -32,9 +32,9 @@ module.exports = { ) .setColor(client.color) .setTimestamp() - .setFooter(`Made by ${client.author}`); + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()); if (words) { - embed.addField("Words:", reason); + embed.addField("Words:", words); } await interaction .followUp({ embeds: [embed] }) diff --git a/command/Fun/meme.js b/command/Fun/meme.js @@ -1,28 +0,0 @@ -const { MessageEmbed } = require("discord.js"); -const { getreddit } = require("cath"); -module.exports = { - name: "meme", - category: "Fun", - description: "Get a meme from reddit", - run: async (client, interaction, args) => { - let subreddits = ["comedyheaven", "dank", "meme", "memes"]; - let subreddit = subreddits[Math.floor(Math.random() * subreddits.length)]; - const data = await getreddit(subreddit); - await interaction.followUp({ - embeds: [ - new MessageEmbed({ - title: data.title, - url: data.url, - image: { url: data.image }, - timestamp: Date.now(), - footer: { text: data.footer }, - color: client.color, - author: { - name: interaction.member.user.tag, - iconURL: interaction.user.displayAvatarURL({ dynamic: true }), - }, - }), - ], - }); - }, -}; diff --git a/command/Fun/obama.js b/command/Fun/obama.js @@ -1,45 +0,0 @@ -const o = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโกฟโ Ÿโ ›โ ›โ ›โ ‰โ ‰โ ‰โ ‹โ ›โ ›โ ›โ ปโขปโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; -const b = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโกŸโ ›โ ‰โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ ‰โ ™โ ปโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; -const a = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโ Ÿโ ‹โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ ˆโ ฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; -const m = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโกฟโ โ „โ „โ „โ „โ „โ „โ „โ ‚โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ ˆโ นโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; -const a2 = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโ ›โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ  โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ ˜โขปโฃฟโฃฟโฃฟโฃฟโฃฟ"; -const aa = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโ ƒโ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โข€โ „โข โ „โ „โก€โ „โ „โข€โ ‚โ „โ „โ „โ „โ „โ „โ „โ „โ „โกโ „โ „โข›โฃฟโฃฟโฃฟโฃฟ"; -const ab = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโก‡โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ โกˆโข”โ ธโฃโข•โข•โขตโขฐโขฑโขฐโขโขคโกกโกขโฃ•โข„โขขโข โ „โ „โ „โ „โ „โ „โ ™โฃฟโฃฟโฃฟ"; -const ac = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โกโ ‚โ …โข•โ ŒโกŽโกŽโฃŽโขŽโขฎโขฎโฃณโกณโฃโขฎโขบโขœโข•โข•โขโขŽโ ชโกโ „โ โ „โ ธโฃฟโฃฟ"; -const ad = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโ โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ โ „โ „โข…โ ฃโกกโกฃโฃฃโกณโกตโฃโกฎโฃ—โฃ—โกฏโฃ—โฃŸโกฎโกฎโฃณโฃฃโฃณโขฑโขฑโ ฑโฃโ „โ ‚โ „โขฟโฃฟ"; -const ae = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโ „โ „โ „โ „โ „โ „โ „โ ‚โ „โ „โ „โ „โ „โ „โข‚โขˆโ ขโกฑโกฑโกโฃฎโฃฟโฃŸโฃฟโฃฝโฃทโฃฟโฃฏโฃฟโฃทโฃฟโฃฟโฃฟโฃพโฃฏโฃ—โก•โก‡โก‡โ „โ ‚โก€โขนโฃฟ"; -const af = "โฃฟโฃฟโฃฟโฃฟโฃฟโกŸโ „โ „โ „โ „โ „โ „โ ‚โ „โ „โ „โ „โ „โ „โ โข€โข‚โข•โขธโขจโขชโขณโกซโฃŸโฃฟโฃปโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโกบโกฎโกฃโกฃโ  โข‚โ ’โขธโฃฟ"; -const ag = "โฃฟโฃฟโฃฟโฃฟโฃฟโก‡โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ  โ โ „โก‚โ †โก‡โฃ—โฃโขฎโขพโฃปโฃžโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโขฟโฃฝโฃฏโกฏโฃบโขธโข˜โ จโ ”โก…โขจโฃฟ"; -const ah = "โฃฟโฃฟโ ‹โ ‰โ ™โ ƒโ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ โ „โ „โ „โก‚โกชโกชโกชโกฎโกฎโกฏโฃปโฃฝโฃพโฃฟโฃฟโฃฟโฃŸโฃฟโฃฟโฃฟโฃฝโฃฟโฃฟโกฏโฃฏโกบโกธโกฐโกฑโขโก…โฃผโฃฟ"; -const ai = "โฃฟโ กโก€โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ  โ ˆโ †โ ฑโ ‘โ โ œโ •โกโกโฃžโขฏโขฟโฃฟโฃฟโกฟโฃŸโฃฟโฃฟโฃฟโกฟโกฟโฃฝโฃทโฃฝโกธโกจโกชโฃ‚โ Šโฃฟโฃฟ"; -const aj = "โฃฟโ กโ „โกจโฃขโ โ โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ โ โก“โฃ—โกฝโฃโ ฝโ โ …โ ‘โ โ ‰โ ˜โ ˜โ ˜โ ตโก‘โขœโข€โข€โข‰โขฝ"; -const ak = "โฃฟโ โ  โขฑโข˜โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ ˆโ ˆโ ฑโฃโ œโก˜โ Œโ „โ „โกชโฃณโฃŸโกฎโข…โ คโ  โ „โ „โฃ€โฃ€โก€โก€โ „โ ˆโก‚โขฒโกชโก โฃฟ"; -const al = "โฃฟโก‡โ จโฃบโขโ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โก€โ „โ „โ „โ คโก โกขโข’โ ฆโ  โ „โ „โ „โกธโขฝโฃŸโขฎโ ขโก‚โกโ „โกˆโก€โ คโก€โ „โ ‘โข„โ จโขธโกบโฃโฃฟ"; -const am = "โฃฟโฃฟโ ˆโ •โ โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โก‚โกชโกโกฅโขคโฃฐโฃฐโฃฐโกดโกฎโ ขโ ‚โ „โ „โกŠโขฎโขบโข•โขตโขฅโกฌโฃŒโฃ’โกšโฃ”โขšโขŒโขจโขšโ Œโฃพโกชโฃพโฃฟ"; -const an = "โฃฟโฃฟโฃ†โ „โก€โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โก‘โข•โข•โกฏโกทโฃ•โขงโข“โขญโ จโก€โ „โก‚โ จโกจโฃชโกณโฃโขโกฝโฃปโฃปโฃžโขฝโฃฒโขณโขฑโขกโ ฑโ จโฃŸโขบโฃฟโฃฟ"; -const ao = "โฃฟโฃฟโฃฟโก†โ „โก…โ ‡โก„โ „โ „โ „โ „โ „โ „โ „โ โ จโขชโขนโขฝโขฝโฃบโขโ ‰โ โ โ „โ „โ „โขŒโขŽโก–โกฏโกŽโก—โขโ œโฃถโฃฏโฃปโขฎโกปโฃŸโฃณโก•โ …โฃทโฃฟโฃฟโฃฟ"; -const ap = "โฃฟโฃฟโฃฟโฃฟโฃถโฃถโฃฟโฃทโ „โ „โ „โ „โ „โ „โ „โ „โ ˆโ ”โก‘โ •โ โ „โก€โ „โ „โ Šโข†โ ‚โ จโกชโฃบโฃฎโฃฟโกพโกœโฃœโกœโฃ„โ ™โขžโฃฟโขฟโกฟโฃ—โขโขธโฃพโฃฟโฃฟโฃฟ"; -const aq = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโ „โ „โ „โ „โ „โก€โ „โ „โ „โ „โข€โ „โ  โ „โ  โ „โ „โ „โ „โ „โ „โ Šโ บโกนโ ณโก™โกœโก“โกญโกบโก€โ „โ ฃโกปโกนโกธโ จโฃฃโฃฟโฃฟโฃฟโฃฟ"; -const ar = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโ „โ „โ „โ „โ „โ  โ „โ „โฃ‚โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โข„โ คโกคโก„โก†โกฏโกขโกฃโกฃโก“โข•โ ฝโฃ„โ „โ จโก‚โขŒโฃผโฃฟโฃฟโฃฟโฃฟโฃฟ"; -const a_ = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโก†โ „โ „โ „โ „โ ˆโ †โ „โ ธโก‚โ „โ „โ „โข€โ „โข€โ ˆโ „โ ‚โ โ ™โ โ ผโ ญโ ฃโ ฃโ ฃโ ‘โ Œโ ขโ ฃโกฃโก โก˜โฃฐโฃฑโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; -const at = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโก‡โ „โ „โ „โ „โ „โข‘โ „โ ˆโกฑโ „โข˜โ „โก€โ จโขโฃงโฃณโฃทโฃถโฃฆโฃคโฃดโฃถโฃถโฃถโกถโ „โก โกขโก•โฃœโ Žโกฎโฃฃโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; -const au = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโก‡โ „โ „โ „โ „โ „โ „โ ขโ „โ จโ „โ „โ ฃโก€โ „โข€โข€โข™โ ƒโกฟโขฟโ ฟโกฟโกฟโขŸโข‹โข”โกฑโฃโขœโกœโกชโกชโฃตโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; -const av = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโกโ „โ „โ „โ „โ „โ „โ „โ …โ „โ กโ „โ „โ กโข€โข‚โ ขโกกโ กโ ฃโก‘โฃโขฏโกปโกณโฃนโกบโกชโขŽโ Žโก†โขฃโฃพโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; -const aw = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃ‡โ „โ „โ „โ „โ „โ „โ „โ โ „โ „โ โ „โขˆโ „โข‚โ •โก•โกโข•โขŽโขŽโขฎโขŽโขฏโขบโขธโขฌโ ฃโขƒโฃผโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; -const ax = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃงโก€โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ  โ จโกโ Œโข†โข‡โขงโขญโฃฃโกณโฃตโขซโฃณโขฑโ ฑโข‘โฃพโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; -const ay = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃทโฃ†โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ โกŠโขŒโขขโขกโขฃโขชโกบโกชโกŽโกŽโกŽโกšโฃจโฃพโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; -const az = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃทโฃ„โก€โ „โ „โ „โ „โ „โ „โ „โ „โ „โ •โก…โข—โข•โกณโกญโฃณโข•โ •โกฑโฃผโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; -const ba = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฆโก€โ „โ „โ „โ „โ „โ „โ „โ „โ „โ Œโ „โ ‘โ ฉโขˆโข‚โฃฑโฃพโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; -const bb = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃถโก€โข„โ „โฃ€โ „โก€โฃ€โข โข„โฃ–โฃ–โฃžโฃผโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; -const bc = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃงโฃฑโกโก•โก•โกฝโฃโฃŸโฃฎโฃพโฃพโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; - -module.exports = { - name: "obama", - category: "Utilities", - description: "Obama", - run: async (client, interaction, args) => { - await interaction.followUp({ - content: `${o}\n${b}\n${a}\n${m}\n${a2}\n${aa}\n${ab}\n${ac}\n${ad}\n${ae}\n${af}\n${ag}\n${ah}\n${ai}\n${aj}\n${ak}\n${al}\n${am}\n${an}\n${ao}\n${ap}\n${aq}\n${ar}\n${a_}\n${at}\n${au}\n${av}\n${aw}\n${ax}\n${ay}\n${az}\n${ba}\n${bb}\n${bc}`, - }); - }, -}; diff --git a/command/Fun/pp.js b/command/Fun/pp.js @@ -1,32 +0,0 @@ -const { MessageEmbed } = require("discord.js"); -module.exports = { - name: "pp", - description: "Check how long is the user", - usage: "(User)", - category: "Fun", - options: [ - { - type: 6, - name: "user", - description: "The user you want to see", - required: false, - }, - ], - type: "CHAT_INPUT", - run: async (client, interaction, args) => { - const { user } = - interaction.guild.members.cache.get(args[0]) || interaction.member; - let embed = new MessageEmbed() - .addField( - `${user.username}\'s peepee`, - `8${"=".repeat(Math.floor(Math.random() * 20))}D` - ) - .setColor(client.color) - .setTitle("Peepee size machine") - .setTimestamp() - .setFooter(`Made by ${client.author}`); - await interaction.followUp({ - embeds: [embed], - }); - }, -}; diff --git a/command/Fun/rickroll.js b/command/Fun/rickroll.js @@ -1,22 +0,0 @@ -const { MessageAttachment } = require("discord.js"); - -module.exports = { - name: "rickroll", - description: "Rickroll?", - category: "Fun", - run: async (client, interaction, args) => { - const roll = [ - "Never gonna give you up", - "Never gonna let you down", - "Never gonna run around and desert you", - "Never gonna make you cry", - "Never gonna say goodbye", - "Never gonna tell a lie and hurt you", - ]; - const rick = roll[Math.floor(Math.random() * roll.length)]; - const rickroll = new MessageAttachment( - "https://i.pinimg.com/originals/88/82/bc/8882bcf327896ab79fb97e85ae63a002.gif" - ); - await interaction.followUp({ content: `**${rick}**`, files: [rickroll] }); - }, -}; diff --git a/command/Fun/rps.js b/command/Fun/rps.js @@ -15,19 +15,19 @@ module.exports = { ], type: "CHAT_INPUT", run: async (client, interaction, args, utils) => { - let user = interaction.guild.members.cache.get(args[0]); - if (user.user.id == interaction.user.id) - return await interaction.followUp("You can't play with yourself"); - if (user.user.bot) - return await interaction.followUp("You can't play with bots"); + const user = interaction.guild.members.cache.get(args[0]); + if (user.user.id == interaction.user.id) { + return interaction.followUp("You can't play with yourself"); + } + if (user.user.bot) return interaction.followUp("You can't play with bots"); - let embed = new Discord.MessageEmbed() + const embed = new Discord.MessageEmbed() .setDescription(`Wait for **${user.user.username}** to accept your game`) .setColor(client.color) .setTimestamp() - .setFooter(`Made by ${client.author}`); + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()); - let confirm = new Discord.MessageActionRow().addComponents( + const confirm = new Discord.MessageActionRow().addComponents( new Discord.MessageButton() .setLabel("Accept") .setStyle("SUCCESS") @@ -46,7 +46,7 @@ module.exports = { components: [confirm], }) .then(async m => { - let filter = button => button.user.id == user.user.id; + const filter = button => button.user.id == user.user.id; const collector = m.createMessageComponentCollector({ filter, type: "BUTTON", @@ -58,12 +58,12 @@ module.exports = { return collector.stop("decline"); } button.deferUpdate(); - let pick = new Discord.MessageEmbed() + const pick = new Discord.MessageEmbed() .setTitle(`${interaction.user.username} VS ${user.user.username}`) .setColor(client.color) .setDescription("Choose either ๐Ÿชจ, ๐Ÿ“„, or โœ‚๏ธ") .setTimestamp(); - let choices = new Discord.MessageActionRow().addComponents( + const choices = new Discord.MessageActionRow().addComponents( new Discord.MessageButton() .setCustomId("rock") .setStyle("SECONDARY") @@ -82,11 +82,11 @@ module.exports = { components: [choices], }); collector.stop(); - let users = new Set(); + const users = new Set(); users.add(interaction.user.id); users.add(user.user.id); let ping, pong; - let filter = b => users.has(b.user.id); + const filter = b => users.has(b.user.id); const collect = m.createMessageComponentCollector({ filter, type: "BUTTON", @@ -112,7 +112,7 @@ module.exports = { }); collect.on("end", (c, reason) => { if (reason == "time") { - let timeout = new Discord.MessageEmbed() + const timeout = new Discord.MessageEmbed() .setTitle("Timeout") .setColor("RED") .setDescription( @@ -129,10 +129,13 @@ module.exports = { const sit5 = ping == "paper" && pong == "rock"; const sit6 = ping == "rock" && pong == "paper"; if (sit1 || sit3 || sit5) { - let embed = new Discord.MessageEmbed() + const embed = new Discord.MessageEmbed() .setTitle(`${user.user.username} wins!`) .setColor("GREEN") - .setFooter(`Made by ${client.author}`) + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL() + ) .addField( `${user.user.username} choice`, `${utils.format(ping)}` @@ -147,10 +150,13 @@ module.exports = { components: [], }); } else if (sit2 || sit4 || sit6) { - let embed = new Discord.MessageEmbed() + const embed = new Discord.MessageEmbed() .setTitle(`${interaction.user.username} wins!`) .setColor("GREEN") - .setFooter(`Made by ${client.author}`) + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL() + ) .addField( `${interaction.user.username} choice`, `${utils.format(pong)}` @@ -165,10 +171,13 @@ module.exports = { components: [], }); } else { - let embed = new Discord.MessageEmbed() + const embed = new Discord.MessageEmbed() .setTitle(`Tie!`) .setColor("GREY") - .setFooter(`Made by ${client.author}`) + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL() + ) .addField( `${interaction.user.username} choice`, `${utils.format(pong)}` @@ -185,7 +194,7 @@ module.exports = { }); collector.on("end", (collected, reason) => { if (reason == "time") { - let embed = new Discord.MessageEmbed() + const embed = new Discord.MessageEmbed() .setTitle("Timeout") .setColor("RED") .setDescription( @@ -197,7 +206,7 @@ module.exports = { }); } if (reason == "decline") { - let embed = new Discord.MessageEmbed() + const embed = new Discord.MessageEmbed() .setTitle("Declined") .setColor("RED") .setDescription( diff --git a/command/Fun/ship.js b/command/Fun/ship.js @@ -1,6 +1,6 @@ const { MessageEmbed } = require("discord.js"); -block = "โฌ›"; -heart = "๐ŸŸฅ"; +const block = "โฌ›"; +const heart = "๐ŸŸฅ"; module.exports = { name: "ship", @@ -25,13 +25,13 @@ module.exports = { run: async (client, interaction, args) => { const user1 = interaction.guild.members.cache.get(args[0]).user.username; const user2 = interaction.guild.members.cache.get(args[1]).user.username; - let loveEmbed = new MessageEmbed() + const loveEmbed = new MessageEmbed() .setColor("dd2e44") - .setFooter(`Shipped by ${interaction.member.user.tag}`) + .setFooter(`Shipped by ${interaction.user.tag}`) .setTimestamp() .setTitle(`๐Ÿ’˜ | Shipping ${user1} and ${user2} | ๐Ÿ’˜`) .setDescription(`๐Ÿ”ป | ${user1} \n${ship()}\n๐Ÿ”บ | ${user2}`); - await interaction.followUp({ embeds: [loveEmbed] }); + interaction.followUp({ embeds: [loveEmbed] }); }, }; function ship() { diff --git a/command/Fun/simprate.js b/command/Fun/simprate.js @@ -14,20 +14,16 @@ module.exports = { }, ], run: async (client, interaction, args) => { - let simp = Math.floor(Math.random() * 100); - let user = interaction.guild.members.cache.get(args[0]); + const simp = Math.floor(Math.random() * 100); + const user = interaction.guild.members.cache.get(args[0]); interaction.followUp({ embeds: [ new MessageEmbed() .setTitle(`${user.user.username}'s simp rate`) .setDescription(`${user.user.username} is a ${simp}% simp`) .setColor(client.color) - .setFooter(`Made by ${client.author}`) - .setTimestamp() - .setAuthor( - `Requested by ${interaction.user.tag}`, - interaction.user.displayAvatarURL({ dynamic: true }) - ), + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp(), ], }); }, diff --git a/command/Fun/sr.js b/command/Fun/sr.js @@ -1,28 +0,0 @@ -const axios = require("axios"); - -module.exports = { - name: "superscript", - description: "Superscript your text", - usage: "(text)", - category: "Fun", - type: "CHAT_INPUT", - options: [ - { - type: 3, - name: "text", - description: "The text you want to convert", - required: true, - }, - ], - run: async (client, interaction, args) => { - const text = args[0]; - if (text.includes("@")) - return await interaction.followUp({ - content: "Text cannot includes '@'", - }); - const data = await axios - .get(`${process.env.api}/api/v1/fun/superscript?text=${text}`) - .then(res => res.data.text); - await interaction.followUp({ content: data }); - }, -}; diff --git a/command/Fun/triggered.js b/command/Fun/triggered.js @@ -1,25 +0,0 @@ -const { Canvas } = require("canvacord"); -const { MessageAttachment } = require("discord.js"); -module.exports = { - name: "triggered", - usage: "{User}", - description: "Have a trigger effect on a user's avatar", - category: "Fun", - options: [ - { - type: 6, - name: "user", - description: "The user you want to use the effect", - required: true, - }, - ], - type: "CHAT_INPUT", - run: async (client, interaction, args) => { - const user = interaction.guild.members.cache.get(args[0]); - const ava = user.user.displayAvatarURL({ format: "png", size: 2048 }); - const imga = await Canvas.trigger(ava); - await interaction.followUp({ - files: [new MessageAttachment(imga, "image.gif")], - }); - }, -}; diff --git a/command/Fun/truth.js b/command/Fun/truth.js @@ -0,0 +1,19 @@ +const { MessageEmbed } = require("discord.js"); +const truth = require("../../util/Data/truth.json"); + +module.exports = { + name: "truth", + description: "Gives a random question that has to be answered truthfully", + run: async (client, interaction, args) => { + const embed = new MessageEmbed() + .setAuthor( + interaction.user.tag, + interaction.user.displayAvatarURL({ dyamic: true }) + ) + .setTitle(truth[Math.round(Math.random() * truth.length)]) + .setColor(client.color) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp(); + interaction.followUp({ embeds: [embed] }); + }, +}; diff --git a/command/Fun/wyr.js b/command/Fun/wyr.js @@ -0,0 +1,29 @@ +const { MessageEmbed } = require("discord.js"); +const questions = require("../../util/Data/wyr.json"); + +module.exports = { + name: "wyr", + description: "Send some would-you rather questions", + run: async (client, interaction, args) => { + const messagetext = questions[Math.floor(Math.random() * questions.length)]; + const question = messagetext.split("Would you rather ")[1]; + const q = question.split(" or "); + const Option1 = q[0]; + const Option2 = q[1]; + const embed = new MessageEmbed() + .setTitle("Would You Rather") + .setDescription( + `๐Ÿ‡ฆ ${Option1} \n\n **OR** \n\n :regional_indicator_b: ${Option2}` + ) + .setAuthor( + interaction.user.tag, + interaction.user.displayAvatarURL({ dynamic: true }) + ) + .setColor(client.color) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp(); + wyrmessage = await interaction.followUp({ embeds: [embed] }); + wyrmessage.react("๐Ÿ‡ฆ"); + wyrmessage.react("๐Ÿ‡ง"); + }, +}; diff --git a/command/Giveaway/giveaway.js b/command/Giveaway/giveaway.js @@ -0,0 +1,144 @@ +const GiveawaysClient = require("../../client/GiveawaysClient"); +module.exports = { + name: "giveaway", + description: "Giveaway", + UserPerms: ["MANAGE_MESSAGES"], + options: [ + { + type: "SUB_COMMAND", + name: "start", + description: "Start a giveaway", + options: [ + { + type: 3, + name: "prize", + description: "The prize of the giveaway", + required: true, + choices: [], + }, + { + type: 4, + name: "winners", + description: "The amount of winners of the giveaway", + required: true, + }, + { + type: 3, + name: "time", + description: "The amount of time of the giveaway", + required: true, + }, + { + type: 7, + name: "channel", + description: "The channel of the giveaway", + required: true, + channelTypes: ["GUILD_TEXT"], + }, + { + type: 8, + name: "role1", + description: "The required role to join the giveaway", + }, + { + type: 8, + name: "role2", + description: "The required role to join the giveaway", + }, + { + type: 8, + name: "role3", + description: "The required role to join the giveaway", + }, + ], + }, + { + type: "SUB_COMMAND", + name: "reroll", + description: "Reroll a giveaway", + options: [ + { + type: 3, + name: "message", + description: "The message ID of the giveaway", + required: true, + choices: [], + }, + ], + }, + { + type: "SUB_COMMAND", + name: "end", + description: "End a giveaway", + options: [ + { + type: 3, + name: "message", + description: "The message ID of the giveaway", + required: true, + choices: [], + }, + ], + }, + ], + run: async (client, interaction, args, utils) => { + if (args[0] == "start") { + const [, prize, winners, time, channel, roles1, roles2, roles3] = args; + if (!utils.ms(time)) { + interaction.followUp({ + content: "Time must be a valid time to parse (Example: 10m, 100s)", + }); + } + await GiveawaysClient.create(client, { + prize, + host: interaction.user.id, + winners, + endAfter: time, + requirements: roles1 + ? { + Enabled: true, + Roles: [roles1], + } + : roles2 && roles1 + ? { + Enabled: true, + Roles: [roles1, roles2], + } + : roles1 && roles2 && roles3 + ? { + Enabled: true, + Roles: [roles1, roles2, roles3], + } + : { Enabled: false }, + Channel: channel, + }); + interaction.followUp({ + content: `Giveaway is started in ${interaction.guild.channels.cache.get( + channel + )}`, + }); + } else if (args[0] == "reroll") { + const giveaway = await GiveawaysClient.getByMessage(args[1]); + const m = await client.guilds.cache + .get(giveaway.Guild) + .channels.cache.get(giveaway.Channel) + .messages.fetch(args[1]); + if (!m) { + interaction.followUp({ content: "Unable to find the giveaway โš " }); + } else { + await GiveawaysClient.end(m, giveaway, m); + } + } else { + const giveaway = await GiveawaysClient.getByMessage(args[1]); + const m = await client.guilds.cache + .get(giveaway.Guild) + .channels.cache.get(giveaway.Channel) + .messages.fetch(args[1]); + if (!m) { + interaction.followUp({ content: "Unable to find the giveaway โš " }); + } else { + await GiveawaysClient.end(m, giveaway, m); + } + } + }, +}; diff --git a/command/Information/avatar.js b/command/Information/avatar.js @@ -30,21 +30,20 @@ module.exports = { })}) | [jpg](${member.user.displayAvatarURL({ format: "jpg", size: 2048, - })}) | [gif](${member.user.displayAvatarURL({ - format: "gif", - size: 2048, - dynamic: true, })}) | [webp](${member.user.displayAvatarURL({ format: "webp", size: 2048, + })}) | [gif](${member.user.displayAvatarURL({ + format: "gif", + size: 2048, })})**` ) .setImage( member.user.avatarURL({ size: 2048, dynamic: true, format: "png" }) ) - .setFooter(`Made by ${client.author}`) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) .setURL(client.web) .setTimestamp(); - await interaction.followUp({ embeds: [embed] }); + interaction.followUp({ embeds: [embed] }); }, }; diff --git a/command/Information/banner.js b/command/Information/banner.js @@ -1,6 +1,4 @@ const { MessageEmbed } = require("discord.js"); -const axios = require("axios"); - module.exports = { name: "banner", description: "Show user's banner", @@ -18,40 +16,37 @@ module.exports = { run: async (client, interaction, args) => { const { user } = interaction.guild.members.cache.get(args[0]) || interaction.member; - axios - .get(`https://discord.com/api/v9/users/${user.id}`, { - headers: { - Authorization: `Bot ${client.token}`, - }, - }) - .then(async res => { - const { banner, accent_color } = res.data; - - if (banner) { - const extension = banner.startsWith("a_") ? ".gif" : ".png"; - const url = `https://cdn.discordapp.com/banners/${user.id}/${banner}${extension}?size=2048`; - - const embed = new MessageEmbed() - .setTitle(`${user.tag}'s Banner`) - .setImage(url) - .setColor(accent_color || "BLUE"); - - await interaction.followUp({ embeds: [embed] }); - } else { - if (accent_color) { - const embed = new MessageEmbed() - .setDescription( - `**${user.tag}** does not have a banner but they have an accent color` - ) - .setColor(accent_color); + const data = await user.fetch(); + if (data?.banner) { + const extension = data.banner.startsWith("a_") ? ".gif" : ".png"; + const url = `https://cdn.discordapp.com/banners/${user.id}/${data.banner}${extension}?size=2048`; - await interaction.followUp({ embeds: [embed] }); - } else { - await interaction.followUp({ - content: `**${user.tag}** does not have a banner nor do they have an accent color.`, - }); - } - } - }); + const embed = new MessageEmbed() + .setDescription(`[Link to Banner](${url})`) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setTitle(`${user.tag}'s Banner`) + .setImage(url) + .setColor(data?.hexAccentColor || client.color); + interaction.followUp({ embeds: [embed] }); + } else if (data?.hexAccentColor) { + const embed = new MessageEmbed() + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setDescription( + `**${user.tag}** does not have a banner but they have an accent color` + ) + .setColor(data?.hexAccentColor); + interaction.followUp({ embeds: [embed] }); + } else { + const embed = new MessageEmbed() + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setDescription( + `Seems like **${user.username}** doesn't have a banner or an accent color.` + ) + .setColor(client.color); + interaction.followUp({ embeds: [embed] }); + } }, }; diff --git a/command/Information/botinfo.js b/command/Information/botinfo.js @@ -10,37 +10,68 @@ module.exports = { run: async (client, interaction, args, utils) => { const core = os.cpus()[0]; const embed = new MessageEmbed() - .setURL(client.web) - .setThumbnail(client.user.displayAvatarURL()) - .setColor(interaction.guild.me.displayHexColor || client.color) - .addField( - "General", - `**โฏ Client:** ${client.user.tag} (${client.user.id}) - **โฏ Commands:** ${client.commands.size} - **โฏ Servers:** ${client.guilds.cache.size.toLocaleString()} - **โฏ Users:** ${client.guilds.cache - .reduce((a, b) => a + b.memberCount, 0) - .toLocaleString()} - **โฏ Channels:** ${client.channels.cache.size.toLocaleString()} - **โฏ Creation Date:** ${utc(client.user.createdTimestamp).format( - "Do MMMM YYYY HH:mm:ss" - )} - **โฏ Node.js:** ${process.version} - **โฏ Version:** v${version} - **โฏ Discord.js:** v${djsversion} - \u200b` + .setTitle(`NYX - CODM Gunsmith Bot`) + .setURL( + `https://discord.com/api/oauth2/authorize?client_id=${client.user.id}&permissions=4231314550&scope=bot%20applications.commands` + ) + .setThumbnail( + "https://media.discordapp.net/attachments/896078559293104128/896392631565828146/nyx_logo_transparent.webp" ) .setColor(client.color) - .addField( - "System", - `**โฏ Platform:** ${process.platform} - **โฏ Uptime:** ${utils.timer(os.uptime() * 1000, { long: true })} - **โฏ CPU:** - \u3000 Cores: ${os.cpus().length} - \u3000 Model: ${core.model} - \u3000 Speed: ${core.speed}MHz` + .addFields( + { + name: `General`, + value: ` + <:nyx_owner:897418259433943120> Owner โฏ <@452076196419600394> + Bot โฏ ${client.user.tag} + Bot ID โฏ \`${client.user.id}\` + Created on โฏ \`${utc(client.user.createdTimestamp).format( + "MMMM Do YYYY" + )}\``, + inline: true, + }, + { + name: `Bot Stats`, + value: ` + Servers โฏ ${client.guilds.cache.size.toLocaleString()} + Users โฏ ${client.guilds.cache + .reduce((a, b) => a + b.memberCount, 0) + .toLocaleString()} + Channels โฏ \`${client.channels.cache.size.toLocaleString()}\` + Commands โฏ \`${client.commands.size}\` + `, + inline: true, + } + ) + .addFields( + { + name: `Platform`, + value: ` + NYX โฏ \`v${version}\` + Discord.js โฏ \`v${djsversion}\` + Node.js โฏ \`${process.version}\``, + }, + { + name: `Hardware`, + value: ` + Uptime:** ${utils.timer(os.uptime() * 1000, { long: true })} + Platform:** ${process.platform} + CPU:** + \u3000 Cores: ${os.cpus().length} + \u3000 Model: ${core.model} + \u3000 Speed: ${core.speed}MHz + **`, + inline: true, + } ) + .addFields({ + name: `**${client.author}**`, + value: `**Development Management**\n\u3000ลƒ1ght#0001\n\u3000Cat drinking a cat#0795\n\u3000mightyful#6536\n\u3000Thunder#2128\n\u3000mobo#9277\n + **Research & Documentation**\n\u3000๐””๐“ป๐”ฆเธ„๐”๐”–เธ„๐”ฆำ„รธ#0690\n\u3000Thunder#2128\n + **Website**\n\u3000Chunchunmaru#8570`, + }) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) .setTimestamp(); - await interaction.followUp({ embeds: [embed] }); + interaction.followUp({ embeds: [embed] }); }, }; diff --git a/command/Information/help.js b/command/Information/help.js @@ -16,15 +16,16 @@ module.exports = { if (!args[0]) { await interaction.deleteReply(); const emoji = { - CODM: "<a:AA99_codm_logo:840231960441257995>", - Config: "<:staff:840231971526803467>", + CODM: "<a:codm:897030768793104385>", + Config: "<a:config:896990033561669762>", Economy: client.currency, - Fun: "<a:lollll:804325253265621012>", - Moderation: "๐Ÿ”จ", - Utilities: "โš™", - Music: "<a:music:840231980692144130>", - Giveaway: "<a:DankCat:798963811902160896>", - Information: "โ„น", + Fun: "<a:fun:896889821816053790>", + Moderation: "<:discordmod:897364105730617364>", + Information: "<a:information:894962394932064346>", + Utilities: "<a:utilites:897233087941988392>", + Music: "<a:music:897017864085712936>", + Giveaway: "<a:confetti:896763534682226758>", + NSFW: "๐Ÿ‘", }; const directories = [ ...new Set(client.slashCommands.map(cmd => cmd.directory)), @@ -44,27 +45,41 @@ module.exports = { }; }); const embed = new Discord.MessageEmbed() - .setTitle(`**${client.user.username} commands**`) + .setTitle(`**NYX's Commands**`) .setDescription(`Please choose a category in the dropdown menu`) .setColor(client.color) .setTimestamp() - .setAuthor( - `Requested by ${interaction.user.tag}`, - interaction.user.displayAvatarURL({ dynamic: true }) - ) - .addField( - "**Invite Link**", - `**Invite me to your server by clicking [here](https://discord.com/api/oauth2/authorize?client_id=${client.user.id}&permissions=4231314550&scope=bot%20applications.commands)**` + .addFields( + { + name: ":link: **Invite Me**", + value: `[Click Here](https://discord.com/api/oauth2/authorize?client_id=${client.user.id}&permissions=4231314550&scope=bot%20applications.commands)`, + inline: true, + }, + { + name: "<:support1:867093614403256350> **Need Help ?**", + value: `[Support Server](https://discord.gg/SbQHChmGcp)`, + inline: true, + }, + { + name: "<:YouTube:841186450497339412> **Video Guide**", + value: `[How to use Slash Coammands](https://youtu.be/YSKDu1gKntY)`, + inline: true, + }, + { + name: `<:nyx_description:897379659665264650> Documentation`, + value: `[Click here](${client.docs})`, + inline: true, + }, + { + name: "<a:booster:896527475063025704> **Premium**", + value: `You can either boost support server or subscribe to developer's team [Ko-Fi](https://ko-fi.com/cathteam) or gift a nitro to one of the developer team.`, + inline: false, + } ) - .addField( - "**Support Server Invite**", - "**Join the support server by clicking [here](https://discord.gg/SbQHChmGcp)**" + .setURL(client.docs) + .setThumbnail( + "https://media.discordapp.net/attachments/896078559293104128/896392631565828146/nyx_logo_transparent.webp" ) - .addField( - "**Premium**", - "**You can either boost support server or subscribe to developer's team [Ko-fi](https://ko-fi.com/cathteam) or gift a nitro to one of the developer team **" - ) - .setURL(client.web) .setFooter( `Requested by ${interaction.user.tag}`, interaction.user.displayAvatarURL({ dynamic: true }) @@ -103,11 +118,7 @@ module.exports = { const category = categories.find(u => u.directory === directory); const newembed = new Discord.MessageEmbed() .setTitle( - `${emoji[directory]}${directory} Commands${emoji[directory]}` - ) - .setAuthor( - `Requested by ${interaction.user.tag}`, - interaction.user.displayAvatarURL({ dynamic: true }) + `${emoji[directory]} ${directory} Commands ${emoji[directory]}` ) .setTimestamp() .setColor(client.color) @@ -125,16 +136,20 @@ module.exports = { } else { const command = client.slashCommands.get(args[0].toLowerCase()); if (!command) { - await interaction.followUp({ + interaction.followUp({ content: `There isn't any command or category named "${args[0]}"`, }); } else { if (command.UserPerms && Array.isArray(command.UserPerms)) { UserPermissions = command.UserPerms; - } else UserPermissions = [command.UserPerms ? command.UserPerms : ""]; + } else { + UserPermissions = [command.UserPerms ? command.UserPerms : ""]; + } if (command.BotPerms && Array.isArray(command.BotPerms)) { BotPermissions = command.BotPerms; - } else BotPermissions = [command.BotPerms ? command.BotPerms : ""]; + } else { + BotPermissions = [command.BotPerms ? command.BotPerms : ""]; + } const BotPerms = BotPermissions.map(x => x .split("_") @@ -167,7 +182,7 @@ module.exports = { if (command.UserPerms) { embed.addField("**Required User Permission**:", UserPerms); } - if (command.BotPerm) { + if (command.BotPerms) { embed.addField("**Required Bot Permission**:", BotPerms); } embed @@ -178,7 +193,7 @@ module.exports = { .setTimestamp() .setURL(client.web) .setColor(client.color); - await interaction.followUp({ embeds: [embed] }); + interaction.followUp({ embeds: [embed] }); } } }, diff --git a/command/Information/messageinfo.js b/command/Information/messageinfo.js @@ -1,41 +0,0 @@ -const { MessageEmbed } = require("discord.js"); -module.exports = { - name: "messageinfo", - category: "Information", - type: "CHAT_INPUT", - description: "Check the info of a message", - options: [ - { - type: 3, - name: "message", - description: "The message you want to see", - required: true, - }, - ], - run: async (client, interaction, args) => { - try { - await interaction.channel.messages.fetch(args[0]).catch(async err => { - return await interaction.followUp({ - content: "Message not found in this channel..", - }); - }); - const msg = await interaction.channel.messages.cache.get(args[0]); - const hasImage = msg.attachments.size && msg.attachments.first().width; - const embed = new MessageEmbed() - .setColor(msg.member ? msg.member.displayHexColor : client.color) - .setImage(hasImage ? msg.attachments.first().url : null) - .setAuthor( - msg.author.tag, - msg.author.displayAvatarURL({ format: "png", dynamic: true }) - ) - .addField("Content", msg.content || "No content") - .setTimestamp(msg.createdAt) - .addField("ID", msg.id) - .setFooter(`Made by ${client.author}`) - .addField("Jump", `[Click Here to Jump](${msg.url})`); - return await interaction.followUp({ embeds: [embed] }); - } catch (err) { - console.log(err); - } - }, -}; diff --git a/command/Information/ping.js b/command/Information/ping.js @@ -9,16 +9,17 @@ module.exports = { const messageping = msg.createdTimestamp - interaction.createdTimestamp; await msg.delete(); const Embed = new MessageEmbed() - .setTitle("๐Ÿ“ Pong!") + .setTitle("<a:pong:897383314405605436> Pong!") .setAuthor( `${interaction.user.username}`, interaction.user.displayAvatarURL() ) .setDescription( - `๐Ÿ“จ โ€ข **Message Latency** \`${Math.floor( - messageping - )}ms\`\n๐Ÿ›ฐ๏ธ โ€ข **Bot Latency** \`${Math.round(client.ws.ping)}ms\`` + `\n ๐Ÿ“จ โ€ข **Message Latency** \`${Math.floor(messageping)}ms\` + \n๐Ÿ›ฐ๏ธ โ€ข **Bot Latency** \`${Math.round(client.ws.ping)}ms\`` ) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() .setColor( messageping < 350 ? "GREEN" @@ -26,6 +27,6 @@ module.exports = { ? "YELLOW" : "RED" ); - await interaction.followUp({ embeds: [Embed] }); + interaction.followUp({ embeds: [Embed] }); }, }; diff --git a/command/Information/roleinfo.js b/command/Information/roleinfo.js @@ -1,85 +0,0 @@ -const { CommandInteracion, Client, MessageEmbed } = require("discord.js"); -const moment = require("moment"); -module.exports = { - name: "roleinfo", - description: "Get information of a role", - category: "Infromation", - options: [ - { - name: "role", - type: "ROLE", - description: "The role you want to see", - required: true, - }, - ], - type: "CHAT_INPUT", - /** - * - * @param {Client} client - * @param {CommandInteracion} interaction - * @param {String[]} args - */ - run: async (client, interaction, args, utils) => { - const role = interaction.guild.roles.cache.get(args[0]); - const position = `\`${ - interaction.guild.roles.cache.size - role.position - }\`/\`${interaction.guild.roles.cache.size}\``; - const embed = new MessageEmbed() - .setTimestamp() - .setURL(client.web) - .setAuthor( - interaction.member.nickname, - interaction.user.displayAvatarURL({ dynamic: true }) - ) - .setTitle("Role Info") - .setFooter(`Made by ${client.author}`) - .setColor(role.color) - .addFields( - { - name: "ID", - value: role.id, - }, - { - name: "Name", - value: role.name, - inline: true, - }, - { - name: "Color", - value: role.hexColor, - inline: true, - }, - { - name: "Position", - value: position, - inline: true, - }, - { - name: `Hoisted`, - value: `${role.hoist ? "Yes" : "No"}`, - inline: true, - }, - { - name: "Mentionable", - value: `${role.mentionable ? "Yes" : "No"}`, - inline: true, - }, - { - name: "Bot Role", - value: `${role.managed ? "Yes" : "No"}`, - inline: true, - }, - { - name: "Creation Date", - value: `\`${moment(role.createdAt).format("DD/MMM/YYYY")}\``, - inline: true, - }, - { - name: "Permissions", - value: utils.fixPermissions(role.permissions.toArray()), - inline: true, - } - ); - await interaction.followUp({ embeds: [embed] }); - }, -}; diff --git a/command/Information/servericon.js b/command/Information/servericon.js @@ -1,17 +0,0 @@ -const { MessageEmbed } = require("discord.js"); - -module.exports = { - name: "servericon", - description: "View the icon of the server", - category: "Information", - type: "CHAT_INPUT", - run: async (client, interaction, args) => { - const Embed = new MessageEmbed() - .setTitle(`Icon of ${interaction.guild.name}`) - .setURL(client.web) - .setTimestamp() - .setFooter(`Requested by ${interaction.user.tag}`) - .setImage(interaction.guild.iconURL({ dynamic: true, size: 2048 })); - await interaction.followUp({ embeds: [Embed] }); - }, -}; diff --git a/command/Information/serverinfo.js b/command/Information/serverinfo.js @@ -68,86 +68,116 @@ module.exports = { .setTitle("**Server Information**") .setAuthor(`${g.name}`, g.iconURL({ dynamic: true })) .setColor(client.color) + .setDescription(g.description || "No Description") .setThumbnail(g.iconURL({ dynamic: true, size: 1024 })) - .addField(`๐ŸŽซ Name of server:`, g.name, true) - .addField(`๐Ÿ†” ID of server`, g.id, true) - .addField(`๐Ÿ”— Vanity Link`, `${vanityInvite}`, true) - .addField("๐Ÿ‘ฉโ€๐Ÿ’ป Owner", `${owner}`, true) - .addField("๐Ÿ‘ฉโ€๐Ÿ’ป Owner ID", `\`${owner.id}\``, true) - .addField(`๐Ÿ‘ฅ No. of Members`, g.memberCount.toString(), true) - .addField( - `๐Ÿค– No. of Bots:`, - members.filter(member => member.user.bot).size.toString(), - true - ) - .addField( - `๐Ÿšถ Humans:`, - members.filter(member => !member.user.bot).size.toString(), - true - ) - .addField( - "๐Ÿงท Channels", - `#๏ธโƒฃ ${textChannel} **Text** Channels\n ๐Ÿ”Š ${voiceChannel} **Voice** Channels\n ๐Ÿ“ ${categoryChannel} **Categories**`, - true - ) - .addField(`๐Ÿ˜— Emojis:`, g.emojis.cache.size.toString(), true) - .addField( - `๐Ÿ‘ป Animated Emoji\'s:`, - g.emojis.cache.filter(emoji => emoji.animated).size.toString(), - true - ) - .addField( - `๐Ÿ‘” Roles [${roles.length}]`, - roles.length < 10 - ? roles.join(" **|** ") - : roles.length > 10 - ? `${roles.slice(0, 10).join(" **|** ")}\n+${ - roles.length - 10 - } roles...` - : "None", - true - ) - .addField(`๐Ÿ“ƒ Description`, g.description || "No Description", true) - .addField( - `โ™จ Boost`, - `Tier: ${ + .addFields( + { + name: `<:nyx_owner:897418259433943120> Owner Info`, + value: ` + **Owner โฏ** ${owner} + ๐Ÿ†” **Owner ID โฏ** \`${owner.id}\` + `, + inline: true, + }, + { + name: `Misc Info`, + value: ` + **๐Ÿ†” Server ID โฏ** \`${g.id}\` + **๐ŸŒ Region โฏ** ${regions[g.regions]} + **๐Ÿ”— Vanity Link โฏ** [${vanityCode}](${vanityInvite}) + `, + inline: true, + }, + { + name: `<a:nyx_last_update:897381474330873887> Creation Date`, + value: ` + ${moment(g.createdTimestamp).format("LL")} ${moment( + g.createdTimestamp + ).format("LTS")} (${moment(g.createdTimestamp).fromNow()})`, + inline: true, + }, + // Row 2 + { + name: `<:4chanluv:836623612689121320> Emojies ${g.emojis.cache}`, + value: ` + **Static โฏ** ${g.emojis.cache.size.toString()} + **Animated โฏ** ${g.emojis.cache + .filter(emoji => emoji.animated) + .size.toString()}`, + inline: true, + }, + { + name: `Member Statistics`, + value: ` + ๐Ÿ‘ฅ **Totalโฏ** ${g.memberCount.toString()} + ๐Ÿšถ **Usersโฏ** ${members + .filter(member => !member.user.bot) + .size.toString()} + ๐Ÿค– **Botsโฏ** ${members + .filter(member => member.user.bot) + .size.toString()}`, + inline: true, + }, + { + name: `Channel Info`, + value: ` + ๐Ÿ“ **Categories โฏ** ${categoryChannel} + #๏ธโƒฃ **Textโฏ** ${textChannel} + ๐Ÿ”Š **Voiceโฏ** ${voiceChannel}`, + inline: true, + }, + // Row 3 + { + name: `Server Specification`, + value: ` + **<:partner:840231939944480829> Partnered โฏ** ${ + g.partnered + ? "<a:nyx_checkmark:897240322411724841>" + : "<a:nyx_cross:897244999211696198>" + } + **<:verifiedserver:897410018234728449> Verified โฏ** ${ + g.verified + ? "<a:nyx_checkmark:897240322411724841>" + : "<a:nyx_cross:897244999211696198>" + } + **๐Ÿšฅ Verification Level โฏ** ${verificationLevels[g.verificationLevel]} + **๐Ÿ’ข Explicit Filter โฏ** ${filterLevels[g.explicitContentFilter]} + **Tier โฏ** ${ g.premiumTier == "TIER_3" - ? "3" + ? "3 <:nyx_tier3:897406181511946261>" : g.premiumTier == "TIER_2" - ? "2" + ? "2 <:nyx_tier2:897406181541281792>" : g.premiumTier == "TIER_1" - ? "1" + ? "1 <:nyx_tier1:897406181558067210>" : "0" - }\nCount: ${g.premiumSubscriptionCount || "0"}`, - true - ) - .addField( - "๐Ÿ’ข Explicit Filter", - filterLevels[g.explicitContentFilter], - true - ) - .addField( - `๐Ÿšง Verification Level`, - verificationLevels[g.verificationLevel], - true - ) - .addField( - "๐Ÿ—บ Community Features", - utils.fixFeatures(g.features) || "No Community Features", - true - ) - .addField("๐Ÿ‘จ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป Partnered", g.partnered ? "Yes" : "No", true) - .addField("โœ… Verified", g.verified ? "Yes" : "No", true) - .addField( - `๐Ÿ“… Created at`, - `${moment(g.createdTimestamp).format("LL")} ${moment( - g.createdTimestamp - ).format("LTS")} (${moment(g.createdTimestamp).fromNow()})`, - true + } + **Count โฏ** ${g.premiumSubscriptionCount || "0"}`, + inline: true, + }, + { + name: `<a:nyx_community:897419330478825512> Community Features`, + value: `${ + utils.fixFeatures(g.features) || "No Community Features" + }`, + inline: true, + }, + { + name: `๐Ÿ‘” Role Info [${roles.length}]`, + value: `${ + roles.length < 10 + ? roles.join(" **|** ") + : roles.length > 10 + ? `${roles.slice(0, 10).join(" **|** ")}\n+${ + roles.length - 10 + } roles...` + : "None" + }`, + inline: true, + } ) - .setURL(client.web) - .setFooter(`Made by ${client.author}`); - await interaction.followUp({ embeds: [embed] }); + .setURL(vanityCode ? vanityInvite : "https://cath.gq/") + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()); + interaction.followUp({ embeds: [embed] }); } catch (e) { console.log(e); } diff --git a/command/Information/userinfo.js b/command/Information/userinfo.js @@ -36,27 +36,27 @@ module.exports = { "Early Verified Bot Developer<:discord_bot_dev:840231906200387666>", DISCORD_CERTIFIED_MODERATOR: "Discord Certified Moderator", }; - let status; - switch (member.presence.status) { - case "online": - status = "<:online:840231921123721237>Online"; - break; - case "dnd": - status = "<:do_not_disturb:840231907715448842>Do Not Disturb"; - break; - case "idle": - status = "<:idle:840231935485149184>Idle"; - break; - case "offline": - status = "<:offline:840231954897305620>Offline"; - break; - } - let x = Date.now() - member.user.createdAt; - let y = + // let status; + // switch (member.presence.status) { + // case "online": + // status = "<:online:840231921123721237>Online"; + // break; + // case "dnd": + // status = "<:do_not_disturb:840231907715448842>Do Not Disturb"; + // break; + // case "idle": + // status = "<:idle:840231935485149184>Idle"; + // break; + // case "offline": + // status = "<:offline:840231954897305620>Offline"; + // break; + // } + const x = Date.now() - member.user.createdAt; + const y = Date.now() - interaction.guild.members.cache.get(member.id).joinedAt; - let created = Math.floor(x / 86400000); - let joined = Math.floor(y / 86400000); - let nickname = + const created = Math.floor(x / 86400000); + const joined = Math.floor(y / 86400000); + const nickname = member.nickname !== undefined && member.nickname !== null ? member.nickname : "None"; @@ -66,39 +66,39 @@ module.exports = { .map(role => role.toString()) .slice(0, -1); const userFlags = member.user.flags.toArray(); - let createdate = moment(member.user.createdAt).format( + const createdate = moment(member.user.createdAt).format( "dddd, MMMM Do YYYY, HH:mm:ss" ); - let joindate = moment(member.joinedAt).format( + const joindate = moment(member.joinedAt).format( "dddd, MMMM Do YYYY, HH:mm:ss" ); - let activities; - if (member.presence.activities[0] && member.presence.activities[1]) { - activities = member.presence.activities[1].name; - } else if ( - member.presence.activities[0] && - !member.presence.activities[1] - ) { - activities = "None"; - } else activities = "None"; + // let activities; + // if (member.presence.activities[0] && member.presence.activities[1]) { + // activities = member.presence.activities[1].name; + // } else if ( + // member.presence.activities[0] && + // !member.presence.activities[1] + // ) { + // activities = "None"; + // } else activities = "None"; const embed = new MessageEmbed() .setAuthor( member.user.tag, member.user.displayAvatarURL({ dynamic: true, size: 2048 }) ) .setTimestamp() - .setColor(client.color) + .setColor(member.displayHexColor || client.color) .setURL(client.web) - .setFooter(`Made by ${client.author}`) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) .setThumbnail(member.user.displayAvatarURL({ dynamic: true, size: 512 })) - .setColor(member.displayHexColor || "02023a") + .setColor(member.displayHexColor || client.color) .addField( "User", `**โฏ Username:** ${member.user.username} **โฏ Discriminator:** ${member.user.discriminator} **โฏ Nickname:** ${nickname} - **โฏ ID:** ${member.id} - **โฏ Flags:** ${ + **โฏ User ID:** ${member.id} + **โฏ Badge:** ${ userFlags.length ? userFlags.map(flag => flags[flag]).join(" **|** ") : "None" @@ -108,10 +108,8 @@ module.exports = { size: 2048, })}) **โฏ Time Created:** ${createdate} \nSince ${created} day(s) ago - **โฏ Status:** ${status} - **โฏ Game:** ${activities} \u200b` - ) + ) //* *โฏ Status:** ${status}* *โฏ Game:** ${activities} .addField( "Member", `**โฏ Highest Role:** ${ @@ -129,6 +127,6 @@ module.exports = { } \u200b` ); - await interaction.followUp({ embeds: [embed] }); + interaction.followUp({ embeds: [embed] }); }, }; diff --git a/command/Moderation/announce.js b/command/Moderation/announce.js @@ -1,60 +0,0 @@ -const { MessageEmbed } = require("discord.js"); -module.exports = { - name: "announce", - UserPerm: ["MANAGE_MESSAGES"], - BotPerm: ["MANAGE_MESSAGES"], - usage: "{Channel} (Message)", - description: "Announce a message to a channel.", - category: "Moderation", - options: [ - { - type: 7, - name: "channel", - description: "The channel to announce", - required: true, - }, - { - type: 3, - name: "message", - description: "The message to announce", - required: true, - }, - ], - run: async (client, interaction, args) => { - const channel = interaction.guild.channels.cache.get(args[0]); - if (channel.type !== "GUILD_TEXT") { - return interaction.followUp({ - content: "Please provide a text channel", - }); - } - try { - channel.send({ - embeds: [ - new MessageEmbed() - .setAuthor( - `Sent by ${interaction.member.displayName}`, - interaction.user.displayAvatarURL({ dynamic: true }) - ) - .setDescription(args[1]) - .setTimestamp() - .setColor(client.color), - ], - }); - interaction.followUp({ - embeds: [ - new MessageEmbed() - .setTitle(`Message Announced`) - .addField("**Moderator**", interaction.user.tag, true) - .setTimestamp() - .setFooter( - interaction.member.displayName, - interaction.user.displayAvatarURL({ dynamic: true }) - ) - .setColor(client.color), - ], - }); - } catch (e) { - console.log(e); - } - }, -}; diff --git a/command/Moderation/ban.js b/command/Moderation/ban.js @@ -0,0 +1,106 @@ +const { MessageEmbed } = require("discord.js"); +module.exports = { + name: "ban", + description: "Ban an user", + BotPerms: ["BAN_MEMBERS"], + UserPerms: ["BAN_MEMBERS"], + usage: "(User) {Reason}", + category: "Moderation", + options: [ + { + type: 6, + name: "user", + description: "The user you want to ban", + required: true, + }, + { + type: 3, + name: "reason", + description: "The reason you want to ban", + required: false, + }, + { + type: 4, + name: "messages", + description: + "Number of days of messages to delete, must be between 0 and 7, inclusive", + required: false, + }, + ], + run: async (client, interaction, args) => { + const target = interaction.guild.members.cache.get(args[0]); + let reason = args[1] || "No reason provided"; + const days = args[2] || 0; + if (days > 7 || days < 0) { + interaction.followUp({ + content: + "Number of days of messages to delete must be between 0 and 7, inclusive", + }); + } else if (!target) { + try { + const one = await client.users.fetch(args[0]); + if (one.id === interaction.user.id) { + interaction.followUp({ content: "You can't ban yourself" }); + } + if (reason.length > 1024) reason = reason.slice(0, 1021) + "..."; + const embed = new MessageEmbed() + .setTitle("User Banned") + .addField("**Moderator**", interaction.user.tag, true) + .addField("**User**", one.tag, true) + .addField("**Reason**", reason, true) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setThumbnail(interaction.user.displayAvatarURL({ dynamic: true })) + .setColor(client.color); + interaction.followUp({ embeds: [embed] }); + await interaction.guild.members.ban(one.id, { + reason, + days, + }); + } catch (e) { + console.log(e); + } + } else { + if (target.id === interaction.user.id) { + interaction.followUp({ content: "You can't ban yourself" }); + } + if ( + interaction.member.roles.highest.position < + target.roles.highest.position + ) { + interaction.followUp({ content: "You don't have enough hierarchy" }); + } + if ( + interaction.guild.me.roles.highest.position < + target.roles.highest.position + ) { + interaction.followUp({ content: "Bot doesn't have enough hierarchy" }); + } + if (reason.length > 1024) reason = reason.slice(0, 1021) + "..."; + try { + const embed = new MessageEmbed() + .setTitle("User Banned") + .addField("**Moderator**", interaction.user.tag, true) + .addField("**User**", target.user.tag, true) + .addField("**Reason**", reason, true) + .addField( + "Number of days of messages to delete", + days.toString(), + true + ) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setThumbnail(interaction.user.displayAvatarURL({ dynamic: true })) + .setColor(client.color); + interaction.followUp({ embeds: [embed] }); + await interaction.guild.members.ban(target.id, { + reason, + days, + }); + } catch (e) { + console.log(e); + interaction.followUp({ content: `**Error**: ${e.message}` }); + } + } + }, +}; diff --git a/command/Moderation/kick.js b/command/Moderation/kick.js @@ -0,0 +1,58 @@ +const { MessageEmbed } = require("discord.js"); +module.exports = { + name: "kick", + description: "Kick an user", + UserPerms: ["KICK_MEMBERS"], + BotPems: ["KICK_MEMBERS"], + usage: "(User) {Reason}", + category: "Moderation", + options: [ + { + type: 6, + name: "user", + description: "The user you want to kick", + required: true, + }, + { + type: 3, + name: "reason", + description: "The reason you want to kick", + required: false, + }, + ], + run: async (client, interaction, args) => { + const target = interaction.guild.members.cache.get(args[0]); + let reason = args[1] || "No reason provided"; + if (target.id === interaction.user.id) { + interaction.followUp({ content: "You can't kick yourself" }); + } + if ( + interaction.member.roles.highest.position < target.roles.highest.position + ) { + interaction.followUp({ content: "You don't have enough hierarchy" }); + } + if ( + interaction.guild.me.roles.highest.position < + target.roles.highest.position + ) { + interaction.followUp({ content: "Bot doesn't have enough hierarchy" }); + } + if (reason.length > 1024) reason = reason.slice(0, 1021) + "..."; + try { + const embed = new MessageEmbed() + .setTitle("User Kicked") + .addField("**Moderator**", interaction.user.tag, true) + .addField("**User**", target.user.tag, true) + .addField("**Reason**", reason, true) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setThumbnail(interaction.user.displayAvatarURL({ dynamic: true })) + .setColor(client.color); + interaction.followUp({ embeds: [embed] }); + await target.kick(reason); + } catch (e) { + console.log(e); + interaction.followUp({ content: `**Error**: ${e.message}` }); + } + }, +}; diff --git a/command/Moderation/lock.js b/command/Moderation/lock.js @@ -0,0 +1,53 @@ +const { MessageEmbed } = require("discord.js"); +module.exports = { + name: "lockdown", + description: "Lock a channel", + UserPerms: ["MANAGE_CHANNELS"], + BotPerms: ["MANAGE_CHANNELS"], + category: "Moderation", + options: [ + { + type: 5, + name: "choice", + description: "Whether lock or unlock the channel", + required: true, + }, + ], + run: async (client, interaction, args) => { + if (args[0]) { + interaction.channel.permissionOverwrites + .create(interaction.guild.id, { SEND_MESSAGES: false }) + .then(() => { + const embed = new MessageEmbed() + .setTitle("Channel Locked") + .addField("**Moderator**", interaction.user.tag, true) + .addField("**Channel**", `<#${interaction.channel.id}>`, true) + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL() + ) + .setTimestamp() + .setThumbnail(interaction.user.displayAvatarURL({ dynamic: true })) + .setColor(client.color); + interaction.followUp({ embeds: [embed] }); + }); + } else { + interaction.channel.permissionOverwrites + .create(interaction.guild.id, { SEND_MESSAGES: true }) + .then(() => { + const embed = new MessageEmbed() + .setTitle("Channel Unlocked") + .addField("**Moderator**", interaction.user.tag, true) + .addField("**Channel**", `<#${interaction.channel.id}>`, true) + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL() + ) + .setTimestamp() + .setThumbnail(interaction.user.displayAvatarURL({ dynamic: true })) + .setColor(client.color); + interaction.followUp({ embeds: [embed] }); + }); + } + }, +}; diff --git a/command/Moderation/mute.js b/command/Moderation/mute.js @@ -0,0 +1,119 @@ +const { MessageEmbed } = require("discord.js"); +module.exports = { + name: "mute", + description: "Mute an user.", + usage: "(User) (Time) {Reason}", + UserPerms: ["MANAGE_MESSAGES"], + BotPerms: ["MANAGE_ROLES"], + category: "Moderation", + options: [ + { + type: 6, + name: "user", + description: "The user you want to mute", + required: true, + }, + { + type: 3, + name: "reason", + description: "The reason you want to mute", + required: true, + }, + { + type: 3, + name: "time", + description: "The time you want to mute", + required: false, + }, + ], + run: async (client, interaction, args, utils, data) => { + try { + const user = interaction.guild.members.cache.get(args[0]); + const reason = args[1]; + const time = args[2] || "gg"; + const mutedrole = interaction.guild.roles.cache.get(data.Guild.Muterole); + if (user.id === interaction.user.id) { + interaction.followUp({ content: "You can't mute yourself" }); + } + if ( + interaction.member.roles.highest.position < user.roles.highest.position + ) { + interaction.followUp({ content: "You don't have enough hierarchy" }); + } + if ( + interaction.guild.me.roles.highest.position < + user.roles.highest.position + ) { + interaction.followUp({ content: "Bot doesn't have enough hierarchy" }); + } + if (reason.length > 1024) reason = reason.slice(0, 1021) + "..."; + if (!utils.ms(time)) { + if (!mutedrole) { + const newrole = await interaction.guild.roles.create({ + name: "Muted", + reason: "For muted people", + permissions: [], + }); + await client.data.setMuterole(interaction.guild.id, newrole.id); + interaction.guild.channels.cache + .filter(c => c.type === "GUILD_TEXT") + .forEach(async channel => { + await channel.permissionOverwrites.create(newrole, { + SEND_MESSAGES: false, + ADD_REACTIONS: false, + }); + }); + } else { + await user.roles.add(mutedrole.id); + const embed = new MessageEmbed() + .setTitle("User Muted") + .addField("**Moderator**", interaction.user.tag, true) + .addField("**User**", user.user.tag, true) + .addField("**Reason**", reason, true) + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL() + ) + .setTimestamp() + .setThumbnail(interaction.user.displayAvatarURL({ dynamic: true })) + .setColor(client.color); + interaction.followUp({ embeds: [embed] }); + } + } else if (!mutedrole) { + const newrole = await interaction.guild.roles.create({ + name: "Muted", + reason: "For muted people", + permissions: [], + }); + await client.data.setMuterole(interaction.guild.id, newrole.id); + interaction.guild.channels.cache + .filter(c => c.type === "GUILD_TEXT") + .forEach(async channel => { + await channel.permissionOverwrites.create(newrole, { + SEND_MESSAGES: false, + ADD_REACTIONS: false, + }); + }); + } else { + await user.roles.add(mutedrole.id); + const embed = new MessageEmbed() + .setTitle("User Muted") + .addField("**Moderator**", interaction.user.tag, true) + .addField("**User**", user.user.tag, true) + .addField("**Time**", utils.ms(utils.ms(time), { long: true }), true) + .addField("**Reason**", reason, true) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setThumbnail(interaction.user.displayAvatarURL({ dynamic: true })) + .setColor(client.color); + interaction.followUp({ embeds: [embed] }); + setTimeout(async () => { + await user.roles.remove(mutedrole.id); + }, utils.ms(time)); + } + } catch (e) { + console.log(e); + interaction.followUp({ content: `**Error**: ${e.message}` }); + } + }, +}; diff --git a/command/Moderation/nuke.js b/command/Moderation/nuke.js @@ -0,0 +1,67 @@ +const { MessageAttachment } = require("discord.js"); +module.exports = { + name: "nuke", + description: "Destroy a channel and create a new one", + usage: "{Channel}", + UserPerms: ["MANAGE_CHANNELS"], + BotPerms: ["MANAGE_CHANNELS"], + category: "Moderation", + run: async (client, interaction, args) => { + try { + const filter = m => m.author.id === interaction.user.id; + interaction.followUp({ + content: "Do you want to nuke this channel?\n (Type `Yes` or `no`)", + }); + interaction.channel + .awaitMessages({ + filter, + max: 1, + time: 99999, + errors: ["time"], + }) + .then(msg => { + const message = msg.first(); + if ( + message.content.toLowerCase() == "yes" || + message.content.toLowerCase() == "y" + ) { + const channel = message.guild.channels.cache.get( + message.channel.id + ); + channel.clone().then(ch => { + if (channel.parent) { + ch.setParent(channel.parent.id); + } else { + } + ch.setPosition(channel.position); + channel.delete(); + ch.send({ + files: [ + new MessageAttachment( + "https://i.pinimg.com/originals/06/c3/92/06c392b847166a9a671bfcd590d8fff7.gif" + ), + ], + content: "\nFriendly nuke has been launched.", + }); + }); + } else if ( + message.content.toLowerCase() == "no" || + message.content.toLowerCase() == "n" + ) { + message.delete(); + return message.channel.send({ + content: "The process has been cancelled", + }); + } else { + message.delete(); + return message.channel.send({ + content: `The process has been cancelled due to invalid response`, + }); + } + }); + } catch (e) { + console.log(e); + interaction.followUp({ content: `**Error**: ${e.message}` }); + } + }, +}; diff --git a/command/Moderation/purge.js b/command/Moderation/purge.js @@ -5,25 +5,25 @@ module.exports = { description: "Clear messages in a specific channel", options: [ { - name: 7, + name: "channel", description: "Channel where the messages to be deleted", - type: "CHANNEL", + type: 7, required: true, + channelTypes: ["GUILD_TEXT"], }, { - name: 4, + name: "amount", description: "Amount of message in range of 1-100 to be deleted", - type: "NUMBER", + type: 4, required: true, }, ], type: "CHAT_INPUT", run: async (client, interaction, args) => { try { - let query = interaction.options.get("amount"); - let ch = interaction.options.get("channel"); - let channel = interaction.guild.channels.cache.get(ch.value); - if (query.value > 100) { + const query = args[1]; + const channel = interaction.guild.channels.cache.get(args[0]); + if (query > 100) { return interaction.followUp({ content: "The amount of messages must be in range of 1-100", }); @@ -34,7 +34,7 @@ module.exports = { }); } const limit = await interaction.channel.messages.fetch({ - limit: query.value, + limit: query, }); await channel.bulkDelete(limit, true).then(async m => { const results = {}; @@ -57,11 +57,7 @@ module.exports = { }`, true ) - .addField( - "Amount of Message Deleted", - `${m.size}/${query.value}`, - true - ) + .addField("Amount of Message Deleted", `${m.size}/${query}`, true) .addField( "Authors", `${userMessageMap @@ -69,11 +65,12 @@ module.exports = { .join("\n")}`, false ) - .setTimestamp() .setFooter( - interaction.member.nickname - ? interaction.member.nickname - : interaction.user.username, + `Made by ${client.author}`, + client.user.displayAvatarURL() + ) + .setTimestamp() + .setThumbnail( interaction.user.displayAvatarURL({ dynamic: true }) ) .setColor(client.color), @@ -82,6 +79,7 @@ module.exports = { }); } catch (e) { console.log(e); + interaction.followUp({ content: `**Error**: ${e.message}` }); } }, }; diff --git a/command/Moderation/role.js b/command/Moderation/role.js @@ -0,0 +1,59 @@ +const { MessageEmbed } = require("discord.js"); +module.exports = { + name: "role", + UserPerms: ["MANAGE_ROLES"], + BotPerms: ["MANAGE_ROLES"], + usage: "(Role) (User)", + description: "Add/Remove a role for an user", + category: "Moderation", + options: [ + { + type: 6, + name: "user", + description: "The person you want to add/remove role", + required: true, + }, + { + type: 8, + name: "role", + description: "The role you want to add/remove", + required: true, + }, + ], + run: async (client, interaction, args) => { + try { + const target = interaction.guild.members.cache.get(args[0]); + const role = interaction.guild.roles.cache.get(args[1]); + if (role.managed) { + interaction.followUp({ content: "You must provide a non bot role" }); + } else if (target.roles.cache.has(role.id)) { + const embed = new MessageEmbed() + .setTitle("Role Removed") + .addField("**Moderator**", interaction.user.tag, true) + .addField("**User**", target.user.tag, true) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setThumbnail(interaction.user.displayAvatarURL({ dynamic: true })) + .setColor(client.color); + interaction + .followUp({ embeds: [embed] }) + .then(await target.roles.remove(role.id)); + } else { + const embed = new MessageEmbed() + .setTitle("Role Added") + .addField("**Moderator**", interaction.user.tag, true) + .addField("**User**", target.user.tag, true) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setThumbnail(interaction.user.displayAvatarURL({ dynamic: true })) + .setColor(client.color); + interaction + .followUp({ embeds: [embed] }) + .then(await target.roles.add(role.id)); + } + } catch (e) { + console.log(e); + interaction.followUp({ content: `**Error**: ${e.message}` }); + } + }, +}; diff --git a/command/Moderation/slowmode.js b/command/Moderation/slowmode.js @@ -3,7 +3,7 @@ module.exports = { name: "slowmode", UserPerms: ["MANAGE_CHANNELS"], description: "Set slowmode at a specific channel", - BotPerm: "MANAGE_CHANNELS", + BotPerms: ["MANAGE_CHANNELS"], usage: "(Time)", category: "Moderation", run: async (client, interaction, args, utils) => { @@ -31,7 +31,7 @@ module.exports = { const slowmoEmbed = new Discord.MessageEmbed() .setColor(client.color) .setTitle("Slowmode") - .setFooter(`Made by ${client.author}`) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) .setTimestamp() .setAuthor( `Requested by ${interaction.user.tag}`, diff --git a/command/Moderation/unban.js b/command/Moderation/unban.js @@ -0,0 +1,34 @@ +const { MessageEmbed } = require("discord.js"); +module.exports = { + name: "unban", + description: "Unban an user", + UserPerms: ["BAN_MEMBERS"], + BotPerms: ["BAN_MEMBERS"], + usage: "(User)", + category: "Moderation", + options: [ + { + type: 6, + name: "user", + description: "The person you want to unban", + required: true, + }, + ], + run: async (client, interaction, args) => { + try { + const user = await interaction.guild.members.unban(args[0]); + const embed = new MessageEmbed() + .setTitle("User Unbanned") + .addField("**Moderator**", interaction.user.tag, true) + .addField("**User**", user.tag, true) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setThumbnail(interaction.user.displayAvatarURL({ dynamic: true })) + .setColor(client.color); + interaction.followUp({ embeds: [embed] }); + } catch (e) { + console.log(e); + interaction.followUp({ content: `**Error**: ${e.message}` }); + } + }, +}; diff --git a/command/Moderation/unmute.js b/command/Moderation/unmute.js @@ -0,0 +1,39 @@ +const { MessageEmbed } = require("discord.js"); +module.exports = { + name: "unmute", + UserPerms: ["MANAGE_MESSAGES"], + BotPerms: ["MANAGE_ROLES"], + usage: "(User)", + description: "Unmute an user", + category: "Moderation", + options: [ + { + type: 6, + name: "user", + description: "The user you want to unmute", + required: true, + }, + ], + run: async (client, interaction, args, utils, data) => { + try { + const user = interaction.guild.members.cache.get(args[0]); + const mutedrole = interaction.guild.roles.cache.get(data.Guild.Muterole); + if (!mutedrole) { + interaction.followUp({ content: "Mute role not found in database" }); + } + await user.roles.remove(mutedrole); + const embed = new MessageEmbed() + .setTitle("User Unmuted") + .addField("**Moderator**", interaction.user.tag, true) + .addField("**User**", user.user.tag, true) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setThumbnail(interaction.user.displayAvatarURL({ dynamic: true })) + .setColor(client.color); + interaction.followUp({ embeds: [embed] }); + } catch (e) { + console.log(e); + interaction.followUp({ content: `**Error**: ${e.message}` }); + } + }, +}; diff --git a/command/Moderation/warn.js b/command/Moderation/warn.js @@ -0,0 +1,273 @@ +const db = require("../../models/warns"); +const moment = require("moment"); +const { MessageEmbed } = require("discord.js"); +module.exports = { + name: "warn", + UserPerms: ["MANAGE_MESSAGES"], + description: "Add/remove/show warnings of an user", + category: "Moderation", + options: [ + { + type: 1, + name: "add", + description: "Warn a user", + options: [ + { + type: 6, + name: "user", + description: "The user you want to warn", + required: true, + }, + { + type: 3, + name: "reason", + description: "The reason you want to warn", + required: false, + }, + ], + }, + { + type: 1, + name: "list", + description: "Show a list of warnings of an user", + options: [ + { + type: 6, + name: "user", + description: "The user to show the list", + required: true, + }, + ], + }, + { + type: 1, + name: "remove", + description: "Remove a latest warn for an user", + options: [ + { + type: 6, + name: "user", + description: "The user to remove warn", + required: true, + }, + { + type: 4, + name: "number", + description: "The number of warn", + required: true, + }, + ], + }, + { + type: 1, + name: "clear", + description: "Clear an user's warns", + options: [ + { + type: 6, + name: "user", + description: "The user to clear warns", + required: true, + }, + ], + }, + ], + run: async (client, interaction, args) => { + try { + if (args[0] == "add") { + const user = interaction.guild.members.cache.get(args[1]); + const reason = args[2] || "No reason provided"; + if (user.id === interaction.user.id) { + interaction.followUp({ content: "You can't warn yourself" }); + } + if ( + interaction.member.roles.highest.position < + user.roles.highest.position + ) { + interaction.followUp({ content: "You don't have enough hierarchy" }); + } + if ( + interaction.guild.me.roles.highest.position < + user.roles.highest.position + ) { + interaction.followUp({ + content: "Bot doesn't have enough hierarchy", + }); + } + if (reason.length > 1024) reason = reason.slice(0, 1021) + "..."; + db.findOne( + { Guild: interaction.guild.id, User: user.id }, + async (err, data) => { + if (!data) { + data = new db({ + Guild: interaction.guild.id, + User: user.id, + Warns: [ + { + Reason: reason, + Moderator: interaction.user.id, + Timestamp: Date.now(), + }, + ], + }); + } else { + data.Warns.push({ + Reason: reason, + Moderator: interaction.user.id, + Timestamp: Date.now(), + }); + } + data.save(); + } + ); + user + .send({ + content: `You have been warned in **${interaction.guild.name}** for **${reason}**`, + }) + .catch(e => {}); + const embed = new MessageEmbed() + .setTitle("User Warned") + .addField("**Moderator**", interaction.user.tag, true) + .addField("**User**", user.user.tag, true) + .addField("**Reason**", reason, true) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setThumbnail(interaction.user.displayAvatarURL({ dynamic: true })) + .setColor(client.color); + interaction.followUp({ embeds: [embed] }); + } else if (args[0] == "list") { + const user = interaction.guild.members.cache.get(args[1]); + db.findOne( + { Guild: interaction.guild.id, User: user.id }, + async (err, data) => { + if (data.Warns.map(e => e).length > 0) { + interaction.followUp({ + embeds: [ + new MessageEmbed() + .setTitle(`${user.user.tag}'s warns`) + .setDescription( + data.Warns.map( + (w, i) => + `\`${i + 1}\` | Moderator: ${ + interaction.guild.members.cache.get(w.Moderator) || + "Unknown" + }\nReason: ${w.Reason}\nDate: ${moment( + w.Timestamp + ).format("MMMM Do YYYY")}` + ).join("\n\n") + ) + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL() + ) + .setTimestamp() + .setColor(client.color), + ], + }); + } else { + interaction.followUp({ + content: `User doesn't have any warns`, + }); + } + } + ); + } else if (args[0] == "remove") { + const user = interaction.guild.members.cache.get(args[1]); + if ( + interaction.member.roles.highest.position < + user.roles.highest.position + ) { + interaction.followUp({ content: "You don't have enough hierarchy" }); + } + if ( + interaction.guild.me.roles.highest.position < + user.roles.highest.position + ) { + interaction.followUp({ + content: "Bot doesn't have enough hierarchy", + }); + } + db.findOne( + { Guild: interaction.guild.id, User: user.id }, + async (err, data) => { + if (err) throw err; + if (data) { + const number = args[2] - 1; + data.Warns.splice(number, 1); + const embed = new MessageEmbed() + .setTitle("Warn Removed") + .addField("**Moderator**", interaction.user.tag, true) + .addField("**User**", user.user.tag, true) + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL() + ) + .setTimestamp() + .setThumbnail( + interaction.user.displayAvatarURL({ dynamic: true }) + ) + .setColor(client.color); + interaction.followUp({ embeds: [embed] }); + data.save(); + } else { + interaction.followUp({ + content: `User doesn't have any warns`, + }); + } + } + ); + } else { + const user = interaction.guild.members.cache.get(args[1]); + if ( + interaction.member.roles.highest.position < + user.roles.highest.position + ) { + interaction.followUp({ content: "You don't have enough hierarchy" }); + } + if ( + interaction.guild.me.roles.highest.position < + user.roles.highest.position + ) { + interaction.followUp({ + content: "Bot doesn't have enough hierarchy", + }); + } + db.findOne( + { Guild: interaction.guild.id, User: user.id }, + async (err, data) => { + if (data) { + await db.findOneAndDelete({ + Guild: interaction.guild.id, + User: user.id, + }); + interaction.followUp({ + embeds: [ + new MessageEmbed() + .setTitle(`Warns Cleared`) + .addField("**Moderator**", interaction.user.tag, true) + .addField("**User**", user.user.tag, true) + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL() + ) + .setTimestamp() + .setThumbnail( + interaction.user.displayAvatarURL({ dynamic: true }) + ) + .setColor(client.color), + ], + }); + } else { + interaction.followUp({ + content: `User doesn't have any warns`, + }); + } + } + ); + } + } catch (e) { + console.log(e); + interaction.followUp({ content: `**Error**: ${e.message}` }); + } + }, +}; diff --git a/command/Music/bassboost.js b/command/Music/bassboost.js @@ -0,0 +1,53 @@ +const levels = { + none: 0.0, + low: 0.2, + medium: 0.3, + high: 0.35, +}; +module.exports = { + name: "bassboost", + description: "Set filter/bassboost level", + category: "Music", + usage: "(Number)", + Premium: true, + options: [ + { + type: 3, + name: "level", + description: `Please provide a bassboost level`, + required: true, + choices: [ + { name: "low", value: "low" }, + { name: "medium", value: "medium" }, + { name: "high", value: "high" }, + { name: "none", value: "none" }, + ], + }, + ], + run: async (client, interaction, args) => { + const player = await client.manager.get(interaction.guild.id); + const channel = interaction.member.voice.channel.id; + if (!channel) { + client.err( + interaction, + "**You must be in a voice channel to use this command.**" + ); + } + if (player.voiceChannel !== channel) { + client.err( + interaction, + "**You must be in the same voice channel as me to use this command**" + ); + } + if (!player) client.err(interaction, "**Nothing is playing right now**"); + player.setEQ( + ...new Array(3) + .fill(null) + .map((_, i) => ({ band: i, gain: levels[args[0]] })) + ); + client.se( + interaction, + `โœ… | **Set the bassboost level to** \`${args[0]}\`` + ); + }, +}; diff --git a/command/Music/clearqueue.js b/command/Music/clearqueue.js @@ -0,0 +1,24 @@ +module.exports = { + name: "clear-queue", + description: "Clears the server queue", + category: "Music", + run: async (client, interaction, args) => { + const player = client.manager.get(interaction.guild.id); + const channel = interaction.member.voice.channel.id; + if (!channel) { + client.err( + interaction, + "**You must be in a voice channel to use this command.**" + ); + } + if (player.voiceChannel !== channel) { + client.err( + interaction, + "**You must be in the same voice channel as me to use this command**" + ); + } + if (!player) client.err(interaction, "**Nothing is playing right now**"); + player.queue.clear(); + client.se(interaction, "โœ… | **Cleared the queue!**"); + }, +}; diff --git a/command/Music/disconnect.js b/command/Music/disconnect.js @@ -0,0 +1,25 @@ +module.exports = { + name: "disconnect", + description: "To stop the music and clear the queue", + category: "Music", + run: async (client, interaction, args) => { + const player = await client.manager.get(interaction.guild.id); + const channel = interaction.member.voice.channel.id; + if (!channel) { + return client.err( + interaction, + "**You must be in a voice channel to use this command.**" + ); + } + if (player.voiceChannel !== channel) { + return client.err( + interaction, + "**You must be in the same voice channel as me to use this command**" + ); + } + + if (!player) client.err(interaction, "**Nothing is playing right now**"); + player.destroy(); + client.se(interaction, "๐ŸŽถ| **Disconnected!**"); + }, +}; diff --git a/command/Music/grab.js b/command/Music/grab.js @@ -0,0 +1,52 @@ +const { MessageEmbed } = require("discord.js"); +module.exports = { + name: "grab", + description: "Saves the current song to your Direct Messages", + run: async (client, interaction, args, utils) => { + const player = await client.manager.get(interaction.guild.id); + const channel = interaction.member.voice.channel.id; + if (!channel) { + client.err( + interaction, + "**You must be in a voice channel to use this command.**" + ); + } + if (player.voiceChannel !== channel) { + client.err( + interaction, + "**You must be in the same voice channel as me to use this command**" + ); + } + if (!player) client.err(interaction, "**Nothing is playing right now**"); + try { + const embed = new MessageEmbed() + .setAuthor( + `Song saved: `, + "https://cdn.discordapp.com/emojis/897017864085712936.gif" + ) + .setThumbnail( + `https://img.youtube.com/vi/${player.queue.current.identifier}/mqdefault.jpg` + ) + .setURL(player.queue.current.uri) + .setColor(client.color) + .setTimestamp() + .setTitle(`**${player.queue.current.title}**`) + .addField( + `โŒ› Duration: `, + `\`${utils.prettyMs(player.queue.current.duration, { + colonNotation: true, + })}\``, + true + ) + .addField(`๐ŸŽต Author: `, `\`${player.queue.current.author}\``, true) + .addField(`โ–ถ Play it:`, `\`${player.queue.current.uri}\``) + .addField(`๐Ÿ”Ž Saved in:`, `<#${interaction.channel.id}>`) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()); + interaction.user.send({ embeds: [embed] }); + } catch (e) { + console.log(e); + return client.err(interaction, "**Your DM are disabled**"); + } + client.se(interaction, "โœ… | **Check your DM**"); + }, +}; diff --git a/command/Music/loop.js b/command/Music/loop.js @@ -0,0 +1,53 @@ +module.exports = { + name: "loop", + description: "Music loop", + category: "Music", + options: [ + { + type: 1, + name: "track", + description: "Loop the track", + options: [], + }, + { + type: 1, + name: "queue", + description: "Loop the whole queue", + options: [], + }, + ], + run: async (client, interaction, args) => { + const player = await client.manager.get(interaction.guild.id); + const channel = interaction.member.voice.channel.id; + if (!channel) { + client.err( + interaction, + "**You must be in a voice channel to use this command.**" + ); + } + if (player.voiceChannel !== channel) { + client.err( + interaction, + "**You must be in the same voice channel as me to use this command**" + ); + } + if (!player) client.err(interaction, "**Nothing is playing right now**"); + if (args[0] === "track") { + player.setTrackRepeat(player.trackRepeat ? false : true); + client.se( + interaction, + `๐Ÿ”‚ \`Music loop is now ${ + player.trackRepeat ? "enabled" : "disabled" + }\`` + ); + } else { + player.setQueueRepeat(player.queueRepeat ? false : true); + client.se( + interaction, + `๐Ÿ”‚ \`Queue Loop is now ${ + player.trackRepeat ? "enabled" : "disabled" + }\`` + ); + } + }, +}; diff --git a/command/Music/move.js b/command/Music/move.js @@ -0,0 +1,50 @@ +module.exports = { + name: "move", + description: "Moves a track to a specified position", + options: [ + { + type: 4, + name: "track", + description: "Track to move.", + required: true, + }, + { + type: 4, + name: "position", + description: "Moves selected track to the specified position.", + required: true, + }, + ], + run: async (client, interaction, args) => { + const player = await client.manager.get(interaction.guild.id); + const channel = interaction.member.voice.channel.id; + if (!channel) { + client.err( + interaction, + "**You must be in a voice channel to use this command.**" + ); + } + if (player.voiceChannel !== channel) { + client.err( + interaction, + "**You must be in the same voice channel as me to use this command**" + ); + } + if (!player) client.err(interaction, "**Nothing is playing right now**"); + const trackNum = args[0] - 1; + const dest = args[1] - 1; + if (trackNum < 0 || trackNum > player.queue.length - 1) { + client.err(interaction, "**Invalid track number**"); + } else if (dest < 0 || dest > player.queue.length - 1) { + client.err(interaction, "**Invalid track destination**"); + } else { + const track = player.queue[trackNum]; + player.queue.splice(trackNum, 1); + player.queue.splice(dest, 0, track); + client.se( + interaction, + `โœ… | **${track.title}** has been moved to position ${dest + 1}` + ); + } + }, +}; diff --git a/command/Music/nowplaying.js b/command/Music/nowplaying.js @@ -0,0 +1,64 @@ +const { MessageEmbed } = require("discord.js"); +module.exports = { + name: "nowplaying", + description: "Show now playing music info", + category: "Music", + run: async (client, interaction, args, utils) => { + const player = await client.manager.get(interaction.guild.id); + const channel = interaction.member.voice.channel.id; + if (!channel) { + client.err( + interaction, + "**You must be in a voice channel to use this command.**" + ); + } + if (player.voiceChannel !== channel) { + client.err( + interaction, + "**You must be in the same voice channel as me to use this command**" + ); + } + if (!player) client.err(interaction, "**Nothing is playing right now**"); + interaction.followUp({ + embeds: [ + new MessageEmbed() + .setAuthor( + `Current song playing:`, + client.user.displayAvatarURL({ + dynamic: true, + }) + ) + .addField( + "๐Ÿ•ฐ๏ธ Duration: ", + `${ + utils.progressBar( + player.position, + player.queue.current.duration, + 15 + ).Bar + } \`${utils.prettyMs(player.position, { + colonNotation: true, + })} / ${utils.prettyMs(player.queue.current.duration, { + colonNotation: true, + })}\`` + ) + .setThumbnail(player.queue.current.displayThumbnail()) + .setURL(player.queue.current.uri) + .setColor(client.color) + .setTitle(`๐ŸŽถ **${player.queue.current.title}** ๐ŸŽถ`) + .addField(`๐ŸŽผ Song By: `, `\`${player.queue.current.author}\``, true) + .addField( + `๐Ÿ”ข Queue length: `, + `\`${player.queue.length} Songs\``, + true + ) + .setFooter( + `Requested by: ${player.queue.current.requester.tag}`, + player.queue.current.requester.displayAvatarURL({ + dynamic: true, + }) + ), + ], + }); + }, +}; diff --git a/command/Music/pause.js b/command/Music/pause.js @@ -0,0 +1,29 @@ +module.exports = { + name: "pause", + description: "Pauses the current playing music", + category: "Music", + run: async (client, interaction, args) => { + const player = await client.manager.get(interaction.guild.id); + const channel = interaction.member.voice.channel.id; + if (!channel) { + return client.err( + interaction, + "**You must be in a voice channel to use this command.**" + ); + } + if (player.voiceChannel !== channel) { + return client.err( + interaction, + "**You must be in the same voice channel as me to use this command**" + ); + } + + if (!player) client.err(interaction, "**Nothing is playing right now**"); + if (player.paused) { + client.err(interaction, "Music is already paused"); + } else { + player.pause(true); + client.se(interaction, "**โฏ Paused!**"); + } + }, +}; diff --git a/command/Music/play.js b/command/Music/play.js @@ -0,0 +1,145 @@ +const { MessageEmbed } = require("discord.js"); +module.exports = { + name: "play", + description: "Plays your favourite music from YouTube or Spotify", + usage: "(Song/Song URL)", + category: "Music", + options: [ + { + type: 3, + name: "song", + description: "Play song or a playlist in the voice channel", + required: true, + }, + ], + run: async (client, interaction, args, utils) => { + const voiceChannel = interaction.member.voice.channel; + if (!voiceChannel) { + client.err( + interaction, + "**You must be in a voice channel to use this command**" + ); + } else { + const player = client.manager.create({ + guild: interaction.guild.id, + voiceChannel: voiceChannel.id, + textChannel: interaction.channel.id, + selfDeafen: true, + volume: 100, + }); + if (player.state != "CONNECTED") await player.connect(); + const search = args[0]; + let res; + try { + res = await player.search(search, interaction.user); + if (res.loadType === "LOAD_FAILED") { + if (!player.queue.current) player.destroy(); + client.err(interaction, "**There was an error while searching**"); + } + } catch { + client.err(interaction, "**There was an error while searching**"); + } + switch (res.loadType) { + case "NO_MATCHES": + if (!player.queue.current) player.destroy(); + client.err(interaction, "**No results were found**"); + break; + case "TRACK_LOADED": + player.queue.add(res.tracks[0]); + if (!player.playing && !player.paused && !player.queue.length) { + player.play(); + } + const SongAddedEmbed = new MessageEmbed() + .setAuthor(`Added to queue`, client.user.displayAvatarURL()) + .setThumbnail(res.tracks[0].displayThumbnail()) + .setColor(client.color) + .setDescription(`[${res.tracks[0].title}](${res.tracks[0].uri})`) + .addField( + "Duration", + `\`${utils.prettyMs(res.tracks[0].duration, { + colonNotation: true, + })}\``, + true + ); + if (player.queue.totalSize > 1) { + SongAddedEmbed.addField( + "Position in queue", + `${player.queue.size - 0}`, + true + ); + } + interaction.followUp({ embeds: [SongAddedEmbed] }); + break; + case "PLAYLIST_LOADED": + player.queue.add(res.tracks); + await player.play(); + const SongAdded = new MessageEmbed() + .setAuthor( + `Playlist added to queue`, + client.user.displayAvatarURL() + ) + .setThumbnail(res.tracks[0].displayThumbnail()) + .setColor(client.color) + .setDescription(`[${res.playlist.name}](${args[0]})`) + .addField("Enqueued", `\`${res.tracks.length}\` songs`, false) + .addField( + "Playlist duration", + `\`${utils.prettyMs(res.playlist.duration, { + colonNotation: true, + })}\``, + false + ); + interaction.followUp({ embeds: [SongAdded] }); + break; + case "SEARCH_RESULT": + const track = res.tracks[0]; + player.queue.add(track); + if (!player.playing && !player.paused && !player.queue.length) { + const SongAddedEmbed = new MessageEmbed() + .setAuthor(`Added to queue`, client.user.displayAvatarURL()) + .setThumbnail(track.displayThumbnail()) + .setColor(client.color) + .setDescription(`[${track.title}](${track.uri})`) + .addField( + "Duration", + `\`${utils.prettyMs(track.duration, { + colonNotation: true, + })}\``, + true + ); + if (player.queue.totalSize > 1) { + SongAddedEmbed.addField( + "Position in queue", + `${player.queue.size - 0}`, + true + ); + } + player.play(); + interaction.followUp({ embeds: [SongAddedEmbed] }); + } else { + const SongAddedEmbed = new MessageEmbed() + .setAuthor(`Added to queue`, client.user.displayAvatarURL()) + .setThumbnail(track.displayThumbnail()) + .setColor(client.color) + .setDescription(`[${track.title}](${track.uri})`) + .addField( + "Duration", + `\`${utils.prettyMs(track.duration, { + colonNotation: true, + })}\``, + true + ); + if (player.queue.totalSize > 1) { + SongAddedEmbed.addField( + "Position in queue", + `${player.queue.size - 0}`, + true + ); + } + interaction.followUp({ embeds: [SongAddedEmbed] }); + break; + } + } + } + }, +}; diff --git a/command/Music/queue.js b/command/Music/queue.js @@ -0,0 +1,114 @@ +const { MessageEmbed } = require("discord.js"); +const { Pagination } = require("cath"); +module.exports = { + name: "queue", + description: "To show the songs queue", + category: "Music", + run: async (client, interaction, args, utils) => { + const pagination = new Pagination(); + const player = await client.manager.get(interaction.guild.id); + const channel = interaction.member.voice.channel.id; + if (!channel) { + client.err( + interaction, + "**You must be in a voice channel to use this command.**" + ); + } + if (player.voiceChannel !== channel) { + client.err( + interaction, + "**You must be in the same voice channel as me to use this command**" + ); + } + if (!player) client.err(interaction, "**Nothing is playing right now**"); + if (!player.queue || !player.queue.length || player.queue === 0) { + const QueueEmbed = new MessageEmbed() + .setAuthor( + "Currently playing", + interaction.user.displayAvatarURL({ dynamic: true }) + ) + .setColor(client.color) + .setDescription( + `[${player.queue.current.title}](${player.queue.current.uri})` + ) + .addField("Requested by", `${player.queue.current.requester}`, true) + .addField( + "Duration", + `${ + utils.progressBar( + player.position, + player.queue.current.duration, + 15 + ).Bar + } \`[${utils.prettyMs(player.position, { + colonNotation: true, + })} / ${utils.prettyMs(player.queue.current.duration, { + colonNotation: true, + })}]\`` + ) + .setTimestamp() + .setThumbnail(player.queue.current.displayThumbnail()); + interaction.followUp({ embeds: [QueueEmbed] }); + } + const queue = player.queue.map((t, i) => { + t.index = i; + return t; + }); + const mapped = queue.map((t, i) => { + if (i == 0) { + return `**Up Next:** \n\`${t.index + 1}:\` [${t.title}](${ + t.uri + }) \n\`${utils.prettyMs(t.duration, { + colonNotation: true, + })}\` **|** Requested by: ${t.requester}\n`; + } else { + return `\n\`${t.index + 1}:\` [${t.title}](${ + t.uri + }) \n\`${utils.prettyMs(t.duration, { + colonNotation: true, + })}\` **|** Requested by: ${t.requester}\n`; + } + }); + + const c = pagination.chunk(mapped, 10).map(x => x.join("\n")); + const embed = new MessageEmbed() + .setAuthor( + `Queue for ${interaction.guild.name}`, + interaction.user.displayAvatarURL({ dynamic: true }) + ) + .setColor(client.color) + .setDescription(c[0]) + .addField("Total songs: \n", `\`${player.queue.totalSize - 1}\``, true) + .addField( + "Total length: \n", + `\`${utils.prettyMs(player.queue.duration, { + colonNotation: true, + })}\``, + true + ) + .addField("Requested by:", `${player.queue.current.requester}`, true) + .addField( + "Current song duration:", + `${ + utils.progressBar(player.position, player.queue.current.duration, 15) + .Bar + } \`[${utils.prettyMs(player.position, { + colonNotation: true, + })} / ${utils.prettyMs(player.queue.current.duration, { + colonNotation: true, + })}]\`` + ) + .addField( + "**Currently Playing:**", + `[${player.queue.current.title}](${player.queue.current.uri})`, + true + ) + .setTimestamp() + .setFooter(`Page 1 of ${c.length}`) + .setThumbnail(player.queue.current.displayThumbnail()); + const msg = await interaction.followUp({ + embeds: [embed], + }); + pagination.pagination(msg, interaction.user, c); + }, +}; diff --git a/command/Music/remove.js b/command/Music/remove.js @@ -0,0 +1,42 @@ +module.exports = { + name: "remove", + description: "Remove a song from the queue", + category: "Music", + options: [ + { + type: 4, + name: "track", + description: "Remove a song from the queue", + required: true, + }, + ], + run: async (client, interaction, args) => { + const player = await client.manager.get(interaction.guild.id); + const channel = interaction.member.voice.channel.id; + if (!channel) { + client.err( + interaction, + "**You must be in a voice channel to use this command.**" + ); + } + if (player.voiceChannel !== channel) { + client.err( + interaction, + "**You must be in the same voice channel as me to use this command**" + ); + } + if (!player) client.err(interaction, "**Nothing is playing right now**"); + if (args[0] > player.queue.length) { + client.err( + interaction, + `The queue has only **${player?.queue.length}** songs` + ); + } else { + client.se( + interaction, + `โœ… | **Removed track** \`${parseInt(args[0])}\` from the queue!` + ); + player.queue.remove(parseInt(args[0]) - 1); + } + }, +}; diff --git a/command/Music/resume.js b/command/Music/resume.js @@ -0,0 +1,28 @@ +module.exports = { + name: "resume", + description: "Pauses the current playing music", + category: "Music", + run: async (client, interaction) => { + const player = await client.manager.get(interaction.guild.id); + const channel = interaction.member.voice.channel.id; + if (!channel) { + client.err( + interaction, + "**You must be in a voice channel to use this command.**" + ); + } + if (player.voiceChannel !== channel) { + client.err( + interaction, + "**You must be in the same voice channel as me to use this command**" + ); + } + if (!player) client.err(interaction, "**Nothing is playing right now**"); + if (player.playing) { + client.err(interaction, "**Music is already resumed!**"); + } else { + player.pause(false); + client.se(interaction, "**โฏ Resumed!**"); + } + }, +}; diff --git a/command/Music/seek.js b/command/Music/seek.js @@ -0,0 +1,53 @@ +module.exports = { + name: "seek", + description: "seek the current playing music", + category: "Music", + usage: "(Number)", + options: [ + { + type: 3, + name: "position", + description: "Enter a timestamp you want to seek to. Example - 2m 10s", + required: true, + }, + ], + run: async (client, interaction, args, utils) => { + const player = await client.manager.get(interaction.guild.id); + const channel = interaction.member.voice.channel.id; + if (!channel) { + client.err( + interaction, + "**You must be in a voice channel to use this command.**" + ); + } + if (player.voiceChannel !== channel) { + client.err( + interaction, + "**You must be in the same voice channel as me to use this command**" + ); + } + if (!player) client.err(interaction, "**Nothing is playing right now**"); + const SeekTo = utils.parseTimestring(args[0]); + if (SeekTo < 0 || SeekTo >= player.queue.current.duration / 1000) { + client.err( + interaction, + `You may seek from \`0\` - \`${player.queue.current.duration}\`\nExample - 2m 10s` + ); + } + if (!player.queue.current.isSeekable) { + client.err(interaction, "**I'm not able to seek this song**"); + } + if (!SeekTo) { + client.err( + interaction, + `You may seek from \`0\` - \`${player.queue.current.duration}\`\nExample - 2m 10s` + ); + } + player.seek(SeekTo * 1000); + client.se( + interaction, + "โœ… | **Successfully moved the song to **", + `\`${SeekTo}\`` + ); + }, +}; diff --git a/command/Music/shuffle.js b/command/Music/shuffle.js @@ -0,0 +1,27 @@ +module.exports = { + name: "shuffle", + description: "Music shuffle", + category: "Music", + run: async (client, interaction) => { + const player = await client.manager.get(interaction.guild.id); + const channel = interaction.member.voice.channel.id; + if (!channel) { + client.err( + interaction, + "**You must be in a voice channel to use this command.**" + ); + } + if (player.voiceChannel !== channel) { + client.err( + interaction, + "**You must be in the same voice channel as me to use this command**" + ); + } + if (!player) client.err(interaction, "**Nothing is playing right now**"); + if (!player.queue || !player.queue.length || player.queue.length === 0) { + client.err(interaction, "**Not enough songs in the queue to shuffle**"); + } + player.queue.shuffle(); + client.se(interaction, "โœ… | Shuffled the queue"); + }, +}; diff --git a/command/Music/skip.js b/command/Music/skip.js @@ -0,0 +1,38 @@ +module.exports = { + name: "skip", + description: "Skips to a song in a queue", + category: "Music", + options: [ + { + type: 4, + name: "position", + description: "Skips to a specific song in the queue", + required: true, + }, + ], + run: async (client, interaction, args) => { + const player = await client.manager.get(interaction.guild.id); + const channel = interaction.member.voice.channel.id; + if (!channel) { + client.err( + interaction, + "**You must be in a voice channel to use this command.**" + ); + } + if (player.voiceChannel !== channel) { + client.err( + interaction, + "**You must be in the same voice channel as me to use this command**" + ); + } + if (!player?.queue?.current) { + client.err(interaction, "**Nothing is playing right now**"); + } + const skipTo = args[0]; + if (skipTo < 1 || skipTo > player.queue.length) { + client.err(interaction, "โŒ | **Invalid number to skip!**"); + } + player.stop(skipTo); + client.se(interaction, `โญ Skipped \`${Number(skipTo)}\` songs`); + }, +}; diff --git a/command/Music/volume.js b/command/Music/volume.js @@ -0,0 +1,37 @@ +module.exports = { + name: "volume", + description: "To change the server song queue volume", + category: "Music", + description: "Set volume level of the music", + options: [ + { + type: 4, + name: "volume", + description: "The volume of the player. Default is 100", + required: true, + }, + ], + run: async (client, interaction) => { + const player = await client.manager.get(interaction.guild.id); + const channel = interaction.member.voice.channel.id; + if (!channel) { + client.err( + interaction, + "**You must be in a voice channel to use this command.**" + ); + } + if (player.voiceChannel !== channel) { + client.err( + interaction, + "**You must be in the same voice channel as me to use this command**" + ); + } + if (!player) client.err(interaction, "**Nothing is playing right now**"); + const vol = parseInt(args[0]); + player.setVolume(vol); + client.se( + interaction, + `๐Ÿ”‰ | The player's volume has been set to \`${player.volume}\`` + ); + }, +}; diff --git a/command/NSFW/ass.js b/command/NSFW/ass.js @@ -0,0 +1,40 @@ +const { MessageEmbed } = require("discord.js"); +const { getreddit } = require("cath"); +module.exports = { + name: "ass", + description: "Get some ass images", + run: async (client, interaction) => { + if (!interaction.channel.nsfw) { + const embed = new MessageEmbed() + .setTitle(`AYO Calm Yo Cheeks`) + .setDescription("This command only works in NSFW Channels!") + .setImage( + "https://media.discordapp.net/attachments/851761493815853060/893777701599584266/warning.gif" + ) + .setColor(client.color) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp(); + interaction.followUp({ embeds: [embed] }); + } else { + const subreddits = ["ass", "BestBooties", "BootyGIFs", "booty_queens"]; + const reddit = subreddits[Math.round(Math.random() * subreddits.length)]; + const data = await getreddit(reddit); + interaction.followUp({ + embeds: [ + new MessageEmbed({ + title: data.title, + url: data.url, + image: { url: data.image }, + timestamp: Date.now(), + footer: { text: data.footer }, + color: client.color, + author: { + name: interaction.user.tag, + iconURL: interaction.user.displayAvatarURL({ dynamic: true }), + }, + }), + ], + }); + } + }, +}; diff --git a/command/NSFW/blowjob.js b/command/NSFW/blowjob.js @@ -0,0 +1,48 @@ +const { MessageEmbed } = require("discord.js"); +const { getreddit } = require("cath"); +module.exports = { + name: "blowjob", + description: "Get some blowjob images", + run: async (client, interaction) => { + if (!interaction.channel.nsfw) { + const embed = new MessageEmbed() + .setTitle(`AYO Calm Yo Cheeks`) + .setDescription("This command only works in NSFW Channels!") + .setImage( + "https://media.discordapp.net/attachments/851761493815853060/893777701599584266/warning.gif" + ) + .setColor(client.color) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp(); + + interaction.followUp({ embeds: [embed] }); + } else { + const subreddits = [ + "BlowJob", + "blowjobs", + "blowjobgifs", + "OralSex", + "PushHerHead", + "ThroatFuck", + ]; + const reddit = subreddits[Math.round(Math.random() * subreddits.length)]; + const data = await getreddit(reddit); + interaction.followUp({ + embeds: [ + new MessageEmbed({ + title: data.title, + url: data.url, + image: { url: data.image }, + timestamp: Date.now(), + footer: { text: data.footer }, + color: client.color, + author: { + name: interaction.user.tag, + iconURL: interaction.user.displayAvatarURL({ dynamic: true }), + }, + }), + ], + }); + } + }, +}; diff --git a/command/NSFW/boobs.js b/command/NSFW/boobs.js @@ -0,0 +1,40 @@ +const { MessageEmbed } = require("discord.js"); +const { getreddit } = require("cath"); +module.exports = { + name: "boobs", + description: "Get some boobie images", + run: async (client, interaction) => { + if (!interaction.channel.nsfw) { + const embed = new MessageEmbed() + .setTitle(`AYO Calm Yo Cheeks`) + .setDescription("This command only works in NSFW Channels!") + .setImage( + "https://media.discordapp.net/attachments/851761493815853060/893777701599584266/warning.gif" + ) + .setColor(client.color) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp(); + interaction.followUp({ embeds: [embed] }); + } else { + const subreddits = ["boobs", "GrabHerTitties", "titfuck"]; + const reddit = subreddits[Math.round(Math.random() * subreddits.length)]; + const data = await getreddit(reddit); + interaction.followUp({ + embeds: [ + new MessageEmbed({ + title: data.title, + url: data.url, + image: { url: data.image }, + timestamp: Date.now(), + footer: { text: data.footer }, + color: client.color, + author: { + name: interaction.user.tag, + iconURL: interaction.user.displayAvatarURL({ dynamic: true }), + }, + }), + ], + }); + } + }, +}; diff --git a/command/NSFW/hentai.js b/command/NSFW/hentai.js @@ -0,0 +1,40 @@ +const { MessageEmbed } = require("discord.js"); +const { getreddit } = require("cath"); +module.exports = { + name: "hentai", + description: "Get some hentai images", + run: async (client, interaction) => { + if (!interaction.channel.nsfw) { + const embed = new MessageEmbed() + .setTitle(`AYO Calm Yo Cheeks`) + .setDescription("This command only works in NSFW Channels!") + .setImage( + "https://media.discordapp.net/attachments/851761493815853060/893777701599584266/warning.gif" + ) + .setColor(client.color) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp(); + interaction.followUp({ embeds: [embed] }); + } else { + const subreddits = ["hentai", "HentaiAnime", "nekogirls"]; + const reddit = subreddits[Math.round(Math.random() * subreddits.length)]; + const data = await getreddit(reddit); + interaction.followUp({ + embeds: [ + new MessageEmbed({ + title: data.title, + url: data.url, + image: { url: data.image }, + timestamp: Date.now(), + footer: { text: data.footer }, + color: client.color, + author: { + name: interaction.user.tag, + iconURL: interaction.user.displayAvatarURL({ dynamic: true }), + }, + }), + ], + }); + } + }, +}; diff --git a/command/NSFW/milf.js b/command/NSFW/milf.js @@ -0,0 +1,40 @@ +const { MessageEmbed } = require("discord.js"); +const { getreddit } = require("cath"); +module.exports = { + name: "milf", + description: "Get some milf images", + run: async (client, interaction) => { + if (!interaction.channel.nsfw) { + const embed = new MessageEmbed() + .setTitle(`AYO Calm Yo Cheeks`) + .setDescription("This command only works in NSFW Channels!") + .setImage( + "https://media.discordapp.net/attachments/851761493815853060/893777701599584266/warning.gif" + ) + .setColor(client.color) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp(); + interaction.followUp({ embeds: [embed] }); + } else { + const subreddits = ["milf", "OnlyHotMilfs", "realmoms"]; + const reddit = subreddits[Math.round(Math.random() * subreddits.length)]; + const data = await getreddit(reddit); + interaction.followUp({ + embeds: [ + new MessageEmbed({ + title: data.title, + url: data.url, + image: { url: data.image }, + timestamp: Date.now(), + footer: { text: data.footer }, + color: client.color, + author: { + name: interaction.user.tag, + iconURL: interaction.user.displayAvatarURL({ dynamic: true }), + }, + }), + ], + }); + } + }, +}; diff --git a/command/NSFW/pussy.js b/command/NSFW/pussy.js @@ -0,0 +1,42 @@ +const { MessageEmbed } = require("discord.js"); +const { getreddit } = require("cath"); + +module.exports = { + name: "pussy", + description: "Get some vagina images", + run: async (client, interaction) => { + if (!interaction.channel.nsfw) { + const embed = new MessageEmbed() + .setTitle(`AYO Calm Yo Cheeks`) + .setDescription("This command only works in NSFW Channels!") + .setImage( + "https://media.discordapp.net/attachments/851761493815853060/893777701599584266/warning.gif" + ) + .setColor(client.color) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp(); + interaction.followUp({ embeds: [embed] }); + return; + } else { + const subreddits = ["vagina", "GodPussy", "peachlips"]; + const reddit = subreddits[Math.round(Math.random() * subreddits.length)]; + const data = await getreddit(reddit); + interaction.followUp({ + embeds: [ + new MessageEmbed({ + title: data.title, + url: data.url, + image: { url: data.image }, + timestamp: Date.now(), + footer: { text: data.footer }, + color: client.color, + author: { + name: interaction.user.tag, + iconURL: interaction.user.displayAvatarURL({ dynamic: true }), + }, + }), + ], + }); + } + }, +}; diff --git a/command/NSFW/thighs.js b/command/NSFW/thighs.js @@ -0,0 +1,42 @@ +const { MessageEmbed } = require("discord.js"); +const { getreddit } = require("cath"); +module.exports = { + name: "thighs", + description: "Get some thighs images", + run: async (client, interaction) => { + if (!interaction.channel.nsfw) { + const embed = new MessageEmbed() + .setTitle(`AYO Calm Yo Cheeks`) + .setDescription("This command only works in NSFW Channels!") + .setImage( + "https://media.discordapp.net/attachments/851761493815853060/893777701599584266/warning.gif" + ) + .setColor(client.color) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp(); + + interaction.followUp({ embeds: [embed] }); + return; + } else { + const subreddits = ["thighs", "PerfectThighs", "thickthighs"]; + const reddit = subreddits[Math.round(Math.random() * subreddits.length)]; + const data = await getreddit(reddit); + interaction.followUp({ + embeds: [ + new MessageEmbed({ + title: data.title, + url: data.url, + image: { url: data.image }, + timestamp: Date.now(), + footer: { text: data.footer }, + color: client.color, + author: { + name: interaction.user.tag, + iconURL: interaction.user.displayAvatarURL({ dynamic: true }), + }, + }), + ], + }); + } + }, +}; diff --git a/command/Owner/accept.js b/command/Owner/accept.js @@ -0,0 +1,50 @@ +const { MessageEmbed } = require("discord.js"); +module.exports = { + name: "accept", + category: "Owner", + usage: "(Message)", + description: "Accept a suggestion", + Owner: true, + options: [ + { + type: 3, + name: "messageid", + description: "The message ID to accept", + required: true, + }, + { + type: 3, + name: "query", + description: "The accept query", + required: false, + }, + ], + run: async (client, interaction, args) => { + const MessageID = args[0]; + const acceptQuery = + args.slice(1).join(" ") || `They didn't leave any message.`; + try { + const suggestionChannel = interaction.guild.channels.cache.get( + client.config.Report + ); + const suggestEmbed = await suggestionChannel.messages.fetch(MessageID); + const data = suggestEmbed.embeds[0]; + const acceptEmbed = new MessageEmbed() + .setAuthor(data.author.name, data.author.iconURL) + .setDescription(data.description) + .setColor("GREEN") + .addField("**Status(ACCEPTED)**", acceptQuery); + suggestEmbed.edit({ embeds: [acceptEmbed] }); + const user = await client.users.cache.find( + u => u.tag === data.author.name + ); + interaction.followUp({ + content: "<a:nyx_checkmark:897240322411724841> Suggestion Accepted", + }); + user.send({ embeds: [acceptEmbed] }); + } catch (e) { + interaction.followUp({ content: "That suggestion doesn't exist" }); + console.log(e); + } + }, +}; diff --git a/command/Owner/add.js b/command/Owner/add.js @@ -0,0 +1,31 @@ +module.exports = { + name: "add", + category: "Owner", + usage: "(Number)", + description: "Add coins from someone", + Owner: true, + options: [ + { + type: 6, + name: "user", + description: "The user you want to add", + required: true, + }, + { + type: 4, + name: "cp", + description: "The amount of CP you want to add", + required: true, + }, + ], + run: async (client, interaction, args) => { + await client.add(args[0], args[1], interaction); + interaction.followUp({ + content: `<a:nyx_checkmark:897240322411724841> Successfully added **${interaction.options.getInteger( + "cp" + )}** ${client.currency} in **${ + interaction.options.getUser("user").username + }**'s balance`, + }); + }, +}; diff --git a/command/Owner/blacklist.js b/command/Owner/blacklist.js @@ -24,10 +24,10 @@ module.exports = { required: true, }, ], - run: async (client, interaction, args) => { - let user = interaction.options.getUser("user"); - toggle = interaction.options.getBoolean("yesno"); - reason = interaction.options.getString("reason"); + run: async (client, interaction) => { + const user = interaction.options.getUser("user"); + const toggle = interaction.options.getBoolean("yesno"); + const reason = interaction.options.getString("reason"); if (toggle === true) { await client.data.BK(user.id, toggle, reason); interaction.followUp({ diff --git a/command/Owner/deny.js b/command/Owner/deny.js @@ -0,0 +1,49 @@ +const { MessageEmbed } = require("discord.js"); +module.exports = { + name: "deny", + category: "Owner", + usage: "(Message)", + description: "Deny a suggestion", + Owner: true, + options: [ + { + type: 3, + name: "messageid", + description: "The message ID to deny", + required: true, + }, + { + type: 3, + name: "query", + description: "The deny query", + required: false, + }, + ], + run: async (client, interaction, args) => { + const MessageID = args[0]; + const denyQuery = args[1] || `They didn't leave any message.`; + try { + const suggestionChannel = interaction.guild.channels.cache.get( + client.config.Report + ); + const suggestEmbed = await suggestionChannel.messages.fetch(MessageID); + const data = suggestEmbed.embeds[0]; + const denyEmbed = new MessageEmbed() + .setAuthor(data.author.name, data.author.iconURL) + .setDescription(data.description) + .setColor("RED") + .addField("**Status(DENIED)**", denyQuery); + suggestEmbed.edit({ embeds: [denyEmbed] }); + const user = await client.users.cache.find( + u => u.tag === data.author.name + ); + interaction.followUp({ + content: "<a:nyx_cross:897244999211696198> Suggestion Denied", + }); + user.send({ embeds: [denyEmbed] }); + } catch (e) { + interaction.followUp({ content: "That suggestion doesn't exist" }); + console.log(e); + } + }, +}; diff --git a/command/Owner/dm.js b/command/Owner/dm.js @@ -0,0 +1,33 @@ +module.exports = { + name: "dm", + category: "Owner", + usage: "(User) (Message)", + description: "DM a user", + Owner: true, + options: [ + { + type: 6, + name: "user", + description: "The user you want to send", + required: true, + }, + { + type: 3, + name: "msg", + description: "The message you want to send", + required: true, + }, + ], + run: async (client, interaction, args) => { + const user = interaction.options.getUser("user"); + if (!user) return interaction.followUp("User?"); + if (!args[1]) return interaction.followUp("Message?"); + try { + await user + .send({ content: args[1] }) + .then(() => interaction.followUp({ content: `Sent message` })); + } catch (err) { + interaction.user.send({ content: "That user can't be dmed" }); + } + }, +}; diff --git a/command/Owner/eval.js b/command/Owner/eval.js @@ -2,7 +2,6 @@ const Discord = require("discord.js"); module.exports = { name: "eval", category: "Owner", - aliases: ["e"], usage: "(Code)", Owner: true, description: "Eval something", @@ -15,12 +14,12 @@ module.exports = { required: true, }, ], - run: async (client, interaction, args) => { - let code = args[0]; + run: async (client, interaction, args, utils) => { + const code = args[0]; function CheckFilter(object) { if (typeof object === "string") { object = object.replace( - new RegExp(client.token || process.env.TOKEN, "gi"), + new RegExp(`${client.token || process.env.TOKEN}`, "gi"), "Cannot eval Token" ); } else if (typeof object === "object") { @@ -29,14 +28,14 @@ module.exports = { object[i] = CheckFilter(object[i]); } } else { - for (let key in object) { + for (const key in object) { object[key] = CheckFilter(object[key]); } } } return object; } - let oldSend = Discord.TextChannel.prototype.send; + const oldSend = Discord.TextChannel.prototype.send; Discord.TextChannel.prototype.send = async function send(content, options) { return oldSend.bind(this)(CheckFilter(content), CheckFilter(options)); }; @@ -48,7 +47,7 @@ module.exports = { evaled = err; } if (typeof evaled !== "string") evaled = require("util").inspect(evaled); - evaled = new (require("string-toolkit"))().toChunks(evaled, 750); + evaled = utils.chunk(evaled, 750); let reactions = ["โŒ", "โช", "โ—€๏ธ", "โน๏ธ", "โ–ถ๏ธ", "โฉ"], page = 0, evaledEmbed = new Discord.MessageEmbed() @@ -60,27 +59,26 @@ module.exports = { interaction.user.displayAvatarURL({ dynamic: true }) ) .addField(`Type of`, `\`\`\`js\n${typeof evaled[0]}\n\`\`\``); - let mainMessage = await interaction.channel.send({ embeds: [evaledEmbed] }); + const mainMessage = await interaction.channel.send({ embeds: [evaledEmbed] }); Discord.TextChannel.prototype.send = oldSend; await Promise.all( (evaled.length === 1 ? ["โŒ", "โน๏ธ"] : reactions).map(r => mainMessage.react(r) ) ); - let filter = (reaction, user) => + const filter = (reaction, user) => (evaled.length === 1 ? ["โŒ", "โน๏ธ"] : reactions).some( e => e === reaction.emoji.name ) && user.id === interaction.user.id; - let collector = mainMessage.createReactionCollector({ + const collector = mainMessage.createReactionCollector({ filter, - time: 300000, + time: 999999, }); - collector.on("collect", async (reaction, user) => { + collector.on("collect", async reaction => { switch (reaction.emoji.name) { case "โŒ": await collector.stop(); return mainMessage.delete(); - break; case "โช": if (evaled.length === 1 || page === 0) return; page = 0; @@ -95,11 +93,10 @@ module.exports = { break; case "โน๏ธ": await collector.stop(); - for (let reaction of mainMessage.reactions.cache.map(e => e)) { + for (const reaction of mainMessage.reactions.cache.map(e => e)) { await reaction.users.remove(client.user.id); } return; - break; case "โ–ถ๏ธ": if (evaled.length === 1) return; if (page === evaled.length - 1) { diff --git a/command/Owner/getinvite.js b/command/Owner/getinvite.js @@ -0,0 +1,47 @@ +module.exports = { + name: "getinvite", + category: "Owner", + usage: "(Guild)", + description: "Generates an invitation to the server", + Owner: true, + options: [ + { + type: 3, + name: "guild", + description: "The guild you want to get invite (Server ID/Name)", + required: true, + }, + ], + run: async (client, interaction, args) => { + let guild = null; + const fetched = + client.guilds.cache.find(g => g.name === args.join(" ")) || + client.guilds.cache.get(args[0]); + guild = fetched; + if (guild) { + const tChannel = guild.channels.cache.find( + ch => + ch.type == "GUILD_TEXT" && + ch.permissionsFor(ch.guild.me).has("CREATE_INSTANT_INVITE") + ); + if (!tChannel) { + interaction.followUp({ + content: `\`${args.join( + " " + )}\` - Bot can't get invite since it doesn't get enough permission`, + }); + } + const invite = await tChannel + .createInvite({ temporary: false, maxAge: 0 }) + .catch(e => { + console.log(e); + interaction.followUp({ content: e.stack }); + }); + interaction.followUp({ content: invite.url }); + } else { + interaction.followUp({ + content: `\`${args.join(" ")}\` - Bot isn't in that server`, + }); + } + }, +}; diff --git a/command/Owner/guilds.js b/command/Owner/guilds.js @@ -4,20 +4,22 @@ module.exports = { category: "Owner", description: "Check top 10 guilds of the bot", Owner: true, - run: async (client, interaction, args) => { + run: async (client, interaction) => { const guilds = client.guilds.cache .sort((a, b) => b.memberCount - a.memberCount) .first(10); const description = guilds .map((guild, index) => { - return `${index + 1}) ${guild.name} -> ${guild.memberCount} members`; + return `**${index + 1}โฏ** ${guild.name} =โฏ ${ + guild.memberCount + } members`; }) .join("\n"); - let embed = new MessageEmbed() + const embed = new MessageEmbed() .setTitle("Guilds") .setDescription(description) .setColor(client.color) - .setFooter(`Made by ${client.author}`) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) .setTimestamp(); interaction.followUp({ embeds: [embed] }); }, diff --git a/command/Owner/restart.js b/command/Owner/restart.js @@ -5,10 +5,14 @@ module.exports = { Owner: true, run: async (client, interaction, args) => { await interaction.deleteReply(); - const msg = await interaction.channel.send("Restarting..."); + const msg = await interaction.channel.send( + "<a:config:896990033561669762> Restarting " + ); await client.destroy(); await client.login(process.env.TOKEN); await msg.delete(); - await interaction.channel.send("Restarted"); + await interaction.channel.send( + "<a:nyx_checkmark:897240322411724841> Restarted" + ); }, }; diff --git a/command/Owner/rmv.js b/command/Owner/rmv.js @@ -0,0 +1,31 @@ +module.exports = { + name: "rmv", + category: "Owner", + usage: "(Number)", + description: "Remove coins from someone", + Owner: true, + options: [ + { + type: 6, + name: "user", + description: "The user you want to remove", + required: true, + }, + { + type: 4, + name: "cp", + description: "The amount of CP you want to remove", + required: true, + }, + ], + run: async (client, interaction, args) => { + await client.rmv(args[0], args[1]); + interaction.followUp({ + content: `<a:nyx_checkmark:897240322411724841> Successfully removed **${interaction.options.getInteger( + "cp" + )}** ${client.currency} from **${ + interaction.options.getUser("user").username + }**'s balance`, + }); + }, +}; diff --git a/command/Utilities/afk.js b/command/Utilities/afk.js @@ -14,22 +14,22 @@ module.exports = { }, ], run: async (client, interaction, args) => { - let uuser = interaction.guild.members.cache.get(interaction.user.id); + const uuser = interaction.guild.members.cache.get(interaction.user.id); const content = args[0] || "No status provided."; - uuser.setNickname(`[AFK]${interaction.user.username}`); + uuser.setNickname(`[AFK] ${interaction.user.username}`).catch(); await client.data.AFK(interaction.user.id, content); const embed = new MessageEmbed() .setDescription( `${interaction.user.username} is set into AFK.\nStatus : ${content}` ) .setTimestamp() - .setFooter(`Made by ${client.author}`) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) .setColor(client.color) .setAuthor( interaction.user.username, interaction.user.displayAvatarURL({ dynamic: true }) ) .setURL(client.web); - await interaction.followUp({ embeds: [embed] }); + interaction.followUp({ embeds: [embed] }); }, }; diff --git a/command/Utilities/codebin.js b/command/Utilities/codebin.js @@ -0,0 +1,17 @@ +const CodeClient = require("../../client/CodeClient"); +module.exports = { + name: "Create Code Bin", + type: "MESSAGE", + run: async (client, interaction) => { + const msg = await interaction.channel.messages.fetch(interaction.targetId); + if (!msg.content) { + interaction.followUp({ content: "The message must have a content" }); + } else { + const title = "Code"; + const description = msg.author.tag; + const code = msg.content; + const link = await CodeClient.createBin(title, description, code); + interaction.followUp({ content: link }); + } + }, +}; diff --git a/command/Utilities/docs.js b/command/Utilities/docs.js @@ -20,9 +20,8 @@ module.exports = { query )}` ) - .then(res => res.json()) .then(async data => { - await interaction.followUp({ embeds: [data] }); + interaction.followUp({ embeds: [data.data] }); }); }, }; diff --git a/command/Utilities/emojiadd.js b/command/Utilities/emojiadd.js @@ -3,8 +3,8 @@ module.exports = { usage: "(Link) (Name)", description: "Show an emoji URL or add the emoji to the server", category: "Utilities", - UserPerm: ["MANAGE_EMOJIS_AND_STICKERS"], - BotPerm: ["MANAGE_EMOJIS_AND_STICKERS"], + UserPerms: ["MANAGE_EMOJIS_AND_STICKERS"], + BotPerms: ["MANAGE_EMOJIS_AND_STICKERS"], options: [ { type: 3, @@ -21,9 +21,13 @@ module.exports = { ], run: async (client, interaction, args) => { try { - if (args[1].length < 2 || args[1].match(/\W/)) - return client.serr(interaction, "Utilities", "emojiadd", 49); - interaction.guild.emojis.create(args[0], args[1]).then(msg => { + if (args[1].length < 2 || args[1].match(/\W/)) { + interaction.followUp({ + content: + "The emoji name must have at least 2 charcter and must only contain alphanumeric characters & underscore", + }); + } + interaction.guild.emojis.create(args[0], args[1]).then(() => { const em = interaction.guild.emojis.cache.find(a => a.name == args[1]); interaction.followUp(`Added <:${em.name}:${em.id}> to the server`); }); diff --git a/command/Utilities/esnipe.js b/command/Utilities/esnipe.js @@ -10,6 +10,7 @@ module.exports = { name: "channel", description: "The sniped channel", required: true, + channelTypes: ["GUILD_TEXT"], }, { type: 4, @@ -20,20 +21,20 @@ module.exports = { ], run: async (client, interaction, args) => { var i = 0; - var description = ""; + let description = ""; const embed = new MessageEmbed() .setAuthor( `Sniped by ${interaction.user.tag}`, interaction.user.displayAvatarURL({ dynamic: true }) ) .setColor(client.color) - .setFooter(`Made by ${client.author}`) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) .setTimestamp() .setURL(client.web); const snipes = client.esnipes.get(args[0]) || []; - if (interaction.guild.channels.cache.get(args[0]).type !== "GUILD_TEXT") + if (interaction.guild.channels.cache.get(args[0]).type !== "GUILD_TEXT") { interaction.followUp({ content: "Please provide a text channel" }); - else if (args[1]) { + } else if (args[1]) { const msg = snipes[args[1] - 1]; if (!msg) { snipes.forEach(m => { @@ -90,40 +91,38 @@ module.exports = { embed.setDescription(description); return interaction.followUp({ embeds: [embed] }); } + } else if (!snipes.length) { + interaction.followUp({ + content: "There isn't any snipe in this channel yet", + }); } else { - if (!snipes.length) { - interaction.followUp({ - content: "There isn't any snipe in this channel yet", - }); - } else { - snipes.forEach(m => { - const map = []; - for (var i = 0; i < m.attachment?.length; i++) { - map.push( - `**Attchment ${i + 1}:** [Click to view](${m.attachment[i]})` - ); - } - if (m.author !== "No Author") { - description += `\n\n**Author:** ${m.author.username}#${ - m.author.discriminator - } (Deleted ${moment(m.date).fromNow()})\n**ID:** ${ - m.author.id - }\n**Old Content:** ${m.oldContent}\n**New Content:** ${ - m.newContent - }\n${map ? map.join("\n") : ""}`; - i++; - } else { - description += `\n\n**Author:** None (Deleted ${moment( - m.date - ).fromNow()})\n\n**Old Content:** ${ - m.oldContent - }\n**New Content:** ${m.newContent}\n${map ? map.join("\n") : ""}`; - i++; - } - }); - embed.setDescription(description); - return interaction.followUp({ embeds: [embed] }); - } + snipes.forEach(m => { + const map = []; + for (var i = 0; i < m.attachment?.length; i++) { + map.push( + `**Attchment ${i + 1}:** [Click to view](${m.attachment[i]})` + ); + } + if (m.author !== "No Author") { + description += `\n\n**Author:** ${m.author.username}#${ + m.author.discriminator + } (Deleted ${moment(m.date).fromNow()})\n**ID:** ${ + m.author.id + }\n**Old Content:** ${m.oldContent}\n**New Content:** ${ + m.newContent + }\n${map ? map.join("\n") : ""}`; + i++; + } else { + description += `\n\n**Author:** None (Deleted ${moment( + m.date + ).fromNow()})\n\n**Old Content:** ${m.oldContent}\n**New Content:** ${ + m.newContent + }\n${map ? map.join("\n") : ""}`; + i++; + } + }); + embed.setDescription(description); + return interaction.followUp({ embeds: [embed] }); } }, }; diff --git a/command/Utilities/github.js b/command/Utilities/github.js @@ -1,59 +0,0 @@ -const { MessageEmbed } = require("discord.js"); -const moment = require("moment"); -const axios = require("axios"); -module.exports = { - name: "github", - description: `Get Github User Information`, - options: [ - { - type: 3, - name: "username", - description: "The username you want to search", - required: true, - }, - ], - run: async (client, interaction, args) => { - try { - axios - .get(`https://api.github.com/users/${args[0]}`) - .then(res => res.data) - .then(body => { - if (body.message) - return interaction.followUp({ content: "User Not Found" }); - let { - login, - avatar_url, - name, - id, - html_url, - public_repos, - followers, - following, - location, - created_at, - bio, - } = body; - const embed = new MessageEmbed() - .setAuthor(`${login} Information`, avatar_url) - .setColor(client.color) - .setThumbnail(`${avatar_url}`) - .setTimestamp() - .addField(`Username`, `${login}`) - .addField(`ID`, `${id}`) - .addField(`Bio`, `${bio || "None"}`) - .addField(`Public Repositories`, `${public_repos || "None"}`, true) - .addField(`Followers`, `${followers}`, true) - .addField(`Following`, `${following}`, true) - .addField(`Location`, `${location || "None"}`) - .addField( - `Account Created`, - moment.utc(created_at).format("dddd, MMMM, Do YYYY") - ) - .setFooter(`Made by ${client.author}`); - interaction.followUp({ embeds: [embed] }); - }); - } catch (error) { - console.log(error); - } - }, -}; diff --git a/command/Utilities/hexcolor.js b/command/Utilities/hexcolor.js @@ -1,85 +0,0 @@ -const Canvas = require("canvas"); -const { MessageEmbed, MessageAttachment } = require("discord.js"); -const axios = require("axios"); - -module.exports = { - name: "hexcolor", - usage: "(Hex Color Code)", - description: "Get Hex and RGB info of a color", - category: "Utilities", - type: "CHAT_INPUT", - options: [ - { - type: 3, - name: "code", - description: "Color code you want to see (Example: #FF0000)", - required: true, - }, - ], - run: async (client, interaction, args) => { - let color; - if (args[0]) { - if (/(#|0x)([0-9A-F]{6})/i.test(args[0])) { - color = args[0].match(/(#|0x)([0-9A-F]{6})/i)[2]; - } else { - return await interaction.followUp({ - content: "Please give a valid Hex Color Code", - }); - } - } else { - color = interaction.member.displayHexColor; - } - try { - const aa = color.replace("#", "", "0x", ""); - const colour = await axios.get( - `https://www.thecolorapi.com/scheme?hex=${aa}` - ); - const canvas = Canvas.createCanvas(200, 200); - const ctx = canvas.getContext("2d"); - ctx.beginPath(); - ctx.rect(0, 0, 200, 200); - ctx.fillStyle = `${colour.data.seed.hex.value}`; - ctx.fill(); - const rightpic = new MessageAttachment(canvas.toBuffer(), "wea.jpg"); - const canvasx = Canvas.createCanvas(500, 100); - const ctxt = canvasx.getContext("2d"); - let y = canvasx.height / 2; - ctxt.font = "12px Roboto"; - ctxt.textAlign = "center"; - let addup = 0; - for (let i = 0; i < 5; i++) { - ctxt.beginPath(); - ctxt.rect(addup, 0, 100, 100); - ctxt.fillStyle = `${colour.data.colors[i].hex.value}`; - ctxt.fill(); - addup = addup + 100; - ctxt.beginPath(); - ctxt.rect(addup - 80, y - 15, 60, 30); - ctxt.fillStyle = `black`; - ctxt.fill(); - ctxt.fillStyle = `white`; - ctxt.fillText( - `${colour.data.colors[i].hex.value}`, - addup - 51, - y + 4.3 - ); - } - const attachment = new MessageAttachment(canvasx.toBuffer(), "color.jpg"); - const embed = new MessageEmbed() - .setColor(`0x${colour.data.seed.hex.value}`) - .setDescription( - `\`HEX: ${colour.data.seed.hex.value} RGB: ${colour.data.seed.rgb.value}\`\n๐Ÿ”ฝColor Scheme๐Ÿ”ฝ` - ) - .setTitle("Color Information (Click here for more info)") - .setURL(`https://www.colorhexa.com/${colour.data.seed.hex.clean}`) - .setImage("attachment://color.jpg") - .setThumbnail("attachment://wea.jpg"); - await interaction.followUp({ - embeds: [embed], - files: [attachment, rightpic], - }); - } catch (e) { - console.log(e); - } - }, -}; diff --git a/command/Utilities/invite.js b/command/Utilities/invite.js @@ -5,28 +5,27 @@ module.exports = { description: "Get bot invite link or get support", category: "Utilities", type: "CHAT_INPUT", - run: async (client, interaction, args) => { - var embed = new MessageEmbed() - .setFooter(`Made by ${client.author}`) + run: async (client, interaction, args, utils) => { + const embed = new MessageEmbed() + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) .setColor(client.color) .setTimestamp() .setAuthor( - interaction.member.user.tag, + interaction.user.tag, interaction.user.displayAvatarURL({ dynamic: true }) ) .setTitle(`Support/Invite`) - .addField( - "**Invite Link**", - `**Invite me to your server by clicking [here](https://discord.com/api/oauth2/authorize?client_id=${client.user.id}&permissions=4231314550&scope=bot%20applications.commands)**` - ) - .addField( - "**Support Server Invite**", - "**Join the support server by clicking [here](https://discord.gg/SbQHChmGcp)**" + .setThumbnail( + "https://github.com/night0721/cath.js/blob/master/util/assets/images/nyx_logo_transparent.webp" ) .addField( - "**Premium**", - "**You can either boost support server or subscribe to developer's team [Ko-fi](https://ko-fi.com/cathteam) or gift a nitro to one of the developer team **" + "<a:booster:896527475063025704> **Premium**", + "**You can either boost support server or subscribe to developer's team [Ko-Fi](https://ko-fi.com/cathteam) or gift a nitro to one of the developer team.**" ); - await interaction.followUp({ embeds: [embed] }); + interaction.followUp({ + content: "Please click the buttons below for more information", + embeds: [embed], + components: utils.buttons(client), + }); }, }; diff --git a/command/Utilities/lyrics.js b/command/Utilities/lyrics.js @@ -0,0 +1,58 @@ +const { MessageEmbed } = require("discord.js"); +const axios = require("axios"); +const { Pagination } = require("cath"); +module.exports = { + name: "lyrics", + description: "Get lyrics for the currently playing song", + category: "Music", + usage: "(Song)", + options: [ + { + type: 3, + name: "song", + description: "The song to search", + required: true, + }, + ], + run: async (client, interaction, args) => { + const splitlyrics = new Pagination(); + const lyricsdata = await axios + .get( + `${process.env.api}/api/v1/lyrics?name=${encodeURIComponent(args[0])}` + ) + .then(res => res.data); + if (!lyricsdata?.lyrics) { + interaction.followUp({ + content: `**No lyrics are found for ${args[0]}**`, + }); + } else { + const splittedLyrics = splitlyrics.chunk(lyricsdata.lyrics, 1024); + const lyricsEmbed = new MessageEmbed() + .setAuthor(`Lyrics`) + .setColor("YELLOW") + .addFields( + { name: "Song Name", value: lyricsdata.title, inline: true }, + { name: "โ €", value: "โ €", inline: true }, + { + name: "Full Lyrics", + value: `${ + process.env.api + }/api/v1/lyrics/full?name=${encodeURIComponent(args[0])}`, + inline: true, + } + ) + .setDescription(splittedLyrics[0]) + .setFooter(`Page 1 of ${splittedLyrics.length}`) + .setThumbnail(lyricsdata.image) + .setTimestamp(); + const lyricsMsg = await interaction.followUp({ embeds: [lyricsEmbed] }); + if (splittedLyrics.length > 1) { + await splitlyrics.pagination( + lyricsMsg, + interaction.user, + splittedLyrics + ); + } + } + }, +}; diff --git a/command/Utilities/permission.js b/command/Utilities/permission.js @@ -1,118 +0,0 @@ -const { MessageEmbed } = require("discord.js"); -module.exports = { - name: "permission", - usage: "(User)", - description: "Show user's permission in server/channel", - category: "Utilities", - type: "CHAT_INPUT", - options: [ - { - type: 6, - name: "user", - description: "The use you want to see", - required: false, - }, - ], - run: async (client, interaction, args, utils) => { - const yes = "โœ”๏ธ"; - const no = "โŒ"; - const x = "```"; - const s = "๐Ÿ“›"; - const c = "โ™จ๏ธ"; - - const permissions = [ - "CREATE_INSTANT_INVITE", - "KICK_MEMBERS", - "BAN_MEMBERS", - "ADMINISTRATOR", - "MANAGE_CHANNELS", - "MANAGE_GUILD", - "ADD_REACTIONS", - "VIEW_AUDIT_LOG", - "PRIORITY_SPEAKER", - "STREAM", - "VIEW_CHANNEL", - "SEND_MESSAGES", - "SEND_TTS_MESSAGES", - "MANAGE_MESSAGES", - "EMBED_LINKS", - "ATTACH_FILES", - "READ_MESSAGE_HISTORY", - "MENTION_EVERYONE", - "USE_EXTERNAL_EMOJIS", - "VIEW_GUILD_INSIGHTS", - "CONNECT", - "SPEAK", - "STREAM", - "MUTE_MEMBERS", - "DEAFEN_MEMBERS", - "MOVE_MEMBERS", - "USE_VAD", - "CHANGE_NICKNAME", - "MANAGE_NICKNAMES", - "MANAGE_ROLES", - "MANAGE_WEBHOOKS", - "MANAGE_EMOJIS_AND_STICKER", - "USE_VAD", - "PRIORITY_SPEAKER", - "REQUEST_TO_SPEAK", - "MANAGE_THREADS", - "USE_PUBLIC_THREADS", - "USE_PRIVATE_THREADS", - "USE_EXTERNAL_STICKERS", - "USE_APPLICATION_COMMANDS", - ]; - - let user = - interaction.guild.members.cache.get(args[0]) || interaction.member; - let userId = user.user.id; - let description = `Server - ${s}\nCurrent channel - ${c}\n\n${s} | ${c}\n`; - let embed = new MessageEmbed() - .setTitle(`${user.user.username} Permissions`) - .setColor(user.displayColor) - .setURL(client.web); - permissions.forEach(perm => { - description += `${user.permissions.has(perm) ? yes : no} | ${ - interaction.channel.permissionsFor(userId).has(perm) ? yes : no - } - ${perm - .replace("CREATE_INSTANT_INVITE", "Create Invite") - .replace("KICK_MEMBERS", "Kick Members") - .replace("BAN_MEMBERS", "Ban Members") - .replace("ADMINISTRATOR", "Administrator") - .replace("MANAGE_CHANNELS", "Manage Channels") - .replace("MANAGE_GUILD", "Manage Guild") - .replace("ADD_REACTIONS", "Add Reactions") - .replace("VIEW_AUDIT_LOG", "View Audit Log") - .replace("PRIORITY_SPEAKER", "Priority Speaker") - .replace("STREAM", "Video") - .replace("VIEW_CHANNEL", "View Channel") - .replace("SEND_MESSAGES", "Send Messages") - .replace("SEND_TTS_MESSAGES", "Send TTS Messages") - .replace("MANAGE_MESSAGES", "Manage Messages") - .replace("EMBED_LINKS", "Embed Links") - .replace("ATTACH_FILES", "Attach Files") - .replace("READ_MESSAGE_HISTORY", "Read Message History") - .replace("MENTION_EVERYONE", "Mention Everyone") - .replace("USE_EXTERNAL_EMOJIS", "Use External Emojis") - .replace("VIEW_GUILD_INSIGHTS", "View Guild Insights") - .replace("CONNECT", "Connect") - .replace("SPEAK", "Speak") - .replace("MUTE_MEMBERS", "Mute Members") - .replace("DEAFEN_MEMBERS", "Defean Members") - .replace("MOVE_MEMBERS", "Move Members") - .replace("USE_VAD", "Use VAD") - .replace("CHANGE_NICKNAME", "Change Nickname") - .replace("MANAGE_NICKNAMES", "Manage Nicknames") - .replace("MANAGE_ROLES", "Manage Roles") - .replace("MANAGE_WEBHOOKS", "Manage Webhooks") - .replace("MANAGE_EMOJIS_AND_STICKER", "Manage Emojis and Sticker") - .replace("MANAGE_THREADS", "Manage Threads") - .replace("USE_PUBLIC_THREADS", "Use Public Threads") - .replace("USE_PRIVATE_THREADS", "Use Private Threads") - .replace("USE_EXTERNAL_STICKERS", "Use External Stickers") - .replace("USE_APPLICATION_COMMANDS", "Use Application Commands")}\n`; - }); - embed.setDescription(x + description + x); - await interaction.followUp({ embeds: [embed] }); - }, -}; diff --git a/command/Utilities/poll.js b/command/Utilities/poll.js @@ -1,37 +0,0 @@ -const { MessageEmbed } = require("discord.js"); -module.exports = { - name: "poll", - description: "Start a poll in a channel", - category: "Utilities", - type: "CHAT_INPUT", - options: [ - { - type: 3, - name: "description", - description: "The description of the poll", - required: true, - }, - { - type: 7, - name: "channel", - description: "The channel you want to send the poll", - required: false, - }, - ], - run: async (client, interaction, args) => { - await interaction.deleteReply(); - let pollDescription = ` - ${interaction.member} asks: ${args[0]}`; - const channel = - interaction.guild.channels.cache.get(args[1]) || interaction.channel; - let embedPoll = new MessageEmbed() - .setTitle(`${interaction.member.user.tag} made a poll`) - .setDescription(pollDescription) - .setFooter(`Made by ${client.author}`) - .setTimestamp() - .setColor("GREEN"); - let msgEmbed = await channel.send({ embeds: [embedPoll] }); - await msgEmbed.react("๐Ÿ‘"); - await msgEmbed.react("๐Ÿ‘Ž"); - }, -}; diff --git a/command/Utilities/rank.js b/command/Utilities/rank.js @@ -1,303 +0,0 @@ -const Levels = require("discord-xp"); -const Canvas = require("canvas"), - Discord = require(`discord.js`); -const { registerFont } = require("canvas"); -registerFont("./util/assets/fonts/Poppins-Regular.ttf", { - family: "Poppins-Regular", -}); -registerFont("./util/assets/fonts/Poppins-SemiBold.ttf", { - family: "Poppins-Bold", -}); -module.exports = { - name: "rank", - description: "Shows an image of someone's ranking", - type: "CHAT_INPUT", - options: [ - { - type: 6, - name: "user", - description: "The user you want to see", - required: false, - }, - ], - run: async (client, interaction, args) => { - const badges = [1, 8]; - for (let i = badges[0]; i <= badges[1]; i++) client[`badge${i}`] = null; - setBadge = function (variable, value) { - const number = Number(variable); - for (let i = badges[0]; i <= badges[1]; i++) - if (number === i) { - client[`badge${number}`] = value; - break; - } - return client; - }; - - const member = - interaction.guild.members.cache.get(args[0]) || interaction.member; - - const user = await Levels.fetch(member.id, interaction.guild.id); - console.log(user); - const canvas = Canvas.createCanvas(1080, 400), - ctx = canvas.getContext("2d"); - - let BackgroundRadius = "50", //50 | 0 if u want no rounded background | 50 if u want a very rounded background - BackGroundImg = "https://images7.alphacoders.com/109/1092420.jpg", - AttachmentName = "rank.png", - Username = member.user.username, - AvatarRoundRadius = "50", // 30 if u want squared round Avatar | 100 IF u want rounded - DrawLayerColor = "#000000", - DrawLayerOpacity = "0.4", - BoxColor = "#6eaedb", //Lvl and REP Box COlor - LevelBarFill = "#ffffff", // - LevelBarBackground = "#ffffff", - Rank = user.position, - TextEXP = "20XP", - TextReputation = "+ 2.18k rep", - BarRadius = "15", - TextXpNeded = "{current}/{needed}", - CurrentXP = user.xp, - NeededXP = Levels.xpFor(parseInt(user.level) + 1); - - //SET BADGES - //setBadge("1", "Bronze") // .png | file name need to be Number_Name in this case is "1_bronze" - //setBadge("2", "Gold") // .png | file name need to be Number_Name in this case is "2_Gold" - //SET BADGES - - //BackGround - ctx.beginPath(); - ctx.moveTo(0 + Number(BackgroundRadius), 0); - ctx.lineTo(0 + 1080 - Number(BackgroundRadius), 0); - ctx.quadraticCurveTo(0 + 1080, 0, 0 + 1080, 0 + Number(BackgroundRadius)); - ctx.lineTo(0 + 1080, 0 + 400 - Number(BackgroundRadius)); - ctx.quadraticCurveTo( - 0 + 1080, - 0 + 400, - 0 + 1080 - Number(BackgroundRadius), - 0 + 400 - ); - - ctx.lineTo(0 + Number(BackgroundRadius), 0 + 400); - ctx.quadraticCurveTo(0, 0 + 400, 0, 0 + 400 - Number(BackgroundRadius)); - ctx.lineTo(0, 0 + Number(BackgroundRadius)); - ctx.quadraticCurveTo(0, 0, 0 + Number(BackgroundRadius), 0); - ctx.closePath(); - ctx.clip(); - ctx.fillStyle = "#000000"; - ctx.fillRect(0, 0, 1080, 400); - let background = await Canvas.loadImage(BackGroundImg); - ctx.drawImage(background, 0, 0, 1080, 400); - ctx.restore(); - - //Layer - ctx.fillStyle = DrawLayerColor; - ctx.globalAlpha = DrawLayerOpacity; - ctx.fillRect(40, 0, 240, canvas.height); - ctx.globalAlpha = 1; - - //RoundedBox Function - function RoundedBox(ctx, x, y, width, height, radius) { - ctx.beginPath(); - ctx.moveTo(x + radius, y); - ctx.lineTo(x + width - radius, y); - ctx.quadraticCurveTo(x + width, y, x + width, y + radius); - ctx.lineTo(x + width, y + height - radius); - ctx.quadraticCurveTo( - x + width, - y + height, - x + width - radius, - y + height - ); - ctx.lineTo(x + radius, y + height); - ctx.quadraticCurveTo(x, y + height, x, y + height - radius); - ctx.lineTo(x, y + radius); - ctx.quadraticCurveTo(x, y, x + radius, y); - ctx.closePath(); - } - - //Avatar - let avatar = await Canvas.loadImage( - member.user.displayAvatarURL({ dynamic: true, format: "png" }) - ); - ctx.save(); - RoundedBox(ctx, 40 + 30, 30, 180, 180, Number(AvatarRoundRadius)); - ctx.strokeStyle = "#BFC85A22"; - ctx.stroke(); - ctx.clip(); - ctx.drawImage(avatar, 40 + 30, 30, 180, 180); - ctx.restore(); - //Avatar - - //Reputation - ctx.save(); - RoundedBox(ctx, 40 + 30, 30 + 180 + 30, 180, 50, 10); - ctx.strokeStyle = "#BFC85A22"; - ctx.stroke(); - ctx.clip(); - ctx.fillStyle = BoxColor; - ctx.globalAlpha = "1"; - ctx.fillRect(40 + 30, 30 + 180 + 30, 180, 50, 50); - ctx.globalAlpha = 1; - ctx.fillStyle = "#ffffff"; - ctx.shadowColor = "#000000"; - ctx.shadowBlur = 20; - ctx.shadowOffsetX = 1; - ctx.shadowOffsetY = 1; - ctx.font = '32px "Poppins-Bold"'; - ctx.textAlign = "center"; - ctx.fillText(TextReputation, 40 + 30 + 180 / 2, 30 + 180 + 30 + 38); - ctx.restore(); - //Reputation - - //EXP - ctx.save(); - RoundedBox(ctx, 40 + 30, 30 + 180 + 30 + 50 + 30, 180, 50, 10); - ctx.strokeStyle = "#BFC85A22"; - ctx.stroke(); - ctx.clip(); - ctx.fillStyle = BoxColor; - ctx.globalAlpha = "1"; - ctx.fillRect(40 + 30, 30 + 180 + 30 + 50 + 30, 180, 50); - ctx.globalAlpha = 1; - ctx.fillStyle = "#ffffff"; - ctx.shadowColor = "#000000"; - ctx.shadowBlur = 20; - ctx.shadowOffsetX = 1; - ctx.shadowOffsetY = 1; - ctx.font = '32px "Poppins-Bold"'; - ctx.textAlign = "center"; - ctx.fillText(TextEXP, 40 + 30 + 180 / 2, 30 + 180 + 30 + 30 + 50 + 38); - ctx.restore(); - //EXP - - //ctx.save() - //ctx.textAlign = "left"; - //ctx.fillStyle = "#ffffff"; - //ctx.shadowColor = '#000000'; - //ctx.font = '15px "Poppins-Bold"' - //ctx.fillText(member.user.username, 390, 200); - //ctx.restore() - - //Username - ctx.save(); - ctx.textAlign = "left"; - ctx.fillStyle = "#ffffff"; - ctx.shadowColor = "#000000"; - ctx.shadowBlur = 15; - ctx.shadowOffsetX = 1; - ctx.shadowOffsetY = 1; - ctx.font = '39px "Poppins-Bold"'; - ctx.fillText(Username, 390, 80); - ctx.restore(); - //Username - - //Rank - ctx.save(); - ctx.textAlign = "right"; - ctx.fillStyle = "#ffffff"; - ctx.shadowColor = "#000000"; - ctx.shadowBlur = 15; - ctx.shadowOffsetX = 1; - ctx.shadowOffsetY = 1; - ctx.font = '55px "Poppins-Bold"'; - ctx.fillText("#" + Rank, canvas.width - 50 - 5, 80); - ctx.restore(); - - //Rank Name - ctx.save(); - ctx.textAlign = "left"; - ctx.fillStyle = "#ffffff"; - ctx.shadowColor = "#000000"; - ctx.shadowBlur = 15; - ctx.shadowOffsetX = 1; - ctx.shadowOffsetY = 1; - ctx.font = '30px "Poppins-Bold"'; - ctx.fillText("Diamond Nature", 390, 120); - ctx.restore(); - - //Badges - ctx.save(); - RoundedBox(ctx, 390, 305, 660, 70, Number(15)); - ctx.strokeStyle = "#BFC85A22"; - ctx.stroke(); - ctx.clip(); - ctx.fillStyle = "#ffffff"; - ctx.globalAlpha = "0.2"; - ctx.fillRect(390, 305, 660, 70); - ctx.restore(); - const badgeNames = ["1", "2", "3", "4", "5", "6", "7", "8"]; - for (let index = 0; index < badgeNames.length; index++) { - let badge = `badge${index + 1}`; - if (!client[badge]) { - ctx.fillStyle = "#ffffff"; - ctx.globalAlpha = "0.2"; - ctx.textAlign = "center"; - ctx.font = '90px "Poppins-Bold"'; - ctx.fillText(".", 75 * index + 450, 345); - } else { - ctx.globalAlpha = 1; - let badgeImg = await Canvas.loadImage( - ["bronze", "silver", "gold", "diamond"].includes( - client[badge].toLowerCase() - ) - ? `${__dirname}/${badgeNames[index]}_${client[ - badge - ].toLowerCase()}.png` - : client[badge] - ); - ctx.drawImage(badgeImg, 75 * index + 420, 315, 50, 50); - } - } - //Badges - - //Level Bar - ctx.save(); - RoundedBox(ctx, 390, 145, 660, 50, Number(BarRadius)); - ctx.strokeStyle = "#BFC85A22"; - ctx.stroke(); - ctx.clip(); - ctx.fillStyle = LevelBarBackground; - ctx.globalAlpha = "0.2"; - ctx.fillRect(390, 145, 660, 50, 50); - ctx.restore(); - - const percent = (100 * CurrentXP) / NeededXP; - const progress = (percent * 660) / 100; - - ctx.save(); - RoundedBox(ctx, 390, 145, progress, 50, Number(BarRadius)); - ctx.strokeStyle = "#BFC85A22"; - ctx.stroke(); - ctx.clip(); - ctx.fillStyle = LevelBarFill; - ctx.globalAlpha = "0.5"; - ctx.fillRect(390, 145, progress, 50, 50); - ctx.restore(); - - //Next Rank - ctx.save(); - ctx.textAlign = "left"; - ctx.fillStyle = "#ffffff"; - ctx.globalAlpha = "0.8"; - ctx.font = '30px "Poppins-Bold"'; - ctx.fillText("Next Rank: " + "None", 390, 230); - ctx.restore(); - - const latestXP = Number(CurrentXP) - Number(NeededXP); - const textXPEdited = TextXpNeded.replace(/{needed}/g, NeededXP) - .replace(/{current}/g, CurrentXP) - .replace(/{latest}/g, latestXP); - ctx.textAlign = "center"; - ctx.fillStyle = "#ffffff"; - ctx.globalAlpha = 1; - ctx.font = '30px "Poppins-Bold"'; - ctx.fillText(textXPEdited, 730, 180); - //Level Bar - - const attachment = new Discord.MessageAttachment( - canvas.toBuffer(), - AttachmentName - ); - await interaction.followUp({ files: [attachment] }); - }, -}; diff --git a/command/Utilities/report.js b/command/Utilities/report.js @@ -15,24 +15,24 @@ module.exports = { ], run: async (client, interaction, args) => { const bug = args[0]; - await interaction.followUp({ + interaction.followUp({ embeds: [ new MessageEmbed() .setTitle("SUCCESS!") .setDescription( "You have reported a bug.\nPlease wait for us to solve it" ) - .setFooter(`Made by ${client.author}`) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) .setTimestamp() .setColor("GREEN"), ], }); - const ch = client.channels.cache.get(client.ReportLog); + const ch = client.channels.cache.get(client.config.Report); ch.send({ embeds: [ new MessageEmbed() .setAuthor( - interaction.member.user.tag, + interaction.user.tag, interaction.user.displayAvatarURL({ dynamic: true }) ) .setTitle("New Bug") diff --git a/command/Utilities/shorturl.js b/command/Utilities/shorturl.js @@ -0,0 +1,35 @@ +const URLClient = require("../../client/URLClient"); +module.exports = { + name: "shorten-url", + description: "Shorten a URL", + options: [ + { + type: 3, + name: "short-name", + description: + "The short name that for the shorten-url (For example, https://url.cath.gq/youtube)", + required: true, + }, + { + type: 3, + name: "link", + description: + "The link for the shorten-url (For example, https://youtube.com)", + required: true, + }, + ], + run: async (client, interaction, args) => { + if (!args[1].includes("https://")) { + interaction.followUp({ content: "The link must contain 'https://'" }); + } else { + const shortName = args[0]; + const targetURL = args[1]; + const cc = await URLClient.createShortURL(shortName, targetURL); + if (!cc) { + interaction.followUp({ content: `URL already exist` }); + } else { + interaction.followUp({ content: `https://url.cath.gq/${cc}` }); + } + } + }, +}; diff --git a/command/Utilities/snipe.js b/command/Utilities/snipe.js @@ -10,6 +10,7 @@ module.exports = { name: "channel", description: "The sniped channel", required: true, + channelTypes: ["GUILD_TEXT"], }, { type: 4, @@ -20,20 +21,20 @@ module.exports = { ], run: async (client, interaction, args) => { var i = 0; - var description = ""; + let description = ""; const embed = new MessageEmbed() .setAuthor( `Sniped by ${interaction.user.tag}`, interaction.user.displayAvatarURL({ dynamic: true }) ) .setColor(client.color) - .setFooter(`Made by ${client.author}`) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) .setTimestamp() .setURL(client.web); const snipes = client.snipes.get(args[0]) || []; - if (interaction.guild.channels.cache.get(args[0]).type !== "GUILD_TEXT") + if (interaction.guild.channels.cache.get(args[0]).type !== "GUILD_TEXT") { interaction.followUp({ content: "Please provide a text channel" }); - else if (args[1]) { + } else if (args[1]) { const msg = snipes[args[1] - 1]; if (!msg) { snipes.forEach(m => { @@ -86,38 +87,36 @@ module.exports = { embed.setDescription(description); return interaction.followUp({ embeds: [embed] }); } + } else if (!snipes.length) { + interaction.followUp({ + content: "There isn't any snipe in this channel yet", + }); } else { - if (!snipes.length) { - interaction.followUp({ - content: "There isn't any snipe in this channel yet", - }); - } else { - snipes.forEach(m => { - const map = []; - for (var i = 0; i < m.attachment?.length; i++) { - map.push( - `**Attchment ${i + 1}:** [Click to view](${m.attachment[i]})` - ); - } - if (m.author !== "No Author") { - description += `\n\n**Author:** ${m.author.username}#${ - m.author.discriminator - } (Deleted ${moment(m.date).fromNow()})\n**ID:** ${ - m.author.id - }\n**Content:** ${m.content}\n${map ? map.join("\n") : ""}`; - i++; - } else { - description += `\n\n**Author:** None (Deleted ${moment( - m.date - ).fromNow()})\n\n**Content:** ${m.content}\n${ - map ? map.join("\n") : "" - }`; - i++; - } - }); - embed.setDescription(description); - return interaction.followUp({ embeds: [embed] }); - } + snipes.forEach(m => { + const map = []; + for (var i = 0; i < m.attachment?.length; i++) { + map.push( + `**Attchment ${i + 1}:** [Click to view](${m.attachment[i]})` + ); + } + if (m.author !== "No Author") { + description += `\n\n**Author:** ${m.author.username}#${ + m.author.discriminator + } (Deleted ${moment(m.date).fromNow()})\n**ID:** ${ + m.author.id + }\n**Content:** ${m.content}\n${map ? map.join("\n") : ""}`; + i++; + } else { + description += `\n\n**Author:** None (Deleted ${moment( + m.date + ).fromNow()})\n\n**Content:** ${m.content}\n${ + map ? map.join("\n") : "" + }`; + i++; + } + }); + embed.setDescription(description); + return interaction.followUp({ embeds: [embed] }); } }, }; diff --git a/command/Utilities/suggest.js b/command/Utilities/suggest.js @@ -7,12 +7,12 @@ module.exports = { run: async (client, interaction, args) => { const questions = [ "Describe the suggestion", - //"question 2" + // "question 2" ]; let collectCounter = 0; let endCounter = 0; const filter = m => m.author.id === interaction.user.id; - await interaction.followUp("Check your dm."); + interaction.followUp("Check your dm."); const appStart = await interaction.user.send({ embeds: [ new MessageEmbed() @@ -21,12 +21,12 @@ module.exports = { interaction.user.displayAvatarURL() ) .setDescription(questions[collectCounter++]) - .setFooter(client.user.username) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) .setTimestamp(), ], }); const channel = appStart.channel; - const collector = channel.createMessageCollector(filter); + const collector = channel.createMessageCollector({ filter }); collector.on("collect", () => { if (collectCounter < questions.length) { channel.send({ @@ -37,7 +37,10 @@ module.exports = { interaction.user.displayAvatarURL() ) .setDescription(questions[collectCounter++]) - .setFooter(client.user.username) + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL() + ) .setTimestamp(), ], }); @@ -50,17 +53,19 @@ module.exports = { "You have sent a suggestion.\nPlease wait for us to review it" ) .setColor("GREEN") - .setFooter(`Made by ${client.author}`) + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL() + ) .setTimestamp(), ], }); collector.stop("fulfilled"); } }); - const appsChannel = client.channels.cache.get(client.ReportLog); + const appsChannel = client.channels.cache.get(client.config.Config); collector.on("end", (collected, reason) => { if (reason === "fulfilled") { - let index = 1; const mapedResponses = collected .map(msg => { return `${questions[endCounter++]}**\n->** ${msg.content}`; @@ -71,7 +76,7 @@ module.exports = { embeds: [ new MessageEmbed() .setAuthor( - interaction.member.user.tag, + interaction.user.tag, interaction.user.displayAvatarURL({ dynamic: true }) ) .setTitle("New Suggestion") diff --git a/command/Utilities/timer.js b/command/Utilities/timer.js @@ -1,72 +0,0 @@ -const { MessageEmbed } = require("discord.js"); -module.exports = { - name: "timer", - description: "Set a timer for yourself", - usage: "(Time)", - category: "Utilities", - type: "CHAT_INPUT", - options: [ - { - type: 3, - name: "time", - description: "The time you want to set", - required: true, - }, - ], - run: async (client, interaction, args, utils) => { - const time = args[0]; - const mss = utils.ms(args[0]); - if (!time.endsWith("d")) { - if (!time.endsWith("h")) { - if (!time.endsWith("m")) { - if (!time.endsWith("w")) { - if (!time.endsWith("mo")) { - if (!time.endsWith("s")) { - return await interaction.followUp({ - content: "You can only use valid time (Example: 3s)", - }); - } - } - } - } - } - } - if (isNaN(time[0])) - return await interaction.followUp({ - content: "You can only use valid time (Example: 3s)", - }); - client.Timers.set(interaction.user.id + " G " + interaction.guild.name, { - Guild: interaction.guild.name, - Author: { - Tag: interaction.member.user.tag, - ID: interaction.user.id, - }, - Time: mss, - }); - await interaction.followUp({ - content: `${interaction.user} you have set a timer for ${utils.timer( - mss - )}.`, - }); - setTimeout(() => { - let Embed = new MessageEmbed() - .setTitle(`Timer finished in ${interaction.guild.name}.`) - .setDescription(`Your timer for ${utils.timer(mss)} has finished.`) - .setURL(client.web) - .setColor(`GREEN`); - let embe = new MessageEmbed() - .setTitle(`Timer finished.`) - .setDescription(`Your timer for ${utils.timer(mss)} has finished.`) - .setURL(client.web) - .setColor(`GREEN`); - interaction.channel.send({ - content: `${interaction.user}`, - embeds: [embe], - }); - interaction.user.send({ embeds: [Embed] }); - client.Timers.delete( - interaction.user.id + " G " + interaction.guild.name - ); - }, utils.ms(time)); - }, -}; diff --git a/commands/Config/check.js b/commands/Config/check.js @@ -1,27 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); -module.exports = { - name: "check", - description: "Check Goodbye/Welcome/Log Channel for the server", - usage: "(goodbye/welcome/log) (Channel)", - UserPerm: "ADMINISTRATOR", - category: "Config", - run: async (client, message, args) => { - const data = await client.data.getGuild(message.guild.id); - if (!args[0]) return client.err(messgae, "Config", "check", 45); - if (args[0].toLowerCase() === "goodbye") { - const goodbye = data.Goodbye; - if (goodbye === "null") return client.err(messgae, "Config", "check", 10); - else message.channel.send(`The goodbye channel is <#${goodbye}>`); - } else if (args[0].toLowerCase() === "log") { - const log = data.Log; - if (log === "null") return client.err(messgae, "Config", "check", 10); - else message.channel.send(`The log channel is <#${log}>`); - } else if (args[0].toLowerCase() === "welcome") { - const welcome = data.Welcome; - if (welcome === "null") return client.err(messgae, "Config", "check", 10); - else message.channel.send(`The welcome channel is <#${welcome}>`); - } else { - return client.err(messgae, "Config", "check", 45); - } - }, -}; diff --git a/commands/Config/disable.js b/commands/Config/disable.js @@ -1,46 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); -const fs = require("fs"); -module.exports = { - name: "disable", - UserPerm: "MANAGE_CHANNELS", - usage: "(Command/Category) (Name)", - description: "Disable a command in a server", - category: "Config", - run: async (client, message, args) => { - const type = args[0].toLowerCase(); - if (!type) return client.err(message, "Config", "disable", 17); - const name = args[1].toLowerCase(); - if (!name) return client.err(message, "Config", "disable", 17); - const data = await client.data.getGuild(message.guild.id); - if (!type) return client.err(message, "Config", "disable", 17); - if (type === "command") { - if (!!client.commands.get(name) === false) - return client.err(message, "Config", "disable", 404); - if (data.Commands.includes(name)) - return client.err(message, "Config", "disable", 18); - message.channel.send(`This command is disabled now:\n\n\`${name}\``); - await client.data.disable(message.guild.id, "command", name); - } - if (type === "category") { - const category = fs.readdirSync("./commands"); - const names = category.map(e => e.toLowerCase()); - const i = names.indexOf(name); - const up = names[i][0].toUpperCase(); - const others = names[i].substring(1); - if (!names.includes(name)) - return client.err(message, "Config", "disable", 404); - if (data.Category) { - if (data.Category.includes(name)) - return client.err(message, "Config", "disable", 18); - } - if (names.includes(name)) { - await client.data.disable( - message.guild.id, - "category", - `${up}${others}` - ); - message.reply(`This command is disabled now:\n\n\`${up}${others}\``); - } - } - }, -}; diff --git a/commands/Config/enable.js b/commands/Config/enable.js @@ -1,41 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); -const fs = require("fs"); -module.exports = { - name: "enable", - UserPerm: "MANAGE_CHANNELS", - usage: "(Command) {Channel}", - description: "Enable a command in a server", - category: "Config", - run: async (client, message, args) => { - const type = args[0].toLowerCase(); - const name = args[1].toLowerCase(); - const data = await client.data.getGuild(message.guild.id); - if (!type) return client.err(message, "Config", "enable", 17); - if (!name) return client.err(message, "Config", "enable", 17); - if (type === "command") { - if (!!client.commands.get(name) === false) - return client.err(message, "Config", "enable", 404); - if (data.Commands.includes(name) && !!client.command.get(name) === true) { - await client.data.enable(message.guild.id, "command", name); - message.channel.send(`This command is enabled now:\n\n\`${cmd}\``); - } else return client.err(message, "Config", "enable", 18); - } - if (type === "category") { - const category = fs.readdirSync("./commands"); - const names = category.map(e => e.toLowerCase()); - const i = names.indexOf(name); - const up = names[i][0].toUpperCase(); - const others = names[i].substring(1); - if (!names.includes(name)) - return client.err(message, "Config", "enable", 404); - if (data.Category.includes(`${up}${others}`) && names.includes(name)) { - await client.data.enable( - message.guild.id, - "category", - `${up}${others}` - ); - message.reply(`This command is enabled now:\n\n\`${up}${others}\``); - } else return client.err(message, "Config", "enable", 18); - } - }, -}; diff --git a/commands/Economy/blackjack.js b/commands/Economy/blackjack.js @@ -1,295 +0,0 @@ -const Discord = require("discord.js"); -module.exports = { - name: "blackjack", - aliases: ["bj"], - usage: "(Number)", - description: "Play a blackjack game to win money", - category: "Economy", - //timeout: 10000, - run: async (client, message, args) => { - const money = parseInt(args[0]); - const author = message.author; - if (isNaN(money) || !money) { - return client.err(message, "Economy", "blackjack", 101); - } - if ((await client.bal(author.id)) < bet) { - client.err(message, "Economy", "blackjack", 20); - } - var numCardsPulled = 0; - var gameOver = false; - var player = { - cards: [], - score: 0, - }; - var dealer = { - cards: [], - score: 0, - }; - function getCardsValue(a) { - var cardArray = [], - sum = 0, - i = 0, - dk = 10.5, - doubleking = "QQ", - aceCount = 0; - cardArray = a; - for (i; i < cardArray.length; i += 1) { - if ( - cardArray[i].rank === "J" || - cardArray[i].rank === "Q" || - cardArray[i].rank === "K" - ) { - sum += 10; - } else if (cardArray[i].rank === "A") { - sum += 11; - aceCount += 1; - } else if (cardArray[i].rank === doubleking) { - sum += dk; - } else { - sum += cardArray[i].rank; - } - } - while (aceCount > 0 && sum > 21) { - sum -= 10; - aceCount -= 1; - } - return sum; - } - - var deck = { - deckArray: [], - initialize: function () { - var suitArray, rankArray, s, r, n; - suitArray = ["b", "d", "g", "s"]; - rankArray = [2, 3, 4, 5, 6, 7, 8, 9, 10, "J", "Q", "K", "A"]; - n = 13; - - for (s = 0; s < suitArray.length; s += 1) { - for (r = 0; r < rankArray.length; r += 1) { - this.deckArray[s * n + r] = { - rank: rankArray[r], - suit: suitArray[s], - }; - } - } - }, - shuffle: function () { - var temp, i, rnd; - for (i = 0; i < this.deckArray.length; i += 1) { - rnd = Math.floor(Math.random() * this.deckArray.length); - temp = this.deckArray[i]; - this.deckArray[i] = this.deckArray[rnd]; - this.deckArray[rnd] = temp; - } - }, - }; - deck.initialize(); - deck.shuffle(); - async function bet(outcome) { - if (outcome === "win") { - await client.add(author.id, money, message); - await client.ADDBJWin(message.author.id); - } - if (outcome === "lose") { - await client.rmv(author.id, money); - } - } - - function endMsg(f, msg, cl, dealerC) { - let cardsMsg = ""; - player.cards.forEach(function (card) { - var emAR = ["โ™ฅ", "โ™ฆ", "โ™ ", "โ™ฃ"]; - var t = emAR[Math.floor(Math.random() * emAR.length)]; - cardsMsg += "[`" + t + card.rank.toString(); - if (card.suit == "d1") cardsMsg += "โ™ฅ"; - if (card.suit == "d2") cardsMsg += "โ™ฆ"; - if (card.suit == "d3") cardsMsg += "โ™ "; - if (card.suit == "d4") cardsMsg += "โ™ฃ"; - cardsMsg += "`](https://cath.gq/) "; - }); - cardsMsg += " > " + player.score.toString(); - - var dealerMsg = ""; - if (!dealerC) { - var emAR = ["โ™ฅ", "โ™ฆ", "โ™ ", "โ™ฃ"]; - var t = emAR[Math.floor(Math.random() * emAR.length)]; - dealerMsg = "[`" + t + dealer.cards[0].rank.toString(); - if (dealer.cards[0].suit == "d1") dealerMsg += "โ™ฅ"; - if (dealer.cards[0].suit == "d2") dealerMsg += "โ™ฆ"; - if (dealer.cards[0].suit == "d3") dealerMsg += "โ™ "; - if (dealer.cards[0].suit == "d4") dealerMsg += "โ™ฃ"; - dealerMsg += " ? ?`](https://cath.gq/)"; - } else { - dealerMsg = ""; - dealer.cards.forEach(function (card) { - var emAR = ["โ™ฅ", "โ™ฆ", "โ™ ", "โ™ฃ"]; - var t = emAR[Math.floor(Math.random() * emAR.length)]; - dealerMsg += "[`" + t + card.rank.toString(); - if (card.suit == "d1") dealerMsg += "โ™ฅ"; - if (card.suit == "d2") dealerMsg += "โ™ฆ"; - if (card.suit == "d3") dealerMsg += "โ™ "; - if (card.suit == "d4") dealerMsg += "โ™ฃ"; - dealerMsg += "`](https://cath.gq/) "; - }); - dealerMsg += " > " + dealer.score.toString(); - } - - const gambleEmbed = new Discord.MessageEmbed() - .setColor(cl || client.color) - .setTitle(message.author.username + `'s Blackjack game`) - .addField("You", cardsMsg, true) - .addField("cath.exe", dealerMsg, true) - .addField(f, msg); - message.channel.send(gambleEmbed); - } - - async function endGame() { - if (player.score === 21) { - bet("win"); - gameOver = true; - await endMsg( - `Win! You got 21!`, - `cath.exe had ${dealer.score.toString()}`, - `GREEN` - ); - } - if (player.score > 21) { - bet("lose"); - gameOver = true; - await endMsg( - `Lost! You reached over 21!`, - `cath.exe had ${dealer.score.toString()}`, - `RED` - ); - } - if (dealer.score === 21) { - bet("lose"); - gameOver = true; - await endMsg( - `Lost! The dealer got 21!`, - `cath.exe had ${dealer.score.toString()}`, - `RED` - ); - } - if (dealer.score > 21) { - bet("win"); - gameOver = true; - await endMsg( - `Win! cath.exe reached over 21!`, - `cath.exe had ${dealer.score.toString()}`, - `GREEN` - ); - } - if ( - dealer.score >= 17 && - player.score > dealer.score && - player.score < 21 - ) { - bet("win"); - gameOver = true; - await endMsg( - `Win! You defeated cath.exe!`, - `cath.exe had ${dealer.score.toString()}`, - `GREEN` - ); - } - if ( - dealer.score >= 17 && - player.score < dealer.score && - dealer.score < 21 - ) { - bet("lose"); - gameOver = true; - await endMsg( - `Lost! cath.exe won!`, - `cath.exe had ${dealer.score.toString()}`, - `RED` - ); - } - if ( - dealer.score >= 17 && - player.score === dealer.score && - dealer.score < 21 - ) { - gameOver = true; - await endMsg(`Tie!`, `cath.exe had ${dealer.score.toString()}`, `RED`); - } - } - - function dealerDraw() { - dealer.cards.push(deck.deckArray[numCardsPulled]); - dealer.score = getCardsValue(dealer.cards); - numCardsPulled += 1; - } - - function newGame() { - hit(); - hit(); - dealerDraw(); - endGame(); - } - - function hit() { - player.cards.push(deck.deckArray[numCardsPulled]); - player.score = getCardsValue(player.cards); - - numCardsPulled += 1; - if (numCardsPulled > 2) { - endGame(); - } - } - - function stand() { - while (dealer.score < 17) { - dealerDraw(); - } - endGame(); - } - newGame(); - async function loop() { - if (gameOver) return; - - endMsg( - "To hit type `h`, for stand type `s`", - `GoodLuck ;)`, - client.color - ); - - let filter = m => m.author.id === message.author.id; - message.channel - .awaitMessages(filter, { - max: 1, - time: 1200000, - errors: ["time"], - }) - .then(message => { - message = message.first(); - if ( - message.content.toLowerCase() === "h" || - message.content.toLowerCase() === "hit" - ) { - hit(); - loop(); - return; - } else if ( - message.content.toLowerCase() === "s" || - message.content.toLowerCase() === "stand" - ) { - stand(); - loop(); - return; - } else { - bet("lose"); - endMsg("Invalid response", `You lost ${money}`, "RED"); - return; - } - }) - .catch(_ => { - message.channel.send("Lost!!"); - bet("lose"); - return; - }); - } - await loop(); - }, -}; diff --git a/commands/Economy/buy.js b/commands/Economy/buy.js @@ -1,66 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); -const inventory = require("../../models/econ"); -const items = require("../../util/dist/item"); -module.exports = { - name: "purchase", - aliases: ["buy"], - usage: "(Item)", - description: "Buy something from the shop", - category: "Economy", - run: async (client, message, args) => { - if (!args[0]) { - return client.err(message, "Economy", "buy", 21); - } - const itemToBuy = args[0]; - const validItem = !!items.find( - item => item.alias.toLowerCase() === itemToBuy - ); - if (!validItem) { - return client.err(message, "Economy", "buy", 22); - } - const itemName = items.find( - item => item.alias.toLowerCase() === itemToBuy - ).item; - const itemPrice = items.find( - item => item.alias.toLowerCase() === itemToBuy - ).price; - if ((await client.bal(message.author.id)) < itemPrice) - return client.err(message, "Economy", "buy", 20); - const params = { - User: message.author.id, - }; - inventory.findOne(params, async (err, data) => { - if (data.Inventory) { - const hasItem = Object.keys(data.Inventory).includes(itemName); - if (!hasItem) { - data.Inventory[itemName] = 1; - } else { - data.Inventory[itemName]++; - } - await inventory.findOneAndUpdate(params, data); - } else if (data.CP) { - data.Inventory = { - [itemName]: 1, - }; - await inventory.findOneAndUpdate(params, data); - } else { - new inventory({ - User: message.author.id, - Inventory: { - [itemName]: 1, - }, - }).save(); - } - message.reply( - new MessageEmbed() - .setTimestamp() - .setDescription( - `**${message.author.username}** buys **${itemName}** for **${itemPrice}**${client.currency}` - ) - .setColor("GREEN") - .setURL(client.web) - ); - await client.rmv(message.author.id, itemPrice); - }); - }, -}; diff --git a/commands/Economy/gift.js b/commands/Economy/gift.js @@ -1,100 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); -const inventory = require("../../models/econ"); -const items = require("../../util/dist/item"); -module.exports = { - name: "gift", - timeout: 5000, - usage: "(User) (Item)", - description: "Gift item to an user", - category: "Economy", - run: async (client, message, args) => { - const user = - message.mentions.users.first() || - message.guild.members.cache.find( - r => r.user.username.toLowerCase() === args[0].toLocaleLowerCase() - ) || - message.guild.members.cache.find( - r => r.displayName.toLowerCase() === args[0].toLocaleLowerCase() - ); - if (!user) return client.err(message, "Economy", "gift", 1); - if (user.id === message.author.id) - return client.err(message, "Economy", "gift", 21); - /* - const number = args[1]; - if (!number) - return error( - message, - message.author, - p, - "gift", - "(User) **(Number)** (Item)", - `Missing 'Number' argument` - ); - if (isNaN(number)) - return error( - message, - message.author, - p, - "gift", - "(User) **(Number)** (Item)", - `'Number' argument must be a number` - ); - */ - const itemToGift = args[1]; - if (!itemToGift) return client.err(message, "Economy", "gift", 21); - const validItem = !!items.find( - item => item.alias.toLowerCase() === itemToGift - ); - if (!validItem) return client.err(message, "Economy", "gift", 22); - const itemName = items.find( - item => item.alias.toLowerCase() === itemToGift - ).item; - const params = { - User: message.author.id, - }; - const param = { - User: user.id, - }; - inventory.findOne(params, async (err, data) => { - if (data.Inventory) { - const hasItem = Object.keys(data.Inventory).includes(itemName); - if (hasItem) { - if (data.Inventory[itemName] <= 0) { - return client.err(message, "Economy", "gift", 23); - } else { - data.CP+=0 - data.Inventory[itemName]--; - message.channel.send( - new MessageEmbed() - .setColor(client.color) - .setTimestamp() - .setDescription( - `**${message.author.username}** has given **${user.username}** a **${itemName}**` - ) - ); - await inventory.findOneAndUpdate(params, data); - } - } else return client.err(message, "Economy", "gift", 24); - } else return client.err(message, "Economy", "gift", 24); - }); - inventory.findOne(param, async (err, data) => { - if (data.Inventory) { - const hasItem = Object.keys(data.Inventory).includes(itemName); - if (!hasItem) { - data.Inventory[itemName] = 1; - } else { - data.Inventory[itemName]++; - } - await inventory.findOneAndUpdate(param, data); - } else { - new inventory({ - User: user.id, - CP: 0, - Inventory: { - [itemName]: 1, - }, - }).save(); - } - }); - }, -}; diff --git a/commands/Economy/give.js b/commands/Economy/give.js @@ -1,108 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); -module.exports = { - name: "give", - aliases: ["share"], - timeout: 5000, - usage: "(User) (Number)", - description: "Give money to an user", - category: "Economy", - run: async (client, message, args) => { - const user = - message.mentions.users.first() || - message.guild.members.cache.find( - r => r.user.username.toLowerCase() === args[0].toLocaleLowerCase() - ) || - message.guild.members.cache.find( - r => r.displayName.toLowerCase() === args[0].toLocaleLowerCase() - ); - if (!user) return client.err(message, "Economy", "give", 1); - const parsed = parseInt(args[1]); - if (!args[1]) return client.err(message, "Economy", "give", 5); - - if (args[1].toLowerCase() === "all" && isNaN(parsed)) { - await client.add(user.id, await client.bal(message.author.id), message); - user - .send( - `**${message.author.tag}** gave you **${( - await client.bal(message.author.id) - ).toLocaleString()}**${client.currency} in **${message.guild.name}**` - ) - .catch(e => { - console.log(e); - }); - await client.rmv(message.author.id, await client.bal(message.author.id)); - message.reply( - `**${message.author.username}** gave **${user.username}** **${( - await client.bal(message.author.id) - ).toLocaleString()}**${client.currency}, you now have **0**${ - client.currency - } and they have **${(await client.bal(user.id)).toLocaleString()}**${ - client.currency - }` - ); - } else if (args[1].toLowerCase() === "half" && isNaN(parsed)) { - await client.add( - user.id, - Math.round((await client.bal(message.author.id)) / 2), - message - ); - user - .send( - `**${message.author.tag}** gave you **${( - await client.bal(message.author.id) - ).toLocaleString()}**${client.currency} in **${message.guild.name}**` - ) - .catch(e => { - console.log(e); - }); - await client.rmv( - message.author.id, - Math.round((await client.bal(message.author.id)) / 2) - ); - message.reply( - `**${message.author.username}** gave **${user.username}** **${( - (await client.bal(message.author.bal)) / 2 - ).toLocaleString()}**${client.currency}, you now have **${( - (await client.bal(message.author.id)) - - (await client.bal(message.author.bal)) / 2 - ).toLocaleString()}**${client.currency} and they have **${( - (await client.bal(user.id)) + - (await client.bal(message.author.bal)) / 2 - ).toLocaleString()}**${client.currency}` - ); - } else if ( - isNaN(parsed) && - !["all", "half"].includes(args[1].toLowerCase()) - ) { - return client.err(message, "Economy", "give", 101); - } else { - if (user.id === message.author.id) - return client.err(message, "Economy", "give", 2); - if (parsed > (await client.bal(message.author.id))) { - return client.err(message, "Economy", "give", 20); - } - await client.rmv(message.author.id, parsed); - await client.add(user.id, parsed, message); - message.reply( - `**${message.author.username}** gave **${ - user.username - }** **${parsed.toLocaleString()}** coins, you now have **${( - (await client.bal(message.author.id)) - parsed - ).toLocaleString()}**${client.currency} and they have **${( - (await client.bal(user.id)) + parsed - ).toLocaleString()}**${client.currency}` - ); - user - .send( - `**${ - message.author.tag - }** gave you **${parsed.toLocaleString()}** coins in **${ - message.guild.name - }**` - ) - .catch(e => { - console.log(e); - }); - } - }, -}; diff --git a/commands/Economy/steal.js b/commands/Economy/steal.js @@ -1,117 +0,0 @@ -const db = require("../../models/econ"); -const { Client, Message, MessageEmbed } = require("discord.js"); -module.exports = { - name: "steal", - description: "Steal money from an user", - usage: "(User)", - aliases: ["rob"], - category: "Economy", - timeout: 120000, - run: async (client, message, args) => { - var tryrob = - message.mentions.users.first() || - message.guild.members.cache.get(args[0]) || - message.guild.members.cache.find( - r => - r.user.username.toLowerCase() === args.join(" ").toLocaleLowerCase() - ) || - message.guild.members.cache.find( - r => r.displayName.toLowerCase() === args.join(" ").toLocaleLowerCase() - ); - if (!tryrob || !args[0]) { - return client.err(message, "Economy", "steal", 1); - } - if (tryrob.id === message.author.id) { - return client.err(message, "Economy", "steal", 2); - } - await db.findOne({ User: message.author.id }, async (err, data) => { - if (err) throw err; - if (data) { - if (!data.CP) { - data.CP = 0; - data.save(); - return client.err(message, "Economy", "steal", 20); - } - } - if (!data) { - new db({ - User: message.author.id, - CP: 0, - Inventory: {}, - }).save(); - return client.err(message, "Economy", "steal", 20); - } else if (data) { - await db.findOne({ User: tryrob.id }, async (err1, data1) => { - const coins = Math.floor(Math.random() * data.CP) + 1; - const coins1 = Math.floor(Math.random() * data1.CP) + 1; - if (err1) throw err1; - if (!data1) { - new db({ - User: tryrob.id, - CP: 0, - Inventory: {}, - }).save(); - return message.reply( - new MessageEmbed() - .setAuthor( - message.author.tag, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setColor("RED") - .setDescription( - `They don't have any ${client.currency}. Be kind!` - ) - ); - } else if (data1) { - if (data1.CP <= 0 || !data1.CP) { - return message.reply( - new MessageEmbed() - .setAuthor( - message.author.tag, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setColor("RED") - .setDescription( - `They don't have any ${client.currency}. Be kind!` - ) - ); - } - if (client.function.random() === true) { - data.CP += coins1; - data.save(); - data1.CP -= coins1; - data1.save(); - return message.reply( - new MessageEmbed() - .setAuthor( - message.author.tag, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setColor("GREEN") - .setDescription( - `You robbed ${tryrob}! And you got \`${coins}\`${client.currency}` - ) - ); - } else { - data.CP -= coins; - data.save(); - data1.CP += coins; - data1.save(); - return message.reply( - new MessageEmbed() - .setAuthor( - message.author.tag, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setColor("RED") - .setDescription( - `You failed on robbing ${tryrob}! And you had to pay him/her \`${coins}\`${client.currency}` - ) - ); - } - } - }); - } - }); - }, -}; diff --git a/commands/Giveaway/end.js b/commands/Giveaway/end.js @@ -1,17 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); -module.exports = { - name: "gend", - UserPerm: "MANAGE_MESSAGES", - usage: "(Message ID)", - description: "End a giveaway", - run: async (client, message, args) => { - if (!args[0]) return client.err(message, "Giveaway", "end", 27); - const giveaway = client.giveaways.giveaways.find( - g => g.messageID === args.join(" ") - ); - if (!giveaway) return client.err(message, "Giveaway", "end", 26); - client.giveaways.edit(giveaway.messageID, { - setEndTimestamp: Date.now(), - }); - }, -}; diff --git a/commands/Giveaway/giveaway.js b/commands/Giveaway/giveaway.js @@ -1,45 +0,0 @@ -module.exports = { - name: "giveaway", - aliases: ["gstart"], - description: "Start a giveaway", - usage: "(Channel) (Time) (Winners(Number)) (Prize)", - UserPerm: "MANAGE_MESSAGES", - run: async (client, message, args, utils) => { - const channel = message.mentions.channels.first(); - if (!channel) return client.err(message, "Giveaway", "giveaway", 28); - const duration = args[1]; - if (!duration) return client.err(message, "Giveaway", "giveaway", 29); - const winners = parseInt(args[2]); - if (!winners) return client.err(message, "Giveaway", "giveaway", 30); - if (isNaN(winners)) return client.err(message, "Giveaway", "giveaway", 31); - const prize = args.slice(3).join(" "); - if (!prize) return client.err(message, "Giveaway", "giveaway", 32); - client.giveaways.start(channel, { - time: utils.ms(duration), - prize: prize, - winnerCount: winners, - hostedBy: message.author, - messages: { - giveaway: "๐ŸŽ‰๐ŸŽ‰ **GIVEAWAY** ๐ŸŽ‰๐ŸŽ‰", - giveawayEnded: "๐ŸŽ‰๐ŸŽ‰ **GIVEAWAY ENDED** ๐ŸŽ‰๐ŸŽ‰", - timeRemaining: "Time Remaining **{duration}**!", - inviteToParticipate: "React with ๐ŸŽ‰ to enter!", - winMessage: `Congratulations {winners}! You won the **${prize}**!`, - noWinner: "Could not determine a winner!", - embedFooter: `Made by ${client.author}`, - hostedBy: "Hosted by: {user}", - winners: "Winner(s)", - messageURL: "", - endedAt: "Ends at", - units: { - seconds: "seconds", - minutes: "minutes", - hours: "hours", - days: "days", - pluralS: false, - }, - }, - }); - message.reply(`Giveaway is started in ${channel}`); - }, -}; diff --git a/commands/Giveaway/reroll.js b/commands/Giveaway/reroll.js @@ -1,16 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); -module.exports = { - name: "reroll", - aliases: ["greroll"], - usage: "(Message ID)", - description: "Reroll a giveaway", - UserPerm: "MANAGE_MESSAGES", - run: async (client, message, args) => { - if (!args[0]) return client.err(message, "Giveaway", "reroll", 27); - const giveaway = client.giveaways.giveaways.find( - g => g.messageID === args[0] - ); - if (!giveaway) return client.err(message, "Giveaway", "reroll", 26); - client.giveaways.reroll(giveaway.messageID); - }, -}; diff --git a/commands/Moderation/ban.js b/commands/Moderation/ban.js @@ -1,74 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); -module.exports = { - name: "ban", - description: "Ban an user", - BotPerm: "BAN_MEMBERS", - UserPerm: "BAN_MEMBERS", - usage: "(User) {Reason}", - category: "Moderation", - run: async (client, message, args) => { - let target = - message.mentions.members.first() || - message.guild.members.cache.get(args[0]); - let reason = args.slice(1).join(" ") || "No reason provided"; - if (!target) { - try { - const one = await client.users.fetch(args[0]); - if (one.id === message.author.id) - return client.err(message, "Moderation", "ban", 2); - if (reason.length > 1024) reason = reason.slice(0, 1021) + "..."; - const embed = new MessageEmbed() - .setTitle("User Banned") - .addField("**Moderator**", message.author.tag, true) - .addField("**User**", one.tag, true) - .addField("**Reason**", reason, true) - .setFooter( - message.member.displayName || message.author.username, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setThumbnail(client.user.displayAvatarURL()) - .setColor(client.color) - .setTimestamp(); - message.reply(embed); - await message.guild.members.ban(one.id, { - reason: reason, - }); - } catch (e) { - console.log(e); - return client.err(message, "Moderation", "ban", 1); - } - } else { - if (target.id === message.author.id) - return client.err(message, "Moderation", "ban", 2); - if (message.member.roles.highest.position < target.roles.highest.position) - return client.err(message, "Moderation", "ban", 8); - if ( - message.guild.me.roles.highest.position < target.roles.highest.position - ) - return client.err(message, "Moderation", "ban", 9); - - if (reason.length > 1024) reason = reason.slice(0, 1021) + "..."; - try { - const embed = new MessageEmbed() - .setTitle("User Banned") - .addField("**Moderator**", message.author.tag, true) - .addField("**User**", target.user.tag, true) - .addField("**Reason**", reason, true) - .setFooter( - message.member.displayName || message.author.username, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setThumbnail(client.user.displayAvatarURL()) - .setColor(client.color) - .setTimestamp(); - message.reply(embed); - await message.guild.members.ban(target.id, { - reason: reason, - }); - } catch (e) { - console.log(e); - return client.err(message, "Moderation", "ban", 999); - } - } - }, -}; diff --git a/commands/Moderation/clearWarns.js b/commands/Moderation/clearWarns.js @@ -1,43 +0,0 @@ -const db = require("../../models/warns"); -module.exports = { - name: "clear-warns", - aliases: ["cw"], - usage: "(User)", - description: "Clear an user's warns", - UserPerm: "MANAGE_MESSAGES", - category: "Moderation", - run: async (client, message, args) => { - const user = - message.mentions.members.first() || - message.guild.members.cache.get(args[0]) || - message.author; - if (!user) { - return client.err(message, "Moderation", "clearWarns", 1); - } - db.findOne( - { Guild: message.guild.id, User: user.id }, - async (err, data) => { - if (data) { - await db.findOneAndDelete({ - Guild: message.guild.id, - User: user.id, - }); - return message.reply( - new MessageEmbed() - .setTitle(`Warns Cleared`) - .addField("**Moderator**", message.author.tag, true) - .addField("**User**", user.tag, true) - .setTimestamp() - .setFooter( - message.member.displayName, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setColor(client.color) - ); - } else { - return client.err(message, "Moderation", "clearWarns", 10); - } - } - ); - }, -}; diff --git a/commands/Moderation/kick.js b/commands/Moderation/kick.js @@ -1,47 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); -module.exports = { - name: "kick", - description: "Kick an user", - UserPerm: "KICK_MEMBERS", - BotPem: "KICK_MEMBERS", - usage: "(User) {Reason}", - category: "Moderation", - run: async (client, message, args) => { - let target = - message.mentions.members.first() || - message.guild.members.cache.get(args[0]); - let reason = args.slice(1).join(" ") || "No reason provided"; - if (!target) { - return client.err(message, "Moderation", "kick", 1); - } else { - if (target.id === message.author.id) - return client.err(message, "Moderation", "kick", 2); - if (message.member.roles.highest.position < target.roles.highest.position) - return client.err(message, "Moderation", "kick", 8); - if ( - message.guild.me.roles.highest.position < target.roles.highest.position - ) - return client.err(message, "Moderation", "kick", 9); - } - if (reason.length > 1024) reason = reason.slice(0, 1021) + "..."; - try { - const embed = new MessageEmbed() - .setTitle("User Kicked") - .addField("**Moderator**", message.author.tag, true) - .addField("**User**", target.user.tag, true) - .addField("**Reason**", reason, true) - .setFooter( - message.member.displayName || message.author.username, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setThumbnail(client.user.displayAvatarURL()) - .setColor(client.color) - .setTimestamp(); - message.reply(embed); - await target.kick(reason); - } catch (e) { - console.log(e); - return client.err(message, "Moderation", "kick", 999); - } - }, -}; diff --git a/commands/Moderation/lock.js b/commands/Moderation/lock.js @@ -1,28 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); - -module.exports = { - name: "lockdown", - aliases: ["lock"], - description: "Lock a channel", - UserPerm: "MANAGE_CHANNELS", - BotPerm: "MANAGE_CHANNELS", - category: "Moderation", - run: async (client, message, args) => { - message.channel - .createOverwrite(message.guild.id, { SEND_MESSAGES: false }) - .then(() => { - const embed = new MessageEmbed() - .setTitle("Channel Locked") - .addField("**Moderator**", message.author.tag, true) - .addField("**Channel**", `<#${message.channel.id}>`, true) - .setFooter( - message.member.displayName || message.author.username, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setThumbnail(client.user.displayAvatarURL()) - .setColor(client.color) - .setTimestamp(); - message.reply(embed); - }); - }, -}; diff --git a/commands/Moderation/mute.js b/commands/Moderation/mute.js @@ -1,137 +0,0 @@ -const { MessageEmbed } = require("discord.js"); -module.exports = { - name: "mute", - description: "Mute an user.", - usage: "(User) (Time) {Reason}", - UserPerm: "MANAGE_MESSAGES", - BotPerm: "MANAGE_ROLES", - category: "Moderation", - run: async (client, message, args, utils) => { - let Member = message.mentions.members.first(); - const time = args[1]; - if (!Member) return client.err(message, "Moderation", "mute", 1); - if (!time) { - let reason = "No reason provided"; - const role = message.guild.roles.cache.find(x => x.name === "Muted"); - if (!role) { - try { - let muterole = await message.guild.roles.create({ - data: { - name: "Muted", - permissions: [], - }, - }); - message.guild.channels.cache - .filter(c => c.type === "text") - .forEach(async (channel, id) => { - await channel.createOverwrite(muterole, { - SEND_MESSAGES: false, - ADD_REACTIONS: false, - }); - }); - } catch (e) { - console.log(e); - return client.err(message, "Moderation", "mute", 999); - } - } - let role2 = message.guild.roles.cache.find(x => x.name === "Muted"); - await Member.roles.add(role2); - const embed = new MessageEmbed() - .setTitle("User Muted") - .addField("**Moderator**", message.author.tag, true) - .addField("**User**", Member.user.tag, true) - .addField("**Reason**", reason, true) - .setFooter( - message.member.displayName || message.author.username, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setThumbnail(client.user.displayAvatarURL()) - .setColor(client.color) - .setTimestamp(); - message.reply(embed); - } - if (!utils.ms(time)) { - let reason = args.slice(1).join(" ") || "No reason provided"; - const role = message.guild.roles.cache.find(x => x.name === "Muted"); - if (!role) { - try { - let muterole = await message.guild.roles.create({ - data: { - name: "Muted", - permissions: [], - }, - }); - message.guild.channels.cache - .filter(c => c.type === "text") - .forEach(async (channel, id) => { - await channel.createOverwrite(muterole, { - SEND_MESSAGES: false, - ADD_REACTIONS: false, - }); - }); - } catch (e) { - console.log(e); - return client.err(message, "Moderation", "mute", 999); - } - } - let role2 = message.guild.roles.cache.find(x => x.name === "Muted"); - await Member.roles.add(role2); - const embed = new MessageEmbed() - .setTitle("User Muted") - .addField("**Moderator**", message.author.tag, true) - .addField("**User**", Member.user.tag, true) - .addField("**Reason**", reason, true) - .setFooter( - message.member.displayName || message.author.username, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setThumbnail(client.user.displayAvatarURL()) - .setColor(client.color) - .setTimestamp(); - message.reply(embed); - } else { - let reason = args.slice(2).join(" ") || "No reason provided"; - const role = message.guild.roles.cache.find(x => x.name === "Muted"); - if (!role) { - try { - let muterole = await message.guild.roles.create({ - data: { - name: "Muted", - permissions: [], - }, - }); - message.guild.channels.cache - .filter(c => c.type === "text") - .forEach(async (channel, id) => { - await channel.createOverwrite(muterole, { - SEND_MESSAGES: false, - ADD_REACTIONS: false, - }); - }); - } catch (e) { - console.log(e); - return client.err(message, "Moderation", "mute", 999); - } - } - let role2 = message.guild.roles.cache.find(x => x.name === "Muted"); - await Member.roles.add(role2); - const embed = new MessageEmbed() - .setTitle("User Muted") - .addField("**Moderator**", message.author.tag, true) - .addField("**User**", Member.user.tag, true) - .addField("**Time**", ms(ms(time), { long: true }), true) - .addField("**Reason**", reason, true) - .setFooter( - message.member.displayName || message.author.username, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setThumbnail(client.user.displayAvatarURL()) - .setColor(client.color) - .setTimestamp(); - message.reply(embed); - setTimeout(async () => { - await Member.roles.remove(role2); - }, utils.ms(time)); - } - }, -}; diff --git a/commands/Moderation/nuke.js b/commands/Moderation/nuke.js @@ -1,54 +0,0 @@ -const { Client, Message } = require("discord.js"); -module.exports = { - name: "nuke", - description: "Destroy a channel and create a new one", - usage: "{Channel}", - UserPerm: "MANAGE_CHANNELS", - BotPerm: "MANAGE_CHANNELS", - category: "Moderation", - run: async (client, message, args) => { - try { - let filter = m => m.author.id === message.author.id; - message.channel.send("Do you want to nuke this channel? (Yes/No)"); - message.channel - .awaitMessages(filter, { - max: 1, - time: 99999, - errors: ["time"], - }) - .then(msg => { - message = msg.first(); - if ( - message.content.toLowerCase() == "yes" || - message.content.toLowerCase() == "y" - ) { - let channel = client.channels.cache.get(message.channel.id); - channel.clone().then(ch => { - if (channel.parent) { - ch.setParent(channel.parent.id); - } else; - ch.setPosition(channel.position); - channel.delete(); - ch.send( - "https://i.pinimg.com/originals/06/c3/92/06c392b847166a9a671bfcd590d8fff7.gif \nFriendly nuke has been launched." - ); - }); - } else if ( - message.content.toLowerCase() == "no" || - message.content.toLowerCase() == "n" - ) { - message.delete(); - return message.channel.send("The process has been cancelled"); - } else { - message.delete(); - return message.channel.send( - `The process has been cancelled due to invalid response` - ); - } - }); - } catch (e) { - console.log(e); - return client.err(message, "Moderation", "nuke", 999); - } - }, -}; diff --git a/commands/Moderation/removeWarn.js b/commands/Moderation/removeWarn.js @@ -1,53 +0,0 @@ -const db = require("../../models/warns"); -module.exports = { - name: "remove-warn", - aliases: ["rw"], - UserPerm: "MANAGE_MESSAGES", - description: "Remove a latest warn for an user", - usage: "(User)", - category: "Moderation", - run: async (client, message, args) => { - try { - const user = - message.mentions.members.first() || - message.guild.members.cache.get(args[0]) || - message.guild.members.cache.find( - r => - r.user.username.toLowerCase() === args.join(" ").toLocaleLowerCase() - ) || - message.guild.members.cache.find( - r => - r.displayName.toLowerCase() === args.join(" ").toLocaleLowerCase() - ); - if (!user) return client.err(message, "Moderation", "removeWarn", 1); - db.findOne( - { guildid: message.guild.id, user: user.user.id }, - async (err, data) => { - if (err) throw err; - if (data) { - let number = parseInt(args[1]) - 1; - data.Warns.splice(number, 1); - const embed = new MessageEmbed() - .setTitle("Warn Removed") - .addField("**Moderator**", message.author.tag, true) - .addField("**User**", user.user.tag, true) - .setFooter( - message.member.displayName || message.author.username, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setThumbnail(client.user.displayAvatarURL()) - .setColor(client.color) - .setTimestamp(); - message.reply(embed); - data.save(); - } else { - return client.err(message, "Moderation", "removeWarn", 10); - } - } - ); - } catch (e) { - console.log(e); - return client.err(message, "Moderation", "removeWarn", 999); - } - }, -}; diff --git a/commands/Moderation/role.js b/commands/Moderation/role.js @@ -1,52 +0,0 @@ -const { MessageEmbed } = require("discord.js"); -module.exports = { - name: "role", - UserPerm: "MANAGE_ROLES", - BotPerm: "MANAGE_ROLES", - usage: "(Role) (User)", - description: "Add/Remove a role for an user", - category: "Moderation", - run: async (client, message, args) => { - try { - const target = - message.mentions.members.first() || - message.guild.members.cache.get(args[1]); - if (!target) return client.err(message, "Moderation", "role", 1); - const role = - message.mentions.roles.first() || - message.guild.roles.cache.get(args[0]) || - message.guild.roles.cache.find(r => r.name == args[0]); - if (!role) return client.err(message, "Moderation", "role", 3); - if (target.roles.cache.has(role.id)) { - const embed = new MessageEmbed() - .setTitle("Role Removed") - .addField("**Moderator**", message.author.tag, true) - .addField("**User**", target.user.tag, true) - .setFooter( - message.member.displayName || message.author.username, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setThumbnail(client.user.displayAvatarURL()) - .setColor(client.color) - .setTimestamp(); - message.reply(embed).then(await target.roles.remove(role)); - } else { - const embed = new MessageEmbed() - .setTitle("Role Added") - .addField("**Moderator**", message.author.tag, true) - .addField("**User**", target.user.tag, true) - .setFooter( - message.member.displayName || message.author.username, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setThumbnail(client.user.displayAvatarURL()) - .setColor(client.color) - .setTimestamp(); - message.reply(embed).then(await target.roles.add(role)); - } - } catch (e) { - console.log(e); - return client.err(message, "Moderation", "role", 999); - } - }, -}; diff --git a/commands/Moderation/unban.js b/commands/Moderation/unban.js @@ -1,30 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); -module.exports = { - name: "unban", - description: "Unban an user", - UserPerm: "BAN_MEMBERS", - BotPerm: "BAN_MEMBERS", - usage: "(User)", - category: "Moderation", - run: async (client, message, args) => { - try { - if (!args[0]) return client.err(message, "Moderation", "unban", 1); - const user = await message.guild.members.unban(args[0]); - const embed = new MessageEmbed() - .setTitle("User Unbanned") - .addField("**Moderator**", message.author.tag, true) - .addField("**User**", user.tag, true) - .setFooter( - message.member.displayName || message.author.username, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setThumbnail(client.user.displayAvatarURL()) - .setColor(client.color) - .setTimestamp(); - message.reply(embed); - } catch (e) { - console.log(e); - return client.err(message, "Moderation", "unban", 999); - } - }, -}; diff --git a/commands/Moderation/unlock.js b/commands/Moderation/unlock.js @@ -1,27 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); - -module.exports = { - name: "unlock", - description: "Lock a channel", - UserPerm: "MANAGE_CHANNELS", - BotPerm: "MANAGE_CHANNELS", - category: "Moderation", - run: async (client, message, args) => { - message.channel - .createOverwrite(message.guild.id, { SEND_MESSAGES: true }) - .then(() => { - const embed = new MessageEmbed() - .setTitle("Channel Unlocked") - .addField("**Moderator**", message.author.tag, true) - .addField("**Channel**", `<#${message.channel.id}>`, true) - .setFooter( - message.member.displayName || message.author.username, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setThumbnail(client.user.displayAvatarURL()) - .setColor(client.color) - .setTimestamp(); - message.reply(embed); - }); - }, -}; diff --git a/commands/Moderation/unmute.js b/commands/Moderation/unmute.js @@ -1,47 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); -module.exports = { - name: "unmute", - UserPerm: "MANAGE_MESSAGES", - BotPerm: "MANAGE_ROLES", - usage: "(User)", - description: "Unmute an user", - category: "Moderation", - run: async (client, message, args) => { - try { - const user = - message.mentions.members.first() || - message.guild.members.cache.get(args[0]); - if (!user) return client.err(message, "Moderation", "unmute", 1); - const role = message.guild.roles.cache.find(r => r.name === "Muted"); - if (!role) { - try { - await message.guild.roles.create({ - data: { - name: "Muted", - permissions: [], - }, - }); - } catch (e) { - console.log(e); - return client.err(message, "Moderation", "unmute", 999); - } - } - await user.roles.remove(role); - const embed = new MessageEmbed() - .setTitle("User Unmuted") - .addField("**Moderator**", message.author.tag, true) - .addField("**User**", user.user.tag, true) - .setFooter( - message.member.displayName || message.author.username, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setThumbnail(client.user.displayAvatarURL()) - .setColor(client.color) - .setTimestamp(); - message.reply(embed); - } catch (e) { - console.log(e); - return client.err(message, "Moderation", "unmute", 999); - } - }, -}; diff --git a/commands/Moderation/warn.js b/commands/Moderation/warn.js @@ -1,59 +0,0 @@ -const db = require("../../models/warns"); -const { Client, Message, MessageEmbed } = require("discord.js"); -module.exports = { - name: "warn", - UserPerm: "MANAGE_MESSAGES", - usage: "(User) {Reason}", - description: "Warn a user", - category: "Moderation", - run: async (client, message, args) => { - try { - const user = - message.mentions.members.first() || - message.guild.members.cache.get(args[0]); - if (!user) return client.err(message, "Moderation", "warn", 1); - const reason = args.slice(1).join(" ") || "No reason provided"; - db.findOne( - { Guild: message.guild.id, User: user.id }, - async (err, data) => { - if (!data) { - data = new db({ - Guild: message.guild.id, - User: user.id, - Warns: [ - { - Reason: reason, - }, - ], - }); - } else { - const obj = { - Reason: reason, - }; - data.Warns.push(obj); - } - data.save(); - } - ); - user.send( - `You have been warned in **${message.guild.name}** for **${reason}**` - ); - const embed = new MessageEmbed() - .setTitle("User Warned") - .addField("**Moderator**", message.author.tag, true) - .addField("**User**", user.user.tag, true) - .addField("**Reason**", reason, true) - .setFooter( - message.member.displayName || message.author.username, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setThumbnail(client.user.displayAvatarURL()) - .setColor(client.color) - .setTimestamp(); - message.reply(embed); - } catch (e) { - console.log(e); - return client.err(message, "Moderation", "warn", 1); - } - }, -}; diff --git a/commands/Moderation/warns.js b/commands/Moderation/warns.js @@ -1,48 +0,0 @@ -const db = require("../../models/warns"); -const { Message, MessageEmbed } = require("discord.js"); -module.exports = { - name: "warns", - UserPerm: "MANAGE_MESSAGES", - description: "Check the warns of an user", - usage: "{User}", - category: "Moderation", - run: async (client, message, args) => { - try { - const user = - message.mentions.members.first() || - message.guild.members.cache.get(args[0]) || - message.guild.members.cache.find( - r => - r.user.username.toLowerCase() === args.join(" ").toLocaleLowerCase() - ) || - message.guild.members.cache.find( - r => - r.displayName.toLowerCase() === args.join(" ").toLocaleLowerCase() - ) || - message.author; - db.findOne( - { Guild: message.guild.id, User: user.id }, - async (err, data) => { - if (data) { - message.channel.send( - new MessageEmbed() - .setTitle(`${user.user.tag}'s warns`) - .setDescription( - data.Warns.map( - (w, i) => `\`${i + 1}\` | Reason : ${w.Reason}` - ) - ) - .setTimestamp() - .setColor(client.color) - ); - } else { - return client.err(message, "Moderation", "warns", 10); - } - } - ); - } catch (e) { - console.log(e); - return client.err(message, "Moderation", "warns", 999); - } - }, -}; diff --git a/commands/Music/bassboost.js b/commands/Music/bassboost.js @@ -1,33 +0,0 @@ -const levels = { - 0: 0.0, - 1: 0.5, - 2: 1.0, - 3: 2.0, -}; - -module.exports = { - name: "bassboost", - aliases: ["bb", "bassboost"], - description: "Set filter/bassboost level", - category: "Music", - usage: "(Number)", - Premium: true, - run: async (client, message, args) => { - const player = message.client.manager.get(message.guild.id); - if (!player) return client.err(message, "Music", "bassboost", 34); - const { channel } = message.member.voice; - if (!channel) return client.err(message, "Music", "bassboost", 35); - if (channel.id !== player.voiceChannel) - return client.err(message, "Music", "bassboost", 55); - let level = "0"; - if (args.length && args[0].toLowerCase() in levels) - level = args[0].toLowerCase(); - const bands = new Array(3) - .fill(null) - .map((_, i) => ({ band: i, gain: levels[level] })); - player.setEQ(...bands); - return message.reply( - `The player's bassboost level has been set to ${level}` - ); - }, -}; diff --git a/commands/Music/loop.js b/commands/Music/loop.js @@ -1,22 +0,0 @@ -module.exports = { - name: "loop", - aliases: ["repeat"], - description: "Music loop", - category: "Music", - run: async (client, message, args) => { - const player = message.client.manager.get(message.guild.id); - if (!player) return client.err(message, "Music", "loop", 34); - const { channel } = message.member.voice; - if (!channel) return client.err(message, "Music", "loop", 35); - if (channel.id !== player.voiceChannel) - return client.err(message, "Music", "loop", 55); - if (args.length && /queue/i.test(args[0])) { - player.setQueueRepeat(!player.queueRepeat); - const queueRepeat = player.queueRepeat ? "enabled" : "disabled"; - return message.reply(`Queue repeat is ${queueRepeat}`); - } - player.setTrackRepeat(!player.trackRepeat); - const trackRepeat = player.trackRepeat ? "enabled" : "disabled"; - return message.reply(`Queue repeat is ${trackRepeat}`); - }, -}; diff --git a/commands/Music/lyrics.js b/commands/Music/lyrics.js @@ -1,30 +0,0 @@ -const { MessageEmbed } = require("discord.js"); -const lyricsFinder = require("lyrics-finder"); -const splitlyrics = require("../../util/pagination/pagination"); -module.exports = { - name: "lyrics", - description: "Get lyrics for the currently playing song", - category: "Music", - usage: "(Song)", - run: async (client, message, args) => { - let lyrics = null; - try { - lyrics = await lyricsFinder(args.slice(0).join(" "), ""); - if (!lyrics) - lyrics = `**No lyrics are found for ${args.slice(0).join(" ")}.**`; - } catch (error) { - lyrics = `**No lyrics are found for ${args.slice(0).join(" ")}.**`; - } - const splittedLyrics = splitlyrics.chunk(lyrics, 1024); - let lyricsEmbed = new MessageEmbed() - .setAuthor(`Lyrics`) - .setColor("YELLOW") - .setDescription(splittedLyrics[0]) - .setFooter(`Page 1 of ${splittedLyrics.length}.`) - .setTimestamp(); - - const lyricsMsg = await message.channel.send(lyricsEmbed); - if (splittedLyrics.length > 1) - await splitlyrics.pagination(lyricsMsg, message.author, splittedLyrics); - }, -}; diff --git a/commands/Music/nowplaying.js b/commands/Music/nowplaying.js @@ -1,114 +0,0 @@ -const { MessageEmbed } = require("discord.js"); - -module.exports = { - name: "nowplaying", - aliases: ["np"], - description: "Show now playing music info", - category: "Music", - run: async (client, message, args) => { - try { - function format(millis) { - try { - var h = Math.floor(millis / 3600000), - m = Math.floor(millis / 60000), - s = ((millis % 60000) / 1000).toFixed(0); - if (h < 1) - return ( - (m < 10 ? "0" : "") + - m + - ":" + - (s < 10 ? "0" : "") + - s + - " | " + - Math.floor(millis / 1000) + - " Seconds" - ); - else - return ( - (h < 10 ? "0" : "") + - h + - ":" + - (m < 10 ? "0" : "") + - m + - ":" + - (s < 10 ? "0" : "") + - s + - " | " + - Math.floor(millis / 1000) + - " Seconds" - ); - } catch (e) { - console.log(e); - } - } - function createBar(player) { - try { - if (!player.queue.current) - return `**"[""โ–‡""โ€”".repeat(size - 1)}]**\n**00:00:00 / 00:00:00**`; - let current = - player.queue.current.duration !== 0 - ? player.position - : player.queue.current.duration; - let total = player.queue.current.duration; - let size = 15; - let bar = - String("|") + - String("โ–‡").repeat(Math.round(size * (current / total))) + - String("โ€”").repeat(size - Math.round(size * (current / total))) + - String("|"); - return `**${bar}**\n**${ - new Date(player.position).toISOString().substr(11, 8) + - " / " + - (player.queue.current.duration == 0 - ? " โ—‰ LIVE" - : new Date(player.queue.current.duration) - .toISOString() - .substr(11, 8)) - }**`; - } catch (e) { - console.log(e); - } - } - - const player = message.client.manager.get(message.guild.id); - if (!player.queue.current) - return client.err(message, "Music", "nowplaying", 37); - return message.channel.send( - new MessageEmbed() - .setAuthor( - `Current song playing:`, - message.client.user.displayAvatarURL({ - dynamic: true, - }) - ) - .setThumbnail( - `https://img.youtube.com/vi/${player.queue.current.identifier}/mqdefault.jpg` - ) - .setURL(player.queue.current.uri) - .setColor("GREEN") - .setTitle(`๐ŸŽถ **${player.queue.current.title}** ๐ŸŽถ`) - .addField( - `๐Ÿ•ฐ๏ธ Duration: `, - `\`${format(player.queue.current.duration)}\``, - true - ) - .addField(`๐ŸŽผ Song By: `, `\`${player.queue.current.author}\``, true) - .addField( - `๐Ÿ”ข Queue length: `, - `\`${player.queue.length} Songs\``, - true - ) - .addField(`๐ŸŽ›๏ธ Progress: `, createBar(player)) - .setFooter( - `Requested by: ${player.queue.current.requester.tag}`, - player.queue.current.requester.displayAvatarURL({ - dynamic: true, - }) - ) - ); - } catch (e) { - console.log(e); - return client.err(message, "Music", "nowplaying", 999); - } - }, -}; diff --git a/commands/Music/pause.js b/commands/Music/pause.js @@ -1,17 +0,0 @@ -module.exports = { - name: "pause", - aliases: ["ps"], - description: "Pauses the current playing music", - category: "Music", - run: async (client, message, args) => { - const player = message.client.manager.get(message.guild.id); - if (!player) return client.err(message, "Music", "pause", 34); - const { channel } = message.member.voice; - if (!channel) return client.err(message, "Music", "pause", 35); - if (channel.id !== player.voiceChannel) - return client.err(message, "Music", "pause", 55); - if (player.paused) return message.reply("The player is already paused"); - player.pause(true); - return message.reply("The player is paused"); - }, -}; diff --git a/commands/Music/play.js b/commands/Music/play.js @@ -1,144 +0,0 @@ -const Discord = require("discord.js"); - -module.exports = { - name: "play", - aliases: ["p"], - description: "Plays your favourite music from YouTube or Spotify", - usage: "(Song/Song URL)", - category: "Music", - run: async (client, message, args) => { - try { - const { channel } = message.member.voice; - if (!channel) return client.err(message, "Music", "play", 35); - if (!args.length) return client.err(message, "Music", "play", 0); - const player = message.client.manager.create({ - guild: message.guild.id, - voiceChannel: channel.id, - textChannel: message.channel.id, - selfDeafen: true, - }); - if (player.state !== "CONNECTED") player.connect(); - const search = args.join(" "); - let res; - try { - res = await player.search(search, message.author); - if (res.loadType === "LOAD_FAILED") { - if (!player.queue.current) player.destroy(); - throw res.exception; - } - } catch (e) { - console.log(e); - return client.err(message, "Music", "play", 999); - } - switch (res.loadType) { - case "NO_MATCHES": - if (!player.queue.current) player.destroy(); - return message.reply({ content: "No result is found" }); - case "TRACK_LOADED": - const playmusic = new Discord.MessageEmbed() - .setColor("#00f70c") - .setAuthor( - `Enqueuing:`, - message.client.user.displayAvatarURL({ - dynamic: true, - }) - ) - .setDescription(`${res.tracks[0].title}`) - .setTimestamp(); - player.queue.add(res.tracks[0]); - if (!player.playing && !player.paused && !player.queue.size) - player.play(); - return message.channel.send({ embeds: [playmusic] }); - case "PLAYLIST_LOADED": - player.queue.add(res.tracks); - const playlist = new Discord.MessageEmbed() - .setColor("#00f70c") - .setAuthor( - `Enqueuing playlist:`, - message.client.user.displayAvatarURL({ - dynamic: true, - }) - ) - .setDescription( - `${res.playlist.name}\` with ${res.tracks.length} tracks` - ) - .setTimestamp(); - if ( - !player.playing && - !player.paused && - player.queue.totalSize === res.tracks.length - ) - player.play(); - return message.channel.send({ embeds: [playlist] }); - case "SEARCH_RESULT": - let max = 5, - collected, - filter = m => - m.author.id === message.author.id && - /^(\d+|end)$/i.test(m.content); - if (res.tracks.length < max) max = res.tracks.length; - - const results = res.tracks - .slice(0, max) - .map( - (track, index) => - `${++index} - ` + `[${track.title}](${track.uri})` - ) - .join("\n"); - - const searchResult = new Discord.MessageEmbed() - .setColor("#00f70c") - .setTitle("Search Results: ") - .setDescription(results) - .addField( - "Cancel Search: ", - "Type end or any other number to cancel the search", - true - ) - .setTimestamp(); - message.channel.send({ embeds: [searchResult] }); - try { - collected = await message.channel.awaitMessages(filter, { - max: 1, - time: 30e3, - errors: ["time"], - }); - } catch (e) { - if (!player.queue.current) player.destroy(); - return message.reply({ - content: "You didn't provide a selection. Cancelled", - }); - } - const first = collected.first().content; - - if (first.toLowerCase() === "end") { - if (!player.queue.current) player.destroy(); - return message.channel.send("Cancelled selection"); - } - - const index = Number(first) - 1; - if (index < 0 || index > max - 1) - return message.reply({ - content: `The number that you provided too small or too big (1-${max})`, - }); - const track = res.tracks[index]; - player.queue.add(track); - const trackadd = new Discord.MessageEmbed() - .setColor("#00f70c") - .setAuthor( - `Added To Queue`, - message.client.user.displayAvatarURL({ - dynamic: true, - }) - ) - .setDescription(`[${track.title}](${track.uri})`) - .addField(`Requested By : `, `${track.requester}`, true); - if (!player.playing && !player.paused && !player.queue.size) - player.play(); - return message.channel.send({ embeds: [trackadd] }); - } - } catch (e) { - console.log(e); - } - }, -}; diff --git a/commands/Music/queue.js b/commands/Music/queue.js @@ -1,44 +0,0 @@ -const { MessageEmbed } = require("discord.js"); -module.exports = { - name: "queue", - description: "To show the songs queue", - aliases: ["q"], - category: "Music", - run: async (client, message, args) => { - const player = message.client.manager.get(message.guild.id); - if (!player) return client.err(message, "Music", "queue", 34); - const queue = player.queue; - const embed = new MessageEmbed() - .setAuthor( - message.author.tag, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setTitle(`Queue for ${message.guild.name}`) - .setTimestamp() - .setColor("RANDOM"); - const multiple = 10; - const page = args.length && Number(args[0]) ? Number(args[0]) : 1; - const end = page * multiple; - const start = end - multiple; - const tracks = queue.slice(start, end); - if (queue.current) - embed.addField( - "Current", - `[${queue.current.title}](${queue.current.uri})` - ); - - if (!tracks.length) - embed.setDescription( - `No tracks in ${page > 1 ? `page ${page}` : "the queue"}.` - ); - else - embed.setDescription( - tracks - .map((track, i) => `${start + ++i} - [${track.title}](${track.uri})`) - .join("\n") - ); - const maxPages = Math.ceil(queue.length / multiple); - embed.setFooter(`Page ${page > maxPages ? maxPages : page} of ${maxPages}`); - return message.reply(embed); - }, -}; diff --git a/commands/Music/resume.js b/commands/Music/resume.js @@ -1,17 +0,0 @@ -module.exports = { - name: "resume", - description: "Pauses the current playing music", - category: "Music", - run: async (client, message, args) => { - const player = message.client.manager.get(message.guild.id); - if (!player) return client.err(message, "Music", "resume", 34); - const { channel } = message.member.voice; - if (!channel) return client.err(message, "Music", "resume", 35); - if (channel.id !== player.voiceChannel) - return client.err(message, "Music", "resume", 55); - if (player.paused == false) - return message.reply("The player is already playing"); - player.pause(false); - return message.reply("The player is resumed"); - }, -}; diff --git a/commands/Music/seek.js b/commands/Music/seek.js @@ -1,103 +0,0 @@ -const { MessageEmbed } = require("discord.js"); - -module.exports = { - name: "seek", - description: "seek the current playing music", - category: "Music", - usage: "(Number)", - run: async (client, message, args) => { - try { - function createBar(player) { - try { - if (!player.queue.current) - return `**[""๐Ÿ”˜""โ–ฌ".repeat(size - 1)}]**\n**00:00:00 / 00:00:00**`; - let current = - player.queue.current.duration !== 0 - ? player.position - : player.queue.current.duration; - let total = player.queue.current.duration; - let size = 15; - let bar = - String("| ") + - String("๐Ÿ”˜").repeat(Math.round(size * (current / total))) + - String("โ–ฌ").repeat(size - Math.round(size * (current / total))) + - String(" |"); - return `**${bar}**\n**${ - new Date(player.position).toISOString().substr(11, 8) + - " / " + - (player.queue.current.duration == 0 - ? " โ—‰ LIVE" - : new Date(player.queue.current.duration) - .toISOString() - .substr(11, 8)) - }**`; - } catch (e) { - console.log(e); - } - } - function format(millis) { - try { - var h = Math.floor(millis / 3600000), - m = Math.floor(millis / 60000), - s = ((millis % 60000) / 1000).toFixed(0); - if (h < 1) - return ( - (m < 10 ? "0" : "") + - m + - ":" + - (s < 10 ? "0" : "") + - s + - " | " + - Math.floor(millis / 1000) + - " Seconds" - ); - else - return ( - (h < 10 ? "0" : "") + - h + - ":" + - (m < 10 ? "0" : "") + - m + - ":" + - (s < 10 ? "0" : "") + - s + - " | " + - Math.floor(millis / 1000) + - " Seconds" - ); - } catch (e) { - console.log(e); - } - } - const player = message.client.manager.get(message.guild.id); - if ( - Number(args[0]) < 0 || - Number(args[0]) >= player.queue.current.duration / 1000 - ) - return message.channel.send( - new MessageEmbed() - .setColor("RED") - .setTitle( - ` Error | You may seek from \`0\` - \`${player.queue.current.duration}\`` - ) - .setAuthor( - message.author.tag, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setTimestamp() - .setFooter(`Made by ${client.author}`) - ); - - player.seek(Number(args[0]) * 1000); - return message.channel.send( - new MessageEmbed() - .setTitle(`Seeked song to: ${format(Number(args[0]) * 1000)}`) - .addField(`Progress: `, createBar(player)) - .setColor("GREEN") - ); - } catch (e) { - console.log(e); - return client.err(message, "Music", "seek", 999); - } - }, -}; diff --git a/commands/Music/skip.js b/commands/Music/skip.js @@ -1,18 +0,0 @@ -module.exports = { - name: "skip", - aliases: ["sk"], - description: "Skips the current playing music", - category: "Music", - run: async (client, message, args) => { - const player = message.client.manager.get(message.guild.id); - if (!player) return client.err(message, "Music", "skip", 34); - const { channel } = message.member.voice; - if (!channel) return client.err(message, "Music", "skip", 35); - if (channel.id !== player.voiceChannel) - return client.err(message, "Music", "skip", 55); - if (!player.queue.current) return client.err(message, "Music", "skip", 34); - const { title } = player.queue.current; - player.stop(); - return message.reply(`**${title}** was skipped`); - }, -}; diff --git a/commands/Music/stop.js b/commands/Music/stop.js @@ -1,17 +0,0 @@ -module.exports = { - name: "stop", - aliases: ["dc"], - description: "To stop the music and clear the queue", - category: "Music", - run: async (client, message, args) => { - const player = message.client.manager.get(message.guild.id); - if (!player) return client.err(message, "Music", "stop", 34); - const { channel } = message.member.voice; - if (!channel) return client.err(message, "Music", "stop", 35); - if (channel.id !== player.voiceChannel) - return client.err(message, "Music", "stop", 55); - player.destroy(); - message.react("โœ…"); - return message.reply("The player has been destroyed"); - }, -}; diff --git a/commands/Music/volume.js b/commands/Music/volume.js @@ -1,23 +0,0 @@ -module.exports = { - name: "volume", - description: "To change the server song queue volume", - usage: "(Number)", - aliases: ["vol", "v"], - category: "Music", - description: "Set volume level of the music", - run: async (client, message, args) => { - const player = message.client.manager.get(message.guild.id); - if (!player) return client.err(message, "Music", "volume", 34); - if (!args.length) - return message.reply(`The player volume is \`${player.volume}\``); - const { channel } = message.member.voice; - if (!channel) return client.err(message, "Music", "volume", 35); - if (channel.id !== player.voiceChannel) - return client.err(message, "Music", "volume", 55); - const volume = Number(args[0]); - if (!volume || volume < 1 || volume > 100 || isNaN(volume)) - return client.err(message, "Music", "volume", 101); - player.setVolume(volume); - return message.reply(`The player's volume has been set to \`${volume}\`.`); - }, -}; diff --git a/commands/Owner/accept.js b/commands/Owner/accept.js @@ -1,38 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); -module.exports = { - name: "accept", - category: "Owner", - usage: "(Message)", - description: "Accept a suggestion", - Owner: true, - run: async (client, message, args) => { - const MessageID = args[0]; - const acceptQuery = - args.slice(1).join(" ") || `They didn't leave any message.`; - - if (!MessageID) return message.reply("Please specify a valid ID"); - try { - const suggestionChannel = message.guild.channels.cache.get( - client.SuggestionLog - ); - const suggestEmbed = await suggestionChannel.messages.fetch(MessageID); - const data = suggestEmbed.embeds[0]; - const acceptEmbed = new MessageEmbed() - .setAuthor(data.author.name, data.author.iconURL) - .setDescription(data.description) - .setColor("GREEN") - .addField("**Status(ACCEPTED)**", acceptQuery); - - suggestEmbed.edit(acceptEmbed); - - const user = await client.users.cache.find( - u => u.tag === data.author.name - ); - message.channel.send("Suggestion accepted."); - user.send(acceptEmbed); - } catch (err) { - message.channel.send("That suggestion doesn't exist"); - console.log(err); - } - }, -}; diff --git a/commands/Owner/add.js b/commands/Owner/add.js @@ -1,15 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); -module.exports = { - name: "add", - category: "Owner", - usage: "(Number)", - description: "Add coins from someone", - Owner: true, - run: async (client, message, args) => { - if (!args[0] || isNaN(args[0])) - return message.channel.send("Number of coins?"); - const user = message.mentions.members.first() || message.author; - client.add(user.id, parseInt(args[0]), message); - message.react("<a:a_yes:808683134786863124>"); - }, -}; diff --git a/commands/Owner/cls.js b/commands/Owner/cls.js @@ -1,11 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); - -module.exports = { - name: "cls", - Owner: true, - run: async (client, message, args) => { - message.channel.send( - "**\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n**" - ); - }, -}; diff --git a/commands/Owner/deny.js b/commands/Owner/deny.js @@ -1,36 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); -module.exports = { - name: "deny", - category: "Owner", - usage: "(Message)", - description: "Deny a suggestion", - Owner: true, - run: async (client, message, args) => { - const MessageID = args[0]; - const denyQuery = - args.slice(1).join(" ") || `They didn't leave any message.`; - - if (!MessageID) return message.reply("Please specify a valid ID"); - try { - const suggestionChannel = message.guild.channels.cache.get( - client.SuggestionLog - ); - const suggestEmbed = await suggestionChannel.messages.fetch(MessageID); - const data = suggestEmbed.embeds[0]; - const denyEmbed = new MessageEmbed() - .setAuthor(data.author.name, data.author.iconURL) - .setDescription(data.description) - .setColor("RED") - .addField("**Status(DENIED)**", denyQuery); - suggestEmbed.edit(denyEmbed); - const user = await client.users.cache.find( - u => u.tag === data.author.name - ); - message.channel.send("Suggestion denied."); - user.send(denyEmbed); - } catch (err) { - message.channel.send("That suggestion doesn't exist"); - console.log(err); - } - }, -}; diff --git a/commands/Owner/dm.js b/commands/Owner/dm.js @@ -1,20 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); -module.exports = { - name: "dm", - category: "Owner", - usage: "(User) (Message)", - description: "DM a user", - Owner: true, - run: async (client, message, args) => { - const user = client.users.cache.get(args[0]); - if (!user) return message.reply("User?"); - if (!args.slice(1).join(" ")) return message.reply("Message?"); - try { - await user - .send(args.slice(1).join(" ")) - .then(() => message.channel.send(`Sent message.`)); - } catch (err) { - message.author.send("That user can't be dmed"); - } - }, -}; diff --git a/commands/Owner/edit.js b/commands/Owner/edit.js @@ -1,58 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); - -module.exports = { - name: "edit", - /** - * @param {Client} client - * @param {Message} message - * @param {String[]} args - */ - run: async (client, message, args) => { - const embed = new MessageEmbed() - .setAuthor( - "ลƒ1ght and Cath Nation", - message.guild.iconURL({ dynamic: true, size: 4096 }) - ) - .setColor(client.color) - .setDescription( - "*Welcome to ลƒ1ght and Cath Nation*.\n**Please get a role below by reacting!**\n**[Invite](https://discord.com/api/oauth2/authorize?client_id=800966959268364288&permissions=4231314550&scope=bot%20applications.commands) | [Support](https://discord.gg/SbQHChmGcp) | [YouTube](https://youtube.com/c/Kirito01) | [Website](https://www.cath.gq)**" - ) - .addFields( - { - name: "Gold<:gold:841194046419370024>", - value: "<@&841200768706543636>", - inline: true, - }, - { - name: "Platinum<:platinum:841194040165924865>", - value: "<@&840536973126270976>", - inline: true, - }, - { - name: "Updates<:Update:841196992385253408>", - value: "<@&841200845885538325>", - inline: true, - }, - { - name: "Announcements<:announce_dark:841195615458951168>", - value: "<@&841026716181069824>", - inline: false, - }, - { - name: "YouTube<:YouTube:841186450497339412>", - value: "<@&841026772790673448>", - inline: true, - } - ) - .setThumbnail(client.user.displayAvatarURL()) - .setURL(client.web) - .setFooter( - "ลƒ1ght#0001", - message.author.displayAvatarURL({ dynamic: true, size: 4096 }) - ) - .setTimestamp(); - const ch = message.guild.channels.cache.get(message.channel.id); - const msgs = await ch.messages.fetch(args[0]); - msgs.edit("", embed); - }, -}; diff --git a/commands/Owner/encrypt.js b/commands/Owner/encrypt.js @@ -1,40 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); - -module.exports = { - name: "code", - Owner: true, - run: async (client, message, args) => { - const encrypted = encrypt(args.slice(0).join(" ")); - message.channel.send(`\`\`\`${encrypted}\`\`\``); - message.channel.send(`\`\`\`${decrypt(encrypted)}\`\`\``); - function encrypt(inp) { - var str = inp.split(""), - out = ""; - str.forEach((c, i) => { - if (c == " ") { - out += " "; - } else if (i % 3 == 0) { - out += String.fromCharCode(c.charCodeAt(0) + 3); - } else { - out += String.fromCharCode(c.charCodeAt(0) - 2); - } - }); - return out; - } - - function decrypt(inp) { - var str = inp.split(""), - out = ""; - str.forEach((c, i) => { - if (c == " ") { - out += " "; - } else if (i % 3 == 0) { - out += String.fromCharCode(c.charCodeAt(0) - 3); - } else { - out += String.fromCharCode(c.charCodeAt(0) + 2); - } - }); - return out; - } - }, -}; diff --git a/commands/Owner/getinvite.js b/commands/Owner/getinvite.js @@ -1,43 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); -module.exports = { - name: "getinvite", - category: "Owner", - usage: "(Guild)", - description: "Generates an invitation to the server", - Owner: true, - run: async (client, message, args) => { - let guild = null; - if (!args[0]) return client.err(message, "Owner", "getinvite", 0); - if (args[0]) { - let fetched = client.guilds.cache.find(g => g.name === args.join(" ")); - let found = client.guilds.cache.get(args[0]); - if (!found) { - if (fetched) { - guild = fetched; - } - } else { - guild = found; - } - } else { - return message.reply("Invalid Name/ID!"); - } - if (guild) { - let tChannel = guild.channels.cache.find( - ch => - ch.type == "text" && - ch.permissionsFor(ch.guild.me).has("CREATE_INSTANT_INVITE") - ); - if (!tChannel) { - return client.err(message, "Owner", "getinvite", 6); - } - let invite = await tChannel - .createInvite({ temporary: false, maxAge: 0 }) - .catch(err => { - return message.reply(`${err} has occured!`); - }); - message.reply(invite.url); - } else { - return message.reply(`\`${args.join(" ")}\` - Bot is Not in this server`); - } - }, -}; diff --git a/commands/Owner/info.js b/commands/Owner/info.js @@ -1,24 +0,0 @@ -const { MessageEmbed } = require("discord.js"); -module.exports = { - name: "info", - Owner: true, - run: async (client, message, args) => { - const embed = new MessageEmbed() - .setAuthor( - "Cath Nation Role Informatiom", - message.guild.iconURL({ dynamic: true, size: 4096 }) - ) - .setColor(client.color) - .setDescription( - "<@&840539971068755989>\nThe Server Owner\n<@&765928569397575750>\nThe unpingable ones\n<@&854306717977935882>\nThe Server Owner's Bots\n<@&832145795523280907>\nThe unpingable ones\n<@&756805977298305135>\nThe ones who can control the server\n<@&840537065984491531>\nPremium users of Cath\n<@&856223068782723093>\nThe developers and the helpers of Cath\n<@&836279963069710336>\nVIPs of this server. Chosen by the server owner\n<@&807976942066204674>\nPartner of Cath or the server\n<@&828273514497835059>\nThe wealthy ones\n<@&756805886244028427>\nOld VIPs\n<@&749676662098100235>\nMaybe useful for the server\n<@&840536973126270976>\nPlatium camo color\n<@&841200768706543636>\nGold camo color\n<@&841026716181069824>\nReceive announcements\n<@&841200845885538325>\nRecevie updates for Cath(s)\n<@&841026772790673448>\nRecevie updates for Night's YouTube\n<@&840926118617809006>\nPeople who are bad" - ) - .setThumbnail(client.user.displayAvatarURL()) - .setURL(client.web) - .setFooter( - "ลƒ1ght#0001", - message.author.displayAvatarURL({ dynamic: true, size: 4096 }) - ) - .setTimestamp(); - message.channel.send({ embeds: [embed] }); - }, -}; diff --git a/commands/Owner/premium.js b/commands/Owner/premium.js @@ -1,17 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); -module.exports = { - name: "setpremium", - category: "Owner", - usage: "(User) (Toggle) (Tier)", - description: "Set someone into Premium with tiers", - Owner: true, - run: async (client, message, args) => { - const member = - message.mentions.members.first() || - message.guild.members.cache.get(args[0]); - client.data.Premium(member.id, "true", args[1]); - message.reply( - `**${member.user.username}**'s premium status:\nTier **${args[1]}**` - ); - }, -}; diff --git a/commands/Owner/reaction-role.js b/commands/Owner/reaction-role.js @@ -1,51 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); -module.exports = { - name: "rr", - Owner: true, - run: async (client, message, args) => { - const embed = new MessageEmbed() - .setAuthor( - "ลƒ1ght and Cath Nation", - message.guild.iconURL({ dynamic: true, size: 4096 }) - ) - .setColor(client.color) - .setDescription( - "*Welcome to ลƒ1ght and Cath Nation*.\n**Please get a role below by reacting!**\n**[Invite](https://discord.com/api/oauth2/authorize?client_id=800966959268364288&permissions=4231314550&scope=bot%20applications.commands) | [Support](https://discord.gg/SbQHChmGcp) | [YouTube](https://youtube.com/c/Kirito01) | [Website](https://www.cath.gq)**" - ) - .addFields( - { - name: "Gold<:gold:841194046419370024>", - value: "<@&841200768706543636>", - inline: true, - }, - { - name: "Platinum<:platinum:841194040165924865>", - value: "<@&840536973126270976>", - inline: true, - }, - { - name: "Updates<:Update:841196992385253408>", - value: "<@&841200845885538325>", - inline: true, - }, - { - name: "Announcements<:announce_dark:841195615458951168>", - value: "<@&841026716181069824>", - inline: false, - }, - { - name: "YouTube<:YouTube:841186450497339412>", - value: "<@&841026772790673448>", - inline: true, - } - ) - .setThumbnail(client.user.displayAvatarURL()) - .setURL(client.web) - .setFooter( - "ลƒ1ght#0001", - message.author.displayAvatarURL({ dynamic: true, size: 4096 }) - ) - .setTimestamp(); - message.channel.send(embed); - }, -}; diff --git a/commands/Owner/rmv.js b/commands/Owner/rmv.js @@ -1,15 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); -module.exports = { - name: "rmv", - category: "Owner", - usage: "(Number)", - description: "Remove coins from someone", - Owner: true, - run: async (client, message, args) => { - if (!args[0] || isNaN(args[0])) - return message.channel.send("Number of coins?"); - const user = message.mentions.members.first() || message.author; - await client.rmv(user.id, parseInt(args[0])); - message.react("<a:a_yes:808683134786863124>"); - }, -}; diff --git a/commands/Owner/try.js b/commands/Owner/try.js @@ -1,57 +0,0 @@ -const { Client, Message, MessageEmbed } = require("discord.js"); -module.exports = { - name: "auth", - run: async (client, message, args) => { - const random = client.function.rndint(100000, 999999); - let ed; - const questions = [ - `Please enter the following code to authenicate\n\n\`${random}\``, - ]; - let collectCounter = 0; - let endCounter = 0; - const filter = m => m.author.id === message.author.id; - message.reply("Please check your DM."); - try { - const appStart = await message.author.send( - new MessageEmbed() - .setAuthor(message.author.username, message.author.displayAvatarURL()) - .setTitle("One-Time Password") - .setDescription(questions[collectCounter++]) - .setColor(client.color) - .setFooter(`Made by ${client.author}`) - .setTimestamp() - ); - const channel = appStart.channel; - const collector = channel.createMessageCollector(filter); - collector.on("collect", () => { - collector.stop("fulfilled"); - }); - - collector.on("end", (collected, reason) => { - if (reason === "fulfilled") { - const msss = collected.map(msg => { - if (msg.content === `${random}`) { - message.author.send( - new MessageEmbed() - .setDescription(`Success`) - .setTimestamp() - .setColor("GREEN") - .setFooter(`Made by ${client.author}`) - ); - } else { - message.author.send( - new MessageEmbed() - .setDescription(`Failed\nPlease try again.`) - .setTimestamp() - .setColor("RED") - .setFooter(`Made by ${client.author}`) - ); - } - }); - } - }); - } catch (err) { - console.log(err); - } - }, -}; diff --git a/commands/Utilities/help.js b/commands/Utilities/help.js @@ -1,192 +0,0 @@ -const Discord = require("discord.js"); -module.exports = { - name: "help", - aliases: ["h"], - usage: "(Command/Category)", - description: "Shows all available bot commands", - category: "Utilities", - run: async (client, message, args) => { - const p = await client.prefix(message); - const emoji = { - CODM: "<a:AA99_codm_logo:840231960441257995>", - Config: "<:staff:840231971526803467>", - Economy: client.currency, - Fun: "<a:lollll:804325253265621012>", - Moderation: "๐Ÿ”จ", - Utilities: "โš™", - Music: "<a:music:840231980692144130>", - Giveaway: "<a:DankCat:798963811902160896>", - Information: "โ„น", - }; - if (!args[0]) { - const directories = [ - ...new Set(client.commands.map(cmd => cmd.directory)), - ]; - const categories = directories.map(dir => { - if (dir == "Owner") return; - const getCmds = client.commands - .filter(c => c.directory == dir) - .map(cmd => { - return { - name: cmd.name || "No command name", - }; - }); - return { - directory: dir, - commands: getCmds, - }; - }); - const embed = new Discord.MessageEmbed() - .setTitle(`**${client.user.username} commands**`) - .setDescription(`Please choose a category in the dropdown menu`) - .setColor(client.color) - .setTimestamp() - .setAuthor( - `Requested by ${message.author.tag}`, - message.author.displayAvatarURL({ dynamic: true }) - ) - .addField( - "**Invite Link**", - `**Invite me to your server by clicking [here](https://discord.com/api/oauth2/authorize?client_id=${client.user.id}&permissions=4231314550&scope=bot%20applications.commands)**` - ) - .addField( - "**Support Server Invite**", - "**Join the support server by clicking [here](https://discord.gg/SbQHChmGcp)**" - ) - .addField( - "**Premium**", - "**You can either boost support server or subscribe to developer's team [Ko-fi](https://ko-fi.com/cathteam) or gift a nitro to one of the developer team **" - ) - .setURL(client.web) - .setFooter( - `Requested by ${message.author.tag}`, - message.author.displayAvatarURL({ dynamic: true }) - ); - const components = state => [ - new Discord.MessageActionRow().addComponents( - new Discord.MessageSelectMenu() - .setCustomId("help-menu") - .setPlaceholder(`Please select a category`) - .setDisabled(state) - .addOptions( - categories.map(cmd => { - return { - label: cmd.directory, - value: cmd.directory, - description: `Commands from ${cmd.directory} category`, - emoji: emoji[cmd.directory] || null, - }; - }) - ) - ), - ]; - - const msg = await message.channel.send({ - embeds: [embed], - components: components(false), - }); - const filter = m => m.user.id === message.author.id; - const collector = message.channel.createMessageComponentCollector({ - filter, - componentType: "SELECT_MENU", - time: 60000, - }); - collector.on("collect", async interaction => { - const [directory] = interaction.values; - const category = categories.find(u => u.directory === directory); - const newembed = new Discord.MessageEmbed() - .setTitle( - `${emoji[directory]}${directory} Commands${emoji[directory]}` - ) - .setAuthor( - `Requested by ${message.author.tag}`, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setTimestamp() - .setURL(client.web) - .setColor(client.color) - .setFooter(`Please use /help (Command Name) for more details`) - .setDescription( - category.commands - .map(cmd => { - return [`\`${cmd.name}\``]; - }) - .join(", ") - ); - interaction.reply({ embeds: [newembed] }); - }); - collector.on("end", () => msg.edit({ components: components(true) })); - } else { - const command = - client.commands.get(args[0].toLowerCase()) || - client.commands.find( - c => c.aliases && c.aliases.includes(args[0].toLowerCase()) - ); - if (!command) { - message.channel.send({ - content: `There isn't any command named "${args[0]}"`, - }); - } else { - if (command.UserPerm && Array.isArray(command.UserPerm)) { - UserPermissions = command.UserPerm; - } else UserPermissions = [command.UserPerm ? command.UserPerm : ""]; - if (command.BotPerm && Array.isArray(command.BotPerm)) { - BotPermissions = command.BotPerm; - } else BotPermissions = [command.BotPerm ? command.BotPerm : ""]; - const BotPerms = BotPermissions.map(x => - x - .split("_") - .map(y => y[0] + y.substring(1, y.length).toLowerCase()) - .join(" ") - ).join(", "); - const UserPerms = UserPermissions.map(x => - x - .split("_") - .map(y => y[0] + y.substring(1, y.length).toLowerCase()) - .join(" ") - ).join(", "); - const embed = new Discord.MessageEmbed() - .setTitle(`"${command.name}" command details`) - .addField( - "**Command**:", - command.name ? `\`${command.name}\`` : "N/A" - ); - if (command.aliases) { - embed.addField("**Aliases**:", `\`${command.aliases.join(", ")}\``); - } - if (command.usage) { - embed.addField( - "**Usage**:", - `\`${p}${command.name} ${command.usage}\`` - ); - } else { - embed.addField("**Usage**:", `\`${p}${command.name}\``); - } - if (command.description) { - embed.addField("**Description**:", command.description); - } - if (command.timeout) { - embed.addField( - "**Cooldown**:", - utils.ms(command.timeout, { long: true }) - ); - } - if (command.UserPerm) { - embed.addField("**Required User Permission**:", UserPerms); - } - if (command.BotPerm) { - embed.addField("**Required Bot Permission**:", BotPerms); - } - embed - .setFooter( - `Requested by ${message.author.tag}`, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setTimestamp() - .setURL(client.web) - .setColor(client.color); - message.reply({ embeds: [embed] }); - } - } - }, -}; diff --git a/config.js b/config.js @@ -0,0 +1,17 @@ +module.exports = { + prefix: "C.", + URL: "https://cath.gq/", + color: "ff3636", + Suggestion: "853319776034226186", + Report: "853319776034226186", + Welcome: "837913442228371456", + DMLog: "900549765534736394", + CMDLog: "848613827226239046", + ErrorLog: "900509758786773022", + ServerLog: "848613714537873518", + Lavalink: { + Host: "lavalink.darrennathanael.com", + Port: 2095, + Password: "whatwasthelastingyousaid", + }, +}; diff --git a/config.json b/config.json @@ -1,13 +0,0 @@ -{ - "prefix": "C.", - "URL": "https://cath.gq/", - "color": "02023a", - "ca": "**[Invite](https://discord.com/api/oauth2/authorize?client_id=800966959268364288&permissions=mongodb+srv://cath_exe:[email protected]/Data4231314550&scope=bot%20applications.commands) | [Support](https://discord.gg/SbQHChmGcp) | [YouTube](https://youtube.com/Kirito01) | [Website](https://www.cath.gq)**", - "Suggestion": "853319776034226186", - "Report": "853319776034226186", - "Welcome": "837913442228371456", - "DMLog": "850434924536135690", - "CMDLog": "848613827226239046", - "ErrorLog": "848613745486856233", - "ServerLog": "848613714537873518" -} diff --git a/events/afk.js b/events/afk.js @@ -1,31 +1,25 @@ -const client = require("../bot"); -const moment = require("moment"); +const client = require("../"); client.on("messageCreate", async message => { - if (message.author.bot) return; - if (!message.guild) return; + if (message.author.bot || !message.guild) return; const dataa = await client.data.getUser(message.author.id); - if (dataa) { - if (dataa.AFK != null) { - message.reply( - `Welcome back <@${dataa.User}>! I have removed your AFK status.` - ); - const nothahaa = message.guild.members.cache.get(message.author.id); - nothahaa.setNickname(`${message.author.username}`); - await client.data.DelAFK(message.author.id); - } else return; - } else { - return; + if (dataa?.AFK) { + message.reply({ + content: `Welcome back <@${dataa.User}>! I have removed your AFK status.`, + }); + const nothahaa = message.guild.members.cache.get(message.author.id); + nothahaa.setNickname(`${message.author.username}`).catch(); + await client.data.DelAFK(message.author.id); } - if (message.mentions.members.first()) { + if (message.mentions.users.first()) { const data1 = await client.data.getUser( message.mentions.members.first().id ); - if (data1) { - if (data1.AFK !== null) { - message.reply( - `${message.mentions.members.first().user.tag}is in afk (${data1.AFK})` - ); - } + if (data1?.AFK) { + message.reply({ + content: `**${ + message.mentions.members.first().user.tag + }** is in afk **(${data1.AFK})**`, + }); } } }); diff --git a/events/embed.js b/events/embed.js @@ -1,6 +1,6 @@ -const client = require("../bot"); +const client = require("../"); const { MessageEmbed } = require("discord.js"); -const { Welcome } = require("../config.json"); +const { Welcome } = require("../config.js"); client.on("guildMemberAdd", async member => { const channel = member.guild.channels.cache.find( channel => channel.id === Welcome @@ -8,12 +8,35 @@ client.on("guildMemberAdd", async member => { if (!channel) return; const embed = new MessageEmbed() .setTitle( - `<:YouTube:841186450497339412> ${member},welcome to Night\'s official Discord server! <:YouTube:841186450497339412>` + `<:join:897246825122254848> Hello ${member}, Welcome to NYX's Support Server!` ) - .setThumbnail(member.guild.iconURL({ dynamic: true })) - .addField( - "Read the rules at <#799074874513555496> channel, and enjoy your stay~", - `We now have ${member.guild.memberCount} members!` + .setThumbnail(member.user.displayAvatarURL({ dynamic: true, size: 512 })) + .addFields( + { + name: "Read Rules", + value: `<#799074874513555496>`, + inline: true, + }, + { + name: "Support Channel", + value: `<#837865823225511946>`, + inline: true, + }, + { + name: "FAQ", + value: `<#897345265516822558>`, + inline: true, + }, + { + name: "Badge", + value: `<#897345265516822558>`, + inline: true, + }, + { + name: "User ID:", + value: `\`\`\`\n${member.id}\n\`\`\``, + inline: true, + } ) .setFooter( `${member.user.tag} joined the server!`, @@ -31,12 +54,12 @@ client.on("guildMemberRemove", async member => { if (!channel) return; const embed = new MessageEmbed() .setTitle( - `<:YouTube:841186450497339412> ${member} can\'t handle being cool! <:YouTube:841186450497339412>` + `<:leave:897246828045680640> ${member.user.username} can't handle being cool! ` ) .setThumbnail(member.guild.iconURL({ dynamic: true })) .setDescription(`We now only have ${member.guild.memberCount} members`) .setFooter( - `${member.user.tag} leaved the server!`, + `${member.user.tag} left the server!`, member.user.displayAvatarURL({ dynamic: true }) ) .setColor(client.color) diff --git a/events/emoji.js b/events/emoji.js @@ -1,33 +1,35 @@ -const client = require("../bot"); +const client = require("../"); client.on("messageCreate", async message => { function Check(str) { if ( client.emojis.cache.find(emoji => emoji.name === str) || message.guild.emojis.cache.find(emoji => emoji.name === str) - ) + ) { return true; - else return false; + } else { + return false; + } } if (message.content.startsWith(":") && message.content.endsWith(":")) { - let EmojiName = message.content.slice(1, -1); + const EmojiName = message.content.slice(1, -1); if (client.path.includes(message.guild.id)) return; if (Check(EmojiName) === true) { const channel = client.channels.cache.get(message.channel.id); try { if (message.author.bot) return; - let webhooks = await channel.fetchWebhooks(); - let webhook = webhooks.first(); + const webhooks = await channel.fetchWebhooks(); + const webhook = webhooks.first(); if (webhook === undefined || null || !webhook) { channel .createWebhook(client.user.username, { avatar: client.user.displayAvatarURL(), }) - .then(async webhook => { + .then(async w => { const emoji = client.emojis.cache.find(e => e.name == EmojiName).id || message.guild.emojis.cache.find(e => e.name === EmojiName).id; - await webhook.send(`${client.emojis.cache.get(emoji)}`, { + await w.send(`${client.emojis.cache.get(emoji)}`, { username: message.member.displayName ? message.member.displayName : message.author.username, @@ -48,6 +50,10 @@ client.on("messageCreate", async message => { } catch (e) { console.log(e); } - } else return; - } else return; + } else { + return; + } + } else { + return; + } }); diff --git a/events/guild.js b/events/guild.js @@ -1,9 +1,8 @@ -const client = require("../bot"); +const client = require("../"); const { MessageEmbed } = require("discord.js"); const db = require("../models/guilds"); -const config = require("../config.json"); client.on("guildCreate", guild => { - client.channels.cache.get(client.ServerLog).send({ + client.channels.cache.get(client.config.ServerLog).send({ embeds: [ new MessageEmbed() .setTitle("New Server") @@ -24,14 +23,14 @@ client.on("guildCreate", guild => { }); const newdb = new db({ Guild: guild.id, - Prefix: config.prefix, + Prefix: client.config.prefix, }); newdb.save(); }); client.on("guildDelete", async guild => { client.data.DelGuild(guild.id); - client.channels.cache.get(client.ServerLog).send({ + client.channels.cache.get(client.config.ServerLog).send({ embeds: [ new MessageEmbed() .setTitle("Deleted Server") diff --git a/events/interactionCreate.js b/events/interactionCreate.js @@ -1,91 +1,182 @@ -const client = require("../bot"); +const client = require("../"); +const cooldown = require("../models/cooldown"); const utils = require("../util/functions/function"); -const codmclient = require("../client/CODMClient"); +const { MessageEmbed } = require("discord.js"); client.on("interactionCreate", async interaction => { if (interaction.isCommand()) { await interaction.deferReply({ ephemeral: false }).catch(() => {}); const cmd = client.slashCommands.get(interaction.commandName); if (!cmd) return; const args = []; - for (let option of interaction.options.data) { + for (const option of interaction.options.data) { + if (option.type === "SUB_COMMAND_GROUP") { + if (option.name) args.push(option.name); + option.options?.forEach(x => { + if (x.type === "SUB_COMMAND") { + if (x.name) args.push(x.name); + x.options?.forEach(y => { + if (y.value) args.push(y.value); + }); + } else if (x.value) { + args.push(x.value); + } + if (x.value) args.push(x.value); + }); + } if (option.type === "SUB_COMMAND") { if (option.name) args.push(option.name); option.options?.forEach(x => { if (x.value) args.push(x.value); }); - } else if (option.value) args.push(option.value); + } else if (option.value) { + args.push(option.value); + } } interaction.member = interaction.guild.members.cache.get( interaction.user.id ); const data = {}; - let guildDB = await client.data.getGuild(interaction.guild.id); + const guildDB = await client.data.getGuild(interaction.guild.id); if (!guildDB) return; - let userDB = await client.data.getUser(interaction.user.id); + const userDB = await client.data.getUser(interaction.user.id); if (!userDB) return; - let userEconDB = await client.data.getUserEcon(interaction.user.id); + const userEconDB = await client.data.getUserEcon(interaction.user.id); data.Guild = guildDB; data.User = userDB; data.UserEcon = userEconDB; if (!guildDB) await client.data.CreateGuild(interaction.guild.id); if (!userEconDB) await client.createProfile(interaction.user.id); - try { - if (data.User) { - if (data.User.Blacklist) - return interaction.followUp({ - content: - "You have been blacklisted from the bot, please contact the developers to appeal", - }); + if (data.User) { + if (data.User.Blacklist) { + return interaction.followUp({ + content: + "You have been blacklisted from the bot, please contact the developers to appeal", + }); } - if (cmd.Owner) { - if (!client.owners.includes(interaction.user.id)) return; + } + if (cmd.Owner) { + if (!client.owners.includes(interaction.user.id)) return; + } + if (cmd.Premium) { + if (!data.User.Premium) { + return interaction.followUp({ + embeds: [ + new MessageEmbed() + .setURL(client.web) + .setAuthor( + interaction.user.tag, + interaction.user.displayAvatarURL({ dynamic: true }) + ) + .setColor(client.color) + .setDescription( + `You aren't a premium user. You can either boost support server or subscribe to developer's team [Ko-fi](https://ko-fi.com/cathteam) or gift a nitro to one of the developer team to be premium user` + ) + .setTimestamp() + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL() + ), + ], + }); } - if (cmd.Premium) { - if (!data.User.Premium) { + } + if (cmd.Level) { + if (!data.Guild.Level) return; + } + if (cmd.directory == "NSFW" && !data.Guild?.NSFW) { + interaction.followUp({ + content: "NSFW commands have been disabled in this server", + }); + } + if (!interaction.guild.me.permissions.has(cmd.BotPerms || [])) { + return interaction.followUp({ + content: `You can't use this command. I need to have ${cmd.BotPerms} permission to use this command.`, + }); + } + if (!interaction.member.permissions.has(cmd.UserPerms || [])) { + return interaction.followUp({ + content: `You can't use this command. I need to have ${cmd.UserPerms} permission to use this command.`, + }); + } + if (data.Guild) { + if (data.Guild.Category) { + if (data.Guild.Category.includes(cmd.directory)) { return interaction.followUp({ - embeds: [ - new MessageEmbed() - .setURL(client.web) - .setAuthor( - interaction.user.tag, - interaction.user.displayAvatarURL({ dynamic: true }) - ) - .setColor(client.color) - .setDescription( - `You aren't a premium user. You can either boost support server or subscribe to developer's team [Ko-fi](https://ko-fi.com/cathteam) or gift a nitro to one of the developer team to be premium user` - ) - .setTimestamp() - .setFooter(`Made by ${client.author}`), - ], + content: "This command has been disabled in this server", }); } } - if (cmd.Level) { - if (!data.Guild.Level) return; + if (data.Guild.Commands) { + if (data.Guild.Commands.includes(cmd.name)) { + return interaction.followUp({ + content: "This command has been disabled in this server", + }); + } } - if (!interaction.guild.me.permissions.has(cmd.BotPerms || [])) - return interaction.followUp({ - content: `You can't use this command. I need to have ${cmd.BotPerms} permission to use this command.`, - }); - if (!interaction.member.permissions.has(cmd.userPerms || [])) - return interaction.followUp({ - content: `You can't use this command. I need to have ${cmd.UserPerms} permission to use this command.`, + } + const random = utils.rndint(3, 6); + try { + if (cmd.timeout) { + const current_time = Date.now(); + const cooldown_amount = cmd.timeout; + cooldown.findOne( + { User: interaction.user.id, CMD: cmd.name }, + async (er, d) => { + if (d) { + const expiration_time = d.Time + cooldown_amount; + if (current_time < expiration_time) { + if (data.Guild.Tips) utils.tips(interaction, client); + utils.cooldown(d.Time, cooldown_amount, interaction); + } else { + if (data.Guild.Tips) utils.tips(interaction, client); + await cooldown.findOneAndUpdate( + { User: interaction.user.id, CMD: cmd.name }, + { Time: current_time } + ); + cmd.run(client, interaction, args, utils, data); + client.addcmdsused(interaction.user.id); + client.channels.cache.get(client.config.CMDLog).send({ + content: `\`${interaction.user.tag}(${interaction.user.id})\`\n has used \n**${cmd.name}**\n command in \n\`${interaction.guild.name}(${interaction.guild.id})\``, + }); + // await client.addXP(interaction.user.id, random, interaction); + } + } else { + if (data.Guild.Tips) utils.tips(interaction, client); + cmd.run(client, interaction, args, utils, data); + client.channels.cache.get(client.config.CMDLog).send({ + content: `\`${interaction.user.tag}(${interaction.user.id})\`\n has used \n**${cmd.name}**\n command in \n\`${interaction.guild.name}(${interaction.guild.id})\``, + }); + client.addcmdsused(interaction.user.id); + // await client.addXP(interaction.user.id, random, interaction); + new cooldown({ + User: interaction.user.id, + CMD: cmd.name, + Time: current_time, + Cooldown: cmd.timeout, + }).save(); + } + } + ); + } else { + if (data.Guild.Tips) utils.tips(interaction, client); + cmd.run(client, interaction, args, utils, data); + client.channels.cache.get(client.config.CMDLog).send({ + content: `\`${interaction.user.tag}(${interaction.user.id})\`\n has used \n**${cmd.name}**\n command in \n\`${interaction.guild.name}(${interaction.guild.id})\``, }); - if (data.Guild) { - if (data.Guild.Category) { - if (data.Guild.Category.includes(cmd.directory)) return; - } - if (data.Guild.Commands) { - if (data.Guild.Commands.includes(cmd.name)) return; - } + client.addcmdsused(interaction.user.id); + // await client.addXP(interaction.user.id, random, interaction); } - cmd.run(client, interaction, args, utils, codmclient); - client.channels.cache.get(client.CMDLog).send({ - content: `\`${interaction.user.tag}(${interaction.user.id})\`\n has used \n**${cmd.name}**\n command in \n\`${interaction.guild.name}(${interaction.guild.id})\``, - }); - client.addcmdsused(interaction.user.id); } catch (e) { - console.log(e); + const embed = new MessageEmbed() + .setTitle("Command Error") + .setDescription(`\`\`\`ini\n${e.stack}\`\`\``) + .setTimestamp() + .setColor(client.color) + .setFooter(client.user.username); + client.channels.cache + .get(client.config.ErrorLog) + .send({ embeds: [embed] }); + console.error(e); } } if (interaction.isContextMenu()) { @@ -100,20 +191,22 @@ client.on("interactionCreate", async interaction => { const ownercmd = client.hide.get(interaction.commandName); if (!ownercmd) return; const args = []; - for (let option of interaction.options.data) { + for (const option of interaction.options.data) { if (option.type === "SUB_COMMAND") { if (option.name) args.push(option.name); option.options?.forEach(x => { if (x.value) args.push(x.value); }); - } else if (option.value) args.push(option.value); + } else if (option.value) { + args.push(option.value); + } } interaction.member = interaction.guild.members.cache.get( interaction.user.id ); try { - ownercmd.run(client, interaction, args, utils, codmclient); - client.channels.cache.get(client.CMDLog).send({ + ownercmd.run(client, interaction, args, utils); + client.channels.cache.get(client.config.CMDLog).send({ content: `\`${interaction.user.tag}(${interaction.user.id})\`\n has used \n**${ownercmd.name}**\n command in \n\`${interaction.guild.name}(${interaction.guild.id})\``, }); client.addcmdsused(interaction.user.id); diff --git a/events/level.js b/events/level.js @@ -1,28 +0,0 @@ -const Levels = require("discord-xp"); -const client = require("../bot"); -require("dotenv").config(); -Levels.setURL(process.env.MONGO); -client.on("messageCreate", async message => { - if (!message.guild) return; - if (message.author.bot) return; - const guild = await client.data.getGuild(message.guild.id); - if (guild.Level == false) return; - const user = await client.data.getUser(message.author.id); - var max = 30; - if (user) { - if (user.Tier) { - if (user.Tier == 1) max = 120; - if (user.Tier == 2) max = 90; - if (user.Tier == 3) max = 60; - } - } - const randomAmountOfXp = client.function.rndint(10, max); - const hasLeveledUp = await Levels.appendXp( - message.author.id, - message.guild.id, - randomAmountOfXp - ); - if (hasLeveledUp) { - const user = await Levels.fetch(message.author.id, message.guild.id); - } -}); diff --git a/events/messageCreate.js b/events/messageCreate.js @@ -1,212 +1,162 @@ -const client = require("../bot"); -const codmclient = require("../client/CODMClient"); -const leven = require("leven"); +const client = require(".."); const { MessageEmbed } = require("discord.js"); -const cooldown = require("../models/cooldown"); const utils = require("../util/functions/function"); +const scams = require("../util/Data/scam.json"); client.on("messageCreate", async message => { - const p = await client.prefix(message); if (message.author.bot || !message.guild) return; + const data = {}; + const guildDB = await client.data.getGuild(message.guild.id); + if (!guildDB) return; + const userDB = await client.data.getUser(message.author?.id); + if (!userDB) return; + data.Guild = guildDB; + data.User = userDB; + if (!guildDB) await client.data.CreateGuild(message.guild.id); if (message.content.match(new RegExp(`^<@!?${client.user.id}>( |)$`))) { const _ = new MessageEmbed() - .setTitle(client.user.username) - .addField("Links:", client.cat) - .addField( - "Prefix/Usage", - `My prefix in **${message.guild.name}** is **${p}**\n\nRun \`${p}help\` to start using the bot` + .addFields( + { + name: "Prefix/Usage", + value: "Run `/help` to start using the bot", + inline: true, + }, + { + name: ":link: **Invite Me**", + value: `[Click Here](https://discord.com/api/oauth2/authorize?client_id=${client.user.id}&permissions=4231314550&scope=bot%20applications.commands)`, + inline: true, + }, + { + name: "<:support1:867093614403256350> **Need Help ?**", + value: `Join our [Support Server](https://discord.gg/SbQHChmGcp)`, + inline: true, + }, + { + name: "<:YouTube:841186450497339412> **Video Guide**", + value: `[How to use Slash Coammands](https://youtu.be/YSKDu1gKntY)`, + inline: true, + }, + { + name: `<:nyx_description:897379659665264650> Documentation`, + value: `[Click here](${client.docs})`, + inline: true, + }, + { + name: "<a:donate:896985486260846614> **Support us**", + value: `[KoFi](https://ko-fi.com/cathteam)`, + inline: true, + }, + { + name: "<a:booster:896527475063025704> **Premium**", + value: `You can either boost support server or subscribe to developer's team [Ko-Fi](https://ko-fi.com/cathteam) or gift a nitro to one of the developer team.`, + inline: false, + } ) + .setTitle(client.user.username) + .setThumbnail(client.user.displayAvatarURL()) .setURL(client.web) - .setFooter(`Made by ${client.author}`) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) .setTimestamp() .setColor(client.color); - const m = await message.reply({ embeds: [_] }); + const m = await message.reply({ + embeds: [_], + components: utils.buttons(client), + }); setTimeout(() => m.delete(), 15000); } - if (p) { - if (!message.content.toLowerCase().startsWith(p.toLowerCase())) return; - } - if (!message.member) - message.member = await message.guild.fetchMember(message); - const data = {}; - let guildDB = await client.data.getGuild(message.guild.id); - if (!guildDB) return; - let userDB = await client.data.getUser(message.author.id); - if (!userDB) return; - let userEconDB = await client.data.getUserEcon(message.author.id); - data.Guild = guildDB; - data.User = userDB; - data.UserEcon = userEconDB; - if (!guildDB) await client.data.CreateGuild(message.guild.id); - if (!userEconDB) await client.createProfile(message.author.id); - if (data.User) { - if (data.User.Blacklist) return; + if (data.User?.Blacklist) return; + if ( + scams.includes( + message.content + .toLowerCase() + .match( + /(https|http):\/\/([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+~-]*[\w.,@?^=%&:/~+~-])+/g + )?.[0] + .replace(/(https|http):\/\/+/g, "") + .match(/\s*([^)]+?)\s*\/+/g, "")[0] + .slice(0, -1) + ) + ) { + message.delete(); + message.channel.send({ + content: `**${message.author.tag}** has sent a scam link and I have deleted it to prevent spread`, + }); } - const [cmd, ...args] = message.content.slice(p.length).trim().split(/ +/g); - if (cmd.length == 0) return; - const command = - client.commands.get(cmd.toLowerCase()) || - client.commands.find(c => c.aliases?.includes(cmd.toLowerCase())); - if (!command) { - const best = [ - ...client.commands.map(cmd => cmd.name), - ...client.aliases.keys(), - ].filter(c => leven(cmd.toLowerCase(), c.toLowerCase()) < c.length * 0.4); - const dym = - best.length == 0 - ? "" - : best.length == 1 - ? `Do you mean this?\n**${best[0]}**` - : `Do you mean one of these?\n${best - .slice(0, 3) - .map(value => `**${value}**`) - .join("\n")}`; - if (dym === "") { - return; - } else { - const msg = await message.reply({ - embeds: [ - new MessageEmbed() - .setDescription(`Couldn't find that command.\n${dym}`) - .setTimestamp() - .setColor(client.color), - ], - }); - setTimeout(function () { - msg.delete(); - }, 10000); - } - } else { - if (command.Owner) { - if (!client.owners.includes(message.author.id)) return; - } - if (command.Premium) { - if (!data.User.Premium) { - return message.reply({ - embeds: [ - new MessageEmbed() - .setURL(client.web) - .setAuthor( - message.author.tag, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setColor(client.color) - .setDescription( - `You aren't a premium user. You can either boost support server or subscribe to developer's team [Ko-fi](https://ko-fi.com/cathteam) or gift a nitro to one of the developer team to be premium user` - ) - .setTimestamp() - .setFooter(`Made by ${client.author}`), - ], - }); - } - } - if (command.Level) { - if (!data.Guild.Level) return; - } - if (!message.guild.me.permissions.has(command.BotPerm || [])) - return message.reply({ - content: `You can't use this command. I need to have ${command.BotPerm} permission to use this command.`, - }); - if (data.Guild) { - if (data.Guild.Category) { - if (data.Guild.Category.includes(command.directory)) return; - } - if (data.Guild.Commands) { - if (data.Guild.Commands.includes(command.name)) return; - } - } - if (command.timeout) { - const current_time = Date.now(); - const cooldown_amount = command.timeout; - cooldown.findOne( - { User: message.author.id, CMD: command.name }, - async (err, data) => { - if (data) { - const expiration_time = data.Time + cooldown_amount; - if (current_time < expiration_time) { - utils.cooldown(data.Time, cooldown_amount, message); - } else { - await cooldown.findOneAndUpdate( - { User: message.author.id, CMD: command.name }, - { Time: current_time } - ); - command.run(client, message, args, utils, data, codmclient); - client.addcmdsused(message.author.id); - client.channels.cache.get(client.CMDLog).send({ - content: `\`${message.author.tag}(${message.author.id})\`\n has used \n**${command.name}**\n command in \n\`${message.guild.name}(${message.guild.id})\``, - }); - } - } else { - command.run(client, message, args, utils, data, codmclient); - client.channels.cache.get(client.CMDLog).send({ - content: `\`${message.author.tag}(${message.author.id})\`\n has used \n**${command.name}**\n command in \n\`${message.guild.name}(${message.guild.id})\``, - }); - client.addcmdsused(message.author.id); - new cooldown({ - User: message.author.id, - CMD: command.name, - Time: current_time, - Cooldown: command.timeout, - }).save(); - } + if ( + message?.content.startsWith(data.Guild.Prefix) || + message?.content.startsWith("C.") + ) { + const embed = new MessageEmbed() + .setTitle(`Message commands are now disabled`) + .setDescription( + `Please enable **Use Application Commands** in the channel settings to get access to slash commands, we have discontinued message commands\n\nUse \`/help\` to see more info` + ) + .setColor(client.color) + .setThumbnail(message.guild.iconURL({ dynamic: true })) + .addFields( + { + name: ":link: **Invite Me**", + value: `[Click Here](https://discord.com/api/oauth2/authorize?client_id=${client.user.id}&permissions=4231314550&scope=bot%20applications.commands)`, + inline: true, + }, + { + name: "<:support1:867093614403256350> **Need Help ?**", + value: `Join our [Support Server](https://discord.gg/SbQHChmGcp)`, + inline: true, + }, + { + name: "<:YouTube:841186450497339412> **Video Guide**", + value: `[How to use Slash Coammands](https://youtu.be/YSKDu1gKntY)`, + inline: true, + }, + { + name: `<:nyx_description:897379659665264650> Documentation`, + value: `[Click here](${client.docs})`, + inline: true, + }, + { + name: "<a:donate:896985486260846614> **Support us**", + value: `[KoFi](https://ko-fi.com/cathteam)`, + inline: true, + }, + { + name: "<a:booster:896527475063025704> **Premium**", + value: `You can either boost support server or subscribe to developer's team [Ko-Fi](https://ko-fi.com/cathteam) or gift a nitro to one of the developer team.`, + inline: false, } - ); - } else { - try { - command.run(client, message, args, utils, data, codmclient); - client.channels.cache.get(client.CMDLog).send({ - content: `\`${message.author.tag}(${message.author.id})\`\n has used \n**${command.name}**\n command in \n\`${message.guild.name}(${message.guild.id})\``, - }); - client.addcmdsused(message.author.id); - } catch (e) { - console.log(e); - } - } - } -}); -client.on("messageCreate", async message => { - const p = await client.prefix(message); - if (message.author.bot) return; - if (!message.content.startsWith(p)) return; - if (!message.guild) return; - if (!message.member) - message.member = await message.guild.fetchMember(message); - const [cmd, ...args] = message.content.slice(p.length).trim().split(/ +/g); - if (cmd.length == 0) return; - let path = client.hide.get(cmd); - if (path) { - if (!client.path.includes(message.guild.id)) return; - try { - path.run(client, message, args); - client.addcmdsused(message.author.id); - client.channels.cache.get(client.CMDLog).send({ - content: `\`${message.author.tag}(${message.author.id})\`\n has used \n**${path.name}**\n command in \n\`${message.guild.name}(${message.guild.id})\``, - }); - } catch (e) { - console.log(e); - } + ) + .setURL(client.web) + .setFooter( + `Requested by ${message.author.tag}`, + message.author.displayAvatarURL({ dynamic: true }) + ) + // .setThumbnail("../../util/assets/images/nyx_logo_transparent.webp") + .setTimestamp(); + message.reply({ + embeds: [embed], + components: utils.buttons(client), + }); } }); client.on("messageCreate", async message => { if (message.channel.type === "DM" && !message.author.bot) { - if (message.attachments) { - if (message.attachments && message.content) { - message.attachments.map(e => - client.channels.cache.get(client.DMLog).send({ - content: `\`${message.author.tag}(${message.author.id})\`: ${ - message.content + e.url - }`, - }) - ); - } else { - message.attachments.map(e => - client.channels.cache.get(client.DMLog).send({ - content: `\`${message.author.tag}(${message.author.id})\`: ${e.url}`, - }) - ); - } + if (message.attachments && message?.content) { + message.attachments.map(e => + client.channels.cache.get(client.config.DMLog).send({ + content: `\`${message.author.tag}(${message.author.id})\`: ${ + message.content + e.url + }`, + }) + ); } else { - client.channels.cache.get(client.DMLog).send({ + message.attachments.map(e => + client.channels.cache.get(client.config.DMLog).send({ + content: `\`${message.author.tag}(${message.author.id})\`: ${e.url}`, + }) + ); + } + if (message.content) { + client.channels.cache.get(client.config.DMLog).send({ content: `\`${message.author.tag}(${message.author.id})\`: ${message.content}`, }); } diff --git a/events/messageDelete.js b/events/messageDelete.js @@ -1,15 +1,14 @@ -const client = require("../bot"); +const client = require("../"); client.on("messageDelete", async message => { - let all = []; + const all = []; if (message.attachments) { const files = message.attachments.map(e => e); - for (var i = 0; i < files.length; i++) { - const file = files[i]; - all.push(file.url); + for (let i = 0; i < files.length; i++) { + all.push(files[i].url); } } if (message.embeds) { - for (var i = 0; i < message.embeds.length; i++) { + for (let i = 0; i < message.embeds.length; i++) { const files = message.embeds.map(e => e.image?.url); all.push(files); } diff --git a/events/messageUpdate.js b/events/messageUpdate.js @@ -1,6 +1,6 @@ -const client = require("../bot"); +const client = require(".."); client.on("messageUpdate", async (message, newMessage) => { - let all = []; + const all = []; if (message.attachments) { const files = message.attachments.map(e => e); for (var i = 0; i < files.length; i++) { diff --git a/events/raw.js b/events/raw.js @@ -1,2 +1,2 @@ -const client = require("../bot"); -client.on("raw", d => client.manager.updateVoiceState(d)); +const client = require(".."); +client.on("raw", c => client.manager.updateVoiceState(c)); diff --git a/events/ready.js b/events/ready.js @@ -1,4 +1,4 @@ -const client = require("../bot"); +const client = require(".."); const version = require("../package.json").version; const starboardClient = require("../client/StarboardClient"); const g = require("../models/guilds"); diff --git a/events/starboard.js b/events/starboard.js @@ -1,6 +1,6 @@ -const client = require("../bot"); +const client = require(".."); const starboardclient = require("../client/StarboardClient"); -client.on("messageReactionAdd", async (reaction, user) => { +client.on("messageReactionAdd", async reaction => { starboardclient.listener(reaction); }); client.on("messageReactionRemove", async reaction => { diff --git a/events/typingStart.js b/events/typingStart.js @@ -1,4 +1,4 @@ -const client = require("../bot"); +const client = require(".."); client.on("typingStart", async typing => { if (!typing.user) return; if (typing.user.bot) return; diff --git a/events/voiceStateUpdate.js b/events/voiceStateUpdate.js @@ -0,0 +1,63 @@ +const { MessageEmbed } = require("discord.js"); +const client = require(".."); +client.on("voiceStateUpdate", async (oldState, newState) => { + const guildId = newState.guild.id; + const player = client.manager.get(guildId); + if (!player || player.state !== "CONNECTED") return; + + const stateChange = {}; + if (oldState.channel === null && newState.channel !== null) { + stateChange.type = "JOIN"; + } + if (oldState.channel !== null && newState.channel === null) { + stateChange.type = "LEAVE"; + } + if (oldState.channel !== null && newState.channel !== null) { + stateChange.type = "MOVE"; + } + if (oldState.channel === null && newState.channel === null) return; + if (newState.serverMute == true && oldState.serverMute == false) { + return player.pause(true); + } + if (newState.serverMute == false && oldState.serverMute == true) { + return player.pause(false); + } + if (stateChange.type === "MOVE") { + if (oldState.channel.id === player.voiceChannel) stateChange.type = "LEAVE"; + if (newState.channel.id === player.voiceChannel) stateChange.type = "JOIN"; + } + if (stateChange.type === "JOIN") stateChange.channel = newState.channel; + if (stateChange.type === "LEAVE") stateChange.channel = oldState.channel; + if (!stateChange.channel || stateChange.channel.id !== player.voiceChannel) { + return; + } + stateChange.members = stateChange.channel.members.filter( + member => !member.user.bot + ); + switch (stateChange.type) { + case "JOIN": + if (stateChange.members.size === 1 && player.paused) { + const emb = new MessageEmbed() + .setAuthor(`Resumed`, client.user.displayAvatarURL()) + .setColor(client.config.color) + .setDescription( + `Resuming the player as somebody join the voice channel` + ); + client.channels.cache.get(player.textChannel).send({ embeds: [emb] }); + player.pause(false); + } + break; + case "LEAVE": + if (stateChange.members.size === 0 && !player.paused && player.playing) { + player.pause(true); + const emb = new MessageEmbed() + .setAuthor(`Paused`, client.user.displayAvatarURL()) + .setColor(client.config.color) + .setDescription( + `The player has been paused as nobody is in the voice channel` + ); + client.channels.cache.get(player.textChannel).send({ embeds: [emb] }); + } + break; + } +}); diff --git a/index.js b/index.js @@ -1,15 +1,7 @@ -const { ShardingManager } = require("discord.js"); -require("dotenv").config(); -const manager = new ShardingManager(`./bot.js`, { - token: process.env.TOKEN, - totalShards: "auto", +const NYX = require("./client/NYX"); +const client = new NYX(); +module.exports = client; +process.on("unhandledRejection", err => { + console.log(err); }); - -manager.on(`shardCreate`, shard => { - console.log( - `[${new Date().toString().split(" ", 5).join(" ")}] Spawned shard #${ - shard.id - }` - ); -}); -manager.spawn({ delay: 5500, timeout: 30000 }); +client.start(); diff --git a/models/econ.js b/models/econ.js @@ -1,7 +1,7 @@ -const { Schema, model } = require("mongoose"); -module.exports = model( +const mongoose = require("mongoose"); +module.exports = mongoose.model( "economy", - new Schema({ + new mongoose.Schema({ User: { type: String, required: true, @@ -22,5 +22,21 @@ module.exports = model( type: Number, default: 0, }, + Inventory: { + NA45: { type: Number, default: 0 }, + Deagle: { type: Number, default: 0 }, + MantaRay: { type: Number, default: 0 }, + Alias: { type: Number, default: 0 }, + Scylla: { type: Number, default: 0 }, + UrbanTracker: { type: Number, default: 0 }, + EpicXPCard: { type: Number, default: 0 }, + }, + Gun: { + Name: { type: String, default: "" }, + Rank: { type: String, default: "Iron" }, + Kills: { type: Number, default: 0 }, + XP: { type: Number, default: 0 }, + Level: { type: Number, default: 1 }, + }, }) ); diff --git a/models/guilds.js b/models/guilds.js @@ -1,5 +1,5 @@ const mongoose = require("mongoose"); -const prefix = require("../config.json").prefix; +const prefix = require("../config").prefix; module.exports = mongoose.model( "guild", new mongoose.Schema({ @@ -51,5 +51,13 @@ module.exports = mongoose.model( type: Boolean, default: false, }, + NSFW: { + type: Boolean, + default: false, + }, + Tips: { + type: Boolean, + default: true, + }, }) ); diff --git a/models/weapons.js b/models/weapons.js @@ -0,0 +1,30 @@ +const mongoose = require("mongoose"); +module.exports = mongoose.model( + "weapons", + new mongoose.Schema({ + Categories: { + type: Array, + default: [], + }, + Primary: { + type: Array, + default: [], + }, + Secondary: { + type: Array, + default: [], + }, + Equipment: { + type: Array, + default: [], + }, + OperatorSkill: { + type: Array, + default: [], + }, + Perk: { + type: Array, + default: [], + }, + }) +); diff --git a/package.json b/package.json @@ -1,67 +1,54 @@ { "name": "cath.exe", - "version": "3.0.0", - "description": "cath.exe bot created by Night", + "version": "3.4.0", + "description": "NYX bot created by Team NYX", "engines": { "node": "*", "npm": "*" }, "main": "index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", "dev": "nodemon .", "start": "node .", + "lint": "eslint .", "node-update": "npm i --save-dev node@16 && npm config set prefix=$(pwd)/node_modules/node && export PATH=$(pwd)/node_modules/node/bin:$PATH", "node-clean": "rm -rf node_modules && rm package-lock.json && npm cache clear --force && npm cache clean --force && npm i", - "node-update-then-clean": "npm run node-update && npm run node-clean-cache", - "canvas": "npm uninstall canvas && npm i canvas", - "all": "npm run node-update && npm run node-clean && npm uninstall canvas && npm i canvas && node ." + "all": "npm run node-update && npm run node-clean" }, "repository": { "type": "git", - "url": "git+https://github.com/night0721/cath.git" + "url": "git+https://github.com/night0721/cath.exe.git" }, "keywords": [ - "cat", - "cath", + "bot", + "nyx", "codm", "discord", - "discord bot" + "gunsmith" ], "author": "ลƒ1ght#0001", - "license": "Apache-2.0", + "license": "CC-BY-NC-SA-4.0", "bugs": { - "url": "https://github.com/night0721/cath/issues" + "url": "https://github.com/night0721/cath.exe/issues" + }, + "homepage": "https://github.com/night0721/cath.exe#readme", + "funding": { + "type": "individual", + "url": "https://ko-fi.com/cathteam" }, - "homepage": "https://github.com/night0721/cath#readme", "devDependencies": { - "eslint": "^7.30.0", - "eslint-config-google": "^0.14.0", - "jshint": "^2.13.0", - "node": "^16.9.1", - "prettier": "^2.4.1" + "node": "^17.1.0" }, "dependencies": { - "axios": "^0.21.4", - "canvacord": "^5.2.3", - "canvas": "^2.8.0", - "cath": "^1.2.2", - "discord-giveaways": "^5.0.1", - "discord-xp": "^1.1.16", - "discord.js": "^13.1.0", + "axios": "^0.24.0", + "cath": "^1.4.6", + "discord.js": "^13.3.1", "dotenv": "^10.0.0", "erela.js": "^2.3.3", "erela.js-spotify": "^1.2.0", - "figlet": "^1.5.2", "goosecache": "^9.0.14", - "leven": "^3.1.0", - "lyrics-finder": "^21.7.0", "moment": "^2.29.1", - "mongoose": "^5.13.9", - "quickchart-js": "^1.4.2", - "reconlx": "^2.4.3", - "soundcloud-downloader": "^1.0.0", - "string-toolkit": "^1.5.0", - "weky": "^3.1.8" + "mongoose": "^5.13.13", + "quickchart-js": "^1.4.2" } } diff --git a/unused/commands/Config/choices.js b/unused/commands/Config/choices.js @@ -1,123 +1,125 @@ const schema = require("../../models/modmail"); module.exports = { - name: "choices", - UserPerm: "ADMINISTRATOR", - description: "Add choices for modmail in a server", - usage: "(add/list/rmv) (Emoji) {Text}", - category: "Config", - run: async (client, message, args) => { - schema.findOne({ Guild: message.guild.id }, async (err, data) => { - if (data) return; - else { - new schema({ - Guild: message.guild.id, - }).save(); - } - }); - if (args[0].toLowerCase() === "add") { - if (!args[1]) return client.err(message, "Config", "choices", 11); - if (!args[2]) return client.err(message, "Config", "choices", 12); - if (!args.slice(2).join(" ").length > 100) - return client.err(message, "Config", "choices", 13); - const config = await schema.findOne({ Guild: message.guild.id }); - if ( - !config || + name: "choices", + UserPerm: "ADMINISTRATOR", + description: "Add choices for modmail in a server", + usage: "(add/list/rmv) (Emoji) {Text}", + category: "Config", + run: async (client, message, args) => { + schema.findOne({ Guild: message.guild.id }, async (err, data) => { + if (data) {return;} + else { + new schema({ + Guild: message.guild.id, + }).save(); + } + }); + if (args[0].toLowerCase() === "add") { + if (!args[1]) return client.err(message, "Config", "choices", 11); + if (!args[2]) return client.err(message, "Config", "choices", 12); + if (!args.slice(2).join(" ").length > 100) {return client.err(message, "Config", "choices", 13);} + const config = await schema.findOne({ Guild: message.guild.id }); + if ( + !config || !config.Choices || !Object.entries(config.Choices).length - ) { - const choices = { - 0: { - emoji: args[1], - text: args.slice(2).join(" "), - }, - }; - schema.findOne({ Guild: message.guild.id }, async (err, data) => { - if (data) { - if (data.Choices) { - data.Choices = choices; - await schema.findOneAndUpdate({ Guild: message.guild.id }, data); - } else if (data.Guild) { - data.Choices = choices; - await schema.findOneAndUpdate({ Guild: message.guild.id }, data); - } else { - new schema({ - Guild: message.guild.id, - Choices: choices, - }).save(); - } - } - }); - return message.channel.send({ - content: `${message.author.tag} has added ${args[1]} as a modmail choice`, - }); - } else { - const choices = Object.entries(config.Choices); - if (choices.length >= 5) - return client.err(message, "Config", "choices", 14); - const last = choices[choices.length - 1]; - const parsed = config.Choices; - parsed[(parseInt(last[0]) + 1).toString()] = { - emoji: args[1], - text: args.slice(2).join(" "), - }; - schema.findOne({ Guild: message.guild.id }, async (err, data) => { - if (data) { - data.Choices = parsed; - await schema.findOneAndUpdate({ Guild: message.guild.id }, data); - } else { - new schema({ - Guild: message.guild.id, - Choices: parsed, - }).save(); - } - }); - return message.channel.send({ - content: `${message.author.tag} has added ${args[1]} as a modmail choice`, - }); - } - } - if (args[0].toLowerCase() === "list") { - const Data = await schema.findOne({ Guild: message.guild.id }); - if (!Data || !Data.Choices || !Object.entries(Data.Choices).length) - return client.err(message, "Config", "choices", 10); - else - return message.channel.send( - Object.entries(Data.Choices) - .map(value => { - return `${value[1].emoji}: ${value[1].text}`; - }) - .join("\n") - ); - } - if (args[0].toLowerCase() === "rmv") { - if (!args[1]) return client.err(message, "Config", "choices", 11); - schema.findOne({ Guild: message.guild.id }, async (err, data) => { - if (!data || !data.Choices || !Object.entries(data.Choices).length) - return client.err(message, "Config", "choices", 10); - const choices = Object.entries(data.Choices); - const found = choices.find(value => value[1].emoji == args[1]); - if (!found) return client.err(message, "Config", "choices", 15); - const filtered = choices.filter(value => value[1].emoji != args[1]); - const parsed = {}; - filtered.map(value => { - parsed[value[0]] = { - emoji: value[1].emoji, - text: value[1].text, - }; - }); - if (data) { - data.Choices = parsed; - await schema.findOneAndUpdate({ Guild: message.guild.id }, data); - } else { - new schema({ - Guild: message.guild.id, - Choices: parsed, - }).save(); - } - }); - return message.channel.send({ - content: `${args[1]} is removed from choices.`, - }); - } - }, + ) { + const choices = { + 0: { + emoji: args[1], + text: args.slice(2).join(" "), + }, + }; + schema.findOne({ Guild: message.guild.id }, async (err, data) => { + if (data) { + if (data.Choices) { + data.Choices = choices; + await schema.findOneAndUpdate({ Guild: message.guild.id }, data); + } + else if (data.Guild) { + data.Choices = choices; + await schema.findOneAndUpdate({ Guild: message.guild.id }, data); + } + else { + new schema({ + Guild: message.guild.id, + Choices: choices, + }).save(); + } + } + }); + return message.channel.send({ + content: `${message.author.tag} has added ${args[1]} as a modmail choice`, + }); + } + else { + const choices = Object.entries(config.Choices); + if (choices.length >= 5) {return client.err(message, "Config", "choices", 14);} + const last = choices[choices.length - 1]; + const parsed = config.Choices; + parsed[(parseInt(last[0]) + 1).toString()] = { + emoji: args[1], + text: args.slice(2).join(" "), + }; + schema.findOne({ Guild: message.guild.id }, async (err, data) => { + if (data) { + data.Choices = parsed; + await schema.findOneAndUpdate({ Guild: message.guild.id }, data); + } + else { + new schema({ + Guild: message.guild.id, + Choices: parsed, + }).save(); + } + }); + return message.channel.send({ + content: `${message.author.tag} has added ${args[1]} as a modmail choice`, + }); + } + } + if (args[0].toLowerCase() === "list") { + const Data = await schema.findOne({ Guild: message.guild.id }); + if (!Data || !Data.Choices || !Object.entries(Data.Choices).length) {return client.err(message, "Config", "choices", 10);} + else { + return message.channel.send( + Object.entries(Data.Choices) + .map(value => { + return `${value[1].emoji}: ${value[1].text}`; + }) + .join("\n"), + ); + } + } + if (args[0].toLowerCase() === "rmv") { + if (!args[1]) return client.err(message, "Config", "choices", 11); + schema.findOne({ Guild: message.guild.id }, async (err, data) => { + if (!data || !data.Choices || !Object.entries(data.Choices).length) {return client.err(message, "Config", "choices", 10);} + const choices = Object.entries(data.Choices); + const found = choices.find(value => value[1].emoji == args[1]); + if (!found) return client.err(message, "Config", "choices", 15); + const filtered = choices.filter(value => value[1].emoji != args[1]); + const parsed = {}; + filtered.map(value => { + parsed[value[0]] = { + emoji: value[1].emoji, + text: value[1].text, + }; + }); + if (data) { + data.Choices = parsed; + await schema.findOneAndUpdate({ Guild: message.guild.id }, data); + } + else { + new schema({ + Guild: message.guild.id, + Choices: parsed, + }).save(); + } + }); + return message.channel.send({ + content: `${args[1]} is removed from choices.`, + }); + } + }, }; diff --git a/unused/commands/Config/cmd-list.js b/unused/commands/Config/cmd-list.js @@ -2,19 +2,19 @@ const schema = require("../../models/custom-commands"); const { MessageEmbed } = require("discord.js"); module.exports = { - name: "cc-list", - UserPerm: "ADMINISTRATOR", - description: "Check the custom commands in a server", - category: "Config", - run: async (client, message, args) => { - const data = await schema.find({ Guild: message.guild.id }); - if (!!data === false) return client.err(messgae, "Config", "cmd-list", 10); - message.channel.send( - new MessageEmbed() - .setColor(client.color) - .setDescription( - data.map((cmd, i) => `${i + 1}: ${cmd.Command}`).join("\n") - ) - ); - }, + name: "cc-list", + UserPerm: "ADMINISTRATOR", + description: "Check the custom commands in a server", + category: "Config", + run: async (client, message, args) => { + const data = await schema.find({ Guild: message.guild.id }); + if (!!data === false) return client.err(messgae, "Config", "cmd-list", 10); + message.channel.send( + new MessageEmbed() + .setColor(client.color) + .setDescription( + data.map((cmd, i) => `${i + 1}: ${cmd.Command}`).join("\n"), + ), + ); + }, }; diff --git a/unused/commands/Config/create.js b/unused/commands/Config/create.js @@ -2,428 +2,430 @@ const Discord = require("discord.js"); const db = require("../../models/custom-commands"); module.exports = { - name: "cc-create", - UserPerm: "ADMINISTRATOR", - description: "Crate custom commands for a server", - category: "Config", - run: async (client, message, args) => { - message.delete(); - message.channel.send( - new Discord.MessageEmbed() - .setTitle(`Setup | 1/3`) - .setDescription( - "What is the name of the command?\nYou can cancel the setup at any time by sending `cancel`." - ) - .setColor(client.color) - ); - await startMessageCollectors(client, message, args); - function startMessageCollectors(client, message, args) { - let nameFilter = m => m.author.id === message.author.id; - let nameCollector = new Discord.MessageCollector( - message.channel, - nameFilter, - { max: 999 } - ); - nameCollector.on("collect", async msg => { - let name = msg.content.toLowerCase(); - const data = await db.findOne({ - Guild: message.guild.id, - Command: name, - }); - if (data) { - nameCollector.stop(); - return message.reply("This command has already exist."); - } - if (name === "cancel") { - msg.channel.send("The setup has been cancelled."); - db.findOneAndDelete({ Guild: message.guild.id, Command: name }); - nameCollector.stop(); - return; - } - if (!name) { - await msg.channel.send("You don't specify a name. Cancelled setup."); - nameCollector.stop(); - return; - } else { - const newDB = new db({ - Guild: message.guild.id, - Command: name, - }); - await newDB.save(); - console.log(newDB); - msg.channel.send( - new Discord.MessageEmbed() - .setTitle(`Setup | 2/3`) - .setDescription( - `The command name will be **${name}**.\nWhat is the response for the command? You can have mutliple response by joning them with differnt lines.` - ) - .setColor(client.color) - ); - nameCollector.stop(); - } - let responseFilter = m => m.author.id === message.author.id; - let responseCollector = new Discord.MessageCollector( - message.channel, - responseFilter, - { max: 999 } - ); - responseCollector.on("collect", async msg => { - let response = msg.content.split("\n"); - console.log(`Response: ${response}`); + name: "cc-create", + UserPerm: "ADMINISTRATOR", + description: "Crate custom commands for a server", + category: "Config", + run: async (client, message, args) => { + message.delete(); + message.channel.send( + new Discord.MessageEmbed() + .setTitle(`Setup | 1/3`) + .setDescription( + "What is the name of the command?\nYou can cancel the setup at any time by sending `cancel`.", + ) + .setColor(client.color), + ); + await startMessageCollectors(client, message, args); + function startMessageCollectors(client, message, args) { + const nameFilter = m => m.author.id === message.author.id; + const nameCollector = new Discord.MessageCollector( + message.channel, + nameFilter, + { max: 999 }, + ); + nameCollector.on("collect", async msg => { + const name = msg.content.toLowerCase(); + const data = await db.findOne({ + Guild: message.guild.id, + Command: name, + }); + if (data) { + nameCollector.stop(); + return message.reply("This command has already exist."); + } + if (name === "cancel") { + msg.channel.send("The setup has been cancelled."); + db.findOneAndDelete({ Guild: message.guild.id, Command: name }); + nameCollector.stop(); + return; + } + if (!name) { + await msg.channel.send("You don't specify a name. Cancelled setup."); + nameCollector.stop(); + return; + } + else { + const newDB = new db({ + Guild: message.guild.id, + Command: name, + }); + await newDB.save(); + console.log(newDB); + msg.channel.send( + new Discord.MessageEmbed() + .setTitle(`Setup | 2/3`) + .setDescription( + `The command name will be **${name}**.\nWhat is the response for the command? You can have mutliple response by joning them with differnt lines.`, + ) + .setColor(client.color), + ); + nameCollector.stop(); + } + const responseFilter = m => m.author.id === message.author.id; + const responseCollector = new Discord.MessageCollector( + message.channel, + responseFilter, + { max: 999 }, + ); + responseCollector.on("collect", async msg => { + const response = msg.content.split("\n"); + console.log(`Response: ${response}`); - if (msg.content.toLowerCase() === "cancel") { - msg.channel.send("The setup has been cancelled."); - responseCollector.stop(); - return; - } - if (!response) { - msg.channel.send(`You didn't specify a response. Setup cancelled.`); - responseCollector.stop(); - } - if (response.length > 1) { - responseCollector.stop(); - await db.findOne( - { Guild: message.guild.id, Command: name }, - async (err, data) => { - if (data) { - data.Response = response; - await db.findOneAndUpdate( - { Guild: message.guild.id, Command: name }, - data - ); - console.log(data); - } - } - ); - msg.channel.send( - new Discord.MessageEmbed() - .setTitle(`Setup | 3/4`) - .setColor(client.color) - .setDescription( - `Ok so there will be ${response.length} responses. Do you want the response be randomized?\n\`Type yes or no\` \nIf you choose no, accumlative responses may let the command can\'t be sent out.` - ) - ); - let randomFilter = m => m.author.id === message.author.id; - let randomCollector = new Discord.MessageCollector( - message.channel, - randomFilter, - { max: 999 } - ); - randomCollector.on("collect", async msg => { - let maybe; - if (msg.content.toLowerCase() === "yes") { - msg.channel.send( - new Discord.MessageEmbed() - .setColor(client.color) - .setTitle(`Setup | 4/4`) - .setDescription( - `The responses will be randomized. Do you want to have delete command usage? \`Type yes or no\`` - ) - ); - randomCollector.stop(); - maybe = true; - await db.findOne( - { - Guild: message.guild.id, - Response: response, - Command: name, - }, - async (err, data) => { - if (data) { - data.Random = maybe; - await db.findOneAndUpdate( - { - Guild: message.guild.id, - Command: name, - Response: response, - }, - data - ); - console.log(data); - } - } - ); - console.log(`Random: ${maybe}`); - let deleteeeFilter = m => m.author.id === message.author.id; - let deleteeeCollector = new Discord.MessageCollector( - message.channel, - deleteeeFilter, - { max: 999 } - ); - deleteeeCollector.on("collect", async msg => { - let idkwor; - if (msg.content.toLowerCase() === "yes") { - deleteeeCollector.stop(); - idkwor = true; - await db.findOne( - { - Guild: message.guild.id, - Command: name, - Response: response, - Random: maybe, - }, - async (err, data) => { - if (data) { - data.Delete = idkwor; - await db.findOneAndUpdate( - { - Guild: message.guild.id, - Command: name, - Response: response, - Random: maybe, - }, - data - ); - console.log(data); - msg.reply( - `Saved **${data.Command}** as a custom command` - ); - } - } - ); - console.log(`Usage Delete: ${idkwor}`); - } - if (msg.content.toLowerCase() === "no") { - deleteeeCollector.stop(); - idkwor = false; - await db.findOne( - { - Guild: message.guild.id, - Command: name, - Response: response, - Random: maybe, - }, - async (err, data) => { - if (data) { - data.Delete = idkwor; - await db.findOneAndUpdate( - { - Guild: message.guild.id, - Command: name, - Response: response, - Random: maybe, - }, - data - ); - console.log(data); - msg.reply( - `Saved **${data.Command}** as a custom command` - ); - } - } - ); - } - if (msg.content.toLowerCase() === "cancel") { - msg.channel.send("The setup has been cancelled."); - deleteeeCollector.stop(); - return; - } - }); - } - if (msg.content.toLowerCase() === "no") { - msg.channel.send( - new Discord.MessageEmbed() - .setColor(client.color) - .setTitle(`Setup | 4/4`) - .setDescription( - `The responses won't be randomized. Do you want to have delete command usage? \`Type yes or no\`` - ) - ); - randomCollector.stop(); - maybe = false; - await db.findOne( - { - Guild: message.guild.id, - Command: name, - Response: response, - }, - async (err, data) => { - if (data) { - data.Random = maybe; - await db.findOneAndUpdate( - { - Guild: message.guild.id, - Command: name, - Response: response, - }, - data - ); - console.log(data); - } - } - ); - let deleteeFilter = m => m.author.id === message.author.id; - let deleteeCollector = new Discord.MessageCollector( - message.channel, - deleteeFilter, - { max: 999 } - ); - deleteeCollector.on("collect", async msg => { - let idkwor; - if (msg.content.toLowerCase() === "yes") { - deleteeCollector.stop(); - idkwor = true; - await db.findOne( - { - Guild: message.guild.id, - Command: name, - Response: response, - }, - async (err, data) => { - if (data) { - data.Delete = idkwor; - await db.findOneAndUpdate( - { - Guild: message.guild.id, - Command: name, - Response: response, - Random: maybe, - }, - data - ); - msg.reply( - `Saved **${data.Command}** as a custom command` - ); - } - } - ); - console.log(`Usage Delete: ${idkwor}`); - } - if (msg.content.toLowerCase() === "no") { - deleteeCollector.stop(); - idkwor = false; - await db.findOne( - { - Guild: message.guild.id, - Command: name, - Response: response, - Random: maybe, - }, - async (err, data) => { - if (data) { - data.Delete = idkwor; - await db.findOneAndUpdate( - { - Guild: message.guild.id, - Command: name, - Response: response, - }, - data - ); - msg.reply( - `Saved **${data.Command}** as a custom command` - ); - } - } - ); - } - if (msg.content.toLowerCase() === "cancel") { - msg.channel.send("The setup has been cancelled."); - deleteeCollector.stop(); - return; - } - }); - } - if (msg.content.toLowerCase() === "cancel") { - msg.channel.send("The setup has been cancelled."); - randomCollector.stop(); - return; - } - }); - } else { - await db.findOne( - { Guild: message.guild.id, Command: name }, - async (err, data) => { - if (data) { - data.Response = response; - await db.findOneAndUpdate( - { Guild: message.guild.id, Command: name }, - data - ); - console.log(data); - } - } - ); - msg.channel.send( - new Discord.MessageEmbed() - .setTitle(`Setup | 3/3`) - .setColor(client.color) - .setDescription( - `The response is \n**${response}**\nDo you to want have delete command usage?` - ) - ); - responseCollector.stop(); - let deleteFilter = m => m.author.id === message.author.id; - let deleteCollector = new Discord.MessageCollector( - message.channel, - deleteFilter, - { max: 999 } - ); - deleteCollector.on("collect", async msg => { - let idkwor; - if (msg.content.toLowerCase() === "yes") { - deleteCollector.stop(); - idkwor = true; - await db.findOne( - { - Guild: message.guild.id, - Command: name, - Response: response, - }, - async (err, data) => { - if (data) { - data.Delete = idkwor; - await db.findOneAndUpdate( - { - Guild: message.guild.id, - Command: name, - Response: response, - }, - data - ); - msg.reply( - `Saved **${data.Command}** as a custom command` - ); - } - } - ); - } - if (msg.content.toLowerCase() === "no") { - deleteCollector.stop(); - idkwor = false; - await db.findOne( - { - Guild: message.guild.id, - Command: name, - Response: response, - }, - async (err, data) => { - if (data) { - data.Delete = idkwor; - await db.findOneAndUpdate( - { - Guild: message.guild.id, - Command: name, - Response: response, - }, - data - ); - msg.reply( - `Saved **${data.Command}** as a custom command` - ); - } - } - ); - } - if (msg.content.toLowerCase() === "cancel") { - msg.channel.send("The setup has been cancelled."); - deleteCollector.stop(); - return; - } - }); - } - }); - }); - } - }, + if (msg.content.toLowerCase() === "cancel") { + msg.channel.send("The setup has been cancelled."); + responseCollector.stop(); + return; + } + if (!response) { + msg.channel.send(`You didn't specify a response. Setup cancelled.`); + responseCollector.stop(); + } + if (response.length > 1) { + responseCollector.stop(); + await db.findOne( + { Guild: message.guild.id, Command: name }, + async (err, data) => { + if (data) { + data.Response = response; + await db.findOneAndUpdate( + { Guild: message.guild.id, Command: name }, + data, + ); + console.log(data); + } + }, + ); + msg.channel.send( + new Discord.MessageEmbed() + .setTitle(`Setup | 3/4`) + .setColor(client.color) + .setDescription( + `Ok so there will be ${response.length} responses. Do you want the response be randomized?\n\`Type yes or no\` \nIf you choose no, accumlative responses may let the command can\'t be sent out.`, + ), + ); + const randomFilter = m => m.author.id === message.author.id; + const randomCollector = new Discord.MessageCollector( + message.channel, + randomFilter, + { max: 999 }, + ); + randomCollector.on("collect", async msg => { + let maybe; + if (msg.content.toLowerCase() === "yes") { + msg.channel.send( + new Discord.MessageEmbed() + .setColor(client.color) + .setTitle(`Setup | 4/4`) + .setDescription( + `The responses will be randomized. Do you want to have delete command usage? \`Type yes or no\``, + ), + ); + randomCollector.stop(); + maybe = true; + await db.findOne( + { + Guild: message.guild.id, + Response: response, + Command: name, + }, + async (err, data) => { + if (data) { + data.Random = maybe; + await db.findOneAndUpdate( + { + Guild: message.guild.id, + Command: name, + Response: response, + }, + data, + ); + console.log(data); + } + }, + ); + console.log(`Random: ${maybe}`); + const deleteeeFilter = m => m.author.id === message.author.id; + const deleteeeCollector = new Discord.MessageCollector( + message.channel, + deleteeeFilter, + { max: 999 }, + ); + deleteeeCollector.on("collect", async msg => { + let idkwor; + if (msg.content.toLowerCase() === "yes") { + deleteeeCollector.stop(); + idkwor = true; + await db.findOne( + { + Guild: message.guild.id, + Command: name, + Response: response, + Random: maybe, + }, + async (err, data) => { + if (data) { + data.Delete = idkwor; + await db.findOneAndUpdate( + { + Guild: message.guild.id, + Command: name, + Response: response, + Random: maybe, + }, + data, + ); + console.log(data); + msg.reply( + `Saved **${data.Command}** as a custom command`, + ); + } + }, + ); + console.log(`Usage Delete: ${idkwor}`); + } + if (msg.content.toLowerCase() === "no") { + deleteeeCollector.stop(); + idkwor = false; + await db.findOne( + { + Guild: message.guild.id, + Command: name, + Response: response, + Random: maybe, + }, + async (err, data) => { + if (data) { + data.Delete = idkwor; + await db.findOneAndUpdate( + { + Guild: message.guild.id, + Command: name, + Response: response, + Random: maybe, + }, + data, + ); + console.log(data); + msg.reply( + `Saved **${data.Command}** as a custom command`, + ); + } + }, + ); + } + if (msg.content.toLowerCase() === "cancel") { + msg.channel.send("The setup has been cancelled."); + deleteeeCollector.stop(); + return; + } + }); + } + if (msg.content.toLowerCase() === "no") { + msg.channel.send( + new Discord.MessageEmbed() + .setColor(client.color) + .setTitle(`Setup | 4/4`) + .setDescription( + `The responses won't be randomized. Do you want to have delete command usage? \`Type yes or no\``, + ), + ); + randomCollector.stop(); + maybe = false; + await db.findOne( + { + Guild: message.guild.id, + Command: name, + Response: response, + }, + async (err, data) => { + if (data) { + data.Random = maybe; + await db.findOneAndUpdate( + { + Guild: message.guild.id, + Command: name, + Response: response, + }, + data, + ); + console.log(data); + } + }, + ); + const deleteeFilter = m => m.author.id === message.author.id; + const deleteeCollector = new Discord.MessageCollector( + message.channel, + deleteeFilter, + { max: 999 }, + ); + deleteeCollector.on("collect", async msg => { + let idkwor; + if (msg.content.toLowerCase() === "yes") { + deleteeCollector.stop(); + idkwor = true; + await db.findOne( + { + Guild: message.guild.id, + Command: name, + Response: response, + }, + async (err, data) => { + if (data) { + data.Delete = idkwor; + await db.findOneAndUpdate( + { + Guild: message.guild.id, + Command: name, + Response: response, + Random: maybe, + }, + data, + ); + msg.reply( + `Saved **${data.Command}** as a custom command`, + ); + } + }, + ); + console.log(`Usage Delete: ${idkwor}`); + } + if (msg.content.toLowerCase() === "no") { + deleteeCollector.stop(); + idkwor = false; + await db.findOne( + { + Guild: message.guild.id, + Command: name, + Response: response, + Random: maybe, + }, + async (err, data) => { + if (data) { + data.Delete = idkwor; + await db.findOneAndUpdate( + { + Guild: message.guild.id, + Command: name, + Response: response, + }, + data, + ); + msg.reply( + `Saved **${data.Command}** as a custom command`, + ); + } + }, + ); + } + if (msg.content.toLowerCase() === "cancel") { + msg.channel.send("The setup has been cancelled."); + deleteeCollector.stop(); + return; + } + }); + } + if (msg.content.toLowerCase() === "cancel") { + msg.channel.send("The setup has been cancelled."); + randomCollector.stop(); + return; + } + }); + } + else { + await db.findOne( + { Guild: message.guild.id, Command: name }, + async (err, data) => { + if (data) { + data.Response = response; + await db.findOneAndUpdate( + { Guild: message.guild.id, Command: name }, + data, + ); + console.log(data); + } + }, + ); + msg.channel.send( + new Discord.MessageEmbed() + .setTitle(`Setup | 3/3`) + .setColor(client.color) + .setDescription( + `The response is \n**${response}**\nDo you to want have delete command usage?`, + ), + ); + responseCollector.stop(); + const deleteFilter = m => m.author.id === message.author.id; + const deleteCollector = new Discord.MessageCollector( + message.channel, + deleteFilter, + { max: 999 }, + ); + deleteCollector.on("collect", async msg => { + let idkwor; + if (msg.content.toLowerCase() === "yes") { + deleteCollector.stop(); + idkwor = true; + await db.findOne( + { + Guild: message.guild.id, + Command: name, + Response: response, + }, + async (err, data) => { + if (data) { + data.Delete = idkwor; + await db.findOneAndUpdate( + { + Guild: message.guild.id, + Command: name, + Response: response, + }, + data, + ); + msg.reply( + `Saved **${data.Command}** as a custom command`, + ); + } + }, + ); + } + if (msg.content.toLowerCase() === "no") { + deleteCollector.stop(); + idkwor = false; + await db.findOne( + { + Guild: message.guild.id, + Command: name, + Response: response, + }, + async (err, data) => { + if (data) { + data.Delete = idkwor; + await db.findOneAndUpdate( + { + Guild: message.guild.id, + Command: name, + Response: response, + }, + data, + ); + msg.reply( + `Saved **${data.Command}** as a custom command`, + ); + } + }, + ); + } + if (msg.content.toLowerCase() === "cancel") { + msg.channel.send("The setup has been cancelled."); + deleteCollector.stop(); + return; + } + }); + } + }); + }); + } + }, }; diff --git a/unused/commands/Config/delete.js b/unused/commands/Config/delete.js @@ -1,20 +1,20 @@ const schema = require("../../models/custom-commands"); module.exports = { - name: "cc-delete", - UserPerm: "ADMINISTRATOR", - usage: "(command)", - description: "Delete a custom command for a server", - category: "Config", - run: async (client, message, args) => { - const name = args[0]; - if (!name) return client.err(message, "Config", "cc-delete", 47); - const data = await schema.findOne({ - Guild: message.guild.id, - Command: name, - }); - if (!data) return client.err(message, "Config", "cc-delete", 404); - await schema.findOneAndDelete({ Guild: message.guild.id, Command: name }); - message.reply(`Removed **${name}** from custom commands.`); - }, + name: "cc-delete", + UserPerm: "ADMINISTRATOR", + usage: "(command)", + description: "Delete a custom command for a server", + category: "Config", + run: async (client, message, args) => { + const name = args[0]; + if (!name) return client.err(message, "Config", "cc-delete", 47); + const data = await schema.findOne({ + Guild: message.guild.id, + Command: name, + }); + if (!data) return client.err(message, "Config", "cc-delete", 404); + await schema.findOneAndDelete({ Guild: message.guild.id, Command: name }); + message.reply(`Removed **${name}** from custom commands.`); + }, }; diff --git a/unused/commands/Config/migrate.js b/unused/commands/Config/migrate.js @@ -1,21 +1,22 @@ const { Client, Message, MessageEmbed } = require("discord.js"); module.exports = { - name: "migrate", - usage: "(Server ID)", - description: "Migrate all emojis from a server", - category: "Config", - run: async (client, message, args) => { - try { - const oldGuild = args[0]; - if (!oldGuild) return; - old = client.guilds.cache.get(oldGuild); - if (!old) return client.err(message, "Config", "migrate", 404); - await old.emojis.cache.map(async e => { - await message.guild.emojis.create(e.url, e.name); - }); - return message.channel.send(`Created Emotes.`); - } catch (e) { - console.log(e); - } - }, + name: "migrate", + usage: "(Server ID)", + description: "Migrate all emojis from a server", + category: "Config", + run: async (client, message, args) => { + try { + const oldGuild = args[0]; + if (!oldGuild) return; + old = client.guilds.cache.get(oldGuild); + if (!old) return client.err(message, "Config", "migrate", 404); + await old.emojis.cache.map(async e => { + await message.guild.emojis.create(e.url, e.name); + }); + return message.channel.send(`Created Emotes.`); + } + catch (e) { + console.log(e); + } + }, }; diff --git a/unused/commands/Config/modmail-category.js b/unused/commands/Config/modmail-category.js @@ -2,31 +2,31 @@ const schema = require("../../models/modmail"); const { Client, Message, MessageEmbed } = require("discord.js"); module.exports = { - name: "modmail-category", - UserPerm: "ADMINISTRATOR", - description: "Setup modmail category in a server", - usage: "(Category ID)", - category: "Config", - run: async (client, message, args) => { - if (!args.length) - return client.err(message, "Config", "modmail-category", 0); - const category = message.guild.channels.cache.find( - ch => (ch.type = "GUILD_CATEGORY" && ch.id == args[0]) - ); - if (!category) return client.err(message, "Config", "modmail-category", 1); - schema.findOne({ Guild: message.guild.id }, async (err, data) => { - if (data) { - data.Category = category.id; - await schema.findOneAndUpdate({ Guild: message.guild.id }, data); - } else { - new schema({ - Guild: message.guild.id, - Category: category.id, - }).save(); - } - }); - return message.channel.send({ - content: `**Saved category to ${category.name}**`, - }); - }, + name: "modmail-category", + UserPerm: "ADMINISTRATOR", + description: "Setup modmail category in a server", + usage: "(Category ID)", + category: "Config", + run: async (client, message, args) => { + if (!args.length) {return client.err(message, "Config", "modmail-category", 0);} + const category = message.guild.channels.cache.find( + ch => (ch.type = "GUILD_CATEGORY" && ch.id == args[0]), + ); + if (!category) return client.err(message, "Config", "modmail-category", 1); + schema.findOne({ Guild: message.guild.id }, async (err, data) => { + if (data) { + data.Category = category.id; + await schema.findOneAndUpdate({ Guild: message.guild.id }, data); + } + else { + new schema({ + Guild: message.guild.id, + Category: category.id, + }).save(); + } + }); + return message.channel.send({ + content: `**Saved category to ${category.name}**`, + }); + }, }; diff --git a/unused/commands/Config/modmail-role.js b/unused/commands/Config/modmail-role.js @@ -1,29 +1,30 @@ const schema = require("../../models/modmail"); module.exports = { - name: "modmail-role", - UserPerm: "ADMINISTRATOR", - description: "Add role for modmail in a server", - usage: "(Role)", - category: "Config", - run: async (client, message, args) => { - if (!args.length) return client.err(message, "Config", "modmail-role", 0); - const role = + name: "modmail-role", + UserPerm: "ADMINISTRATOR", + description: "Add role for modmail in a server", + usage: "(Role)", + category: "Config", + run: async (client, message, args) => { + if (!args.length) return client.err(message, "Config", "modmail-role", 0); + const role = message.mentions.roles.first() || message.guild.roles.cache.get(args[0]); - if (!role) return client.err(message, "Config", "modmail-role", 404); - schema.findOne({ Guild: message.guild.id }, async (err, data) => { - if (data) { - data.Role = role.id; - await schema.findOneAndUpdate({ Guild: message.guild.id }, data); - } else { - new schema({ - Guild: message.guild.id, - Role: role.id, - }).save(); - } - }); - return message.channel.send({ - content: `Updated **${role.name}** as the modmail role`, - }); - }, + if (!role) return client.err(message, "Config", "modmail-role", 404); + schema.findOne({ Guild: message.guild.id }, async (err, data) => { + if (data) { + data.Role = role.id; + await schema.findOneAndUpdate({ Guild: message.guild.id }, data); + } + else { + new schema({ + Guild: message.guild.id, + Role: role.id, + }).save(); + } + }); + return message.channel.send({ + content: `Updated **${role.name}** as the modmail role`, + }); + }, }; diff --git a/unused/commands/Config/panel.js b/unused/commands/Config/panel.js @@ -2,27 +2,27 @@ const { Client, Message, MessageEmbed } = require("discord.js"); const Schema = require("../../models/reaction"); module.exports = { - name: "panel", - description: "Reaction-Role Panel", - UserPerm: "ADMINISTRATOR", - category: "Config", - run: async (client, message, args) => { - const channel = message.mentions.channels.first() || message.channel; - Schema.findOne({ Guild: message.guild.id }, async (err, data) => { - if (!data) return client.err(message, "Config", "panel", 10); - const mapped = Object.keys(data.Roles) - .map((value, index) => { - const role = message.guild.roles.cache.get(data.Roles[value][0]); - return `${index + 1}) ${data.Roles[value][1].raw} - ${role}`; - }) - .join("\n\n"); - channel.send(new MessageEmbed().setDescription(mapped)).then(msg => { - data.Message = msg.id; - data.save(); + name: "panel", + description: "Reaction-Role Panel", + UserPerm: "ADMINISTRATOR", + category: "Config", + run: async (client, message, args) => { + const channel = message.mentions.channels.first() || message.channel; + Schema.findOne({ Guild: message.guild.id }, async (err, data) => { + if (!data) return client.err(message, "Config", "panel", 10); + const mapped = Object.keys(data.Roles) + .map((value, index) => { + const role = message.guild.roles.cache.get(data.Roles[value][0]); + return `${index + 1}) ${data.Roles[value][1].raw} - ${role}`; + }) + .join("\n\n"); + channel.send(new MessageEmbed().setDescription(mapped)).then(msg => { + data.Message = msg.id; + data.save(); - const reactions = Object.values(data.Roles).map(val => val[1].id); // ?? val[1].raw); - reactions.map(emoji => msg.react(emoji)); - }); - }); - }, + const reactions = Object.values(data.Roles).map(val => val[1].id); // ?? val[1].raw); + reactions.map(emoji => msg.react(emoji)); + }); + }); + }, }; diff --git a/unused/commands/Config/rr-add.js b/unused/commands/Config/rr-add.js @@ -1,45 +1,46 @@ const { Client, Message, MessageEmbed, Util } = require("discord.js"); const Schema = require("../../models/reaction"); module.exports = { - name: "rr-add", - UserPerm: "ADMINISTRATOR", - description: "Create reaction role for server", - usage: "(Role) (emoji(Must be in server)", - category: "Config", - run: async (client, message, args) => { - const role = + name: "rr-add", + UserPerm: "ADMINISTRATOR", + description: "Create reaction role for server", + usage: "(Role) (emoji(Must be in server)", + category: "Config", + run: async (client, message, args) => { + const role = message.mentions.roles.first() || message.guild.roles.cache.get(args[0]) || message.guild.roles.cache.find(r => r.name == args[0]); - let [, emoji] = args; - if (!emoji) return client.err(message, "Config", "rr-add", 11); - const parsedEmoji = Util.parseEmoji(emoji); - Schema.findOne({ Guild: message.guild.id }, async (err, data) => { - if (data) { - data.Roles[parsedEmoji.name] = [ - role.id, - { - id: parsedEmoji.id, - raw: emoji, - }, - ]; - await Schema.findOneAndUpdate({ Guild: message.guild.id }, data); - } else { - new Schema({ - Guild: message.guild.id, - Message: 0, - Roles: { - [parsedEmoji.name]: [ - role.id, - { - id: parsedEmoji.id, - raw: emoji, - }, - ], - }, - }).save(); - } - message.channel.send(`Added ${role.name}.`); - }); - }, + const [, emoji] = args; + if (!emoji) return client.err(message, "Config", "rr-add", 11); + const parsedEmoji = Util.parseEmoji(emoji); + Schema.findOne({ Guild: message.guild.id }, async (err, data) => { + if (data) { + data.Roles[parsedEmoji.name] = [ + role.id, + { + id: parsedEmoji.id, + raw: emoji, + }, + ]; + await Schema.findOneAndUpdate({ Guild: message.guild.id }, data); + } + else { + new Schema({ + Guild: message.guild.id, + Message: 0, + Roles: { + [parsedEmoji.name]: [ + role.id, + { + id: parsedEmoji.id, + raw: emoji, + }, + ], + }, + }).save(); + } + message.channel.send(`Added ${role.name}.`); + }); + }, }; diff --git a/unused/commands/Config/rr-rmv.js b/unused/commands/Config/rr-rmv.js @@ -1,34 +1,34 @@ const Schema = require("../../models/reaction"); module.exports = { - name: "rr-rmv", - UserPerm: "ADMINISTRATOR", - description: "Remove reaction role for server", - category: "Config", - run: async (client, message, args, utils) => { - message.channel - .send({ content: "**Do you want to remove the reaction roles?**" }) - .then(async msg => { - Schema.findOne({ Guild: message.guild.id }, async (err, data) => { - if (err) throw err; - if (!data) return client.err(message, "Config", "rr-rmv", 10); - }); - const emoji = await utils.confirmation( - msg, - message.author, - ["โœ…", "โŒ"], - 10000 - ); - if (emoji === "โœ…") { - msg.delete(); - await Schema.findOneAndDelete({ Guild: message.guild.id }); - message.channel.send({ - content: `Removed reaction roles for this server.`, - }); - } - if (emoji === "โŒ") { - msg.delete(); - message.channel.send({ content: "Cancelled." }); - } - }); - }, + name: "rr-rmv", + UserPerm: "ADMINISTRATOR", + description: "Remove reaction role for server", + category: "Config", + run: async (client, message, args, utils) => { + message.channel + .send({ content: "**Do you want to remove the reaction roles?**" }) + .then(async msg => { + Schema.findOne({ Guild: message.guild.id }, async (err, data) => { + if (err) throw err; + if (!data) return client.err(message, "Config", "rr-rmv", 10); + }); + const emoji = await utils.confirmation( + msg, + message.author, + ["โœ…", "โŒ"], + 10000, + ); + if (emoji === "โœ…") { + msg.delete(); + await Schema.findOneAndDelete({ Guild: message.guild.id }); + message.channel.send({ + content: `Removed reaction roles for this server.`, + }); + } + if (emoji === "โŒ") { + msg.delete(); + message.channel.send({ content: "Cancelled." }); + } + }); + }, }; diff --git a/unused/commands/Fun/busted.js b/unused/commands/Fun/busted.js @@ -0,0 +1,27 @@ +const { MessageAttachment } = require("discord.js"); +module.exports = { + name: "busted", + description: "Bust someone", + category: "Fun", + options: [ + { + type: 6, + name: "user", + description: "The user you want to use the effect", + required: true, + }, + ], + type: "CHAT_INPUT", + run: async (client, interaction, args) => { + const user = interaction.guild.members.cache.get(args[0]); + const ima = new MessageAttachment( + `${ + process.env.api + }/api/v1/image/busted?image=${user.user.displayAvatarURL({ + format: "png", + size: 2048, + })}`, + ); + interaction.followUp({ files: [ima] }); + }, +}; diff --git a/unused/commands/Fun/coinflip.js b/unused/commands/Fun/coinflip.js @@ -0,0 +1,17 @@ +const { MessageEmbed } = require("discord.js"); +module.exports = { + name: "coinflip", + description: "Flip a coin", + category: "Fun", + run: async (client, interaction, args) => { + const HT = ["Heads!", "Tails!"]; + const pick = HT[Math.floor(Math.random() * HT.length)]; + const embed = new MessageEmbed() + .setColor(client.color) + .setTitle("CoinFilp Game") + .setTimestamp() + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setDescription(pick); + interaction.followUp({ embeds: [embed] }); + }, +}; diff --git a/unused/commands/Fun/connect4.js b/unused/commands/Fun/connect4.js @@ -1,304 +1,321 @@ const { Client, Message, MessageEmbed } = require("discord.js"); module.exports = { - name: "connect4", - aliases: ["c4"], - usage: "(User)", - description: "Play a connect 4 game with a user", - category: "Fun", - run: async (client, message, args) => { - const challenger = message.member; - const oppenent = message.mentions.members.first(); + name: "connect4", + aliases: ["c4"], + usage: "(User)", + description: "Play a connect 4 game with a user", + category: "Fun", + run: async (client, message, args) => { + const challenger = message.member; + const oppenent = message.mentions.members.first(); - if (!oppenent) return client.err(message, "Fun", "connect4", 1); + if (!oppenent) return client.err(message, "Fun", "connect4", 1); - const question = await message.channel.send( - `${oppenent}, would you like to play connect 4 against ${challenger}?` - ); + const question = await message.channel.send( + `${oppenent}, would you like to play connect 4 against ${challenger}?`, + ); - ["โœ…", "โŒ"].forEach(async el => await question.react(el)); + ["โœ…", "โŒ"].forEach(async el => await question.react(el)); - const filter = (reaction, user) => - ["โœ…", "โŒ"].includes(reaction.emoji.name) && user.id === oppenent.id; + const filter = (reaction, user) => + ["โœ…", "โŒ"].includes(reaction.emoji.name) && user.id === oppenent.id; - const response = await question.awaitReactions(filter, { max: 1 }); + const response = await question.awaitReactions(filter, { max: 1 }); - const reaction = response.first(); + const reaction = response.first(); - if (reaction.emoji.name === "โŒ") - return question.edit("Looks like they didn't want to play"); - else { - await message.delete(); - await question.delete(); + if (reaction.emoji.name === "โŒ") {return question.edit("Looks like they didn't want to play");} + else { + await message.delete(); + await question.delete(); - const board = [ - ["โšช", "โšช", "โšช", "โšช", "โšช", "โšช", "โšช"], - ["โšช", "โšช", "โšช", "โšช", "โšช", "โšช", "โšช"], - ["โšช", "โšช", "โšช", "โšช", "โšช", "โšช", "โšช"], - ["โšช", "โšช", "โšช", "โšช", "โšช", "โšช", "โšช"], - ["โšช", "โšช", "โšช", "โšช", "โšช", "โšช", "โšช"], - ["โšช", "โšช", "โšช", "โšช", "โšช", "โšช", "โšช"], - ]; + const board = [ + ["โšช", "โšช", "โšช", "โšช", "โšช", "โšช", "โšช"], + ["โšช", "โšช", "โšช", "โšช", "โšช", "โšช", "โšช"], + ["โšช", "โšช", "โšช", "โšช", "โšช", "โšช", "โšช"], + ["โšช", "โšช", "โšช", "โšช", "โšช", "โšช", "โšช"], + ["โšช", "โšช", "โšช", "โšช", "โšช", "โšช", "โšช"], + ["โšช", "โšช", "โšช", "โšช", "โšช", "โšช", "โšช"], + ]; - const renderBoard = board => { - let tempString = ""; - for (const boardSection of board) { - tempString += `${boardSection.join("")}\n`; - } + const renderBoard = board => { + let tempString = ""; + for (const boardSection of board) { + tempString += `${boardSection.join("")}\n`; + } - tempString = tempString.concat("1๏ธโƒฃ2๏ธโƒฃ3๏ธโƒฃ4๏ธโƒฃ5๏ธโƒฃ6๏ธโƒฃ7๏ธโƒฃ"); + tempString = tempString.concat("1๏ธโƒฃ2๏ธโƒฃ3๏ธโƒฃ4๏ธโƒฃ5๏ธโƒฃ6๏ธโƒฃ7๏ธโƒฃ"); - return tempString; - }; + return tempString; + }; - const initialState = renderBoard(board); + const initialState = renderBoard(board); - const initial = new MessageEmbed().setDescription(initialState); + const initial = new MessageEmbed().setDescription(initialState); - const gameMessage = await message.channel.send(initial); + const gameMessage = await message.channel.send(initial); - ["1๏ธโƒฃ", "2๏ธโƒฃ", "3๏ธโƒฃ", "4๏ธโƒฃ", "5๏ธโƒฃ", "6๏ธโƒฃ", "7๏ธโƒฃ"].forEach(async el => - gameMessage.react(el) - ); + ["1๏ธโƒฃ", "2๏ธโƒฃ", "3๏ธโƒฃ", "4๏ธโƒฃ", "5๏ธโƒฃ", "6๏ธโƒฃ", "7๏ธโƒฃ"].forEach(async el => + gameMessage.react(el), + ); - const gameFilter = (reaction, user) => - ["1๏ธโƒฃ", "2๏ธโƒฃ", "3๏ธโƒฃ", "4๏ธโƒฃ", "5๏ธโƒฃ", "6๏ธโƒฃ", "7๏ธโƒฃ"].includes( - reaction.emoji.name - ) && + const gameFilter = (reaction, user) => + ["1๏ธโƒฃ", "2๏ธโƒฃ", "3๏ธโƒฃ", "4๏ธโƒฃ", "5๏ธโƒฃ", "6๏ธโƒฃ", "7๏ธโƒฃ"].includes( + reaction.emoji.name, + ) && (user.id === oppenent.id || user.id === challenger.id); - const gameCollector = gameMessage.createReactionCollector(gameFilter); - - const gameData = [ - { member: challenger, playerColor: "๐Ÿ”ด" }, - { member: oppenent, playerColor: "๐ŸŸก" }, - ]; - - let player = 0; - - const checkFour = (a, b, c, d) => - a === b && b === c && c === d && a !== "โšช"; - - const horizontalCheck = () => { - for (let i = 0; i < 6; i++) { - for (let j = 0; j < 4; j++) { - if ( - checkFour( - board[i][j], - board[i][j + 1], - board[i][j + 2], - board[i][j + 3] - ) - ) - return [ - board[i][j], - board[i][j + 1], - board[i][j + 2], - board[i][j + 3], - ]; - } - } - }; - - const verticalCheck = () => { - for (let j = 0; j < 7; j++) { - for (let i = 0; i < 3; i++) { - if ( - checkFour( - board[i][j], - board[i + 1][j], - board[i + 2][j], - board[i + 3][j] - ) - ) - return [ - board[i][j], - board[i + 1][j], - board[i + 2][j], - board[i + 3][j], - ]; - } - } - }; - - const diagonal1 = () => { - for (let col = 0; col < 4; col++) { - for (let row = 0; row < 3; row++) { - if ( - checkFour( - board[row][col], - board[row + 1][col + 1], - board[row + 2][col + 2], - board[row + 3][col + 3] - ) - ) - return [ - board[row][col], - board[row + 1][col + 1], - board[row + 2], - board[col + 2], - board[row + 3][col + 3], - ]; - } - } - }; - - const diagonal2 = () => { - for (let col = 0; col < 4; col++) { - for (let row = 5; row > 2; row--) { - if ( - checkFour( - board[row][col], - board[row - 1][col + 1], - board[row - 2][col + 2], - board[row - 3][col + 3] - ) - ) - return [ - board[row][col], - board[row - 1][col + 1], - board[row - 2][col + 2], - board[row - 3][col + 3], - ]; - } - } - }; - - const tieCheck = () => { - let count = 0; - for (const el of board) { - for (const string of el) { - if (string !== "โšช") count++; - } - } - if (count === 42) return true; - else return false; - }; - - const checks = [horizontalCheck, verticalCheck, diagonal1, diagonal2]; - - gameCollector.on("collect", (reaction, user) => { - if (user.id === gameData[player].member.id) { - const openSpaces = []; - - switch (reaction.emoji.name) { - case "1๏ธโƒฃ": - for (let i = 5; i > -1; i--) { - if (board[i][0] === "โšช") openSpaces.push({ i, j: 0 }); - } - if (openSpaces.length === 0) - return message.channel.send( - `${gameData[player].member}, that column is already full. Choose a differnt one.` - ); - else - board[openSpaces[0].i][openSpaces[0].j] = + const gameCollector = gameMessage.createReactionCollector(gameFilter); + + const gameData = [ + { member: challenger, playerColor: "๐Ÿ”ด" }, + { member: oppenent, playerColor: "๐ŸŸก" }, + ]; + + let player = 0; + + const checkFour = (a, b, c, d) => + a === b && b === c && c === d && a !== "โšช"; + + const horizontalCheck = () => { + for (let i = 0; i < 6; i++) { + for (let j = 0; j < 4; j++) { + if ( + checkFour( + board[i][j], + board[i][j + 1], + board[i][j + 2], + board[i][j + 3], + ) + ) { + return [ + board[i][j], + board[i][j + 1], + board[i][j + 2], + board[i][j + 3], + ]; + } + } + } + }; + + const verticalCheck = () => { + for (let j = 0; j < 7; j++) { + for (let i = 0; i < 3; i++) { + if ( + checkFour( + board[i][j], + board[i + 1][j], + board[i + 2][j], + board[i + 3][j], + ) + ) { + return [ + board[i][j], + board[i + 1][j], + board[i + 2][j], + board[i + 3][j], + ]; + } + } + } + }; + + const diagonal1 = () => { + for (let col = 0; col < 4; col++) { + for (let row = 0; row < 3; row++) { + if ( + checkFour( + board[row][col], + board[row + 1][col + 1], + board[row + 2][col + 2], + board[row + 3][col + 3], + ) + ) { + return [ + board[row][col], + board[row + 1][col + 1], + board[row + 2], + board[col + 2], + board[row + 3][col + 3], + ]; + } + } + } + }; + + const diagonal2 = () => { + for (let col = 0; col < 4; col++) { + for (let row = 5; row > 2; row--) { + if ( + checkFour( + board[row][col], + board[row - 1][col + 1], + board[row - 2][col + 2], + board[row - 3][col + 3], + ) + ) { + return [ + board[row][col], + board[row - 1][col + 1], + board[row - 2][col + 2], + board[row - 3][col + 3], + ]; + } + } + } + }; + + const tieCheck = () => { + let count = 0; + for (const el of board) { + for (const string of el) { + if (string !== "โšช") count++; + } + } + if (count === 42) return true; + else return false; + }; + + const checks = [horizontalCheck, verticalCheck, diagonal1, diagonal2]; + + gameCollector.on("collect", (reaction, user) => { + if (user.id === gameData[player].member.id) { + const openSpaces = []; + + switch (reaction.emoji.name) { + case "1๏ธโƒฃ": + for (let i = 5; i > -1; i--) { + if (board[i][0] === "โšช") openSpaces.push({ i, j: 0 }); + } + if (openSpaces.length === 0) { + return message.channel.send( + `${gameData[player].member}, that column is already full. Choose a differnt one.`, + ); + } + else { + board[openSpaces[0].i][openSpaces[0].j] = gameData[player].playerColor; - - break; - case "2๏ธโƒฃ": - for (let i = 5; i > -1; i--) { - if (board[i][1] === "โšช") openSpaces.push({ i, j: 1 }); - } - if (openSpaces.length === 0) - return message.channel.send( - `${gameData[player].member}, that column is already full. Choose a differnt one.` - ); - else - board[openSpaces[0].i][openSpaces[0].j] = + } + + break; + case "2๏ธโƒฃ": + for (let i = 5; i > -1; i--) { + if (board[i][1] === "โšช") openSpaces.push({ i, j: 1 }); + } + if (openSpaces.length === 0) { + return message.channel.send( + `${gameData[player].member}, that column is already full. Choose a differnt one.`, + ); + } + else { + board[openSpaces[0].i][openSpaces[0].j] = gameData[player].playerColor; - - break; - case "3๏ธโƒฃ": - for (let i = 5; i > -1; i--) { - if (board[i][2] === "โšช") openSpaces.push({ i, j: 2 }); - } - if (openSpaces.length === 0) - return message.channel.send( - `${gameData[player].member}, that column is already full. Choose a differnt one.` - ); - else - board[openSpaces[0].i][openSpaces[0].j] = + } + + break; + case "3๏ธโƒฃ": + for (let i = 5; i > -1; i--) { + if (board[i][2] === "โšช") openSpaces.push({ i, j: 2 }); + } + if (openSpaces.length === 0) { + return message.channel.send( + `${gameData[player].member}, that column is already full. Choose a differnt one.`, + ); + } + else { + board[openSpaces[0].i][openSpaces[0].j] = gameData[player].playerColor; - break; - case "4๏ธโƒฃ": - for (let i = 5; i > -1; i--) { - if (board[i][3] === "โšช") openSpaces.push({ i, j: 3 }); - } - if (openSpaces.length === 0) - return message.channel.send( - `${gameData[player].member}, that column is already full. Choose a differnt one.` - ); - else - board[openSpaces[0].i][openSpaces[0].j] = + } + break; + case "4๏ธโƒฃ": + for (let i = 5; i > -1; i--) { + if (board[i][3] === "โšช") openSpaces.push({ i, j: 3 }); + } + if (openSpaces.length === 0) { + return message.channel.send( + `${gameData[player].member}, that column is already full. Choose a differnt one.`, + ); + } + else { + board[openSpaces[0].i][openSpaces[0].j] = gameData[player].playerColor; - break; - case "5๏ธโƒฃ": - for (let i = 5; i > -1; i--) { - if (board[i][4] === "โšช") openSpaces.push({ i, j: 4 }); - } - if (openSpaces.length === 0) - return message.channel.send( - `${gameData[player].member}, that column is already full. Choose a differnt one.` - ); - else - board[openSpaces[0].i][openSpaces[0].j] = + } + break; + case "5๏ธโƒฃ": + for (let i = 5; i > -1; i--) { + if (board[i][4] === "โšช") openSpaces.push({ i, j: 4 }); + } + if (openSpaces.length === 0) { + return message.channel.send( + `${gameData[player].member}, that column is already full. Choose a differnt one.`, + ); + } + else { + board[openSpaces[0].i][openSpaces[0].j] = gameData[player].playerColor; - break; - case "6๏ธโƒฃ": - for (let i = 5; i > -1; i--) { - if (board[i][5] === "โšช") openSpaces.push({ i, j: 5 }); - } - if (openSpaces.length === 0) - return message.channel.send( - `${gameData[player].member}, that column is already full. Choose a differnt one.` - ); - else - board[openSpaces[0].i][openSpaces[0].j] = + } + break; + case "6๏ธโƒฃ": + for (let i = 5; i > -1; i--) { + if (board[i][5] === "โšช") openSpaces.push({ i, j: 5 }); + } + if (openSpaces.length === 0) { + return message.channel.send( + `${gameData[player].member}, that column is already full. Choose a differnt one.`, + ); + } + else { + board[openSpaces[0].i][openSpaces[0].j] = gameData[player].playerColor; - break; - case "7๏ธโƒฃ": - for (let i = 5; i > -1; i--) { - if (board[i][6] === "โšช") openSpaces.push({ i, j: 6 }); - } - if (openSpaces.length === 0) - return message.channel.send( - `${gameData[player].member}, that column is already full. Choose a differnt one.` - ); - else - board[openSpaces[0].i][openSpaces[0].j] = + } + break; + case "7๏ธโƒฃ": + for (let i = 5; i > -1; i--) { + if (board[i][6] === "โšช") openSpaces.push({ i, j: 6 }); + } + if (openSpaces.length === 0) { + return message.channel.send( + `${gameData[player].member}, that column is already full. Choose a differnt one.`, + ); + } + else { + board[openSpaces[0].i][openSpaces[0].j] = gameData[player].playerColor; - break; - } - - if (tieCheck()) { - const TieEmbed = new MessageEmbed().setDescription( - renderBoard(board) - ); - gameCollector.stop("Tie Game"); - return gameMessage.edit(`It was a tie game!`, { embed: TieEmbed }); - } - - for (const func of checks) { - const data = func(); - if (data) { - const WinEmbed = new MessageEmbed().setDescription( - renderBoard(board) - ); - gameCollector.stop(`${gameData[player].member.id} won`); - return gameMessage.edit( - `${gameData[player].member} has won the game!`, - { embed: WinEmbed } - ); - } - } - - player = (player + 1) % 2; - - const newEmbed = new MessageEmbed().setDescription( - renderBoard(board) - ); - gameMessage.edit("", { embed: newEmbed }); - } - }); - } - }, + } + break; + } + + if (tieCheck()) { + const TieEmbed = new MessageEmbed().setDescription( + renderBoard(board), + ); + gameCollector.stop("Tie Game"); + return gameMessage.edit(`It was a tie game!`, { embed: TieEmbed }); + } + + for (const func of checks) { + const data = func(); + if (data) { + const WinEmbed = new MessageEmbed().setDescription( + renderBoard(board), + ); + gameCollector.stop(`${gameData[player].member.id} won`); + return gameMessage.edit( + `${gameData[player].member} has won the game!`, + { embed: WinEmbed }, + ); + } + } + + player = (player + 1) % 2; + + const newEmbed = new MessageEmbed().setDescription( + renderBoard(board), + ); + gameMessage.edit("", { embed: newEmbed }); + } + }); + } + }, }; diff --git a/unused/commands/Fun/dino.js b/unused/commands/Fun/dino.js @@ -0,0 +1,98 @@ +module.exports = { + name: "dinochrome", + category: "Fun", + description: "Dinosaur in Chrome", + run: async (client, interaction, args) => { + await interaction.deleteReply(); + const msg = await interaction.channel.send(`---------------๐Ÿฆ–`); + let time = 1 * 1000; + setTimeout(function() { + msg.edit(`-----------๐Ÿฆ–----`); + }, time); + time += 1.5 * 1000; + + setTimeout(function() { + msg.edit(`----------๐Ÿฆ–------`); + }, time); + time += 1.5 * 1000; + + setTimeout(function() { + msg.edit(`--------๐Ÿฆ–--------`); + }, time); + time += 1.5 * 1000; + + setTimeout(function() { + msg.edit(`------๐Ÿฆ–-----------`); + }, time); + time += 1.5 * 1000; + + setTimeout(function() { + msg.edit(`-------๐Ÿฆ–-----------`); + }, time); + time += 1.5 * 1000; + + setTimeout(function() { + msg.edit(`---๐ŸŒต-----๐Ÿฆ–---------`); + }, time); + time += 1.5 * 1000; + + setTimeout(function() { + msg.edit(`---๐ŸŒต-๐Ÿฆ–-------------`); + }, time); + time += 1.5 * 1000; + + setTimeout(function() { + msg.edit(`๐Ÿฆ–\n ---๐ŸŒต--------------`); + }, time); + time += 1.5 * 1000; + + setTimeout(function() { + msg.edit(`------๐Ÿฆ–---๐ŸŒต--------------`); + }, time); + time += 1.5 * 1000; + + setTimeout(function() { + msg.edit(`----๐Ÿฆ–-----๐ŸŒต----------------`); + }, time); + time += 1.5 * 1000; + + setTimeout(function() { + msg.edit(`-๐ŸŒต๐ŸŒต-----๐Ÿฆ–-------๐ŸŒต--------`); + }, time); + time += 1.5 * 1000; + + setTimeout(function() { + msg.edit(`----๐ŸŒต๐ŸŒต-๐Ÿฆ–----------๐ŸŒต------`); + }, time); + time += 1.5 * 1000; + + setTimeout(function() { + msg.edit(`๐Ÿฆ–\n ---๐ŸŒต๐ŸŒต-------------๐ŸŒต---`); + }, time); + time += 1.5 * 1000; + + setTimeout(function() { + msg.edit(`-----๐Ÿฆ–---๐ŸŒต๐ŸŒต-------------๐ŸŒต--`); + }, time); + time += 1.5 * 1000; + + setTimeout(function() { + msg.edit(`-------๐Ÿฆ–-----๐ŸŒต๐ŸŒต-------------`); + }, time); + time += 1.5 * 1000; + + setTimeout(function() { + msg.edit(`๐ŸŽ‚----๐Ÿฆ–--------๐ŸŒต๐ŸŒต-----------`); + }, time); + time += 1.5 * 1000; + + setTimeout(function() { + msg.edit(`---๐ŸŽ‚--๐Ÿฆ–----------๐ŸŒต๐ŸŒต---------`); + }, time); + time += 1.5 * 1000; + + setTimeout(function() { + msg.edit(`**โ“‚โ“˜โ“ขโ“ขโ“˜โ“žโ“ โ’ธโ“žโ“œโ“Ÿโ“›โ“”โ“ฃโ“”โ““ !**\n ---๐ŸŽ‚๐Ÿฆ–----------๐ŸŒต๐ŸŒต-------------`); + }, time); + }, +}; diff --git a/unused/commands/Fun/dog.js b/unused/commands/Fun/dog.js @@ -0,0 +1,28 @@ +const { MessageEmbed } = require("discord.js"); +const { getreddit } = require("cath"); +module.exports = { + name: "dog", + category: "Fun", + description: "Get a dog from reddit", + run: async (client, interaction, args) => { + const subreddits = ["dog", "dogs"]; + const subreddit = subreddits[Math.floor(Math.random() * subreddits.length)]; + const data = await getreddit(subreddit); + interaction.followUp({ + embeds: [ + new MessageEmbed({ + title: data.title, + url: data.url, + image: { url: data.image }, + timestamp: Date.now(), + footer: { text: data.footer }, + color: client.color, + author: { + name: interaction.user.tag, + iconURL: interaction.user.displayAvatarURL({ dynamic: true }), + }, + }), + ], + }); + }, +}; diff --git a/unused/commands/Fun/drop.js b/unused/commands/Fun/drop.js @@ -0,0 +1,50 @@ +module.exports = { + name: "drop", + usage: "{Channel} (Number)", + description: "Drops money to a channel", + category: "Economy", + options: [ + { + type: 7, + name: "channel", + description: "The channel you want to drop", + required: true, + channelTypes: ["GUILD_TEXT"], + }, + { + type: 4, + name: "cp", + description: "The amount of CP to drop", + required: true, + }, + ], + run: async (client, interaction, args) => { + const channel = interaction.guild.channels.cache.get(args[0]); + const coinsAmount = args[1]; + if (coinsAmount < 100) { + interaction.followUp({ + content: `You need to drop at least 100 ${client.currency}`, + }); + } else if ((await client.bal(interaction.user.id)) < coinsAmount) { + interaction.followUp({ content: "You don't have enough balance" }); + } else { + const filter = msg => + msg.guild.id === interaction.guild.id && msg.content === `claim`; + interaction.followUp({ + content: "The drop has started in " + channel.toString(), + }); + channel.send({ + content: `${interaction.user.username} has dropped a ${client.currency} bomb! Type \`claim\` to claim ${client.currency}!!`, + }); + client.rmv(interaction.user.id, parseInt(coinsAmount)); + channel.awaitMessages({ filter, max: 1, time: 60000 }).then(async msg => { + const id = msg.first().author.id; + const coinsToClaim = parseInt(coinsAmount); + await client.add(id, coinsToClaim, interaction); + msg.first().reply({ + content: `Congratultions! You have claimed **${coinsToClaim}** ${client.currency}!`, + }); + }); + } + }, +}; diff --git a/unused/commands/Fun/ds.js b/unused/commands/Fun/ds.js @@ -0,0 +1,24 @@ +const axios = require("axios"); +module.exports = { + name: "doublestruck", + description: "Doublestruck your text", + usage: "(text)", + category: "Fun", + type: "CHAT_INPUT", + options: [ + { + type: 3, + name: "text", + description: "The text you want to convert", + required: true, + }, + ], + run: async (client, interaction, args) => { + const text = args[0].split(" ").join("+"); + const res = await axios.get( + "https://api.popcatdev.repl.co/doublestruck?text=" + text, + ); + const json = await res.json(); + interaction.followUp(json.text); + }, +}; diff --git a/unused/commands/Fun/hug.js b/unused/commands/Fun/hug.js @@ -0,0 +1,43 @@ +const { MessageEmbed } = require("discord.js"); +module.exports = { + name: "hug", + description: "Hug someone", + category: "Fun", + usage: "(User)", + options: [ + { + type: 6, + name: "user", + description: "The user you want to hug", + required: true, + }, + { + type: 3, + name: "words", + description: "The words you want to say", + required: false, + }, + ], + type: "CHAT_INPUT", + run: async (client, interaction, args) => { + const user = interaction.guild.members.cache.get(args[0]); + words = args[1]; + if (user.id === interaction.user.id) { + return interaction.followUp("You can't hug yourself"); + } + const embed = new MessageEmbed() + .setDescription(`${interaction.user} **hugs** ${user}`) + .setImage( + `https://media.tenor.com/images/ca88f916b116711c60bb23b8eb608694/tenor.gif` + ) + .setColor(client.color) + .setTimestamp() + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()); + if (words) { + embed.addField("Words:", words); + } + await interaction + .followUp({ embeds: [embed] }) + .then(msg => msg.react("๐Ÿ’•")); + }, +}; diff --git a/unused/commands/Fun/messageinfo.js b/unused/commands/Fun/messageinfo.js @@ -0,0 +1,41 @@ +const { MessageEmbed } = require("discord.js"); +module.exports = { + name: "messageinfo", + category: "Information", + type: "CHAT_INPUT", + description: "Check the info of a message", + options: [ + { + type: 3, + name: "message", + description: "The message you want to see", + required: true, + }, + ], + run: async (client, interaction, args) => { + try { + await interaction.channel.messages.fetch(args[0]).catch(() => { + interaction.followUp({ + content: "Message not found in this channel..", + }); + }); + const msg = await interaction.channel.messages.cache.get(args[0]); + const hasImage = msg.attachments.size && msg.attachments.first().width; + const embed = new MessageEmbed() + .setColor(msg.member ? msg.member.displayHexColor : client.color) + .setImage(hasImage ? msg.attachments.first().url : null) + .setAuthor( + msg.author.tag, + msg.author.displayAvatarURL({ format: "png", dynamic: true }) + ) + .addField("Content", msg.content || "No content") + .setTimestamp(msg.createdAt) + .addField("ID", msg.id) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .addField("Jump", `[Click Here to Jump](${msg.url})`); + return interaction.followUp({ embeds: [embed] }); + } catch (err) { + console.log(err); + } + }, +}; diff --git a/unused/commands/Fun/obama.js b/unused/commands/Fun/obama.js @@ -0,0 +1,45 @@ +const o = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโกฟโ Ÿโ ›โ ›โ ›โ ‰โ ‰โ ‰โ ‹โ ›โ ›โ ›โ ปโขปโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; +const b = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโกŸโ ›โ ‰โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ ‰โ ™โ ปโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; +const a = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโ Ÿโ ‹โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ ˆโ ฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; +const m = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโกฟโ โ „โ „โ „โ „โ „โ „โ „โ ‚โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ ˆโ นโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; +const a2 = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโ ›โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ  โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ ˜โขปโฃฟโฃฟโฃฟโฃฟโฃฟ"; +const aa = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโ ƒโ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โข€โ „โข โ „โ „โก€โ „โ „โข€โ ‚โ „โ „โ „โ „โ „โ „โ „โ „โ „โกโ „โ „โข›โฃฟโฃฟโฃฟโฃฟ"; +const ab = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโก‡โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ โกˆโข”โ ธโฃโข•โข•โขตโขฐโขฑโขฐโขโขคโกกโกขโฃ•โข„โขขโข โ „โ „โ „โ „โ „โ „โ ™โฃฟโฃฟโฃฟ"; +const ac = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โกโ ‚โ …โข•โ ŒโกŽโกŽโฃŽโขŽโขฎโขฎโฃณโกณโฃโขฎโขบโขœโข•โข•โขโขŽโ ชโกโ „โ โ „โ ธโฃฟโฃฟ"; +const ad = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโ โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ โ „โ „โข…โ ฃโกกโกฃโฃฃโกณโกตโฃโกฎโฃ—โฃ—โกฏโฃ—โฃŸโกฎโกฎโฃณโฃฃโฃณโขฑโขฑโ ฑโฃโ „โ ‚โ „โขฟโฃฟ"; +const ae = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโ „โ „โ „โ „โ „โ „โ „โ ‚โ „โ „โ „โ „โ „โ „โข‚โขˆโ ขโกฑโกฑโกโฃฎโฃฟโฃŸโฃฟโฃฝโฃทโฃฟโฃฏโฃฟโฃทโฃฟโฃฟโฃฟโฃพโฃฏโฃ—โก•โก‡โก‡โ „โ ‚โก€โขนโฃฟ"; +const af = "โฃฟโฃฟโฃฟโฃฟโฃฟโกŸโ „โ „โ „โ „โ „โ „โ ‚โ „โ „โ „โ „โ „โ „โ โข€โข‚โข•โขธโขจโขชโขณโกซโฃŸโฃฟโฃปโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโกบโกฎโกฃโกฃโ  โข‚โ ’โขธโฃฟ"; +const ag = "โฃฟโฃฟโฃฟโฃฟโฃฟโก‡โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ  โ โ „โก‚โ †โก‡โฃ—โฃโขฎโขพโฃปโฃžโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโขฟโฃฝโฃฏโกฏโฃบโขธโข˜โ จโ ”โก…โขจโฃฟ"; +const ah = "โฃฟโฃฟโ ‹โ ‰โ ™โ ƒโ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ โ „โ „โ „โก‚โกชโกชโกชโกฎโกฎโกฏโฃปโฃฝโฃพโฃฟโฃฟโฃฟโฃŸโฃฟโฃฟโฃฟโฃฝโฃฟโฃฟโกฏโฃฏโกบโกธโกฐโกฑโขโก…โฃผโฃฟ"; +const ai = "โฃฟโ กโก€โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ  โ ˆโ †โ ฑโ ‘โ โ œโ •โกโกโฃžโขฏโขฟโฃฟโฃฟโกฟโฃŸโฃฟโฃฟโฃฟโกฟโกฟโฃฝโฃทโฃฝโกธโกจโกชโฃ‚โ Šโฃฟโฃฟ"; +const aj = "โฃฟโ กโ „โกจโฃขโ โ โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ โ โก“โฃ—โกฝโฃโ ฝโ โ …โ ‘โ โ ‰โ ˜โ ˜โ ˜โ ตโก‘โขœโข€โข€โข‰โขฝ"; +const ak = "โฃฟโ โ  โขฑโข˜โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ ˆโ ˆโ ฑโฃโ œโก˜โ Œโ „โ „โกชโฃณโฃŸโกฎโข…โ คโ  โ „โ „โฃ€โฃ€โก€โก€โ „โ ˆโก‚โขฒโกชโก โฃฟ"; +const al = "โฃฟโก‡โ จโฃบโขโ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โก€โ „โ „โ „โ คโก โกขโข’โ ฆโ  โ „โ „โ „โกธโขฝโฃŸโขฎโ ขโก‚โกโ „โกˆโก€โ คโก€โ „โ ‘โข„โ จโขธโกบโฃโฃฟ"; +const am = "โฃฟโฃฟโ ˆโ •โ โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โก‚โกชโกโกฅโขคโฃฐโฃฐโฃฐโกดโกฎโ ขโ ‚โ „โ „โกŠโขฎโขบโข•โขตโขฅโกฌโฃŒโฃ’โกšโฃ”โขšโขŒโขจโขšโ Œโฃพโกชโฃพโฃฟ"; +const an = "โฃฟโฃฟโฃ†โ „โก€โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โก‘โข•โข•โกฏโกทโฃ•โขงโข“โขญโ จโก€โ „โก‚โ จโกจโฃชโกณโฃโขโกฝโฃปโฃปโฃžโขฝโฃฒโขณโขฑโขกโ ฑโ จโฃŸโขบโฃฟโฃฟ"; +const ao = "โฃฟโฃฟโฃฟโก†โ „โก…โ ‡โก„โ „โ „โ „โ „โ „โ „โ „โ โ จโขชโขนโขฝโขฝโฃบโขโ ‰โ โ โ „โ „โ „โขŒโขŽโก–โกฏโกŽโก—โขโ œโฃถโฃฏโฃปโขฎโกปโฃŸโฃณโก•โ …โฃทโฃฟโฃฟโฃฟ"; +const ap = "โฃฟโฃฟโฃฟโฃฟโฃถโฃถโฃฟโฃทโ „โ „โ „โ „โ „โ „โ „โ „โ ˆโ ”โก‘โ •โ โ „โก€โ „โ „โ Šโข†โ ‚โ จโกชโฃบโฃฎโฃฟโกพโกœโฃœโกœโฃ„โ ™โขžโฃฟโขฟโกฟโฃ—โขโขธโฃพโฃฟโฃฟโฃฟ"; +const aq = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโ „โ „โ „โ „โ „โก€โ „โ „โ „โ „โข€โ „โ  โ „โ  โ „โ „โ „โ „โ „โ „โ Šโ บโกนโ ณโก™โกœโก“โกญโกบโก€โ „โ ฃโกปโกนโกธโ จโฃฃโฃฟโฃฟโฃฟโฃฟ"; +const ar = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโ „โ „โ „โ „โ „โ  โ „โ „โฃ‚โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โข„โ คโกคโก„โก†โกฏโกขโกฃโกฃโก“โข•โ ฝโฃ„โ „โ จโก‚โขŒโฃผโฃฟโฃฟโฃฟโฃฟโฃฟ"; +const a_ = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโก†โ „โ „โ „โ „โ ˆโ †โ „โ ธโก‚โ „โ „โ „โข€โ „โข€โ ˆโ „โ ‚โ โ ™โ โ ผโ ญโ ฃโ ฃโ ฃโ ‘โ Œโ ขโ ฃโกฃโก โก˜โฃฐโฃฑโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; +const at = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโก‡โ „โ „โ „โ „โ „โข‘โ „โ ˆโกฑโ „โข˜โ „โก€โ จโขโฃงโฃณโฃทโฃถโฃฆโฃคโฃดโฃถโฃถโฃถโกถโ „โก โกขโก•โฃœโ Žโกฎโฃฃโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; +const au = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโก‡โ „โ „โ „โ „โ „โ „โ ขโ „โ จโ „โ „โ ฃโก€โ „โข€โข€โข™โ ƒโกฟโขฟโ ฟโกฟโกฟโขŸโข‹โข”โกฑโฃโขœโกœโกชโกชโฃตโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; +const av = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโกโ „โ „โ „โ „โ „โ „โ „โ …โ „โ กโ „โ „โ กโข€โข‚โ ขโกกโ กโ ฃโก‘โฃโขฏโกปโกณโฃนโกบโกชโขŽโ Žโก†โขฃโฃพโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; +const aw = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃ‡โ „โ „โ „โ „โ „โ „โ „โ โ „โ „โ โ „โขˆโ „โข‚โ •โก•โกโข•โขŽโขŽโขฎโขŽโขฏโขบโขธโขฌโ ฃโขƒโฃผโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; +const ax = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃงโก€โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ  โ จโกโ Œโข†โข‡โขงโขญโฃฃโกณโฃตโขซโฃณโขฑโ ฑโข‘โฃพโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; +const ay = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃทโฃ†โ „โ „โ „โ „โ „โ „โ „โ „โ „โ „โ โกŠโขŒโขขโขกโขฃโขชโกบโกชโกŽโกŽโกŽโกšโฃจโฃพโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; +const az = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃทโฃ„โก€โ „โ „โ „โ „โ „โ „โ „โ „โ „โ •โก…โข—โข•โกณโกญโฃณโข•โ •โกฑโฃผโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; +const ba = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฆโก€โ „โ „โ „โ „โ „โ „โ „โ „โ „โ Œโ „โ ‘โ ฉโขˆโข‚โฃฑโฃพโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; +const bb = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃถโก€โข„โ „โฃ€โ „โก€โฃ€โข โข„โฃ–โฃ–โฃžโฃผโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; +const bc = "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃงโฃฑโกโก•โก•โกฝโฃโฃŸโฃฎโฃพโฃพโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ"; + +module.exports = { + name: "obama", + category: "Utilities", + description: "Obama", + run: async (client, interaction, args) => { + interaction.followUp({ + content: `${o}\n${b}\n${a}\n${m}\n${a2}\n${aa}\n${ab}\n${ac}\n${ad}\n${ae}\n${af}\n${ag}\n${ah}\n${ai}\n${aj}\n${ak}\n${al}\n${am}\n${an}\n${ao}\n${ap}\n${aq}\n${ar}\n${a_}\n${at}\n${au}\n${av}\n${aw}\n${ax}\n${ay}\n${az}\n${ba}\n${bb}\n${bc}`, + }); + }, +}; diff --git a/unused/commands/Fun/quote.js b/unused/commands/Fun/quote.js @@ -1,41 +1,42 @@ const { - Client, - Message, - MessageEmbed, - MessageAttachment, + Client, + Message, + MessageEmbed, + MessageAttachment, } = require("discord.js"); -const { Canvas } = require("canvacord"); +// const { Canvas } = require("canvacord"); module.exports = { - name: "quote", - description: "Quote a message", - usage: "{User} (Message)", - category: "Fun", - run: async (client, message, args) => { - const member = message.mentions.users.first() || message.author; - if (message.mentions.users.first()) { - const imgae = await Canvas.quote({ - image: member.displayAvatarURL({ - format: "png", - }), - message: args.slice(1).join(" "), - username: member.displayName ? member.displayName : member.username, - color: "ffffff", - }); - const attach = new MessageAttachment(imgae, "quote.png"); - message.reply(attach); - } else { - const imgae = await Canvas.quote({ - image: message.author.displayAvatarURL({ - format: "png", - }), - message: args.join(" "), - username: message.member.nickname - ? message.member.nickname - : member.username, - color: "ffffff", - }); - const attach = new MessageAttachment(imgae, "quote.png"); - message.reply(attach); - } - }, + name: "quote", + description: "Quote a message", + usage: "{User} (Message)", + category: "Fun", + run: async (client, message, args) => { + const member = message.mentions.users.first() || message.author; + if (message.mentions.users.first()) { + const imgae = await Canvas.quote({ + image: member.displayAvatarURL({ + format: "png", + }), + message: args.slice(1).join(" "), + username: member.displayName ? member.displayName : member.username, + color: "ffffff", + }); + const attach = new MessageAttachment(imgae, "quote.png"); + message.reply(attach); + } + else { + const imgae = await Canvas.quote({ + image: message.author.displayAvatarURL({ + format: "png", + }), + message: args.join(" "), + username: message.member.nickname + ? message.member.nickname + : member.username, + color: "ffffff", + }); + const attach = new MessageAttachment(imgae, "quote.png"); + message.reply(attach); + } + }, }; diff --git a/unused/commands/Fun/roleinfo.js b/unused/commands/Fun/roleinfo.js @@ -0,0 +1,85 @@ +const { MessageEmbed } = require("discord.js"); +const moment = require("moment"); +module.exports = { + name: "roleinfo", + description: "Get information of a role", + category: "Infromation", + options: [ + { + name: "role", + type: "ROLE", + description: "The role you want to see", + required: true, + }, + ], + type: "CHAT_INPUT", + /** + * + * @param {Client} client + * @param {CommandInteracion} interaction + * @param {String[]} args + */ + run: async (client, interaction, args, utils) => { + const role = interaction.guild.roles.cache.get(args[0]); + const position = `\`${ + interaction.guild.roles.cache.size - role.position + }\`/\`${interaction.guild.roles.cache.size}\``; + const embed = new MessageEmbed() + .setTimestamp() + .setURL(client.web) + .setAuthor( + interaction.member.displayName, + interaction.user.displayAvatarURL({ dynamic: true }) + ) + .setTitle("Role Info") + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setColor(role.color) + .addFields( + { + name: "ID", + value: role.id, + }, + { + name: "Name", + value: role.name, + inline: true, + }, + { + name: "Color", + value: role.hexColor, + inline: true, + }, + { + name: "Position", + value: position, + inline: true, + }, + { + name: `Hoisted`, + value: `${role.hoist ? "Yes" : "No"}`, + inline: true, + }, + { + name: "Mentionable", + value: `${role.mentionable ? "Yes" : "No"}`, + inline: true, + }, + { + name: "Bot Role", + value: `${role.managed ? "Yes" : "No"}`, + inline: true, + }, + { + name: "Creation Date", + value: `\`${moment(role.createdAt).format("DD/MMM/YYYY")}\``, + inline: true, + }, + { + name: "Permissions", + value: utils.fixPermissions(role.permissions.toArray()), + inline: true, + } + ); + interaction.followUp({ embeds: [embed] }); + }, +}; diff --git a/unused/commands/Fun/sr.js b/unused/commands/Fun/sr.js @@ -0,0 +1,29 @@ +const axios = require("axios"); + +module.exports = { + name: "superscript", + description: "Superscript your text", + usage: "(text)", + category: "Fun", + type: "CHAT_INPUT", + options: [ + { + type: 3, + name: "text", + description: "The text you want to convert", + required: true, + }, + ], + run: async (client, interaction, args) => { + const text = args[0]; + if (text.includes("@")) { + return interaction.followUp({ + content: "Text cannot includes '@'", + }); + } + const data = await axios + .get(`${process.env.api}/api/v1/fun/superscript?text=${text}`) + .then(res => res.data.text); + interaction.followUp({ content: data }); + }, +}; diff --git a/unused/commands/Fun/topic.js b/unused/commands/Fun/topic.js @@ -0,0 +1,18 @@ +const topics = require("../../../util/Data/topics.json"); +const { MessageEmbed } = require("discord.js"); +module.exports = { + name: "topic", + description: "Generate topics", + run: async (client, interaction, args) => { + const embed = new MessageEmbed() + .setTitle(`${interaction.user.username} picked a topic`) + .setDescription(`${topics[Math.floor(Math.random() * topics.length)]}`) + .setColor(client.color) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setThumbnail( + "https://media.discordapp.net/attachments/896078559293104128/896392631565828146/nyx_logo_transparent.webp" + ); + interaction.followUp({ embeds: [embed] }); + }, +}; diff --git a/unused/commands/Fun/topics.json b/unused/commands/Fun/topics.json @@ -0,0 +1,31 @@ +[ + "If you could be best friends with any person in the world, who would it be?", + "How can governments make education more efficient?", + "What is something you enjoy enjoy or like about discord?", + "Do you play any sports?", + "What are your plans for the weekend?", + "What kind of music are you into?", + "What music did you like when you were younger?", + "Whatโ€™s your favorite movie?", + "Whoโ€™s your favorite actor / actress / director?", + "Do you like cooking?", + "Do you like reading books?", + "Are there any books you would really recommend I read?", + "Where do you wish you could go?", + "Whatโ€™s your favorite place youโ€™ve been?", + "What hobbies did you have when you were younger?", + "What pet would you like to have?", + "What current trend is going to look the silliest in 10 years?", + "What subjects were hardest for you in school?", + "Whatโ€™s your favorite app on your phone?", + "What app would you suggest everyone get?", + "Whatโ€™s your favorite season? And why?", + "What is the longest youโ€™ve been offline?", + "What's your opinion on console or PC games?", + "Do you think that VR will become mainstream in the near future?", + "What is that myth that you grew up knowing but found out recently that is a lie?", + "If you had to erase a movie from your mind, which one would it be?", + "Have you ever wished you were born on another planet?", + "What makes someone a good person?", + "What qualities do you look for in a friend?" +] +\ No newline at end of file diff --git a/unused/commands/Fun/triggered.js b/unused/commands/Fun/triggered.js @@ -0,0 +1,25 @@ +// const { Canvas } = require("canvacord"); +const { MessageAttachment } = require("discord.js"); +module.exports = { + name: "triggered", + usage: "{User}", + description: "Have a trigger effect on a user's avatar", + category: "Fun", + options: [ + { + type: 6, + name: "user", + description: "The user you want to use the effect", + required: true, + }, + ], + type: "CHAT_INPUT", + run: async (client, interaction, args) => { + const user = interaction.guild.members.cache.get(args[0]); + const ava = user.user.displayAvatarURL({ format: "png", size: 2048 }); + const imga = await Canvas.trigger(ava); + interaction.followUp({ + files: [new MessageAttachment(imga, "image.gif")], + }); + }, +}; diff --git a/unused/commands/Information/servericon.js b/unused/commands/Information/servericon.js @@ -0,0 +1,17 @@ +const { MessageEmbed } = require("discord.js"); + +module.exports = { + name: "servericon", + description: "View the icon of the server", + category: "Information", + type: "CHAT_INPUT", + run: async (client, interaction, args) => { + const Embed = new MessageEmbed() + .setTitle(`Icon of ${interaction.guild.name}`) + .setURL(client.web) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setImage(interaction.guild.iconURL({ dynamic: true, size: 2048 })); + interaction.followUp({ embeds: [Embed] }); + }, +}; diff --git a/unused/commands/Moderation/announce.js b/unused/commands/Moderation/announce.js @@ -0,0 +1,63 @@ +const { MessageEmbed } = require("discord.js"); +module.exports = { + name: "announce", + UserPerms: ["MANAGE_MESSAGES"], + BotPerms: ["MANAGE_MESSAGES"], + usage: "{Channel} (Message)", + description: "Announce a message to a channel.", + category: "Moderation", + options: [ + { + type: 7, + name: "channel", + description: "The channel to announce", + required: true, + channelTypes: ["GUILD_TEXT"], + }, + { + type: 3, + name: "message", + description: "The message to announce", + required: true, + }, + ], + run: async (client, interaction, args) => { + const channel = interaction.guild.channels.cache.get(args[0]); + if (channel.type !== "GUILD_TEXT") { + return interaction.followUp({ + content: "Please provide a text channel", + }); + } + try { + channel.send({ + embeds: [ + new MessageEmbed() + .setAuthor( + `Sent by ${interaction.member.displayName}`, + interaction.user.displayAvatarURL({ dynamic: true }), + ) + .setDescription(args[1]) + .setTimestamp() + .setColor(client.color), + ], + }); + interaction.followUp({ + embeds: [ + new MessageEmbed() + .setTitle(`Message Announced`) + .addField("**Moderator**", interaction.user.tag, true) + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL(), + ) + .setTimestamp() + .setColor(client.color), + ], + }); + } + catch (e) { + console.log(e); + interaction.followUp({ content: `**Error**: ${e.message}` }); + } + }, +}; diff --git a/unused/commands/Moderation/permission.js b/unused/commands/Moderation/permission.js @@ -0,0 +1,120 @@ +const { MessageEmbed } = require("discord.js"); +module.exports = { + name: "permission", + usage: "(User)", + description: "Show user's permission in server/channel", + category: "Utilities", + type: "CHAT_INPUT", + options: [ + { + type: 6, + name: "user", + description: "The use you want to see", + required: false, + }, + ], + run: async (client, interaction, args) => { + const yes = "โœ”๏ธ"; + const no = "โŒ"; + const x = "```"; + const s = "๐Ÿ“›"; + const c = "โ™จ๏ธ"; + + const permissions = [ + "CREATE_INSTANT_INVITE", + "KICK_MEMBERS", + "BAN_MEMBERS", + "ADMINISTRATOR", + "MANAGE_CHANNELS", + "MANAGE_GUILD", + "ADD_REACTIONS", + "VIEW_AUDIT_LOG", + "PRIORITY_SPEAKER", + "STREAM", + "VIEW_CHANNEL", + "SEND_MESSAGES", + "SEND_TTS_MESSAGES", + "MANAGE_MESSAGES", + "EMBED_LINKS", + "ATTACH_FILES", + "READ_MESSAGE_HISTORY", + "MENTION_EVERYONE", + "USE_EXTERNAL_EMOJIS", + "VIEW_GUILD_INSIGHTS", + "CONNECT", + "SPEAK", + "STREAM", + "MUTE_MEMBERS", + "DEAFEN_MEMBERS", + "MOVE_MEMBERS", + "USE_VAD", + "CHANGE_NICKNAME", + "MANAGE_NICKNAMES", + "MANAGE_ROLES", + "MANAGE_WEBHOOKS", + "MANAGE_EMOJIS_AND_STICKER", + "USE_VAD", + "PRIORITY_SPEAKER", + "REQUEST_TO_SPEAK", + "MANAGE_THREADS", + "USE_PUBLIC_THREADS", + "USE_PRIVATE_THREADS", + "USE_EXTERNAL_STICKERS", + "USE_APPLICATION_COMMANDS", + ]; + + const user = + interaction.guild.members.cache.get(args[0]) || interaction.member; + const userId = user.user.id; + let description = `Server - ${s}\nCurrent channel - ${c}\n\n${s} | ${c}\n`; + const embed = new MessageEmbed() + .setTitle(`${user.user.username} Permissions`) + .setColor(user.displayColor) + .setURL(client.web) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp(); + permissions.forEach(perm => { + description += `${user.permissions.has(perm) ? yes : no} | ${ + interaction.channel.permissionsFor(userId).has(perm) ? yes : no + } - ${perm + .replace("CREATE_INSTANT_INVITE", "Create Invite") + .replace("KICK_MEMBERS", "Kick Members") + .replace("BAN_MEMBERS", "Ban Members") + .replace("ADMINISTRATOR", "Administrator") + .replace("MANAGE_CHANNELS", "Manage Channels") + .replace("MANAGE_GUILD", "Manage Guild") + .replace("ADD_REACTIONS", "Add Reactions") + .replace("VIEW_AUDIT_LOG", "View Audit Log") + .replace("PRIORITY_SPEAKER", "Priority Speaker") + .replace("STREAM", "Video") + .replace("VIEW_CHANNEL", "View Channel") + .replace("SEND_MESSAGES", "Send Messages") + .replace("SEND_TTS_MESSAGES", "Send TTS Messages") + .replace("MANAGE_MESSAGES", "Manage Messages") + .replace("EMBED_LINKS", "Embed Links") + .replace("ATTACH_FILES", "Attach Files") + .replace("READ_MESSAGE_HISTORY", "Read Message History") + .replace("MENTION_EVERYONE", "Mention Everyone") + .replace("USE_EXTERNAL_EMOJIS", "Use External Emojis") + .replace("VIEW_GUILD_INSIGHTS", "View Guild Insights") + .replace("CONNECT", "Connect") + .replace("SPEAK", "Speak") + .replace("MUTE_MEMBERS", "Mute Members") + .replace("DEAFEN_MEMBERS", "Defean Members") + .replace("MOVE_MEMBERS", "Move Members") + .replace("USE_VAD", "Use VAD") + .replace("CHANGE_NICKNAME", "Change Nickname") + .replace("MANAGE_NICKNAMES", "Manage Nicknames") + .replace("MANAGE_ROLES", "Manage Roles") + .replace("MANAGE_WEBHOOKS", "Manage Webhooks") + .replace("MANAGE_EMOJIS_AND_STICKER", "Manage Emojis and Sticker") + .replace("MANAGE_THREADS", "Manage Threads") + .replace("USE_PUBLIC_THREADS", "Use Public Threads") + .replace("USE_PRIVATE_THREADS", "Use Private Threads") + .replace("USE_EXTERNAL_STICKERS", "Use External Stickers") + .replace("USE_APPLICATION_COMMANDS", "Use Application Commands")}\n`; + }); + embed.setDescription(x + description + x); + interaction.followUp({ embeds: [embed] }); + }, +}; diff --git a/unused/commands/Owner/encrypt.js b/unused/commands/Owner/encrypt.js @@ -0,0 +1,39 @@ +module.exports = { + name: "code", + Owner: true, + run: async (client, message, args) => { + const encrypted = encrypt(args.slice(0).join(" ")); + message.channel.send(`\`\`\`${encrypted}\`\`\``); + message.channel.send(`\`\`\`${decrypt(encrypted)}\`\`\``); + const str; + function encrypt(inp) { + let str = inp.split(""), + out = ""; + str.forEach((c, i) => { + if (c == " ") { + out += " "; + } else if (i % 3 == 0) { + out += String.fromCharCode(c.charCodeAt(0) + 3); + } else { + out += String.fromCharCode(c.charCodeAt(0) - 2); + } + }); + return out; + } + + function decrypt(inp) { + let str = inp.split(""), + out = ""; + str.forEach((c, i) => { + if (c == " ") { + out += " "; + } else if (i % 3 == 0) { + out += String.fromCharCode(c.charCodeAt(0) - 3); + } else { + out += String.fromCharCode(c.charCodeAt(0) + 2); + } + }); + return out; + } + }, +}; diff --git a/unused/commands/Utilities/github.js b/unused/commands/Utilities/github.js @@ -0,0 +1,61 @@ +const { MessageEmbed } = require("discord.js"); +const moment = require("moment"); +const axios = require("axios"); +module.exports = { + name: "github", + description: `Get Github User Information`, + options: [ + { + type: 3, + name: "username", + description: "The username you want to search", + required: true, + }, + ], + run: async (client, interaction, args) => { + try { + axios + .get(`https://api.github.com/users/${args[0]}`) + .then(res => res.data) + .then(body => { + if (body.message) { + return interaction.followUp({ content: "User Not Found" }); + } + const { + login, + avatar_url, + id, + public_repos, + followers, + following, + location, + created_at, + bio, + } = body; + const embed = new MessageEmbed() + .setAuthor(`${login} Information`, avatar_url) + .setColor(client.color) + .setThumbnail(`${avatar_url}`) + .setTimestamp() + .addField(`Username`, `${login}`) + .addField(`ID`, `${id}`) + .addField(`Bio`, `${bio || "None"}`) + .addField(`Public Repositories`, `${public_repos || "None"}`, true) + .addField(`Followers`, `${followers}`, true) + .addField(`Following`, `${following}`, true) + .addField(`Location`, `${location || "None"}`) + .addField( + `Account Created`, + moment.utc(created_at).format("dddd, MMMM, Do YYYY") + ) + .setFooter( + `Made by ${client.author}`, + client.user.displayAvatarURL() + ); + interaction.followUp({ embeds: [embed] }); + }); + } catch (error) { + console.log(error); + } + }, +}; diff --git a/unused/commands/Utilities/hexcolor.js b/unused/commands/Utilities/hexcolor.js @@ -0,0 +1,54 @@ +const { MessageEmbed, MessageAttachment } = require("discord.js"); +const axios = require("axios"); + +module.exports = { + name: "hexcolor", + usage: "(Hex Color Code)", + description: "Get Hex and RGB info of a color", + category: "Utilities", + type: "CHAT_INPUT", + options: [ + { + type: 3, + name: "code", + description: "Color code you want to see (Example: #FF0000)", + required: false, + }, + ], + run: async (client, interaction, args) => { + let color; + if (args[0]) { + if (/(#|0x)([0-9A-F]{6})/i.test(args[0])) { + color = args[0].match(/(#|0x)([0-9A-F]{6})/i)[2]; + } + else { + return interaction.followUp({ + content: "Please give a valid Hex Color Code (Example: #FF0000)", + }); + } + } + else { + color = interaction.member.displayHexColor.replace("#", "", "0x", ""); + } + const colour = await axios + .get(`${process.env.api}/api/v1/hexcolor/${color}`) + .then(res => res.data); + const rightpic = new MessageAttachment(colour.image, "wea.jpg"); + const attachment = new MessageAttachment(colour.row, "color.jpg"); + const embed = new MessageEmbed() + .setColor(colour.hex) + .setDescription( + `\`HEX: ${colour.hex}} RGB: ${colour.rgb}}\`\n๐Ÿ”ฝColor Scheme๐Ÿ”ฝ`, + ) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setTitle("Color Information (Click here for more info)") + .setURL(`https://www.colorhexa.com/${colour.clean}`) + .setImage("attachment://color.jpg") + .setThumbnail("attachment://wea.jpg"); + interaction.followUp({ + embeds: [embed], + files: [attachment, rightpic], + }); + }, +}; diff --git a/unused/commands/Utilities/lb.js b/unused/commands/Utilities/lb.js @@ -0,0 +1,34 @@ +// const Levels = require("discord-xp"); +// const { MessageEmbed } = require("discord.js"); +// module.exports = { +// name: "leaderboard", +// timeout: 5000, +// description: "Check the leaderboard of a server", +// category: "Economy", +// Level: true, +// run: async (client, interaction, args) => { +// const rawLeaderboard = await Levels.fetchLeaderboard( +// interaction.guild.id, +// 10 +// ); +// if (rawLeaderboard.length < 1) +// return interaction.followUp({ content: "There isn't any data" }); +// const leaderboard = await Levels.computeLeaderboard( +// client, +// rawLeaderboard, +// true +// ); +// const lb = leaderboard.map( +// e => +// `**${e.position}**. ${e.username}#${e.discriminator} Level: ${ +// e.level +// } XP: ${e.xp.toLocaleString()}` +// ); +// const embed = new MessageEmbed() +// .setTitle(`**Leaderboard for ${interaction.guild.name}**`) +// .setDescription(`\n${lb.join("\n")}`) +// .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) +// .setColor(client.color); +// interaction.followUp({ embeds: [embed] }); +// }, +// }; diff --git a/unused/commands/Utilities/modmail.js b/unused/commands/Utilities/modmail.js @@ -2,164 +2,167 @@ const schema = require("../../models/modmail"); const { MessageEmbed, MessageAttachment } = require("discord.js"); const fs = require("fs"); module.exports = { - name: "modmail", - BotPerm: "MANAGE_CHANNELS", - description: "Create a modmail thread with moderators in a server", - usage: "(Emoji) (Text)", - category: "Utilities", - run: async (client, interaction, args) => { - try { - const data = await schema.findOne({ Guild: interaction.guild.id }); - if ( - !data || + name: "modmail", + BotPerm: "MANAGE_CHANNELS", + description: "Create a modmail thread with moderators in a server", + usage: "(Emoji) (Text)", + category: "Utilities", + run: async (client, interaction, args) => { + try { + const data = await schema.findOne({ Guild: interaction.guild.id }); + if ( + !data || !data.Role || !data.Category || !data.Choices || !Object.entries(data.Choices).length || !interaction.guild.roles.cache.has(data.Role) || !interaction.guild.channels.cache.find( - value => value.type == "GUILD_CATEGORY" && value.id === data.Category + value => value.type == "GUILD_CATEGORY" && value.id === data.Category, ) - ) - return interaction.followUp({ - content: `This server isn't setup properly. Please find an administrator or a moderator to specify a category, role and choices for users to create thread. The issue may be caused by invalid role/category.`, - }); - interaction.deleteReply(); - const choices = Object.entries(data.Choices); - const embed = new MessageEmbed() - .setDescription( - `Choices of topic:\n${choices - .map(value => `${value[1].emoji} - ${value[1].text}`) - .join("\n")}` - ) - .setAuthor( - interaction.guild.name, - interaction.guild.iconURL({ dynamic: true }) - ) - .setColor(client.color) - .setTimestamp() - .setTitle(`${interaction.user.tag}'s modmail`); - const msg = await interaction.user.send({ - content: "Please react below", - embeds: [embed], - }); - choices.map(async value => { - await msg.react(value[1].emoji); - }); - const filter = (reaction, user) => { - return ( - choices.map(value => value[1].emoji).includes(reaction.emoji.name) && + ) { + return interaction.followUp({ + content: `This server isn't setup properly. Please find an administrator or a moderator to specify a category, role and choices for users to create thread. The issue may be caused by invalid role/category.`, + }); + } + interaction.deleteReply(); + const choices = Object.entries(data.Choices); + const embed = new MessageEmbed() + .setDescription( + `Choices of topic:\n${choices + .map(value => `${value[1].emoji} - ${value[1].text}`) + .join("\n")}`, + ) + .setAuthor( + interaction.guild.name, + interaction.guild.iconURL({ dynamic: true }), + ) + .setColor(client.color) + .setTimestamp() + .setTitle(`${interaction.user.tag}'s modmail`); + const msg = await interaction.user.send({ + content: "Please react below", + embeds: [embed], + }); + choices.map(async value => { + await msg.react(value[1].emoji); + }); + const filter = (reaction, user) => { + return ( + choices.map(value => value[1].emoji).includes(reaction.emoji.name) && user.id !== interaction.user.id - ); - }; - const reactionCollector = msg.createReactionCollector({ - filter, - }); - let type; - reactionCollector - .on("collect", async (reaction, user) => { - type = choices.find(value => value[1].emoji == reaction.emoji.name); - await msg.delete(); - reactionCollector.stop("done"); - }) - .on("end", async (collected, reason) => { - if (reason.toLowerCase() == "time") { - return interaction.user.send({ - content: "You didn't provide a reaction in-time. Cancelled", - }); - } else { - const channel = await interaction.guild.channels.create( - `${interaction.user.username}-${interaction.user.discriminator}`, - { - reason: "Modmail thread", - parent: data.Category, - topic: `${type[1].text}`, - type: "text", - } - ); - const transcript = []; - channel.permissionOverwrites.create(data.Role, { - VIEW_CHANNEL: true, - SEND_MESSAGES: true, - }); - channel.permissionOverwrites.create(interaction.guild.id, { - VIEW_CHANNEL: false, - }); - channel.send({ - content: `A modmail thread has been started by **${interaction.user.tag}** with type: **${type[1].text}**\nUse \`close\` to close the thread`, - }); - interaction.user.send({ - content: "Thread created. Use `close` to close the thread.", - }); - const filter = m => !m.author.bot; - const channelCollector = channel.createMessageCollector({ filter }); - const dmCollector = + ); + }; + const reactionCollector = msg.createReactionCollector({ + filter, + }); + let type; + reactionCollector + .on("collect", async (reaction, user) => { + type = choices.find(value => value[1].emoji == reaction.emoji.name); + await msg.delete(); + reactionCollector.stop("done"); + }) + .on("end", async (collected, reason) => { + if (reason.toLowerCase() == "time") { + return interaction.user.send({ + content: "You didn't provide a reaction in-time. Cancelled", + }); + } + else { + const channel = await interaction.guild.channels.create( + `${interaction.user.username}-${interaction.user.discriminator}`, + { + reason: "Modmail thread", + parent: data.Category, + topic: `${type[1].text}`, + type: "text", + }, + ); + const transcript = []; + channel.permissionOverwrites.create(data.Role, { + VIEW_CHANNEL: true, + SEND_MESSAGES: true, + }); + channel.permissionOverwrites.create(interaction.guild.id, { + VIEW_CHANNEL: false, + }); + channel.send({ + content: `A modmail thread has been started by **${interaction.user.tag}** with type: **${type[1].text}**\nUse \`close\` to close the thread`, + }); + interaction.user.send({ + content: "Thread created. Use `close` to close the thread.", + }); + const filter = m => !m.author.bot; + const channelCollector = channel.createMessageCollector({ filter }); + const dmCollector = interaction.user.dmChannel.createMessageCollector({ - filter, - }); - channelCollector.on("collect", async m => { - if (m.content.toLowerCase().startsWith("close")) { - interaction.user.send({ - content: `Admin has closed the thread`, - }); - channel.send({ content: "Closing.." }); - dmCollector.stop("done"); - channelCollector.stop("done"); - fs.writeFileSync( - `./${interaction.user.id}.txt`, - transcript.join("\n") - ); - const attachment = new MessageAttachment( - fs.createReadStream(`./${interaction.user.id}.txt`), - `Transcript-${interaction.user.id}` - ); - await channel.send({ - content: "Transcript:", - files: [attachment], - }); - fs.unlinkSync(`./transcript-${interaction.user.id}.txt`); - setTimeout(() => { - channel.delete(); - }, 1000 * 10); - } - interaction.user.send({ content: `**Admin**: ${m.content}` }); - transcript.push(`**Admin**: ${m.content}`); - }); - dmCollector.on("collect", async m => { - if (m.content.toLowerCase().startsWith("close")) { - interaction.user.send({ content: "Closed" }); - channel.send({ - content: `${interaction.user.tag} has closed the thread`, - }); - dmCollector.stop("done"); - channelCollector.stop("done"); - fs.writeFileSync( - `./${interaction.user.id}.txt`, - transcript.join("\n") - ); - const attachment = new MessageAttachment( - fs.createReadStream(`./${interaction.user.id}.txt`), - `Transcript-${interaction.user.id}` - ); - await channel.send({ - content: "Transcript:", - files: [attachment], - }); - fs.unlinkSync(`./${interaction.user.id}.txt`); - setTimeout(() => { - channel.delete(); - }, 1000 * 60 * 12); - } - channel.send({ - content: `**${interaction.user.tag}**: ${m.content}`, + filter, }); - transcript.push(`**${interaction.user.tag}**: ${m.content}`); - }); - } - }); - } catch (e) { - console.log(e); - return interaction.followUp({ content: "An error occured" }); - } - }, + channelCollector.on("collect", async m => { + if (m.content.toLowerCase().startsWith("close")) { + interaction.user.send({ + content: `Admin has closed the thread`, + }); + channel.send({ content: "Closing.." }); + dmCollector.stop("done"); + channelCollector.stop("done"); + fs.writeFileSync( + `./${interaction.user.id}.txt`, + transcript.join("\n"), + ); + const attachment = new MessageAttachment( + fs.createReadStream(`./${interaction.user.id}.txt`), + `Transcript-${interaction.user.id}`, + ); + await channel.send({ + content: "Transcript:", + files: [attachment], + }); + fs.unlinkSync(`./transcript-${interaction.user.id}.txt`); + setTimeout(() => { + channel.delete(); + }, 1000 * 10); + } + interaction.user.send({ content: `**Admin**: ${m.content}` }); + transcript.push(`**Admin**: ${m.content}`); + }); + dmCollector.on("collect", async m => { + if (m.content.toLowerCase().startsWith("close")) { + interaction.user.send({ content: "Closed" }); + channel.send({ + content: `${interaction.user.tag} has closed the thread`, + }); + dmCollector.stop("done"); + channelCollector.stop("done"); + fs.writeFileSync( + `./${interaction.user.id}.txt`, + transcript.join("\n"), + ); + const attachment = new MessageAttachment( + fs.createReadStream(`./${interaction.user.id}.txt`), + `Transcript-${interaction.user.id}`, + ); + await channel.send({ + content: "Transcript:", + files: [attachment], + }); + fs.unlinkSync(`./${interaction.user.id}.txt`); + setTimeout(() => { + channel.delete(); + }, 1000 * 60 * 12); + } + channel.send({ + content: `**${interaction.user.tag}**: ${m.content}`, + }); + transcript.push(`**${interaction.user.tag}**: ${m.content}`); + }); + } + }); + } + catch (e) { + console.log(e); + return interaction.followUp({ content: "An error occured" }); + } + }, }; diff --git a/unused/commands/Utilities/poll.js b/unused/commands/Utilities/poll.js @@ -0,0 +1,38 @@ +const { MessageEmbed } = require("discord.js"); +module.exports = { + name: "poll", + description: "Start a poll in a channel", + category: "Utilities", + type: "CHAT_INPUT", + options: [ + { + type: 3, + name: "description", + description: "The description of the poll", + required: true, + }, + { + type: 7, + name: "channel", + description: "The channel you want to send the poll", + required: false, + channelTypes: ["GUILD_TEXT"], + }, + ], + run: async (client, interaction, args) => { + await interaction.deleteReply(); + const pollDescription = ` + ${interaction.member} asks: ${args[0]}`; + const channel = + interaction.guild.channels.cache.get(args[1]) || interaction.channel; + const embedPoll = new MessageEmbed() + .setTitle(`${interaction.user.tag} made a poll`) + .setDescription(pollDescription) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setColor("GREEN"); + const msgEmbed = await channel.send({ embeds: [embedPoll] }); + await msgEmbed.react("๐Ÿ‘"); + await msgEmbed.react("๐Ÿ‘Ž"); + }, +}; diff --git a/unused/commands/Utilities/rank.js b/unused/commands/Utilities/rank.js @@ -0,0 +1,303 @@ +// const Levels = require("discord-xp"); +// const Canvas = require("canvas"), +// Discord = require(`discord.js`); +// const { registerFont } = require("canvas"); +// registerFont("./util/assets/fonts/Poppins-Regular.ttf", { +// family: "Poppins-Regular", +// }); +// registerFont("./util/assets/fonts/Poppins-SemiBold.ttf", { +// family: "Poppins-Bold", +// }); +// module.exports = { +// name: "rank", +// description: "Shows an image of someone's ranking", +// type: "CHAT_INPUT", +// options: [ +// { +// type: 6, +// name: "user", +// description: "The user you want to see", +// required: false, +// }, +// ], +// run: async (client, interaction, args) => { +// const badges = [1, 8]; +// for (let i = badges[0]; i <= badges[1]; i++) client[`badge${i}`] = null; +// setBadge = function (variable, value) { +// const number = Number(variable); +// for (let i = badges[0]; i <= badges[1]; i++) +// if (number === i) { +// client[`badge${number}`] = value; +// break; +// } +// return client; +// }; + +// const member = +// interaction.guild.members.cache.get(args[0]) || interaction.member; + +// const user = await Levels.fetch(member.id, interaction.guild.id); +// console.log(user); +// const canvas = Canvas.createCanvas(1080, 400), +// ctx = canvas.getContext("2d"); + +// let BackgroundRadius = "50", //50 | 0 if u want no rounded background | 50 if u want a very rounded background +// BackGroundImg = "https://images7.alphacoders.com/109/1092420.jpg", +// AttachmentName = "rank.png", +// Username = member.user.username, +// AvatarRoundRadius = "50", // 30 if u want squared round Avatar | 100 IF u want rounded +// DrawLayerColor = "#000000", +// DrawLayerOpacity = "0.4", +// BoxColor = "#6eaedb", //Lvl and REP Box COlor +// LevelBarFill = "#ffffff", // +// LevelBarBackground = "#ffffff", +// Rank = user.position, +// TextEXP = "20XP", +// TextReputation = "+ 2.18k rep", +// BarRadius = "15", +// TextXpNeded = "{current}/{needed}", +// CurrentXP = user.xp, +// NeededXP = Levels.xpFor(parseInt(user.level) + 1); + +// //SET BADGES +// //setBadge("1", "Bronze") // .png | file name need to be Number_Name in this case is "1_bronze" +// //setBadge("2", "Gold") // .png | file name need to be Number_Name in this case is "2_Gold" +// //SET BADGES + +// //BackGround +// ctx.beginPath(); +// ctx.moveTo(0 + Number(BackgroundRadius), 0); +// ctx.lineTo(0 + 1080 - Number(BackgroundRadius), 0); +// ctx.quadraticCurveTo(0 + 1080, 0, 0 + 1080, 0 + Number(BackgroundRadius)); +// ctx.lineTo(0 + 1080, 0 + 400 - Number(BackgroundRadius)); +// ctx.quadraticCurveTo( +// 0 + 1080, +// 0 + 400, +// 0 + 1080 - Number(BackgroundRadius), +// 0 + 400 +// ); + +// ctx.lineTo(0 + Number(BackgroundRadius), 0 + 400); +// ctx.quadraticCurveTo(0, 0 + 400, 0, 0 + 400 - Number(BackgroundRadius)); +// ctx.lineTo(0, 0 + Number(BackgroundRadius)); +// ctx.quadraticCurveTo(0, 0, 0 + Number(BackgroundRadius), 0); +// ctx.closePath(); +// ctx.clip(); +// ctx.fillStyle = "#000000"; +// ctx.fillRect(0, 0, 1080, 400); +// let background = await Canvas.loadImage(BackGroundImg); +// ctx.drawImage(background, 0, 0, 1080, 400); +// ctx.restore(); + +// //Layer +// ctx.fillStyle = DrawLayerColor; +// ctx.globalAlpha = DrawLayerOpacity; +// ctx.fillRect(40, 0, 240, canvas.height); +// ctx.globalAlpha = 1; + +// //RoundedBox Function +// function RoundedBox(ctx, x, y, width, height, radius) { +// ctx.beginPath(); +// ctx.moveTo(x + radius, y); +// ctx.lineTo(x + width - radius, y); +// ctx.quadraticCurveTo(x + width, y, x + width, y + radius); +// ctx.lineTo(x + width, y + height - radius); +// ctx.quadraticCurveTo( +// x + width, +// y + height, +// x + width - radius, +// y + height +// ); +// ctx.lineTo(x + radius, y + height); +// ctx.quadraticCurveTo(x, y + height, x, y + height - radius); +// ctx.lineTo(x, y + radius); +// ctx.quadraticCurveTo(x, y, x + radius, y); +// ctx.closePath(); +// } + +// //Avatar +// let avatar = await Canvas.loadImage( +// member.user.displayAvatarURL({ dynamic: true, format: "png" }) +// ); +// ctx.save(); +// RoundedBox(ctx, 40 + 30, 30, 180, 180, Number(AvatarRoundRadius)); +// ctx.strokeStyle = "#BFC85A22"; +// ctx.stroke(); +// ctx.clip(); +// ctx.drawImage(avatar, 40 + 30, 30, 180, 180); +// ctx.restore(); +// //Avatar + +// //Reputation +// ctx.save(); +// RoundedBox(ctx, 40 + 30, 30 + 180 + 30, 180, 50, 10); +// ctx.strokeStyle = "#BFC85A22"; +// ctx.stroke(); +// ctx.clip(); +// ctx.fillStyle = BoxColor; +// ctx.globalAlpha = "1"; +// ctx.fillRect(40 + 30, 30 + 180 + 30, 180, 50, 50); +// ctx.globalAlpha = 1; +// ctx.fillStyle = "#ffffff"; +// ctx.shadowColor = "#000000"; +// ctx.shadowBlur = 20; +// ctx.shadowOffsetX = 1; +// ctx.shadowOffsetY = 1; +// ctx.font = '32px "Poppins-Bold"'; +// ctx.textAlign = "center"; +// ctx.fillText(TextReputation, 40 + 30 + 180 / 2, 30 + 180 + 30 + 38); +// ctx.restore(); +// //Reputation + +// //EXP +// ctx.save(); +// RoundedBox(ctx, 40 + 30, 30 + 180 + 30 + 50 + 30, 180, 50, 10); +// ctx.strokeStyle = "#BFC85A22"; +// ctx.stroke(); +// ctx.clip(); +// ctx.fillStyle = BoxColor; +// ctx.globalAlpha = "1"; +// ctx.fillRect(40 + 30, 30 + 180 + 30 + 50 + 30, 180, 50); +// ctx.globalAlpha = 1; +// ctx.fillStyle = "#ffffff"; +// ctx.shadowColor = "#000000"; +// ctx.shadowBlur = 20; +// ctx.shadowOffsetX = 1; +// ctx.shadowOffsetY = 1; +// ctx.font = '32px "Poppins-Bold"'; +// ctx.textAlign = "center"; +// ctx.fillText(TextEXP, 40 + 30 + 180 / 2, 30 + 180 + 30 + 30 + 50 + 38); +// ctx.restore(); +// //EXP + +// //ctx.save() +// //ctx.textAlign = "left"; +// //ctx.fillStyle = "#ffffff"; +// //ctx.shadowColor = '#000000'; +// //ctx.font = '15px "Poppins-Bold"' +// //ctx.fillText(member.user.username, 390, 200); +// //ctx.restore() + +// //Username +// ctx.save(); +// ctx.textAlign = "left"; +// ctx.fillStyle = "#ffffff"; +// ctx.shadowColor = "#000000"; +// ctx.shadowBlur = 15; +// ctx.shadowOffsetX = 1; +// ctx.shadowOffsetY = 1; +// ctx.font = '39px "Poppins-Bold"'; +// ctx.fillText(Username, 390, 80); +// ctx.restore(); +// //Username + +// //Rank +// ctx.save(); +// ctx.textAlign = "right"; +// ctx.fillStyle = "#ffffff"; +// ctx.shadowColor = "#000000"; +// ctx.shadowBlur = 15; +// ctx.shadowOffsetX = 1; +// ctx.shadowOffsetY = 1; +// ctx.font = '55px "Poppins-Bold"'; +// ctx.fillText("#" + Rank, canvas.width - 50 - 5, 80); +// ctx.restore(); + +// //Rank Name +// ctx.save(); +// ctx.textAlign = "left"; +// ctx.fillStyle = "#ffffff"; +// ctx.shadowColor = "#000000"; +// ctx.shadowBlur = 15; +// ctx.shadowOffsetX = 1; +// ctx.shadowOffsetY = 1; +// ctx.font = '30px "Poppins-Bold"'; +// ctx.fillText("Diamond Nature", 390, 120); +// ctx.restore(); + +// //Badges +// ctx.save(); +// RoundedBox(ctx, 390, 305, 660, 70, Number(15)); +// ctx.strokeStyle = "#BFC85A22"; +// ctx.stroke(); +// ctx.clip(); +// ctx.fillStyle = "#ffffff"; +// ctx.globalAlpha = "0.2"; +// ctx.fillRect(390, 305, 660, 70); +// ctx.restore(); +// const badgeNames = ["1", "2", "3", "4", "5", "6", "7", "8"]; +// for (let index = 0; index < badgeNames.length; index++) { +// let badge = `badge${index + 1}`; +// if (!client[badge]) { +// ctx.fillStyle = "#ffffff"; +// ctx.globalAlpha = "0.2"; +// ctx.textAlign = "center"; +// ctx.font = '90px "Poppins-Bold"'; +// ctx.fillText(".", 75 * index + 450, 345); +// } else { +// ctx.globalAlpha = 1; +// let badgeImg = await Canvas.loadImage( +// ["bronze", "silver", "gold", "diamond"].includes( +// client[badge].toLowerCase() +// ) +// ? `${__dirname}/${badgeNames[index]}_${client[ +// badge +// ].toLowerCase()}.png` +// : client[badge] +// ); +// ctx.drawImage(badgeImg, 75 * index + 420, 315, 50, 50); +// } +// } +// //Badges + +// //Level Bar +// ctx.save(); +// RoundedBox(ctx, 390, 145, 660, 50, Number(BarRadius)); +// ctx.strokeStyle = "#BFC85A22"; +// ctx.stroke(); +// ctx.clip(); +// ctx.fillStyle = LevelBarBackground; +// ctx.globalAlpha = "0.2"; +// ctx.fillRect(390, 145, 660, 50, 50); +// ctx.restore(); + +// const percent = (100 * CurrentXP) / NeededXP; +// const progress = (percent * 660) / 100; + +// ctx.save(); +// RoundedBox(ctx, 390, 145, progress, 50, Number(BarRadius)); +// ctx.strokeStyle = "#BFC85A22"; +// ctx.stroke(); +// ctx.clip(); +// ctx.fillStyle = LevelBarFill; +// ctx.globalAlpha = "0.5"; +// ctx.fillRect(390, 145, progress, 50, 50); +// ctx.restore(); + +// //Next Rank +// ctx.save(); +// ctx.textAlign = "left"; +// ctx.fillStyle = "#ffffff"; +// ctx.globalAlpha = "0.8"; +// ctx.font = '30px "Poppins-Bold"'; +// ctx.fillText("Next Rank: " + "None", 390, 230); +// ctx.restore(); + +// const latestXP = Number(CurrentXP) - Number(NeededXP); +// const textXPEdited = TextXpNeded.replace(/{needed}/g, NeededXP) +// .replace(/{current}/g, CurrentXP) +// .replace(/{latest}/g, latestXP); +// ctx.textAlign = "center"; +// ctx.fillStyle = "#ffffff"; +// ctx.globalAlpha = 1; +// ctx.font = '30px "Poppins-Bold"'; +// ctx.fillText(textXPEdited, 730, 180); +// //Level Bar + +// const attachment = new Discord.MessageAttachment( +// canvas.toBuffer(), +// AttachmentName +// ); +// interaction.followUp({ files: [attachment] }); +// }, +// }; diff --git a/unused/commands/Utilities/timer.js b/unused/commands/Utilities/timer.js @@ -0,0 +1,77 @@ +const { MessageEmbed } = require("discord.js"); +module.exports = { + name: "timer", + description: "Set a timer for yourself", + usage: "(Time)", + category: "Utilities", + type: "CHAT_INPUT", + options: [ + { + type: 3, + name: "time", + description: "The time you want to set", + required: true, + }, + ], + run: async (client, interaction, args, utils) => { + const time = args[0]; + const mss = utils.ms(args[0]); + if (!time.endsWith("d")) { + if (!time.endsWith("h")) { + if (!time.endsWith("m")) { + if (!time.endsWith("w")) { + if (!time.endsWith("mo")) { + if (!time.endsWith("s")) { + return interaction.followUp({ + content: "You can only use valid time (Example: 3s)", + }); + } + } + } + } + } + } + if (isNaN(time[0])) { + return interaction.followUp({ + content: "You can only use valid time (Example: 3s)", + }); + } + client.Timers.set(interaction.user.id + " G " + interaction.guild.name, { + Guild: interaction.guild.name, + Author: { + Tag: interaction.user.tag, + ID: interaction.user.id, + }, + Time: mss, + }); + interaction.followUp({ + content: `${interaction.user} you have set a timer for ${utils.timer( + mss, + )}.`, + }); + setTimeout(() => { + const Embed = new MessageEmbed() + .setTitle(`Timer finished in ${interaction.guild.name}.`) + .setDescription(`Your timer for ${utils.timer(mss)} has finished.`) + .setURL(client.web) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setColor(`GREEN`); + const embe = new MessageEmbed() + .setTitle(`Timer finished.`) + .setDescription(`Your timer for ${utils.timer(mss)} has finished.`) + .setURL(client.web) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setColor(`GREEN`); + interaction.channel.send({ + content: `${interaction.user}`, + embeds: [embe], + }); + interaction.user.send({ embeds: [Embed] }); + client.Timers.delete( + interaction.user.id + " G " + interaction.guild.name, + ); + }, utils.ms(time)); + }, +}; diff --git a/unused/events/messageCreate.js b/unused/events/messageCreate.js @@ -1,240 +1,243 @@ -const client = require("../bot"); -const codmclient = require("../client/CODMClient"); -const leven = require("leven"); -const { MessageEmbed } = require("discord.js"); -const schema = require("../unused/models/custom-commands"); -const cooldown = require("../models/cooldown"); -const utils = require("../util/functions/function"); -client.on("messageCreate", async message => { - const p = await client.prefix(message); - if (message.author.bot || !message.guild) return; - if (message.content.match(new RegExp(`^<@!?${client.user.id}>( |)$`))) { - const _ = new MessageEmbed() - .setTitle(client.user.username) - .addField("Links:", client.cat) - .addField( - "Prefix/Usage", - `My prefix in **${message.guild.name}** is **${p}**\n\nRun \`${p}help\` to start using the bot` - ) - .setThumbnail(client.user.displayAvatarURL()) - .setURL(client.web) - .setFooter(`Made by ${client.author}`) - .setTimestamp() - .setColor(client.color); - const m = await message.reply({ embeds: [_] }); - setTimeout(() => m.delete(), 15000); - } - if (p) { - if (!message.content.toLowerCase().startsWith(p.toLowerCase())) return; - } - if (!message.member) - message.member = await message.guild.fetchMember(message); - const data = {}; - let guildDB = await client.data.getGuild(message.guild.id); - if (!guildDB) return; - let userDB = await client.data.getUser(message.author.id); - if (!userDB) return; - let userEconDB = await client.data.getUserEcon(message.author.id); - data.Guild = guildDB; - data.User = userDB; - data.UserEcon = userEconDB; - if (!guildDB) await client.data.CreateGuild(message.guild.id); - if (!userEconDB) await client.createProfile(message.author.id); - if (data.User) { - if (data.User.Blacklist) return; - } - const [cmd, ...args] = message.content.slice(p.length).trim().split(/ +/g); - if (cmd.length == 0) return; - const cmddata = await schema.findOne({ - Guild: message.guild.id, - Command: cmd, - }); - if (!cmddata) { - const command = - client.commands.get(cmd.toLowerCase()) || - client.commands.find(c => c.aliases?.includes(cmd.toLowerCase())); - if (!command) { - const best = [ - ...client.commands.map(cmd => cmd.name), - ...client.aliases.keys(), - ].filter(c => leven(cmd.toLowerCase(), c.toLowerCase()) < c.length * 0.4); - const dym = - best.length == 0 - ? "" - : best.length == 1 - ? `Do you mean this?\n**${best[0]}**` - : `Do you mean one of these?\n${best - .slice(0, 3) - .map(value => `**${value}**`) - .join("\n")}`; - if (dym === "") return; - else { - const msg = await message.reply({ - embeds: [ - new MessageEmbed() - .setDescription(`Couldn't find that command.\n${dym}`) - .setTimestamp() - .setColor(client.color), - ], - }); - setTimeout(function () { - msg.delete(); - }, 10000); - } - } - if (command) { - if (command.Owner) { - if (!client.owners.includes(message.author.id)) return; - } - if (command.Premium) { - if (!data.User.Premium) { - return message.reply({ - embeds: [ - new MessageEmbed() - .setURL(client.web) - .setAuthor( - message.author.tag, - message.author.displayAvatarURL({ dynamic: true }) - ) - .setColor(client.color) - .setDescription( - `You aren't a premium user. You can either boost support server or subscribe to developer's team [Ko-fi](https://ko-fi.com/cathteam) or gift a nitro to one of the developer team to be premium user` - ) - .setTimestamp() - .setFooter(`Made by ${client.author}`), - ], - }); - } - } - if (command.Level) { - if (!data.Guild.Level) return; - } - if (!message.guild.me.permissions.has(command.BotPerm || [])) - return message.reply({ - content: `You can't use this command. I need to have ${command.BotPerm} permission to use this command.`, - }); - client.channels.cache.get(client.CMDLog).send({ - content: `\`${message.author.tag}(${message.author.id})\`\n has used \n**${command.name}**\n command in \n\`${message.guild.name}(${message.guild.id})\``, - }); - if (data.Guild) { - if (data.Guild.Category) { - if (data.Guild.Category.includes(command.directory)) return; - } - if (data.Guild.Commands) { - if (data.Guild.Commands.includes(command.name)) return; - } - } - if (command.timeout) { - const current_time = Date.now(); - const cooldown_amount = command.timeout; - cooldown.findOne( - { User: message.author.id, CMD: command.name }, - async (err, data) => { - if (data) { - const expiration_time = data.Time + cooldown_amount; - if (current_time < expiration_time) { - utils.cooldown(data.Time, cooldown_amount, message); - } else { - await cooldown.findOneAndUpdate( - { User: message.author.id, CMD: command.name }, - { Time: current_time } - ); - command.run(client, message, args, utils, data, codmclient); - client.addcmdsused(message.author.id); - client.channels.cache.get(client.CMDLog).send({ - content: `\`${message.author.tag}(${message.author.id})\`\n has used \n**${command.name}**\n command in \n\`${message.guild.name}(${message.guild.id})\``, - }); - } - } else { - command.run(client, message, args, utils, data, codmclient); - client.channels.cache.get(client.CMDLog).send({ - content: `\`${message.author.tag}(${message.author.id})\`\n has used \n**${command.name}**\n command in \n\`${message.guild.name}(${message.guild.id})\``, - }); - client.addcmdsused(message.author.id); - new cooldown({ - User: message.author.id, - CMD: command.name, - Time: current_time, - Cooldown: command.timeout, - }).save(); - } - } - ); - } else { - try { - command.run(client, message, args, utils, data, codmclient); - client.channels.cache.get(client.CMDLog).send({ - content: `\`${message.author.tag}(${message.author.id})\`\n has used \n**${command.name}**\n command in \n\`${message.guild.name}(${message.guild.id})\``, - }); - client.addcmdsused(message.author.id); - } catch (e) { - console.log(e); - } - } - } - } else { - if (cmddata.Delete === true && cmddata.Random === false) { - message - .delete() - .then(() => message.channel.send({ content: cmddata.Response })); - } else if (cmddata.Random === true && cmddata.Delete === true) { - const randomed = - cmddata.Response[Math.floor(Math.random() * cmddata.Response.length)]; - message.delete().then(() => message.channel.send({ content: randomed })); - } else if (cmddata.Random === true && cmddata.Delete === false) { - const randomed = - cmddata.Response[Math.floor(Math.random() * cmddata.Response.length)]; - message.channel.send({ content: randomed }); - } else { - message.channel.send({ content: cmddata.Response }); - } - } -}); -client.on("messageCreate", async message => { - const p = await client.prefix(message); - if (message.author.bot) return; - if (!message.content.startsWith(p)) return; - if (!message.guild) return; - if (!message.member) - message.member = await message.guild.fetchMember(message); - const [cmd, ...args] = message.content.slice(p.length).trim().split(/ +/g); - if (cmd.length == 0) return; - let path = client.hide.get(cmd); - if (path) { - if (!client.path.includes(message.guild.id)) return; - try { - path.run(client, message, args); - client.addcmdsused(message.author.id); - client.channels.cache.get(client.CMDLog).send({ - content: `\`${message.author.tag}(${message.author.id})\`\n has used \n**${path.name}**\n command in \n\`${message.guild.name}(${message.guild.id})\``, - }); - } catch (e) { - console.log(e); - } - } -}); -client.on("messageCreate", async message => { - if (message.channel.type === "DM" && !message.author.bot) { - if (message.attachments) { - if (message.attachments && message.content) { - message.attachments.map(e => - client.channels.cache.get(client.DMLog).send({ - content: `\`${message.author.tag}(${message.author.id})\`: ${ - message.content + e.url - }`, - }) - ); - } else { - message.attachments.map(e => - client.channels.cache.get(client.DMLog).send({ - content: `\`${message.author.tag}(${message.author.id})\`: ${e.url}`, - }) - ); - } - } else { - client.channels.cache.get(client.DMLog).send({ - content: `\`${message.author.tag}(${message.author.id})\`: ${message.content}`, - }); - } - } -}); +// const client = require("../bot"); +// const codmclient = require("../client/CODMClient"); +// const leven = require("leven"); +// const { MessageEmbed } = require("discord.js"); +// const schema = require("../unused/models/custom-commands"); +// const cooldown = require("../models/cooldown"); +// const utils = require("../util/functions/function"); +// client.on("messageCreate", async message => { +// const p = await client.prefix(message); +// if (message.author.bot || !message.guild) return; +// if (message.content.match(new RegExp(`^<@!?${client.user.id}>( |)$`))) { +// const _ = new MessageEmbed() +// .setTitle(client.user.username) +// .addField("Links:", client.cat) +// .addField( +// "Prefix/Usage", +// `My prefix in **${message.guild.name}** is **${p}**\n\nRun \`${p}help\` to start using the bot` +// ) +// .setThumbnail(client.user.displayAvatarURL()) +// .setURL(client.web) +// .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) +// .setTimestamp() +// .setColor(client.color); +// const m = await message.reply({ embeds: [_] }); +// setTimeout(() => m.delete(), 15000); +// } +// if (p) { +// if (!message.content.toLowerCase().startsWith(p.toLowerCase())) return; +// } +// if (!message.member) +// message.member = await message.guild.fetchMember(message); +// const data = {}; +// let guildDB = await client.data.getGuild(message.guild.id); +// if (!guildDB) return; +// let userDB = await client.data.getUser(message.author.id); +// if (!userDB) return; +// let userEconDB = await client.data.getUserEcon(message.author.id); +// data.Guild = guildDB; +// data.User = userDB; +// data.UserEcon = userEconDB; +// if (!guildDB) await client.data.CreateGuild(message.guild.id); +// if (!userEconDB) await client.createProfile(message.author.id); +// if (data.User) { +// if (data.User.Blacklist) return; +// } +// const [cmd, ...args] = message.content.slice(p.length).trim().split(/ +/g); +// if (cmd.length == 0) return; +// const cmddata = await schema.findOne({ +// Guild: message.guild.id, +// Command: cmd, +// }); +// if (!cmddata) { +// const command = +// client.commands.get(cmd.toLowerCase()) || +// client.commands.find(c => c.aliases?.includes(cmd.toLowerCase())); +// if (!command) { +// const best = [ +// ...client.commands.map(cmd => cmd.name), +// ...client.aliases.keys(), +// ].filter(c => leven(cmd.toLowerCase(), c.toLowerCase()) < c.length * 0.4); +// const dym = +// best.length == 0 +// ? "" +// : best.length == 1 +// ? `Do you mean this?\n**${best[0]}**` +// : `Do you mean one of these?\n${best +// .slice(0, 3) +// .map(value => `**${value}**`) +// .join("\n")}`; +// if (dym === "") return; +// else { +// const msg = await message.reply({ +// embeds: [ +// new MessageEmbed() +// .setDescription(`Couldn't find that command.\n${dym}`) +// .setTimestamp() +// .setColor(client.color), +// ], +// }); +// setTimeout(function () { +// msg.delete(); +// }, 10000); +// } +// } +// if (command) { +// if (command.Owner) { +// if (!client.owners.includes(message.author.id)) return; +// } +// if (command.Premium) { +// if (!data.User.Premium) { +// return message.reply({ +// embeds: [ +// new MessageEmbed() +// .setURL(client.web) +// .setAuthor( +// message.author.tag, +// message.author.displayAvatarURL({ dynamic: true }) +// ) +// .setColor(client.color) +// .setDescription( +// `You aren't a premium user. You can either boost support server or subscribe to developer's team [Ko-fi](https://ko-fi.com/cathteam) or gift a nitro to one of the developer team to be premium user` +// ) +// .setTimestamp() +// .setFooter( +// `Made by ${client.author}`, +// client.user.displayAvatarURL() +// ), +// ], +// }); +// } +// } +// if (command.Level) { +// if (!data.Guild.Level) return; +// } +// if (!message.guild.me.permissions.has(command.BotPerm || [])) +// return message.reply({ +// content: `You can't use this command. I need to have ${command.BotPerm} permission to use this command.`, +// }); +// client.channels.cache.get(client.CMDLog).send({ +// content: `\`${message.author.tag}(${message.author.id})\`\n has used \n**${command.name}**\n command in \n\`${message.guild.name}(${message.guild.id})\``, +// }); +// if (data.Guild) { +// if (data.Guild.Category) { +// if (data.Guild.Category.includes(command.directory)) return; +// } +// if (data.Guild.Commands) { +// if (data.Guild.Commands.includes(command.name)) return; +// } +// } +// if (command.timeout) { +// const current_time = Date.now(); +// const cooldown_amount = command.timeout; +// cooldown.findOne( +// { User: message.author.id, CMD: command.name }, +// async (err, data) => { +// if (data) { +// const expiration_time = data.Time + cooldown_amount; +// if (current_time < expiration_time) { +// utils.cooldown(data.Time, cooldown_amount, message); +// } else { +// await cooldown.findOneAndUpdate( +// { User: message.author.id, CMD: command.name }, +// { Time: current_time } +// ); +// command.run(client, message, args, utils, data, codmclient); +// client.addcmdsused(message.author.id); +// client.channels.cache.get(client.CMDLog).send({ +// content: `\`${message.author.tag}(${message.author.id})\`\n has used \n**${command.name}**\n command in \n\`${message.guild.name}(${message.guild.id})\``, +// }); +// } +// } else { +// command.run(client, message, args, utils, data, codmclient); +// client.channels.cache.get(client.CMDLog).send({ +// content: `\`${message.author.tag}(${message.author.id})\`\n has used \n**${command.name}**\n command in \n\`${message.guild.name}(${message.guild.id})\``, +// }); +// client.addcmdsused(message.author.id); +// new cooldown({ +// User: message.author.id, +// CMD: command.name, +// Time: current_time, +// Cooldown: command.timeout, +// }).save(); +// } +// } +// ); +// } else { +// try { +// command.run(client, message, args, utils, data, codmclient); +// client.channels.cache.get(client.CMDLog).send({ +// content: `\`${message.author.tag}(${message.author.id})\`\n has used \n**${command.name}**\n command in \n\`${message.guild.name}(${message.guild.id})\``, +// }); +// client.addcmdsused(message.author.id); +// } catch (e) { +// console.log(e); +// } +// } +// } +// } else { +// if (cmddata.Delete === true && cmddata.Random === false) { +// message +// .delete() +// .then(() => message.channel.send({ content: cmddata.Response })); +// } else if (cmddata.Random === true && cmddata.Delete === true) { +// const randomed = +// cmddata.Response[Math.floor(Math.random() * cmddata.Response.length)]; +// message.delete().then(() => message.channel.send({ content: randomed })); +// } else if (cmddata.Random === true && cmddata.Delete === false) { +// const randomed = +// cmddata.Response[Math.floor(Math.random() * cmddata.Response.length)]; +// message.channel.send({ content: randomed }); +// } else { +// message.channel.send({ content: cmddata.Response }); +// } +// } +// }); +// client.on("messageCreate", async message => { +// const p = await client.prefix(message); +// if (message.author.bot) return; +// if (!message.content.startsWith(p)) return; +// if (!message.guild) return; +// if (!message.member) +// message.member = await message.guild.fetchMember(message); +// const [cmd, ...args] = message.content.slice(p.length).trim().split(/ +/g); +// if (cmd.length == 0) return; +// let path = client.hide.get(cmd); +// if (path) { +// if (!client.path.includes(message.guild.id)) return; +// try { +// path.run(client, message, args); +// client.addcmdsused(message.author.id); +// client.channels.cache.get(client.CMDLog).send({ +// content: `\`${message.author.tag}(${message.author.id})\`\n has used \n**${path.name}**\n command in \n\`${message.guild.name}(${message.guild.id})\``, +// }); +// } catch (e) { +// console.log(e); +// } +// } +// }); +// client.on("messageCreate", async message => { +// if (message.channel.type === "DM" && !message.author.bot) { +// if (message.attachments) { +// if (message.attachments && message.content) { +// message.attachments.map(e => +// client.channels.cache.get(client.config.DMLog).send({ +// content: `\`${message.author.tag}(${message.author.id})\`: ${ +// message.content + e.url +// }`, +// }) +// ); +// } else { +// message.attachments.map(e => +// client.channels.cache.get(client.config.DMLog).send({ +// content: `\`${message.author.tag}(${message.author.id})\`: ${e.url}`, +// }) +// ); +// } +// } else { +// client.channels.cache.get(client.config.DMLog).send({ +// content: `\`${message.author.tag}(${message.author.id})\`: ${message.content}`, +// }); +// } +// } +// }); diff --git a/unused/events/messageReaction.js b/unused/events/messageReaction.js @@ -2,29 +2,29 @@ const client = require("../../bot"); const Schema = require("../models/reaction"); client.on("messageReactionAdd", async (reaction, user) => { - if (reaction.message.partial) await reaction.message.fetch(); - if (reaction.partial) await reaction.fetch(); - if (user.bot) return; - if (!reaction.message.guild) return; - Schema.findOne({ Message: reaction.message.id }, async (err, data) => { - if (!data) return; - if (!Object.keys(data.Roles).includes(reaction.emoji.name)) return; - const [roleid] = data.Roles[reaction.emoji.name]; - reaction.message.guild.members.cache.get(user.id).roles.add(roleid); - user.send(`A role has been added`); - }); + if (reaction.message.partial) await reaction.message.fetch(); + if (reaction.partial) await reaction.fetch(); + if (user.bot) return; + if (!reaction.message.guild) return; + Schema.findOne({ Message: reaction.message.id }, async (err, data) => { + if (!data) return; + if (!Object.keys(data.Roles).includes(reaction.emoji.name)) return; + const [roleid] = data.Roles[reaction.emoji.name]; + reaction.message.guild.members.cache.get(user.id).roles.add(roleid); + user.send(`A role has been added`); + }); }); client.on("messageReactionRemove", async (reaction, user) => { - if (reaction.message.partial) await reaction.message.fetch(); - if (reaction.partial) await reaction.fetch(); - if (user.bot) return; - if (!reaction.message.guild) return; - Schema.findOne({ Message: reaction.message.id }, async (err, data) => { - if (!data) return; - if (!Object.keys(data.Roles).includes(reaction.emoji.name)) return; + if (reaction.message.partial) await reaction.message.fetch(); + if (reaction.partial) await reaction.fetch(); + if (user.bot) return; + if (!reaction.message.guild) return; + Schema.findOne({ Message: reaction.message.id }, async (err, data) => { + if (!data) return; + if (!Object.keys(data.Roles).includes(reaction.emoji.name)) return; - const [roleid] = data.Roles[reaction.emoji.name]; - reaction.message.guild.members.cache.get(user.id).roles.remove(roleid); - user.send(`A role has been removed`); - }); + const [roleid] = data.Roles[reaction.emoji.name]; + reaction.message.guild.members.cache.get(user.id).roles.remove(roleid); + user.send(`A role has been removed`); + }); }); diff --git a/unused/models/custom-commands.js b/unused/models/custom-commands.js @@ -1,11 +1,11 @@ const mongoose = require("mongoose"); module.exports = mongoose.model( - "custom-commands", - new mongoose.Schema({ - Guild: String, - Command: String, - Response: Array, - Delete: Boolean, - Random: Boolean, - }) + "custom-commands", + new mongoose.Schema({ + Guild: String, + Command: String, + Response: Array, + Delete: Boolean, + Random: Boolean, + }), ); diff --git a/unused/models/modmail.js b/unused/models/modmail.js @@ -1,11 +1,11 @@ const mongoose = require("mongoose"); module.exports = mongoose.model( - "modmail", - new mongoose.Schema({ - Guild: String, - Category: String, - Choices: Object, - Role: String, - }) + "modmail", + new mongoose.Schema({ + Guild: String, + Category: String, + Choices: Object, + Role: String, + }), ); diff --git a/unused/models/reaction.js b/unused/models/reaction.js @@ -1,10 +1,10 @@ const mongoose = require("mongoose"); module.exports = mongoose.model( - "reaction-roles", - new mongoose.Schema({ - Guild: String, - Message: String, - Roles: Object, - }) + "reaction-roles", + new mongoose.Schema({ + Guild: String, + Message: String, + Roles: Object, + }), ); diff --git a/util/Data/aliases.json b/util/Data/aliases.json @@ -0,0 +1,79 @@ +{ + "weaponActualName": [ + "Man-O-War", + "Peacekeeper MK2", + "Type 25", + "QQ9", + "Razorback", + ".50 GS", + "Arctic .50", + "Kilo Bolt-Action", + "Fennec", + "FR .556", + "DR-H", + "RUS-79U", + "J358", + "NA-45", + "HS2126", + "QXR", + "Locus", + "Outlaw", + "Renetti", + "PP19 Bizon", + "AGR 556", + "BK57", + "ASM10", + "CR-56 AMAX", + "Shorty", + "Crossbow", + "R9-0" + ], + "weaponAlliasName": [ + ["MoW"], + ["PK"], + ["T25"], + ["MP5"], + ["RB", "RZBK"], + ["Deagle", "Desert Eagle"], + ["A50", "Artic"], + ["Kar98k"], + ["Vector"], + ["FAMAS"], + ["Scar", "Scar-H", "Scar-L"], + ["AKS", "AKS 47U"], + ["Revolver"], + ["gae"], + ["Burst Shotty", "Burst Shotgun"], + ["MP7", "QQ11"], + ["Slow Outlaw", "Slower Outlaw"], + ["bae"], + ["Reneti", "Renneti", "Rennetti", "Burst Pistol"], + ["pp bizon", "pp"], + ["AUG"], + ["AKBP", "Vepr"], + ["AN94"], + ["CR56", "AMAX"], + ["725"], + ["cb", "bow"], + ["r9", "R9-O"] + ], + "attachmentActualName": [ + ["akimbo", "Stopping Power"], + ["Tactical Scope", "Laser", "Slug", "Magazine", "Reload", "Tactical Laser Sight"], + ["5x [.338] Mag","5x [.300] Mag"], + ["Bowstring"] + ], + "attachmentAlliasName": [ + [["akim", "akimbo"], ["SP"]], + [ + ["1.5x", "1.5x Scope", "acog", "acog Scope"], + ["Lazer"], + ["Slugs"], + ["Ammo", "Reload", "Mag"], + ["Ammo", "Reload"], + ["OWC Laser", "OWC Lazer"] + ], + [[".338",".338 reload", "lapua"],[".300",".300 reload", "norma"]], + [["String"]] + ] +} diff --git a/util/Data/attachments.json b/util/Data/attachments.json @@ -0,0 +1,3108 @@ +{ + "Type_25": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": [ + "MIP Light Barrel (Short)", + "MIP Light", + "MIP Extended Light Barrel" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": ["YKM Light Stock", "RTC Steady Stock", "YKM Combat Stock"], + "perk": [ + "Tough", + "FMJ", + "Sleight of Hand", + "Long Shot", + "Melee Master", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": [ + "38 Round Extended Mag", + "Fast Reload", + "46 Round Extended Mag", + "42 Round Fast Reload", + "Stopping Power Reload" + ], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "M16": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": [ + "MIP Light Barrel (Short)", + "OWC Marksman", + "YKM Integral Suppressor Light" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": [ + "YKM Light Stock", + "MIP Strike Stock", + "YKM Combat Stock", + "No Stock" + ], + "perk": [ + "Tough", + "FMJ", + "Sleight of Hand", + "Long Shot", + "Melee Master", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": ["39 Round Extended Mag", "48 Round Extended Mag"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "AK117": [ + { + "muzzle": [ + "MIP Light Muzzle Brake", + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": [ + "MIP Light Barrel (Short)", + "MIP Extended Light Barrel", + "OWC Marksman", + "YKM Integral Suppressor Light" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": [ + "YKM Light Stock", + "RTC Steady Stock", + "OWC Skeleton Stock", + "No Stock" + ], + "perk": [ + "Tough", + "FMJ", + "Sleight of Hand", + "Long Shot", + "Melee Master", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A", + "Tactical Foregrip B" + ], + "ammo": ["40 Round Extended Mag", "48 Round Extended Mag"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "AK47": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": [ + "MIP Light Barrel (Short)", + "MIP Extended Light Barrel", + "OWC Ranger", + "OWC Marksman" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": [ + "YKM Light Stock", + "MIP Strike Stock", + "OWC Skeleton Stock", + "YKM Combat Stock", + "No Stock" + ], + "perk": [ + "Tough", + "FMJ", + "Sleight of Hand", + "Long Shot", + "Melee Master", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": ["Extended Mag A", "Extended Mag B", "5.45 Caliber Ammo"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "ASM10": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": ["MIP Light Barrel (Short)", "OWC Ranger", "OWC Marksman"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": [ + "YKM Light Stock", + "MIP Strike Stock", + "YKM Combat Stock", + "No Stock" + ], + "perk": [ + "Tough", + "FMJ", + "Sleight of Hand", + "Long Shot", + "Melee Master", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": ["33 Round Extended Mag", "40 Round Extended Mag"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "M4": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": [ + "YKM Integral Suppressor Light", + "MIP Light Barrel (Short)", + "OWC Ranger", + "MIP Light", + "OWC Marksman" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": [ + "YKM Light Stock", + "MIP Strike Stock", + "YKM Combat Stock", + "No Stock" + ], + "perk": [ + "Tough", + "FMJ", + "Sleight of Hand", + "Long Shot", + "Melee Master", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": ["40 Round Extended Mag", "50 Round Extended Mag"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "BK57": [ + { + "muzzle": [ + "MIP Light Muzzle Brake", + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": [ + "MIP Light Barrel (Short)", + "OWC Ranger", + "MIP Extended Light Barrel" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": ["YKM Light Stock", "OWC Skeleton Stock", "YKM Combat Stock"], + "perk": [ + "Tough", + "FMJ", + "Sleight of Hand", + "Long Shot", + "Melee Master", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Elite Foregrip", + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": [ + "50 Round Extended Mag", + "40 Round Fast Reload", + "Large Caliber Ammo" + ], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "LK24": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": ["OWC Ranger", "OWC Marksman", "YKM Integral Suppressor Light"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": [ + "YKM Light Stock", + "MIP Strike Stock", + "YKM Combat Stock", + "No Stock" + ], + "perk": [ + "Tough", + "FMJ", + "Sleight of Hand", + "Long Shot", + "Melee Master", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": ["40 Round Extended Mag", "50 Round Extended Mag"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "ICR_1": [ + { + "muzzle": [ + "Breacher Device", + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": ["OWC Ranger", "OWC Marksman", "YKM Integral Suppressor Light"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": [ + "No Stock", + "YKM Light Stock", + "YKM Combat Stock", + "RTC Steady Stock" + ], + "perk": [ + "Tough", + "FMJ", + "Sleight of Hand", + "Long Shot", + "Melee Master", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": [ + "40 Round Extended Mag", + "40 Round Fast Reload", + "50 Round Fast Reload" + ], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "Man_O_War": [ + { + "muzzle": [ + "RTC Huge Suppressor", + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": ["MIP Light Barrel (Short)", "OWC Marksman", "OWC Ranger"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": ["YKM Light Stock", "YKM Combat Stock", "MIP Strike Stock"], + "perk": [ + "Tough", + "FMJ", + "Sleight of Hand", + "Long Shot", + "Melee Master", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": ["35 Round Extended Mag", "30 Round Extended Mag"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "KN_44": [ + { + "muzzle": [ + "MIP Light Muzzle Brake", + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": ["MIP Light Barrel (Short)", "OWC Ranger", "OWC Marksman"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": [ + "YKM Light Stock", + "MIP Strike Stock", + "YKM Combat Stock", + "No Stock" + ], + "perk": [ + "Tough", + "FMJ", + "Sleight of Hand", + "Long Shot", + "Melee Master", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": ["44 Round Extended Mag", "38 Round Fast Reload"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "HBRa3": [ + { + "muzzle": [ + "MIP Light Muzzle Brake", + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": ["MIP Light", "OWC Ranger", "OWC Marksman"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": [ + "YKM Light Stock", + "RTC Steady Stock", + "OWC Skeleton Stock", + "No Stock" + ], + "perk": [ + "Tough", + "FMJ", + "Sleight of Hand", + "Long Shot", + "Melee Master", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": ["44 Round Extended Mag", "Fast Extended Mag"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "HVK_30": [ + { + "muzzle": [ + "MIP Light Muzzle Brake", + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": ["MIP Light", "OWC Marksman", "YKM Integral Suppressor Heavy"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": ["YKM Light Stock", "MIP Strike Stock", "YKM Combat Stock"], + "perk": [ + "Tough", + "FMJ", + "Sleight of Hand", + "Long Shot", + "Melee Master", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": ["44 Round Extended Mag", "Fast Reload", "Large Caliber Ammo"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "DR_H": [ + { + "muzzle": [ + "MIP Light Muzzle Brake", + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": ["MIP Light", "OWC Ranger", "OWC Marksman"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": [ + "YKM Light Stock", + "MIP Strike Stock", + "YKM Combat Stock", + "No Stock" + ], + "perk": [ + "Tough", + "FMJ", + "Sleight of Hand", + "Long Shot", + "Melee Master", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": [ + "30 Round Extended Mag", + "30 Round OTM Mag", + "38 Round Extended Mag", + "25 Round OTM Mag" + ], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "Peacekeeper_MK2": [ + { + "muzzle": [ + "RTC Muzzle Brake", + "MIP Flashguard", + "OWC Light Suppressor", + "Infantry Compensator", + "OWC Eliminator", + "Agency Suppressor" + ], + "barrel": [ + "Rapid Fire Barrel", + "Well-Forged Barrel", + "Built-In Silence Barrel", + "Long-Range Barrel", + "Taskforce Barrel" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": [ + "Light Weight Stock", + "Marathon Stock", + "No Stock", + "Agile Stock" + ], + "perk": [ + "Tough", + "FMJ", + "Sleight of Hand", + "Long Shot", + "Melee Master", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["1mW Steady Aim Laser", "5mW Combat Laser", "Aim Assist Laser"], + "underbarrel": [ + "Foregrip", + "Infiltrator Foregrip", + "Patrol Foregrip", + "Field Agent Foregrip", + "RTC Speed Foregrip" + ], + "ammo": ["Extended Mag A", "Double Stack Mag"], + "rear_grip": ["Rustle Grip Tape", "Sturdy Grip Tape", "Firm Grip Tape"] + } + ], + "FR_556": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": [ + "MIP Light Barrel (Short)", + "MIP Extended Light Barrel", + "OWC Ranger" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": ["YKM Light Stock", "RTC Steady Stock", "YKM Combat Stock"], + "perk": [ + "Tough", + "FMJ", + "Sleight of Hand", + "Long Shot", + "Melee Master", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A", + "Bipod" + ], + "ammo": ["Extended Mag A", "Fast Reload"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "AS_VAL": [ + { + "barrel": [ + "MIP Quick Response Barrel", + "MIP 105mm Melee Barrel", + "MIP 200mm Mid-Range Barrel" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": [ + "OWC Skeleton Stock", + "OWC Ranger Stock", + "RTC Steady Stock", + "YKM Combat Stock" + ], + "perk": [ + "Tough", + "FMJ", + "Sleight of Hand", + "Long Shot", + "Melee Master", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A", + "Piranha Foregrip" + ], + "ammo": ["Large Extended Mag B", "10 Round FMJ", "Fast Reload"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "CR-56 AMAX": [ + { + "muzzle": [ + "Tactical Suppressor", + "OWC Light Suppressor", + "Monolithic Suppressor", + "OWC Light Compensator", + "MIP Light FLash Guard", + "RTC Light Muzzle Brake" + ], + "barrel": ["Intruder Stock", "Gunner Stock", "MIP Custom Long"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": [ + "No Stock", + "Psilos Light Stock", + "YKM Combat Stock", + "MIP Tracker Stock", + "Custom Light Stock", + "MIP Gatekeeper" + ], + "perk": [ + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable", + "Tough", + "Long Shot", + "Melee Master" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": ["Extended Mag A", "M67 Ammo"], + "rear_grip": [ + "Granulated Grip Tape", + "Ruberized Grip Tape", + "Stippled Grip Tape" + ] + } + ], + "M13": [ + { + "muzzle": [ + "Tactical Suppressor", + "OWC Light Suppressor", + "OWC Light Compensator", + "Monolithic Suppressor", + "MIP Light FLash Guard", + "RTC Light Muzzle Brake" + ], + "barrel": [ + "RTC Mini Barrel", + "RTC Heavy Long Barrel", + "RTC Scilincer Barrel" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": [ + "No Stock", + "RTC Combat Stock", + "M13 Skeleton Stock", + "RTC Assualt Tactical" + ], + "perk": [ + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable", + "Tough", + "Long Shot", + "Melee Master" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": [ + "Extended Mag A", + "Large Extended Mag B", + ".300 RTC 30 Round Reload", + ".300 RTC Double Stack 30 Round" + ], + "rear_grip": [ + "Granulated Grip Tape", + "Ruberized Grip Tape", + "Stippled Grip Tape" + ] + } + ], + "XPR_50": [ + { + "muzzle": [ + "OWC Light Suppressor", + "Tactical Suppressor", + "Monolithic Suppressor", + "RTC Light Muzzle Brake", + "MIP Light FLash Guard", + "RTC Compensator" + ], + "barrel": ["RTC Lightweight", "RTC CQB", "RTC Long"], + "optic": [ + "Tactical Scope", + "3x Tactical Scope", + "4x Tactical Scope", + "6x Tactical Scope" + ], + "stock": ["MIP Strike Stock", "No Stock", "YKM Ghost Stock"], + "perk": [ + "Bullet Return", + "Headshot Slow", + "Fast Switch", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A", + "Bipod" + ], + "ammo": [ + "13 Round Reload", + "18 Round Reload", + "OWC Stopping Power Reload" + ] + } + ], + "Arctic_50": [ + { + "muzzle": [ + "OWC Light Suppressor", + "Tactical Suppressor", + "Monolithic Suppressor", + "RTC Light Muzzle Brake", + "MIP Light FLash Guard", + "RTC Compensator" + ], + "barrel": [ + "Assassin Short", + "0.5 Light Long", + "Anti-Material Heavy", + "OWC Monolithic Suppressor" + ], + "optic": [ + "Tactical Scope", + "3x Tactical Scope", + "4x Tactical Scope", + "6x Tactical Scope" + ], + "stock": ["YKM Light Stock", "OWC Skeleton Stock", "RTC Steady Stock"], + "perk": [ + "Bullet Return", + "Headshot Slow", + "Fast Switch", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "underbarrel": ["Bipod"], + "ammo": [ + "10 Round Reload", + "12 Round Reload", + "MIP Stopping Power Reload" + ], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "M21_EBR": [ + { + "muzzle": [ + "OWC Light Suppressor", + "Tactical Suppressor", + "Monolithic Suppressor", + "RTC Light Muzzle Brake", + "MIP Light FLash Guard", + "RTC Compensator" + ], + "barrel": ["MIP Precise", "MIP Extended Light Barrel", "MIP Steady"], + "optic": [ + "Tactical Scope", + "3x Tactical Scope", + "4x Tactical Scope", + "6x Tactical Scope" + ], + "stock": [ + "YKM Light Stock", + "MIP Strike Stock", + "OWC Skeleton Stock", + "No Stock" + ], + "perk": [ + "Bullet Return", + "Headshot Slow", + "Fast Switch", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A", + "Bipod" + ], + "ammo": ["15 Round Reload", "20 Round Reload"] + } + ], + "DL_Q33": [ + { + "muzzle": [ + "OWC Light Suppressor", + "Tactical Suppressor", + "Monolithic Suppressor", + "RTC Light Muzzle Brake", + "MIP Light FLash Guard", + "RTC Compensator" + ], + "barrel": ["MIP Light", ".408 Standard", "Free Floating"], + "optic": [ + "Tactical Scope", + "3x Tactical Scope", + "4x Tactical Scope", + "6x Tactical Scope" + ], + "stock": [ + "YKM Light Stock", + "MIP Strike Stock", + "OWC Skeleton Stock", + "OWC Ranger Stock" + ], + "perk": [ + "Bullet Return", + "Headshot Slow", + "Fast Switch", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["OWC Laser - Tactical"], + "underbarrel": ["Bipod"], + "ammo": ["Extended Mag A", "Large Extended Mag B"] + } + ], + "Locus": [ + { + "muzzle": [ + "OWC Light Suppressor", + "Tactical Suppressor", + "Monolithic Suppressor", + "RTC Light Muzzle Brake", + "MIP Light FLash Guard", + "RTC Compensator" + ], + "barrel": [ + "YKM Lightweight Short", + "YKM Lightweight Long", + "YKM Standard" + ], + "optic": [ + "Tactical Scope", + "3x Tactical Scope", + "4x Tactical Scope", + "6x Tactical Scope" + ], + "stock": ["YKM Light Stock", "OWC Skeleton Stock", "RTC Steady Stock"], + "perk": [ + "Bullet Return", + "Headshot Slow", + "Fast Switch", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["OWC Laser - Tactical"], + "ammo": [ + "10 Round Reload", + "12 Round Reload", + "OWC Stopping Power Reload" + ], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "NA_45": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "MIP Light FLash Guard", + "Tactical Suppressor" + ], + "barrel": ["MIP Custom Light", "RTC Modified", "OWC Tac Long"], + "optic": [ + "Tactical Scope", + "3x Tactical Scope", + "4x Tactical Scope", + "6x Tactical Scope" + ], + "stock": ["YKM Light Stock", "OWC Skeleton Stock", "RTC Steady Stock"], + "perk": [ + "Bullet Return", + "Headshot Slow", + "Fast Switch", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["OWC Laser - Tactical"], + "underbarrel": [ + "Operator Foregrip", + "Tactical Foregrip A", + "Heavy Duty Trigger", + "Merc Foregrip", + "Light Trigger", + "Bipod", + "Strike Foregrip", + "Ranger Foregrip" + ], + "ammo": ["Fragment Ammo", "High Explosive Ammo", "Electromagnetic Ammo"] + } + ], + "Outlaw": [ + { + "muzzle": [ + "OWC Light Suppressor", + "Tactical Suppressor", + "Monolithic Suppressor", + "RTC Light Muzzle Brake", + "MIP Light FLash Guard", + "RTC Compensator" + ], + "barrel": ["MIP Material Cowboy", "MIP Tac Long", "MIP Steady"], + "optic": [ + "Tactical Scope", + "3x Tactical Scope", + "4x Tactical Scope", + "6x Tactical Scope" + ], + "stock": [ + "YKM Light Stock", + "OWC Skeleton Stock", + "RTC Steady Stock", + "YKM Combat Stock", + "MIP Strike Stock" + ], + "perk": [ + "Bullet Return", + "Headshot Slow", + "Fast Switch", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["OWC Laser - Tactical"], + "underbarrel": ["Bipod"], + "ammo": ["9 Round Reload", "12 Round Reload"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "Rytec_AMR": [ + { + "muzzle": [ + "Tactical Suppressor", + "OWC Light Suppressor", + "Monolithic Suppressor", + "RTC Compensator", + "MIP Light FLash Guard", + "RTC Light Muzzle Brake" + ], + "barrel": [ + "MIP Light Barrel (Short)", + "MIP Extended Light Barrel ", + "OWC Marksman" + ], + "optic": [ + "Tactical Scope", + "3x Tactical Scope", + "4x Tactical Scope", + "6x Tactical Scope" + ], + "stock": ["YKM Light Stock", "OWC Skeleton Stock", "RTC Steady Stock"], + "perk": [ + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable", + "Bullet Return", + "Headshot Slow" + ], + "laser": ["OWC Laser - Tactical"], + "underbarrel": ["Bipod"], + "ammo": ["25x59mm Thermite Mag", "25x59mm Explosive Mag"], + "rear_grip": [ + "Granulated Grip Tape", + "Ruberized Grip Tape", + "Stippled Grip Tape" + ] + } + ], + "S36": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "YKM Light Flashguard", + "Monolithic Suppressor" + ], + "barrel": [ + "Compagnie Generale Sevier - Light Barrel", + "Compagnie Generale Sevier - Short Barrel", + "MIP Extended Light Barrel" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": ["YKM Light Stock", "RTC Steady Stock", "YKM Combat Stock"], + "perk": [ + "Headshot XP", + "Stealth Kill", + "Empty Reload", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A", + "Bipod" + ], + "ammo": ["75 Round Belt", "100 Round Belt"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "UL736": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "YKM Light Flashguard", + "Monolithic Suppressor" + ], + "barrel": [ + "RTC 12.4'' Light Barrel", + "RTC 25.4'' Extended Barrel", + "RTC 18.4'' Short" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": ["YKM Light Stock", "YKM Combat Stock", "RTC Steady Stock"], + "perk": [ + "Headshot XP", + "Stealth Kill", + "Empty Reload", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A", + "Bipod" + ], + "ammo": ["50 Round Reload", "60 Round Reload"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "RPD": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": [ + "OWC Heavy Barrel", + "OWC Compact Barrel", + "OWC Extended Barrel" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": ["YKM Light Stock", "RTC Steady Stock", "No Stock"], + "perk": [ + "Headshot XP", + "Stealth Kill", + "Empty Reload", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A", + "Bipod", + "Snatch Foregrip" + ], + "ammo": ["150 Round Belt", "200 Round Belt"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "M4LMG": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "YKM Light Flashguard", + "Monolithic Suppressor" + ], + "barrel": ["MIP Ultralight Barrel", "MIP Short Barrel"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": [ + "YKM Light Stock", + "No Stock", + "YKM Combat Stock", + "RTC Steady Stock" + ], + "perk": [ + "Headshot XP", + "Stealth Kill", + "Empty Reload", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Tactical Foregrip A" + ], + "ammo": ["30 Round Light Reload", "40 Round Light Reload"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "Chopper": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "YKM Light Flashguard", + "Monolithic Suppressor" + ], + "barrel": ["Chopper Special Forces", "Chopper Infantry", "Chopper Heavy"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": ["YKM Light Stock", "YKM Combat Stock", "MIP Strike Stock"], + "perk": [ + "Headshot XP", + "Stealth Kill", + "Empty Reload", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": [ + "RTC Laser 1mW", + "MIP Laser 5mW", + "RTC Laser - Merc", + "YKM Laser - Ranger", + "OWC Laser - Tactical" + ], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A", + "Bipod", + "Heavy Handle" + ], + "ammo": ["120 Round Reload", "150 Round Reload"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "Holger_26": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": ["MIP Light", "MIP Light Barrel (Short)"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": [ + "No Stock", + "YKM Light Stock", + "YKM Combat Stock", + "RTC Steady Stock" + ], + "perk": [ + "Stealth Kill", + "Empty Reload", + "FMJ", + "Sleight of Hand", + "Long Shot", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Tactical Foregrip A", + "Bipod", + "Ranger Foregrip" + ], + "ammo": [ + "Holger 26K Double Stack Carbine Mag", + "Holger 26C Lightweight Polymer Mag" + ], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "Hades": [ + { + "muzzle": [ + "OWC Light Suppressor", + "Agency Suppressor", + "Infantry Compensator", + "MIP Flashguard", + "OWC Eliminator", + "RTC Muzzle Brake" + ], + "barrel": [ + "Rapid Fire Barrel", + "Long-Range Barrel", + "MIP Extended Light Barrel" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": [ + "Light Weight Stock", + "Marathon Stock", + "No Stock", + "Agile Stock" + ], + "perk": [ + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable", + "Headshot XP", + "Empty Reload" + ], + "laser": ["1mW Steady Aim Laser", "5mW Combat Laser", "Aim Assist Laser"], + "underbarrel": ["Crossbar"], + "ammo": ["84 Round Hybrid Mag"], + "rear_grip": [ + "Sturdy Grip Tape", + "Rustle Grip Tape", + "Firm Grip Tape", + "Non-Slip Foregrip" + ] + } + ], + "RUS_79U": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": [ + "MIP Light Barrel (Short)", + "YKM Integral Suppressor Light", + "OWC Marksman" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "Tactical Scope", + "3x Tactical Scope" + ], + "stock": [ + "OWC Skeleton Stock", + "MIP Strike Stock", + "YKM Combat Stock", + "No Stock" + ], + "perk": [ + "Wild Hip Fire", + "Double Kill", + "Fast Reload Kill", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": [ + "38 Round Extended Mag", + "50 Round Extended Mag", + "38 Round Fast Reload" + ], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "Chicom": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": ["MIP Light", "YKM Integral Suppressor Light", "OWC Marksman"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "Tactical Scope", + "3x Tactical Scope" + ], + "stock": ["YKM Light Stock", "MIP Strike Stock", "YKM Combat Stock"], + "perk": [ + "Wild Hip Fire", + "Double Kill", + "Fast Reload Kill", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": ["39 Round Extended Mag", "45 Round Extended Mag"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "PDW_57": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": ["MIP Extended Light Barrel", "OWC Marksman"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "Tactical Scope", + "3x Tactical Scope" + ], + "stock": ["YKM Light Stock", "MIP Strike Stock", "YKM Combat Stock"], + "perk": [ + "Wild Hip Fire", + "Double Kill", + "Fast Reload Kill", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Merc Foregrip", + "OWC Foregrip", + "Ranger Foregrip", + "Operator Foregrip" + ], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "Razorback": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": ["MIP Extended Light Barrel", "OWC Marksman"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "Tactical Scope", + "3x Tactical Scope" + ], + "stock": ["YKM Light Stock", "MIP Strike Stock", "YKM Combat Stock"], + "perk": [ + "Rapid Fire", + "Wild Hip Fire", + "Double Kill", + "Fast Reload Kill", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "OWC Foregrip" + ], + "ammo": ["Extended Mag A"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "MSMC": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": ["OWC Ranger", "MIP Light", "OWC Marksman"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "Tactical Scope", + "3x Tactical Scope" + ], + "stock": [ + "YKM Light Stock", + "MIP Strike Stock", + "YKM Combat Stock", + "No Stock" + ], + "perk": [ + "Wild Hip Fire", + "Double Kill", + "Fast Reload Kill", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": ["30 Round Fast Reload", "Fast Reload", "36 Round Extended Mag"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "HG_40": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": [ + "MIP Light Barrel (Short)", + "YKM Integral Suppressor", + "OWC Marksman" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "Tactical Scope", + "3x Tactical Scope" + ], + "stock": [ + "YKM Light Stock", + "RTC Steady Stock", + "YKM Combat Stock", + "OWC Skeleton Stock", + "No Stock" + ], + "perk": [ + "Wild Hip Fire", + "Double Kill", + "Fast Reload Kill", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": [ + "40 Round Extended Mag", + "40 Round Fast Reload", + "45 Round Fast Reload" + ], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "Pharo": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": ["MIP Light", "MIP Light Barrel (Short)", "OWC Marksman"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "Tactical Scope", + "3x Tactical Scope" + ], + "stock": ["YKM Light Stock", "YKM Combat Stock", "MIP Strike Stock"], + "perk": [ + "Wild Hip Fire", + "Double Kill", + "Fast Reload Kill", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": ["44 Round Extended Mag", "Fast Reload", "36 Round Fast Reload"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "GKS": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": [ + "MIP Light Barrel (Short)", + "YKM Integral Suppressor", + "OWC Marksman" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "Tactical Scope", + "3x Tactical Scope" + ], + "stock": ["YKM Light Stock", "RTC Steady Stock", "YKM Combat Stock"], + "perk": [ + "Wild Hip Fire", + "Double Kill", + "Fast Reload Kill", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": [ + "40 Round Extended Mag", + "45 Round Extended Mag", + "32 Round Fast Reload" + ], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "Cordite": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": ["MIP Extended Light Barrel", "OWC Marksman"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "Tactical Scope", + "3x Tactical Scope" + ], + "stock": ["YKM Light Stock", "MIP Strike Stock", "YKM Combat Stock"], + "perk": [ + "Wild Hip Fire", + "Double Kill", + "Fast Reload Kill", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "OWC Foregrip" + ], + "ammo": ["48 Round Extended Mag", "56 Round Extended Mag"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "QQ9": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": [ + "MIP Extended Light Barrel", + "MIP Tactical Barrel", + "RTC Recon Tac Long", + "Monolithic Integral Suppressor" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "Tactical Scope", + "3x Tactical Scope" + ], + "stock": [ + "No Stock", + "YKM Light Stock", + "YKM Combat Stock", + "MIP Strike Stock" + ], + "perk": [ + "Wild Hip Fire", + "Double Kill", + "Fast Reload Kill", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": ["45 Round Extended Mag", "Fast Reload", "10mm 30 Round Reload"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "Fennec": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": [ + "MIP Light", + "MIP Extended Light Barrel", + "MIP Light Barrel (Short)", + "YKM Integral Suppressor Light" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "Tactical Scope", + "3x Tactical Scope" + ], + "stock": [ + "YKM Light Stock", + "RTC Steady Stock", + "YKM Combat Stock", + "No Stock" + ], + "perk": [ + "Akimbo", + "Wild Hip Fire", + "Double Kill", + "Fast Reload Kill", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": [ + "RTC Laser 1mW", + "MIP Laser 5mW", + "YKM Laser - Ranger", + "OWC Laser - Tactical", + "RTC Laser - Merc" + ], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": ["Extended Mag A", "Fast Reload", "Light Mag"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "AGR_556": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": ["MIP Light", "OWC Marksman", "MIP Extended Light Barrel"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "Tactical Scope", + "3x Tactical Scope" + ], + "stock": ["YKM Light Stock", "RTC Steady Stock", "YKM Combat Stock"], + "perk": [ + "Wild Hip Fire", + "Double Kill", + "Fast Reload Kill", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": [ + "Extended Mag A", + "30 Round 5.56mm Mag", + "60 Round 5.56mm Reload" + ], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "QXR": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": ["MIP Light", "MIP Light Barrel (Short)", "OWC Marksman"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "Tactical Scope", + "3x Tactical Scope" + ], + "stock": [ + "YKM Light Stock", + "MIP Strike Stock", + "YKM Combat Stock", + "No Stock" + ], + "perk": [ + "Enhanced Bolt", + "Wild Hip Fire", + "Double Kill", + "Fast Reload Kill", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A" + ], + "ammo": ["Extended Mag A", "Fast Reload"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "PP19_Bizon": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": ["RTC Sawed-Off", "MIP Extended Light Barrel", "OWC Marksman"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "Tactical Scope", + "3x Tactical Scope" + ], + "stock": [ + "YKM Light Stock", + "OWC Skeleton Stock", + "RTC Steady Stock", + "No Stock" + ], + "perk": [ + "Wild Hip Fire", + "Double Kill", + "Fast Reload Kill", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "ammo": ["Extended Mag A", "Large Caliber Ammo A"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "MX9": [ + { + "muzzle": [ + "RTC Muzzle Brake", + "MIP Flashguard", + "OWC Light Suppressor", + "Infantry Compensator", + "OWC Eliminator", + "Agency Suppressor" + ], + "barrel": ["MIP Extended Light Barrel", "Built-in Silence Barrel "], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": [ + "Light Weight Stock", + "Marathon Stock", + "No Stock", + "Agile Stock" + ], + "perk": [ + "Tough", + "FMJ", + "Sleight of Hand", + "Long Shot", + "Melee Master", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["1mW Steady Aim Laser", "5mW Combat Laser", "Aim Assist Laser"], + "underbarrel": [ + "Foregrip", + "Infiltrator Foregrip", + "Patrol Foregrip", + "Strike Foregrip", + "Tactical Foregrip A" + ], + "ammo": ["Hybrid Mag for MX9", "Large Caliber Ammo"], + "rear_grip": ["Rustle Grip Tape", "Sturdy Grip Tape", "Firm Grip Tape"] + } + ], + "HS2126": [ + { + "muzzle": [ + "Tactical Suppressor", + "OWC Light Compensator", + "Choke", + "RTC Light Muzzle Brake", + "Monolithic Suppressor", + "Flash Guard" + ], + "barrel": [ + "YKM Light Barrel (Long)", + "YKM Light Barrel (Short)", + "YKM Heavy Barrel" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "Tactical Scope", + "3x Tactical Scope" + ], + "stock": ["MIP Stalker Stock", "YKM Light Stock", "YKM Combat Stock"], + "perk": [ + "Sleight of Hand", + "Speed Up Kill", + "Slide Flak Jacket", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "OWC Laser - Tactical", "MIP Laser 5mW"], + "underbarrel": ["Strike Foregrip", "Merc Foregrip"], + "ammo": [ + "20 Round Extended Reloadcase", + "28 Round Extended Reloadcase", + "FF Birdshot" + ], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "BY15": [ + { + "muzzle": [ + "Tactical Suppressor", + "Marauder Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Choke", + "Monolithic Suppressor", + "Flash Guard" + ], + "barrel": [ + "RTC Extended Light Barrel", + "Sawed-Off Barrel (-3 Ammo)", + "Extended Barrel (+2 Ammo)" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "Tactical Scope", + "3x Tactical Scope" + ], + "stock": [ + "YKM Light Stock", + "YKM Combat Stock", + "RTC Steady Stock", + "OWC Ranger Stock", + "No Stock" + ], + "perk": [ + "Sleight of Hand", + "Speed Up Kill", + "Slide Flak Jacket", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "OWC Laser - Tactical", "MIP Laser 5mW"], + "underbarrel": [ + "Tactical Guard", + "Strike Foregrip", + "Operator Foregrip", + "Tactical Foregrip A", + "Merc Foregrip", + "Steady Guard" + ], + "ammo": ["Tube Extension", "500gr Slug"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "HS0405": [ + { + "muzzle": [ + "Tactical Suppressor", + "OWC Light Compensator", + "Choke", + "RTC Light Muzzle Brake", + "Monolithic Suppressor", + "Flash Guard" + ], + "barrel": ["RTC Extended Light Barrel", "Sawed-Off Barrel (-3 Ammo)"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "Tactical Scope", + "3x Tactical Scope" + ], + "stock": ["YKM Light Stock", "No Stock"], + "perk": [ + "Sleight of Hand", + "Speed Up Kill", + "Slide Flak Jacket", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "OWC Laser - Tactical", "MIP Laser 5mW"], + "underbarrel": ["Strike Foregrip", "Merc Foregrip"], + "ammo": ["Tube Extension", "500gr Slug"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "Striker": [ + { + "muzzle": [ + "Tactical Suppressor", + "OWC Light Compensator", + "Choke", + "RTC Light Muzzle Brake", + "Monolithic Suppressor", + "Flash Guard" + ], + "barrel": [ + "Light Barrel (Long)", + "Light Barrel (Short)", + "OWC Customized Heavy Barrel" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "Tactical Scope", + "3x Tactical Scope" + ], + "stock": ["MIP Stalker Stock", "YKM Light Stock", "YKM Combat Stock"], + "perk": [ + "Sleight of Hand", + "Speed Up Kill", + "Slide Flak Jacket", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "OWC Laser - Tactical", "MIP Laser 5mW"], + "underbarrel": ["Strike Foregrip", "Merc Foregrip"], + "ammo": ["16 Round Extended Reloadcase", "Fast Reloadcase", "500gr Slug"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "KRM_262": [ + { + "muzzle": [ + "Tactical Suppressor", + "Marauder Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Choke", + "Monolithic Suppressor", + "Flash Guard" + ], + "barrel": [ + "RTC Light Extended Barrel", + "Sawed-Off Barrel (-3 Ammo)", + "Extended Barrel (+2 Ammo)" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "Tactical Scope", + "3x Tactical Scope" + ], + "stock": [ + "YKM Light Stock", + "YKM Combat Stock", + "RTC Steady Stock", + "MIP Stalker Stock", + "No Stock" + ], + "perk": [ + "Sleight of Hand", + "Speed Up Kill", + "Slide Flak Jacket", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "OWC Laser - Tactical", "MIP Laser 5mW"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Tactical Foregrip A" + ], + "ammo": ["Tube Extension", "500gr Slug"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "Echo": [ + { + "muzzle": [ + "Tactical Suppressor", + "OWC Light Compensator", + "Choke", + "RTC Light Muzzle Brake", + "Monolithic Suppressor", + "Flash Guard" + ], + "barrel": [ + "MIP Extended Light Barrel", + "MIP Light Barrel (Short)", + "OWC Marksman" + ], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "Tactical Scope", + "3x Tactical Scope" + ], + "stock": [ + "No Stock", + "YKM Light Stock", + "YKM Combat Stock", + "MIP Stalker Stock" + ], + "perk": [ + "Sleight of Hand", + "Speed Up Kill", + "Slide Flak Jacket", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "OWC Laser - Tactical", "MIP Laser 5mW"], + "underbarrel": ["Operator Foregrip", "Merc Foregrip"], + "ammo": ["Extended Mag C", "Extended Mag D", "Slug Reload"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "R9_0": [ + { + "muzzle": [ + "Tactical Suppressor", + "OWC Light Compensator", + "Choke", + "RTC Light Muzzle Brake", + "Monolithic Suppressor", + "Flash Guard" + ], + "barrel": ["MIP Extended Light Barrel", "MIP Light Barrel (Short)"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "Tactical Scope", + "3x Tactical Scope" + ], + "stock": [ + "No Stock", + "YKM Light Stock", + "YKM Combat Stock", + "MIP Stalker Stock" + ], + "ammo": ["Tube Extension", "Slug Reload"], + "perk": [ + "Sleight of Hand", + "Speed Up Kill", + "Slide Flak Jacket", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "OWC Laser - Tactical", "MIP Laser 5mW"], + "underbarrel": ["Ranger Foregrip", "Operator Foregrip", "Merc Foregrip"], + "smoothbore": [ + "MFT Heavy Smoothbore", + "MFT Ultra Light Smoothbore", + "MFT Urban Combat" + ], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "Kilo_Bolt_Action": [ + { + "muzzle": [ + "OWC Light Suppressor", + "Tactical Suppressor", + "Monolithic Suppressor", + "RTC Light Muzzle Brake", + "MIP Light FLash Guard", + "RTC Compensator" + ], + "barrel": ["MIP Extended Light Barrel", "OWC Ranger", "OWC Marksman"], + "optic": ["3x Tactical Scope", "4x Tactical Scope", "6x Tactical Scope"], + "stock": ["YKM Light Stock", "YKM Combat Stock", "RTC Steady Stock"], + "perk": [ + "Bullet Return", + "Headshot Slow", + "Fast Switch", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["OWC Laser - Tactical"], + "underbarrel": ["Bipod"], + "ammo": ["Fast Reload", "OWC Stopping Power Reload", "Thermite Reload"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "SKS": [ + { + "muzzle": [ + "OWC Light Suppressor", + "Tactical Suppressor", + "Monolithic Suppressor", + "RTC Light Muzzle Brake", + "MIP Light FLash Guard" + ], + "barrel": ["MIP Extended Light Barrel", "OWC Marksman", "MIP Light"], + "optic": ["3x Tactical Scope", "4x Tactical Scope", "6x Tactical Scope"], + "stock": ["No Stock", "OWC Ranger Stock", "RTC Steady Stock"], + "perk": [ + "Bullet Return", + "Headshot Slow", + "Fast Switch", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A", + "Bipod" + ], + "ammo": ["Extended Mag A", "10 Round Light Reload"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "SP_R_208": [ + { + "muzzle": [ + "OWC Light Suppressor", + "Tactical Suppressor", + "Monolithic Suppressor", + "RTC Light Muzzle Brake", + "MIP Light FLash Guard", + "RTC Compensator" + ], + "barrel": [ + "RTC Light Extended Barrel", + "RTC 26 Heavy Long Barrel", + "RTC Light Monolithic Silencer Barrel", + "RTC Light Barrel" + ], + "optic": ["3x Tactical Scope", "4x Tactical Scope", "6x Tactical Scope"], + "stock": [ + "YKM Light Stock", + "YKM Combat Stock", + "RTC Steady Stock", + "OWC Skeleton Stock" + ], + "perk": [ + "Bullet Return", + "Headshot Slow", + "Fast Switch", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A", + "Bipod" + ], + "ammo": ["Extended Mag A", ".300 5 Round Reload", ".338 5 Round Reload"], + "bolt": ["Light Bolt", "Heavy Bolt"] + } + ], + "MK2": [ + { + "muzzle": [ + "OWC Light Suppressor", + "Tactical Suppressor", + "Monolithic Suppressor", + "RTC Light Muzzle Brake", + "MIP Light FLash Guard", + "RTC Compensator" + ], + "barrel": ["18.0 Sport Barrel", "20.0 Forged Barrel", "OWC Marksman"], + "optic": [ + "Red Dot Sight 1", + "Red Dot Sight 2", + "Red Dot Sight 3", + "Red Dot Sight 4", + "Red Dot Sight 5", + "Red Dot Sight 6", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "6x Tactical Scope" + ], + "stock": [ + "MIP Sport Stock", + "Ultralight Hollow", + "Custom Accuracy Stock", + "Cartridge Stock" + ], + "perk": [ + "Bullet Return", + "Headshot Slow", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Ranger Foregrip", + "Tactical Foregrip A", + "Bipod" + ], + "ammo": [".30 - 30 Ammo"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "MW11": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": [".45 Compact", ".45 Tac Long", ".45 Suppressor Light"], + "optic": [ + "Red Dot Sight", + "Classic Holographic", + "Holographic Sight 1", + "Holographic Sight 2", + "Holographic Sight 3" + ], + "perk": ["FMJ", "Sleight of Hand", "Wounding", "Full Ammo", "Disable"], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "trigger_action": [ + "Match Grade Trigger", + "Heavy Duty Trigger", + "Lightweight Trigger" + ], + "ammo": ["15 Round Reload", "20 Round Reload"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "J358": [ + { + "muzzle": [ + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "MIP Light FLash Guard" + ], + "barrel": ["J358 Short", "J358 Custom Light", "J358 Long"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope" + ], + "perk": ["FMJ", "Sleight of Hand", "Wounding", "Full Ammo", "Disable"], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "trigger_action": [ + "Match Grade Trigger", + "Heavy Duty Trigger", + "Lightweight Trigger" + ], + "ammo": ["8 Round Reload", "Stopping Power Reload"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "50_GS": [ + { + "muzzle": [ + "OWC Light Suppressor", + "OWC Light Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": ["MIP Extended Light Barrel", "OWC Marksman"], + "optic": ["Red Dot Sight", "Holographic Sight", "Tactical Scope"], + "perk": [ + "Akimbo", + "FMJ", + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "trigger_action": [ + "Match Grade Trigger", + "Heavy Duty Trigger", + "Lightweight Trigger" + ], + "ammo": ["Extended Mag A", "Large Extended Mag B"], + "rear_grip": [ + "Stippled Grip Tape", + "Granulated Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "Renetti": [ + { + "muzzle": [ + "OWC Light Suppressor", + "RTC Compensator", + "RTC Light Muzzle Brake", + "Tactical Suppressor", + "MIP Light FLash Guard", + "Monolithic Suppressor" + ], + "barrel": ["MIP Extended Light Barrel", "OWC Ranger", "MIP Light"], + "optic": ["Red Dot Sight", "Holographic Sight", "Tactical Scope"], + "stock": ["Folding Stock", "Control", "Combo"], + "perk": ["FMJ", "Sleight of Hand", "Wounding", "Full Ammo", "Disable"], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "trigger_action": [ + "Match Grade Trigger", + "Heavy Duty Trigger", + "Lightweight Trigger" + ], + "ammo": ["Extended Mag A", "Large Extended Mag B"], + "rear_grip": [ + "Handmade Grip Tape", + "Stippled Grip Tape", + "Ruberized Grip Tape" + ] + } + ], + "Shorty": [ + { + "muzzle": [ + "Tactical Suppressor", + "OWC Light Compensator", + "Choke", + "RTC Light Muzzle Brake", + "Marauder Suppressor", + "Monolithic Suppressor", + "Flash Guard" + ], + "optic": ["Red Dot Sight", "Holographic Sight", "Tactical Scope"], + "stock": ["YKM Light Stock", "YKM Combat Stock", "RTC Steady Stock"], + "perk": [ + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable", + "Speed Up Kill", + "Slide Flak Jacket" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": [ + "Strike Foregrip", + "Merc Foregrip", + "Operator Foregrip", + "Tactical Foregrip A" + ], + "guard": ["OWC Stable", "OWC Commander", "OWC Slim"], + "ammo": ["Slug Reload"] + } + ], + "Crossbow": [ + { + "Bowstring": ["16 Bowstring", "20 Bowstring"], + "Limb": ["Heavy Limb", "Enhanced Limb", "Customized Limb"], + "optic": [ + "Red Dot Sight", + "Holographic Sight", + "3x Tactical Scope", + "4x Tactical Scope", + "4.4x Tactical Scope" + ], + "stock": ["Watcher Stock", "Ranger Stock", "Archer Stock"], + "perk": [ + "Sleight of Hand", + "Wounding", + "Full Ammo", + "Disable", + "Tough", + "Long Shot", + "Melee Master" + ], + "laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"], + "underbarrel": ["Strike Foregrip", "Merc Foregrip", "Quickdraw"], + "Bolt": ["Thermite Bolt", "Gas Grenade Bolt", "Sticky Grenade Bolt"] + } + ] +} diff --git a/util/Data/builds.json b/util/Data/builds.json @@ -0,0 +1,772 @@ +{ + "Main": [ + { + "Name": "AK-47", + "Type": 0, + "Attachments": [ + { "Name": "MIP Extended Light Barrel", "Type": 5 }, + { "Name": "No Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "5.45 Large Caliber", "Type": 7 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/772099026195316746/847174280823308308/image3.png?width=937&height=562" + }, + { + "Name": "AK117", + "Type": 0, + "Attachments": [ + { "Name": "YKM Integral Supprssor", "Type": 5 }, + { "Name": "No Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "Tactical Foregrip B", "Type": 1 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ] + }, + { + "Name": "ASM10", + "Type": 0, + "Attachments": [ + { "Name": "MIP Light Flash Guard", "Type": 4 }, + { "Name": "No Stock", "Type": 6 }, + { "Name": "Slight of Hand", "Type": 8 }, + { "Name": "40 Round Extended Mag", "Type": 7 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/691133003866439701/861887618820472842/Screenshot_20210706-1353282.png" + }, + { + "Name": "BK57", + "Type": 0, + "Attachments": [ + { "Name": "MIP Extended Light Barrel", "Type": 5 }, + { "Name": "YKM Combat Stock", "Type": 6 }, + { "Name": "40 Round Fast Reload", "Type": 7 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/772099026195316746/847174279287668776/image0.png?width=937&height=562" + }, + { + "Name": "DR-H", + "Type": 0, + "Attachments": [ + { "Name": "No Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 3 }, + { "Name": "25 Round OTM Mag", "Type": 7 }, + { "Name": "Tactical Foregrip A", "Type": 1 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/772099026195316746/847174261193965648/image3.png?width=937&height=562" + }, + { + "Name": "HBRa3", + "Type": 0, + "Attachments": [ + { "Name": "MIP Light", "Type": 5 }, + { "Name": "No Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "Tactical Foregrip A", "Type": 1 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/772099026195316746/847174262041346128/image5.png?width=937&height=562" + }, + { + "Name": "HVK-30", + "Type": 0, + "Attachments": [ + { "Name": "Monolithic Suppressor", "Type": 4 }, + { "Name": "MIP Light", "Type": 5 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "Large Caliber Ammo", "Type": 7 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/772099026195316746/847174261705146458/image4.png?width=937&height=562" + }, + { + "Name": "ICR-1", + "Type": 0, + "Attachments": [ + { "Name": "YKM Integral Supprssor Light", "Type": 5 }, + { "Name": "No Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "Tactical Foregrip A", "Type": 1 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/772099026195316746/847174263286661140/image8.png?width=937&height=562" + }, + { + "Name": "KN-44", + "Type": 0, + "Attachments": [ + { "Name": "MIP Light Muzzle Brake", "Type": 4 }, + { "Name": "MIP Light Barrel(Short)", "Type": 5 }, + { "Name": "No Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/772099026195316746/847174262397075516/image6.png?width=937&height=562" + }, + { + "Name": "LK24", + "Type": 0, + "Attachments": [ + { "Name": "YKM Integral Suppressor Light", "Type": 5 }, + { "Name": "No Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "Tactical Foregrip A", "Type": 1 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/772099026195316746/847174263684857907/image9.png?width=937&height=562" + }, + { + "Name": "M4", + "Type": 0, + "Attachments": [ + { "Name": "YKM Integral Suppressor Light", "Type": 5 }, + { "Name": "No Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "Tactical Foregrip A", "Type": 1 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/772099026195316746/847174279689928714/image1.png?width=937&height=562" + }, + { + "Name": "M16", + "Type": 0, + "Attachments": [ + { "Name": "OWC Light Compensator", "Type": 4 }, + { "Name": "MIP Strike Stock", "Type": 6 }, + { "Name": "Rubberized Grip Tape", "Type": 2 }, + { "Name": "Operator Foregrip", "Type": 1 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/772099026195316746/847174281255190568/image4.png?width=937&height=562" + }, + { + "Name": "Man-O-War", + "Type": 0, + "Attachments": [ + { "Name": "MIP Light Barrel(Short)", "Type": 5 }, + { "Name": "YKM Combat Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "Tactical Foregrip A", "Type": 1 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/772099026195316746/847174262841540658/image7.png?width=937&height=562" + }, + { + "Name": "Peacekeeper MK2", + "Type": 0, + "Attachments": [ + { "Name": "Taskforce Barrel", "Type": 5 }, + { "Name": "Agile Stock", "Type": 6 }, + { "Name": "Firm Grip Tape", "Type": 2 }, + { "Name": "Extended Mag A", "Type": 7 }, + { "Name": "Field Agent Foregrip", "Type": 1 } + ], + "URL": "https://media.discordapp.net/attachments/772099026195316746/847174260522090516/image2.png?width=937&height=562" + }, + { + "Name": "Type 25", + "Type": 0, + "Attachments": [ + { "Name": "MIP Light Barrel(Short)", "Type": 5 }, + { "Name": "YKM Light Stock", "Type": 6 }, + { "Name": "Stopping Power Reload", "Type": 7 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/772099026195316746/847174281698738216/image5.png?width=937&height=562" + }, + { + "Name": "ASVAL", + "Type": 0, + "Attachments": [ + { "Name": "MIP Quick Response Barrel", "Type": 5 }, + { "Name": "OWC Skeleton Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "Large Extended Mag B", "Type": 7 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/772099026195316746/847174259708657695/image0.png?width=937&height=562" + }, + { + "Name": "FR .556", + "Type": 0, + "Attachments": [ + { "Name": "MIP Light Barrel(Short)", "Type": 5 }, + { "Name": "RTC Steady Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "OWC Laser-Tactical", "Type": 3 }, + { "Name": "Long Shot", "Type": 8 } + ], + "URL": "https://media.discordapp.net/attachments/772099026195316746/847174260052459540/image1.png?width=937&height=562" + }, + { + "Name": "CR-56 AMAX", + "Type": 0, + "Attachments": [ + { "Name": "Gunner Stock", "Type": 6 }, + { "Name": "Red Dot Sight", "Type": 0 }, + { "Name": "OWC Laser-Tactical", "Type": 3 }, + { "Name": "M67 Ammo", "Type": 7 }, + { "Name": "Granulated Grip Tape", "Type": 2 } + ], + "URL": "https://media.discordapp.net/attachments/691133003866439701/861891137254326272/brave_8pS8PhHl4P.png?width=1128&height=634" + }, + { + "Name": "AGR 556", + "Type": 1, + "Attachments": [ + { "Name": "OWC Light Compensator", "Type": 4 }, + { "Name": "MIP Extended Light Barrel", "Type": 5 }, + { "Name": "YKM Light Stock", "Type": 6 }, + { "Name": "30 Round 5.56mm Mag", "Type": 7 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/691133003866439701/861887638419931176/Screenshot_20210706-1402032.png?width=881&height=495" + }, + { + "Name": "Chicom", + "Type": 1, + "Attachments": [ + { "Name": "MIP Light", "Type": 5 }, + { "Name": "YKM Combat Stock", "Type": 6 }, + { "Name": "Stippled Grip Tape", "Type": 2 }, + { "Name": "Strike Foregrip", "Type": 1 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "" + }, + { + "Name": "Cordite", + "Type": 1, + "Attachments": [ + { "Name": "MIP Extended Light Barrel", "Type": 5 }, + { "Name": "YKM Combat Stock", "Type": 6 }, + { "Name": "Stippled Grip Tape", "Type": 2 }, + { "Name": "OWC Laser-Tactical", "Type": 3 }, + { "Name": "Sleight of Hand", "Type": 8 } + ], + "URL": "" + }, + { + "Name": "Fennec", + "Type": 1, + "Attachments": [ + { "Name": "Monolithic Supprssor", "Type": 4 }, + { "Name": "No Stock", "Type": 6 }, + { "Name": "Extended Mag A", "Type": 7 }, + { "Name": "Operator Foregrip", "Type": 1 }, + { "Name": "MIP Laser 5mW", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/767456294981992488/862753085985914930/image0.png?width=1104&height=630" + }, + { + "Name": "GKS", + "Type": 1, + "Attachments": [ + { "Name": "YKM Integral Supprssor", "Type": 5 }, + { "Name": "YKM Combat Stock", "Type": 6 }, + { "Name": "32 Round Fast Reload", "Type": 7 }, + { "Name": "Strike Foregrip", "Type": 1 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "" + }, + { + "Name": "HG 40", + "Type": 1, + "Attachments": [ + { "Name": "YKM Integral Supprssor", "Type": 5 }, + { "Name": "No Stock", "Type": 6 }, + { "Name": "Rubberized Grip Tape", "Type": 2 }, + { "Name": "40 Round Fast Reload", "Type": 7 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "" + }, + { + "Name": "MSMC", + "Type": 1, + "Attachments": [ + { "Name": "No Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "36 Round Extended Mag", "Type": 7 }, + { "Name": "OWC Laser-Tactical", "Type": 3 }, + { "Name": "Sleight of Hand", "Type": 8 } + ], + "URL": "" + }, + { + "Name": "MX9", + "Type": 1, + "Attachments": [ + { "Name": "MIP Extended Light Barrel", "Type": 5 }, + { "Name": "Agile Stock", "Type": 6 }, + { "Name": "5mW Combat Laser", "Type": 2 }, + { "Name": "Strike Foregrip", "Type": 1 }, + { "Name": "Large Caliber Ammo", "Type": 7 } + ], + "URL": "" + }, + { + "Name": "PDW-57", + "Type": 1, + "Attachments": [ + { "Name": "MIP Light Flash Guard", "Type": 4 }, + { "Name": "YKM Combat Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "OWC Laser-Tactical", "Type": 3 }, + { "Name": "Sleight of Hand", "Type": 8 } + ], + "URL": "" + }, + { + "Name": "Pharo", + "Type": 1, + "Attachments": [ + { "Name": "MIP Light Barrel (Short)", "Type": 5 }, + { "Name": "MIP Strike Stock", "Type": 6 }, + { "Name": "Stippled Grip Tape", "Type": 2 }, + { "Name": "36 Round Fast Reload", "Type": 7 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "" + }, + { + "Name": "QQ9", + "Type": 1, + "Attachments": [ + { "Name": "RTC Recon Tac Long", "Type": 5 }, + { "Name": "No Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "45 Round Extended Mag", "Type": 7 }, + { "Name": "MIP Laser 5mW", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/842014909264953354/853663337824780348/image2.png" + }, + { + "Name": "QXR", + "Type": 1, + "Attachments": [ + { "Name": "MIP Light Flash Guard", "Type": 4 }, + { "Name": "MIP Light Barrel (Short)", "Type": 5 }, + { "Name": "YKM Light Stock", "Type": 6 }, + { "Name": "OWC Laser-Tactical", "Type": 3 }, + { "Name": "Enhanced Bolt", "Type": 8 } + ], + "URL": "https://media.discordapp.net/attachments/691133003866439701/861883636013727774/Screenshot_20210706-1344422.png" + }, + { + "Name": "Razorback", + "Type": 1, + "Attachments": [ + { "Name": "YKM Combat Stock", "Type": 6 }, + { "Name": "Extended Mag A", "Type": 7 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "OWC Laser-Tactical", "Type": 3 }, + { "Name": "Rapid Fire", "Type": 8 } + ], + "URL": "https://media.discordapp.net/attachments/842014909264953354/852922742705881098/image0.png?width=1001&height=563" + }, + { + "Name": "RUS-79U", + "Type": 1, + "Attachments": [ + { "Name": "MIP Light Barrel (Short)", "Type": 5 }, + { "Name": "No Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "38 Round Fast Reload", "Type": 7 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "" + }, + { + "Name": "PP19 Bizon", + "Type": 1, + "Attachments": [ + { "Name": "Monolithic Suppressor", "Type": 4 }, + { "Name": "OWC Skeleton Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "Large Caliber Ammo A", "Type": 7 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/691133003866439701/861887619049717770/Screenshot_20210706-1351142.png?width=881&height=487" + }, + { + "Name": "Chopper", + "Type": 2, + "Attachments": [ + { "Name": "RTC Light Muzzle Brake", "Type": 4 }, + { "Name": "Chopper Infatry", "Type": 5 }, + { "Name": "Heavy Handle", "Type": 1 }, + { "Name": "OWC Laser-Tactical", "Type": 3 }, + { "Name": "FMJ", "Type": 8 } + ], + "URL": "" + }, + { + "Name": "M4LMG", + "Type": 2, + "Attachments": [ + { "Name": "MIP Ultralight Barrel", "Type": 5 }, + { "Name": "No Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "40 Round Light Reload", "Type": 7 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "" + }, + { + "Name": "RPD", + "Type": 2, + "Attachments": [ + { "Name": "No Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "Snatch Foregrip", "Type": 1 }, + { "Name": "OWC Laser-Tactical", "Type": 3 }, + { "Name": "FMJ", "Type": 8 } + ], + "URL": "" + }, + { + "Name": "S36", + "Type": 2, + "Attachments": [ + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 } + ], + "URL": "" + }, + { + "Name": "UL736", + "Type": 2, + "Attachments": [ + { "Name": "RTC 12.4\" Light Barrel", "Type": 5 }, + { "Name": "RTC Steady Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "60 Round Reload", "Type": 7 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "" + }, + { + "Name": "Holger 26", + "Type": 2, + "Attachments": [ + { "Name": "MIP Light", "Type": 5 }, + { "Name": "NO Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "Holger-26C Lightweight Polymer Mag", "Type": 7 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/540218400413188116/856109420311740436/Screenshot_20210620-151957.png?width=881&height=407" + }, + { + "Name": "Arctic .50", + "Type": 4, + "Attachments": [ + { "Name": "OWC Light Suppressor", "Type": 4 }, + { "Name": "Assassin Short", "Type": 5 }, + { "Name": "OWC Skeleton Stock", "Type": 6 }, + { "Name": "Stippled Grip Tape", "Type": 2 }, + { "Name": "FMJ", "Type": 8 } + ], + "URL": "" + }, + { + "Name": "DL Q33", + "Type": 4, + "Attachments": [ + { "Name": "OWC Light Suppressor", "Type": 4 }, + { "Name": "MIP Light", "Type": 5 }, + { "Name": "YKM Combat Stock", "Type": 6 }, + { "Name": "OWC Laser-Tactical", "Type": 3 }, + { "Name": "FMJ", "Type": 8 } + ], + "URL": "" + }, + { + "Name": "Locus", + "Type": 4, + "Attachments": [ + { "Name": "OWC Light Suppressor", "Type": 4 }, + { "Name": "YKM Lightweight Short", "Type": 5 }, + { "Name": "OWC Skeleton Stock", "Type": 6 }, + { "Name": "FMJ", "Type": 8 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/691133003866439701/861887618546139146/Screenshot_20210706-1357422.png?width=881&height=480" + }, + { + "Name": "M21 EBR", + "Type": 4, + "Attachments": [ + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 } + ], + "URL": "" + }, + { + "Name": "NA-45", + "Type": 4, + "Attachments": [ + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 } + ], + "URL": "" + }, + { + "Name": "Outlaw", + "Type": 4, + "Attachments": [ + { "Name": "MIP Memorial Cowboy", "Type": 5 }, + { "Name": "MIP Stalker Stock", "Type": 6 }, + { "Name": "Stippled Grip Tape", "Type": 2 }, + { "Name": "OWC Laser-Tactical", "Type": 3 }, + { "Name": "FMJ", "Type": 8 } + ], + "URL": "" + }, + { + "Name": "XPR-50", + "Type": 4, + "Attachments": [ + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 } + ], + "URL": "" + }, + { + "Name": "Kilo Bolt-Action", + "Type": 5, + "Attachments": [ + { "Name": "YKM Combat Stock", "Type": 5 }, + { "Name": "Stippled Grip Tape", "Type": 2 }, + { "Name": "Fast Reload", "Type": 7 }, + { "Name": "OWC Laser-Tactical", "Type": 3 }, + { "Name": "Sleight of Hand", "Type": 8 } + ], + "URL": "https://media.discordapp.net/attachments/842014909264953354/852922652452454460/image0.png?width=1001&height=563" + }, + { + "Name": "SP-R 208", + "Type": 5, + "Attachments": [ + { "Name": "RTC Light Barrel", "Type": 5 }, + { "Name": "OWC Skeleton Stock", "Type": 6 }, + { "Name": "Light Bolt", "Type": 9 }, + { "Name": "Extended Mag A", "Type": 7 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/842014909264953354/852922699063885864/image0.png?width=1001&height=563" + }, + { + "Name": "SKS", + "Type": 5, + "Attachments": [ + { "Name": "MIP Light", "Type": 5 }, + { "Name": "No Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "Operator Foregrip", "Type": 1 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/842014909264953354/852922602674454538/image0.png?width=1001&height=563" + }, + { + "Name": "MK 2", + "Type": 5, + "Attachments": [ + { "Name": "OWC Light Suppressor", "Type": 4 }, + { "Name": "18.0 Sport Barrel", "Type": 5 }, + { "Name": "MIP Sport Stock", "Type": 6 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "OWC Laser-Tactical", "Type": 3 } + ], + "URL": "https://media.discordapp.net/attachments/540218400413188116/856114522922156082/Screenshot_20210620-153228.png?width=1283&height=592" + }, + { + "Name": "BY15", + "Type": 3, + "Attachments": [ + { "Name": "Marauder Suppressor", "Type": 4 }, + { "Name": "Extended Barrel(+2)", "Type": 5 }, + { "Name": "No Stock", "Type": 6 }, + { "Name": "MIP Laser 5mW", "Type": 3 }, + { "Name": "Sleight of Hand", "Type": 8 } + ], + "URL": "" + }, + { + "Name": "Echo", + "Type": 3, + "Attachments": [ + { "Name": "Choke", "Type": 4 }, + { "Name": "No Stock", "Type": 6 }, + { "Name": "Extended Mag C", "Type": 7 }, + { "Name": "MIP Laser 5mW", "Type": 3 }, + { "Name": "Sleight of Hand", "Type": 8 } + ], + "URL": "" + }, + { + "Name": "HS0405", + "Type": 3, + "Attachments": [ + { "Name": "Choke", "Type": 4 }, + { "Name": "RTC Extended Light Barrel", "Type": 5 }, + { "Name": "No Stock", "Type": 6 }, + { "Name": "MIP Laser 5mW", "Type": 3 }, + { "Name": "Speed Up Kill", "Type": 8 } + ], + "URL": "https://media.discordapp.net/attachments/842014909264953354/852922783414616104/image0.png?width=1001&height=563" + }, + { + "Name": "HS2126", + "Type": 3, + "Attachments": [ + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 } + ], + "URL": "" + }, + { + "Name": "KRM-262", + "Type": 3, + "Attachments": [ + { "Name": "Marauder Suppressor", "Type": 4 }, + { "Name": "Extended Barrel(+2)", "Type": 5 }, + { "Name": "No Stock", "Type": 6 }, + { "Name": "MIP Laser 5mW", "Type": 3 }, + { "Name": "Sleight of Hand", "Type": 8 } + ], + "URL": "" + }, + { + "Name": "Striker", + "Type": 3, + "Attachments": [ + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 }, + { "Name": "404", "Type": 8 } + ], + "URL": "" + }, + { + "Name": ".50 GS ", + "Type": 6, + "Attachments": [ + { "Name": "Monolithic Suppressor", "Type": 4 }, + { "Name": "Granulated Grip Tape", "Type": 2 }, + { "Name": "Lightweight Trigger", "Type": 1 }, + { "Name": "OWC Laser - Tactical", "Type": 3 }, + { "Name": "Sleight of Hand", "Type": 8 } + ], + "URL": "" + }, + { + "Name": "J358", + "Type": 6, + "Attachments": [ + { "Name": "RTC Light Muzzle Brake", "Type": 4 }, + { "Name": "J358 Custom Light", "Type": 5 }, + { "Name": "Red Dot Sight 2", "Type": 0 }, + { "Name": "Stopping Power Reload", "Type": 7 }, + { "Name": "Lightweight Trigger", "Type": 10 } + ], + "URL": "https://media.discordapp.net/attachments/842014909264953354/852922819507126272/image0.png?width=1001&height=563" + }, + { + "Name": "MW11", + "Type": 6, + "Attachments": [ + { "Name": "MIP Light Flash Guard", "Type": 4 }, + { "Name": "Rubberized Grip Tape", "Type": 2 }, + { "Name": "15 Round Reload", "Type": 7 }, + { "Name": "Lightweight Trigger", "Type": 10 }, + { "Name": "MIP Laser 5mW", "Type": 3 } + ], + "URL": "" + }, + { + "Name": "Renetti", + "Type": 6, + "Attachments": [ + { "Name": "RTC Compensator", "Type": 4 }, + { "Name": "MIP Light", "Type": 5 }, + { "Name": "Handmade Grip Tape", "Type": 2 }, + { "Name": "MIP Laser 5mW", "Type": 3 }, + { "Name": "Full Ammo", "Type": 8 } + ], + "URL": "https://pbs.twimg.com/media/E2f2W6eXEAM1Yb1?format=jpg&name=large" + }, + { + "Name": "Shorty", + "Type": 6, + "Attachments": [ + { "Name": "Marauder Suppressor", "Type": 4 }, + { "Name": "RTC Steady Stock", "Type": 6 }, + { "Name": "OWC Stable", "Type": 11 }, + { "Name": "MIP Laser 5mW", "Type": 3 }, + { "Name": "Slight of Hand", "Type": 8 } + ], + "URL": "https://media.discordapp.net/attachments/692227531235000400/866204001065369620/image0.png?width=840&height=630" + }, + { + "Name": "Crossbow", + "Type": 6, + "Attachments": [ + { "Name": "28 Bow String", "Type": 12 }, + { "Name": "Heavy Limb", "Type": 13 }, + { "Name": "Archer Stock", "Type": 6 }, + { "Name": "Gas Grenade Bolt", "Type": 7 }, + { "Name": "Full Ammo", "Type": 8 } + ], + "URL": "https://media.discordapp.net/attachments/785461568464748593/882503628538126336/image0.png" + } + ], + "WeaponTypes": [ + "Assault", + "SMG", + "LMG", + "Shotgun", + "Sniper", + "Marksman", + "Pistol" + ], + "AttachmentTypes": [ + "Optic", + "Underbarrel", + "Rear Grip", + "Laser", + "Muzzle", + "Barrel", + "Stock", + "Ammunition", + "Perk", + "Bolt", + "Trigger Action", + "Guard", + "Bowstring", + "Limb" + ] +} diff --git a/util/Data/dares.json b/util/Data/dares.json @@ -0,0 +1,26 @@ +[ + "Shave your arms and send me a pic.", + "Record yourself singing a song and post it on YouTube.", + "Try to lick your own foot!", + "Message someone you havenโ€™t talked to in at least 1 year on Facebook or Instagram and take a screenshot.", + "Text your crush and ask them out on a date.", + "Cut a piece of your hair.", + "List everyone as the emoji(s) you think best fits them.", + "Change your nickname/username to whatever the group wants.", + "Send me a screenshot of your messages with the last person besides me you texted.", + "Brush your teeth with peanut butter or another condiment and send me a pic.", + "Rate everyone here 1-10 in terms of personality.", + "Take a really unflattering picture and make it your profile picture for one full day.", + "Send me a screenshot of your selfies gallery.", + "Text a random number and write โ€œI see dead peopleโ€.", + "Tell the group in detail about your first kiss.", + "Tell a joke until it makes everyone laugh.", + "Tell your girlfriend that your friends donโ€™t like her so you canโ€™t be with her anymore.", + "Brush your teeth with your best friendโ€™s toothbrush.", + "Show everyone your unshaved legs.", + "Break a raw egg on your forehead.", + "Call 5 different people and talk to them in 5 different accents.", + "Set your crushโ€™s picture as your FB profile picture.", + "Show everyone your search history for the past week." + +] +\ No newline at end of file diff --git a/util/Data/data.json b/util/Data/data.json @@ -0,0 +1 @@ +{"attachmentTypes":["Optics","Underbarrel","Rear Grip","Laser","Muzzle","Barrel","Stock","Ammunition","Perk","Bolt","Trigger Action"],"weaponTypes":["AR","SMG","LMG","Shotgun","Sniper","Marksman","Pistol"],"firingModes":["Full Auto","Burst","Semi Auto","Break Action","Pump Action","Lever Action","Bolt Action"],"penetrationLevels":["Zero","Low","Medium","High"],"reloadTypes":["Magazine","Single","Belt"],"cguns":[{"gunname":"AK-47","guntype":1,"description":"7.62x39mm assault rifle with high initial recoil and high damage over range. A 5.45x39mm magazine attachment is available for a close quarter assault rifle conversion. ","drm":[{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[33,26,23,21],"range":[21,31,55]},{"bodymultiplier":[1.25,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[25,20,17,15],"range":[14,24,36]}],"stats":[0,0,0,0,1,550,0,0,375,2,4.95,0,0,0,300,165,100,30,120,1,1.9,2.3,3.2,416.6,650,135,4.51,0,0,0,0,0],"recoil":{"hr":[0,80,80,40,10,-10,-23,-36,-49,-62,-75,-88,-101,-88,-76,-64,-51,-39,-27,-14,-2,10,23,35,47,60,72,84,97,109,122,135,148,161,174,187,172,157,142,127,112,97,82,67,52,37,22,7,-8,-23],"vr":[0,248,410,522,634,746,858,970,1082,1194,1306,1418,1530,1679,1729,1779,1829,1879,1929,1979,2027,2075,2123,2171,2219,2267,2315,2363,2411,2459,2507,2555,2603,2651,2699,2747,2773,2799,2825,2851,2877,2903,2929,2955,2981,3007,3033,3059,3085,3111]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,25,-14.8,-9.6,-8.4,0,-5,-13,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Barrel","type":6,"effects":[0,16,-11,-6.8,-5.6,0,-3,-8,0,0,0,0,0,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,10,0,0,-6.8,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-16,6,0,5.2,0,2,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-14,7.4,0,7.2,0,4,10,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-14,3.9,3.9,4,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Skeleton Stock","type":7,"effects":[0,-8,1.8,1.8,10,0,0,15,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,1.8,1.8,6.6,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,0,0,-6,-7,0,0,-14,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-2,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,3.5,0,0,0,0,-3,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"30x [5.45mm] Mag","type":8,"effects":[0,0,5.3,0,0,0,0,0,0,0,0,0,0,0,0,5,29.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0]}]},{"gunname":"AK117","guntype":1,"description":"5.45x39mm carbine. Trades high accuracy for unpredictable recoil. ","drm":[{"bodymultiplier":[1.3,1.1,1.1,1.1,1.1,1.1,1.1,1,1,1,1,1,1],"damage":[25,22,19,15],"range":[4.5,21,36.1]}],"stats":[0,0,0,0,1,769,0,0,375,2,6.95,0,0,0,285,165,100,30,120,1,1.9,2.4,3,400,733.3,135,4.56,0,0,0,0,0],"recoil":{"hr":[0],"vr":[0]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip B","type":2,"effects":[0,8,0,-13.2,-5.2,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Muzzle Brake","type":5,"effects":[0,10,6.4,-18.1,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,17,-15.4,-3.2,-8.8,0,-3,-15,0,0,0,0,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,11,0,-6,3.8,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Integral Suppressor Barrel","type":6,"effects":[0,7,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1000000,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-10,10.7,0,5,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-14,10.8,0,9.6,0,3,10,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Skeleton Stock","type":7,"effects":[0,-8,1.8,1.8,10,0,0,15,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,1.8,1.8,8,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,7,0,-3.2,-8.2,0,0,-10,0,0,0,-12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,3.5,0,0,0,0,-3,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"ASM10","guntype":1,"description":"5.45x39mm assault rifle. Improved accuracy due to an unique back-and-forth movement of the barrel and bolt carrier upon firing. ","drm":[{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[34,26,20],"range":[15.1,33]}],"stats":[0,0,0,0,1,550,0,0,450,2,6.24,0,0,0,300,175,100,25,100,1,1.8,2.85,3.75,400,733.3,135,4.48,0,0,0,0,0],"recoil":{"hr":[0,-30,-60,-25,10,45,80,120,160,200,240,190,140,90,40,-10,-35,-60,-85,-105,-125,-145,-165,-185,-205,-225,-245,-265,-285,-305,-320,-335,-350,-365,-380,-395,-410,-425,-440,-455,-470,-485,-500,-515,-530],"vr":[0,50,190,250,310,370,430,490,550,610,670,730,790,850,910,970,1032,1094,1156,1218,1280,1342,1404,1466,1528,1593,1658,1723,1788,1853,1918,1983,2048,2113,2178,2243,2308,2373,2438,2503,2568,2633,2698,2763,2828]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,14,-14,-12.7,-5,0,-4,-10,0,0,0,0,0,27.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Barrel","type":6,"effects":[0,11,-7.7,-0.8,-5.6,0,-3,-8,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-10,6,0,11.2,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-17,10.8,0,9.6,0,3,10,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-12,5.8,3.7,8,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,1.6,1.6,5,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,0,0,-6,-9.2,0,0,-12,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-2,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,3,0,0,0,0,-2,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"AS VAL","guntype":1,"description":"9x39mm carbine with an unique built-in suppressor. Improved stealth at the expense of ballistic performance over range. ","drm":[{"bodymultiplier":[1.5,1.1,1.1,1.1,1,1,1,1,1,1,1,1,1],"damage":[28,25,22,19],"range":[6.8,21,31]},{"bodymultiplier":[3,1.1,1.1,1.1,1,1,1,1,1,1,1,1,1],"damage":[46,45,39,34],"range":[16,51,75]}],"stats":[0,0,0,0,1,800,0,0,450,2,5.55,0,0,0,265,135,100,25,100,1,1.5,2.3,2.75,400,666.6,135,4.7,0,0,0,0,0],"recoil":{"hr":[0,-25,-49,-74,-98,-123,-147,-172,-137,-102,-52,-2,48,98,148,198,211,224,237,250,263,276,289,302,315,337,360,384,409,435,462,490,519,549,580],"vr":[0,30,60,90,160,230,300,370,450,530,590,650,710,770,830,890,952,1014,1076,1138,1200,1262,1324,1386,1448,1538,1633,1733,1838,1948,2058,2168,2278,2388,2498]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-8.3,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-13.8,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-7.6,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Piranha Foregrip","type":2,"effects":[0,0,0,0,-10,0,-3,-10,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Quick Response Barrel","type":6,"effects":[0,-5,9.6,0,8.4,0,5,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"200mm Mid-Range Barrel","type":6,"effects":[0,12,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0]},{"name":"105mm Melee Barrel","type":6,"effects":[0,-7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-13,1.8,1.8,8,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Skeleton Stock","type":7,"effects":[0,-8,1.8,1.8,8,0,0,15,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,0,0,-3.2,-8,0,0,-20,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Stock","type":7,"effects":[0,15,0,-10.8,-16,0,-4,-15,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,3,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Fast Reload","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"10x [FMJ] Mag","type":8,"effects":[0,40,0,0,0,0,0,0,0,0,0,0,0,150,0,0,-67.9,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,1,0,0,0,0,0,1,3,0,0,0,0,0,1,0]}]},{"gunname":"BK57","guntype":1,"description":"7.62x39mm assault rifle with a bullpup design. High initial accuracy and an increased magazine size which trade for a high recoil acceleration.","drm":[{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[27,22,19],"range":[19.1,31]},{"bodymultiplier":[1.3,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[27,22,19],"range":[19.1,31]}],"stats":[0,0,0,0,1,666,0,0,500,2,6.31,0,0,0,265,165,100,35,140,1,2,2.3,2.9,416.6,633.3,135,4.66,0,0,0,0,0],"recoil":{"hr":[0,10,40,90,160,250,270,290,320,350,335,320,305,275,245,215,185,155,115,75,35,-5,-45,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85],"vr":[0,40,90,150,220,310,440,520,600,680,740,800,860,920,980,1040,1100,1160,1220,1260,1300,1340,1380,1420,1465,1510,1555,1600,1645,1720,1795,1870,1945,2020,2095,2170,2245,2320,2395,2475,2555,2635,2715,2795,2875,2970,3065,3160,3255,3350]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Elite Foregrip","type":2,"effects":[0,0,-5,-11.4,0,0,-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Muzzle Brake","type":5,"effects":[0,10,6.4,-18.1,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Barrel","type":6,"effects":[0,17,-11.6,-2,-8.4,0,-4,-4,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,8,0,-6,-6.8,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-12,6,0,8.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-12,7.2,3.7,8,0,0,15,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Skeleton Stock","type":7,"effects":[0,0,0,-3.2,-8.8,0,0,-12,0,0,0,-12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,6,1.8,7.6,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,3,0,0,0,0,-2,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"40 Round Fast Reload","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Caliber Mag","type":8,"effects":[0,4,0,0,0,0,-3,-5,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0]}]},{"gunname":"DR-H","guntype":1,"description":"7.62x51mm NATO battle rifle with high close range damage but reduced accuracy and damage at long range. ","drm":[{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[32,31,28,25,24,19],"range":[7.5,14.2,18,26.1,36.1]},{"bodymultiplier":[1.2,1.2,1.2,1.2,1.2,1.2,1,1,1,1,1,1,1],"damage":[32,31,28,25,24,19],"range":[7.5,14.2,18,26.1,36.1]}],"stats":[0,0,0,0,1,571,0,0,375,2,3.89,0,0,0,285,165,100,20,80,1,1.6,2.3,2.8,400,750,135,4.51,0,0,0,0,0],"recoil":{"hr":[0,-40,-80,-80,-30,20,70,120,150,180,210,240,270,300,330,360,390,420,450,480,510,540,570,600,630,660,690,720,750,780,810,840,870,900,930,960,990,1020],"vr":[0,70,140,210,270,330,390,440,490,540,582.5,625,667.5,710,752.5,795,837.5,880,922.5,965,1007.5,1050,1092.5,1135,1177.5,1220,1262.5,1305,1347.5,1390,1432.5,1475,1517.5,1560,1602.5,1645,1687.5,1730]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Muzzle Brake","type":5,"effects":[0,10,6.4,-18.1,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,18,-14.7,-3.2,-18,0,-6,-15,0,0,0,0,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Barrel","type":6,"effects":[0,12,0,-3.2,-7.6,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Barrel","type":6,"effects":[0,-7,1.8,3.2,8.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-12,10.8,0,9.6,0,3,10,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-9,1.6,1.6,6.8,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,1.8,1.8,8,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,0,0,-3.2,-8.8,0,0,-10,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,4,0,0,0,0,-3,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"25x [OTM] Mag","type":8,"effects":[0,8,9.6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,5,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0]},{"name":"30x [OTM] Mag","type":8,"effects":[0,8,9.6,0,0,0,-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,10,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0]}]},{"gunname":"FR .556","guntype":1,"description":"5.56x45mm assault rifle with a bullpup design. High initial accuracy and long effective range makes it powerful at medium range. Recoil increases as shots are fired. ","drm":[{"bodymultiplier":[1.2,1.2,1.2,1.2,1,1,1,1,1,1,0.9,0.9,0.9],"damage":[25,19],"range":[26.1]}],"stats":[0,0,0,0,1,675,0,0,275,2,6.8,0,0,0,300,235,100,30,120,1,1.45,1.9,2.05,416.6,750,135,4.51,0,0,0,0,0],"recoil":{"hr":[0,10,30,60,90,120,150,180,210,240,270,300,330,360,380,400,420,440,460,480,500,520,540,560,600,640,680,720,760,800,840,880,920,960,1000,1040,1080,1120,1160],"vr":[0,50,100,160,235,325,415,505,595,685,775,815,855,895,935,985,1035,1085,1135,1255,1375,1495,1615,1735,1855,1975,2155,2335,2515,2695,2875,3055,3235,3415,3595,3775,3955,4135,4315]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Bipod","type":2,"effects":[0,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Barrel","type":6,"effects":[0,14,0,-3.2,-12,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,10,0,-4,-6.4,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-10,8,0,12,0,5,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-9,1.6,1.6,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,1.8,1.8,6,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,6,0,-4,-9,0,0,-10,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-2,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Fast Reload","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"HBRa3","guntype":1,"description":"5.56x45mm assualt rifle with moderate recoil. Damage quickly drops over distance. ","drm":[{"bodymultiplier":[1.1,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[26,22,17],"range":[14.2,26.1]}],"stats":[0,0,0,0,1,700,0,0,450,2,4.92,0,0,0,265,165,100,30,120,1,1.6,2.3,3.05,416.6,683.3,135,4.51,0,0,0,0,0],"recoil":{"hr":[0,37.6,75.2,112.8,150.4,188,225.6,263.2,300.8,338.4,298.4,258.4,218.4,178.4,138.4,175.9,213.4,250.9,288.4,325.9,363.4,400.9,438.4,475.9,513.4,538.4,563.4,588.4,613.4,638.4,663.4,688.4,713.4,738.4,763.4,788.4,813.4,838.4,863.4,888.4,913.4,938.4,963.4,988.4],"vr":[0,70,150,240,330,420,469,518,567,616,666,716,766,816,866,903.6,941.2,978.8,1016.4,1054,1091.6,1129.2,1166.8,1204.4,1242,1279.6,1317.2,1354.8,1392.4,1430,1467.6,1505.2,1542.8,1580.4,1618,1655.6,1693.2,1730.8,1768.4,1806,1843.6,1881.2,1918.8,1956.4]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Muzzle Brake","type":5,"effects":[0,10,6.4,-18.1,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,18,-14.7,-3.2,-7.8,0,-4,-15,0,0,0,0,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Barrel","type":6,"effects":[0,12,0,-3.2,-7.6,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Barrel","type":6,"effects":[0,-7,1.8,3.2,8.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-14,10.8,0,9.6,0,3,20,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Skeleton Stock","type":7,"effects":[0,-9,1.6,1.6,6.8,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,1.8,1.8,8,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,7,0,-3.2,-8.8,0,0,-10,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,3.5,0,0,0,0,-2,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Fast Extended Mag","type":8,"effects":[0,5,0,0,0,0,-2,0,0,0,0,0,0,0,-18,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"HVK-30","guntype":1,"description":"7.62x35mm carbine with a high cyclic rate of fire. Its superior ergonimic design allows a faster reaction time at close range. ","drm":[{"bodymultiplier":[1.3,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[23,18,16],"range":[21,34]},{"bodymultiplier":[1.6,1,1,1,0.8,0.8,1,1,1,0.8,0.8,0.8,1],"damage":[34,24,19],"range":[6.8,46.1]}],"stats":[0,0,0,0,1,710,0,0,500,2,4.98,0,0,0,265,150,100,30,120,1,1.95,2.75,3.45,400,633.3,135,4.51,0,0,0,0,0],"recoil":{"hr":[0,-45,-90,-90,-90,-90,-50,-10,30,70,110,150,190,230,230,230,190,150,110,70,30,-10,-50,-90,-130,-170,-210,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250],"vr":[0,49.6,99.2,148.8,198.4,248,297.6,347.2,396.8,446.4,496,545.6,595.2,644.8,694.4,756.7,819,881.3,943.6,1005.9,1068.2,1130.5,1192.8,1255.1,1317.4,1379.7,1442,1504.3,1504.3,1504.3,1504.3,1504.3,1504.3,1504.3,1504.3,1504.3,1504.3,1504.3,1504.3,1504.3,1504.3,1504.3,1504.3,1504.3]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,18,-13.3,-11.3,-8.4,0,-6,-8,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Integral Suppressor Heavy Barrel","type":6,"effects":[0,12,0,-7.4,-8.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1000000,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Barrel","type":6,"effects":[0,-12,7.4,0,6.2,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-12,8.6,3.7,8,0,0,0,0,0,0,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,1.8,1.8,8,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,0,0,-3.2,-8.8,0,0,-12,0,0,0,-12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,3,0,0,0,0,-2,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Fast Reload","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Caliber Mag","type":8,"effects":[0,4,10,0,0,0,0,0,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,-6,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0]}]},{"gunname":"ICR-1","guntype":1,"description":"5.56x45mm assault rifle. Sacrifices damage output for the lowest recoil in class. ","drm":[{"bodymultiplier":[1.2,1,1.1,1.1,1,1,1,1,1,1,1,1,1],"damage":[26,24,20,19],"range":[16.1,26.1,36.1]}],"stats":[0,0,0,0,1,600,0,0,450,2,5.81,0,0,0,300,165,100,30,120,1,1.25,1.65,2.35,433.3,716.6,135,4.56,0,0,0,0,0],"recoil":{"hr":[0,0,0,0,18,36,54,72,54,36,18,0,-18,-36,-54,-91,-128,-165,-202,-239,-276,-313,-350,-387,-424,-461,-498,-535,-572,-609.5,-647,-684.5,-722,-759.5,-797,-834.5,-872,-909.5,-947,-984.5,-1022,-1059.5,-1097,-1134.5,-1172,-1209.5,-1247,-1284.5,-1322,-1359.5],"vr":[0,70,140,210,280,350,390,430,470,510,550,590,630,670,710,747.3,784.6,821.9,859.2,896.5,933.8,971.1,1008.4,1045.7,1083,1120.3,1157.6,1194.9,1232.2,1269.5,1306.8,1344.1,1381.4,1418.7,1456,1493.3,1530.6,1567.9,1605.2,1642.5,1679.8,1717.1,1754.4,1791.7,1829,1866.3,1903.6,1940.9,1978.2,2015.5]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Breacher Device","type":5,"effects":[0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,-16,-14.4,-11.3,-6.4,0,-4,-12,0,0,0,0,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Barrel","type":6,"effects":[0,10,-10.9,-6.4,-6,0,-2,-8,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Integral Suppressor Light Barrel","type":6,"effects":[0,-10,8,0,4.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1000000,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-14,10.8,0,12,0,3,10,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-9,3.9,3.9,8,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,1.8,1.8,8,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,12,0,-6.7,-6.6,0,0,-12,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,2,0,0,0,0,-2,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"40 Round Fast Reload","type":8,"effects":[0,3.5,0,0,0,0,-3,0,0,0,0,0,0,0,-25,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"50 Round Fast Reload","type":8,"effects":[0,6,0,0,0,0,-3,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"KN-44","guntype":1,"description":"7.62x39mm carbine. Has a high accuracy and can be outfitted with numerous muzzle attachemnts to counter its unruly recoil. ","drm":[{"bodymultiplier":[1.2,1,1.1,1.1,1,1,1,1,1,1,1,1,1],"damage":[26,24,19],"range":[21,34]}],"stats":[0,0,0,0,1,633,0,0,550,2,6.96,0,0,0,265,165,100,30,120,1,1.75,2.15,2.9,416.6,700,135,4.56,0,0,0,0,0],"recoil":{"hr":[0,20,40,60,80,100,120,160,210,280,350,290,220,140,60,-20,-10,10,40,70,100,130,160,190,220,250,280,310,340,380,420,470,520,570,620,680,740,800,860,935,1010,1085,1160,1235],"vr":[0,80,140,200,260,320,380,440,500,560,620,680,740,880,940,1000,1060,1120,1180,1240,1300,1360,1420,1480,1540,1600,1660,1720,1780,1845,1910,1975,2040,2105,2170,2260,2350,2440,2530,2620,2710,2800,2890,2980]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Muzzle Brake","type":5,"effects":[0,10,6.4,-18.1,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,18,-14.7,-3.2,-7.8,0,-6,-14,0,0,0,0,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Barrel","type":6,"effects":[0,12,0,-3.2,-7.6,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-7,1.8,3.2,8.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-15,10.8,0,9.6,0,3,10,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-9,1.6,1.6,6.8,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,1.8,1.8,8,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,0,0,-3.2,-8.8,0,0,-10,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,3,0,0,0,0,-2,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"38 Round Fast Reload","type":8,"effects":[0,4,0,0,0,0,-2,0,0,0,0,0,0,0,-18,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"LK24","guntype":1,"description":"5.56x45mm carbine. Provides a relatively long effective range with low recoil. ","drm":[{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[26,22,18],"range":[23,39.2]}],"stats":[0,0,0,0,1,633,0,0,500,2,5.34,0,0,0,300,165,100,30,120,1,1.55,2.15,2.75,400,716.6,135,4.51,0,0,0,0,0],"recoil":{"hr":[0,-30,-60,-90,-120,-150,-180,-210,-240,-270,-340,-410,-480,-550,-620,-657.3,-694.6,-731.9,-769.2,-806.5,-843.8,-881.1,-918.4,-955.7,-993,-1030.3,-1067.6,-1104.9,-1142.2,-1179.5,-1216.8,-1254.1,-1291.4,-1328.7,-1366,-1403.3,-1440.6,-1477.9,-1515.2,-1552.5,-1589.8,-1627.1,-1664.4,-1701.7,-1739,-1776.3,-1813.6,-1850.9,-1888.2,-1925.5],"vr":[0,80,160,240,320,360,400,440,480,520,565,615,665,715,765,789.5,814,838.5,863,887.5,912,936.5,961,985.5,1010,1034.5,1059,1083.5,1108,1132.5,1157,1181.5,1206,1230.5,1255,1279.5,1304,1328.5,1353,1377.5,1402,1426.5,1451,1475.5,1500,1524.5,1549,1573.5,1598,1622.5]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,16,-14.4,-11.3,-6.4,0,-4,-12,0,0,0,0,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Barrel","type":6,"effects":[0,10,-10.9,0,-6,0,-2,-8,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Integral Suppressor Light Barrel","type":6,"effects":[0,-10,8,0,4.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1000000,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-14,10.8,0,9.6,0,3,10,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-8,3.9,3.9,10,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,1.8,1.8,8.4,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,0,0,-6.7,-6.6,0,0,-12,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-2,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,3.5,0,0,0,0,-3,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"M4","guntype":1,"description":"5.56x45mm assault rifle. Sacrifices damage per shot for a longer barrel and lower recoil. Various barrel attachments avaialble for modifications. ","drm":[{"bodymultiplier":[1.2,1,1.1,1.1,1,1,1,1,1,1,1,1,1],"damage":[24,20,19],"range":[16.1,36.1]}],"stats":[0,0,0,0,1,682,0,0,450,2,5.38,0,0,0,300,165,100,30,120,1,1.45,1.85,2.55,400,650,135,4.56,0,0,0,0,0],"recoil":{"hr":[0,20,40,60,80,100,124.5,149,173.5,198,222.5,272,321.5,371,420.5,470,519.5,569,599,611.25,623.5,635.75,648,660.25,672.5,684.75,697,709.25,721.5,733.75,746,758.25,770.5,782.75,795,807.25,819.5,831.75,844,856.25,868.5,880.75,893,905.25,917.5,929.75,942,954.25,966.5,978.75],"vr":[0,47,94,159,224,289,354,419,484,549,614,651,688,725,762,799,836,873,910,947,984,1021,1058,1095,1132,1169,1206,1243,1280,1317.5,1355,1392.5,1430,1467.5,1505,1542.5,1580,1617.5,1655,1692.5,1730,1767.5,1805,1842.5,1880,1917.5,1955,1992.5,2030,2067.5]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,17,-15.1,-8.5,-8,0,-4,-16,0,0,0,0,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Barrel","type":6,"effects":[0,14,-14.4,-6.8,-5.6,0,-3,-12,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Integral Suppressor Light Barrel","type":6,"effects":[0,-8,7.4,1.6,4.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1000000,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Barrel","type":6,"effects":[0,-10,3.2,1.6,4.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-14,10.9,0,6.2,0,4,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-15,12.9,0,7.2,0,3,10,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-10,3.9,0,4,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,1.8,1.8,6.6,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,0,0,-8.8,-9.8,0,0,-17,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-2,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,3.5,0,0,0,0,-3,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"M16","guntype":1,"description":"5.56x45mm assault rifle. The three-round burst firing mechanism provides outstanding ballistic performance over range. ","drm":[{"bodymultiplier":[1.4,1.4,1.4,1.4,1.4,1.2,1.2,1,1,1,1,1,1],"damage":[30,27,22],"range":[21,41]}],"stats":[0,0,0,0,2,800,3,250,500,2,8.54,0,0,0,285,175,100,30,120,1,1.5,1.9,2.6,450,700,135,4.56,0,0,0,0,0],"recoil":{"hr":[0],"vr":[0]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,16,-8.2,-8.2,-4.4,0,-4,-12,0,0,0,0,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Integral Suppressor Light Barrel","type":6,"effects":[0,-8,7.4,1.6,4.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1000000,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-12,9.6,0,3,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-14,10.8,0,9.6,0,3,10,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-8,3.9,3.9,10,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,1.6,1.6,8.4,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,0,0,-6.7,-6.6,0,0,-12,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-2,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,3.5,0,0,0,0,-3,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"Man-O-War","guntype":1,"description":"7.8x54mm (fictional) battle rifle utilizing built-in recoil reduction mechanism. Fires devastating rounds at a slower cyclic rate of fire. ","drm":[{"bodymultiplier":[1.1,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[37,30,24],"range":[23,43.4]}],"stats":[0,0,0,0,1,500,0,0,450,2,5.06,0,0,0,350,165,100,25,100,1,1.95,2.45,3.35,400,633.3,135,4.43,0,0,0,0,0],"recoil":{"hr":[0,-38,-76,-113,-151,-189,-226,-264,-302,-339,-377,-415,-452,-490,-528,-565,-603,-640,-678,-715,-753,-790,-828,-865,-903,-940,-978,-1015,-1053,-1090,-1128,-1165,-1203,-1240,-1278],"vr":[0,100,200,300,500,700,780,860,940,1070,1200,1330,1460,1590,1680,1770,1860,1950,2040,2180,2320,2460,2600,2740,2910,3080,3250,3420,3590,3810,4030,4250,4470,4690,4910]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Huge Suppressor","type":5,"effects":[0,22,0,0,0,0,0,-10,0,0,0,0,0,40,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,18,-14,-12.7,-5,0,-6,-10,0,0,0,0,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Barrel","type":6,"effects":[0,14,-9.1,0,-5.6,0,-3,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-5,7.8,0,7,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-12,5.8,0,8,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,0,5,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,0,0,-6,-9.2,0,0,-12,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-2,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,3,0,0,0,0,-2,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"Peacekeeper MK2","guntype":1,"description":"7.62x35mm carbine, capable of modifying its cyclic rate of fire through a number of barrel attachments, making it a remarkably versatile platform. ","drm":[{"bodymultiplier":[1.24,1.1,1.1,1.1,1,1,1,1,1,1,1,1,1],"damage":[26,24,19,18],"range":[11,26.1,41]},{"bodymultiplier":[1.24,1.1,1.1,1.1,1,1,1,1,1,1,1,1,1],"damage":[26,24,19,18],"range":[11,26.1,41]},{"bodymultiplier":[1.24,1.1,1.1,1.1,1,1,1,1,1,1,1,1,1],"damage":[31,24,17,16],"range":[7,16,25]}],"stats":[0,0,0,0,1,652,0,0,450,2,6.4,0,0,0,285,150,100,25,100,1,1.45,2.1,2.9,316.6,683.3,135,4.61,0,0,0,0,0],"recoil":{"hr":[0,-60.9,-121.8,-182.7,-243.6,-182.7,-121.8,-60.9,0,65.3,130.6,195.9,261.2,200.3,139.4,78.5,17.6,-43.3,-108.6,-173.9,-239.2,-304.5,-261.5,-218.5,-175.5,-132.5,-89.5,-46.5,-3.5,39.5,82.5,125.5,168.5,211.5,254.5],"vr":[0,52.5,105,157.5,210,260,310,360,410,485,560,635,710,772.5,835,897.5,960,1022.5,1097.5,1172.5,1247.5,1322.5,1380.8,1439.1,1497.4,1555.7,1614,1672.3,1730.6,1788.9,1847.2,1905.5,1963.8,2022.1,2080.4]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Speed Foregrip","type":2,"effects":[0,0,0,-15,0,0,-5,-5,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Infiltrator Foregrip","type":2,"effects":[0,0,0,0,0,0,3,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Patrol Foregrip","type":2,"effects":[0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Foregrip","type":2,"effects":[0,0,0,-30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Field Agent Foregrip","type":2,"effects":[0,0,-10,-40,0,0,0,-16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rustle Grip Tape","type":3,"effects":[0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Firm Grip Tape","type":3,"effects":[0,-25,0,0,0,0,0,0,0,0,15,-90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Sturdy Grip Tape","type":3,"effects":[0,0,0,0,0,0,0,0,0,0,0,-90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Steady Aim Laser","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Combat Laser","type":4,"effects":[0,8,0,0,0,0,0,0,0,0,0,0,-24,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Aim Assist Laser","type":4,"effects":[0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Agency Suppressor","type":5,"effects":[0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Eliminator","type":5,"effects":[0,0,-10,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Infantry Compensator","type":5,"effects":[0,0,-25,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Flash Guard","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Long Range Barrel","type":6,"effects":[0,35,0,-20,0,0,-5,0,0,0,0,0,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Well-Forged Barrel","type":6,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Built-in Silencer Barrel","type":6,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1000000,0,0,0,0,0,0,0,0,0,0]},{"name":"Taskforce Barrel","type":6,"effects":[0,0,20,15,0,0,0,0,0,0,0,0,0,50,0,0,10.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rapid Fire Barrel","type":6,"effects":[0,0,0,0,20,0,0,0,0,0,0,0,0,-40,0,0,13.5,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,0,0,0,0,0,0,0,0,0,-30,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Lightweight Stock","type":7,"effects":[0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marathon Stock","type":7,"effects":[0,0,0,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Agile Stock","type":7,"effects":[0,0,0,0,0,0,0,40,0,0,-30,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Double Stack Mag","type":8,"effects":[0,8,0,0,0,0,0,0,0,0,0,0,0,0,-25,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"Type 25","guntype":1,"description":"5.8x42mm assault rifle with a bullpup design. Has a high cyclic rate of fire as well as high mobility. ","drm":[{"bodymultiplier":[1.1,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[24,22,19,16],"range":[9,16,30]},{"bodymultiplier":[1.1,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[25,23,20,16],"range":[9,16,36]}],"stats":[0,0,0,0,1,791,0,0,450,2,6.7,0,0,0,250,165,100,30,120,1,1.6,2.1,2.6,416.6,716.6,135,4.72,0,0,0,0,0],"recoil":{"hr":[0,15,41,77,123,179,245,245,155,65,-25,15,55,95,144,193,242,291,340,390,439,489,538,588,628,668,708,748,788,828,868,898,928,958,988,1018,1048,1078,1108,1138,1168,1198,1228,1258,1288,1318],"vr":[0,60,125,195,270,420,470,520,570,620,670,720,769,819,868,918,967,1017,1066,1116,1166,1216,1266,1316,1366,1416,1466,1516,1566,1616,1665,1715,1764,1814,1863,1928,1996,2067,2141,2218,2298,2381,2467,2556,2648,2743]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,12,0,-3.2,-7.6,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Barrel","type":6,"effects":[0,-8,1.6,1.6,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-10,7,0,6,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-10,3.2,3.2,12,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,1.6,1.6,6.8,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,0,0,-6.4,-11.2,0,0,-10,0,0,0,-8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,3.5,0,0,0,0,-3,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Fast Reload","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,-25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"42 Round Fast Reload","type":8,"effects":[0,5,0,0,0,0,-3,0,0,0,0,0,0,0,-18,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stopping Power","type":8,"effects":[0,8,8.5,0,8,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0]}]},{"gunname":"Kilo Bolt-Action","guntype":6,"description":"7.92x57mm battle rifle with relatively high rate of fire among bolt-action rifles. Compatible with multiple ammo types. ","drm":[{"bodymultiplier":[1.5,1.3,1.3,1.3,1.3,1.3,1.2,1,1,1,1,1,1],"damage":[85,80],"range":[41.2]},{"bodymultiplier":[1.16,1,1,1,1,1,1,1.16,1,0.78,0.78,0.78,0.78],"damage":[110,104],"range":[51.5]},{"bodymultiplier":[1.07,1,1,1,1,1,1,1,1,0.72,0.72,0.72,0.72],"damage":[85,80],"range":[41.2]}],"stats":[0,0,0,0,7,65,0,0,600,2,0,201.06,0,0,415,200,100,5,20,1,2.2,2.5,2.85,400,716.6,135,4.3,0,0,0,0,500],"recoil":{"hr":[0],"vr":[0]},"aments":[{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Bipod","type":2,"effects":[0,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,0,0,0,-4,0,0,0,-25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-7,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,4,4,0,0,0,0,0,0,-15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-3,0,0,0,0,0,0,0,0,-1.5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,3,0,0,0,0,0,-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,8,0,0,0,0,0,-5,0,0,0,0,0,25,0,0,0,0,0,20,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-10,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-30,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0]},{"name":"RTC Compensator","type":5,"effects":[0,10,-15,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,15,-20,-16,0,0,-6,-20,0,0,0,-45,0,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Barrel","type":6,"effects":[0,15,-15,0,0,0,-6,-15,0,0,0,-30,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,10,-10,0,0,0,0,0,0,0,0,-25,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-10,8,8,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,4.8,0,0,0,20,0,0,0,10,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,10,0,-20,0,0,0,-10,0,0,0,-35,0,0,0,0,0,0,0,-30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,60,0,0,0]},{"name":"Fast Reload","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,-25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stopping Power","type":8,"effects":[0,10,9.6,0,0,0,0,0,0,0,0,0,0,25,15,0,-13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0]},{"name":"Thermite Rounds","type":8,"effects":[0,16,14.4,0,0,0,0,0,0,0,0,0,0,0,15,0,-23.1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,2,0,6,4,200,0,0,0,0]}]},{"gunname":"SKS","guntype":6,"description":"7.62x39mm semi-automatic rifle. Provides high damage output with relatively fast rate of fire. Maintains damage consistency at long range. ","drm":[{"bodymultiplier":[2,1,1,1,0.8,0.8,0.8,0.9,1,0.9,0.8,0.8,0.8],"damage":[60,58],"range":[40]}],"stats":[0,0,0,0,3,327,0,0,500,2,0,113.1,0,0,365,185,100,20,80,1,1.35,2.5,3.2,416.6,683.3,135,4.3,0,0,0,0,2000],"recoil":{"hr":[0,-10,-19,-29,-38,-48,-57,-67,-76,-86,-96,-106,-116,-126,-135,-145,-154,-164,-173,-183,-193,-203,-213,-223,-233,-243,-252,-262,-271,-281],"vr":[0,120,200,248,296,343,391,439,486,534,582,629,677,725,772,820,868,915,963,1011,1058,1106,1154,1201,1249,1294,1339,1339,1339,1339]},"aments":[{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-10,0,0,0,-2,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,-5,0,0,0,-1,-5,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-20,0,0,0,0,-10,0,0,1.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-8,0,0,0,0,-10,0,0,0,0,-7.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Bipod","type":2,"effects":[0,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,0,0,0,-4,0,0,0,-25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-7,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,4,4,0,0,0,0,0,0,-15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-3,0,0,0,0,0,0,0,0,-1.5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,3,0,0,0,0,0,-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,8,0,0,0,0,0,-5,0,0,0,0,0,25,0,0,0,0,0,20,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-10,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-30,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,12,-15,-12,0,0,-5,-15,0,0,0,-35,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,10,-10,0,0,0,0,0,0,0,0,-20,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Barrel","type":6,"effects":[0,-10,4,4,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-15,12,0,0,0,3,20,0,0,0,30,0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-75,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,10,0,-20,0,0,0,-10,0,0,0,-35,0,0,0,0,0,0,0,-45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0]},{"name":"Ranger Stock","type":7,"effects":[0,0,0,0,0,0,0,-4,0,0,0,-25,0,0,0,0,0,0,0,-25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,60,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Mag","type":8,"effects":[0,-10,0,0,0,0,3,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"SP-R 208","guntype":6,"description":"7.62x51mm battle rifle. The 7.62x67mm and 8.6x70mm magazine attachments grant varying magnitude of lethality with targets. ","drm":[{"bodymultiplier":[1.34,1.2,1.2,1.2,1.2,1.2,0.93,1,1,0.87,0.67,0.67,0.67],"damage":[108,105,90],"range":[16.8,33]},{"bodymultiplier":[1.34,1.2,1.2,1.2,1.2,1.2,0.93,1,1,0.87,0.67,0.67,0.67],"damage":[115,108,105],"range":[25,49]},{"bodymultiplier":[3.34,1.2,1.2,1.2,1.2,1.2,0.93,1,1,0.87,0.67,0.67,0.67],"damage":[108,105,90],"range":[25,49]}],"stats":[0,0,0,0,7,48,0,0,500,3,0,201.06,0,0,400,185,100,5,20,1,1.7,2.85,3.25,316.6,1100,135,4.3,0,0,0,0,500],"recoil":{"hr":[0],"vr":[0]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"6x Scope","type":1,"effects":[600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-10,0,0,0,-2,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,-5,0,0,0,-1,-5,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-20,0,0,0,0,-10,0,0,1.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-8,0,0,0,0,-10,0,0,0,0,-7.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Bipod","type":2,"effects":[0,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Bolt","type":10,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-40,0,0,17.6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Heavy Bolt","type":10,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,30,0,0,-11.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-3,0,0,0,0,0,0,0,0,-1.5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,3,0,0,0,0,0,-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,8,0,0,0,0,0,-5,0,0,0,0,0,25,0,0,0,0,0,20,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-10,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-30,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0]},{"name":"RTC Compensator","type":5,"effects":[0,10,-15,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,15,-20,-16,0,0,-5,-15,0,0,0,-45,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,10,-10,0,0,0,0,0,0,0,0,-25,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Integral Suppressor Light Barrel","type":6,"effects":[0,-8,8,8,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,20,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Barrel","type":6,"effects":[0,-7,4.8,4.8,0,0,5,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-10,6.4,6.4,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Skeleton Stock","type":7,"effects":[0,-5,4.8,4.8,0,0,0,15,0,0,0,20,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,4,0,0,0,20,0,0,0,10,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,0,0,-15,0,0,0,-10,0,0,0,-25,0,0,0,0,0,0,0,-35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,60,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5x [.300] Mag","type":8,"effects":[0,0,0,0,0,0,-3,0,0,0,0,0,0,50,0,0,-9.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0]},{"name":"5x [.338] Mag","type":8,"effects":[0,0,7,0,0,0,0,0,0,0,0,0,0,50,0,200,-9.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0]}]},{"gunname":"AGR 556","guntype":2,"description":"9x19mm submachine gun with a bullpup design. 5.56x45mm ammo available for an assault rifle conversion with better ballistic performance at medium and long range. ","drm":[{"bodymultiplier":[1.1,1,1,1,1,1,1,1,1,0.9,0.9,0.9,0.9],"damage":[25,21,17,15],"range":[13.1,21,31]},{"bodymultiplier":[1.1,1,1,1,1,1,1,1,1,0.9,0.9,0.9,0.9],"damage":[27,23,20,18],"range":[16.1,21,31]}],"stats":[0,0,0,0,1,751,0,0,275,1,6.78,0,0,0,240,135,90,25,100,1,1.7,2.1,3.5,233.3,416.6,135,4.68,3.72,0,0,0,0],"recoil":{"hr":[0,47,94,94,49,4,-41,6,53,-17,-87,-157,-227,-200,-173,-253,-333,-413,-493,-517,-541,-565,-589,-613,-637,-661,-685,-709,-733,-757,-781,-805,-829,-853.2,-877.4,-901.6,-925.8,-950,-974.2,-998.4,-1022.6,-1046.8,-1071,-1095.2,-1119.4,-1143.6,-1167.8,-1192,-1216.2,-1240.4,-1264.6,-1288.8,-1313,-1337.2,-1361.4,-1385.6,-1409.8,-1434,-1458.2,-1482.4],"vr":[0,87,174,261,348,435,522,609,696,783,873,963,1053,1143,1233,1323,1413,1503,1593,1642.3,1691.6,1740.9,1790.2,1839.5,1888.8,1938.1,1987.4,2036.7,2086,2135.3,2184.6,2233.9,2283.2,2332.5,2381.8,2431.1,2480.4,2529.7,2579,2628.3,2677.6,2726.9,2776.2,2825.5,2874.8,2924.1,2973.4,3022.7,3072,3121.3,3170.6,3219.9,3269.2,3318.5,3367.8,3417.1,3466.4,3515.7,3565,3614.3]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Laser 1mW","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Laser 5mW","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"OWC Laser-Tactical","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,7,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,16,0,-13.9,-5.6,0,-2,-5,0,0,0,0,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,10,0,0,-5.6,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Barrel","type":6,"effects":[0,-10,3.9,1.6,4.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-12,4,0,6.5,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,0,6.6,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,12,0,-6.7,-6.6,0,0,-12,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"30x [5.56mm]","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-9.1,0,0,0,0,0,0,0,0,0,0,5,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0]},{"name":"60x [5.56mm]","type":8,"effects":[0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-9.1,0,0,0,0,0,0,0,0,0,0,35,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0]}]},{"gunname":"Chicom","guntype":2,"description":"5.8x21mm personal defense weapon with a bullpup design and a three-round burst firing mechanism. High close range damage output along with a repetitive and predictable recoil on bursts. ","drm":[{"bodymultiplier":[1.4,1.3,1.3,1.3,1.3,1,1,1,1,0.9,0.9,0.9,0.9],"damage":[27,24,20,17],"range":[9,17,21]}],"stats":[0,0,0,0,2,800,3,135,333,1,9.04,0,0,0,210,150,90,33,132,1,1.75,2.15,2.75,416.6,616.6,135,4.96,4.17,0,0,0,0],"recoil":{"hr":[0],"vr":[0]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Laser 1mW","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,7,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,18,-11.6,-9.6,-5.6,0,-2,-10,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Integral Suppressor Light Barrel","type":6,"effects":[0,-10,0,0,4.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1000000,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Barrel","type":6,"effects":[0,-10,-3.9,-1.6,4.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-12,6.7,0,4,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,0,6.6,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,0,0,-7.1,-6,0,0,-15,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,3.5,0,0,0,0,-3,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"Cordite","guntype":2,"description":"5.7x28mm personal defence weapon with a bullpup design. High magazine capacity with an increased hipfire accuracy. ","drm":[{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,0.9,0.9,0.9,0.9],"damage":[24,22,19,18,16],"range":[7,19,26,33]}],"stats":[0,0,0,0,1,800,0,0,250,1,5.81,0,0,0,260,215,90,40,160,1,1.9,2.3,3.05,416.6,550,135,4.77,3.95,0,0,0,0],"recoil":{"hr":[0,-40,-79,-119,-158,-198,-158,-118,-78,-38,2,-16,-34,-52,-70,-88,-106,-124,-142,-126,-110,-94,-78,-62,-46,-30,-14,2,18,34,50,66,82,98,114,130,146,162,178,194,210,226,242,258,274,290,306,322,338,355,371,387,404,420,436,453,469,485,501,517,534,550,566,583,599,615,632,648,664,681,697,713,730,746,762,778,794,811,827,843],"vr":[0,60,130,240,360,490,630,680,730,780,830,875,920,965,1010,1048,1085,1123,1160,1198,1235,1273,1310,1348,1385,1423,1460,1498,1535,1573,1610,1648,1685,1723,1760,1798,1835,1873,1910,1948,1985,2023,2060,2098,2135,2173,2210,2248,2285,2323,2360,2397,2435,2473,2510,2548,2586,2623,2661,2698,2736,2774,2811,2849,2886,2923,2961,2998,3035,3073,3111,3148,3186,3224,3261,3299,3336,3374,3412,3449]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"OWC Foregip","type":2,"effects":[0,14,-8.4,-15.3,0,0,-2,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Laser 1mW","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,7,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,16,-10.5,-13.9,-4.4,0,-3,-10,0,0,0,0,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,10,0,0,-5.6,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-8,0,0,4,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,0,6.6,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,0,0,-7.1,-6,0,0,-15,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,6,0,0,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,8,0,0,0,0,-6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"Fennec","guntype":2,"description":"11.43x23mm submachine gun. Highest cyclic rate of fire in class and a moderate accuracy makes it effective at close and medium range. ","drm":[{"bodymultiplier":[1.1,1,1,1,1,0.9,0.9,1,1,0.9,0.9,0.9,0.9],"damage":[23,21,18,13,12],"range":[6.8,10.5,16.1,23]},{"bodymultiplier":[1.1,1,1,1,1,0.9,0.9,1,1,0.9,0.9,0.9,0.9],"damage":[12,11,9,7,6],"range":[7,11,16,23]}],"stats":[0,0,0,0,1,1111,0,0,250,1,5.57,0,0,0,200,85,90,25,100,1,1.6,2.2,2.35,400,566.6,135,4.96,4.17,0,0,0,0],"recoil":{"hr":[0,13,25,37,50,62,74,87,99,111,124,136,148,161,111,62,13,-36,-86,-135,-184,-233,-283,-332,-381,-430,-480,-529,-578,-627,-677,-726,-775,-825,-874],"vr":[0,150,270,390,510,630,730,830,930,1030,1130,1230,1330,1430,1505,1579,1653,1728,1802,1876,1951,2025,2099,2174,2248,2322,2397,2471,2545,2620,2694,2768,2843,2917,2991]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-0.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Laser 1mW","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Laser Sight","type":4,"effects":[0,8,0,0,0,-20,0,0,0,0,0,0,-7,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Laser Sight","type":4,"effects":[0,8,0,0,-9.2,0,0,0,0,0,0,0,-11,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,7,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,8,0,0,-6.4,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Integral Suppressor Light Barrel","type":6,"effects":[0,-7,0,0,6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1000000,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Barrel","type":6,"effects":[0,-7,1.6,1.6,8.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-10,9.6,0,8.4,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-15,8,0,9.6,0,3,20,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-12,1.8,0,9.6,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,0,10.8,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,0,0,-6,-10.8,0,0,-10,0,0,0,-8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Fast Reload","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,-25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Mag","type":8,"effects":[0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"GKS","guntype":2,"description":"11.43x23mm submachine gun. Its high damage to the lower body offers it a reltively long effective range. ","drm":[{"bodymultiplier":[1.3,1,1.1,1.1,1,1,1,1,1,1,1,1,1],"damage":[28,24,19],"range":[21,31]}],"stats":[0,0,0,0,1,600,0,0,333,1,3.55,0,0,0,260,135,90,25,100,1,1.45,1.95,2.6,400,600,135,4.7,3.72,0,0,0,0],"recoil":{"hr":[0,50,30,0,-40,-80,-120,-160,-200,-240,-280,-320,-360,-400,-440,-480,-520,-560,-600,-640,-677,-714,-751,-788,-825,-862,-899,-936,-973,-1010,-973,-936,-899,-862,-825,-788,-751,-714,-677,-640,-603,-566,-529,-492,-455],"vr":[0,25,75,125,175,290,405,520,569.5,619,668.5,718,767.5,817,866.5,916,965.5,1015,1064.5,1114,1163.5,1213,1262.5,1312,1361.5,1411,1460.5,1510,1559.5,1609,1647,1685,1723,1761,1799,1837,1875,1913,1951,1989,2027,2065,2103,2141,2179]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Laser 1mW","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,7,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,15,-14.4,-7.8,-6,0,-2,-8,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Integral Suppressor Barrel","type":6,"effects":[0,10,0,0,-6.8,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1000000,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-10,6,0,6.2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-12,3.9,0,10,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,0,8,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,12,0,-7.4,-7,0,0,-12,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,3.5,0,0,0,0,-3,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Hybrid Mag","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"HG 40","guntype":2,"description":"9x19mm submachine gun. Trades damage output for low recoil. ","drm":[{"bodymultiplier":[1.1,1,1,1,1,1,0.9,1,1,0.9,0.9,0.9,0.9],"damage":[26,24,20,17],"range":[10.5,16.1,26.1]}],"stats":[0,0,0,0,1,675,0,0,333,1,5.6,0,0,0,240,150,90,32,128,1,1.7,2.1,2.8,416.6,550,135,4.7,3.87,0,0,0,0],"recoil":{"hr":[0,20,40,60,80,100,120,140,160,180,120,60,0,-60,-60,-60,-22.5,15,52.5,90,127.5,165,202.5,240,277.5,315,352.5,390,427.5,465,502.5,540,577.5,615,652.5,690,727.5,765,802.5,840,877.5,915,952.5,990,1027.5],"vr":[0,70,140,210,280,350,420,490,560,630,700,750,800,850,900,950,1000,1050,1100,1150,1200,1250,1300,1350,1400,1450,1500,1550,1600,1650,1700,1740,1780,1820,1860,1900,1940,1980,2020,2060,2100,2140,2180,2220,2260]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Laser 1mW","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,7,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,13,-12.3,-6.4,-6,0,-2,-8,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Integral Suppressor Barrel","type":6,"effects":[0,10,0,0,-6.8,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1000000,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-10,6,0,6.2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-16,10.8,0,9.6,0,3,20,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-12,3.9,0,10,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Skeleton Stock","type":7,"effects":[0,-8,1.8,1.8,8,0,0,18,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,0,8,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,12,0,-6.7,-6.6,0,0,-12,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Hybrid Mag","type":8,"effects":[0,3.5,0,0,0,0,-3,-7,0,0,0,0,0,0,-25,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Hybrid Mag","type":8,"effects":[0,6,0,0,0,0,-3,-7,0,0,0,0,0,0,-25,0,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"MSMC","guntype":2,"description":"5.56x30mm personal defense weapon. High rate of fire and mobility makes it extremly effective in close quarter combat. Damage decays quickly over distance. ","drm":[{"bodymultiplier":[1.1,1,1,1,1,1,1,1,1,0.9,0.9,0.9,0.9],"damage":[25,21,18,16],"range":[8.6,16.1,20]}],"stats":[0,0,0,0,1,916,0,0,275,1,4.66,0,0,0,200,115,90,25,100,1,1.7,2.15,2.7,433.3,650,135,4.96,4.17,0,0,0,0],"recoil":{"hr":[0,-39,-77,-115,-154,-192,-229,-266,-303,-341,-379,-417,-455,-493,-532,-570,-608,-647,-685,-723,-760,-798,-835,-873,-910,-948,-985,-1023,-1060,-1098,-1136,-1175,-1213,-1251,-1290,-1328],"vr":[0,140,280,400,520,610,700,790,880,970,1060,1150,1240,1340,1480,1580,1670,1760,1850,2000,2165,2345,2540,2750,3050,3375,3700,4025,4350,4675,5000,5100,5200,5300,5400,5500]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Laser 1mW","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,7,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,18,-15,-9.6,-5.6,0,-3,-12,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Barrel","type":6,"effects":[0,14,-5.9,0,-4.8,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Barrel","type":6,"effects":[0,-10,3.9,6,4.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-13,12.9,0,7.2,0,3,20,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-8,3.9,0,4,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,0,6.6,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,0,0,-7.1,-6,0,0,-15,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,3.5,0,0,0,0,-3,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Fast Reload","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Hybrid Mag","type":8,"effects":[0,6,0,0,0,0,-2,-6,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"PDW-57","guntype":2,"description":"5.7x28mm personal defence weapon with a bullpup design. An unique high-capacity magazine is fitted on top of the weapon's frame. ","drm":[{"bodymultiplier":[1.1,1,1,1,1,1,1,1,1,0.9,0.9,0.9,0.9],"damage":[27,22,17,15],"range":[6.8,15.9,28.9]}],"stats":[0,0,0,0,1,751,0,0,275,1,4.24,0,0,0,240,135,90,50,200,1,2.05,2.5,2.95,416.6,550,135,4.9,4.02,0,0,0,0],"recoil":{"hr":[0,-10,-30,-60,-100,-150,-210,-270,-335,-325,-315,-305,-295,-285,-262,-239,-216,-193,-170,-147,-122,-97,-72,-47,-27,-7,13,33,53,73,93,113,133,153,173,193,213,233,253,266,278,290,303,315,327,340,352,364,377,389],"vr":[0,90,180,250,320,390,430,470,510,550,590,630,670,710,750,790,830,870,910,950,997,1044,1091,1138,1185,1232,1279,1326,1373,1420,1467,1514,1561,1608,1655,1705,1755,1805,1855,1905,1955,2005,2055,2105,2155,2205,2255,2305,2355,2405]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"OWC Foregip","type":2,"effects":[0,14,-8.4,-15.3,0,0,-2,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Laser 1mW","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,7,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,16,-10.5,-13.9,-4.4,0,-3,-10,0,0,0,0,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,10,0,0,-5.6,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-8,0,0,4,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,0,6.6,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,0,0,-7.1,-6,0,0,-15,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"Pharo","guntype":2,"description":"9x24mm (fictional) submachine gun with an unique four-round burst firing mechanism. Extremely high damage output per burst at the expense of highly unpreditable recoil. ","drm":[{"bodymultiplier":[1.1,1,1,1,1,1,1,1,1,0.9,0.9,0.9,0.9],"damage":[34,26,21,19,16],"range":[7.5,13.1,19.1,26.1]}],"stats":[0,0,0,0,2,981,4,150,275,1,5,0,0,0,240,115,90,28,112,1,1.9,2.3,3,416.6,700,135,4.96,4.17,0,0,0,0],"recoil":{"hr":[0],"vr":[0]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Laser 1mW","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,7,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,18,-15,-9.6,-5.6,0,-3,-12,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Barrel","type":6,"effects":[0,-10,3.9,3.9,4.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-12,9.6,0,3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-12,6.7,0,4,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,0,6.6,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,0,0,-7.1,-6,0,0,-15,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,5,0,0,0,0,-3,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Fast Reload","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Hybrid Mag","type":8,"effects":[0,0,0,0,0,0,-1,-3,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"PP19 Bizon","guntype":2,"description":"9x18mm submachine gun with a remarkably high magazine capacity. Lowest recoil in class provides excellent maneverability. ","drm":[{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,1,0.8,0.8,0.8],"damage":[26,24,22,16],"range":[17.1,21,31]},{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[26,24,22,16],"range":[17.1,21,31]}],"stats":[0,0,0,0,1,652,0,0,250,1,5.82,0,0,0,240,85,90,64,256,1,1.65,2.3,2.7,400,533.3,135,4.73,3.9,0,0,0,0],"recoil":{"hr":[0,0,0,0,0,0,0,25,49,73,97,121,145,169,193,217,217,217,217,217,217,217,197,177,157,137,117,97,77,57,37,17,-3,-3,-3,17,37,57,77,97,117,137,157,177,197,217,237,257,277,257,237,217,197,177,157,137,117,97,77,57,37,17,17,17,17,17,41,65,89,113,137,161,185,209,233,257,257,257,257,257,257,257,257,257],"vr":[0,65,130,195,260,325,390,439.3,488.6,537.9,587.2,636.5,685.8,735.1,784.4,833.7,883,932.3,981.6,1030.9,1080.2,1129.5,1178.8,1228.1,1277.4,1326.7,1376,1425.3,1474.6,1523.9,1573.2,1622.5,1671.8,1721.1,1770.4,1819.7,1869,1918.3,1967.6,2016.9,2066.2,2115.5,2164.8,2214.1,2263.4,2312.7,2362,2411.3,2460.6,2509.9,2559.2,2608.5,2657.8,2707.1,2756.4,2805.7,2855,2904.3,2953.6,3002.9,3052.2,3101.5,3150.8,3200.1,3249.4,3298.7,3348,3397.3,3446.6,3495.9,3545.2,3594.5,3643.8,3693.1,3742.4,3791.7,3841,3890.3,3939.6,3988.9,4038.2,4087.5,4136.8,4186.1]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Laser 1mW","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,7,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"QQ9","guntype":2,"description":"9x19mm submachine gun. High rate of fire and mobility, effective in close quarter combat. A 10x25mm magazine attachment is provided to alleviate its rapidly decaying damage over range at the cost of a slow cyclic rate of fire. ","drm":[{"bodymultiplier":[1.1,1,1,1,1,1,1,1,1,1,0.9,0.9,0.9],"damage":[25,23,19,17,15],"range":[10.5,16.1,20,27]},{"bodymultiplier":[1.1,1,1,1,1,1,1,1,1,1,0.9,0.9,0.9],"damage":[26,23,19,17,15],"range":[12,19,24,31]}],"stats":[0,0,0,0,1,828,0,0,250,1,3.54,0,0,0,200,85,90,30,120,1,1.65,2.3,2.7,400,533.3,135,4.73,3.9,0,0,0,0],"recoil":{"hr":[0,47,94,141,188,235,282,282,282,282,282,282,282,282,320,357,394,432,469,506,544,581,618,656,693,730,768,805,842,880,917,954,992,1029,1066,1104,1141,1178,1216,1253,1290,1328,1365,1402,1440],"vr":[0,100,200,300,400,480,560,640,700,760,820,880,960,1040,1135,1230,1325,1420,1515,1610,1705,1800,1895,1990,2085,2180,2275,2370,2465,2560,2655,2750,2845,2940,3035,3130,3225,3320,3415,3510,3605,3700,3795,3890,3985]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Laser 1mW","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,7,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,8,0,0,6.4,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Integral Suppressor Light Barrel","type":6,"effects":[0,-7,0,0,8.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1000000,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Barrel","type":6,"effects":[0,-7,1.8,1.6,8.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-10,9.6,0,8.4,0,5,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-15,8,0,9.6,0,3,20,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-12,1.8,0,9.6,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,0,10.8,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,0,0,-6,-10.8,0,0,-10,0,0,0,-8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Fast Reload","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,-25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"30x [10mm]","type":8,"effects":[0,3,10.4,0,0,0,0,0,0,0,0,0,0,15,3,0,-9.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0]}]},{"gunname":"QXR","guntype":2,"description":"4.6x30mm personal defence weapon. Compact design allows for an ease of use in close and medium range. Very high cyclic rate of fire with an increased magazine size. ","drm":[{"bodymultiplier":[1.3,1,1.3,1.3,1,1,1,1,1,0.9,0.9,0.9,0.9],"damage":[22,19,16,12],"range":[8.6,16.1,26.1]},{"bodymultiplier":[1.3,1,1.1,1.1,1,1,1,1,1,0.9,0.9,0.9,0.9],"damage":[22,19,16,12],"range":[8.6,16.1,21]}],"stats":[0,0,0,0,1,872,0,0,250,1,4.04,0,0,0,260,115,90,40,160,1,1.5,2.2,2.45,383.3,583.3,135,4.8,3.95,0,0,0,0],"recoil":{"hr":[0,24.3,48.6,72.9,97.2,121.5,145.8,170.1,194.4,204.4,164.4,124.4,84.4,44.4,4.4,-35.6,-75.6,-115.6,-155.6,-195.6,-235.6,-275.6,-315.6,-355.6,-395.6,-435.6,-475.6,-515.6,-540.6,-564.6,-589.6,-613.6,-638.6,-662.6,-687.6,-711.6,-736.6,-760.6,-785.6,-805.6,-825.6,-845.6,-865.6,-885.6,-905.6,-925.6,-945.6,-965.6,-985.6,-1005.6],"vr":[0,49,99,150,202,255,309,364,420,477,535,594,654,715,777,840,904,969,1035,1102,1170,1239,1309,1380,1452,1525,1599,1674,1750,1827,1905,1984,2064,2145,2227,2310,2394,2479,2565,2652,2740,2835,2937,3046,3162,3285,3415,3552,3696,3847]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-8.3,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-13.8,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Laser 1mW","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,7,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,15,-5.9,-16.5,-8,0,-2,-5,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Barrel","type":6,"effects":[0,-10,6,6,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-12,11.2,0,3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-13,12.9,0,7.2,0,3,20,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-8,3.9,0,4,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,0,6.6,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,12,0,-8,-6,0,0,-15,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Fast Reload","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"Razorback","guntype":2,"description":"5.7x29mm (fictional) personal defence weapon with a bullpup design. High damage output and low recoil offer superior performance at medium range. ","drm":[{"bodymultiplier":[1.1,1,1,1,1,1,0.9,1,1,0.9,0.9,0.9,0.9],"damage":[30,23,19],"range":[16,29]}],"stats":[0,0,0,0,1,633,0,0,275,1,5.47,0,0,0,240,135,90,30,120,1,1.7,2.1,2.65,400,650,135,4.7,3.72,0,0,0,0],"recoil":{"hr":[0,10,25,45,70,100,138,184,238,300,277,248,213,172,125,72,13,-7,-27,-47,-67,-87,-107,-127,-147,-167,-187,-207,-227,-247,-267,-287,-299.5,-312,-324.5,-337,-349.5,-362,-374.5,-387,-399.5,-412],"vr":[0,90,165,240,315,390,465,540,615,690,720,750,780,810,840,870,900,949.6,999.2,1048.8,1098.4,1148,1197.6,1247.2,1296.8,1346.4,1396,1445.6,1495.2,1544.8,1594.4,1644,1693.6,1743.2,1792.8,1842.4,1892,1941.6,1991.2,2040.8,2090.4,2140]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"OWC Foregip","type":2,"effects":[0,14,-8.4,-15.3,0,0,-2,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Laser 1mW","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,7,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,16,-10.5,-13.9,-4.4,0,-3,-10,0,0,0,0,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,10,0,0,-5.6,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-8,0,0,4,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,0,6.6,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,0,0,-7.1,-6,0,0,-15,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-2,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"RUS-79U","guntype":2,"description":"5.45x39mm carbine. Increased cartridge size while maintaining recoil and handling, suitable for medium range. ","drm":[{"bodymultiplier":[1.1,1,1,1,1,1,1,1,1,0.9,0.9,0.9,0.9],"damage":[28,24,18,15],"range":[4.5,19.1,33]}],"stats":[0,0,0,0,1,769,0,0,250,1,7.03,0,0,0,260,115,90,30,120,1,1.8,2.2,2.95,416.6,616.6,135,4.83,3.97,0,0,0,0],"recoil":{"hr":[0,0,0,0,40,80,120,160,200,240,275,310,345,380,415,375,335,295,255,215,185,155,125,95,65,35,22,9,-4,-17,-30,-43,-56,-69,-82,-95,-108,-121,-134,-147,-134,-121,-108,-95,-82,-69,-56,-43,-30,-17],"vr":[0,60,118,174,229,283,336,388,439,489,538,587,636,685,734,783,832,881,930,979,1028,1077.5,1127,1176.5,1226,1275.5,1325,1374.5,1424,1473.5,1523,1572.5,1622,1671.5,1721,1770.5,1820,1869.5,1919,1968.5,2018,2067.5,2117,2166.5,2216,2265.5,2315,2364.5,2414,2463.5]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Laser 1mW","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,7,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,16,-15.1,-6.8,-5.6,0,-3,-8,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Integral Suppressor Light Barrel","type":6,"effects":[0,-10,0,0,4.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1000000,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-16,6,0,4,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-14,8,0,5.6,0,4,20,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-14,3.9,0,4,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Skeleton Stock","type":7,"effects":[0,-8,1.8,1.8,3.2,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,0,0,-6,-4.8,0,0,-14,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,3.5,0,0,0,0,-3,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Hybrid Mag","type":8,"effects":[0,6,0,0,0,0,-1,-3,0,0,0,0,0,0,-18,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":".50 GS","guntype":7,"description":"12.7x33mm pistol. Trades high recoil for extremely hard-hitting rounds. ","drm":[{"bodymultiplier":[1.5,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[70,55,48],"range":[10,26]},{"bodymultiplier":[1.5,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[60,45,40],"range":[10,26]}],"stats":[0,0,0,0,1,164,0,0,215,1,0,0,0,0,190,100,90,7,28,1,1.4,2,2.25,350,500,135,5.03,4.23,0,0,0,0],"recoil":{"hr":[0],"vr":[0]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Laser 1mW","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,14,0,-3.2,-5.8,0,-2,-5,0,0,0,0,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,10,0,0,-5.6,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,5,0,0,0,0,-3,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Lightweight Trigger","type":11,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Match Grade Trigger","type":11,"effects":[0,0,0,0,-5,0,0,0,0,0,0,0,10,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Heavy Duty Trigger","type":11,"effects":[0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"J358","guntype":7,"description":"9.1x33mm (fictional) revolver. Higher damage output but less flexibility for modification.","drm":[{"bodymultiplier":[1.5,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[60,40,34,25],"range":[19,21,36]},{"bodymultiplier":[1.5,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[70,50,44,35],"range":[19,21,36]}],"stats":[0,0,0,0,1,200,0,0,0,1,0,0,0,0,185,100,90,6,24,1,1.85,2.65,2.7,266.6,333.3,135,5,4.23,0,0,0,0],"recoil":{"hr":[0,110,330,590,860,1140,1430,1580],"vr":[0,110,250,470,700,930,1110,1290]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Shoulder Stock","type":3,"effects":[0,7,0,-3.2,-7.2,0,0,-10,0,0,0,-12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Wood Shoulder Stock","type":3,"effects":[0,0,0,-6.7,-13.2,0,0,-15,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Laser 1mW","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-12.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-1.5,-1.4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Barrel","type":6,"effects":[0,14,0,-10.5,-7.8,0,-6,0,0,0,0,0,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,12,0,0,-7.6,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-7,9.6,0,8.4,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stopping Power","type":8,"effects":[0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,-25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0]},{"name":"Lightweight Trigger","type":11,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Match Grade Trigger","type":11,"effects":[0,0,0,0,-5,0,0,0,0,0,0,0,10,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Heavy Duty Trigger","type":11,"effects":[0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"MW11","guntype":7,"description":"11.43x23mm pistol. Best mobility in class. ","drm":[{"bodymultiplier":[1.3,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[26,20,17,16],"range":[20,26,30]}],"stats":[0,0,0,0,1,300,0,0,250,1,0,0,0,0,185,100,90,6,24,1,1.15,1.6,1.6,333.3,350,135,5.05,4.25,0,0,0,0],"recoil":{"hr":[0,-15,-30,-45,-60,-75,-90,-105,-90,-75,-60,-45,-30,-15,0,0,0,0,0,0],"vr":[0,160,320,480,640,790,940,1090,1240,1390,1520,1650,1780,1910,2040,2040,2040,2040,2040,2040]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Laser 1mW","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,7,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-12.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-1.5,-1.4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,12,0,0,-7.6,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Integral Suppressor Barrel","type":6,"effects":[0,7,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-7,9.6,0,8.4,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,3,0,0,0,0,-2,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Lightweight Trigger","type":11,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Match Grade Trigger","type":11,"effects":[0,0,0,0,-5,0,0,0,0,0,0,0,10,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Heavy Duty Trigger","type":11,"effects":[0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"Renetti","guntype":7,"description":"9x19mm pistol with a three-round burst firing mechanism. Deals high damage to upper body. ","drm":[{"bodymultiplier":[2,1.5,1.5,1.5,1.5,1.5,1.5,1,1,1,1,1,1],"damage":[28,25,22],"range":[6.8,16.1]}],"stats":[0,0,0,0,2,720,3,365,0,1,0,0,0,0,185,115,90,15,30,1,1.2,1.7,2.1,300,383.3,135,5,4.23,0,0,0,0],"recoil":{"hr":[0],"vr":[0]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,3.2,3.2,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Handmade Grip Tape","type":3,"effects":[0,0,4,0,12,0,0,0,0,0,-15,0,-12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Laser 1mW","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Lightweight Trigger","type":11,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Match Grade Trigger","type":11,"effects":[0,0,0,0,-5,0,0,0,0,0,0,0,10,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Heavy Duty Trigger","type":11,"effects":[0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"Chopper","guntype":3,"description":"5.56x45mm light machine gun. Has an unique conversion which cannot be aimed down sights. Relatively high recoil. ","drm":[{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[25,21,17],"range":[10.5,36.1]}],"stats":[0,0,0,0,1,751,0,0,550,3,4.16,0,0,0,465,250,110,100,300,3,3.5,4.6,5.25,583.3,900,135,4.16,0,0,0,0,0],"recoil":{"hr":[0,-25,-50,-75,-100,-125,-150,-125,-100,-75,-50,-25,4,35,68,103,140,179,220,263,308,355,404,455,508,563,620,679,740,803,868,935,1004,1075,1148,1122,1094,1064,1032,998,962,924,887,849,812,774,737,699,662,624,587,549,512,474,437,399,362,324,287,249,212,174,137,99,62,24,-13,-51,-88,-126,-164,-202,-240,-278,-316,-354,-391,-429,-467,-505,-543,-581,-619,-657,-694,-732,-770,-808,-846,-884,-922,-960,-997,-1035,-1073,-1111,-1149,-1187,-1225,-1263,-1301,-1339,-1377,-1415,-1453,-1491,-1529,-1567,-1605,-1655,-1704,-1754,-1803,-1853,-1902,-1952,-2001,-2051,-2100,-2150,-2199,-2249,-2298,-2348,-2397,-2447,-2496,-2546,-2595,-2645,-2694,-2744,-2793,-2843,-2892,-2942,-2991,-3041,-3090,-3140,-3189,-3239,-3288,-3338,-3387,-3437,-3486,-3536,-3585,-3635],"vr":[0,80,160,240,320,360,401.75,445.25,490.5,537.5,586.25,636.75,689,743,798.75,856.25,915.5,976.5,1039.25,1103.75,1170,1238,1307.75,1379.25,1452.5,1527.5,1604.25,1682.75,1763,1845,1928.75,2014.25,2101.5,2190.5,2281.25,2326.25,2371.25,2416.25,2461.25,2506.25,2551.25,2596.25,2641.25,2686.25,2731.25,2776.25,2821.25,2866.25,2911.25,2960.25,3009.25,3059.25,3108.25,3157.25,3207.25,3256.25,3305.25,3355.25,3404.25,3453.25,3503.25,3552.25,3601.25,3651.25,3700.25,3749.25,3799.25,3848.25,3897.25,3947.25,3996.25,4045.25,4095.25,4144.25,4193.25,4243.25,4292.25,4341.25,4391.25,4441.25,4490.25,4540.25,4589.25,4639.25,4688.25,4738.25,4787.25,4837.25,4886.25,4936.25,4985.25,5035.25,5084.25,5134.25,5183.25,5233.25,5282.25,5332.25,5381.25,5436.25,5491.25,5546.25,5601.25,5656.25,5711.25,5766.25,5821.25,5876.25,5931.25,5993.25,6055.25,6117.25,6179.25,6241.25,6303.25,6365.25,6427.25,6489.25,6551.25,6613.25,6675.25,6737.25,6799.25,6861.25,6923.25,6985.25,7047.25,7109.25,7171.25,7233.25,7295.25,7357.25,7419.25,7481.25,7543.25,7605.25,7667.25,7729.25,7791.25,7853.25,7915.25,7977.25,8039.25,8101.25,8163.25,8225.25,8287.25,8349.25,8411.25,8473.25]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Bipod","type":2,"effects":[0,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Heavy Handle","type":2,"effects":[0,0,-8.2,0,-5,0,4,0,0,0,0,0,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,10100010000,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,0,0,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Laser Sight","type":4,"effects":[0,8,0,0,0,-20,0,0,0,0,0,0,-7,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Laser Sight","type":4,"effects":[0,8,0,0,-9.2,0,0,0,0,0,0,0,-11,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"YKM Flash Guard","type":5,"effects":[0,0,0,0,-12,0,0,0,0,0,0,0,-9.8,-15,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Chopper Heavy","type":6,"effects":[0,18,-13,-3.2,-10.8,0,-6,-20,0,0,0,0,0,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Chopper Infantry","type":6,"effects":[0,10,0,-8,-8.4,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Chopper Special Forces","type":6,"effects":[0,-7,2.5,3.2,7,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-8,3.2,3.2,6.8,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,1.6,1.6,7,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,0,0,-3.2,-8.8,0,0,-10,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"120 Round Reload","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"150 Round Reload","type":8,"effects":[0,3,0,0,0,0,-2,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"Holger-26","guntype":3,"description":"5.56x45mm light machine gun with very high damage output. Various attachments can drastically improve mobility and handling. ","drm":[{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[31,25,21,19],"range":[17.1,25,51]}],"stats":[0,0,0,0,1,710,0,0,0,3,4.82,0,0,0,565,165,110,100,400,1,2,3.1,3.3,450,833.3,135,4.3,0,0,0,0,0],"recoil":{"hr":[0,20,40,60,80,110,150,190,230,270,310,345,380,415,450,485,505,525,535,525,510,473,435,398,361,323,286,249,211,174,149,129,114,104,104,104,144,184,224,264,304,344,364,384,404,424,444,464,484,484,484,464,424,384,344,304,264,224,204,184,164,144,124,104,104,104,144,184,233.25,282.5,331.75,381,430.25,479.5,528.75,578,627.25,676.5,725.75,775,824.25,873.5,922.75,972,1021.25,1070.5,1119.75,1169,1218.25,1267.5,1316.75,1366,1415.25,1464.5,1513.75,1563,1612.25,1661.5,1710.75,1760],"vr":[0,65,130,195,260,325,385,445,505,554.3,603.6,652.9,702.2,751.5,800.8,850.1,899.4,948.7,998,1047.3,1096.6,1145.9,1195.2,1244.5,1293.8,1343.1,1392.4,1441.7,1491,1540.3,1589.6,1638.9,1688.2,1737.5,1786.8,1836.1,1885.4,1934.7,1984,2033.3,2082.6,2131.9,2181.2,2230.5,2279.8,2329.1,2378.4,2427.7,2477,2526.3,2575.6,2624.9,2674.2,2723.5,2772.8,2822.1,2871.4,2920.7,2970,3019.3,3068.6,3117.9,3167.2,3216.5,3265.8,3315.1,3364.4,3413.7,3463,3512.3,3561.6,3610.9,3660.2,3709.5,3758.8,3808.1,3857.4,3906.7,3956,4005.3,4054.6,4103.9,4153.2,4202.5,4251.8,4301.1,4350.4,4399.7,4449,4498.3,4547.6,4596.9,4646.2,4695.5,4744.8,4794.1,4843.4,4892.7,4942,4991.3]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Bipod","type":2,"effects":[0,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,0,0,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,-9.6,0,0,0,0,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Barrel","type":6,"effects":[0,-12,6.4,3.2,4.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-8,12,0,15,0,4,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-10,12,0,12,0,4,40,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-15,3.2,3.2,6.8,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,1.6,1.6,7,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,0,0,-3.2,-8.8,0,0,-30,0,0,0,-25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Mag","type":8,"effects":[0,-25,0,0,0,0,3,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,-70,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Hybrid Light Mag","type":8,"effects":[0,-23,0,0,0,0,0,0,0,0,0,0,0,0,-35,0,0,0,0,0,0,0,0,0,0,0,0,-65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"M4LMG","guntype":3,"description":"5.56x45mm light machine gun. Attachments can greatly improve mobility at the cost of more recoil. ","drm":[{"bodymultiplier":[1.1,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[32,23,19],"range":[21,51]}],"stats":[0,0,0,0,1,633,0,0,333,3,4.95,0,0,0,565,165,110,100,400,1,2.15,3.1,3.7,550,800,135,4.35,0,0,0,0,0],"recoil":{"hr":[0,-20,-40,-60,-80,-100,-120,-140,-160,-180,-200,-220,-181,-142,-103,-73,-43,-13,17,47,77,107,137,167,197,227,257,287,311.5,336,360.5,385,409.5,434,458.5,483,507.5,532,556.5,581,605.5,630,654.5,679,703.5,728,752.5,777,801.5,826,850.5,875,899.5,924,948.5,973,997.5,1022,1046.5,1071,1095.5,1120,1144.5,1169,1193.5,1218,1242.5,1267,1291.5,1316,1340.5,1365,1389.5,1414,1438.5,1463,1487.5,1512,1536.5,1561,1585.5,1610,1634.5,1659,1683.5,1708,1732.5,1757,1781.5,1806,1830.5,1855,1879.5,1904,1928.5,1953,1977.5,2002,2026.5,2051],"vr":[0,75,150,220,290,360,430,470,510,550,590,630,670,710,750,790,830,870,894.6,919.2,943.8,968.4,993,1017.6,1042.2,1066.8,1091.4,1116,1140.6,1165.2,1189.8,1214.4,1239,1263.6,1288.2,1312.8,1337.4,1362,1386.6,1411.2,1435.8,1460.4,1485,1509.6,1534.2,1558.8,1583.4,1608,1632.6,1657.2,1681.8,1706.4,1731,1755.6,1780.2,1804.8,1829.4,1854,1878.6,1903.2,1927.8,1952.4,1977,2001.6,2026.2,2050.8,2075.4,2100,2124.6,2149.2,2173.8,2198.4,2223,2247.6,2272.2,2296.8,2321.4,2346,2370.6,2395.2,2419.8,2444.4,2469,2493.6,2518.2,2542.8,2567.4,2592,2616.6,2641.2,2665.8,2690.4,2715,2739.6,2764.2,2788.8,2813.4,2838,2862.6,2887.2]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Bipod","type":2,"effects":[0,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,0,0,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"YKM Flash Guard","type":5,"effects":[0,0,0,0,-12,0,0,0,0,0,0,0,-9.8,-15,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Short Barrel","type":6,"effects":[0,-4,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ultralight Barrel","type":6,"effects":[0,-12,5.6,0,11.2,0,5,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-15,12,0,9.6,0,3,10,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-10,3.2,3.2,6.8,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,1.6,1.6,7,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,0,0,-3.2,-8.8,0,0,-10,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"30 Round Light Reload","type":8,"effects":[0,-10,0,0,0,0,7,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,-70,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"40 Round Light Reload","type":8,"effects":[0,-15,0,0,0,0,8,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,-60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"RPD","guntype":3,"description":"7.62x39mm light machine gun. Highest damage output at long range in class, great for suppressive fire. ","drm":[{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[31,23,18],"range":[21,56.1]}],"stats":[0,0,0,0,1,666,0,0,450,3,5.44,0,0,0,575,165,110,100,400,3,4.15,5.55,6.05,533.3,850,135,4.06,0,0,0,0,0],"recoil":{"hr":[0,-12,-24,-36,-48,-37,-26,-15,-4,7,19.5,32,44.5,57,69.5,82,94.5,107,119.5,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132],"vr":[0,100,200,300,400,437,475,512,549,587,633,687,749,819,897,983,1077,1163,1241,1241,1278,1316,1353,1390,1428,1465,1502,1540,1577,1614,1652,1689,1726,1764,1801,1838,1876,1913,1950,1988,2026,2063,2101,2139,2176,2214,2252,2289,2327,2365,2414,2463,2512,2561,2610,2659,2708,2757,2806,2855,2904,2953,3002,3051,3100,3149,3198,3247,3296,3345,3394,3443,3492,3541,3590,3639,3689,3739,3789,3839,3889,3939,3989,4039,4089,4139,4189,4239,4289,4339,4389,4439,4489,4539,4589,4639,4689,4739,4789,4839,4902,4964,5027,5089,5152,5214,5277,5339,5402,5464,5527,5589,5652,5714,5777,5839,5902,5964,6027,6089,6152,6214,6277,6339,6402,6464,6527,6589,6652,6714,6784,6854,6924,6994,7064,7134,7204,7274,7344,7414,7484,7554,7624,7694,7764,7834,7904,7974,8044,8114,8189,8264,8339,8414,8489,8564,8639,8714,8789,8864,8939,9014,9089,9164,9239,9314,9389,9464,9539,9614,9689,9764,9839,9914,9989,10064,10139,10214,10289,10364,10439,10514,10589,10664,10739,10814,10889,10964,11039,11114,11189,11264,11339,11414,11489,11564,11639,11714,11789,11864]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Bipod","type":2,"effects":[0,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Snatch Foregrip","type":2,"effects":[0,-5,-8.4,0,0,0,-1,-8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,0,0,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"YKM Flash Guard","type":5,"effects":[0,0,0,0,-12,0,0,0,0,0,0,0,-9.8,-15,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Barrel","type":6,"effects":[0,12,-13.1,-3.2,-7.8,0,-5,-15,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Heavy Barrel","type":6,"effects":[0,10,0,-2.4,-6.4,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Compact Barrel","type":6,"effects":[0,-7,2.5,3.2,7.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-15,12,0,9.6,0,3,10,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-10,3.2,3.2,6.8,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,1.6,1.6,7,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,0,0,-3.2,-8.8,0,0,-10,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"150 Round Belt","type":8,"effects":[0,3,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"200 Round Belt","type":8,"effects":[0,5,0,0,0,0,-1.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"S36","guntype":3,"description":"5.8x42mm light machine gun with a bullpup design. Its excellent cyclic rate of fire makes up for the rapidly decaying damage. ","drm":[{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[30,23,18],"range":[16.1,36.1]}],"stats":[0,0,0,0,1,751,0,0,500,3,5.41,0,0,0,540,165,110,50,200,1,2.1,2.6,3.25,583.3,883.3,135,4.26,0,0,0,0,0],"recoil":{"hr":[0,20,40,60,80,100,120,155,190,240,290,290,285,270,245,210,170,130,90,62,30,-6,-46,-90,-138,-190,-246,-306,-370,-440,-516,-598,-686,-781,-881,-987,-1099,-1217,-1341,-1471,-1605,-1743,-1885,-2031,-2181,-2335,-2493,-2655,-2821,-2991,-3167,-3349,-3537,-3731,-3931,-4137,-4349,-4567,-4791,-5021,-5254,-5490,-5729,-5971,-6216,-6464,-6715,-6969,-7226,-7486,-7749,-8015,-8284,-8556,-8831,-9109,-9387,-9665,-9943,-10221,-10499,-10777,-11055,-11333,-11611,-11889,-12167,-12445,-12723,-13001,-13279,-13557,-13835,-14113,-14391,-14669,-14947,-15225,-15503,-15781],"vr":[0,40,80,120,200,320,440,480,510,540,570,610,650,690,730,810,930,1050,1150,1200,1250,1300,1350,1400,1450,1500,1550,1600,1650,1700,1750,1800,1850,1900,1950,2000,2050,2100,2150,2200,2250,2300,2350,2400,2450,2500,2550,2600,2650,2700,2750,2800,2850,2900,2950,3000,3050,3100,3150,3200,3250,3300,3350,3400,3450,3500,3550,3600,3650,3700,3750,3800,3850,3900,3950,4000,4050,4100,4150,4200,4250,4300,4350,4400,4450,4500,4550,4600,4650,4700,4750,4800,4850,4900,4950,5000,5050,5100,5150,5200]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Bipod","type":2,"effects":[0,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,0,0,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"YKM Flash Guard","type":5,"effects":[0,0,0,0,-12,0,0,0,0,0,0,0,-9.8,-15,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,10,0,0,-6.4,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Barrel","type":6,"effects":[0,-4,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-12,5.6,0,11.2,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-10,3.2,0,6.8,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,0,7,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,0,0,-3.2,-8.8,0,0,-10,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag A","type":8,"effects":[0,3,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag B","type":8,"effects":[0,5,0,0,0,0,-1.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"UL736","guntype":3,"description":"5.56x45mm light machine gun with a bullpup design. Decreased damage output but has the highest mobility in class. ","drm":[{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[25,22,20,18],"range":[26.1,36.1,55]}],"stats":[0,0,0,0,1,621,0,0,500,3,4.01,0,0,0,465,165,110,30,120,1,1.9,2.3,3.05,566.6,866.6,135,4.3,0,0,0,0,0],"recoil":{"hr":[0,30,63,99,138,180,225,225,197,167,135,101,65,27,-13,-55,-99,-147,-187,-159,-129,-97,-63,-27,11,51,71,91,111,131,151,171,191,211,231,251,271,291,311,331,351,371,391,411,431,451,471,491,511,531,551,571,591,611,631,651,671,691,711,731],"vr":[0,50,115,195,290,400,525,580,637,696,757,820,885,952,1082,1197,1297,1382,1452,1507,1557,1607,1657,1707,1757,1795,1832,1870,1907,1945,1982,2020,2057,2095,2132,2170,2207,2245,2282,2320,2357,2395,2432,2470,2507,2545,2582,2620,2657,2695,2732,2770,2807,2845,2882,2920,2957,2995,3032,3070]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4.4x Scope","type":1,"effects":[440,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-12.9,0,-12.2,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-6.9,0,0,0,0,-10,0,0,0,0,-6.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Bipod","type":2,"effects":[0,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,0,0,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,12,0,0,7,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"YKM Flash Guard","type":5,"effects":[0,0,0,0,-12,0,0,0,0,0,0,0,-9.8,-15,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,12,-15.1,-3.2,-7.8,0,-5,-15,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Barrel","type":6,"effects":[0,-4,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-12,5.6,0,11.2,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-10,3.2,0,6.8,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,0,7,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,0,0,-3.2,-8.8,0,0,-10,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag A","type":8,"effects":[0,3,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag B","type":8,"effects":[0,5,0,0,0,0,-1.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"Arctic .50","guntype":5,"description":"12.7x99mm sniper rifle featuring a built-in recoil reduction system. Its semi automatic firing mechanism provides both high damage and fast rate of fire with reduced mobility.","drm":[{"bodymultiplier":[1.6,1.4,1.4,1.4,1.4,1.4,1.4,1,1,1,1,1,1],"damage":[85,80],"range":[63]},{"bodymultiplier":[1.24,1.205,1.205,1.205,1.205,1.205,1.205,1,1,0.67,0.67,0.67,0.67],"damage":[127,120],"range":[79]}],"stats":[0,0,0,0,3,124,0,0,600,3,0,50.26,0,0,465,250,440,7,28,1,2.05,2.85,3.45,416.6,716.6,135,3.98,0,0,0,0,2000],"recoil":{"hr":[0],"vr":[0]},"aments":[{"name":"Tactical Scope","type":1,"effects":[150,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"6x Scope","type":1,"effects":[600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Bipod","type":2,"effects":[0,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,0,0,0,-4,0,0,0,-25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-7,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,4,4,0,0,0,0,0,0,-15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,3,0,0,0,0,0,-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,8,0,0,0,0,0,-5,0,0,0,0,0,25,0,0,0,0,0,20,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-10,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-30,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0]},{"name":"RTC Compensator","type":5,"effects":[0,10,-15,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,12,-20,-16,0,0,-6,-20,0,0,0,-45,0,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,8,-10,0,0,0,0,0,0,0,0,-25,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Integral Suppressor Barrel","type":6,"effects":[0,4,0,0,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1000000,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-7,10,0,0,0,5,5,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Skeleton Stock","type":7,"effects":[0,-5,6.4,6.4,0,0,0,15,0,0,0,20,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,4,0,0,0,20,0,0,0,10,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,10,0,-20,0,0,0,-10,0,0,0,-35,0,0,0,0,0,0,0,-45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0]},{"name":"Extended Mag A","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag B","type":8,"effects":[0,3,0,0,0,0,-2,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stopping Power","type":8,"effects":[0,20,30,0,0,0,0,0,0,0,0,0,0,25,5,0,-28.6,0,0,0,0,0,0,0,0,0,1,-2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-5]}]},{"gunname":"DL Q33","guntype":5,"description":"10.36x77mm sniper rifle with moderate maneuverability. Maintains a high lethality at long range.","drm":[{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,0.67,0.67,0.67,0.67],"damage":[135,120],"range":[210]}],"stats":[0,0,0,0,7,50,0,0,550,3,0,113.1,0,0,500,235,440,6,24,1,1.95,3.15,3.4,433.3,666.6,135,4.06,0,0,0,0,1000],"recoil":{"hr":[0],"vr":[0]},"aments":[{"name":"Tactical Scope","type":1,"effects":[150,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"6x Scope","type":1,"effects":[600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Bipod","type":2,"effects":[0,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-3,0,0,0,0,0,0,0,0,-1.5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,3,0,0,0,0,0,-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,8,0,0,0,0,0,-5,0,0,0,0,0,25,0,0,0,0,0,20,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-10,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-30,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0]},{"name":"RTC Compensator","type":5,"effects":[0,10,-15,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,15,-20,-20,0,0,-6,-20,0,0,0,-45,0,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Barrel","type":6,"effects":[0,15,-15,0,0,0,-6,-10,0,0,0,-25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Barrel","type":6,"effects":[0,-10,4,4,0,0,0,0,0,0,-2.5,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-10,4,4,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Skeleton Stock","type":7,"effects":[0,-5,4,4,0,0,0,15,0,0,0,15,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,0,0,-10,0,0,0,-10,0,0,0,-25,0,0,0,0,0,0,0,-30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0]},{"name":"Ranger Stock","type":7,"effects":[0,8,0,-15,0,0,0,-15,0,0,0,-45,0,0,0,0,0,0,0,-60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0]},{"name":"Extended Mag A","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag B","type":8,"effects":[0,3,0,0,0,0,-2,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"Locus","guntype":5,"description":"8.6x70mm sniper rifle with ergonomic and mechanical optimizations. Moderate mobility and rate of fire among bolt-action rifles. ","drm":[{"bodymultiplier":[1.5,1.5,1.5,1.5,1.5,1.5,1.5,1,1,1,1,1,1],"damage":[95,90],"range":[66]},{"bodymultiplier":[1,1,1,1,1,1,1,1,1,0.67,0.67,0.67,0.67],"damage":[142,135],"range":[82]}],"stats":[0,0,0,0,7,60,0,0,600,3,0,113.1,0,0,485,235,440,8,32,1,1.95,2.7,3.05,416.6,666.6,135,4.13,0,0,0,0,1000],"recoil":{"hr":[0],"vr":[0]},"aments":[{"name":"Tactical Scope","type":1,"effects":[150,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"6x Scope","type":1,"effects":[600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,0,0,0,-4,0,0,0,-25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-7,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,4,4,0,0,0,0,0,0,-15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-3,0,0,0,0,0,0,0,0,-1.5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,3,0,0,0,0,0,-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,8,0,0,0,0,0,-5,0,0,0,0,0,25,0,0,0,0,0,20,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-10,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-30,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0]},{"name":"RTC Compensator","type":5,"effects":[0,10,-15,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0]},{"name":"Ranger Barrel","type":6,"effects":[0,15,-15,0,0,0,-6,-15,0,0,0,-35,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,10,-8,0,0,0,0,0,0,0,0,-10,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-5,10,0,0,0,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Skeleton Stock","type":7,"effects":[0,-5,4.8,4.8,0,0,0,15,0,0,0,15,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,4,0,0,0,20,0,0,0,10,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,7,0,-15,0,0,0,-10,0,0,0,-30,0,0,0,0,0,0,0,-60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0]},{"name":"Extended Mag A","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag B","type":8,"effects":[0,3,0,0,0,0,-2,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stopping Power","type":8,"effects":[0,7,9.6,0,0,0,0,0,0,0,0,0,0,25,5,0,-13,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0]}]},{"gunname":"Outlaw","guntype":5,"description":"8.6x70mm sniper rifle feeding from a cylinder. Effective at medium range due to a very high rate of fire and mobility. ","drm":[{"bodymultiplier":[1.5,1.5,1.5,1.5,1.5,1.5,1.2,1,1,1,1,1,1],"damage":[90,75],"range":[31]}],"stats":[0,0,0,0,7,66,0,0,550,3,0,201.06,0,0,450,185,440,6,24,1,2,2.5,3.1,466.6,666.6,135,4.41,0,0,0,0,500],"recoil":{"hr":[0],"vr":[0]},"aments":[{"name":"Tactical Scope","type":1,"effects":[150,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"6x Scope","type":1,"effects":[600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Bipod","type":2,"effects":[0,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,0,0,0,-4,0,0,0,-25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-7,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,4,4,0,0,0,0,0,0,-15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-3,0,0,0,0,0,0,0,0,-1.5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,3,0,0,0,0,0,-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,8,0,0,0,0,0,-5,0,0,0,0,0,25,0,0,0,0,0,20,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-10,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-30,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0]},{"name":"RTC Compensator","type":5,"effects":[0,10,-15,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0]},{"name":"Ranger Barrel","type":6,"effects":[0,15,-15,0,0,0,-6,-15,0,0,0,-45,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,10,-10,0,0,0,0,0,0,0,0,-20,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-7,10,0,0,0,5,5,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-10,12,12,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Skeleton Stock","type":7,"effects":[0,-5,8,8,0,0,0,15,0,0,0,20,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,4.8,0,0,0,20,0,0,0,10,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,7,0,-20,0,0,0,-10,0,0,0,-35,0,0,0,0,0,0,0,-45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0]},{"name":"Stalker Stock","type":7,"effects":[0,-5,1.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag A","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag B","type":8,"effects":[0,3,0,0,0,0,-2,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"M21 EBR","guntype":5,"description":"7.62x51mm designated marksman rifle with semi automatic firing mechanism. Higher rate of fire at the cost of lower damage. ","drm":[{"bodymultiplier":[1.5,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[60,55],"range":[76]}],"stats":[0,0,0,0,3,205,0,0,450,3,0,78.54,0,0,365,165,440,10,40,1,2.05,2.8,3.35,400,650,135,4.3,0,0,0,0,2000],"recoil":{"hr":[0,37,74,111,148,185,222,259,296,333,370,407,444,481,518,555,592,629,666,703],"vr":[0,70,140,210,280,350,420,490,560,630,700,770,840,910,980,1050,1120,1190,1260,1330]},"aments":[{"name":"Tactical Scope","type":1,"effects":[150,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"6x Scope","type":1,"effects":[600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-10,0,0,0,-2,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,-5,0,0,0,-1,-5,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-20,0,0,0,0,-10,0,0,1.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-8,0,0,0,0,-10,0,0,0,0,-7.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Bipod","type":2,"effects":[0,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-3,0,0,0,0,0,0,0,0,-1.5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,3,0,0,0,0,0,-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,8,0,0,0,0,0,-5,0,0,0,0,0,25,0,0,0,0,0,20,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-10,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-30,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0]},{"name":"RTC Compensator","type":5,"effects":[0,10,-15,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0]},{"name":"Ranger Barrel","type":6,"effects":[0,15,-15,0,0,0,-6,-15,0,0,0,-45,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,10,-8,0,0,0,0,0,0,0,0,-25,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Barrel","type":6,"effects":[0,-10,4,4,0,0,0,0,0,0,-2.5,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-20,10,0,0,0,4,10,0,0,0,30,0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-75,0,0,0]},{"name":"Skeleton Stock","type":7,"effects":[0,-5,4.8,4.8,0,0,0,15,0,0,0,15,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,4,0,0,0,20,0,0,0,10,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,0,0,-20,0,0,0,-10,0,0,0,-25,0,0,0,0,0,0,0,-60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0]},{"name":"Extended Mag A","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag B","type":8,"effects":[0,3,0,0,0,0,-2,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"NA-45","guntype":5,"description":"11.43x73mm sniper rifle with unique primer and catalyst rounds utilizing semi automtic firing mechanism. The primers detonate and deal area damage after catalysts hit nearby, making up for the low magazine capacity. ","drm":[{"bodymultiplier":[3.5,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[30],"range":[]},{"bodymultiplier":[3.5,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[30],"range":[]},{"bodymultiplier":[3.5,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[30],"range":[]},{"bodymultiplier":[3.5,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[30],"range":[]}],"stats":[0,3,5,103.58,3,392,0,0,275,3,0,78.54,0,0,465,215,440,2,32,1,1.5,2.05,2.05,400,733.3,135,4.05,0,0,0,0,2000],"recoil":{"hr":[0],"vr":[0]},"aments":[{"name":"Tactical Scope","type":1,"effects":[150,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"6x Scope","type":1,"effects":[600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-10,0,0,0,-2,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,-5,0,0,0,-1,-5,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-20,0,0,0,0,-10,0,0,1.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-8,0,0,0,0,-10,0,0,0,0,-7.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Bipod","type":2,"effects":[0,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Trigger","type":2,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Heavy Duty Trigger","type":2,"effects":[0,0,-8.5,0,0,0,0,0,0,0,0,0,0,0,0,0,-25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-3,0,0,0,0,0,0,0,0,-1.5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,3,0,0,0,0,0,-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,8,-15,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-10,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-30,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,12,-10,-8,0,0,-3,-7,0,0,0,-45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Barrel","type":6,"effects":[0,8,-5,-4,0,0,-1,-5,0,0,0,-25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Barrel","type":6,"effects":[0,-10,12,12,0,0,0,0,0,0,-2.5,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Skeleton Stock","type":7,"effects":[0,-5,8,8,0,0,0,15,0,0,0,15,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,8,0,0,0,20,0,0,0,10,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,0,0,-15,0,0,0,-10,0,0,0,-15,0,0,0,0,0,0,0,-35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,60,0,0,0]},{"name":"Electromagnetic Ammo","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Fragment Ammo","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"High Explosive Ammo","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,179.82,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]},{"gunname":"XPR-50","guntype":5,"description":"12.7x99mm sniper rifle using semi automatic firing mechanism. Deals high damage to the head with an increased rate of fire. ","drm":[{"bodymultiplier":[2,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[55,50],"range":[63]},{"bodymultiplier":[2,2,2,2,1,1,1,1,1,1,1,1,1],"damage":[55,50],"range":[78]}],"stats":[0,0,0,0,3,240,0,0,600,3,0,78.54,0,0,365,165,440,8,32,1,2.05,2.75,3.3,416.6,716.6,135,4.3,0,0,0,0,2000],"recoil":{"hr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"vr":[0,250,500,750,1000,1100,1100,1100,1100,1100,1100,1100,1100,1100,1100,1100,1100,1100]},"aments":[{"name":"Tactical Scope","type":1,"effects":[150,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x Scope","type":1,"effects":[300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"4x Scope","type":1,"effects":[400,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"6x Scope","type":1,"effects":[600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-10,0,0,0,-2,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,-5,0,0,0,-1,-5,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Ranger Foregrip","type":2,"effects":[0,15,-20,0,0,0,0,-10,0,0,1.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,10,-8,0,0,0,0,-10,0,0,0,0,-7.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Bipod","type":2,"effects":[0,0,0,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-3,0,0,0,0,0,0,0,0,-1.5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Suppressor","type":5,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,3,0,0,0,0,0,-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,8,0,0,0,0,0,-5,0,0,0,0,0,25,0,0,0,0,0,20,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-10,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-50,0,0,0]},{"name":"MIP Flash Guard","type":5,"effects":[0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-30,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0]},{"name":"RTC Compensator","type":5,"effects":[0,10,-15,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0]},{"name":"Ranger Barrel","type":6,"effects":[0,15,-15,0,0,0,-6,-15,0,0,0,-45,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,12,-10,0,0,0,0,0,0,0,0,-25,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-7,10,0,0,0,5,5,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-20,15,0,0,0,4,10,0,0,0,30,0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-75,0,0,0]},{"name":"Strike Stock","type":7,"effects":[0,0,0,-12,0,0,0,-10,0,0,0,-25,0,0,0,0,0,0,0,-45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0]},{"name":"Ghost Stock","type":7,"effects":[0,0,0,-16,-2.4,0,0,-20,0,0,0,-35,0,0,0,0,0,0,0,-60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag A","type":8,"effects":[0,0,0,0,0,0,-1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag B","type":8,"effects":[0,3,0,0,0,0,-2,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stopping Power","type":8,"effects":[0,10,17.6,0,0,0,0,0,0,0,0,0,0,25,5,0,-33.3,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0]}]},{"gunname":"Echo","guntype":4,"description":"18.5ร—70mm shotgun using fully automatic firing mechanism. Various magazine attachments are available. ","drm":[{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[17,15,13,0],"range":[6,12,33]},{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[54,47,30,28],"range":[4,7,15]}],"stats":[8,0,0,0,1,235,0,0,0,0,0,0,7,-49,210,150,90,8,32,1,1.9,2.3,2.5,416.6,733.3,135,4.7,3.03,0,0,0,0],"recoil":{"hr":[0],"vr":[0]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,-8,-7.6,0,0,0,-5,-18.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,0,0,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,11,0,0,7,0,0,-5,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Choke","type":5,"effects":[0,0,0,0,-10,0,-5,0,0,0,7.5,0,-10,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Flash Guard","type":5,"effects":[0,0,0,0,-12,0,0,0,0,0,0,0,-9.8,-15,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,12,0,0,-7.8,0,-5,-15,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,10,0,0,-6.4,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-12,5.6,0,11.2,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-15,12,0,9.6,0,3,20,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-10,3.2,0,6.8,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,0,7,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stalker Stock","type":7,"effects":[0,0,0,0,-8.8,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,3,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,5,0,0,0,0,-1.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Slug Reload","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-7,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0]}]},{"gunname":"BY15","guntype":4,"description":"18.5ร—70mm shotgun. Reduced damage per pellet for better performance over range. ","drm":[{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[35,27,24,16,0],"range":[6,8,17,41]},{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[108,97,92,84],"range":[5,7,19]}],"stats":[8,0,0,0,5,72,0,0,0,0,0,0,5.6,-49,210,150,90,8,32,2,1.15,0.5,0.8,383.3,666.6,135,4.7,2.98,0,0,0,0],"recoil":{"hr":[0],"vr":[0]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,-8,-7.6,0,0,0,-5,-18.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Guard","type":2,"effects":[0,-10,-7.6,0,0,0,-5,-20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Steady Guard","type":2,"effects":[0,0,-12.5,0,-4.4,0,-3,-17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,0,0,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,11,0,0,7,0,0,-5,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marauder Suppressor","type":5,"effects":[0,10,0,0,-10,15,0,0,0,0,0,0,-10,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Choke","type":5,"effects":[0,-5,0,0,-10,0,0,0,0,0,7.5,0,-10,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Flash Guard","type":5,"effects":[0,0,0,0,-12,0,0,0,0,0,0,0,-9.8,-15,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Barrel","type":6,"effects":[0,12,0,0,-7.8,0,-5,0,0,0,0,0,-2,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,10,0,0,-6.4,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Sawed-Off Barrel","type":6,"effects":[0,-12,5.6,0,11.2,0,5,0,0,0,0,0,4.8,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-15,12,0,9.6,0,3,20,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-10,3.2,0,6.8,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,0,7,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stalker Stock","type":7,"effects":[0,0,0,0,-8.8,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,0,0,-3.2,-8.8,0,0,-10,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,5,0,0,0,0,-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Slug Reload","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-7,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0]}]},{"gunname":"HS0405","guntype":4,"description":"18.5ร—70mm shotgun in lever action. Increased the number of pellets per shot at the cost of more pellet spread and slower rate of fire. ","drm":[{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[39,28,16,10,0],"range":[9,13,19,44]},{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[119,108,96,90],"range":[8,13,17]}],"stats":[10,0,0,0,5,48,0,0,0,0,0,0,6.5,-14.8,225,150,90,7,28,2,1.55,0.7,0.65,400,700,135,4.8,3.03,0,0,0,0],"recoil":{"hr":[0],"vr":[0]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,-8,-7.6,0,0,0,-5,-18.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,0,0,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,11,0,0,7,0,0,-5,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Choke","type":5,"effects":[0,0,0,0,-10,0,-5,0,0,0,7.5,0,-10,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Flash Guard","type":5,"effects":[0,0,0,0,-12,0,0,0,0,0,0,0,-9.8,-15,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,10,0,0,-6.4,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Sawed-Off Barrel","type":6,"effects":[0,-12,5.6,0,11.2,0,5,0,0,0,0,0,4.8,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-15,12,0,9.6,0,3,20,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,0,7,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stalker Stock","type":7,"effects":[0,0,0,0,-8.8,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,5,0,0,0,0,-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Slug Reload","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-9,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0]}]},{"gunname":"HS2126","guntype":4,"description":"18.5ร—70mm shotgun with a bullpup design and a four-round burst firing mechanism. Uses an unique quad-tube revolver magazine.","drm":[{"bodymultiplier":[1,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[12,9,6,0],"range":[5,9,33]},{"bodymultiplier":[1,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[6,3,2,0],"range":[5,9,29]}],"stats":[8,0,0,0,2,469,469,250,0,0,0,0,7,-49,200,150,90,16,64,1,1.85,2.35,2.85,416.6,766.6,135,4.7,2.98,0,0,0,0],"recoil":{"hr":[0],"vr":[0]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,-8,-7.6,0,0,0,-5,-18.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,0,0,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,11,0,0,7,0,0,-5,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Choke","type":5,"effects":[0,0,0,0,-10,0,-5,0,0,0,7.5,0,-10,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Flash Guard","type":5,"effects":[0,0,0,0,-12,0,0,0,0,0,0,0,-9.8,-15,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,12,0,0,-7.8,0,-5,-15,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,10,0,0,-6.4,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-12,5.6,0,11.2,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-10,3.2,0,6.8,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,0,7,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stalker Stock","type":7,"effects":[0,0,0,0,-8.8,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,3,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Large Extended Mag","type":8,"effects":[0,5,0,0,0,0,-1.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"FF Birdshot","type":8,"effects":[0,0,0,0,10,0,0,0,0,0,0,0,14.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,-1,0,0,1,0,0,0,0,0,0,0,0]}]},{"gunname":"KRM 262","guntype":4,"description":"18.5ร—70mm shotgun. Designed for close quarter combat with high damage but a slightly reduced rate of fire. ","drm":[{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[36,34,22,16,0],"range":[5,8,12,36]},{"bodymultiplier":[1.2,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[104,92,86],"range":[9,12]}],"stats":[8,0,0,0,5,57,0,0,0,0,0,0,5,-36,200,150,90,8,32,2,0.6,0.55,0.7,416.6,616.6,135,4.7,2.98,0,0,0,0],"recoil":{"hr":[0],"vr":[0]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Foregrip A","type":2,"effects":[0,0,0,0,-10,0,-1,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,-8,-7.6,0,0,0,-5,-18.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Operator Foregrip","type":2,"effects":[0,8,-13.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,0,0,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,11,0,0,7,0,0,-5,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marauder Suppressor","type":5,"effects":[0,10,0,0,-10,15,0,0,0,0,0,0,-10,25,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Choke","type":5,"effects":[0,0,0,0,-10,0,-5,0,0,0,7.5,0,-10,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Flash Guard","type":5,"effects":[0,0,0,0,-12,0,0,0,0,0,0,0,-9.8,-15,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Barrel","type":6,"effects":[0,12,0,0,-7.8,0,-5,0,0,0,0,0,-2,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,10,0,0,-6.4,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Sawed-Off Barrel","type":6,"effects":[0,-12,5.6,0,11.2,0,5,0,0,0,0,0,4.8,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"No Stock","type":7,"effects":[0,-15,12,0,9.6,0,3,20,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-10,3.2,0,6.8,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,0,7,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stalker Stock","type":7,"effects":[0,0,0,0,-8.8,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Steady Stock","type":7,"effects":[0,0,0,-3.2,-8.8,0,0,-10,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,5,0,0,0,0,-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Slug Reload","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-7,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0]}]},{"gunname":"Striker","guntype":4,"description":"18.5ร—70mm shotgun utilizing fully automatic firing mechanism. High damage output but has a much slower reload speed. ","drm":[{"bodymultiplier":[1,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[12,10,7,0],"range":[7,10,33]},{"bodymultiplier":[1,1,1,1,1,1,1,1,1,1,1,1,1],"damage":[50,42,25,22],"range":[4,8,12]}],"stats":[8,0,0,0,1,260,0,0,0,0,0,0,7,-49,210,150,90,12,48,2,1.1,0.6,0.7,416.6,650,135,4.8,3.03,0,0,0,0],"recoil":{"hr":[0],"vr":[0]},"aments":[{"name":"Red Dot Sight","type":1,"effects":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Holographic Sight","type":1,"effects":[110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Scope","type":1,"effects":[150,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"3x scope","type":1,"effects":[300,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Strike Foregrip","type":2,"effects":[0,0,-7.6,0,-4.4,0,-1,-16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Merc Foregrip","type":2,"effects":[0,-8,-7.6,0,0,0,-5,-18.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Granulated Grip Tape","type":3,"effects":[0,0,0,0,-11.6,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Rubberized Grip Tape","type":3,"effects":[0,0,-13.2,0,9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stippled Grip Tape","type":3,"effects":[0,-5,0,0,12,0,0,0,0,0,-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"1mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"5mW Laser Sight","type":4,"effects":[0,0,0,0,0,0,0,0,0,0,-25,0,-11,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Laser Sight","type":4,"effects":[0,-8,0,0,-9.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Tactical Suppressor","type":5,"effects":[0,5,0,0,0,0,0,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Monolithic Suppressor","type":5,"effects":[0,11,0,0,7,0,0,-5,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Choke","type":5,"effects":[0,0,0,0,-10,0,-5,0,0,0,7.5,0,-10,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Compensator","type":5,"effects":[0,5,-11.1,-7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"RTC Muzzle Brake","type":5,"effects":[0,5,-7.8,-10.5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Flash Guard","type":5,"effects":[0,0,0,0,-12,0,0,0,0,0,0,0,-9.8,-15,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Marksman Barrel","type":6,"effects":[0,12,0,0,-7.8,0,-5,-15,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Light Barrel","type":6,"effects":[0,10,0,0,-6.4,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Short Barrel","type":6,"effects":[0,-12,5.6,0,11.2,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Combat Stock","type":7,"effects":[0,-10,3.2,0,6.8,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Light Stock","type":7,"effects":[0,0,0,0,7,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Stalker Stock","type":7,"effects":[0,0,0,0,-8.8,0,0,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Extended Mag","type":8,"effects":[0,3,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Fast Reload","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,-20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"name":"Slug Reload","type":8,"effects":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-7,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0]}]}]} diff --git a/util/Data/draws.json b/util/Data/draws.json @@ -0,0 +1,54 @@ +{ + "0": [ + { + "name": "Folding Knife - Countdown", + "percent": 29, + "emoji": "https://images-ext-2.discordapp.net/external/tOMZG6j3rmwaoVSuOfn3N7eusa19XgOGj92cLv6umvY/https/media.discordapp.net/attachments/896078559293104128/896392631565828146/nyx_logo_transparent.webp" + }, + { + "name": "Trap Master - Countdown", + "percent": 28, + "emoji": "https://images-ext-2.discordapp.net/external/tOMZG6j3rmwaoVSuOfn3N7eusa19XgOGj92cLv6umvY/https/media.discordapp.net/attachments/896078559293104128/896392631565828146/nyx_logo_transparent.webp" + }, + { + "name": "Thermite - Coundown", + "percent": 11, + "emoji": "https://images-ext-2.discordapp.net/external/tOMZG6j3rmwaoVSuOfn3N7eusa19XgOGj92cLv6umvY/https/media.discordapp.net/attachments/896078559293104128/896392631565828146/nyx_logo_transparent.webp" + }, + { + "name": "Nikto", + "percent": 10, + "emoji": "https://images-ext-2.discordapp.net/external/tOMZG6j3rmwaoVSuOfn3N7eusa19XgOGj92cLv6umvY/https/media.discordapp.net/attachments/896078559293104128/896392631565828146/nyx_logo_transparent.webp" + }, + { + "name": "Tank - Countdown", + "percent": 6.5, + "emoji": "https://images-ext-2.discordapp.net/external/tOMZG6j3rmwaoVSuOfn3N7eusa19XgOGj92cLv6umvY/https/media.discordapp.net/attachments/896078559293104128/896392631565828146/nyx_logo_transparent.webp" + }, + { + "name": "Darkness Returns", + "percent": 5.5, + "emoji": "https://images-ext-2.discordapp.net/external/tOMZG6j3rmwaoVSuOfn3N7eusa19XgOGj92cLv6umvY/https/media.discordapp.net/attachments/896078559293104128/896392631565828146/nyx_logo_transparent.webp" + }, + { + "name": "Lord of Death", + "percent": 4.67, + "emoji": "https://images-ext-2.discordapp.net/external/tOMZG6j3rmwaoVSuOfn3N7eusa19XgOGj92cLv6umvY/https/media.discordapp.net/attachments/896078559293104128/896392631565828146/nyx_logo_transparent.webp" + }, + { + "name": "AS VAL - Countdown", + "percent": 4, + "emoji": "https://images-ext-2.discordapp.net/external/tOMZG6j3rmwaoVSuOfn3N7eusa19XgOGj92cLv6umvY/https/media.discordapp.net/attachments/896078559293104128/896392631565828146/nyx_logo_transparent.webp" + }, + { + "name": ".50 GS - Calamity", + "percent": 1.25, + "emoji": "https://images-ext-2.discordapp.net/external/tOMZG6j3rmwaoVSuOfn3N7eusa19XgOGj92cLv6umvY/https/media.discordapp.net/attachments/896078559293104128/896392631565828146/nyx_logo_transparent.webp" + }, + { + "name": "Nikto - Dark Side", + "percent": 0.08, + "emoji": "https://images-ext-2.discordapp.net/external/tOMZG6j3rmwaoVSuOfn3N7eusa19XgOGj92cLv6umvY/https/media.discordapp.net/attachments/896078559293104128/896392631565828146/nyx_logo_transparent.webp" + } + ] +} diff --git a/util/Data/gun.json b/util/Data/gun.json @@ -0,0 +1,14 @@ +[ + { + "name": "kuku69", + "description": "Meta gun of S7", + "emoji": "<:kuku69:894157060164440095>", + "link": "https://cdn.discordapp.com/emojis/894157060164440095.png" + }, + { + "name": "nani45", + "description": "Gae Gun", + "emoji": "<:nani45:893669056928972832>", + "link": "https://cdn.discordapp.com/emojis/893669056928972832.png" + } +] diff --git a/util/Data/item.json b/util/Data/item.json @@ -0,0 +1,86 @@ +[ + { + "aliases": ["gae", "na45", "na-45"], + "emoji": "<:na45:840231919529623562>", + "price": 50000, + "name": "NA-45", + "dbname": "NA45", + "sell": 1000, + "sellable": true, + "buyable": true, + "collectable": false, + "type": "Power-Up" + }, + { + "aliases": ["deagle", ".50gs", "50gs", "desert eagle"], + "emoji": "<:50gs:840231952045178892>", + "price": 50000, + "name": "Akimbo .50 GS", + "dbname": "Deagle", + "sell": 1000, + "sellable": true, + "buyable": true, + "collectable": false, + "type": "Power-Up" + }, + { + "aliases": ["manta", "mantaray", "manta ray"], + "emoji": "<:mantaray:840231914747985941>", + "price": 500000, + "name": "Manta Ray", + "dbname": "MantaRay", + "sell": false, + "sellable": false, + "buyable": true, + "collectable": true, + "type": "Collectable" + }, + { + "aliases": ["alias"], + "emoji": "<:alias:840231973443338321>", + "price": 500000, + "name": "Alias", + "dbname": "Alias", + "sell": false, + "sellable": false, + "buyable": true, + "collectable": true, + "type": "Collectable" + }, + { + "aliases": ["scylla"], + "emoji": "<:scylla:840231932289089556>", + "price": 500000, + "name": "Scylla", + "dbname": "Scylla", + "sell": false, + "sellable": false, + "buyable": true, + "collectable": true, + "type": "Collectable" + }, + { + "aliases": ["urban", "urban tracker", "urbantracker"], + "emoji": "<:urban:840231930741653545>", + "price": 500000, + "name": "Urban Tracker", + "dbname": "UrbanTracker", + "sell": false, + "sellable": false, + "buyable": true, + "collectable": true, + "type": "Collectable" + }, + { + "aliases": ["exp", "exp card", "card", "epic card"], + "emoji": "<:xp_500:893938920449007656>", + "price": 30000, + "name": "Epic Weapon XP Card", + "dbname": "EpicXPCard", + "sell": false, + "sellable": false, + "buyable": true, + "collectable": true, + "type": "Power-Up" + } +] diff --git a/util/Data/scam.json b/util/Data/scam.json @@ -0,0 +1,4102 @@ +[ + "discordsgift.com", + "steam-sourcecommunity1.xyz", + "dlscordnitro.info", + "steamcommuniyty.ru", + "betadiscord.com", + "csgogf02.xyz", + "steamcommynitu.xyz", + "discordapp.org", + "stemcommunnitiy.net.ru", + "lan-pro.ru", + "dscordnitro.xyz", + "discord-boost.com", + "discord-boost.xyz", + "avitofast.ru", + "dlscord.live", + "steamcornmunety.com", + "disco9rdapp.com", + "natus-lootbox.net.ru", + "streamconmunitly.com", + "discordbooster.com", + "diiiscrod.club", + "steamcommunillty.ru.com", + "discord-steam.com", + "steamcomrneuneity.com", + "steancomnuniity.com", + "staemcomunitly.xyz", + "discorddiscord.com", + "generator.discordnitrogift.com", + "steampoweredtrades.xyz", + "discordaap.com", + "steemcommunity.com", + "nise-win.xyz", + "discord-mod.com", + "triumph.tk", + "stearncomnnunity.site", + "freenitros.ru", + "discord-airdrop.pw", + "steamcommunitu.ru.com", + "nitro-discord.ru.com", + "steancomnurity.xyz", + "dicoapp.me", + "steamcommunetiyi.com", + "streamcommunitiy.ru.com", + "magifrolbiq.xyz", + "dicsord-nitro.com", + "discord-free.site", + "diiscord.me", + "steamcomnmuntiy.ru.com", + "stieamconmuniity.com", + "roblox-login.com", + "steemcommunnity.co", + "steampowerec.com", + "ggfail.xyz", + "stearmconnrnunity.com", + "steamcomnumlty.com", + "pubggf01.xyz", + "twitch-nude.com", + "u924157p.beget.tech", + "steanmcomnunity.com", + "roblox-collect.com", + "discorad.com", + "dlscrodapp.ru", + "discoapps.club", + "steamcomnnynlty.com", + "steamcammmunity.ru", + "stemcomiunity.ru", + "eslgaming-world.com", + "streamconnuity.com", + "steanncomunnity.ru", + "streamcommuniitu.com", + "steamconunity.cf", + "stemcommunlity.ru", + "stemccomnmunity.com", + "steemcommynity.ru", + "discorld.site", + "steamcommunily.org", + "steamcamunity.ru", + "steamcomnuhity.com", + "steamcommumiuty.com", + "driscord.ru", + "dlcsord-airdrop.com", + "dlscord.cloud", + "staemcammunity.me", + "stenmcommunilty.ru.com", + "stearmcornmunlty.com", + "steamcornmunity.fun", + "steamcamnunity.ru", + "discord-nltro.com", + "steamcornmynitu.ru", + "sleamcommuninty.com", + "stearncomnnunity.website", + "dlscorp.com", + "stemcummunnity.ru.com", + "kaysdrop.ru", + "discordgift.pw", + "steamcommunityzbo.top", + "dlscord.fr", + "stuamcommnuity.com", + "disccord.tk", + "dlsccrd.com", + "steam-tradeoffer.xyz", + "nitroos-frieie.ru", + "steeamcomnnunity.com", + "discord-nitro.link", + "disocrd.gifts", + "steamcomunninuty.com", + "steancoommunitytradeofferr.com", + "steamcommmunlity.com", + "steams-discord.ru", + "luckygift.space", + "staemcomunnity.com", + "robuxat.com", + "steamconmumity.com", + "stearncommunhty.com", + "steancammunlty.com", + "steampoweredswap.xyz", + "steamcomnunilty.ru.com", + "streamnconmumity.com", + "steamtradestore1.xyz", + "steancommunnty.com", + "stemapowered.com", + "dicsrod.com", + "discordgg.com", + "smartcommunity.net", + "steancomunyti.ru.com", + "sternconmunity.ru", + "steamcommunetiy.com", + "discord-airdrop.fun", + "steamcommunityzbr.top", + "disccord.gg", + "stleamncommunity.ru", + "disorc.com", + "steam-auth.ru", + "stemcumnmunity.ru.com", + "scteamcommunity.com", + "staemcoommunity.ru", + "steamcommlunity.com", + "navi-up.com", + "discorcl.online", + "streamnconmunity.com", + "steamuserimages-a.akamaid.net", + "dlscord.support", + "riptide-valve.ru", + "stemcomrnmunity.com", + "streamcommuinty.com", + "steamcommunityw.org.ru", + "streamcommmunitty.ru.com", + "game-csgosteam.ru", + "steamcommunity.com-id-k4tushatwitchbabydota.ru", + "steappowered.com", + "steamcommeunity.com", + "steamcummunity.com.ru", + "streamcommuniliiey.org.ru", + "discordsapplication.info", + "discordc.gift", + "store-steamcomminuty.ru.com", + "steamcomunmity.ru.com", + "steamcommynityprofile.ru", + "steawcomunity.net", + "steanncommuiniuty.com", + "steamcommunitfy.ru.com", + "streamcommunmity.com", + "discord-boost.ru.com", + "discord-apps.xyz", + "discord-gift.info", + "discordnitro.gift", + "robuxprofiles.com", + "streamcomunnity.ru.com", + "fustcup.ru", + "steamcommunitty.com.ru", + "verifapp.us", + "sterumcommunity.com", + "steanpowered.net.ru", + "stemcomnmuniity.com", + "taceitt.com", + "cs-skins.link", + "dlscord-nitro.ru.com", + "diszcordapp.com", + "steaimeecommunity.com", + "staemcommunityi.com", + "streamconnunity.us", + "steamcamunitey.com", + "stemcamnunity.ru", + "discrocl.xyz", + "my-tradelink.ru", + "thediscordapp.com", + "steannconnnnunity.net.ru", + "steamgifts.net.ru", + "steamcamiutity.com", + "stemcommunite.pp.ru", + "steamconynuyty.net.ru", + "steamcomunuty.com", + "steamcommunikkty.net.ru", + "steancomrnunity.com", + "steemcomrnunity.co", + "steamtradeprofile.com", + "steamconmunyty.com", + "streamcommuniity.ru.com", + "robloxstore.co.uk", + "streamcomunniity.net.ru", + "riptide-operation.ru", + "23c7481e.hbrex.cn", + "pubggift102.xyz", + "discord-airdrop.info", + "streamcommiunity.com", + "streamcomunilty.org.ru", + "dliscord-gift.com", + "sleancommunlty.xyz", + "sleamcommnunity.net", + "steamcommutiny.ru", + "discodnitro.info", + "steamcommunitty.site", + "pubggf02.xyz", + "steamoffered.trade", + "nitro-discord.info", + "csgosell.xyz", + "bigmoneyrollawira.xyz", + "steemcoommunlty.ru", + "streamconnumity.com", + "steramconmunity.com", + "discordx.link", + "streamcommuntly.net.ru", + "steammcamunity.com", + "steaimecommintliy.com", + "discord.in", + "staemcoomuunty.ru", + "hyperz.monster", + "discorddevelopment.com", + "discod.art", + "dlscorclapp.fun", + "discold.ru", + "steancomnnunnity.ru", + "discords-events.com", + "steam-dlscord.com", + "upcs.monster", + "staemcommnunity.ru.com", + "discordgift.ru.com", + "streamcommynuty.com", + "steamcommunitli.ru", + "steamcommunityy.online", + "discrodup.ru", + "steamconnunity.pp.ru", + "hallowen-nitro.com", + "streamcomynity.com", + "eslgamingopen.com", + "disscord.online", + "toom-skins.xyz", + "discords.co.uk", + "slearncommunity.store", + "steamcomunity.com.ru", + "badge-team.ml", + "stemcoomnmounity.com", + "discordapp.store", + "staemcrommunity.com.profiles-768590190751377476483.me", + "steancomnuuniliy.ru.com", + "hydra2018.ru", + "steancoomnunity.com", + "dicsord-airdrop.ru", + "steamowered.com", + "mythiccups.xyz", + "steamcommynyti.ru", + "steamcommuniti.org.ru", + "dicsord.space", + "stuemconmunity.com", + "discorcl-gift.ru", + "steamcommunuty.org.ru", + "discord-gifte.xyz", + "stearmmcommuniity.ru", + "steamcommunitlly.ru.com", + "steamcomrnyniti.ru.com", + "discords.net", + "steampower.co", + "steam.cash", + "stheamcommunity.ru", + "derimonz.xyz", + "discocrd.gifts", + "rl-performance.com", + "diisccord.club", + "sturemconmunity.com", + "steamcommuuity.net.ru", + "dicsord.website", + "discord-dr0p.ru", + "discord-developer.com", + "discorcd.com", + "steam-accounts.com", + "discord-service.com", + "dicscordapp.com", + "fnatic-drop.com", + "steamcoommunilty.com", + "staemcommunitu.com", + "navi.pp.ru", + "stearnpovvered.com", + "steamcomunnitu.xyz", + "streamcomrnunity.online", + "discordt.gift", + "steamcommnunlty.ru", + "roblox.link.club", + "pubgclaims.com", + "steampoweded.com", + "steamservice-deals.xyz", + "staerncormmunity.com", + "steeamcommunnity.ru.com", + "pubg.new-collects.xyz", + "dicsordapp.co", + "2021cs.net.ru", + "dicord.site", + "stearncomminuty.link", + "steamcommunuty.ru", + "steancomuniite-xuz.ru", + "discordtw.com", + "steam-rep.com", + "steanncomnuniity.com", + "steamcommymity.ru", + "steancommunity.host", + "diskord.gg", + "steacomnmunify.fun", + "stemcummnunity.ru.com", + "discordgiftsteam.ru", + "cyber-lan.com", + "steam-communitygifts.xyz", + "stemcomnmunniity.com", + "discardapp.fun", + "discor.de", + "discocl.xyz", + "steamcommunity-tradeoffer.com", + "steancomnunytu.ru", + "streamcomnunlty.ru", + "stearmcommnunity.com", + "stemconmumity.ru", + "steamcommunti.com", + "ds-nitro.site", + "steamcomiunity.com", + "pubggf30.xyz", + "steam-nltro.ru", + "steamrommunity.org.ru", + "nitro-drop.com", + "services.runescape.rs-ui.xyz", + "katowice.ru", + "discovd.com", + "discord-help.com", + "stearmconmmunity.com", + "discords-developers.com", + "dlicord-glfts.site", + "steamcommnunity.ru.com", + "steamconmumity.com.ru", + "discordinfo.com", + "streamcommunly.me", + "diiscord.gift", + "discorid.gift", + "stearmcommuninty.com", + "steamcomunety.com", + "dliscord-nitro.com", + "steancommounity.com", + "discord-security.com", + "steamcommunitygifts1.xyz", + "sttemcomnmuty.ru.com", + "steamcommytuniu.com", + "esportpoint.xyz", + "doscordapp.com", + "steamcommunty.pw", + "steanncommity.co", + "sleamcomunity.ru.com", + "operationreptide.com", + "streamcammunitly.com", + "staemcommunninty.com", + "steamcommnunily.xyz", + "steamitem.xyz", + "steamcommunyty.ru.com", + "discordsapp.xyz", + "discordappo.com", + "steamcommunnjty.com", + "steanmcomrninuty.xyz", + "disclord.com", + "discord-app.info", + "steamcommunityi.com", + "esportsgvay.xyz", + "staemmcommunity.ru", + "steamcommynnityy.com", + "steamcommumlity.com", + "discord-nitro-free.ru", + "stemcomminuty.ru", + "steeamcomunity.net", + "stemcumnmunity.com.ru", + "sleamcommunity.net", + "steamcomunity.me", + "sterncommunnity.ru", + "stearmcommuunity.ru", + "disiscord.com", + "steomcommunitey.com", + "discordapp.pages.dev", + "steam-powered1.xyz", + "stemcomunnity.com", + "dlscord-nltro.com", + "steam-tradehome.xyz", + "steamcornmuniity.net.ru", + "stheamcornmunitiy.ru", + "stemcomnunity.ru", + "steamsourcecommunity1.xyz", + "dlscord.online", + "pubggift92.xyz", + "disc-ord.com", + "discord-airdrop.xyz", + "discordappp.net", + "testbot2021.ru", + "summer-rust.xyz", + "steamconnunity.net", + "discord.fyi", + "steamcommunicty.ru.com", + "steam-power.xyz", + "slteamcommuinity.com", + "stemcornmunitly.ru.com", + "discordnitropromo.site", + "steamcommuntily.ru", + "disordnitros.xyz", + "staemcommunity.org", + "discord-net-labs.com", + "steamcommunety.org.ru", + "steamnltros.ru", + "discord-apps.site", + "steamhome-trade.xyz", + "rl-promos.com", + "discord-hypesquad.com", + "store.stampowered.com", + "steamcommynitu.net.ru", + "steamcommuniltily.ru.com", + "steamcomyniti.xyz", + "steancommuncity.ru", + "steancommuniit.ru.com", + "discord-nitro.ru.com", + "discorcd-nitro.com", + "sreamcommunity.net.ru", + "steancommnunitytradeoffer.xyz", + "steancomunite-xuz.ru", + "humanlifeof.xyz", + "steamcommunnity.co", + "navi-esl.ru.com", + "discord.deals", + "steamcommulnity.com", + "stearcommunitly.com", + "discodrd.com", + "csgo-lute.net.ru", + "discord-givaewey.ru", + "pubggf35.xyz", + "streampowered.store", + "steamconnumuty.com", + "twitch.rust-ltd.com", + "steamcommintty.com", + "steamcommunitiyy.com", + "dicordapp.com", + "discord-hypeevent.com", + "steamcommunitywork.com", + "discorcl.club", + "discorcl.ru", + "pandaskins.ru.com", + "steamcommunjtv.xyz", + "stearnconmunity.com", + "steaamcammunitiy.com", + "discocrd.gift", + "steamcomunity.org.ru", + "steamcommnuty.site", + "steamuppowered.com", + "sternmconmunity.com", + "sleammcommunity.ru", + "pubggf41.xyz", + "dlscordsream.pp.ua", + "steamcommunlty.shop", + "discordsgift.info", + "steamncomunitity.com", + "steamcommunrity.com", + "steamcomnutiny.ru.com", + "discord-app.top", + "stearncommmunity.online", + "steamecommunitiiy.com", + "steamcommnlty.com", + "staermcrommunity.me", + "steancommuinty.ru", + "astrallis.net.ru", + "steamcommunimty.ru.com", + "fineplay.xyz", + "sleamcommuinity.xyz", + "steancommunmilty.com", + "stemcommnuunity.com", + "stearncommunitly.xyz", + "discord-infoapp.xyz", + "steemcommunity.ru.com", + "streamcommunitily.com", + "juct-case.ru", + "stearnporewed.ru.com", + "discord.moscow", + "steamcommunity.click", + "copyrightbussinessgroup.com", + "steampower.de", + "steamcomunty.org.ru", + "streamconnunity.ru", + "staemcornmunity.ru", + "discord-sms.eu", + "discord-bugs.com", + "dlscord-developer.com", + "dlscordapp.codes", + "discordpap.com", + "stemcomunity.ru.com", + "steamcomminyty.ru.com", + "steamcommurnity.com", + "streamcommnunlity.ru", + "steanncammunlte.com", + "steamcommutry.ru", + "rl-garage.online", + "steeamcommunlity.com", + "steamcommnnunnity.world", + "steamconmunyty.ru", + "steancomnmunity.ru", + "givenatus.site", + "dsicrod.com", + "dicovrd.com", + "stearncomnmunity.com", + "steamconnummity.ru", + "steanpowered.xyz", + "staemcomunity.ru", + "steamcumumunity.com.ru", + "steamcommunity-profile.net", + "discorrd.site", + "discordl.xyz", + "steampowered-swap1.xyz", + "sleamcommunnity.net", + "steamncommunitu.co", + "steeamcommunnuity.ru.com", + "discordevents.com", + "myfast.ru", + "discord-accept.com", + "streamcommuniti.xyz", + "stleamcommunitty.com", + "discord.biz", + "steamco.mmunity.com", + "giftdiscord.online", + "steamcommuunlity.com", + "steamcornmunit.ru.com", + "discrodnitro.ru", + "stearncornmnuity.ru", + "steamcommutyniu.com", + "discard.gift", + "natus-open.pp.ru", + "dixscord.com", + "steamcommunity.cloud", + "staemcomconmunlty.ru.com", + "tradeoffer.com.ru", + "sleamcommuniitey.ru.com", + "discord-nitro.co", + "discordl.com", + "qbt-giveaway.info", + "disc0rd-nitro.site", + "discrod-app.site", + "discord-accounts.com", + "csgorun-rubonus.ru", + "nitroappstore.com", + "steamcamunity.com", + "fornite.best", + "steanmncommunity.com", + "dlscord.net", + "vitality-playtime.com", + "steampoweredkey.com", + "navi-giveaway.xyz", + "streamcommunyty.com", + "derwoood.xyz", + "staermcrommunty.me", + "drops4all.pp.ru", + "steancommuniite.xyz", + "streancoommunity.com", + "steamcommunity.eu", + "dicord.gift", + "steamppwrred.com", + "discord.best", + "duscord.js.org", + "discorcl.store", + "steamcomrmunity.ru.com", + "steeamcommmunitty.site", + "discord-jobs.com", + "steamcomnunity.com", + "steamcommunnity.ml", + "streamcommunity.org.ru", + "discordtext.com", + "steampowerered.com", + "steam-ru.ru", + "bigsports.xyz", + "discords-dev.ga", + "steancommunitty.com", + "steamcommunity-comtradeoffer.ru", + "stearncornrnuity.com", + "steamcommunitu.net", + "steamtrade-home.xyz", + "steammcomminity.ru", + "steanncomnmunity.com", + "streamcommmunlty.ru.com", + "dIscordnitro.com", + "steamcomrnunity.online", + "discordjob.com", + "steamcommunutii.ru", + "dlscord.org", + "dlscord-claim.com", + "steamcomniunity.com", + "staemcoommunlty.ru", + "streamcommunity.ru.com", + "steancommunity.ru.com", + "steancommanty.ru.com", + "discord-nitro.store", + "discordi.gift", + "discourd.site", + "rust-llc.com", + "dissord.com", + "stearncommunnity.xyz", + "steamcommuniilty.ru", + "steampowered.jcharante.com", + "share.nowblox.com", + "stemcommnunity.com", + "streamcommmunnlty.ru.com", + "staemcoommnunity.ru", + "steamcommunytiu.com", + "steamcomnumity.org.ru", + "steamcommqnity.com", + "discoogs.com", + "v-roblox.com", + "wavebtc.com", + "steamcsgoplay.ru", + "steam.communty.com", + "csgogift47.xyz", + "ww11.steamcommunity.download", + "steamcommunityw.com", + "steamconnmunitu.net.ru", + "discordstat.com", + "m-discord.pw", + "dicsord-gift.com", + "disrcod.gifts", + "steannconmunity.com", + "disc0rd.site", + "ropost15.xyz", + "fnatic-ro1ls.ru.com", + "discrodsteam.ru", + "streamcomnmunity.ru.com", + "discorcl.click", + "staemcomnunlty.ru", + "steam.cheap", + "discordgift.org", + "steamcromnmunity-com.profiles-7685981598976.me", + "deadisidddde.xyz", + "discords-steam.com", + "streamcommunnilty.com", + "steamconnmunlty.ru", + "steacommunity.site", + "steamcomunitytrades.xyz", + "steemcomunity.net.ru", + "steamcommunity.digital", + "steamcomrnuniti.ru.com", + "www.d-nitro.tk", + "steamcomnunytu.ru", + "steemcommunly.com", + "discords-gift.ru", + "steamcommynutiy.ru", + "streamcummunlty.xyz", + "staempovered.com", + "streamcommuniity.ru", + "steancomnunilty.ru", + "steancommunity.pw", + "accountauthorization.xyz", + "staemcornmunity.xyz", + "streamcomnnunuty.com", + "streamcommuunilty.ru.com", + "discord-alidrop.me", + "stearmconmunnity.com", + "stemcommyunity.ru", + "steamcomrnunite.com", + "steemcoomunity.xyz", + "playeslseries.com", + "www.zipsetgo.com", + "discord-nilro.ru", + "discord-verify.com", + "streamcommuniliiey.net.ru", + "steawcommunity.com", + "dicsord.net", + "steamcommumilty.com", + "discordrgift.online", + "discod-nitro.ru", + "staeamconnunitly.ru", + "operationriptide.tk", + "discord-present.ru", + "discord-trustandsafety.com", + "navi-skins.pp.ru", + "discorcl-gift.ru.com", + "steamcommunillty.ru", + "streamcomunity.fun", + "steamcomnunitly.tk", + "staemcomunyti.ru", + "discrodapp.ru", + "dlscordapp.store", + "new-drop.net.ru", + "steammcamunitu.com", + "sleamcomrnunity.com", + "steamlcommunity.ru.com", + "steamcoormmunity.com", + "discocord.com", + "staemcammunity.com", + "discord-hypevent.com", + "steamcomnumlty.ru", + "steamcommunitx.ru.com", + "steanncomnunity.xyz", + "roll-skins.ga", + "fortniteswapper.fun", + "game-case.ru", + "pubggift87.xyz", + "steamcomminytu.com", + "discoed.gg", + "steamcommunilty.us", + "stcommunity.xyz", + "streamconmunilty.com", + "discord-news.com", + "steam-discords.com", + "staemcommunyti.ru.com", + "steamcomnunuty.ru", + "steamcommunityc.com", + "steamcamunity-profile.ru", + "streamcommunitiy.com", + "steamecommuinty.com", + "m90694rb.beget.tech", + "discordss.ru", + "freenitrogenerator.cf", + "steemcoommuntiy.ru", + "stearncomminhty.com", + "but-three.xyz", + "csgostats.fun", + "sleamcommunnity.org", + "steamconimmunity.com", + "steam-community.org.ru", + "discorgift.xyz", + "steamcommunlity.ru.com", + "giftsdiscord.com", + "discordnitrogenerator.com", + "steancoommuniity.xyz", + "discorcl-nitro.ru.com", + "discordalts293.repl.co", + "discord-install.com", + "discord-apps.space", + "steamcammunlty.ru", + "discrodapp.site", + "streamcommuniity.org", + "discordx.ml", + "steamcommunityzbn.top", + "steancommeuniliy.ru.com", + "stleamcommunilty.com", + "steamconnunity.com.ru", + "fastskins.ru", + "streamcommuuniity.com", + "steamcomminuty.me", + "steancommuniite-xuz.ru", + "steamcommunity-gifts1.xyz", + "steamacommunity.com", + "discondapp.fun", + "gave-nitro.com", + "rust-code.ru.com", + "staemcomrnunity.ru", + "steamcammunitu.ru.com", + "stearncornmunity.com", + "steamcommunlty-proflle.com.ru", + "steamcomrnumity.com", + "steamcommunitie.site", + "steamcomrnunuity.ru.com", + "sleamcommiinuty.ru", + "discord-steams.com", + "stleamcommunitly.com", + "steamcomminuty.ru.com", + "steeamcomunnlty.com", + "discordgift.tk", + "seamconmunity.xyz", + "sternmcommunity.com", + "natus-win.pp.ru", + "steamcommullty.ru", + "steamcommuntily.ru.com", + "steanncomnuniity.online", + "pubggf40.xyz", + "discordnitrogift.ru", + "streamcommuntiiy.org", + "steampoweredoffers.xyz", + "steamcommunitry.ru", + "steancomminity.ru", + "steamconmnutiny.ru", + "games-code.ru.com", + "discord.app.br", + "lakskuns.xyz", + "www.cswanmei4.ru", + "disbordapp.com", + "steampowers.com", + "streamcommunity.net.ru", + "steamcommnity.com.ru", + "www.discord-nitro.net", + "stieamcommunity.com", + "guardian-angel.xyz", + "steancommuity.com", + "ptbdiscord.com", + "steamcamunity.top", + "disbords.com", + "fps-booster.pw", + "steam-gametrade.xyz", + "discord-give.ru", + "ggboom.ru", + "steamcammunity-profile.ru", + "dlscord-halloween.ru", + "staemcomminuty.online", + "stearncommuninity.com", + "steamcommunnity.ru.com", + "stleamcommuneety.com", + "steamcommynlty.com", + "stearncommunytiy.ru", + "discorcl.gift", + "cliscord-gift.ru.com", + "discorb.ru.com", + "staemcommuntyi.ru", + "stermcommunityy.ru", + "steamcomunnlty.com", + "stleamconmunity.com", + "steamcommmunty.com", + "alexandrkost.ru", + "discord-freenitro.pw", + "disc0rd.org", + "steamcomynnitu.net.ru", + "2faceteam.ml", + "steancammunity.com", + "streamcomnuniity.net", + "stg.steamcpowered.com", + "steamoffer-store.xyz", + "steamcommunityzci.top", + "discord-devs.com", + "steamcommunvti.ru", + "sternmcornmmunity.com", + "steamcommunitj.buzz", + "dirscod.com", + "steamcomnunnity.com", + "case-gift.com", + "steamcomnuunlty.com", + "streamcommunilty.com", + "steam-csgoplay.ru", + "steamcorrnmunity.ru", + "steamcomunitly.pp.ru", + "discord-ro.tk", + "gbauthorization.com", + "communitytradeoffer.com.ru", + "staeaemcornmunite.me", + "discord.my", + "steamcommnunlty.icu", + "staemcommuniity.com", + "steamcommununty.ru", + "stemcomnmuniity.ru.com", + "dlscordgived.xyz", + "steamcommunitiv.com", + "fnatic.team", + "steam-community.ru.com", + "globalcs.monster", + "steamconmuhlty.com", + "stearncommunity.net.ru", + "discorsd.com", + "luckycrush.ga", + "steamtrade-store.xyz", + "natus-vincere.space", + "stemconmmunnity.com", + "steam-game-csgo.ru", + "steamcommunitl.com", + "discord.cool", + "steamcoommuniity.ru", + "discourdapp.com", + "gamesbuy.net.ru", + "discoclapp.xyz", + "dlscordnitro.ru.com", + "discord-verification.com", + "steamc0munnity.site", + "steamcommunytu.ru", + "dlscordapp.fun", + "steamcammunity.net", + "board-nitro.com", + "steamcammunitu.com", + "discordgivenitro.com", + "steamcommunty.com", + "steempowered.com", + "steampowered.de", + "sleamcommuinty.store", + "robloxgamecode.com", + "steamcommunutry.com", + "discord.foundation", + "steampowwred.com", + "streamcomunnity.pp.ua", + "steamwcommunity.com", + "straemcummonilty.com", + "steampowered.irl.com.pk", + "steancommunlty.business", + "discord-app.su", + "steamtradeshome.xyz", + "stieamcomnnunity.com", + "steamcommurlty.com", + "stemcummnuity.ru.com", + "discord-team.com", + "discorcl-air.xyz", + "steamcomunituy.com", + "boostnitro.com", + "csgo-gamesteam.ru", + "doscord.com", + "steamservicedeals1.xyz", + "steammcomtradeoff.com", + "steamcommiunitty.ru", + "discordcreators.net", + "steammcommunitey.com", + "steamcommunllty.com", + "cupcsgo.ru", + "steam.luancort.com", + "steam-offerstore.xyz", + "steam-nltro.com", + "nitro-gift.site", + "cyber-csgo.link", + "belekevskeigames.xyz", + "sleamcommunity.org.ru", + "steampowerded.com", + "steamm.store", + "discord-gifted.ru.com", + "disocrdapp.com", + "steamcommunuity.net", + "discrods.site", + "espots-csgo.xyz", + "steamcommuunity.ru", + "streamcomnullyty.pp.ru", + "pubggf06.xyz", + "steanconmunyti.ru.com", + "stearmcornmunity.ru", + "sometheir.xyz", + "longxrun.online", + "steanncomnuniity.xyz", + "disrcod.gift", + "discord-air.pw", + "discord.co.in", + "discorcd.gifts", + "steamcommunitynow.com", + "dlscord.site", + "discord.gifte", + "go-cs.ru.com", + "nitro-discords.com", + "discordglfts.com", + "steamtrade-game.xyz", + "dlcsorcl.ru", + "steamtrades-store.xyz", + "steamcomnutiny.online", + "drop-nitro.fun", + "alm-gaming.com", + "discords-nitros.shop", + "discord-events.com", + "steancommnunity.ru", + "stemcornmunity.ru.com", + "steamcommunitey.ru", + "stemcornmunity.ru", + "storesteam-csgo.ru", + "dlscord-game.com", + "stleanmcommunity.ru", + "steamsomunity.com", + "steanconmumlty.com", + "sleamcommuninty.ru", + "pubggf28.xyz", + "discordglfts.xyz", + "steamcoarnmmnunity.ru.com", + "steamcammunyty.ru", + "discords-accounts.ru", + "steampowered.help", + "discordf.com", + "steamcommunity1.com", + "dizcord.com", + "steamcommunityzdr.top", + "rbux88.com", + "discords-premium.site", + "discord-nitro.shop", + "get-my-nitro.com", + "facepunch-award.com", + "steancommynitu.com", + "streamcomunilty.net.ru", + "steancommunitiy.com.ru", + "seed-nitro.com", + "staermcormmunity.com", + "smitecommunity.org", + "discodnitro.ru", + "discordimages.com", + "beststeam.gq", + "steemcommunty.org.ru", + "discord.ltd", + "steam-csgocom.ru", + "streamcomunlty.pp.ru", + "discord.tools", + "discprd.com", + "stearmcommynity.fun", + "steancoommunity.com", + "cupwin.xyz", + "dlscord.gifts", + "discord-applications.com", + "steamcommunity.team", + "csgo-fute.net.ru", + "discord.istanbul", + "steamcommunitytradeoffter.com", + "sleamcoommunilty.com", + "steammecommunity.com", + "steamcommunitym.com", + "pubggf32.xyz", + "pubgfreedownload.org", + "steamcommunitty.net", + "stemcoomnmunnity.com", + "steemcommunty.pp.ru", + "stearmcomrmunity.com", + "achnavi.net.ru", + "steampwered.com", + "pay-18.info", + "steamcommiunty.ru", + "discord-steam.ru", + "dissord.ru", + "sleamcommuntity.ru", + "discorclgift.xyz", + "steamconmumity.ru", + "steamncommnunity.ru", + "discordnitro.store", + "steamcomnunlty.ru", + "stiamcomunlty.ru", + "dislcord.com", + "proz.monster", + "steamcommunitiu.ru", + "discordtesters.com", + "csgo-steamplay.ru", + "stemcammuniity.com", + "stearncommuniity.click", + "loot.net.ru", + "sleamcommynitu.ru", + "steamcamunity.xyz", + "discordgamers.co.uk", + "steam-auth.com", + "staemncrommunity.store", + "discordnitrolink.tk", + "staemcommunnity.club", + "steamcomnuniti.com", + "store-communitiy.com", + "discords-nitro.site", + "robuxtools.me", + "steancommuniiliy.ru.com", + "steamcommonitey.com", + "staemcomnunyti.ru", + "steamcommunicty.com", + "steamcoommunity.ru.com", + "steamcomnuty.com", + "steeamcommunity.me", + "streamcommuninty.com", + "steammcomminuty.ru", + "discordgifts.info", + "steamcomminytiy.ru", + "steamcornmmunity.com", + "discorcd.click", + "stermncommunity.com", + "stteamcommiunity.com", + "stmemcomyunity.com", + "steam.cards", + "steamccommunity.net", + "streamcommiunnity.com", + "www.www.discord-nitro.ru.com", + "robux20.club", + "dlscordapp.com", + "steemcoonmuntiy.ru", + "dlscordnltro.online", + "steamcomunitu.net.ru", + "steamcommuulty.com", + "discford.com", + "steamoffergames.xyz", + "www.xpromo-discord.com", + "discor-dnitro.fun", + "events-discord.com", + "pubggf34.xyz", + "boost-discord.com", + "robloxdownload.org", + "discorb.gift", + "steamcommunity.llc", + "streamcommuntly.org.ru", + "staemcoommnuty.ru", + "steamcommunnity.com.ru", + "steamcommunitycomoffernewpartner989791155tokenjbhldtj6.trade", + "steamcommynuty.ru.com", + "steam-promo-page.ml", + "steamcoomrnmunity.ml", + "steamcornrnunity.fun", + "stjeamcomuniity.ru", + "steam-account.ru.com", + "steamcomunnyti.ru", + "steamconunlty.ru", + "steamcommuynity.ru.com", + "steemcommuinty.com", + "discrod-apps.ru", + "sleamcommuntly.ru", + "steamconmunlty.com", + "steemcoomuunity.ru", + "steampowerd.net", + "dicsord-app.com", + "steampawered.store", + "discorc-nitro.site", + "bycsdu.cam", + "steancomnuilty.ru.com", + "steeampowered.tk", + "eslhubgaming.com", + "nitro-from-steam.com", + "cs-play.org.ru", + "steammcounity.ru.com", + "facepunchs.com", + "steamconmunity.xyz", + "discord-ru.site", + "nitro-discord.me", + "special4u.xyz", + "steam-hometrade.xyz", + "didscord.com", + "hunts.monster", + "discord-bonus.ru", + "discord-app.live", + "streamcomminuty.ru.com", + "steancommunity.link", + "steamcomninuty.ru.com", + "stearncomminuty.com", + "discord-free-nitro.ru", + "discorapp.gq", + "streancomunnuty.com", + "steamcomnuenuity.com", + "steam-communitysource1.xyz", + "staemcommuinity.com", + "stearncornnumyty.com", + "steamcommuntry.com", + "discordapp.eu", + "rl-chaser.com", + "steamecommuniuty.com", + "discord.givaeway.com", + "discordicon.com", + "game-tournaments.net.ru", + "steancommunity.cc", + "dawbab.xyz", + "nitrostore.org", + "steamcommuhity.ru", + "staeamcromnuninty.com.profiles-76582109509.me", + "steam-discord.ru", + "luancort.com", + "stearncommubity.com", + "steannconnmunity.com", + "stearncommnuinty.com", + "sleamcommmuntiy.ru", + "stearncommunity.link", + "sa-mcdonalds.com", + "steamcommunityzds.top", + "disc.cool", + "discrod-up.ru", + "streamcomnully.org.ru", + "steamcomunilty.com", + "streammcommunity.ru", + "www.claim.robuxat.com", + "streamcommuniitty.com", + "steamtrades.com", + "sleamconmunlity.com", + "discorcl.gifts", + "steamcomminuty.nl", + "stearncornurniity.xyz", + "steamtrade-store1.xyz", + "steempowerd.ru", + "stieamcormnynity.ru.com", + "casekey.ru.com", + "steamcominity.ru", + "bitskeansell.ru", + "steanconmunlly.ru", + "dirscod.gift", + "steamcommunity.ru", + "www.staemcommmunity.ru", + "dlscord-nltro.xyz", + "discord-app.store", + "rushskillz.net.ru", + "sleamcommmunity.com", + "steamcommunitry.com", + "discordbetter.app", + "discord-nitrot.xyz", + "discordaspp.com", + "steampoowered.com", + "stealcommunlti.com", + "pubgmobile365.giftcodehot.net", + "playcsgo-steam.ru", + "steancoomnuity.com", + "bycdu.cam", + "steamcommunitmy.ru.com", + "steamcommumity.net", + "streamcommunily.me", + "stermmcomuniity.ru", + "azimovcase.tk", + "drop-nitro.com", + "stearamcomminnity.net", + "steampoewred.com", + "steanncommunily.com", + "steomconmunity.com", + "streamcummunity.ru.com", + "dsicord.gift", + "www.hdiscordapp.com", + "steasmpowered.com", + "steaemcomunity.com", + "gift-discord.online", + "tradeoff.space", + "steamcommunniity.net", + "dlscord-app.ru.com", + "steamcommunity.cn", + "rust.facepunchs.com", + "steamcommunnitey.com", + "steamcommunitity.com", + "rollgame.net.ru", + "www.steam-community.ru.com", + "robuxx.work", + "staemcoomuunity.xyz", + "steancammunlte.com", + "stiamcommunity.com", + "steamcommunlitly.ru", + "diskord.ru.com", + "discordsteam.com", + "steamcommuntiy.com", + "steamscommunitey.com", + "steancommunite.site", + "steawcommunity.net", + "stiamcomynity.com", + "steamcommunnity.ru", + "steamcomnunitiy.ru", + "case-magic.space", + "sleamcommunityy.me", + "steamscommunity.com", + "discorcl.ru.com", + "ggdrop1.net.ru", + "ssteampowered.com", + "discord.pp.ru", + "m.setampowered.com", + "stiemconnumity.xyz", + "steamcommunity.at", + "steam.comnunity.com", + "discord-halloween.com", + "discord-promo.info", + "steamcommunitywork.ml", + "kingofqueens2021.github.io", + "discord-stemdrop.me", + "stearncomnunily.com", + "discord-faq.com", + "steamcommunitly.me", + "steamcommiynitiy.net.ru", + "thor-case.net.ru", + "discordapp.ir", + "steamcomnmunity.com.ru", + "howls.monster", + "steamtradehome.xyz", + "stjeamconmunnitii.com", + "steemcomunity.me", + "streamccomunilty.com", + "disord.gift", + "discordtest.xyz", + "steamtradeoffer.net", + "navi-winners.org.ru", + "discords-hypesquads.com", + "steamcomnunityprofile.ru.com", + "discords-teams.com", + "steancommnnity.com", + "steammcommunety.com", + "sueamcommunity.com", + "gavenitro.com", + "disordgifts.com", + "free-nitro-sus.pages.dev", + "pubge21.xyz", + "steemcommunitry.com", + "steamcomunnitly.ru.com", + "discordsnitros.one", + "discorcd.gift", + "stearncommynity.ru.com", + "streamcrommunify.me", + "discordnitro.altervista.org", + "dlscord-gift.com", + "steamcommunityzdp.top", + "stearmcomrnunity.com", + "steam-csgogame.ru", + "discord-app.cc", + "sleamcommunlty.net", + "iscord.gift", + "discord-helpers.com", + "stleamcormunity.ru.com", + "stemcomnmuity.com", + "stteamcommunitty.com", + "steam-support.xyz", + "steamproxy.net", + "steamconnmuhity.com", + "discordsnitro.com", + "seancommunity.com", + "steamcomunnity.ru.com", + "steamccommunityy.ru", + "steamgiftcards.cf", + "steamcomrnlnuty.site", + "discord-apply.com", + "steamcomrmunnuity.ru.com", + "pubggift91.xyz", + "stermcommunity.ru.com", + "steamcommnuitty.com", + "luckydrop.site", + "cashy.monster", + "stearncommunytiyu.ru", + "steamconmunity.co", + "streamcommunttly.com", + "steampowder.com", + "discordtotal.com", + "riptideoperation.xyz", + "discord-app.gift", + "discord-info.com", + "steamcommnunitlu.com", + "steamcommnnunity.ru", + "steamcomnunuty.com", + "trustpool.xyz", + "come-nitro.com", + "streamcommunify.com", + "slreamcomunntiy.org", + "steamcommunihty.com", + "stearmcommnumity.com", + "discodapp.net", + "steamcommunillty.net.ru", + "streamcomunlty.net.ru", + "steancommunitytradeaffer.xyz", + "www.scwanmei.ru", + "stearncomynity.ru", + "steawncomnunity.ru", + "staemcomnuinty.ru", + "discorcl.fun", + "steamcommunutiy.com", + "diwcord.com", + "steamcomrninuty.link", + "steemcomnmunity.com", + "ww1.discordapp.org", + "freediskord-nitro.xyz", + "steanncomunity.com", + "discordgive.ru.com", + "discords-support.com", + "discvordapp.com", + "order-96.com", + "discord-get.ru", + "discorg.gg", + "steamconmumltu.com.ru", + "staemcommunily.ru.com", + "streamcomunnity.xyz", + "discordnitro.club", + "discordcdn.sa.com", + "steamcommunity.trade", + "www.steamcommunity.co", + "stemcoomnmuniity.com", + "marketsleam.xyz", + "steamccommyunity.com", + "steammcommunily.net.ru", + "steam4you.online", + "discord-gift.online", + "steamconunity.tk", + "facepunchskins.com", + "pubg.network", + "discordnitro.link", + "stjeamcomnuminiti.ru", + "steaamcamunity.com", + "steumcommunity.ru", + "dlscordglft.xyz", + "crosflah.online", + "pubggift97.xyz", + "riptidefree.ru", + "discord-verify.ru", + "loot.pp.ru", + "pubggf23.xyz", + "xpro.ws", + "stieamcommunitey.ru", + "steamcomunitu.ru", + "streamconunity.net.ru", + "discorcl.link", + "csgosteam-play.ru", + "steamccommunyty.ru", + "steamcomminytu.click", + "staemcommunlty.fun", + "steamcommunitytradeoffer.ru", + "discapp.info", + "steampowered.freeskins.ru.com", + "discordapp.help", + "steamgame-csgo.ru", + "drumairabubakar.com", + "steamcommunityzdd.top", + "steamcommuniiity.com", + "cllscordapp.fun", + "discordboost.net", + "discord-o.com", + "discord-accounts.ru", + "discordtts.com", + "discordapps.gifts", + "autumnbot.cloud", + "steam-offersgames.xyz", + "discordup.ru", + "discord-mega.xyz", + "dsctnitro.site", + "staemcommuntly.ru", + "discords-moderation.com", + "stemcommuniby.com", + "dlscordapps.com", + "disocrd.tk", + "steamcommunnity.net", + "steanconmunlty.ru", + "steamcommnutly.ru.com", + "steamcommunitytradeoffer.com", + "steamswap.xyz", + "steamcoomunlty.ru", + "steemcommuniry.com", + "sleam-trade.net.ru", + "steamcommunutuy.com", + "sleamcommunityprofiles76561199056426944.ru", + "sleamcornmunuity.me", + "discord-support.tech", + "giftsdiscord.ru", + "steamconmnmunity.ru", + "streamcommunicate.ru", + "streamcommnnutiy.com", + "pubgmobileuc2020free.cf", + "ezdiscord.xyz", + "steamcommunity.com.ru", + "streamcommunitry.ru", + "steamcommunityzda.top", + "sleamcommuniity.ru.com", + "steamcoomunlty.com", + "steamcommununty-con.ru", + "stemcommuniity.ru", + "steamcommunityzbq.top", + "stearncommumity.com", + "topvincere.net.ru", + "stemcommunitytrade.com", + "steemcommunllty.com", + "streamcomynity.ru.com", + "dicsords.ru", + "discordadpp.com", + "discorrdapp.com", + "beta.discorder.app", + "dlscord-app.net", + "pubgfreeeus.cf", + "disord.codes", + "onehave.xyz", + "discords.gifts", + "steamcomnunnlty.ru", + "dliscord-glft.ru.com", + "steemcommnnity.com", + "steanncomunitly.co", + "streamcoommuniity.xyz", + "steamcommunitycomtradeoffer.ru.com", + "discordnitrosteam.com", + "disocordapp.com", + "steamcomnnuty.ru", + "stearncommunlity.com", + "stieamcommuniity.com", + "stemcomunity.net", + "awirabigmoneyroll.xyz", + "discord.tw", + "dliscord.us", + "steamcommunity-nitrogeneral.ru", + "steamsourcecommunity.xyz", + "discord-nitrogift.ru", + "steanmconmunity.com", + "premium-discord.com", + "steamcomrnunity.com.ru", + "discord-give.pw", + "steamcommunety.ru", + "mychaelknight.com", + "setamcommunity.com", + "steamcommmunitty.site", + "disco3d.app", + "tik-team-topp.org.ru", + "gdiscord.com", + "discordq.com", + "steamcomminity.com", + "sleamcommunitu.net.ru", + "g2-esports.moscow", + "steamcommurlity.com", + "stearncommunivy.com", + "fortuneroll.tk", + "steamcommunifly.ru.com", + "steamcommyunity.com", + "stearmcommnity.com", + "disclrd.com", + "quick-cup.xyz", + "steamccommunity.ru.com", + "giveawaynitro.com", + "steamcommunitygifts.xyz", + "copyrightbusinessgroup.com", + "nav-s1.ru", + "magicrun.site", + "steamcommntiy.xyz", + "steanammunuty.ml", + "steanncommnunyti.com", + "sleamcomnunity.net.ru", + "discord-exploits.tk", + "steamconmunjty.com", + "stearncommuntty.com", + "robloxbing.com", + "steawmcomuunity.ru", + "steamcomunyti.com", + "discrd.gg", + "riptide-operation.ru.com", + "steampoeer.com", + "sleamcommunittyy.me", + "steamcommunieityi.com", + "steamcoomunitye.com", + "staempowered.xyz", + "fortnight.space", + "discod.fun", + "discordpp.com", + "diiscordapp.com", + "steamcommuniltiy.online", + "eslgaming-play.com", + "stemcommuunity.com.ru", + "nitrodiscord.org", + "streamcommnunilty.com", + "dlscorcl.info", + "sreamcommunity.org.ru", + "3ds-security.xyz", + "steancommnunlty.ru", + "mythicups.xyz", + "dIscord.net", + "streamcomunitry.com", + "stemcormmunlty.ru.com", + "robloxwheelspin.com", + "steamru.org", + "steanncomunitly.ru.com", + "stearncormunity.ru", + "streamcommunite.com", + "stemcommunjty.com", + "steamcomnnunity.co", + "steancomnunity.com", + "steamcommunity.rest", + "authnet.cf", + "discorcll.online", + "eslquickseries.com", + "stemacomunity.com", + "dscrd.club", + "discordiapp.fun", + "webr-roblox.com", + "steamnconmunity.ru.com", + "stearnconmumity.com", + "steamcomnunity.ru", + "steamrcommuniity.com", + "csgodirect.xyz", + "magifcrolrlc.xyz", + "steam-nltros.ru", + "streamcommuniunity.com", + "streancommumity.ru.com", + "steemcoommunity.com", + "steamcoommunllty.com", + "viwwzagul.xyz", + "steancomminity.com", + "ddiscord.com", + "slreamcommunntiy.org", + "steamconnuniitty.tk", + "discord-verif.ga", + "steamcommynitry.ru", + "nitrotypehack.club", + "reports.noodlesawp.ru", + "steeamcomuneety.com", + "steamcommunltyy.com", + "streamcommnuity.com", + "staemcommunety.com", + "dlscord-glft.pw", + "steampowwered.com", + "steam-play-csgo.ru", + "steamcomuniti.xyz", + "cs-dump.org.ru", + "steampewered.com", + "steamcronnmmuniry.me", + "steaamcommunnity.co", + "steamconynuyty.org.ru", + "discord-xnitro.com", + "steampowred.ru", + "free-dislcordnitrlos.ru", + "csrandom.monster", + "steaimcommuniity.com", + "steammcomunnity.com", + "discond.ru.com", + "steamcommuniry.com", + "discords.biz", + "discordnitro.cc", + "steamcommyniti.ru", + "big.org.ru", + "discord-hse.com", + "discordcheats.net", + "discordapp.pw", + "duiscord.com", + "disbored.com", + "discord.co.za", + "steamcornrnunity.com.ru", + "nitro-up.com", + "steamwcommunity.net", + "dscord.nl", + "discorde.xyz", + "steamcommunilty.buzz", + "steamcommunity.de", + "steamcommuniry.net.ru", + "steamcomnmufly.ru.com", + "streamecommuniity.com", + "ste.amcommunity.com", + "streamcommnunitly.com", + "gocsx8.ru", + "steamco.ru", + "steamcommnnity.net.ru", + "facerit.com", + "dscordapp.com", + "dlscord.store", + "steamnitros.ru", + "discordp.ml", + "www.disxcord.com", + "staemcommunility.com", + "xdiscord.com", + "discord-shop.fun", + "2023g.com", + "discords-nitroapp.xyz", + "csgorun.pro-login.ru", + "dlscord.cc", + "ww8.steamcommmunity.ru.com", + "steamconnunlty.com", + "steancommuuniliiy.ru.com", + "discord-cpp.com", + "discord-gift-nitro.site", + "discord-com-free.ru", + "stleamconmmunity.ru.com", + "steamtradeoffeer.com", + "get-nitro.net", + "stemecommunlty.com", + "disc0rd-app.ru.com", + "dfiscord.com", + "stearncommunlty.site", + "steamcomrnunity.xyz", + "stearncommunily.website", + "steamcamunnity.xyz", + "steanncomunitli.ru.com", + "divinegardens.xyx", + "steampowereed.com", + "cs-legend.xyz", + "discokrd.com", + "steamcommunytiy.tk", + "stemacommunity.net", + "sleamcommunnitu.com", + "steamcommunyti.com", + "steamstradecommunity.xyz", + "steencommunilty.com", + "streamcommunty.co", + "steacommunilty.ru.com", + "nitroairdrop.com", + "rustg1fts.online", + "pubgmobilespro.my.id", + "streamconnunitly.com", + "diisscord.club", + "sleamcommunytu.ru", + "csgogift45.xyz", + "natustop.net.ru", + "jjdiscord.com", + "mcdonalds-saudiarabia.com", + "discort.site", + "steamcoummunitiy.com", + "discourd.info", + "steamcommunnlity.ru", + "discordinfo.ru", + "stleamcommunity.net", + "streamcomrnunity.com", + "discordservice.com", + "stearncornrnunity.com", + "steanmcommunity.ru", + "steamrolls.net.ru", + "www.steamcommunity.de", + "steamunpowered.com", + "steamncommuinity.com", + "dlscord-app.info", + "steamcokmunity.com", + "dioscord.com", + "streamcommuniiley.net.ru", + "steamcommtity.com", + "sleamcommuntiny.ru", + "driscord.ru.com", + "affix-cup.link", + "discord-give.net", + "steamcomuntty.com", + "steamscommunity.pro", + "pubggift93.xyz", + "steamcoominuty.site", + "discorb.blog", + "fastdrop.win", + "discord-gift.us", + "okdiscord.com", + "steancommuniity.ru", + "sreamcommunty.com", + "discard.xyz", + "disconrd.com", + "s92673tu.beget.tech", + "freerobloxgenerator.tk", + "lan-pro.fun", + "steamcomumunty.com", + "discord-gifts.ru.com", + "steamcomrninuty.ru", + "steamcommninty.com", + "steancomnumlty.ru", + "yummy-nitro.com", + "stearmcommunity.one", + "discordrgift.com", + "luckygo.ru.com", + "dliscord-gift.ru.com", + "steamcommunity.steams.ga", + "steamcommumtiy.com", + "steampawared.club", + "steamcomnenity.ru.com", + "discordnitrogifts.pl", + "stenmcommunitly.ru.com", + "dirscordapp.com", + "robloxsecure.com", + "steamcomminytu.ru", + "freenitros.com", + "dicsord.ru", + "discoed.me", + "communitytradeoffer.com", + "steanmcommunity.com", + "steamsommunity.com", + "discord-nitro.eu", + "fang-operation.ru", + "linktrade.pp.ua", + "discord-nitro.gift", + "steamcommunlitily.ru.com", + "steamcommunilty.ru.com", + "discordapp.rip", + "steamcommunity.ru.net", + "steamcommunlitty.ru.com", + "ripetide.ru", + "steacommunty.ru", + "steamcommunity-profiles.ru.com", + "streamcommuiny.ru", + "hyper-tournament.xyz", + "steamcommunity-nitro.ru", + "streamcommunnty.me", + "streamcommunily.net", + "twitch.facepunchstudio.com", + "discord-up.ru", + "stearmcommrunity.com", + "steamcammuntiy.com", + "navination.site", + "buxquick.com", + "steamcommunityzdb.top", + "robux247.win", + "csgo-market.ru.com", + "steamcommunilty.it", + "dxiscord.com", + "steamkommunity.org.ru", + "streamconnmunity.com", + "duscord.com", + "steampoweredmarketing.com", + "discordgift.ru", + "steamcommunltu.com", + "lkdiscord.com", + "steancommumity.com", + "steamcomnnlty.com", + "streamcommunlty.net", + "steamcommunlte.ru", + "stearnmcommunnity.com", + "discordd.buzz", + "staemcomnumity.ru", + "discord-nitro.com", + "steamcommunirtly.ru.com", + "staerncornmunity.com", + "nacybersportvi.ru", + "steancomnunlty.ru", + "staeamconnunitly.online", + "steamcommnunylti.com", + "discoredapp.com", + "stjeamcomnunity.ru", + "steiamcommuinity.com", + "steamcommnity.store", + "discord-bot.com", + "streancommunity.ru.com", + "discordpromo.site", + "esl-proleague.net", + "navileague.xyz", + "streamcormmunity.ru.com", + "steeammcomunlty.com", + "streamcomunitly.com", + "streamcoumunnity.org", + "cashcsgo.ru", + "discord.family", + "nitro-app.com", + "streamcomunltyy.pp.ru", + "steamcommunitlu.com", + "discordnitro-gift.com", + "steamcommnunity.org.ru", + "pubggf31.xyz", + "101nitro.com", + "steampiwered.com", + "steamcomunitu.com", + "nitro-discord.fun", + "steamcommynitu.com", + "stemcormmunity.com", + "steamcommunittru.co", + "discoord.space", + "steamcommunitte.ru", + "stemcommuniity.com", + "steamconmunnitry.ru", + "djiscord.com", + "staemcommunity.ru", + "apps-discord.org", + "sleamconnunity.net", + "steamcoomminuty.site", + "discordcrasher.wtf", + "apps-nitro.com", + "stearnconrmunity.com", + "getcach.monster", + "stemcummunity.ru.com", + "steamcommunitu.com-profiles-mellenouz.trade", + "csgo-steam-game.ru", + "stealcommunity.com", + "steam-poweredoffers.xyz", + "steamcommunityzdt.top", + "steamcommunitl.net.ru", + "steamcommunity-source.xyz", + "staemcomrrunity.com", + "steamcomrrnunity.ru", + "disco.to", + "steamroll.org.ru", + "streamcomnullyty.org.ru", + "stearncomrninuty.ru", + "stearmcommunitly.ru", + "streamcomnumnity.ru.com", + "steamcommunillty.com", + "stemcommunitty.ru.com", + "robux-codes.ga", + "streamcomunltyy.org.ru", + "steamshensu.top", + "streamcoommunity.net", + "free-nitroi.ru", + "sleamcommuity.com", + "disxcord.com", + "discordgiftis.ru", + "stearncomrnunlty.site", + "csgift.fun", + "roblox.com.so", + "csgorun.pro-loginn.com", + "steancommuvity.com", + "steawmcommunity.net", + "discorsd.gifts", + "streamcommuniliey.net.ru", + "steemcommmunety.com", + "discord-halloween.ru.com", + "staemcommunlty.com", + "steamcommunrity.ru.com", + "stearncomrmunity.co", + "discord-egift.com", + "discord-airclrop.pw", + "gift-g2.ru", + "steampoweeed.com", + "steamcomnmunlty.com", + "discord.limited", + "stearncommnniity.ru", + "discordtokens2.repl.co", + "streamcommuniliiy.pp.ru", + "staemcoomnunty.ru", + "rustygift.site", + "discord-gifte.com", + "discords-hypesquad.com", + "stemcommunitty.com", + "luckyiwin.ml", + "steacommunity.com", + "discord-hype.com", + "dlscord-nitro.fun", + "sp708431.sitebeat.site", + "steancommumlty.com", + "steamchinacsgo.ru", + "en-roblox.com", + "nitro-airdrop.org", + "steamcomnuntty.ru.com", + "steamscomnunity.com", + "steancommuiniliy.ru.com", + "steemcommuunity.com", + "luckygo.ru", + "stearncommunrty.com", + "stearmcommunitty.ru.com", + "steamcommunity-xpubg.xyz", + "discordgif.com", + "robuxfree.us", + "steanconmnuity.com", + "steamcommunietiy.com", + "navi-drop2020.com", + "streamcommunication.com", + "www.shopy-nitro.tk", + "steamcomminuty.click", + "streamnconmunity.ru", + "sleamcommuunity.com", + "discordd.gift", + "eslplayworlds.com", + "stoacommunity.codes", + "steamcammunity.top", + "cteamcamnynity67823535672.xyz", + "stemcommunnity.com.ru", + "steamcommunlity.net", + "sternmcornnunity.com", + "navi-skins.org.ru", + "staemcommuniunity.com", + "steamcommunitiycom.ru", + "steamcomnunnity.net", + "fiscord.com", + "streamcommuntly.pp.ru", + "sleamcommunity.pp.ru", + "staemcoomuunity.ru", + "csgo-battle.ru", + "tournament.ru.com", + "steamcommunlty.biz", + "steamcommuity.ru", + "stearmcammunity.com", + "exaltedbot.xyz", + "steamcommnunitu.com", + "discord.eu", + "csgo-run.site", + "steammcomunity.ru", + "discordsteam.ru", + "discor.me", + "steampowered.tw", + "sleamcommunty.com", + "steamcommmuiniity.ru", + "esportgift.ru", + "discordcommunlty.com", + "discord-app.us", + "steamcommunliu.com", + "pubggift96.xyz", + "steamcommunity-gifts.xyz", + "discond-nitro.ru", + "stieamconnmunity.com", + "dlscocrd.com", + "steaamcommunnity.com", + "discord.org.ru", + "trade.ru.com", + "steamcornmunyti.ru", + "dlscordapp.info", + "disocrd.co", + "discord.online", + "dragonary-giveaway.info", + "stearncommuntity.com", + "sleamcommuniry.ru", + "steamid.ru", + "steamcomuniti.com", + "stermcommunnitty.ru", + "discord-tech.com", + "steam-communiity.ru", + "secure-instagram.ru", + "steemacommunity.com", + "steamcrommunlty.me", + "discocrd-nitro.com", + "jokedrop.ru", + "discord-nitro.cloud", + "dlscord.info", + "stearnconmunity.me", + "steamcommunlky.net.ru", + "steanconmunitly.ru", + "bitcoingenerator.cash", + "steamcommnunlty.xyz", + "discordaepp.com", + "steaimcoimmunity.com", + "steamcommynitu.ru", + "discord-hypesquade.com", + "skinroll.ru", + "steampoweredexchanges.xyz", + "steeamcommmunety.com", + "discord-nitro-free.ml", + "steamcommlnuty.com", + "listycommunity.ru", + "streamcomnullyty.net.ru", + "streamcommumity.ru.com", + "steamcomnumity.xyz", + "robuxfiends.com", + "streamcomuniitty.ru.com", + "discord-stat.com", + "steancommiunity.com", + "natus-open.org.ru", + "streamcormnmunity.ru.com", + "discordnltro.com", + "natus-vincere.ru", + "steamcommunitiyu.com", + "www.steamommunity.com", + "twitch.facepunch-llc.com", + "discordapp.co.uk", + "discordbothost.com", + "steamcommunityid.ru", + "stearncommiuty.co", + "streamcommuniliiey.pp.ru", + "steamcommunitlly.com", + "discord-get.click", + "steampowerred.com", + "straemcummonity.com", + "stearncomnumity.com", + "stearncomrnunitly.xyz", + "witch.tv", + "steamtrades-home.xyz", + "steamcommnunmity.com", + "steanmncomnunity.com", + "stearamcomnunitu.xyz", + "staemcommunnity.com", + "staemcommunty.ru", + "steamcommnutry.com", + "streamcommunitu.com", + "operationbroken.xyz", + "steancommunuty.com", + "discordgift.info", + "steamcommnuitly.com", + "discord-app.uk", + "ssteamcommunitry.com", + "steamconmiunity.ru", + "discord.marketing", + "steamcommunity-com.xyz", + "staemcommunulty.ru", + "steanmcomnunitiy.com", + "pandemidestekpaket.cf", + "stemcomuniti.ru", + "steamcommuitliy.com", + "steanncommunlty.com", + "steamcormmunity.com", + "discordgifts.ru", + "csgogf07.xyz", + "steamcommunity-tradeoffer.ru.com", + "streamcommuniuty.ru.com", + "streamcornnunitly.co", + "discord-list.cf", + "discord-app.io", + "steancoomunnity.com", + "steamcommuunity.ru.com", + "steamconmnunuty.ru.com", + "discorddaapp.com", + "sieamcommunity.org.ru", + "discords-nitro.xyz", + "prajyoth.me", + "steamconnunity.com", + "steamrccommunity.com", + "steamconmunuty.ru", + "rewardbuddy.me", + "quickrobux.net", + "steamcommuniteypowered.com", + "discorcl.ga", + "loot-item.xyz", + "steamcommynitu.ru.com", + "steamconmunitty.com", + "gameb-platform.com", + "freespoty.com", + "steaimcommunytiu.com", + "stemcomnunyti.ru.com", + "steamecommunitiy.com", + "steemcoomuntiy.ru", + "discosrd.com", + "steamcoommunety.com", + "steamoowered.com", + "steamcommunityc.ru", + "dlscord-app.ru", + "steamncommunity.xyz", + "disord.gifts", + "steam-announcements1.xyz", + "steamcornmunite.com", + "discord-nltro.ru", + "discordjs.tech", + "streamcomnultyy.org.ru", + "steamcammnuity.com", + "straemcommonlity.com", + "discordsub.com", + "discord-app.gifts", + "steaamcommunity.club", + "robloxxhacks.co", + "steamcommuity.com", + "steamcammuniety.com", + "steemcomunnity.com", + "sleamcomnnuniliy.site", + "dicsord.pw", + "stearnconmuntiy.ru", + "steeamcommunlity.ru", + "steamcommynity.icu", + "streancommunitiy.net.ru", + "dlscord-boost.fun", + "steampowored.com", + "navi-drop.net", + "discord-game.com", + "astresports.xyz", + "discordf.gift", + "dlscordnitro.store", + "steamcorrmunity.com", + "dlscordnitro.ru", + "stammcommunity.com", + "magik-dr0p.fun", + "sleamcoommunlilty.com", + "steamrolls.pp.ru", + "streancommunuty.ru", + "sleamcommunitu.ru", + "disocrd.codes", + "dlscord-app.com", + "dlscord-alirdrop.com", + "csgo-cyber.link", + "steamcommunllity.ru.com", + "steamcomminuly.ru", + "natus-lootbox.org.ru", + "steamcommutiny.xyz", + "key-dr0p.com", + "steemcammunlty.com", + "luckyfast.ru", + "2022yg.com", + "stearncommutiny.ru", + "price-claim.xyz", + "indereyn.ru.com", + "dlscord.blog", + "discorddrop.com", + "rust-charge.com", + "teamfnattic.org.ru", + "pubggf26.xyz", + "steamdlscords.com", + "dlscord.tech", + "steamconmnunity.ru", + "ww16.discordcanary.com", + "clove-nitro.com", + "discord-moderator.com", + "stemcoommunity.com", + "seancommunlty.ru", + "discord-halloween.link", + "steeammcomunity.com", + "gift-nitro.store", + "streamcomunily.net.ru", + "steancommuniiity.com", + "discordbagequiz.cf", + "steancommuity.ru", + "discorrd.com", + "cash.org.ru", + "stemcomminity.com", + "csgosteamcom.ru", + "streamcommuunniity.com", + "official-nitro.fun", + "steamsoftware.info", + "gamzgss-top.org.ru", + "streamcommunuitty.com", + "streamcomuniity.cf", + "steamconmnmnunity.ru", + "top-team.org.ru", + "discordsnitro.store", + "discord-giveaway.com", + "stemcomnnmunity.com", + "keydorp.me", + "steamcommnmunity.ru", + "stearnpowered.xyz", + "steamcommunity-trade.xyz", + "dlscard.ru", + "counterbase.ru.com", + "dicsord.gifts", + "dwaynejon.xyz", + "nitro.gift", + "steamcomnmuunity.ru.com", + "streamcommunliy.com", + "discord-apps.ru", + "steamcomminuty.repl.co", + "steamdocs.xyz", + "cyberegocscom.ru", + "verifyaccount-for-bluetick.com", + "sleamcommunity.me", + "steamcomnunllty.com", + "dciscord.com", + "steamcommunitie.ru", + "steamcommunity.net.in", + "csgosteam-game.ru", + "steamstoretrade1.xyz", + "steemcommuntiy.ru", + "steamcodesgen.com", + "discord-app.shop", + "pubggf15.xyz", + "steamcommunitfy.com", + "discordl.pw", + "steamgame-trade.xyz", + "g-games.store", + "stieamcommunitiy.com", + "stemcommunniity.com", + "steam-officialtrade.xyz", + "stjeamcoimmunity.com", + "www.freefireclaim.club", + "discord-nitro.net", + "pubggf38.xyz", + "discordglft.com", + "steeamcommmunity.com", + "steamcomminulty.ru", + "steam-tradeoffer.com", + "discord-halloween.ru", + "discor.gg", + "steamcommnity.ru", + "steamcommunityw.net.ru", + "streamcommuniliiy.org.ru", + "steamcommunlty.top", + "steanconmumity.com", + "halitaoz.cam", + "steampcwered.com", + "steam-poweredtrades.xyz", + "keysdropes.com", + "twitch-starter.com", + "dlscords.site", + "dlscordapp.pw", + "getnitrogen.org", + "streamcomnunitly.ru", + "stemconmmunity.com", + "steamnltro.com", + "csgotournaments.cf", + "stemcomnmunnity.com", + "magnavirollz.xyz", + "staemcommintu.ru", + "streamcoumunniity.org", + "steanmcomumnity.xyz", + "navi-freeskins.com", + "discordfrnitro.site", + "steaamcomunity.net", + "steamcoomunlty.net", + "steamcommunutty.ru", + "stayempowered.org", + "steeamcommunlty.com", + "staemcummunity.ru.com", + "www.steamcommunity.ca", + "stemcoomnmunity.com", + "steammcommuunityy.ru.com", + "discrordapp.com", + "pubggift99.xyz", + "streamcommuniuty.store", + "staemcommunitiy.com", + "stearncomrnunitly.site", + "discord-load.ru", + "steamcommunlty.info", + "stearncommunlty.ru", + "steamcammuinity.com", + "staemcrornmmunity.com.profiles-75921098086.me", + "stemcommunilty.ru", + "givaewey.com", + "sleamconmunity.xyz", + "csgocj-steam.work", + "discocrdapp.com", + "steampoweread.com", + "discord-nudes.live", + "discord-nitro.su", + "steamnitros.com", + "cs-dark.org.ru", + "robux.claimgifts.shop", + "steamcommunily.buzz", + "discorcl.info", + "steamnconmunity.com", + "discord-click.shop", + "navi-lzx.ru", + "free-niltross.ru", + "dsiscord.com", + "strearncomuniity.ru.com", + "dicordgift.ru.com", + "nitrlooss-free.ru", + "steamecommunity.pp.ua", + "discorcl.shop", + "steamcomrnunity.site", + "stleancommunity.ru", + "gocups.ru", + "stleamcormmunity.ru.com", + "magic-delfy.net.ru", + "steacomnmunity.com", + "blustcoin.com", + "discor.link", + "discordlapp.fun", + "mcdonaldsau.info", + "discxordapp.com", + "beast-winer.ru", + "steamcomunnuity.com", + "steamcomunety.ru", + "steamcommiuinity.com", + "dscord-generaot.store", + "dicsordnitro.info", + "discordqpp.com", + "streamcommuniy.ru", + "steamcommunityshop.com", + "steamcomnmnuty.ru", + "stiamcammunieti.com", + "steamhometrades.xyz", + "www.robux.claimgifts.shop", + "steamcammunitey.com", + "discord.cm", + "dlscord.art", + "stemcommunity.ru.com", + "fasttake.space", + "steampowerwd.com", + "robuux1.club", + "trade-leagues.com", + "stearncornminuty.com", + "steamcommunityzdq.top", + "power-sk1n.net.ru", + "discordappi.fun", + "dicsocrd.com", + "steampowerdwallet.com", + "discord-nitro.club", + "discord-information.ru", + "steamsnitro.ru", + "steancommuniti.com.ru", + "sdiscord.com", + "facepunch-twitch.com", + "sleamcomnumity.com", + "discord-sup.com", + "steacommunnity.com", + "stemcommounity.ru.com", + "steammatily.ru", + "stuamcommunity.com", + "steamccomunnity.ru.com", + "discordgift.com", + "discordgifts.com", + "app-nitro.com", + "stemcommlunity.com", + "stemcommuniti.ru", + "steamcommunittrade.xyz", + "sleamconmumity.com", + "steacmommunity.com", + "discordnitro.click", + "steamcommnuntiy.com", + "steamscommunity.ru", + "steamcomnmutly.ru.com", + "slreamcomunity.ru", + "steamcommenity.ru", + "discofd.com", + "tradeoffers.net.ru", + "stearncorrmunity.com", + "steeamcommunity.ru.com", + "sleamcomminity.ru", + "streamcommiumity.com", + "discordsite.repl.co", + "steamcornminuty.com", + "steamcommunity.support", + "microsup.net", + "csgogame-steam.ru", + "discurd.js.org", + "sleamcomnunily.ru", + "streamcormmyniity.ru.com", + "haste.monster", + "discord-gifts.site", + "steamcomminutiu.ru", + "riptide-operations.ru", + "steaamcommmunity.com", + "dlscord-inventory.fun", + "discrod.gg", + "dicrod.com", + "steamcomnunlty.ru.com", + "farestonpw.ru.com", + "cave-nitro.com", + "discords-app.com", + "csgogf01.xyz", + "steamcommnuninty.ru.com", + "steampwoered.com", + "discordnitro.space", + "steam-nitros.com", + "steamecommunity.org", + "stemcommunitytraade.xyz", + "discordalt5.repl.co", + "sleamscommunity.com", + "freeinstagramfollowersonline.com", + "streamcommuniley.net.ru", + "csgowans.ru", + "steam-community.xyz", + "discord-com-free.online", + "steanmcommuniuty.ru.com", + "steancommynity.org.ru", + "discrod-nitro.info", + "streamcomnunity.site", + "csgogf05.xyz", + "humnchck.co", + "natus-spot.pp.ru", + "promo-codes.world", + "aucryptohubs.com", + "getskins.monster", + "staemcornmuntiy.ru", + "tacelt.com", + "sleamconnunity.net.ru", + "streamcommunly.net", + "astralisgift.fun", + "dicoapp.pro", + "steemcommunty.ru", + "steamcomminity.ru.com", + "stermcomunniity.ru", + "sterampowered.com", + "dlscord.team", + "discord-give.com", + "dlscordsglfts.xyz", + "steamcomnunlity.com", + "gamepromo.net.ru", + "stearncomnunity.com", + "discord-games.cf", + "rustg1ft.com", + "sterncommunilty.site", + "dlscorcl.ru.com", + "discordnitrofree.xyz", + "sleamcommunituy.com", + "up-nitro.com", + "streancommuniity.ru.com", + "discord-nitro-free.xyz", + "steamcommuniry.ru", + "shib.events", + "freefireclaim.club", + "steanconmunitiy.co", + "streamcommuninnuity.com", + "steaemcamunity.xyz", + "steamcommuty.com", + "steamcomminytiu.com", + "discord-drop.xyz", + "steamcomnunllty.net", + "discordstaff.xyz", + "steamcommunltiy.club", + "steamcomminty.ru", + "steamunlocked.online", + "stemcomnnmunnity.com", + "fulldiscord.com", + "steamcommuniltly.com", + "steampowere.com", + "aoeah.promo-codes.world", + "discard.gg", + "roblox-robux.de", + "www.robuxat.com", + "steamcomnuiti.xyz", + "steemcommunity.co", + "discordappp.com", + "stemcomnmununity.com", + "stleaamcommunity.com", + "disord.co", + "sleamcommuintiy.ru.com", + "discordapp.vercel.app", + "steancommnuitty.com", + "discordgivenitro.ru.com", + "streamcommuntly.com", + "steamcommunityoff.com", + "discords-gift.com", + "steancommueniliy.ru.com", + "new-collects.xyz", + "csgo-store-steam.ru", + "cyber-csgo.space", + "roblox-porn.com", + "stoemcommunity.com", + "steamconmunity.com.ru", + "steamcommnunty.ru", + "riptide-gaming.ru", + "steamcommunitlly.net", + "styeampowerd.com", + "app-discord.com", + "services.runescape.rs-tt.xyz", + "steamcommnity.com", + "roblox.help", + "esportsfast.pp.ua", + "steamcommuinty.com.ru", + "stleamcommiynitu.ru", + "discorcl-app.ru", + "staemcornmunity.ru.com", + "steampowers.org", + "steamcommunuty.buzz", + "steamedpowered.com", + "steamcomnuntiy.com", + "steamtradesofer.com", + "discord-promotions.com", + "steemcommunily.ru.com", + "steammcommunnity.ru", + "streamcommnunity.ru", + "stleamcommuniity.com", + "steancommunity.net.ru", + "steamcomnunnirty.ru", + "stearmcommnunnity.org", + "steemurl.com", + "steemcommunityy.com", + "steamdesksupport.com", + "discord-giftef.xyz", + "streamcomnunely.com", + "discrdapp.cf", + "up-discord.ru", + "streamcommunitty.ru.com", + "steamcomunity.ru", + "pltw.com", + "steancomnumity.com", + "steamcomynity.ru", + "steancommuuity.com", + "steamconnnnunity.org.ru", + "steamcomunyiti.ru.com", + "disckordapp.com", + "steamcommunyty.xyz", + "discorld.com", + "steamcommuntyy.ru", + "www.ezdrp.ru", + "steamcomnulty.com", + "discordapp.ru.com", + "steancommunyti.com", + "steamsdiscord.com", + "steamcomnunilty.com", + "stleamconnunlty-tyztradeoffernewpartnhr15902271.xyz", + "2discord.ru", + "steamcornmunily.ru", + "steamcommuinuity.com", + "www.discordappporn.chat", + "staemcommmunity.com", + "discordapp.biz", + "dsnitro.xyz", + "steammatily.online", + "nawigiveavay.xyz", + "steamscommmunity.com", + "boosted-nitro.com", + "steamstore.map2.ssl.hwcdn.net", + "rien.xyz", + "key-drcp.com", + "dlscordapp.ru", + "sieamcommunity.net.ru", + "steampowered-swap.xyz", + "steanconmunuty.ru", + "streammcomunittty.ru", + "discordtotal.net", + "stepmscononnity.com", + "stearncornmunity.ru.com", + "discord-give.xyz", + "discordapplication.com", + "streamcoommunity.xyz", + "dizcord.app", + "navigg.org.ru", + "steamnconnmunity.com", + "steancommuineliy.ru.com", + "output-nitro.com", + "steamcormrunity.com", + "steamcommuniyt.com", + "diacordapp.com", + "discord.ru.net", + "discsord.com", + "steemcomrnunity.com", + "steamicommunnity.com", + "dijscord.com", + "steamcammuniti.ru", + "streamcomlutitly.me", + "stemcommunnity.com", + "streamconnunity.net.ru", + "steeamcomunlty.ru", + "steamcommunlty.site", + "stleamcomunity.com", + "steamcommiunitiy.pp.ru", + "zipsetgo.com", + "streancomunnitiy.com", + "steamncomunity.com", + "konicpirg.com", + "steamcornrnuity.com", + "steamzcommunity.com", + "stearncomrnunity.store", + "steaimcomminnity.ru", + "dlscord-nitro.info", + "steamcommunty.ru.com", + "steamcommnunlty.com", + "freenitroi.ru", + "discord-airdrop.me", + "stearncomminuty.ru.com", + "steamecomunity.com.ru", + "skins.pp.ru", + "steancommnulty.com", + "steeamcommunity.ml", + "stream-conmunlty.ru", + "steancomnunyti.ru.com", + "csgo-st.ru", + "discorfd.com", + "steamcomunytiu.com", + "streamcomminuty.pw", + "steamescommunity.com", + "discord-informations.ru", + "steamcommunty.buzz", + "steamcommunity.co", + "stleamcommunity.com", + "steamcommuntiv.com", + "steamcomuniety.ru", + "game-csgo-steam.ru", + "steamdommunity.com", + "sleamcomnnunily.site", + "discord-steam.site", + "g1veaway-nav1.site", + "sueamconmunity.com", + "discord-nitro.website", + "steaamconnmunlty.com", + "streamcommuinity.com", + "streamcommumnity.com", + "discord-app.me", + "stemcomunitiy.com", + "stearncommunitey.ru", + "cs-incursed.xyz", + "stemcommununity.com", + "stearmmcomuunity.ru", + "facepunch-gifts.org.ru", + "discord-give.org", + "airdrop-nitro.com", + "streamcommunityi.ru", + "steamcoummunity.com", + "streamcomuniity.com", + "steamcommyuinity.net.ru", + "nitro-give.site", + "steamcommiunity.ru", + "steamwalletbd.com", + "steamcommmunnity.com", + "streamcomuniity.net", + "staemcomumity.com", + "steamecommunlty.com", + "discord-boost.ru", + "steampowerd.com", + "navi-hawai.net.ru", + "truepnl-giveaway.info", + "st-csgo.ru", + "steamcommunity.biz", + "discordspp.com", + "streamcomrnunity.ru", + "steancommunyti.ru.com", + "fnatic-time.ru", + "steaamcomunity.ru.com", + "blox.land", + "disccor.com", + "steamconnumity.ru.com", + "discord-airdop.link", + "get-gamesroll.xyz", + "discordme.me", + "steamcomuniti.ru", + "dliscrd.one", + "discord-tester.com", + "steamcommunyty.com", + "sleamcommyunity.com", + "dicsord-hypesquads.com", + "sreamcommuniity.com", + "streamcomunity.org", + "robux4sex.tk", + "dlscord.space", + "stemcamnunity.com", + "dlcsorcl.com", + "myrolls.monster", + "dlscord.ru.com", + "streamcommuniley.net", + "discord-nitr0gift.fun", + "steammcomunlty.ru", + "stearncornrnnity.ru.com", + "steqmpowered.com", + "streamcormmunnity.ru.com", + "steamworkspace.com", + "steam-tradestore1.xyz", + "itemcloud.one", + "ds-nitro.com", + "discrdspp.com", + "discord-bot.ru", + "streamcomnultyy.net.ru", + "steamcommunity.site", + "pubggift94.xyz", + "steamcommunlite.com", + "rip-tide.ru", + "steamcommunnty.ru", + "disocrd.me", + "disrcord.com", + "steambrowser.xyz", + "rust-gitfs.ru", + "discord-hypes.com", + "discordnitrogift.com", + "www.steamcamunity.com", + "discord-gift-free-nitro.tk", + "streeamcommunuti.ru", + "stemcomnmnnunity.com", + "dicsord.gg", + "stearncommunitey.com", + "stermconmmunity.com", + "sleamcomunitly.co", + "steampowaered.com", + "steamcornmynity.ru", + "stearncommuniity.ru", + "steamcomnnunty.ru", + "dlscord-support.com", + "steamcommuniti.ru.com", + "stemcommunlty.space", + "streamcomulty.org.ru", + "natus-win.net.ru", + "gamesfree.org.ru", + "steanconmunlty.com", + "disc0rd.xyz", + "discordacc2.repl.co", + "steancommurily.xyz", + "steampowoereid.com", + "dicord.space", + "www.creditscpfree.website", + "steamcomnumilty.com", + "streamcomnunitiy.ru", + "justcause.fun", + "counterstrik.xyz", + "sterncommunilty.ru.com", + "steamcomuunity.com", + "steamhelp.net", + "discordlist.repl.co", + "discord.com.tw", + "steampowed.com", + "discordapps.gift", + "steamcommunhity.com", + "stearncommrunity.com", + "dominospizza-nl.com", + "discord-nitro.tk", + "steamcommunnlty.com.ru", + "roblox.free.robux.page", + "discords.us", + "www.discord.pt", + "steamcomunitly.ru", + "steamcoommunuity.com", + "stearncommunlty.store", + "discord-premium.com", + "staemcammynlty.ru", + "discord4nitro.com", + "discordappporn.chat", + "streamcommunnitty.com", + "nitropussy.com", + "steamcmunity.com", + "steamocmmunity.me", + "steamncommunity.pp.ru", + "steancommuniti.site", + "discordlogin.com", + "stearncommunyti.ru", + "discord-promo.com", + "stearncomnunity.org", + "streamcomunlty.org.ru", + "rust-giveaways.xyz", + "tini.best", + "stearncommunity.click", + "sleamcommuniity.me", + "streemcommunhity.org.ru", + "streamcommmunity.com", + "steamcommunitytredeoffer.com", + "steamcomunillty.ru.com", + "streancommuniliy.ru.com", + "giveweay.com", + "streamcommulinty.com", + "freenltro.ru", + "imvu37.blogspot.com", + "steamcommunly.net.ru", + "steumcommunity.com", + "steamcommunetu.com", + "steancommunilty.com", + "claim.robuxat.com", + "discorcl-boost.ru", + "discordsearch.co", + "steamgames.net.ru", + "steemcomunity.pp.ru", + "stieamcommuinity.com", + "premium-discords.com", + "discord-spooky.ru", + "steamcommuniitu.site", + "steamcommunytitradeoffer.com", + "stheamcommnitiy.ru", + "csgo-storesteam.ru", + "giftsdiscord.fun", + "facepunch-llc.com", + "steam-storetrade.xyz", + "stemcomnmounity.com", + "discord-promo.xyz", + "www.discord-nitro.ru.com", + "stearncornmunity.net", + "dlscorldnitro.store", + "stearncornrnunity.ru.com", + "steamcomnunity.net", + "discordnitro9.repl.co", + "joewfpwg.ru", + "discorcd.site", + "discordnitro.com", + "steamcornmunify.ru.com", + "stearncommmnuity.xyz", + "staermnconnumti.com", + "discord-nitro.online", + "steamcommunirty.com", + "game-steam-csgo.ru", + "topw-gamez.xyz", + "stemcommunlty.ru.com", + "steam-cammuneti.com", + "order-78.com", + "sleamcoomunity.com", + "stearncornmunitiy.com", + "sleamcomunuty.ru", + "steamcannunlty.com", + "dlscord-alirdrop.site", + "discord-gifts.shop", + "comdiscord.com", + "discord.world", + "discord-nltro.info", + "dicsord-nitro.ru", + "steamwalletcodes.net", + "staamcommunity.com", + "steamcammunuty.com", + "app-discord.ru", + "discord-njtro.store", + "steamcomminuty-offer.ru.com", + "steamscommynitu.co", + "key-dr0b.com", + "gift-discord.shop", + "maggicdrop.xyz", + "steamcommunit.org.ru", + "streamcommuninllty.com", + "dzscord.js.org", + "encesports.xyz", + "viwwzagulw.xyz", + "steampowererd.com", + "steancomnnunity.com", + "discord.co.com", + "sleamcommuntiy.com", + "roll-gift.fun", + "discordsteams.com", + "robloxs.land", + "discrod-glfts.com", + "sleamcummunity.me", + "steannconnnunity.com", + "streamcommunit.ru.com", + "stearncommumitly.com", + "steacomnunity.ru.com", + "steamdomain.online", + "steampoweredpoetry.com", + "steampoweredcinema.com", + "discordgifts.ru.com", + "steamconnunitiy.com", + "steancommunety.com", + "streamconmunity.com", + "steacommnunity.com", + "boxgolg.club", + "discord-drops.ru", + "steampoweredcommunity.com", + "steamcommunty.net", + "steancommuhity.com", + "streamcomnnunity.xyz", + "steam-tradestore.xyz", + "pubgmobile737373.ml", + "steam-hype.com", + "stearncomrrunity.com", + "csgosteamgo.ru", + "steamcominuty.ru", + "streomcommunuty.com", + "stearncommninuty.com", + "steamcommynity.space", + "sleamcomnunity.xyz", + "discorcl-give.site", + "pubggf24.xyz", + "ssteamcommunity.ru.com", + "steemcommunnity.net", + "discords-moderator.com", + "steamc0mmunity.com", + "discordgift.app", + "rust-award.com", + "steancommunily.ru", + "discordxsteam.com", + "steancomrnunuty.ru", + "steamcommuntity.ru.com", + "staemcommunity.com.ru", + "discord-app.co", + "dicsord-give.com", + "steam-servicedeals1.xyz", + "streamcommunitly.net", + "steamcommuniety.com", + "stemcomnunity.ru.com", + "dlscordgift.com", + "stearncommnnity.co.uk", + "discord.cn.com", + "steamcomuunity.ru.com", + "tipteamgg.xyz", + "steamcommhnity.com", + "disocrd.org", + "dlscord.in", + "styamcommunity.com", + "realskins.xyz", + "discordnitro.fun", + "nitro-app.fun", + "steamcommunirty.ru.com", + "verification-discord.com", + "discord-stuff.com", + "steam-powered-games.com", + "strempowered.com", + "xess-nitro.com", + "steamcomnunity.site", + "steemcammunlly.com", + "steam-community1.xyz", + "epicgamesnitro.com", + "steanncommunitv.com", + "stemcoomnnunity.com", + "discord-event.com", + "steamcoomunity-nitro.site", + "staempawered.xyz", + "steancommunnuly.me", + "steamnltros.com", + "www.streamcommunity.ru.com", + "steamgivenitro.com", + "stieamcommunity.pp.ru", + "staemcommunty.com", + "steamcormmmunity.com", + "store-streampowered.me", + "staemcomnunity.fun", + "skins-navi.pp.ru", + "stteamcommunity.net", + "giftsdiscord.online", + "stimcommunlty.ru", + "steam-offer.com", + "steamcomminyti.ru", + "steampowered.org", + "steeamcommunyti.com", + "streawcommunity.xyz", + "robuxhelps.com", + "riptide-operation.xyz", + "steancomuunity.com", + "natus-open.net.ru", + "steam-power1.xyz", + "discord.si", + "sleamcommunity.org", + "streamcommuunnity.com", + "robfan.work", + "diszcord.com", + "staemcommuntiy.ru", + "steamcommunity.ca", + "magnavirolls.xyz", + "streampowereed.com", + "steamunlocked.pro", + "discord-air.xyz", + "fowephwo.ru", + "prajyoth-reddy-mothi.github.io", + "discord-app.xyz", + "stemcommuinty.ru", + "steamcommrnunity.com", + "natusspot.pp.ru", + "diskord.org.ru", + "discordapp.us", + "stearncornmrunity.ru.com", + "httpdlscordnitro.ru.com", + "redirectednet.xyz", + "freedrop0.xyz", + "disccrd.gifts", + "steammcommunity.com", + "stemcommunlty.com", + "csskins.space", + "into-nitro.com", + "glft-discord.com", + "discold.online", + "vbucksminer.ru", + "steamcomiynuytiy.net.ru", + "steamcomrunily.com", + "operation-riptide.ru.com", + "dirscord-gift.ru", + "cs-navigiveaway.ru", + "steamcommunitysource1.xyz", + "streaemcrommunlty.com.ru", + "discorcrd.gift", + "steamcoomunjty.com", + "discord-giftes.com", + "discord-free.com", + "stleamcomnunity.ru.com", + "sleamcomnnunitiy.ru", + "sreampowered.com", + "stearncommunite.com", + "discord-club.ru", + "swapskins.ga", + "s1cases.site", + "www.freerobloxgenerator.tk", + "der-csgo.ru", + "streamcomnuniity.com", + "disccord.ru.com", + "discord-halloween.me", + "steamcommunili.xyz", + "steancommrnity.com", + "discpordapp.com", + "myccgo.xyz", + "navi-freedrop.xyz", + "faceit-premium.com", + "dlscord.gg", + "hope-nitro.com", + "discord.promo", + "wyxy.ru", + "steawmcomnunnity.ru", + "steancommuntly.com", + "pubggf22.xyz", + "streamcormmunity.com", + "discord-app.net", + "pubgmobile365.com", + "csgo4cases.fun", + "riptide-cs.ru", + "steamcoomunnity.com", + "pubggift98.xyz", + "streamcommnnuity.com", + "steamcommunity.pl", + "freenitro.ru", + "steemcammunllty.com", + "rbux88go.com", + "steamcomnumnity.com", + "steamcomnunity.org.ru", + "steamcommunithy.com", + "discond-njtro.tech", + "stleamcommuniity.net", + "steamcomnnunlty.ru", + "myrollz.com", + "ste-trade.ru.com", + "discord-app.click", + "discrd.co", + "staemcomunity.com", + "bysellers.xyz", + "steamommunity.com", + "steamtradestore.xyz", + "steanncammunlte.ru", + "pubggf33.xyz", + "steamcommunrinty.ru.com", + "promo-discord.com", + "discordaop.com", + "cpp-discord.com", + "steamcommunety.com", + "steamcommumity.biz", + "discordapplication.xyz", + "steamcommunite.com", + "steamcommunitypubg.com", + "steamcomnnunilty.com", + "discord-airnitro.xyz", + "steamnitro.com", + "staemcoommunty.ru", + "rewardspremium-nitro.gq", + "steamcommulty.ru", + "keydropp.one", + "streamcommmumnity.ru.com", + "steamcomunity.com", + "stemcomnmuunity.com", + "sterncommynuty.ru", + "steampowered-offers.xyz", + "discordgiveaway.fun", + "prefix.net.ru", + "streamcommounity.com", + "steamcommuniuity.com", + "store.stempowerd.com", + "discordsex.live", + "diuscordapp.com", + "steamcommuninthy.com", + "steamcommynity.ru", + "drop.net.ru", + "stearncornmunitly.com", + "steamcsgo-play.ru", + "steamcommuhuity.com", + "steamcomonity.com", + "steancommuniity.fun", + "steamnconmunity.work", + "steam-nitro.ru", + "beast-cup.ru", + "dlscord-hypesquad.com", + "stearncomnunitu.ru", + "steamtradecommunity.fun", + "steancomrnunitiy.com", + "pubggf19.xyz", + "steamcornmnuity.com", + "steapowered.com", + "stemcommunilty.com", + "firtonesroll.ru.com", + "steamcomnmrunity.ru", + "steamservicedeals.xyz", + "gamzc-topz.xyz", + "steamcommuniy.com", + "natus-vincere.xyz", + "steamcommunitte.com", + "natus-win.org.ru", + "stearcommuity.com", + "profile-442572242.online", + "discrod.gift", + "guns-slot.tk", + "discordgiftss.com", + "discord-supports.com", + "streamcomunitty.net", + "stieamcommuunitey.us", + "operation-pass.ru.com", + "steamcommuniti.com.ru", + "discord.app", + "streamcommunimty.com", + "dominosllc.com", + "discordobs.com", + "streamconmunitly.ru", + "discord-nudes.club", + "discord.fit", + "robloxromania.com", + "stearmcommunity.ru.com", + "store-stempowered.com", + "steancommunitry.ru", + "streamcommunity.me", + "steamcomminnty.com", + "discorb.gifts", + "stearncornmunuty.ru", + "steamcommunity.link", + "steamepowered.com", + "steamcommynltu.com", + "steamcommunlty.company", + "nltro.site", + "bigs.monster", + "steamrcommunity.ru", + "jope-nitro.com", + "store-discord.com", + "steancomnurity.one", + "nitrochallange.com", + "robloxux.com", + "discordapp.best", + "viwwzaguls.xyz", + "steam-site.ru", + "staemcoomunity.ru", + "steamcommunityzdl.top", + "discord-promox.com", + "csgoworkshops.com", + "steamcommunuity.ru", + "discornd.com", + "steamsommunity.ru", + "steammcommunity.ru.com", + "steancommuunity.com", + "discord-a.com", + "steamcomunity-nitro-free.ru", + "steamcomrnunity.ru.com", + "steamconmnunity.co", + "discord-drop.info", + "airdrop-discord.online", + "diascord.com", + "streamcoommunity.com", + "dlscord.pro", + "ez-tasty.cyou", + "stemcummunity.com.ru", + "steampowrd.com", + "disordapp.gifts", + "discodapp.gift", + "dlscord.rocks", + "staemcommunityu.ru.com", + "robuxhelp.com", + "steam-sourcecommunity.xyz", + "steancommynyty.ru.com", + "steamcommuriity.com", + "steancomnumlty.com", + "dailymegadeal.xyz", + "steamcomrnyniti.ru", + "discord-glft.ru.com", + "steam-service.ru", + "steancommiuniliy.ru.com", + "event-discord.com", + "think-when.xyz", + "steamcommunitily.com", + "steamcommunity-tradeoffers.com", + "stemcommnunlty.ru", + "stemcomnmunity.com.ru", + "poste.xyz", + "steamcornmunity.net.ru", + "steamcomnunitty.com", + "discordshort.ga", + "streamconmmunity.ru.com", + "fnatic2.org.ru", + "big.pp.ru", + "discord-controls.com", + "discord-nitroapp.xyz", + "steamkey.ru", + "steamsconmunity.com", + "steamcommutyniy.com", + "freediscrodnitro.org", + "steamcoommunuty.com", + "steamcomminutty.ru", + "seamcommunity.com", + "discortnitostem.online", + "cteamcommunity.xyz", + "stermcommunilty.ru.com", + "staemcomrnunity.ru.com", + "discords-hypes.com", + "discoerdapp.com", + "comsteamcommunity.com", + "dicsordnitro.store", + "pubggift95.xyz", + "dmarkef.com", + "discord2fa.com", + "steampoiwered.com", + "stearncomnnunity.fun", + "steamconnunity.ru.com", + "steamcommunuti.ru", + "steamcommunety.net.ru", + "cs-exeword.xyz", + "navigg.ru", + "skins.org.ru", + "stemcomnmunity.ru.com", + "steamcommunity.mobi", + "fall500.ru", + "steampowered-trades.xyz", + "steanncomunitly.ru", + "steamhome-trades.xyz", + "discord-nitro.tech", + "steamaccounts.org", + "steamcommunetiy.ru", + "steancomunitiy.ru.com", + "stemcomnnmuunity.ru", + "stearncomnunitv.ru.com", + "streamcomnully.net.ru", + "discordd.gg", + "topz-games.xyz", + "steamcsgo-game.ru", + "loot-conveyor.com", + "staemcomcommunlty.ru.com", + "steemcomunity.org.ru", + "steamecommunity.ru.com", + "discord-nitro.pro", + "discord-mods.com", + "steamcommuwunity.com", + "steamcommunjti.com", + "steamcommunnuty.ru", + "discorcl-nitro.com", + "discordapp.gg", + "pubgmcheats.com", + "discord-netro.ru", + "staemcoomuntiy.ru", + "stealmcommunity.ru", + "cs-cool.net.ru", + "discorb.co", + "store-steam-csgo.ru", + "stheamcomunitly.ru", + "stearncomminuty.click", + "steamcommulltty.com", + "stemcommounilty.com", + "steacommunity.ru.com", + "keydoppler.one", + "csgogf06.xyz", + "sleamcoomuuntty.xyz", + "steamcommuniltiy.ru", + "steamcommumituy.com", + "discordfree.com", + "streamcommunly.com", + "discod.gift", + "cs-riptide.xyz", + "streamcommunit.com", + "streamcommunitv.net", + "steamcomunitty.ru.com", + "steeaamcomunity.xyz", + "steampowered.xyz", + "sleamcomminutiycom.ru.com", + "steamcommuilty.ru", + "drop.org.ru", + "csgo.ghservers.cl", + "dicord.gg", + "discorcl.site", + "discord.givaewey.com", + "discord-gifts.org", + "casesdrop.xyz", + "operation-broken.xyz", + "diucord.js.org", + "steamcornmnitu.ru.com", + "steamcommuininty.com", + "discord.homes", + "sleramconnummitti.org", + "staemccommunnity.net.ru", + "cs-moneyy.ru", + "discords.ru.com", + "discorcl-app.xyz", + "steamcommunity-user.me", + "steamcommulity.ru", + "steemcoommunty.ru", + "discord-give.ru.com", + "streancoommunity.xyz", + "dlscord-nitro.store", + "sleamcommmunitiy.ru", + "alexs1.ru", + "steanmcommunity.ru.com", + "steamcommunity.comlappl251490lrust.ru", + "steamcomunnity.site", + "steamcommunyte.com", + "magnaviroll.xyz", + "stearmcornnnunity.com", + "steamcornmunity.org", + "discord-support.com", + "stleamcommunitiy.com", + "steam-servicedeals.xyz", + "stemcumunnity.ru.com", + "discordaoo.com", + "dlscordnltro.ru", + "discord-moderation.com", + "steancomuniiity.com", + "eslgamingworldwide.net", + "ds-nitr.xyz", + "discolrd.com", + "stearncommunigy.com", + "stemcommunitly.com", + "skinup.monster", + "streamcomunily.org.ru", + "discord-event.info", + "discord-partners.com", + "discords-premium.com", + "stemcammuniety.ru", + "steamconmumnity.com", + "dlscord-nltro.ru", + "discod-hitro.xyz", + "steampoeerd.com", + "steamcammunty.com", + "getfreediscordnitro.ml", + "discord-app.ru.com", + "steamlcommunity.org.ru", + "stearncommiunity.com", + "stleamcornmmunity.ru.com", + "store-steampoweered.ru", + "steamcomninytiu.com", + "discordglft.ru", + "discordsatus.com", + "stearncomrninuty.xyz", + "csgo-dym.ru", + "steancoommunity.xyz", + "steam-powered.xyz", + "steamcommuneteiy.com", + "stearmcommuniity.com", + "dirolzz.xyz", + "streamcommunnuitty.com", + "streamconmmunity.com", + "steam.99box.com", + "discrod-nitro.fun", + "robuxhach.com", + "steamcommynituy.com", + "wowfnatic.ru", + "steanmcommzunity.ru", + "stealcommuniti.ru", + "discord-gift.ru", + "steancammunyti.com", + "diiscord.com", + "xpro.gift", + "steammcommuniity.ru", + "starmcommunity.net", + "discord-claim.com", + "stearmcommuunnity.ru", + "steamcommunely.ru", + "sleamcoommunily.com", + "discordtos.com", + "discorcdapp.com", + "streamcommunty.ru", + "sterncornmunity.ru", + "storesleampowecommunity.store", + "discrodnitro.org", + "lan-pro.link", + "discordgame.com", + "steamcomrnunity.su", + "steamservice-deals1.xyz", + "staemcornmunity.com", + "discord-alrdrop.com", + "disc.gifts", + "slemommunity.com", + "streamcommunnity.org", + "steamcomnunitiy.com", + "steamcommrunitly.com", + "esports-trade.net.ru", + "navi-giveaway.net", + "streamcommuniily.com", + "discrod-gift.com", + "ggdrop.pp.ru", + "sleamcommunily.net", + "steamcommuunity.net.ru", + "discord-nitro.it", + "steamcormunity.xyz", + "eslgamescommunity.com", + "steamcommynlty.ru", + "streamcornnunitly.com", + "steamcoommunlty.ru", + "steam-storetrade1.xyz", + "staemconmuilty.com", + "discordnitros.xyz", + "streamcommuntiy.com", + "steamcommunit.ru.com", + "steampoward.com", + "steamcomunnity.xyz", + "steancomunitly.ru", + "staerncoinunitiy.me", + "steamcommunitey.com", + "official-nitro.com", + "steampowerde.com", + "z93729n9.beget.tech", + "steamcommunity.us", + "discordapp.ws", + "steamcommulnty.ru", + "discord.giveawey.com", + "steamcommuinity.com", + "discords.ru", + "stearncommunuity.net.ru", + "discordtokens.shop", + "discord-drop.gift", + "discrdapp.com", + "gamekor.net.ru", + "streamcomulty.net.ru", + "steemcommunitey.com", + "discord.cloud", + "csgochinasteam.ru", + "steaamcomunity.com", + "dlscocrdapp.com", + "www-steamcommunlty.com", + "discord-gift.shop", + "discord-nitrodrop.xyz", + "streamcommunilly.com", + "stemcomunnity.ru.com", + "steamcomiunity.xyz", + "disscord.ru", + "steamcomunity.net.ru", + "idiscord.pro", + "staeamconmuninty.me", + "discorcll.com", + "steancoommunnity.com", + "stemcommunity.ru", + "steamhometrade.xyz", + "disordglft.com", + "stieamcomunity.com", + "discordmoderations.com", + "easycases.pw", + "dicsord-airdrop.com", + "dscord.xyz", + "steamcommuntity.com", + "nitrogive.com", + "steam-tradeshome.xyz", + "steamcommumitiy.com", + "steamcommynuti.ru", + "streamcommunily.ru.com", + "discordhalloween.com", + "steemcommmunity.com", + "steam-tradegame.xyz", + "discordadp.com", + "ea-drop.com", + "streammcornmunnity.com", + "discord-hallowen.ru.com", + "steanncomunitty.site", + "css500gggo.ru", + "discod.info", + "vkbonus.club", + "steamcommunly.com", + "steancommuinuty.ru", + "steamcomnunitly.com", + "stearncommuniry.com", + "pubggf05.xyz", + "jetcase.fun", + "discorrd.ru", + "discordbotist.com", + "steamcomnumily.com", + "steamcomrnunlty.com", + "discord-informations.com", + "discord.bargains", + "www.discordapps.tk", + "steamcummunity.ru.com", + "dircode.ru", + "dlscord.app", + "streamcommulnty.com", + "disscords.club", + "rocket-tradings.com", + "pubgofficielbcseller.online", + "discords-gifts.ru", + "riptide-take.ru", + "steamcommunitty.esplay.eu", + "steamcomuninruty.ru", + "stemcommunity.com.ru", + "sreamcomminity.ru", + "streamcommunillty.com", + "stearncommumlty.com", + "free-nitlross.ru", + "stieamcommuniity.ru", + "discordgifts.co.uk", + "stearncommunjty.com", + "www.freeinstagramfollowersonline.com", + "steamconmunitly.com", + "streamcommunily.icu", + "staemcomnunity.org", + "dlscord-steam.com", + "steamcommuunitty.ru.com", + "staemcommunlty.ru", + "pubggf20.xyz", + "nitrogeneral.ru", + "stopify.com", + "discord-airdrop.site", + "discrod-app.ru", + "gleam.su", + "discordmac.com", + "steam.codes", + "streamcommunity.pl", + "steamcommunylty.ru", + "steamcommunlty.cloud", + "streamcommunltiy.com", + "streamconnunity.site", + "stearncommynitu.ru.com", + "d1scord.xyz", + "discordnitro.info", + "smeacommunity.com.au", + "stemcommunitiy.com", + "steamcommunitygames.com", + "discord-offer.com", + "stearmcommunnity.ru.com", + "steancommumity.net", + "steamconmuniti.ru", + "steamcomuniltu.xyz", + "sleemcomnuniti.xyz", + "steamcammiuniltty.com", + "discordlive.xyz", + "steanmcomnumty.com", + "discordapp.support", + "steampoweredshow.com", + "discord-stats.org", + "steammcommunity-trade.xyz", + "steamconmunlly.com", + "steancommynity.ru.com", + "staeamcomunnityu.me", + "steamcommunify.com", + "discord-air.fun", + "steamcommunity.co.ua", + "gift-g2.online", + "steamcommunitii.xyz", + "steanmconnynuytiy.net.ru", + "stearmconmunity.ru", + "steamcommunllty.ru", + "withereum.com", + "stearnconmuuity.com", + "steam-nitros.ru", + "stearnconmuulty.ru", + "steancommunnity.co", + "discord.team", + "staemcommunily.com", + "streamcommunniity.com", + "discorclapp.fun", + "steam.mmosvc.com", + "order-40.com", + "nitro-discord.org", + "classic-nitro.com", + "streamecommunity.com", + "discord-gifts.me", + "natus-rolls.xyz", + "fnaticteam.org.ru", + "stheamcommunutly.ru", + "creditscpfree.website", + "discorcl.art", + "pubggf04.xyz", + "ssteamcommunity.com", + "navicase.org", + "clan-big.ru", + "steamconnunity.fun", + "stemcommouniity.com", + "stearncommutiny.online", + "straemcomunnitry.ru", + "staemconmunity.com", + "freeskins.online", + "stearncommunnitty.xyz", + "staemconmunilty.com", + "sleamcommuniti.xyz", + "steancommuniitty.com", + "discqorcl.com", + "dlscord.world", + "s1cses.site", + "steamcormunity.ru", + "csgo-run.info", + "sleamcomunity.me", + "steamcommunyti.info", + "steamcommunitu.icu", + "steam-communitysource.xyz", + "steamcommyinuty.ru", + "giftsdiscord.site", + "discord.gq", + "steamcomueniity.ru", + "pubggf37.xyz", + "pubgmobileskin2020.com", + "steamcomminutiiu.ru", + "navifreeskins.ru", + "streamcommunily.co", + "steancommuhity.ru", + "steammncommunty.ru.com", + "discord-gif.xyz", + "slemcommunity.com", + "steamcommynite.com", + "steemcommuniti.com", + "disocr.com", + "affix-cup.click", + "x33681t2.beget.tech", + "daddsda.xyz", + "steamgametrade.xyz", + "discordnitro.ru.com", + "dscord.gifts", + "pubggf21.xyz", + "streamcoommounity.com", + "stearncomminutiu.ru", + "claimgifts.shop", + "pubguccmobilefree.cf", + "streamcommunitv.me", + "steeamcommunnlty.ru", + "steam-account.ru", + "discord.ac", + "discordsapi.com", + "mydrop.monster", + "steamcommumnity.com", + "steanmcomnumntiy.com", + "diccrd.com", + "steamcomynlty.com", + "discrodsteam.online", + "riptidepass.ru", + "steamcormurnity.com", + "steamcoonmuntiy.ru", + "dlscord-gifts.com", + "navi-give.net.ru", + "steamcornminty.xyz", + "www.dominospizzanl.com", + "discordbots.app", + "lan-pro.xyz", + "steamncomnunlty.com.ru", + "disord.fun", + "freenitrol.ru", + "steanccommunity.ru", + "steam-csgo-store.ru", + "sleamcommunitey.com", + "steam-discord.com", + "discord-promo.site", + "discord-moderator.us", + "mdiscord.com", + "www.robfan.work", + "steomcommunity.com", + "steamcormmunity.ru.com", + "discord.download", + "staemcommmunity.online", + "streamcomunity.net", + "discord-partner.com", + "steamcommunityr.com.ru", + "dlcord.gift", + "streamcommmunify.ru.com", + "discord-nitroapp.ru", + "pubggf27.xyz", + "steamcommunilly.com", + "steamcomnumty.ru", + "steamcommunity-source1.xyz", + "discord.giveaweys.com", + "steanconmunity.ru", + "pubgtoken.io", + "best-cup.com", + "sleamcoommunlity.com", + "pubgfree77.com", + "discird.me", + "steam-communitytrade.xyz", + "steamcard.me", + "steamcommuniytu.com", + "www.luckycrush.ga", + "steaemcommunity.pp.ru", + "discorddevs.com", + "steamcomminuly.com", + "discird.gg", + "disxord.com", + "garstel.github.io", + "discord-develop.com", + "steamcomminity.ru", + "pubggf03.xyz", + "steamncommumity.ru", + "didiscord.com", + "steampowerwed.com", + "sleamcommunitty.xyz", + "steamcomrnity.xyz", + "steamcommuniity.com.ru", + "steancommunlty.com", + "stemcomunity.com", + "steamcommunityy.ru", + "weplay.ru.com", + "discord-promo.ru.com", + "mythicleagues.xyz", + "steamcommuiti.ru", + "steancommunity.click", + "dixcord.com", + "nitroosfree.ru", + "stearncommunilty.site", + "get-discord.fun", + "stearmcommunity.com", + "luxerkils.xyz", + "steamcommunityx.com", + "steeamcommunnity.ru", + "streanncommunity.space", + "discordcanary.com", + "pubg-asia.xyz", + "steampoweredexchange.xyz", + "sterncomnurity.one", + "steqmcommunity.com", + "disordapp.gift", + "steamcorrnunity.org", + "steamcombain.com", + "steamncommunity.ru", + "g2-game.ru", + "pubggf29.xyz", + "nicegg.ru", + "stheamcomunutly.ru", + "steanmcomnuity.com", + "steamstore.site", + "staemcommuntiy.com", + "discord.creditcard", + "steamccommuniity.com", + "steamcommunityzce.top", + "steampower.space", + "steancommunnlty.com", + "wallet-steam.ml", + "stemncornmunity.com", + "steamcommurnuity.com", + "ggdrops.ru.com", + "steamcomuuniity.com", + "gift-discord.ru", + "cs500go.com", + "stieamcomuniiti.ru", + "discordl.site", + "operation-riptide.xyz", + "steawmpowered.com", + "discurcd.com", + "cupgoo.xyz", + "steancomunnity.ru", + "stemcoommuniity.com", + "steamcommulnt.ru.com", + "discord-nitrogift.xyz", + "pubggift100.xyz", + "stewmpowered.com", + "steamcommunltv.buzz", + "nitro-gift.ru.com", + "steanmcomnuinmty.com", + "steamconnunirty.ru", + "dogewarrior-giveaway.info", + "skinsup.monster", + "stearncommuniityt.click", + "steamcomminuty.link", + "stemcumnmunity.com", + "gglootgood.xyz", + "discord-glft.com", + "streamcomnnunity.website", + "case-give.com", + "rblxcorp.work", + "new-steamcommunlty.xyz", + "stieamcommynituy.com", + "dkscord.com", + "steamcomminytu.link", + "steamcomrnunitu.ru.com", + "steumcornmunity.com", + "xesa-nitro.com", + "steamcommunility.com", + "discord-gift.top", + "robloxgiftcardz.com", + "airdrop-discord.ru", + "disordgift.codes", + "stampowered.com", + "steam-povered.xyz", + "discordalt4.repl.co", + "steemcommunlty.com", + "reslike.net", + "awirabigmoneyrolls.xyz", + "discordnitro.su", + "stiemcommunitty.ru", + "promo-discord.site", + "discord-login.cf", + "steam-community.net.ru", + "steamecommunity.net", + "sleampowereed.ru", + "steamcommunutty.com", + "steamcamunitu.com", + "discord-support.org", + "stearncommuniity.site", + "steamcommuntliy.ru", + "steamdomain.ru", + "steamcommunidy.com", + "sleamcommuniiy.ru", + "steomcommunity.ru", + "discorb.com", + "staemcommunity.info", + "discord-nltro.fun", + "steamconmunlty.com.ru", + "steamcomnmynitu.com", + "rl-bounce.com", + "discoerd.com", + "stearmcornmunitiy.com", + "csgo-steamgame.ru", + "key-dropo.com", + "discorclnitro.ru", + "discordappss.com", + "steamstorepowered.com", + "cs-esports.link", + "steamcommunitysource.xyz", + "discord.luxe", + "steanconnunity.com", + "free-nitro.ru", + "cs-boom.org.ru", + "stheamcommuniti.com", + "sleamcornrnunity.host", + "disdrop.com.br", + "steamcommuni.com", + "stearncommunety.com", + "navi-wins-skiins.org.ru", + "lootship.ga", + "streamcommlunity.ru.com", + "steancammunity.ru", + "cash.pp.ru", + "steamcornmunty.com", + "navicase-2020.org.ru", + "steancommuuniliy.ru.com", + "steamcommunlty.store", + "steamcomnunmity.com", + "discord-hypesquads.com", + "sleamcomnnuniity.ru", + "discortnitosteam.online", + "riptide-pass.org.ru", + "steamcommunieti.ru", + "sleamcommunitiy.com", + "steamcomminytiu.ru", + "steam-cs-good.ru", + "dlscordsteam.com", + "streamcommunitey.com", + "discord.es", + "steamcommuntli.ru", + "steamcummunity.com", + "steemconnunity.com", + "steemcommuniy.com", + "g2ezports.xyz", + "steamcoomynity.ru", + "bondikflas.xyz", + "rl-garage.space", + "rust-ltd.com", + "sleamcommuiliy.ru.com", + "streamcomunily.pp.ru", + "stjeamcomnunitiy.ru", + "steawpowered.com", + "dlscord-nitro.link", + "steamconnunity.de", + "stearncornminuty.ru", + "cashout.monster", + "discordapp.cloud", + "steemcommuntiy.ru.com", + "discord-nitroe.xyz", + "steamcomity.com", + "stemacommunlty.com", + "steam-free-nitro.ru", + "disordnitros.gifts", + "steamcommuniti.org", + "steamkommunity.net.ru", + "dicsordgift.com", + "discords.company", + "steemcommuniity.com", + "steamcommunitty.top", + "qcoldteam.life", + "steamconmnunity.com", + "steamcommunitya.com", + "steanconnunlty.com", + "stearnconmunity.net", + "steamcomrninuty.site", + "steamcommunytytradeofferphobos.ru", + "discord-app.co.uk", + "order-87.com", + "diswcord.com", + "realtorg.xyz", + "sleammcommunnity.ru", + "steamcommnutry.ru", + "sleamcomnnunily.website", + "counter-strlke.site", + "steamcomminiity.site", + "steancomuniity.com", + "dlscord-nitro.click", + "steeamcommuinitty.com", + "steamcommunetiyy.xyz", + "steamcommutinny.ru.com", + "steamcommunnitlly.ru", + "discourd.com", + "discord.com.pl", + "steamcommiunity.pp.ru", + "steamrommunily.com", + "dizscord.com", + "pubggf42.xyz", + "steancomnunity.ru", + "dlscordnitro.com", + "stearmcommuunity.ru.com", + "streamcomnunity.ru", + "diisscord.online", + "bloxpromo.com", + "disordsnitro.gifts", + "pubgmobile2019ucfreeeee.tk", + "steamcommuenity.com", + "steancommunitv.com", + "steamcamunlty.com", + "steurmcommunity.com", + "pubggf39.xyz", + "discort.com", + "stieamcommunity.org.ru", + "steamconnnnunity.net.ru", + "naviskins.xyz", + "diqscordapp.com", + "stearnmcomunity.com", + "steampowerco.com", + "steamcomnutiny.ru", + "discord-gifteh.xyz", + "robuxhelpers.com", + "discontro.ru", + "steamcommunityz.com", + "streamcomunitly.net.ru", + "cointradebtc.com", + "stemcoominuty-alirdrop.xyz", + "dicsord-gives.com", + "pubggf36.xyz", + "steamcommunittey.com", + "steamcommmunity.xyz", + "wwdiscord.com", + "discorclsteam.com", + "steamecommunlty.com.ru", + "discorcl-app.com", + "topvincere.org.ru", + "rust-drop.ru.com", + "discordre.store", + "stearmmcomunity.ru", + "discordist.com", + "pubggf18.xyz", + "steamcomunnuty.com", + "steamcommuunjty.com", + "steamcomunlitly.ru.com", + "csgo-game-steam.ru", + "stearncommunilty.ru", + "steamcommunity.in", + "steacommunity.net.ru", + "steamcummunityy.pp.ua", + "discord-control.com", + "stearncormmunity.ru", + "stearncomminytu.com", + "steamcommunltiy.com", + "cod3r0bux.pw", + "steamcomnumity.ru.com", + "steamcommiunniutty.net.ru", + "stermccommunitty.ru", + "discord-airdrop.com", + "styeampowered.com", + "facepunchltd.com", + "steamcommnunytl.com", + "toprobux.site", + "steamcommnunniiy.net.ru", + "steamcommunitie.net", + "stmeacomunnitty.ru", + "rl-purple.com", + "stleamcommunithy.com", + "steamdiscrod.ru", + "stemcomnunity.com", + "steamcommunityzcd.top", + "sleamconmunity.ru", + "discordbeta.com", + "redizzz.xyz", + "discordapp.top", + "steamcommunityi.ru", + "steawscommunity.net", + "navirolls.org.ru", + "steamcommunlilty.ru.com", + "steamcconmmuunity.co", + "steamcomunlty.ru.com", + "steamcommuunity.pp.ru", + "streamcommunjty.com", + "steamcoommunity.pp.ru", + "stemcommunitytrade.fun", + "cschecker.ru", + "streamcommunitiy.ru", + "discord-information.com", + "pubggf25.xyz", + "streamcommunnty.com", + "glob21.online", + "giftdiscord.info", + "streamcommunty.me", + "wanmeipt.ru", + "steamaccounts.net", + "steamaccount.xyz", + "steancomnunytu.ru.com", + "stemcomnmuunity.ru.com", + "discordiatech.co.uk", + "steam-communitygifts1.xyz", + "www.freenitrogenerator.tk", + "rollskins.monster", + "www.discord-steam.ru", + "steanmcommunily.ru", + "opencase.space", + "steamcommunitytradeofer.com", + "staemcommmunity.ru", + "drop-key.ru", + "discordgifts.site", + "get-nitro.fun", + "ach2x.net.ru", + "discord-sex.live", + "dlscord.shop", + "jet-crash.xyz", + "sreamcommunity.com", + "steamgiveaway.cc", + "steam-poweredexchange.xyz", + "steam-csgo-good.ru", + "streamcummunlty.com", + "from-puste.xyz", + "stemcoommounity.com", + "steamcommunity.live", + "streamncommnunity.com", + "navy-freecases.ru", + "steamcommunities.biz", + "loginrun.info", + "csgo-steam-good.ru", + "newdiscord.online", + "steampowered.us", + "steam-hometrades.xyz", + "sleamcommunlty.space", + "discorcl-nitro.site", + "steamcommuunitey.com", + "steamcommuninty.ru.com", + "streamcormmunlty.ru.com", + "discordp.com", + "drop.pp.ru", + "discordapp.click", + "steamdiscords.com", + "discorclapp.com", + "steamcomnmuituy.com", + "sleamcoommunity.com", + "sleamcommunily.org", + "discords-nitros.fun", + "discoard.com", + "steamcornrrnunity.com", + "steamdiscord.com", + "discord-invite-link.com", + "www.steacmommunity.com", + "discosd.com", + "steampowened.ru.com", + "antibot.cc", + "steurmconmunity.com", + "staemcoommuntiy.ru", + "cpbldi.com", + "disocrd.gg", + "steamconnmunlty.com", + "freediscord-nitro.cf", + "discord-nitro.live", + "steam-login1.xyz", + "discordnitrofree.com", + "steancommunitiy.ru", + "csgogf03.xyz", + "discord-verify-account.ml", + "discordqapp.com", + "streamconmunyti.com", + "d.iscord.xyz", + "steamcommunetyei.com", + "discrod-app.com", + "steamcommunity.best", + "gamerolls.net.ru", + "discordnitro-steam.ru", + "discrod.pw", + "steemcowwunity.xyz", + "discrord.com", + "stheamconnmunutly.ru", + "steamcommunute.com", + "steamcomrnunitu.ru", + "steamdlscord.com", + "stearncornmurnity.ru.com", + "discord.cc", + "please.net.ru", + "stearmcommunitry.cf", + "facedrop.one", + "hdiscord.com", + "steamcommnunity.com", + "steancommuniity.com", + "glets-nitro.com", + "magifrolbit.xyz", + "2021y.ru", + "steamcommunltuy.com", + "sitemap.onedrrive.com", + "id-374749.ru", + "dlscorcl.gift", + "team.the-shrubbery.co.uk", + "steancommmunity.com", + "steamccommunity.com", + "steamcommunety1i.com", + "steancomunitytradeffer.xyz", + "stearncommmunity.ru", + "steamcomunityo.com", + "keydrop.org.ru", + "discord404.com", + "steamcommuniety.ru", + "steampowerewd.com", + "csgorun.info", + "steanncommuniuity.com", + "streanncomunity.ru", + "streamcommunily.cc", + "game-steamcsgo.ru", + "discord-verifications.com", + "navi-russia.ru", + "discorddev.com", + "steancommnuity.com", + "stearncomminuty.ru", + "discordcharity.org", + "steamcommuitly.ru", + "discorapp.pw", + "whitelampa.xyz", + "stemcommuty.ru", + "steanmconynnuytiy.net.ru", + "steamcomuniity.ru.com", + "eslworldwideplay.com", + "steanncomunitiy.ru.com", + "fdiscord.com", + "stmencommunity.ru", + "streamcommununty.com", + "dicsord.pl", + "steeamcomunitty.com", + "dscord.me", + "ewqdsa.xyz", + "stheamcommunutiy.ru", + "steamcomnumity.com", + "steamcommunniity.com", + "steam-csgo-game.ru", + "steamcommunitytradeofter.com", + "pubggift101.xyz", + "streamcommunlte.ru", + "new.mychaelknight.com", + "steancomnuity.com", + "discordsapp.fun", + "stimcommunity.ru", + "widesdays.com", + "stemcomnmnunity.com", + "discod.tech", + "ww1.dicsordapp.com", + "stores-steampowered.com", + "steamecommunituiy.com", + "discord-report.com", + "discordnitros.gifts", + "g2a.ru.com", + "streampoered.com", + "viwwzaguly.xyz", + "gamzgss-top.xyz", + "streamcommunity-user.me", + "magifcrolrlh.xyz", + "steam-cs.ru", + "streamcommuunnity.net", + "steanncommunity.com", + "streamcommunuity.net", + "streanncomminity.ru", + "streamcommuunity.com", + "good-csgo-steam.ru", + "steamcomumity.com", + "stemcommuniety.com", + "streamcomnunyti.xyz", + "discord-claim.ru", + "stearncomrmunity.com", + "rustg1fts.ru", + "discord-claim.ru.com", + "staemcummunlty.com", + "steamguard.ir", + "steamcommuniutiiy.com", + "steam.communyty.worldhosts.ru", + "steemcommunty.net.ru", + "discord-app.club", + "staemporewed.xyz" +] diff --git a/util/Data/skins.json b/util/Data/skins.json @@ -0,0 +1 @@ +[{"skinId":7844,"itemName":".50 GS","skinName":"Abominable","itemRarity":"Common"},{"skinId":9653,"itemName":".50 GS","skinName":"All Out War","itemRarity":"Epic"},{"skinId":7867,"itemName":".50 GS","skinName":"Anaconda","itemRarity":"Common"},{"skinId":7837,"itemName":".50 GS","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":7839,"itemName":".50 GS","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":7836,"itemName":".50 GS","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":7826,"itemName":".50 GS","skinName":"Asphalt","itemRarity":"Common"},{"skinId":7838,"itemName":".50 GS","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":7825,"itemName":".50 GS","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":7864,"itemName":".50 GS","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":7850,"itemName":".50 GS","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":9494,"itemName":".50 GS","skinName":"Breach","itemRarity":"Epic"},{"skinId":7868,"itemName":".50 GS","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":8267,"itemName":".50 GS","skinName":"Calamity","itemRarity":"Legendary"},{"skinId":7860,"itemName":".50 GS","skinName":"Canopy","itemRarity":"Common"},{"skinId":10561,"itemName":".50 GS","skinName":"Card Armor","itemRarity":"Rare"},{"skinId":7818,"itemName":".50 GS","skinName":"Chain Link","itemRarity":"Common"},{"skinId":7816,"itemName":".50 GS","skinName":"China Lake","itemRarity":"Common"},{"skinId":7865,"itemName":".50 GS","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":7812,"itemName":".50 GS","skinName":"Commando","itemRarity":"Common"},{"skinId":9073,"itemName":".50 GS","skinName":"Comrade","itemRarity":"Epic"},{"skinId":7827,"itemName":".50 GS","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":10135,"itemName":".50 GS","skinName":"Crisis","itemRarity":"Rare"},{"skinId":7873,"itemName":".50 GS","skinName":"Damascus","itemRarity":"Common"},{"skinId":7843,"itemName":".50 GS","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":7747,"itemName":".50 GS","skinName":"Default","itemRarity":"Common"},{"skinId":7848,"itemName":".50 GS","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":7853,"itemName":".50 GS","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":7811,"itemName":".50 GS","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":11437,"itemName":".50 GS","skinName":"Desert Sunset","itemRarity":"Rare"},{"skinId":8509,"itemName":".50 GS","skinName":"Diamond","itemRarity":"Common"},{"skinId":7822,"itemName":".50 GS","skinName":"Dirt","itemRarity":"Common"},{"skinId":10150,"itemName":".50 GS","skinName":"Emergence","itemRarity":"Epic"},{"skinId":7845,"itemName":".50 GS","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":7846,"itemName":".50 GS","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":7830,"itemName":".50 GS","skinName":"Foliage","itemRarity":"Common"},{"skinId":7833,"itemName":".50 GS","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":7870,"itemName":".50 GS","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":7869,"itemName":".50 GS","skinName":"Gecko","itemRarity":"Common"},{"skinId":10976,"itemName":".50 GS","skinName":"Glow Fly","itemRarity":"Epic"},{"skinId":7871,"itemName":".50 GS","skinName":"Gold","itemRarity":"Common"},{"skinId":7821,"itemName":".50 GS","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":7834,"itemName":".50 GS","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":7856,"itemName":".50 GS","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":7863,"itemName":".50 GS","skinName":"Komodo","itemRarity":"Common"},{"skinId":11585,"itemName":".50 GS","skinName":"Malpractice","itemRarity":"Epic"},{"skinId":7855,"itemName":".50 GS","skinName":"Marshland","itemRarity":"Common"},{"skinId":7852,"itemName":".50 GS","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":7814,"itemName":".50 GS","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":7823,"itemName":".50 GS","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":7842,"itemName":".50 GS","skinName":"Mudslide","itemRarity":"Common"},{"skinId":11617,"itemName":".50 GS","skinName":"Murder","itemRarity":"Epic"},{"skinId":7828,"itemName":".50 GS","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":7819,"itemName":".50 GS","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":7859,"itemName":".50 GS","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":7841,"itemName":".50 GS","skinName":"Overgrown","itemRarity":"Common"},{"skinId":7866,"itemName":".50 GS","skinName":"Pink Python","itemRarity":"Common"},{"skinId":7817,"itemName":".50 GS","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":7815,"itemName":".50 GS","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":7872,"itemName":".50 GS","skinName":"Platinum","itemRarity":"Common"},{"skinId":10805,"itemName":".50 GS","skinName":"Porcelain Yakuza","itemRarity":"Epic"},{"skinId":7861,"itemName":".50 GS","skinName":"Python","itemRarity":"Common"},{"skinId":7862,"itemName":".50 GS","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":7849,"itemName":".50 GS","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":10265,"itemName":".50 GS","skinName":"Revolt","itemRarity":"Epic"},{"skinId":11532,"itemName":".50 GS","skinName":"Rewind","itemRarity":"Uncommon"},{"skinId":7813,"itemName":".50 GS","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":7835,"itemName":".50 GS","skinName":"Ruins","itemRarity":"Common"},{"skinId":7854,"itemName":".50 GS","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":7840,"itemName":".50 GS","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":7820,"itemName":".50 GS","skinName":"Smoke","itemRarity":"Common"},{"skinId":9423,"itemName":".50 GS","skinName":"Sprite Ops","itemRarity":"Epic"},{"skinId":7851,"itemName":".50 GS","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":7824,"itemName":".50 GS","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":7847,"itemName":".50 GS","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":7829,"itemName":".50 GS","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":9344,"itemName":".50 GS","skinName":"Trance","itemRarity":"Rare"},{"skinId":7831,"itemName":".50 GS","skinName":"Tundra","itemRarity":"Common"},{"skinId":7832,"itemName":".50 GS","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":10140,"itemName":".50 GS","skinName":"Vagabond","itemRarity":"Epic"},{"skinId":9319,"itemName":".50 GS","skinName":"Voltaic","itemRarity":"Rare"},{"skinId":7858,"itemName":".50 GS","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":7857,"itemName":".50 GS","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":9576,"itemName":".50 GS","skinName":"Warp","itemRarity":"Uncommon"},{"skinId":7781,"itemName":"AGR 556","skinName":"Abominable","itemRarity":"Common"},{"skinId":7804,"itemName":"AGR 556","skinName":"Anaconda","itemRarity":"Common"},{"skinId":7774,"itemName":"AGR 556","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":7776,"itemName":"AGR 556","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":7773,"itemName":"AGR 556","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":7763,"itemName":"AGR 556","skinName":"Asphalt","itemRarity":"Common"},{"skinId":7775,"itemName":"AGR 556","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":10934,"itemName":"AGR 556","skinName":"Birthstone","itemRarity":"Rare"},{"skinId":7762,"itemName":"AGR 556","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":7801,"itemName":"AGR 556","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":7787,"itemName":"AGR 556","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":7805,"itemName":"AGR 556","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":7970,"itemName":"AGR 556","skinName":"Byakko","itemRarity":"Epic"},{"skinId":7797,"itemName":"AGR 556","skinName":"Canopy","itemRarity":"Common"},{"skinId":7755,"itemName":"AGR 556","skinName":"Chain Link","itemRarity":"Common"},{"skinId":7753,"itemName":"AGR 556","skinName":"China Lake","itemRarity":"Common"},{"skinId":7802,"itemName":"AGR 556","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":7749,"itemName":"AGR 556","skinName":"Commando","itemRarity":"Common"},{"skinId":7764,"itemName":"AGR 556","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7810,"itemName":"AGR 556","skinName":"Damascus","itemRarity":"Common"},{"skinId":10880,"itemName":"AGR 556","skinName":"Dame Fortuna","itemRarity":"Epic"},{"skinId":7780,"itemName":"AGR 556","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":7746,"itemName":"AGR 556","skinName":"Default","itemRarity":"Common"},{"skinId":7785,"itemName":"AGR 556","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":7790,"itemName":"AGR 556","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":7748,"itemName":"AGR 556","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8554,"itemName":"AGR 556","skinName":"Diamond","itemRarity":"Common"},{"skinId":7759,"itemName":"AGR 556","skinName":"Dirt","itemRarity":"Common"},{"skinId":8064,"itemName":"AGR 556","skinName":"Durandal","itemRarity":"Legendary"},{"skinId":7782,"itemName":"AGR 556","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":7783,"itemName":"AGR 556","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":7767,"itemName":"AGR 556","skinName":"Foliage","itemRarity":"Common"},{"skinId":7770,"itemName":"AGR 556","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":7807,"itemName":"AGR 556","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":7806,"itemName":"AGR 556","skinName":"Gecko","itemRarity":"Common"},{"skinId":7808,"itemName":"AGR 556","skinName":"Gold","itemRarity":"Common"},{"skinId":7758,"itemName":"AGR 556","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":7771,"itemName":"AGR 556","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":11729,"itemName":"AGR 556","skinName":"Iron Hunter","itemRarity":"Rare"},{"skinId":7793,"itemName":"AGR 556","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":10780,"itemName":"AGR 556","skinName":"Kinetic","itemRarity":"Epic"},{"skinId":7800,"itemName":"AGR 556","skinName":"Komodo","itemRarity":"Common"},{"skinId":7792,"itemName":"AGR 556","skinName":"Marshland","itemRarity":"Common"},{"skinId":9651,"itemName":"AGR 556","skinName":"Matchstick","itemRarity":"Epic"},{"skinId":7789,"itemName":"AGR 556","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":7751,"itemName":"AGR 556","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":7760,"itemName":"AGR 556","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":7779,"itemName":"AGR 556","skinName":"Mudslide","itemRarity":"Common"},{"skinId":7765,"itemName":"AGR 556","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":7756,"itemName":"AGR 556","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":7796,"itemName":"AGR 556","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":7778,"itemName":"AGR 556","skinName":"Overgrown","itemRarity":"Common"},{"skinId":7803,"itemName":"AGR 556","skinName":"Pink Python","itemRarity":"Common"},{"skinId":7754,"itemName":"AGR 556","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":7752,"itemName":"AGR 556","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":7809,"itemName":"AGR 556","skinName":"Platinum","itemRarity":"Common"},{"skinId":7798,"itemName":"AGR 556","skinName":"Python","itemRarity":"Common"},{"skinId":7799,"itemName":"AGR 556","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":7786,"itemName":"AGR 556","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":11108,"itemName":"AGR 556","skinName":"Refined","itemRarity":"Rare"},{"skinId":7750,"itemName":"AGR 556","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":7772,"itemName":"AGR 556","skinName":"Ruins","itemRarity":"Common"},{"skinId":7791,"itemName":"AGR 556","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":7777,"itemName":"AGR 556","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":7757,"itemName":"AGR 556","skinName":"Smoke","itemRarity":"Common"},{"skinId":11614,"itemName":"AGR 556","skinName":"Steel Blue","itemRarity":"Epic"},{"skinId":7788,"itemName":"AGR 556","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":7761,"itemName":"AGR 556","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":7784,"itemName":"AGR 556","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":7766,"itemName":"AGR 556","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":8473,"itemName":"AGR 556","skinName":"Tree Topper","itemRarity":"Epic"},{"skinId":7768,"itemName":"AGR 556","skinName":"Tundra","itemRarity":"Common"},{"skinId":7769,"itemName":"AGR 556","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":11217,"itemName":"AGR 556","skinName":"Volksfrei Issued","itemRarity":"Epic"},{"skinId":7795,"itemName":"AGR 556","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":7794,"itemName":"AGR 556","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":11435,"itemName":"AGR 556","skinName":"Western Crown","itemRarity":"Epic"},{"skinId":8716,"itemName":"AGR 556","skinName":"Winterwood","itemRarity":"Rare"},{"skinId":334,"itemName":"AK-47","skinName":"1001 Nights","itemRarity":"Uncommon"},{"skinId":3619,"itemName":"AK-47","skinName":"Abominable","itemRarity":"Common"},{"skinId":3642,"itemName":"AK-47","skinName":"Anaconda","itemRarity":"Common"},{"skinId":3612,"itemName":"AK-47","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":3614,"itemName":"AK-47","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":2353,"itemName":"AK-47","skinName":"Arctic Digital","itemRarity":"Uncommon"},{"skinId":3611,"itemName":"AK-47","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":5912,"itemName":"AK-47","skinName":"Artillery","itemRarity":"Epic"},{"skinId":3601,"itemName":"AK-47","skinName":"Asphalt","itemRarity":"Common"},{"skinId":1236,"itemName":"AK-47","skinName":"Aurora Borealis","itemRarity":"Rare"},{"skinId":3613,"itemName":"AK-47","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":9219,"itemName":"AK-47","skinName":"BDU","itemRarity":"Rare"},{"skinId":2196,"itemName":"AK-47","skinName":"Bandit","itemRarity":"Rare"},{"skinId":3600,"itemName":"AK-47","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":2853,"itemName":"AK-47","skinName":"Blood in the Water","itemRarity":"Rare"},{"skinId":1441,"itemName":"AK-47","skinName":"Blue Graffiti","itemRarity":"Uncommon"},{"skinId":3639,"itemName":"AK-47","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":3625,"itemName":"AK-47","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":1205,"itemName":"AK-47","skinName":"Blue Wave","itemRarity":"Uncommon"},{"skinId":341,"itemName":"AK-47","skinName":"Brushed Steel","itemRarity":"Rare"},{"skinId":6706,"itemName":"AK-47","skinName":"Bug Spray","itemRarity":"Rare"},{"skinId":6163,"itemName":"AK-47","skinName":"Bullet Point","itemRarity":"Uncommon"},{"skinId":3643,"itemName":"AK-47","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":1904,"itemName":"AK-47","skinName":"Calcium Chloride","itemRarity":"Uncommon"},{"skinId":3635,"itemName":"AK-47","skinName":"Canopy","itemRarity":"Common"},{"skinId":3594,"itemName":"AK-47","skinName":"Chain Link","itemRarity":"Common"},{"skinId":972,"itemName":"AK-47","skinName":"Championship 2020","itemRarity":"Rare"},{"skinId":3592,"itemName":"AK-47","skinName":"China Lake","itemRarity":"Common"},{"skinId":7495,"itemName":"AK-47","skinName":"Chopper Command","itemRarity":"Rare"},{"skinId":3640,"itemName":"AK-47","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":6520,"itemName":"AK-47","skinName":"Coat","itemRarity":"Uncommon"},{"skinId":3588,"itemName":"AK-47","skinName":"Commando","itemRarity":"Common"},{"skinId":149,"itemName":"AK-47","skinName":"Copperhead","itemRarity":"Rare"},{"skinId":1871,"itemName":"AK-47","skinName":"Corpse Digger","itemRarity":"Uncommon"},{"skinId":2775,"itemName":"AK-47","skinName":"Corroded","itemRarity":"Uncommon"},{"skinId":3602,"itemName":"AK-47","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":11005,"itemName":"AK-47","skinName":"Cumulus","itemRarity":"Uncommon"},{"skinId":7045,"itemName":"AK-47","skinName":"Damascus","itemRarity":"Common"},{"skinId":3618,"itemName":"AK-47","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":1200,"itemName":"AK-47","skinName":"Dark Fiber","itemRarity":"Uncommon"},{"skinId":1965,"itemName":"AK-47","skinName":"Dark Victorian","itemRarity":"Rare"},{"skinId":440,"itemName":"AK-47","skinName":"Default","itemRarity":"Common"},{"skinId":3623,"itemName":"AK-47","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":3628,"itemName":"AK-47","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":3017,"itemName":"AK-47","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":11424,"itemName":"AK-47","skinName":"Desert Sunset","itemRarity":"Rare"},{"skinId":8518,"itemName":"AK-47","skinName":"Diamond","itemRarity":"Common"},{"skinId":3597,"itemName":"AK-47","skinName":"Dirt","itemRarity":"Common"},{"skinId":2578,"itemName":"AK-47","skinName":"Distressed","itemRarity":"Uncommon"},{"skinId":10454,"itemName":"AK-47","skinName":"Easter '20","itemRarity":"Uncommon"},{"skinId":3620,"itemName":"AK-47","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":3621,"itemName":"AK-47","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":10896,"itemName":"AK-47","skinName":"Festival","itemRarity":"Uncommon"},{"skinId":3605,"itemName":"AK-47","skinName":"Foliage","itemRarity":"Common"},{"skinId":6873,"itemName":"AK-47","skinName":"Forest Fabric","itemRarity":"Uncommon"},{"skinId":6767,"itemName":"AK-47","skinName":"Freight Train","itemRarity":"Rare"},{"skinId":1188,"itemName":"AK-47","skinName":"Frontier","itemRarity":"Rare"},{"skinId":3608,"itemName":"AK-47","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":8946,"itemName":"AK-47","skinName":"Frostbrand","itemRarity":"Epic"},{"skinId":3645,"itemName":"AK-47","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":9983,"itemName":"AK-47","skinName":"Gas Cloud","itemRarity":"Uncommon"},{"skinId":3644,"itemName":"AK-47","skinName":"Gecko","itemRarity":"Common"},{"skinId":1110,"itemName":"AK-47","skinName":"Glacier","itemRarity":"Rare"},{"skinId":3646,"itemName":"AK-47","skinName":"Gold","itemRarity":"Common"},{"skinId":10475,"itemName":"AK-47","skinName":"Graveyard Watch","itemRarity":"Epic"},{"skinId":1324,"itemName":"AK-47","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":2018,"itemName":"AK-47","skinName":"Ground Splitter","itemRarity":"Rare"},{"skinId":3018,"itemName":"AK-47","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":1229,"itemName":"AK-47","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":7339,"itemName":"AK-47","skinName":"Heliotrope","itemRarity":"Uncommon"},{"skinId":2439,"itemName":"AK-47","skinName":"Hemophiliac","itemRarity":"Uncommon"},{"skinId":11020,"itemName":"AK-47","skinName":"Holster","itemRarity":"Rare"},{"skinId":3609,"itemName":"AK-47","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":595,"itemName":"AK-47","skinName":"Jack Frost","itemRarity":"Uncommon"},{"skinId":1616,"itemName":"AK-47","skinName":"Jade","itemRarity":"Epic"},{"skinId":2197,"itemName":"AK-47","skinName":"Jingle Bells","itemRarity":"Uncommon"},{"skinId":3631,"itemName":"AK-47","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":11025,"itemName":"AK-47","skinName":"Koi Pond","itemRarity":"Epic"},{"skinId":3638,"itemName":"AK-47","skinName":"Komodo","itemRarity":"Common"},{"skinId":10804,"itemName":"AK-47","skinName":"Kuromaku","itemRarity":"Legendary"},{"skinId":8133,"itemName":"AK-47","skinName":"Labyrinth","itemRarity":"Rare"},{"skinId":10328,"itemName":"AK-47","skinName":"Last Will","itemRarity":"Rare"},{"skinId":681,"itemName":"AK-47","skinName":"Lemon Drop Candy","itemRarity":"Rare"},{"skinId":11226,"itemName":"AK-47","skinName":"Life and Death","itemRarity":"Epic"},{"skinId":9365,"itemName":"AK-47","skinName":"Light Show","itemRarity":"Uncommon"},{"skinId":1791,"itemName":"AK-47","skinName":"Lurk","itemRarity":"Rare"},{"skinId":3630,"itemName":"AK-47","skinName":"Marshland","itemRarity":"Common"},{"skinId":876,"itemName":"AK-47","skinName":"Mechanized Rain","itemRarity":"Rare"},{"skinId":6775,"itemName":"AK-47","skinName":"Melon","itemRarity":"Uncommon"},{"skinId":2836,"itemName":"AK-47","skinName":"Metal Note","itemRarity":"Rare"},{"skinId":326,"itemName":"AK-47","skinName":"Metallic Mist","itemRarity":"Epic"},{"skinId":1505,"itemName":"AK-47","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":77,"itemName":"AK-47","skinName":"Mirage","itemRarity":"Epic"},{"skinId":3627,"itemName":"AK-47","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":3590,"itemName":"AK-47","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":3598,"itemName":"AK-47","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":3617,"itemName":"AK-47","skinName":"Mudslide","itemRarity":"Common"},{"skinId":1680,"itemName":"AK-47","skinName":"Neon Green","itemRarity":"Uncommon"},{"skinId":3603,"itemName":"AK-47","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":3595,"itemName":"AK-47","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":3634,"itemName":"AK-47","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":3616,"itemName":"AK-47","skinName":"Overgrown","itemRarity":"Common"},{"skinId":10246,"itemName":"AK-47","skinName":"Paint Smear","itemRarity":"Uncommon"},{"skinId":3641,"itemName":"AK-47","skinName":"Pink Python","itemRarity":"Common"},{"skinId":3593,"itemName":"AK-47","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":3591,"itemName":"AK-47","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":6965,"itemName":"AK-47","skinName":"Plated Red","itemRarity":"Uncommon"},{"skinId":3647,"itemName":"AK-47","skinName":"Platinum","itemRarity":"Common"},{"skinId":2516,"itemName":"AK-47","skinName":"Posted","itemRarity":"Rare"},{"skinId":1345,"itemName":"AK-47","skinName":"Pumpkin Candy","itemRarity":"Uncommon"},{"skinId":548,"itemName":"AK-47","skinName":"Pumpkin Head","itemRarity":"Legendary"},{"skinId":3636,"itemName":"AK-47","skinName":"Python","itemRarity":"Common"},{"skinId":6944,"itemName":"AK-47","skinName":"Radio Current","itemRarity":"Rare"},{"skinId":3637,"itemName":"AK-47","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":944,"itemName":"AK-47","skinName":"Red Action","itemRarity":"Epic"},{"skinId":1021,"itemName":"AK-47","skinName":"Red Dragon","itemRarity":"Rare"},{"skinId":3624,"itemName":"AK-47","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":581,"itemName":"AK-47","skinName":"Red Triangle","itemRarity":"Uncommon"},{"skinId":804,"itemName":"AK-47","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":3589,"itemName":"AK-47","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":10304,"itemName":"AK-47","skinName":"Rogue Intel","itemRarity":"Epic"},{"skinId":3610,"itemName":"AK-47","skinName":"Ruins","itemRarity":"Common"},{"skinId":3629,"itemName":"AK-47","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":3615,"itemName":"AK-47","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":10584,"itemName":"AK-47","skinName":"Side Scale","itemRarity":"Rare"},{"skinId":3596,"itemName":"AK-47","skinName":"Smoke","itemRarity":"Common"},{"skinId":1455,"itemName":"AK-47","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":8214,"itemName":"AK-47","skinName":"Stakeholder","itemRarity":"Epic"},{"skinId":7936,"itemName":"AK-47","skinName":"Stalwart","itemRarity":"Rare"},{"skinId":495,"itemName":"AK-47","skinName":"Steel Blue","itemRarity":"Epic"},{"skinId":3626,"itemName":"AK-47","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":8237,"itemName":"AK-47","skinName":"Tagged","itemRarity":"Uncommon"},{"skinId":3599,"itemName":"AK-47","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":1168,"itemName":"AK-47","skinName":"Tank","itemRarity":"Epic"},{"skinId":1374,"itemName":"AK-47","skinName":"Task Force 141","itemRarity":"Rare"},{"skinId":3622,"itemName":"AK-47","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":3604,"itemName":"AK-47","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":2566,"itemName":"AK-47","skinName":"Trial and Error","itemRarity":"Epic"},{"skinId":3606,"itemName":"AK-47","skinName":"Tundra","itemRarity":"Common"},{"skinId":3607,"itemName":"AK-47","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":11890,"itemName":"AK-47","skinName":"Wanted","itemRarity":"Uncommon"},{"skinId":3633,"itemName":"AK-47","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":3632,"itemName":"AK-47","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":9473,"itemName":"AK-47","skinName":"Wiremass","itemRarity":"Uncommon"},{"skinId":6495,"itemName":"AK-47","skinName":"Woodland Strife","itemRarity":"Epic"},{"skinId":1033,"itemName":"AK-47","skinName":"Wrath Black & Gold","itemRarity":"Legendary"},{"skinId":9583,"itemName":"AK-47","skinName":"Year of Ox","itemRarity":"Epic"},{"skinId":3740,"itemName":"AK117","skinName":"Abominable","itemRarity":"Common"},{"skinId":1858,"itemName":"AK117","skinName":"Afterlife","itemRarity":"Rare"},{"skinId":3763,"itemName":"AK117","skinName":"Anaconda","itemRarity":"Common"},{"skinId":2200,"itemName":"AK117","skinName":"Ancient Runes","itemRarity":"Rare"},{"skinId":6110,"itemName":"AK117","skinName":"Angles","itemRarity":"Uncommon"},{"skinId":3733,"itemName":"AK117","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":109,"itemName":"AK117","skinName":"Aqua","itemRarity":"Uncommon"},{"skinId":3735,"itemName":"AK117","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":3732,"itemName":"AK117","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":3043,"itemName":"AK117","skinName":"Armor Plated","itemRarity":"Epic"},{"skinId":3722,"itemName":"AK117","skinName":"Asphalt","itemRarity":"Common"},{"skinId":3734,"itemName":"AK117","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":567,"itemName":"AK117","skinName":"Balloons","itemRarity":"Rare"},{"skinId":231,"itemName":"AK117","skinName":"Bandit","itemRarity":"Rare"},{"skinId":1656,"itemName":"AK117","skinName":"Barricade","itemRarity":"Epic"},{"skinId":375,"itemName":"AK117","skinName":"Bengal","itemRarity":"Epic"},{"skinId":7484,"itemName":"AK117","skinName":"BiSH","itemRarity":"Epic"},{"skinId":1669,"itemName":"AK117","skinName":"Black Lime","itemRarity":"Rare"},{"skinId":3721,"itemName":"AK117","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":1439,"itemName":"AK117","skinName":"Blue Graffiti","itemRarity":"Uncommon"},{"skinId":3760,"itemName":"AK117","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":3746,"itemName":"AK117","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":7987,"itemName":"AK117","skinName":"Bronze Arrow","itemRarity":"Rare"},{"skinId":11257,"itemName":"AK117","skinName":"Buckskin","itemRarity":"Rare"},{"skinId":3764,"itemName":"AK117","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":10779,"itemName":"AK117","skinName":"Calligraphy","itemRarity":"Epic"},{"skinId":3756,"itemName":"AK117","skinName":"Canopy","itemRarity":"Common"},{"skinId":10555,"itemName":"AK117","skinName":"Card Armor","itemRarity":"Rare"},{"skinId":3715,"itemName":"AK117","skinName":"Chain Link","itemRarity":"Common"},{"skinId":3713,"itemName":"AK117","skinName":"China Lake","itemRarity":"Common"},{"skinId":3761,"itemName":"AK117","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":874,"itemName":"AK117","skinName":"Color Burst","itemRarity":"Rare"},{"skinId":3709,"itemName":"AK117","skinName":"Commando","itemRarity":"Common"},{"skinId":361,"itemName":"AK117","skinName":"Copperhead","itemRarity":"Rare"},{"skinId":9524,"itemName":"AK117","skinName":"Cosmic Wave","itemRarity":"Rare"},{"skinId":8139,"itemName":"AK117","skinName":"Crackle","itemRarity":"Uncommon"},{"skinId":3723,"itemName":"AK117","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":130,"itemName":"AK117","skinName":"Cubic Illusion","itemRarity":"Rare"},{"skinId":7637,"itemName":"AK117","skinName":"Cyberline","itemRarity":"Rare"},{"skinId":7047,"itemName":"AK117","skinName":"Damascus","itemRarity":"Common"},{"skinId":3739,"itemName":"AK117","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":371,"itemName":"AK117","skinName":"Dark Fiber","itemRarity":"Uncommon"},{"skinId":199,"itemName":"AK117","skinName":"Dark Victorian","itemRarity":"Rare"},{"skinId":2459,"itemName":"AK117","skinName":"Deep Forest","itemRarity":"Rare"},{"skinId":429,"itemName":"AK117","skinName":"Default","itemRarity":"Common"},{"skinId":11211,"itemName":"AK117","skinName":"Depth Metal","itemRarity":"Rare"},{"skinId":3744,"itemName":"AK117","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":3749,"itemName":"AK117","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":3015,"itemName":"AK117","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8520,"itemName":"AK117","skinName":"Diamond","itemRarity":"Common"},{"skinId":3718,"itemName":"AK117","skinName":"Dirt","itemRarity":"Common"},{"skinId":10282,"itemName":"AK117","skinName":"Duct Tape","itemRarity":"Uncommon"},{"skinId":10527,"itemName":"AK117","skinName":"Emergence","itemRarity":"Epic"},{"skinId":510,"itemName":"AK117","skinName":"Evil Chip","itemRarity":"Rare"},{"skinId":3741,"itemName":"AK117","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":3742,"itemName":"AK117","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":69,"itemName":"AK117","skinName":"Flowing Bronze","itemRarity":"Rare"},{"skinId":3726,"itemName":"AK117","skinName":"Foliage","itemRarity":"Common"},{"skinId":2026,"itemName":"AK117","skinName":"Frostbite","itemRarity":"Uncommon"},{"skinId":3729,"itemName":"AK117","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":857,"itemName":"AK117","skinName":"Galvanized","itemRarity":"Rare"},{"skinId":3766,"itemName":"AK117","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":3765,"itemName":"AK117","skinName":"Gecko","itemRarity":"Common"},{"skinId":3767,"itemName":"AK117","skinName":"Gold","itemRarity":"Common"},{"skinId":2866,"itemName":"AK117","skinName":"Gray Skies","itemRarity":"Uncommon"},{"skinId":875,"itemName":"AK117","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":3016,"itemName":"AK117","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":694,"itemName":"AK117","skinName":"Headless Rider","itemRarity":"Rare"},{"skinId":2198,"itemName":"AK117","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":1380,"itemName":"AK117","skinName":"Holiday Ribbons","itemRarity":"Uncommon"},{"skinId":967,"itemName":"AK117","skinName":"Holidays","itemRarity":"Legendary"},{"skinId":3730,"itemName":"AK117","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":8956,"itemName":"AK117","skinName":"Icefall","itemRarity":"Rare"},{"skinId":7881,"itemName":"AK117","skinName":"Kapow","itemRarity":"Uncommon"},{"skinId":3752,"itemName":"AK117","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":2333,"itemName":"AK117","skinName":"Kit Bag","itemRarity":"Epic"},{"skinId":3759,"itemName":"AK117","skinName":"Komodo","itemRarity":"Common"},{"skinId":503,"itemName":"AK117","skinName":"MacTavish","itemRarity":"Rare"},{"skinId":502,"itemName":"AK117","skinName":"Magic Bull","itemRarity":"Rare"},{"skinId":496,"itemName":"AK117","skinName":"Magmacomb","itemRarity":"Epic"},{"skinId":3751,"itemName":"AK117","skinName":"Marshland","itemRarity":"Common"},{"skinId":670,"itemName":"AK117","skinName":"Medieval","itemRarity":"Epic"},{"skinId":1973,"itemName":"AK117","skinName":"Melon","itemRarity":"Uncommon"},{"skinId":1821,"itemName":"AK117","skinName":"Meltdown","itemRarity":"Legendary"},{"skinId":1461,"itemName":"AK117","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":302,"itemName":"AK117","skinName":"Mettle","itemRarity":"Uncommon"},{"skinId":3748,"itemName":"AK117","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":8703,"itemName":"AK117","skinName":"Moonstone","itemRarity":"Epic"},{"skinId":3711,"itemName":"AK117","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":3719,"itemName":"AK117","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":3738,"itemName":"AK117","skinName":"Mudslide","itemRarity":"Common"},{"skinId":11495,"itemName":"AK117","skinName":"Munitions","itemRarity":"Epic"},{"skinId":7265,"itemName":"AK117","skinName":"Neon Lotus","itemRarity":"Epic"},{"skinId":3724,"itemName":"AK117","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":3716,"itemName":"AK117","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":3755,"itemName":"AK117","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":7697,"itemName":"AK117","skinName":"Outcast","itemRarity":"Epic"},{"skinId":3737,"itemName":"AK117","skinName":"Overgrown","itemRarity":"Common"},{"skinId":8500,"itemName":"AK117","skinName":"Permafrost","itemRarity":"Rare"},{"skinId":2550,"itemName":"AK117","skinName":"Persisted","itemRarity":"Rare"},{"skinId":9996,"itemName":"AK117","skinName":"Phantom Limb","itemRarity":"Rare"},{"skinId":3762,"itemName":"AK117","skinName":"Pink Python","itemRarity":"Common"},{"skinId":3714,"itemName":"AK117","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":3712,"itemName":"AK117","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":3768,"itemName":"AK117","skinName":"Platinum","itemRarity":"Common"},{"skinId":6219,"itemName":"AK117","skinName":"Propaganda","itemRarity":"Rare"},{"skinId":3757,"itemName":"AK117","skinName":"Python","itemRarity":"Common"},{"skinId":1649,"itemName":"AK117","skinName":"Radioactive","itemRarity":"Rare"},{"skinId":3758,"itemName":"AK117","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":3745,"itemName":"AK117","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":2199,"itemName":"AK117","skinName":"Reindeer","itemRarity":"Uncommon"},{"skinId":10264,"itemName":"AK117","skinName":"Revolt","itemRarity":"Epic"},{"skinId":3710,"itemName":"AK117","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":7289,"itemName":"AK117","skinName":"Royal Flush","itemRarity":"Rare"},{"skinId":3731,"itemName":"AK117","skinName":"Ruins","itemRarity":"Common"},{"skinId":3750,"itemName":"AK117","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":5926,"itemName":"AK117","skinName":"Sewed Snake","itemRarity":"Rare"},{"skinId":3736,"itemName":"AK117","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":10939,"itemName":"AK117","skinName":"Side Scale","itemRarity":"Rare"},{"skinId":2258,"itemName":"AK117","skinName":"Slate","itemRarity":"Uncommon"},{"skinId":290,"itemName":"AK117","skinName":"Smart Rifle","itemRarity":"Epic"},{"skinId":3717,"itemName":"AK117","skinName":"Smoke","itemRarity":"Common"},{"skinId":2592,"itemName":"AK117","skinName":"Snake Bite","itemRarity":"Epic"},{"skinId":9421,"itemName":"AK117","skinName":"Sprite Ops","itemRarity":"Epic"},{"skinId":2837,"itemName":"AK117","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":2704,"itemName":"AK117","skinName":"Stained Steel","itemRarity":"Rare"},{"skinId":1261,"itemName":"AK117","skinName":"Star Camo","itemRarity":"Rare"},{"skinId":7456,"itemName":"AK117","skinName":"Static Electricity","itemRarity":"Rare"},{"skinId":6857,"itemName":"AK117","skinName":"Subtropic","itemRarity":"Epic"},{"skinId":3747,"itemName":"AK117","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":3720,"itemName":"AK117","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":3743,"itemName":"AK117","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":3725,"itemName":"AK117","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":2525,"itemName":"AK117","skinName":"Tree Bark","itemRarity":"Uncommon"},{"skinId":3727,"itemName":"AK117","skinName":"Tundra","itemRarity":"Common"},{"skinId":3728,"itemName":"AK117","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":6805,"itemName":"AK117","skinName":"Upper Hand","itemRarity":"Rare"},{"skinId":11240,"itemName":"AK117","skinName":"VHS Glitch","itemRarity":"Epic"},{"skinId":3754,"itemName":"AK117","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":3753,"itemName":"AK117","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":1321,"itemName":"AK117","skinName":"Year of the Rat","itemRarity":"Epic"},{"skinId":9873,"itemName":"AS VAL","skinName":"Abominable","itemRarity":"Common"},{"skinId":9896,"itemName":"AS VAL","skinName":"Anaconda","itemRarity":"Common"},{"skinId":9866,"itemName":"AS VAL","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":9868,"itemName":"AS VAL","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":9865,"itemName":"AS VAL","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":9855,"itemName":"AS VAL","skinName":"Asphalt","itemRarity":"Common"},{"skinId":9867,"itemName":"AS VAL","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":9854,"itemName":"AS VAL","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":9893,"itemName":"AS VAL","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":9879,"itemName":"AS VAL","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":9897,"itemName":"AS VAL","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":9889,"itemName":"AS VAL","skinName":"Canopy","itemRarity":"Common"},{"skinId":9847,"itemName":"AS VAL","skinName":"Chain Link","itemRarity":"Common"},{"skinId":9845,"itemName":"AS VAL","skinName":"China Lake","itemRarity":"Common"},{"skinId":9894,"itemName":"AS VAL","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":9841,"itemName":"AS VAL","skinName":"Commando","itemRarity":"Common"},{"skinId":9856,"itemName":"AS VAL","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":9902,"itemName":"AS VAL","skinName":"Damascus","itemRarity":"Common"},{"skinId":9872,"itemName":"AS VAL","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":9838,"itemName":"AS VAL","skinName":"Default","itemRarity":"Common"},{"skinId":9877,"itemName":"AS VAL","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":9882,"itemName":"AS VAL","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":9840,"itemName":"AS VAL","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":9903,"itemName":"AS VAL","skinName":"Diamond","itemRarity":"Common"},{"skinId":9851,"itemName":"AS VAL","skinName":"Dirt","itemRarity":"Common"},{"skinId":10470,"itemName":"AS VAL","skinName":"Double Edge","itemRarity":"Mythic"},{"skinId":9874,"itemName":"AS VAL","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":9875,"itemName":"AS VAL","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":9859,"itemName":"AS VAL","skinName":"Foliage","itemRarity":"Common"},{"skinId":9862,"itemName":"AS VAL","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":9899,"itemName":"AS VAL","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":9898,"itemName":"AS VAL","skinName":"Gecko","itemRarity":"Common"},{"skinId":9900,"itemName":"AS VAL","skinName":"Gold","itemRarity":"Common"},{"skinId":9850,"itemName":"AS VAL","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":9863,"itemName":"AS VAL","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":10057,"itemName":"AS VAL","skinName":"Judgement","itemRarity":"Epic"},{"skinId":9885,"itemName":"AS VAL","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":9892,"itemName":"AS VAL","skinName":"Komodo","itemRarity":"Common"},{"skinId":9884,"itemName":"AS VAL","skinName":"Marshland","itemRarity":"Common"},{"skinId":9881,"itemName":"AS VAL","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":9843,"itemName":"AS VAL","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":9852,"itemName":"AS VAL","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":9871,"itemName":"AS VAL","skinName":"Mudslide","itemRarity":"Common"},{"skinId":9857,"itemName":"AS VAL","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":9848,"itemName":"AS VAL","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":9888,"itemName":"AS VAL","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":9870,"itemName":"AS VAL","skinName":"Overgrown","itemRarity":"Common"},{"skinId":9895,"itemName":"AS VAL","skinName":"Pink Python","itemRarity":"Common"},{"skinId":9846,"itemName":"AS VAL","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":9844,"itemName":"AS VAL","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":9901,"itemName":"AS VAL","skinName":"Platinum","itemRarity":"Common"},{"skinId":9890,"itemName":"AS VAL","skinName":"Python","itemRarity":"Common"},{"skinId":9891,"itemName":"AS VAL","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":9878,"itemName":"AS VAL","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":9842,"itemName":"AS VAL","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":9864,"itemName":"AS VAL","skinName":"Ruins","itemRarity":"Common"},{"skinId":9883,"itemName":"AS VAL","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":9869,"itemName":"AS VAL","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":9849,"itemName":"AS VAL","skinName":"Smoke","itemRarity":"Common"},{"skinId":9880,"itemName":"AS VAL","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":9853,"itemName":"AS VAL","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":9876,"itemName":"AS VAL","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":9858,"itemName":"AS VAL","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":9860,"itemName":"AS VAL","skinName":"Tundra","itemRarity":"Common"},{"skinId":9861,"itemName":"AS VAL","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":9887,"itemName":"AS VAL","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":9886,"itemName":"AS VAL","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":333,"itemName":"ASM10","skinName":"1001 Nights","itemRarity":"Uncommon"},{"skinId":3922,"itemName":"ASM10","skinName":"Abominable","itemRarity":"Common"},{"skinId":474,"itemName":"ASM10","skinName":"Abomination","itemRarity":"Rare"},{"skinId":11478,"itemName":"ASM10","skinName":"Ambush","itemRarity":"Uncommon"},{"skinId":3945,"itemName":"ASM10","skinName":"Anaconda","itemRarity":"Common"},{"skinId":3915,"itemName":"ASM10","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":3917,"itemName":"ASM10","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":3914,"itemName":"ASM10","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":3904,"itemName":"ASM10","skinName":"Asphalt","itemRarity":"Common"},{"skinId":2508,"itemName":"ASM10","skinName":"Assembly","itemRarity":"Epic"},{"skinId":3916,"itemName":"ASM10","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":1365,"itemName":"ASM10","skinName":"Bats","itemRarity":"Uncommon"},{"skinId":554,"itemName":"ASM10","skinName":"Black Gold","itemRarity":"Epic"},{"skinId":3903,"itemName":"ASM10","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":2882,"itemName":"ASM10","skinName":"Blood in the Water","itemRarity":"Rare"},{"skinId":3942,"itemName":"ASM10","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":3928,"itemName":"ASM10","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":9047,"itemName":"ASM10","skinName":"Bomb Baby","itemRarity":"Epic"},{"skinId":501,"itemName":"ASM10","skinName":"Brambles","itemRarity":"Rare"},{"skinId":3946,"itemName":"ASM10","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":5917,"itemName":"ASM10","skinName":"Bunker Buster","itemRarity":"Legendary"},{"skinId":3938,"itemName":"ASM10","skinName":"Canopy","itemRarity":"Common"},{"skinId":376,"itemName":"ASM10","skinName":"Canvas","itemRarity":"Rare"},{"skinId":9607,"itemName":"ASM10","skinName":"Carnival","itemRarity":"Rare"},{"skinId":3897,"itemName":"ASM10","skinName":"Chain Link","itemRarity":"Common"},{"skinId":3895,"itemName":"ASM10","skinName":"China Lake","itemRarity":"Common"},{"skinId":3943,"itemName":"ASM10","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":3891,"itemName":"ASM10","skinName":"Commando","itemRarity":"Common"},{"skinId":144,"itemName":"ASM10","skinName":"Copperhead","itemRarity":"Rare"},{"skinId":2777,"itemName":"ASM10","skinName":"Corroded","itemRarity":"Uncommon"},{"skinId":9337,"itemName":"ASM10","skinName":"Cosmic Wave","itemRarity":"Rare"},{"skinId":3905,"itemName":"ASM10","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":508,"itemName":"ASM10","skinName":"Cubic Illusion","itemRarity":"Rare"},{"skinId":7050,"itemName":"ASM10","skinName":"Damascus","itemRarity":"Common"},{"skinId":1637,"itemName":"ASM10","skinName":"Danger Zone","itemRarity":"Rare"},{"skinId":3921,"itemName":"ASM10","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":370,"itemName":"ASM10","skinName":"Dark Fiber","itemRarity":"Uncommon"},{"skinId":7612,"itemName":"ASM10","skinName":"Dark Light","itemRarity":"Rare"},{"skinId":410,"itemName":"ASM10","skinName":"Default","itemRarity":"Common"},{"skinId":3926,"itemName":"ASM10","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":3931,"itemName":"ASM10","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":32,"itemName":"ASM10","skinName":"Desert Snake","itemRarity":"Uncommon"},{"skinId":3019,"itemName":"ASM10","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8523,"itemName":"ASM10","skinName":"Diamond","itemRarity":"Common"},{"skinId":7904,"itemName":"ASM10","skinName":"Direct Heat","itemRarity":"Epic"},{"skinId":3900,"itemName":"ASM10","skinName":"Dirt","itemRarity":"Common"},{"skinId":1546,"itemName":"ASM10","skinName":"Doomed Drake","itemRarity":"Epic"},{"skinId":11181,"itemName":"ASM10","skinName":"Duel","itemRarity":"Uncommon"},{"skinId":1304,"itemName":"ASM10","skinName":"Electric","itemRarity":"Rare"},{"skinId":3923,"itemName":"ASM10","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":3924,"itemName":"ASM10","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":115,"itemName":"ASM10","skinName":"Flowing Bronze","itemRarity":"Rare"},{"skinId":3908,"itemName":"ASM10","skinName":"Foliage","itemRarity":"Common"},{"skinId":6329,"itemName":"ASM10","skinName":"Freight Train","itemRarity":"Rare"},{"skinId":3911,"itemName":"ASM10","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":3948,"itemName":"ASM10","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":3947,"itemName":"ASM10","skinName":"Gecko","itemRarity":"Common"},{"skinId":3949,"itemName":"ASM10","skinName":"Gold","itemRarity":"Common"},{"skinId":6891,"itemName":"ASM10","skinName":"Graceful Blue","itemRarity":"Uncommon"},{"skinId":10886,"itemName":"ASM10","skinName":"Great Wave","itemRarity":"Rare"},{"skinId":3020,"itemName":"ASM10","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":9528,"itemName":"ASM10","skinName":"Hard Tech","itemRarity":"Rare"},{"skinId":785,"itemName":"ASM10","skinName":"Hazardous","itemRarity":"Uncommon"},{"skinId":650,"itemName":"ASM10","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":270,"itemName":"ASM10","skinName":"Heat Stroke","itemRarity":"Epic"},{"skinId":11686,"itemName":"ASM10","skinName":"Horseshoe","itemRarity":"Uncommon"},{"skinId":3912,"itemName":"ASM10","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":1850,"itemName":"ASM10","skinName":"Isometric","itemRarity":"Rare"},{"skinId":596,"itemName":"ASM10","skinName":"Jack Frost","itemRarity":"Uncommon"},{"skinId":617,"itemName":"ASM10","skinName":"Jingle Bells","itemRarity":"Uncommon"},{"skinId":3934,"itemName":"ASM10","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":3941,"itemName":"ASM10","skinName":"Komodo","itemRarity":"Common"},{"skinId":11764,"itemName":"ASM10","skinName":"Leather & Lead","itemRarity":"Rare"},{"skinId":9354,"itemName":"ASM10","skinName":"Light Show","itemRarity":"Uncommon"},{"skinId":3933,"itemName":"ASM10","skinName":"Marshland","itemRarity":"Common"},{"skinId":9066,"itemName":"ASM10","skinName":"Misha","itemRarity":"Epic"},{"skinId":10100,"itemName":"ASM10","skinName":"Mitosis","itemRarity":"Epic"},{"skinId":3930,"itemName":"ASM10","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":3893,"itemName":"ASM10","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":2599,"itemName":"ASM10","skinName":"Moss","itemRarity":"Rare"},{"skinId":3901,"itemName":"ASM10","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":3920,"itemName":"ASM10","skinName":"Mudslide","itemRarity":"Common"},{"skinId":1677,"itemName":"ASM10","skinName":"Neon Green","itemRarity":"Uncommon"},{"skinId":3906,"itemName":"ASM10","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":1422,"itemName":"ASM10","skinName":"Neon Tiger","itemRarity":"Uncommon"},{"skinId":3898,"itemName":"ASM10","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":3937,"itemName":"ASM10","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":2912,"itemName":"ASM10","skinName":"Nuclear Fallout","itemRarity":"Epic"},{"skinId":9517,"itemName":"ASM10","skinName":"Nucleobase","itemRarity":"Rare"},{"skinId":5987,"itemName":"ASM10","skinName":"Old News","itemRarity":"Uncommon"},{"skinId":9593,"itemName":"ASM10","skinName":"Opening Ceremony","itemRarity":"Rare"},{"skinId":3919,"itemName":"ASM10","skinName":"Overgrown","itemRarity":"Common"},{"skinId":3944,"itemName":"ASM10","skinName":"Pink Python","itemRarity":"Common"},{"skinId":3896,"itemName":"ASM10","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":3894,"itemName":"ASM10","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":2049,"itemName":"ASM10","skinName":"Plasma","itemRarity":"Epic"},{"skinId":3950,"itemName":"ASM10","skinName":"Platinum","itemRarity":"Common"},{"skinId":3939,"itemName":"ASM10","skinName":"Python","itemRarity":"Common"},{"skinId":511,"itemName":"ASM10","skinName":"Racing Stripes","itemRarity":"Rare"},{"skinId":3940,"itemName":"ASM10","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":557,"itemName":"ASM10","skinName":"Red","itemRarity":"Uncommon"},{"skinId":3927,"itemName":"ASM10","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":771,"itemName":"ASM10","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":556,"itemName":"ASM10","skinName":"Ribbon Explosion","itemRarity":"Rare"},{"skinId":3892,"itemName":"ASM10","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":3913,"itemName":"ASM10","skinName":"Ruins","itemRarity":"Common"},{"skinId":3932,"itemName":"ASM10","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":284,"itemName":"ASM10","skinName":"Sandbox","itemRarity":"Uncommon"},{"skinId":10558,"itemName":"ASM10","skinName":"Scabbard","itemRarity":"Epic"},{"skinId":3918,"itemName":"ASM10","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":2480,"itemName":"ASM10","skinName":"Sight Unseen","itemRarity":"Rare"},{"skinId":3899,"itemName":"ASM10","skinName":"Smoke","itemRarity":"Common"},{"skinId":1366,"itemName":"ASM10","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":1242,"itemName":"ASM10","skinName":"Steel Cut","itemRarity":"Rare"},{"skinId":6254,"itemName":"ASM10","skinName":"Strafing Run","itemRarity":"Epic"},{"skinId":3929,"itemName":"ASM10","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":463,"itemName":"ASM10","skinName":"Swamped","itemRarity":"Uncommon"},{"skinId":3902,"itemName":"ASM10","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":3925,"itemName":"ASM10","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":10230,"itemName":"ASM10","skinName":"Tourniquet","itemRarity":"Uncommon"},{"skinId":3907,"itemName":"ASM10","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":3909,"itemName":"ASM10","skinName":"Tundra","itemRarity":"Common"},{"skinId":102,"itemName":"ASM10","skinName":"Turquoise","itemRarity":"Rare"},{"skinId":6667,"itemName":"ASM10","skinName":"Undergrowth","itemRarity":"Uncommon"},{"skinId":3910,"itemName":"ASM10","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":6806,"itemName":"ASM10","skinName":"Upper Hand","itemRarity":"Rare"},{"skinId":11736,"itemName":"ASM10","skinName":"Volution","itemRarity":"Epic"},{"skinId":3936,"itemName":"ASM10","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":3935,"itemName":"ASM10","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":6020,"itemName":"ASM10","skinName":"Woodland","itemRarity":"Rare"},{"skinId":793,"itemName":"ASM10","skinName":"Yellow Snow","itemRarity":"Uncommon"},{"skinId":1451,"itemName":"Arctic .50","skinName":"1001 Nights","itemRarity":"Rare"},{"skinId":4280,"itemName":"Arctic .50","skinName":"Abominable","itemRarity":"Common"},{"skinId":1859,"itemName":"Arctic .50","skinName":"Afterlife","itemRarity":"Rare"},{"skinId":8406,"itemName":"Arctic .50","skinName":"Alarm","itemRarity":"Uncommon"},{"skinId":4303,"itemName":"Arctic .50","skinName":"Anaconda","itemRarity":"Common"},{"skinId":4273,"itemName":"Arctic .50","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":4275,"itemName":"Arctic .50","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":4272,"itemName":"Arctic .50","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":24,"itemName":"Arctic .50","skinName":"Ashen Viper","itemRarity":"Rare"},{"skinId":4262,"itemName":"Arctic .50","skinName":"Asphalt","itemRarity":"Common"},{"skinId":4274,"itemName":"Arctic .50","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":9187,"itemName":"Arctic .50","skinName":"Backdraft","itemRarity":"Rare"},{"skinId":787,"itemName":"Arctic .50","skinName":"Bats","itemRarity":"Uncommon"},{"skinId":10647,"itemName":"Arctic .50","skinName":"Birthstone","itemRarity":"Rare"},{"skinId":1854,"itemName":"Arctic .50","skinName":"Black Gold","itemRarity":"Epic"},{"skinId":10374,"itemName":"Arctic .50","skinName":"Black Marble","itemRarity":"Uncommon"},{"skinId":4261,"itemName":"Arctic .50","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":6197,"itemName":"Arctic .50","skinName":"Blood in the Water","itemRarity":"Rare"},{"skinId":6283,"itemName":"Arctic .50","skinName":"Bloodline","itemRarity":"Rare"},{"skinId":4300,"itemName":"Arctic .50","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":4286,"itemName":"Arctic .50","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":1004,"itemName":"Arctic .50","skinName":"Brushed Green","itemRarity":"Uncommon"},{"skinId":11552,"itemName":"Arctic .50","skinName":"Buckles & Spurs","itemRarity":"Rare"},{"skinId":11436,"itemName":"Arctic .50","skinName":"Buckskin","itemRarity":"Rare"},{"skinId":4304,"itemName":"Arctic .50","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":9005,"itemName":"Arctic .50","skinName":"Burial Ground","itemRarity":"Rare"},{"skinId":6691,"itemName":"Arctic .50","skinName":"Cannibal","itemRarity":"Epic"},{"skinId":4296,"itemName":"Arctic .50","skinName":"Canopy","itemRarity":"Common"},{"skinId":10553,"itemName":"Arctic .50","skinName":"Card Armor","itemRarity":"Rare"},{"skinId":4255,"itemName":"Arctic .50","skinName":"Chain Link","itemRarity":"Common"},{"skinId":4253,"itemName":"Arctic .50","skinName":"China Lake","itemRarity":"Common"},{"skinId":4301,"itemName":"Arctic .50","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":4249,"itemName":"Arctic .50","skinName":"Commando","itemRarity":"Common"},{"skinId":147,"itemName":"Arctic .50","skinName":"Copperhead","itemRarity":"Rare"},{"skinId":7655,"itemName":"Arctic .50","skinName":"Court Blue","itemRarity":"Uncommon"},{"skinId":4263,"itemName":"Arctic .50","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7056,"itemName":"Arctic .50","skinName":"Damascus","itemRarity":"Common"},{"skinId":4279,"itemName":"Arctic .50","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":9435,"itemName":"Arctic .50","skinName":"Data Blocks","itemRarity":"Uncommon"},{"skinId":426,"itemName":"Arctic .50","skinName":"Default","itemRarity":"Common"},{"skinId":4284,"itemName":"Arctic .50","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":4289,"itemName":"Arctic .50","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":50,"itemName":"Arctic .50","skinName":"Desert Snake","itemRarity":"Uncommon"},{"skinId":3037,"itemName":"Arctic .50","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":2381,"itemName":"Arctic .50","skinName":"Desperate Measures","itemRarity":"Rare"},{"skinId":8529,"itemName":"Arctic .50","skinName":"Diamond","itemRarity":"Common"},{"skinId":4258,"itemName":"Arctic .50","skinName":"Dirt","itemRarity":"Common"},{"skinId":5928,"itemName":"Arctic .50","skinName":"Eagle Feather","itemRarity":"Uncommon"},{"skinId":772,"itemName":"Arctic .50","skinName":"Easter '20","itemRarity":"Uncommon"},{"skinId":514,"itemName":"Arctic .50","skinName":"Evil Chip","itemRarity":"Rare"},{"skinId":11653,"itemName":"Arctic .50","skinName":"Exosphere","itemRarity":"Epic"},{"skinId":4281,"itemName":"Arctic .50","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":4282,"itemName":"Arctic .50","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":1724,"itemName":"Arctic .50","skinName":"Flesh Bite","itemRarity":"Uncommon"},{"skinId":4266,"itemName":"Arctic .50","skinName":"Foliage","itemRarity":"Common"},{"skinId":10964,"itemName":"Arctic .50","skinName":"Foxfire","itemRarity":"Legendary"},{"skinId":117,"itemName":"Arctic .50","skinName":"Frontier","itemRarity":"Rare"},{"skinId":4269,"itemName":"Arctic .50","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":4306,"itemName":"Arctic .50","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":4305,"itemName":"Arctic .50","skinName":"Gecko","itemRarity":"Common"},{"skinId":1098,"itemName":"Arctic .50","skinName":"Glacier","itemRarity":"Rare"},{"skinId":4307,"itemName":"Arctic .50","skinName":"Gold","itemRarity":"Common"},{"skinId":10239,"itemName":"Arctic .50","skinName":"Golden Age","itemRarity":"Rare"},{"skinId":10474,"itemName":"Arctic .50","skinName":"Graveyard Watch","itemRarity":"Epic"},{"skinId":7707,"itemName":"Arctic .50","skinName":"Green Terror","itemRarity":"Rare"},{"skinId":2202,"itemName":"Arctic .50","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":3038,"itemName":"Arctic .50","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":459,"itemName":"Arctic .50","skinName":"Hazardous","itemRarity":"Uncommon"},{"skinId":1450,"itemName":"Arctic .50","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":8,"itemName":"Arctic .50","skinName":"Heat Stroke","itemRarity":"Epic"},{"skinId":7508,"itemName":"Arctic .50","skinName":"High Voltage","itemRarity":"Epic"},{"skinId":1446,"itemName":"Arctic .50","skinName":"Holiday Ribbons","itemRarity":"Uncommon"},{"skinId":11687,"itemName":"Arctic .50","skinName":"Horseshoe","itemRarity":"Uncommon"},{"skinId":2994,"itemName":"Arctic .50","skinName":"Hot Spot","itemRarity":"Epic"},{"skinId":4270,"itemName":"Arctic .50","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":11754,"itemName":"Arctic .50","skinName":"Iron Hunter","itemRarity":"Rare"},{"skinId":385,"itemName":"Arctic .50","skinName":"Jungle Terrain","itemRarity":"Uncommon"},{"skinId":4292,"itemName":"Arctic .50","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":11026,"itemName":"Arctic .50","skinName":"Koi Pond","itemRarity":"Epic"},{"skinId":4299,"itemName":"Arctic .50","skinName":"Komodo","itemRarity":"Common"},{"skinId":10329,"itemName":"Arctic .50","skinName":"Last Will","itemRarity":"Rare"},{"skinId":572,"itemName":"Arctic .50","skinName":"Lemon Drop Candy","itemRarity":"Rare"},{"skinId":854,"itemName":"Arctic .50","skinName":"Lunar New Year","itemRarity":"Rare"},{"skinId":70,"itemName":"Arctic .50","skinName":"Magic Bull","itemRarity":"Rare"},{"skinId":4291,"itemName":"Arctic .50","skinName":"Marshland","itemRarity":"Common"},{"skinId":1513,"itemName":"Arctic .50","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":1354,"itemName":"Arctic .50","skinName":"Mettle","itemRarity":"Uncommon"},{"skinId":4288,"itemName":"Arctic .50","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":4251,"itemName":"Arctic .50","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":4259,"itemName":"Arctic .50","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":4278,"itemName":"Arctic .50","skinName":"Mudslide","itemRarity":"Common"},{"skinId":4264,"itemName":"Arctic .50","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":4256,"itemName":"Arctic .50","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":4295,"itemName":"Arctic .50","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":7914,"itemName":"Arctic .50","skinName":"Nonconformist","itemRarity":"Uncommon"},{"skinId":1489,"itemName":"Arctic .50","skinName":"Open Circuit","itemRarity":"Rare"},{"skinId":4277,"itemName":"Arctic .50","skinName":"Overgrown","itemRarity":"Common"},{"skinId":4302,"itemName":"Arctic .50","skinName":"Pink Python","itemRarity":"Common"},{"skinId":4254,"itemName":"Arctic .50","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":4252,"itemName":"Arctic .50","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":6395,"itemName":"Arctic .50","skinName":"Plated Red","itemRarity":"Uncommon"},{"skinId":4308,"itemName":"Arctic .50","skinName":"Platinum","itemRarity":"Common"},{"skinId":4297,"itemName":"Arctic .50","skinName":"Python","itemRarity":"Common"},{"skinId":4298,"itemName":"Arctic .50","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":2899,"itemName":"Arctic .50","skinName":"Record Scratch","itemRarity":"Uncommon"},{"skinId":558,"itemName":"Arctic .50","skinName":"Red","itemRarity":"Uncommon"},{"skinId":4285,"itemName":"Arctic .50","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":579,"itemName":"Arctic .50","skinName":"Red Triangle","itemRarity":"Uncommon"},{"skinId":901,"itemName":"Arctic .50","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":4250,"itemName":"Arctic .50","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":7293,"itemName":"Arctic .50","skinName":"Royal Flush","itemRarity":"Rare"},{"skinId":6086,"itemName":"Arctic .50","skinName":"Ruby","itemRarity":"Epic"},{"skinId":4271,"itemName":"Arctic .50","skinName":"Ruins","itemRarity":"Common"},{"skinId":11203,"itemName":"Arctic .50","skinName":"Sakura Storm","itemRarity":"Epic"},{"skinId":4290,"itemName":"Arctic .50","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":152,"itemName":"Arctic .50","skinName":"Sandbox","itemRarity":"Uncommon"},{"skinId":4276,"itemName":"Arctic .50","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":11060,"itemName":"Arctic .50","skinName":"Side Scale","itemRarity":"Rare"},{"skinId":2259,"itemName":"Arctic .50","skinName":"Slate","itemRarity":"Uncommon"},{"skinId":4257,"itemName":"Arctic .50","skinName":"Smoke","itemRarity":"Common"},{"skinId":9705,"itemName":"Arctic .50","skinName":"Splinterburst","itemRarity":"Rare"},{"skinId":11767,"itemName":"Arctic .50","skinName":"Sprite Ops","itemRarity":"Epic"},{"skinId":1458,"itemName":"Arctic .50","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":491,"itemName":"Arctic .50","skinName":"Steel Blue","itemRarity":"Epic"},{"skinId":6865,"itemName":"Arctic .50","skinName":"Subterfuge","itemRarity":"Rare"},{"skinId":4287,"itemName":"Arctic .50","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":4260,"itemName":"Arctic .50","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":4283,"itemName":"Arctic .50","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":4265,"itemName":"Arctic .50","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":1356,"itemName":"Arctic .50","skinName":"Trick-or-Treat","itemRarity":"Uncommon"},{"skinId":4267,"itemName":"Arctic .50","skinName":"Tundra","itemRarity":"Common"},{"skinId":916,"itemName":"Arctic .50","skinName":"Ukiyo-e","itemRarity":"Rare"},{"skinId":8448,"itemName":"Arctic .50","skinName":"Uncertain","itemRarity":"Uncommon"},{"skinId":4268,"itemName":"Arctic .50","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":8370,"itemName":"Arctic .50","skinName":"Visceral","itemRarity":"Epic"},{"skinId":4294,"itemName":"Arctic .50","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":4293,"itemName":"Arctic .50","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":1803,"itemName":"Arctic .50","skinName":"White Lies","itemRarity":"Uncommon"},{"skinId":6256,"itemName":"Arctic .50","skinName":"Woodland","itemRarity":"Rare"},{"skinId":770,"itemName":"Arctic .50","skinName":"Yellow Snow","itemRarity":"Uncommon"},{"skinId":8409,"itemName":"Arctic .50","skinName":"Zero-G","itemRarity":"Epic"},{"skinId":1312,"itemName":"Arctic .50","skinName":"Zombie Gene","itemRarity":"Uncommon"},{"skinId":7007,"itemName":"Axe","skinName":"Abominable","itemRarity":"Common"},{"skinId":7030,"itemName":"Axe","skinName":"Anaconda","itemRarity":"Common"},{"skinId":7000,"itemName":"Axe","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":7002,"itemName":"Axe","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":6999,"itemName":"Axe","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":6989,"itemName":"Axe","skinName":"Asphalt","itemRarity":"Common"},{"skinId":7001,"itemName":"Axe","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":6794,"itemName":"Axe","skinName":"Azurite","itemRarity":"Epic"},{"skinId":7304,"itemName":"Axe","skinName":"Black Top","itemRarity":"Uncommon"},{"skinId":6988,"itemName":"Axe","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":10225,"itemName":"Axe","skinName":"Bloody Vengeance","itemRarity":"Epic"},{"skinId":7027,"itemName":"Axe","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":7013,"itemName":"Axe","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":10882,"itemName":"Axe","skinName":"Bubblegum","itemRarity":"Epic"},{"skinId":11554,"itemName":"Axe","skinName":"Buckles & Spurs","itemRarity":"Rare"},{"skinId":7031,"itemName":"Axe","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":7023,"itemName":"Axe","skinName":"Canopy","itemRarity":"Common"},{"skinId":6981,"itemName":"Axe","skinName":"Chain Link","itemRarity":"Common"},{"skinId":6979,"itemName":"Axe","skinName":"China Lake","itemRarity":"Common"},{"skinId":7028,"itemName":"Axe","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":7702,"itemName":"Axe","skinName":"Citrine","itemRarity":"Epic"},{"skinId":6975,"itemName":"Axe","skinName":"Commando","itemRarity":"Common"},{"skinId":6990,"itemName":"Axe","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7639,"itemName":"Axe","skinName":"Cyberline","itemRarity":"Rare"},{"skinId":7036,"itemName":"Axe","skinName":"Damascus","itemRarity":"Common"},{"skinId":7006,"itemName":"Axe","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":10482,"itemName":"Axe","skinName":"Dark Band","itemRarity":"Rare"},{"skinId":7011,"itemName":"Axe","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":7016,"itemName":"Axe","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":6974,"itemName":"Axe","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8508,"itemName":"Axe","skinName":"Diamond","itemRarity":"Common"},{"skinId":6985,"itemName":"Axe","skinName":"Dirt","itemRarity":"Common"},{"skinId":11039,"itemName":"Axe","skinName":"Dragonfly","itemRarity":"Uncommon"},{"skinId":7008,"itemName":"Axe","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":7009,"itemName":"Axe","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":9329,"itemName":"Axe","skinName":"Firewall","itemRarity":"Epic"},{"skinId":6993,"itemName":"Axe","skinName":"Foliage","itemRarity":"Common"},{"skinId":6996,"itemName":"Axe","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":7033,"itemName":"Axe","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":7032,"itemName":"Axe","skinName":"Gecko","itemRarity":"Common"},{"skinId":7539,"itemName":"Axe","skinName":"Glitch","itemRarity":"Uncommon"},{"skinId":7034,"itemName":"Axe","skinName":"Gold","itemRarity":"Common"},{"skinId":8984,"itemName":"Axe","skinName":"Gold Bar","itemRarity":"Epic"},{"skinId":6984,"itemName":"Axe","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":7344,"itemName":"Axe","skinName":"Heliotrope","itemRarity":"Uncommon"},{"skinId":8899,"itemName":"Axe","skinName":"Hephaestus","itemRarity":"Epic"},{"skinId":6997,"itemName":"Axe","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":8949,"itemName":"Axe","skinName":"Ice Crystal","itemRarity":"Epic"},{"skinId":7019,"itemName":"Axe","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":7026,"itemName":"Axe","skinName":"Komodo","itemRarity":"Common"},{"skinId":470,"itemName":"Axe","skinName":"Lava","itemRarity":"Epic"},{"skinId":9630,"itemName":"Axe","skinName":"Liquid Mercury","itemRarity":"Rare"},{"skinId":7018,"itemName":"Axe","skinName":"Marshland","itemRarity":"Common"},{"skinId":11058,"itemName":"Axe","skinName":"Metallurgy","itemRarity":"Epic"},{"skinId":7015,"itemName":"Axe","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":6977,"itemName":"Axe","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":6986,"itemName":"Axe","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":7005,"itemName":"Axe","skinName":"Mudslide","itemRarity":"Common"},{"skinId":11497,"itemName":"Axe","skinName":"Munitions","itemRarity":"Epic"},{"skinId":7621,"itemName":"Axe","skinName":"Neon Army","itemRarity":"Uncommon"},{"skinId":6991,"itemName":"Axe","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":6982,"itemName":"Axe","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":7022,"itemName":"Axe","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":8284,"itemName":"Axe","skinName":"Noir","itemRarity":"Epic"},{"skinId":7004,"itemName":"Axe","skinName":"Overgrown","itemRarity":"Common"},{"skinId":7029,"itemName":"Axe","skinName":"Pink Python","itemRarity":"Common"},{"skinId":6980,"itemName":"Axe","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":6978,"itemName":"Axe","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":7035,"itemName":"Axe","skinName":"Platinum","itemRarity":"Common"},{"skinId":7024,"itemName":"Axe","skinName":"Python","itemRarity":"Common"},{"skinId":9584,"itemName":"Axe","skinName":"Quartz","itemRarity":"Epic"},{"skinId":7025,"itemName":"Axe","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":7012,"itemName":"Axe","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":6976,"itemName":"Axe","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":6088,"itemName":"Axe","skinName":"Ruby","itemRarity":"Epic"},{"skinId":6998,"itemName":"Axe","skinName":"Ruins","itemRarity":"Common"},{"skinId":10813,"itemName":"Axe","skinName":"Sakura Storm","itemRarity":"Epic"},{"skinId":7017,"itemName":"Axe","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":7003,"itemName":"Axe","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":7409,"itemName":"Axe","skinName":"Sleight of Hand","itemRarity":"Rare"},{"skinId":6983,"itemName":"Axe","skinName":"Smoke","itemRarity":"Common"},{"skinId":8773,"itemName":"Axe","skinName":"Snow Stream","itemRarity":"Rare"},{"skinId":3046,"itemName":"Axe","skinName":"Strafing Run","itemRarity":"Epic"},{"skinId":7014,"itemName":"Axe","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":6987,"itemName":"Axe","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":8216,"itemName":"Axe","skinName":"Target Lock","itemRarity":"Epic"},{"skinId":7010,"itemName":"Axe","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":6697,"itemName":"Axe","skinName":"Tiger's Eye","itemRarity":"Epic"},{"skinId":6992,"itemName":"Axe","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":6994,"itemName":"Axe","skinName":"Tundra","itemRarity":"Common"},{"skinId":6995,"itemName":"Axe","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":7021,"itemName":"Axe","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":7020,"itemName":"Axe","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":7471,"itemName":"Axe","skinName":"Wicked Whisper","itemRarity":"Epic"},{"skinId":8728,"itemName":"Axe","skinName":"Winterwood","itemRarity":"Rare"},{"skinId":646,"itemName":"BK57","skinName":"1001 Nights","itemRarity":"Rare"},{"skinId":3862,"itemName":"BK57","skinName":"Abominable","itemRarity":"Common"},{"skinId":3885,"itemName":"BK57","skinName":"Anaconda","itemRarity":"Common"},{"skinId":415,"itemName":"BK57","skinName":"Ancient Runes","itemRarity":"Rare"},{"skinId":3855,"itemName":"BK57","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":3857,"itemName":"BK57","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":3854,"itemName":"BK57","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":36,"itemName":"BK57","skinName":"Ashen Viper","itemRarity":"Rare"},{"skinId":3844,"itemName":"BK57","skinName":"Asphalt","itemRarity":"Common"},{"skinId":3856,"itemName":"BK57","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":619,"itemName":"BK57","skinName":"Balloons","itemRarity":"Rare"},{"skinId":10373,"itemName":"BK57","skinName":"Black Marble","itemRarity":"Uncommon"},{"skinId":7306,"itemName":"BK57","skinName":"Black Top","itemRarity":"Uncommon"},{"skinId":3843,"itemName":"BK57","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":3882,"itemName":"BK57","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":3868,"itemName":"BK57","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":2913,"itemName":"BK57","skinName":"Boom Scrawl","itemRarity":"Rare"},{"skinId":3070,"itemName":"BK57","skinName":"Brushed Red","itemRarity":"Uncommon"},{"skinId":3886,"itemName":"BK57","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":3878,"itemName":"BK57","skinName":"Canopy","itemRarity":"Common"},{"skinId":8198,"itemName":"BK57","skinName":"Cerulean","itemRarity":"Uncommon"},{"skinId":3837,"itemName":"BK57","skinName":"Chain Link","itemRarity":"Common"},{"skinId":2047,"itemName":"BK57","skinName":"Championship Purple","itemRarity":"Epic"},{"skinId":3835,"itemName":"BK57","skinName":"China Lake","itemRarity":"Common"},{"skinId":3883,"itemName":"BK57","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":3831,"itemName":"BK57","skinName":"Commando","itemRarity":"Common"},{"skinId":360,"itemName":"BK57","skinName":"Copperhead","itemRarity":"Rare"},{"skinId":3845,"itemName":"BK57","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":498,"itemName":"BK57","skinName":"Cubic Illusion","itemRarity":"Rare"},{"skinId":7049,"itemName":"BK57","skinName":"Damascus","itemRarity":"Common"},{"skinId":3861,"itemName":"BK57","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":1199,"itemName":"BK57","skinName":"Dark Fiber","itemRarity":"Uncommon"},{"skinId":10029,"itemName":"BK57","skinName":"Data Miner","itemRarity":"Epic"},{"skinId":6077,"itemName":"BK57","skinName":"Default","itemRarity":"Common"},{"skinId":3866,"itemName":"BK57","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":3871,"itemName":"BK57","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":21,"itemName":"BK57","skinName":"Desert Snake","itemRarity":"Uncommon"},{"skinId":3022,"itemName":"BK57","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8522,"itemName":"BK57","skinName":"Diamond","itemRarity":"Common"},{"skinId":3840,"itemName":"BK57","skinName":"Dirt","itemRarity":"Common"},{"skinId":186,"itemName":"BK57","skinName":"Evil Chip","itemRarity":"Rare"},{"skinId":2433,"itemName":"BK57","skinName":"Extinction","itemRarity":"Rare"},{"skinId":3863,"itemName":"BK57","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":1203,"itemName":"BK57","skinName":"Fashion Purple","itemRarity":"Uncommon"},{"skinId":3864,"itemName":"BK57","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":6655,"itemName":"BK57","skinName":"Fiber Mesh","itemRarity":"Rare"},{"skinId":2067,"itemName":"BK57","skinName":"Firecracker","itemRarity":"Epic"},{"skinId":3848,"itemName":"BK57","skinName":"Foliage","itemRarity":"Common"},{"skinId":6623,"itemName":"BK57","skinName":"Forest Felt","itemRarity":"Uncommon"},{"skinId":2028,"itemName":"BK57","skinName":"Frostbite","itemRarity":"Uncommon"},{"skinId":3851,"itemName":"BK57","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":3888,"itemName":"BK57","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":3887,"itemName":"BK57","skinName":"Gecko","itemRarity":"Common"},{"skinId":2538,"itemName":"BK57","skinName":"Gimmick","itemRarity":"Epic"},{"skinId":8130,"itemName":"BK57","skinName":"Going Kawaii","itemRarity":"Epic"},{"skinId":3889,"itemName":"BK57","skinName":"Gold","itemRarity":"Common"},{"skinId":10784,"itemName":"BK57","skinName":"Great Wave","itemRarity":"Rare"},{"skinId":2203,"itemName":"BK57","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":10959,"itemName":"BK57","skinName":"Guardian Spirit","itemRarity":"Epic"},{"skinId":3023,"itemName":"BK57","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":675,"itemName":"BK57","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":2437,"itemName":"BK57","skinName":"Hemophiliac","itemRarity":"Uncommon"},{"skinId":3852,"itemName":"BK57","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":238,"itemName":"BK57","skinName":"Industrial Revolution","itemRarity":"Rare"},{"skinId":592,"itemName":"BK57","skinName":"Jack Frost","itemRarity":"Uncommon"},{"skinId":612,"itemName":"BK57","skinName":"Jingle Bells","itemRarity":"Uncommon"},{"skinId":3874,"itemName":"BK57","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":3881,"itemName":"BK57","skinName":"Komodo","itemRarity":"Common"},{"skinId":278,"itemName":"BK57","skinName":"Low Frequency","itemRarity":"Rare"},{"skinId":2826,"itemName":"BK57","skinName":"Lunar New Year","itemRarity":"Rare"},{"skinId":775,"itemName":"BK57","skinName":"Malware","itemRarity":"Uncommon"},{"skinId":497,"itemName":"BK57","skinName":"Mardi Gras","itemRarity":"Rare"},{"skinId":3873,"itemName":"BK57","skinName":"Marshland","itemRarity":"Common"},{"skinId":1963,"itemName":"BK57","skinName":"Mechanized Rain","itemRarity":"Rare"},{"skinId":135,"itemName":"BK57","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":3870,"itemName":"BK57","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":3833,"itemName":"BK57","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":3841,"itemName":"BK57","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":3860,"itemName":"BK57","skinName":"Mudslide","itemRarity":"Common"},{"skinId":1679,"itemName":"BK57","skinName":"Neon Green","itemRarity":"Uncommon"},{"skinId":3846,"itemName":"BK57","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":1031,"itemName":"BK57","skinName":"New Year '20","itemRarity":"Epic"},{"skinId":3838,"itemName":"BK57","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":3877,"itemName":"BK57","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":6417,"itemName":"BK57","skinName":"Nuclear Fallout","itemRarity":"Epic"},{"skinId":2871,"itemName":"BK57","skinName":"Obstacle","itemRarity":"Rare"},{"skinId":6546,"itemName":"BK57","skinName":"Odyssey","itemRarity":"Epic"},{"skinId":3859,"itemName":"BK57","skinName":"Overgrown","itemRarity":"Common"},{"skinId":3884,"itemName":"BK57","skinName":"Pink Python","itemRarity":"Common"},{"skinId":3836,"itemName":"BK57","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":3834,"itemName":"BK57","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":6393,"itemName":"BK57","skinName":"Plated Red","itemRarity":"Uncommon"},{"skinId":3890,"itemName":"BK57","skinName":"Platinum","itemRarity":"Common"},{"skinId":297,"itemName":"BK57","skinName":"Purple Core","itemRarity":"Rare"},{"skinId":3879,"itemName":"BK57","skinName":"Python","itemRarity":"Common"},{"skinId":3880,"itemName":"BK57","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":3867,"itemName":"BK57","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":7240,"itemName":"BK57","skinName":"Reflective","itemRarity":"Rare"},{"skinId":777,"itemName":"BK57","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":3832,"itemName":"BK57","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":3853,"itemName":"BK57","skinName":"Ruins","itemRarity":"Common"},{"skinId":3872,"itemName":"BK57","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":1193,"itemName":"BK57","skinName":"Sandbox","itemRarity":"Uncommon"},{"skinId":3858,"itemName":"BK57","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":7408,"itemName":"BK57","skinName":"Sleight of Hand","itemRarity":"Rare"},{"skinId":3839,"itemName":"BK57","skinName":"Smoke","itemRarity":"Common"},{"skinId":9105,"itemName":"BK57","skinName":"Space Race","itemRarity":"Legendary"},{"skinId":654,"itemName":"BK57","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":316,"itemName":"BK57","skinName":"Strapped","itemRarity":"Rare"},{"skinId":3869,"itemName":"BK57","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":9351,"itemName":"BK57","skinName":"Synapse","itemRarity":"Rare"},{"skinId":8241,"itemName":"BK57","skinName":"Tagged","itemRarity":"Uncommon"},{"skinId":3842,"itemName":"BK57","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":3865,"itemName":"BK57","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":3847,"itemName":"BK57","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":3849,"itemName":"BK57","skinName":"Tundra","itemRarity":"Common"},{"skinId":472,"itemName":"BK57","skinName":"Ukiyo-e","itemRarity":"Rare"},{"skinId":6665,"itemName":"BK57","skinName":"Undergrowth","itemRarity":"Uncommon"},{"skinId":3850,"itemName":"BK57","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":1187,"itemName":"BK57","skinName":"Veiled Ghost","itemRarity":"Rare"},{"skinId":3876,"itemName":"BK57","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":3875,"itemName":"BK57","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":9671,"itemName":"BK57","skinName":"Warmth","itemRarity":"Uncommon"},{"skinId":2247,"itemName":"BK57","skinName":"Wasteland","itemRarity":"Epic"},{"skinId":143,"itemName":"BK57","skinName":"Wild West","itemRarity":"Epic"},{"skinId":7490,"itemName":"BK57","skinName":"Zork","itemRarity":"Rare"},{"skinId":868,"itemName":"BY15","skinName":"1001 Nights","itemRarity":"Rare"},{"skinId":792,"itemName":"BY15","skinName":"Abnormality","itemRarity":"Uncommon"},{"skinId":4898,"itemName":"BY15","skinName":"Abominable","itemRarity":"Common"},{"skinId":4921,"itemName":"BY15","skinName":"Anaconda","itemRarity":"Common"},{"skinId":4891,"itemName":"BY15","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":110,"itemName":"BY15","skinName":"Aqua","itemRarity":"Uncommon"},{"skinId":4893,"itemName":"BY15","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":2553,"itemName":"BY15","skinName":"Arctic Digital","itemRarity":"Uncommon"},{"skinId":4890,"itemName":"BY15","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":31,"itemName":"BY15","skinName":"Ashen Viper","itemRarity":"Rare"},{"skinId":4880,"itemName":"BY15","skinName":"Asphalt","itemRarity":"Common"},{"skinId":4892,"itemName":"BY15","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":4879,"itemName":"BY15","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":4918,"itemName":"BY15","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":4904,"itemName":"BY15","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":6233,"itemName":"BY15","skinName":"Bolted Metal","itemRarity":"Uncommon"},{"skinId":499,"itemName":"BY15","skinName":"Brambles","itemRarity":"Rare"},{"skinId":4922,"itemName":"BY15","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":1907,"itemName":"BY15","skinName":"Calcium Chloride","itemRarity":"Uncommon"},{"skinId":4914,"itemName":"BY15","skinName":"Canopy","itemRarity":"Common"},{"skinId":4872,"itemName":"BY15","skinName":"Chain Link","itemRarity":"Common"},{"skinId":4870,"itemName":"BY15","skinName":"China Lake","itemRarity":"Common"},{"skinId":4919,"itemName":"BY15","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":7698,"itemName":"BY15","skinName":"Citrine","itemRarity":"Epic"},{"skinId":4866,"itemName":"BY15","skinName":"Commando","itemRarity":"Common"},{"skinId":8106,"itemName":"BY15","skinName":"Concrete Lightning","itemRarity":"Uncommon"},{"skinId":148,"itemName":"BY15","skinName":"Copperhead","itemRarity":"Rare"},{"skinId":1870,"itemName":"BY15","skinName":"Corpse Digger","itemRarity":"Uncommon"},{"skinId":7653,"itemName":"BY15","skinName":"Court Blue","itemRarity":"Uncommon"},{"skinId":4881,"itemName":"BY15","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":840,"itemName":"BY15","skinName":"Cubic Illusion","itemRarity":"Rare"},{"skinId":7066,"itemName":"BY15","skinName":"Damascus","itemRarity":"Common"},{"skinId":4897,"itemName":"BY15","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":369,"itemName":"BY15","skinName":"Dark Fiber","itemRarity":"Uncommon"},{"skinId":443,"itemName":"BY15","skinName":"Default","itemRarity":"Common"},{"skinId":4902,"itemName":"BY15","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":4907,"itemName":"BY15","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":325,"itemName":"BY15","skinName":"Desert Snake","itemRarity":"Uncommon"},{"skinId":4865,"itemName":"BY15","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8539,"itemName":"BY15","skinName":"Diamond","itemRarity":"Common"},{"skinId":4876,"itemName":"BY15","skinName":"Dirt","itemRarity":"Common"},{"skinId":1462,"itemName":"BY15","skinName":"Eruption","itemRarity":"Epic"},{"skinId":4899,"itemName":"BY15","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":4900,"itemName":"BY15","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":4884,"itemName":"BY15","skinName":"Foliage","itemRarity":"Common"},{"skinId":10236,"itemName":"BY15","skinName":"Fool's Gold","itemRarity":"Epic"},{"skinId":4887,"itemName":"BY15","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":1539,"itemName":"BY15","skinName":"Gallant","itemRarity":"Rare"},{"skinId":4924,"itemName":"BY15","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":4923,"itemName":"BY15","skinName":"Gecko","itemRarity":"Common"},{"skinId":4925,"itemName":"BY15","skinName":"Gold","itemRarity":"Common"},{"skinId":7722,"itemName":"BY15","skinName":"Graceful Gold","itemRarity":"Uncommon"},{"skinId":2869,"itemName":"BY15","skinName":"Gray Skies","itemRarity":"Uncommon"},{"skinId":633,"itemName":"BY15","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":4875,"itemName":"BY15","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":1882,"itemName":"BY15","skinName":"Hazardous","itemRarity":"Uncommon"},{"skinId":676,"itemName":"BY15","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":1836,"itemName":"BY15","skinName":"Hellion","itemRarity":"Rare"},{"skinId":4888,"itemName":"BY15","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":958,"itemName":"BY15","skinName":"Jack Frost","itemRarity":"Uncommon"},{"skinId":609,"itemName":"BY15","skinName":"Jingle Bells","itemRarity":"Uncommon"},{"skinId":4910,"itemName":"BY15","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":4917,"itemName":"BY15","skinName":"Komodo","itemRarity":"Common"},{"skinId":2823,"itemName":"BY15","skinName":"Lunar New Year","itemRarity":"Rare"},{"skinId":1010,"itemName":"BY15","skinName":"Magic Eye","itemRarity":"Rare"},{"skinId":805,"itemName":"BY15","skinName":"Malware","itemRarity":"Uncommon"},{"skinId":1430,"itemName":"BY15","skinName":"Maple Leaves","itemRarity":"Uncommon"},{"skinId":10496,"itemName":"BY15","skinName":"Marine Blue","itemRarity":"Uncommon"},{"skinId":4909,"itemName":"BY15","skinName":"Marshland","itemRarity":"Common"},{"skinId":860,"itemName":"BY15","skinName":"Mechanized Rain","itemRarity":"Rare"},{"skinId":624,"itemName":"BY15","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":303,"itemName":"BY15","skinName":"Mettle","itemRarity":"Uncommon"},{"skinId":4906,"itemName":"BY15","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":4868,"itemName":"BY15","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":4877,"itemName":"BY15","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":6033,"itemName":"BY15","skinName":"Moss Rock","itemRarity":"Uncommon"},{"skinId":4896,"itemName":"BY15","skinName":"Mudslide","itemRarity":"Common"},{"skinId":4882,"itemName":"BY15","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":4873,"itemName":"BY15","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":4913,"itemName":"BY15","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":2953,"itemName":"BY15","skinName":"Obstacle","itemRarity":"Rare"},{"skinId":5990,"itemName":"BY15","skinName":"Old News","itemRarity":"Uncommon"},{"skinId":4895,"itemName":"BY15","skinName":"Overgrown","itemRarity":"Common"},{"skinId":7601,"itemName":"BY15","skinName":"Pantomime","itemRarity":"Epic"},{"skinId":9985,"itemName":"BY15","skinName":"Phantom Limb","itemRarity":"Rare"},{"skinId":4920,"itemName":"BY15","skinName":"Pink Python","itemRarity":"Common"},{"skinId":4871,"itemName":"BY15","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":4869,"itemName":"BY15","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":6308,"itemName":"BY15","skinName":"Plated Gray","itemRarity":"Uncommon"},{"skinId":4926,"itemName":"BY15","skinName":"Platinum","itemRarity":"Common"},{"skinId":307,"itemName":"BY15","skinName":"Purple Core","itemRarity":"Rare"},{"skinId":6720,"itemName":"BY15","skinName":"Purple Geode","itemRarity":"Uncommon"},{"skinId":4915,"itemName":"BY15","skinName":"Python","itemRarity":"Common"},{"skinId":4916,"itemName":"BY15","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":1305,"itemName":"BY15","skinName":"Red Action","itemRarity":"Epic"},{"skinId":10630,"itemName":"BY15","skinName":"Red Sun","itemRarity":"Uncommon"},{"skinId":4903,"itemName":"BY15","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":4867,"itemName":"BY15","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":7588,"itemName":"BY15","skinName":"River Raid","itemRarity":"Rare"},{"skinId":4889,"itemName":"BY15","skinName":"Ruins","itemRarity":"Common"},{"skinId":2711,"itemName":"BY15","skinName":"Rusted","itemRarity":"Uncommon"},{"skinId":4908,"itemName":"BY15","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":4894,"itemName":"BY15","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":10303,"itemName":"BY15","skinName":"Sight Unseen","itemRarity":"Rare"},{"skinId":4874,"itemName":"BY15","skinName":"Smoke","itemRarity":"Common"},{"skinId":1154,"itemName":"BY15","skinName":"Snowflakes","itemRarity":"Rare"},{"skinId":7962,"itemName":"BY15","skinName":"Stalwart","itemRarity":"Rare"},{"skinId":1243,"itemName":"BY15","skinName":"Steel Cut","itemRarity":"Rare"},{"skinId":311,"itemName":"BY15","skinName":"Steel Defense","itemRarity":"Rare"},{"skinId":318,"itemName":"BY15","skinName":"Strapped","itemRarity":"Rare"},{"skinId":4905,"itemName":"BY15","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":9362,"itemName":"BY15","skinName":"Synapse","itemRarity":"Rare"},{"skinId":8239,"itemName":"BY15","skinName":"Tagged","itemRarity":"Uncommon"},{"skinId":4878,"itemName":"BY15","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":4901,"itemName":"BY15","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":8770,"itemName":"BY15","skinName":"Top Dog","itemRarity":"Epic"},{"skinId":4883,"itemName":"BY15","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":6818,"itemName":"BY15","skinName":"Tree Ring","itemRarity":"Uncommon"},{"skinId":2793,"itemName":"BY15","skinName":"Tropical","itemRarity":"Uncommon"},{"skinId":4885,"itemName":"BY15","skinName":"Tundra","itemRarity":"Common"},{"skinId":917,"itemName":"BY15","skinName":"Ukiyo-e","itemRarity":"Rare"},{"skinId":4886,"itemName":"BY15","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":4912,"itemName":"BY15","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":4911,"itemName":"BY15","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":8319,"itemName":"Base Melee","skinName":"Default","itemRarity":"Common"},{"skinId":10538,"itemName":"Base Melee","skinName":"Pendragon","itemRarity":"Epic"},{"skinId":9807,"itemName":"Baseball Bat","skinName":"Abominable","itemRarity":"Common"},{"skinId":9654,"itemName":"Baseball Bat","skinName":"All Out War","itemRarity":"Epic"},{"skinId":9830,"itemName":"Baseball Bat","skinName":"Anaconda","itemRarity":"Common"},{"skinId":9800,"itemName":"Baseball Bat","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":9802,"itemName":"Baseball Bat","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":9799,"itemName":"Baseball Bat","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":9789,"itemName":"Baseball Bat","skinName":"Asphalt","itemRarity":"Common"},{"skinId":9801,"itemName":"Baseball Bat","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":11064,"itemName":"Baseball Bat","skinName":"Birthstone","itemRarity":"Rare"},{"skinId":9788,"itemName":"Baseball Bat","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":9827,"itemName":"Baseball Bat","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":9813,"itemName":"Baseball Bat","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":8095,"itemName":"Baseball Bat","skinName":"Breakup","itemRarity":"Rare"},{"skinId":9831,"itemName":"Baseball Bat","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":9823,"itemName":"Baseball Bat","skinName":"Canopy","itemRarity":"Common"},{"skinId":9781,"itemName":"Baseball Bat","skinName":"Chain Link","itemRarity":"Common"},{"skinId":9779,"itemName":"Baseball Bat","skinName":"China Lake","itemRarity":"Common"},{"skinId":9828,"itemName":"Baseball Bat","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":9775,"itemName":"Baseball Bat","skinName":"Commando","itemRarity":"Common"},{"skinId":9069,"itemName":"Baseball Bat","skinName":"Comrade","itemRarity":"Epic"},{"skinId":9790,"itemName":"Baseball Bat","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":9836,"itemName":"Baseball Bat","skinName":"Damascus","itemRarity":"Common"},{"skinId":9806,"itemName":"Baseball Bat","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":9811,"itemName":"Baseball Bat","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":9816,"itemName":"Baseball Bat","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":9774,"itemName":"Baseball Bat","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":9837,"itemName":"Baseball Bat","skinName":"Diamond","itemRarity":"Common"},{"skinId":9431,"itemName":"Baseball Bat","skinName":"Digital Desert","itemRarity":"Rare"},{"skinId":9785,"itemName":"Baseball Bat","skinName":"Dirt","itemRarity":"Common"},{"skinId":10612,"itemName":"Baseball Bat","skinName":"Dragon Maw","itemRarity":"Epic"},{"skinId":9808,"itemName":"Baseball Bat","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":9809,"itemName":"Baseball Bat","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":8852,"itemName":"Baseball Bat","skinName":"Festive","itemRarity":"Epic"},{"skinId":11161,"itemName":"Baseball Bat","skinName":"Floating Lotus","itemRarity":"Epic"},{"skinId":9793,"itemName":"Baseball Bat","skinName":"Foliage","itemRarity":"Common"},{"skinId":9796,"itemName":"Baseball Bat","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":9833,"itemName":"Baseball Bat","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":9832,"itemName":"Baseball Bat","skinName":"Gecko","itemRarity":"Common"},{"skinId":7538,"itemName":"Baseball Bat","skinName":"Glitch","itemRarity":"Uncommon"},{"skinId":9834,"itemName":"Baseball Bat","skinName":"Gold","itemRarity":"Common"},{"skinId":7321,"itemName":"Baseball Bat","skinName":"Gold Glitter","itemRarity":"Epic"},{"skinId":10242,"itemName":"Baseball Bat","skinName":"Golden Age","itemRarity":"Rare"},{"skinId":10476,"itemName":"Baseball Bat","skinName":"Graveyard Watch","itemRarity":"Epic"},{"skinId":10787,"itemName":"Baseball Bat","skinName":"Great Wave","itemRarity":"Rare"},{"skinId":9784,"itemName":"Baseball Bat","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":7345,"itemName":"Baseball Bat","skinName":"Heliotrope","itemRarity":"Uncommon"},{"skinId":9797,"itemName":"Baseball Bat","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":7428,"itemName":"Baseball Bat","skinName":"Kapow","itemRarity":"Uncommon"},{"skinId":9819,"itemName":"Baseball Bat","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":9826,"itemName":"Baseball Bat","skinName":"Komodo","itemRarity":"Common"},{"skinId":7327,"itemName":"Baseball Bat","skinName":"Lovestruck","itemRarity":"Rare"},{"skinId":7911,"itemName":"Baseball Bat","skinName":"Lunar Tide","itemRarity":"Rare"},{"skinId":532,"itemName":"Baseball Bat","skinName":"Mad Clown","itemRarity":"Epic"},{"skinId":9818,"itemName":"Baseball Bat","skinName":"Marshland","itemRarity":"Common"},{"skinId":9815,"itemName":"Baseball Bat","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":9777,"itemName":"Baseball Bat","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":9786,"itemName":"Baseball Bat","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":9805,"itemName":"Baseball Bat","skinName":"Mudslide","itemRarity":"Common"},{"skinId":9791,"itemName":"Baseball Bat","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":9782,"itemName":"Baseball Bat","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":9822,"itemName":"Baseball Bat","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":8086,"itemName":"Baseball Bat","skinName":"Noir","itemRarity":"Epic"},{"skinId":9804,"itemName":"Baseball Bat","skinName":"Overgrown","itemRarity":"Common"},{"skinId":9615,"itemName":"Baseball Bat","skinName":"Phobos","itemRarity":"Epic"},{"skinId":9829,"itemName":"Baseball Bat","skinName":"Pink Python","itemRarity":"Common"},{"skinId":9780,"itemName":"Baseball Bat","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":9778,"itemName":"Baseball Bat","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":9835,"itemName":"Baseball Bat","skinName":"Platinum","itemRarity":"Common"},{"skinId":9824,"itemName":"Baseball Bat","skinName":"Python","itemRarity":"Common"},{"skinId":9825,"itemName":"Baseball Bat","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":9812,"itemName":"Baseball Bat","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":6899,"itemName":"Baseball Bat","skinName":"Reflective","itemRarity":"Rare"},{"skinId":10267,"itemName":"Baseball Bat","skinName":"Revolt","itemRarity":"Epic"},{"skinId":5953,"itemName":"Baseball Bat","skinName":"Revolution","itemRarity":"Epic"},{"skinId":9776,"itemName":"Baseball Bat","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":7285,"itemName":"Baseball Bat","skinName":"Royal Flush","itemRarity":"Rare"},{"skinId":6087,"itemName":"Baseball Bat","skinName":"Ruby","itemRarity":"Epic"},{"skinId":9798,"itemName":"Baseball Bat","skinName":"Ruins","itemRarity":"Common"},{"skinId":10988,"itemName":"Baseball Bat","skinName":"Sakura Storm","itemRarity":"Epic"},{"skinId":9817,"itemName":"Baseball Bat","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":11530,"itemName":"Baseball Bat","skinName":"Scatter Force","itemRarity":"Rare"},{"skinId":9803,"itemName":"Baseball Bat","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":7231,"itemName":"Baseball Bat","skinName":"Sinister Slugger","itemRarity":"Epic"},{"skinId":9410,"itemName":"Baseball Bat","skinName":"Slapstick","itemRarity":"Epic"},{"skinId":9783,"itemName":"Baseball Bat","skinName":"Smoke","itemRarity":"Common"},{"skinId":11840,"itemName":"Baseball Bat","skinName":"Stampede","itemRarity":"Epic"},{"skinId":8914,"itemName":"Baseball Bat","skinName":"Starlight","itemRarity":"Rare"},{"skinId":9814,"itemName":"Baseball Bat","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":9787,"itemName":"Baseball Bat","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":9810,"itemName":"Baseball Bat","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":6696,"itemName":"Baseball Bat","skinName":"Tiger's Eye","itemRarity":"Epic"},{"skinId":9792,"itemName":"Baseball Bat","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":9794,"itemName":"Baseball Bat","skinName":"Tundra","itemRarity":"Common"},{"skinId":9795,"itemName":"Baseball Bat","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":9821,"itemName":"Baseball Bat","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":9820,"itemName":"Baseball Bat","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":3313,"itemName":"Chicom","skinName":"Abominable","itemRarity":"Common"},{"skinId":6258,"itemName":"Chicom","skinName":"Ammo Box","itemRarity":"Uncommon"},{"skinId":3336,"itemName":"Chicom","skinName":"Anaconda","itemRarity":"Common"},{"skinId":3306,"itemName":"Chicom","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":108,"itemName":"Chicom","skinName":"Aqua","itemRarity":"Uncommon"},{"skinId":3308,"itemName":"Chicom","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":3305,"itemName":"Chicom","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":3295,"itemName":"Chicom","skinName":"Asphalt","itemRarity":"Common"},{"skinId":961,"itemName":"Chicom","skinName":"Aurora Borealis","itemRarity":"Rare"},{"skinId":3307,"itemName":"Chicom","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":1011,"itemName":"Chicom","skinName":"Bats","itemRarity":"Uncommon"},{"skinId":10372,"itemName":"Chicom","skinName":"Black Marble","itemRarity":"Uncommon"},{"skinId":3294,"itemName":"Chicom","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":3333,"itemName":"Chicom","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":3319,"itemName":"Chicom","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":6232,"itemName":"Chicom","skinName":"Bolted Metal","itemRarity":"Uncommon"},{"skinId":3337,"itemName":"Chicom","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":590,"itemName":"Chicom","skinName":"CQB","itemRarity":"Epic"},{"skinId":3329,"itemName":"Chicom","skinName":"Canopy","itemRarity":"Common"},{"skinId":3287,"itemName":"Chicom","skinName":"Chain Link","itemRarity":"Common"},{"skinId":8059,"itemName":"Chicom","skinName":"Chevalier","itemRarity":"Epic"},{"skinId":3285,"itemName":"Chicom","skinName":"China Lake","itemRarity":"Common"},{"skinId":3334,"itemName":"Chicom","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":3281,"itemName":"Chicom","skinName":"Commando","itemRarity":"Common"},{"skinId":8108,"itemName":"Chicom","skinName":"Concrete Lightning","itemRarity":"Uncommon"},{"skinId":3296,"itemName":"Chicom","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":11004,"itemName":"Chicom","skinName":"Cumulus","itemRarity":"Uncommon"},{"skinId":7040,"itemName":"Chicom","skinName":"Damascus","itemRarity":"Common"},{"skinId":1636,"itemName":"Chicom","skinName":"Danger Zone","itemRarity":"Rare"},{"skinId":3312,"itemName":"Chicom","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":276,"itemName":"Chicom","skinName":"Dark Victorian","itemRarity":"Rare"},{"skinId":6079,"itemName":"Chicom","skinName":"Default","itemRarity":"Common"},{"skinId":10938,"itemName":"Chicom","skinName":"Demon Fury","itemRarity":"Epic"},{"skinId":3317,"itemName":"Chicom","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":3322,"itemName":"Chicom","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":19,"itemName":"Chicom","skinName":"Desert Snake","itemRarity":"Uncommon"},{"skinId":3280,"itemName":"Chicom","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8513,"itemName":"Chicom","skinName":"Diamond","itemRarity":"Common"},{"skinId":3291,"itemName":"Chicom","skinName":"Dirt","itemRarity":"Common"},{"skinId":796,"itemName":"Chicom","skinName":"Easter '20","itemRarity":"Uncommon"},{"skinId":524,"itemName":"Chicom","skinName":"Evil Chip","itemRarity":"Rare"},{"skinId":3314,"itemName":"Chicom","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":3315,"itemName":"Chicom","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":3299,"itemName":"Chicom","skinName":"Foliage","itemRarity":"Common"},{"skinId":3302,"itemName":"Chicom","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":861,"itemName":"Chicom","skinName":"Galvanized","itemRarity":"Rare"},{"skinId":3339,"itemName":"Chicom","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":3338,"itemName":"Chicom","skinName":"Gecko","itemRarity":"Common"},{"skinId":7537,"itemName":"Chicom","skinName":"Glitch","itemRarity":"Uncommon"},{"skinId":3340,"itemName":"Chicom","skinName":"Gold","itemRarity":"Common"},{"skinId":7721,"itemName":"Chicom","skinName":"Graceful Gold","itemRarity":"Uncommon"},{"skinId":3290,"itemName":"Chicom","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":1359,"itemName":"Chicom","skinName":"Headless Rider","itemRarity":"Rare"},{"skinId":674,"itemName":"Chicom","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":1606,"itemName":"Chicom","skinName":"Hellion","itemRarity":"Rare"},{"skinId":1381,"itemName":"Chicom","skinName":"Holiday Ribbons","itemRarity":"Uncommon"},{"skinId":3303,"itemName":"Chicom","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":1177,"itemName":"Chicom","skinName":"Irradiated Amethyst","itemRarity":"Rare"},{"skinId":1019,"itemName":"Chicom","skinName":"Jack Frost","itemRarity":"Uncommon"},{"skinId":615,"itemName":"Chicom","skinName":"Jingle Bells","itemRarity":"Uncommon"},{"skinId":3325,"itemName":"Chicom","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":3332,"itemName":"Chicom","skinName":"Komodo","itemRarity":"Common"},{"skinId":788,"itemName":"Chicom","skinName":"Malware","itemRarity":"Uncommon"},{"skinId":3324,"itemName":"Chicom","skinName":"Marshland","itemRarity":"Common"},{"skinId":1740,"itemName":"Chicom","skinName":"Mechanized Rain","itemRarity":"Rare"},{"skinId":6773,"itemName":"Chicom","skinName":"Melon","itemRarity":"Uncommon"},{"skinId":623,"itemName":"Chicom","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":304,"itemName":"Chicom","skinName":"Mettle","itemRarity":"Uncommon"},{"skinId":3321,"itemName":"Chicom","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":353,"itemName":"Chicom","skinName":"Moonstone","itemRarity":"Epic"},{"skinId":3283,"itemName":"Chicom","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":3292,"itemName":"Chicom","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":6032,"itemName":"Chicom","skinName":"Moss Rock","itemRarity":"Uncommon"},{"skinId":3311,"itemName":"Chicom","skinName":"Mudslide","itemRarity":"Common"},{"skinId":3297,"itemName":"Chicom","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":3288,"itemName":"Chicom","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":3328,"itemName":"Chicom","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":7365,"itemName":"Chicom","skinName":"Oil Spill","itemRarity":"Epic"},{"skinId":3310,"itemName":"Chicom","skinName":"Overgrown","itemRarity":"Common"},{"skinId":3335,"itemName":"Chicom","skinName":"Pink Python","itemRarity":"Common"},{"skinId":3286,"itemName":"Chicom","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":3284,"itemName":"Chicom","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":6391,"itemName":"Chicom","skinName":"Plated Red","itemRarity":"Uncommon"},{"skinId":3341,"itemName":"Chicom","skinName":"Platinum","itemRarity":"Common"},{"skinId":298,"itemName":"Chicom","skinName":"Purple Core","itemRarity":"Rare"},{"skinId":3330,"itemName":"Chicom","skinName":"Python","itemRarity":"Common"},{"skinId":3331,"itemName":"Chicom","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":3318,"itemName":"Chicom","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":990,"itemName":"Chicom","skinName":"Reindeer","itemRarity":"Uncommon"},{"skinId":3282,"itemName":"Chicom","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":3304,"itemName":"Chicom","skinName":"Ruins","itemRarity":"Common"},{"skinId":3323,"itemName":"Chicom","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":3309,"itemName":"Chicom","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":1857,"itemName":"Chicom","skinName":"Silver Ghoul","itemRarity":"Epic"},{"skinId":2261,"itemName":"Chicom","skinName":"Slate","itemRarity":"Uncommon"},{"skinId":3289,"itemName":"Chicom","skinName":"Smoke","itemRarity":"Common"},{"skinId":7224,"itemName":"Chicom","skinName":"Starstruck","itemRarity":"Epic"},{"skinId":317,"itemName":"Chicom","skinName":"Strapped","itemRarity":"Rare"},{"skinId":3320,"itemName":"Chicom","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":9293,"itemName":"Chicom","skinName":"Synapse","itemRarity":"Rare"},{"skinId":3293,"itemName":"Chicom","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":3316,"itemName":"Chicom","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":6638,"itemName":"Chicom","skinName":"Tourmaline","itemRarity":"Epic"},{"skinId":3298,"itemName":"Chicom","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":3300,"itemName":"Chicom","skinName":"Tundra","itemRarity":"Common"},{"skinId":3301,"itemName":"Chicom","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":1184,"itemName":"Chicom","skinName":"Veiled Ghost","itemRarity":"Rare"},{"skinId":11660,"itemName":"Chicom","skinName":"Wanted","itemRarity":"Uncommon"},{"skinId":3327,"itemName":"Chicom","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":3326,"itemName":"Chicom","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":1558,"itemName":"Chicom","skinName":"Yellow Camo","itemRarity":"Uncommon"},{"skinId":411,"itemName":"Chicom","skinName":"Yellow Triangle","itemRarity":"Rare"},{"skinId":5451,"itemName":"Chopper","skinName":"Abominable","itemRarity":"Common"},{"skinId":11476,"itemName":"Chopper","skinName":"Ambush","itemRarity":"Uncommon"},{"skinId":5474,"itemName":"Chopper","skinName":"Anaconda","itemRarity":"Common"},{"skinId":5444,"itemName":"Chopper","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":5446,"itemName":"Chopper","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":5443,"itemName":"Chopper","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":5433,"itemName":"Chopper","skinName":"Asphalt","itemRarity":"Common"},{"skinId":5445,"itemName":"Chopper","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":11227,"itemName":"Chopper","skinName":"Become War","itemRarity":"Epic"},{"skinId":7579,"itemName":"Chopper","skinName":"Black Top","itemRarity":"Uncommon"},{"skinId":5432,"itemName":"Chopper","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":5471,"itemName":"Chopper","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":5457,"itemName":"Chopper","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":11553,"itemName":"Chopper","skinName":"Buckles & Spurs","itemRarity":"Rare"},{"skinId":5475,"itemName":"Chopper","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":5467,"itemName":"Chopper","skinName":"Canopy","itemRarity":"Common"},{"skinId":5425,"itemName":"Chopper","skinName":"Chain Link","itemRarity":"Common"},{"skinId":1945,"itemName":"Chopper","skinName":"Chain Reaction","itemRarity":"Legendary"},{"skinId":5423,"itemName":"Chopper","skinName":"China Lake","itemRarity":"Common"},{"skinId":5472,"itemName":"Chopper","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":6859,"itemName":"Chopper","skinName":"Collateral","itemRarity":"Epic"},{"skinId":5419,"itemName":"Chopper","skinName":"Commando","itemRarity":"Common"},{"skinId":9465,"itemName":"Chopper","skinName":"Connection","itemRarity":"Rare"},{"skinId":5434,"itemName":"Chopper","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":11006,"itemName":"Chopper","skinName":"Cumulus","itemRarity":"Uncommon"},{"skinId":7075,"itemName":"Chopper","skinName":"Damascus","itemRarity":"Common"},{"skinId":5450,"itemName":"Chopper","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":8999,"itemName":"Chopper","skinName":"Dark Light","itemRarity":"Rare"},{"skinId":1957,"itemName":"Chopper","skinName":"Default","itemRarity":"Common"},{"skinId":5455,"itemName":"Chopper","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":5460,"itemName":"Chopper","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":5418,"itemName":"Chopper","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8548,"itemName":"Chopper","skinName":"Diamond","itemRarity":"Common"},{"skinId":5429,"itemName":"Chopper","skinName":"Dirt","itemRarity":"Common"},{"skinId":9599,"itemName":"Chopper","skinName":"Eternal Youth","itemRarity":"Uncommon"},{"skinId":5452,"itemName":"Chopper","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":5453,"itemName":"Chopper","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":5437,"itemName":"Chopper","skinName":"Foliage","itemRarity":"Common"},{"skinId":2925,"itemName":"Chopper","skinName":"Fortress","itemRarity":"Epic"},{"skinId":5440,"itemName":"Chopper","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":5477,"itemName":"Chopper","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":5476,"itemName":"Chopper","skinName":"Gecko","itemRarity":"Common"},{"skinId":5478,"itemName":"Chopper","skinName":"Gold","itemRarity":"Common"},{"skinId":5428,"itemName":"Chopper","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":5441,"itemName":"Chopper","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":10011,"itemName":"Chopper","skinName":"Imprint","itemRarity":"Rare"},{"skinId":5463,"itemName":"Chopper","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":10263,"itemName":"Chopper","skinName":"Klondike","itemRarity":"Epic"},{"skinId":5470,"itemName":"Chopper","skinName":"Komodo","itemRarity":"Common"},{"skinId":7877,"itemName":"Chopper","skinName":"Lunar Tide","itemRarity":"Rare"},{"skinId":5462,"itemName":"Chopper","skinName":"Marshland","itemRarity":"Common"},{"skinId":5459,"itemName":"Chopper","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":5421,"itemName":"Chopper","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":5430,"itemName":"Chopper","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":5449,"itemName":"Chopper","skinName":"Mudslide","itemRarity":"Common"},{"skinId":5435,"itemName":"Chopper","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":5426,"itemName":"Chopper","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":5466,"itemName":"Chopper","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":9592,"itemName":"Chopper","skinName":"Opening Ceremony","itemRarity":"Rare"},{"skinId":5448,"itemName":"Chopper","skinName":"Overgrown","itemRarity":"Common"},{"skinId":8750,"itemName":"Chopper","skinName":"Permafrost","itemRarity":"Rare"},{"skinId":5473,"itemName":"Chopper","skinName":"Pink Python","itemRarity":"Common"},{"skinId":5424,"itemName":"Chopper","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":5422,"itemName":"Chopper","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":5479,"itemName":"Chopper","skinName":"Platinum","itemRarity":"Common"},{"skinId":5468,"itemName":"Chopper","skinName":"Python","itemRarity":"Common"},{"skinId":5469,"itemName":"Chopper","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":8171,"itemName":"Chopper","skinName":"Red Curtain","itemRarity":"Rare"},{"skinId":5456,"itemName":"Chopper","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":5420,"itemName":"Chopper","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":5442,"itemName":"Chopper","skinName":"Ruins","itemRarity":"Common"},{"skinId":5461,"itemName":"Chopper","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":5447,"itemName":"Chopper","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":5427,"itemName":"Chopper","skinName":"Smoke","itemRarity":"Common"},{"skinId":7301,"itemName":"Chopper","skinName":"Static Electricity","itemRarity":"Rare"},{"skinId":5458,"itemName":"Chopper","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":5431,"itemName":"Chopper","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":5454,"itemName":"Chopper","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":9217,"itemName":"Chopper","skinName":"Tire Chains","itemRarity":"Uncommon"},{"skinId":5436,"itemName":"Chopper","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":5438,"itemName":"Chopper","skinName":"Tundra","itemRarity":"Common"},{"skinId":8184,"itemName":"Chopper","skinName":"Ultramarine","itemRarity":"Rare"},{"skinId":2968,"itemName":"Chopper","skinName":"Undead Crusade","itemRarity":"Rare"},{"skinId":5439,"itemName":"Chopper","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":10868,"itemName":"Chopper","skinName":"Visceral","itemRarity":"Epic"},{"skinId":5465,"itemName":"Chopper","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":5464,"itemName":"Chopper","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":8711,"itemName":"Chopper","skinName":"Winterwood","itemRarity":"Rare"},{"skinId":8893,"itemName":"Cluster Grenade","skinName":"Hephaestus","itemRarity":"Epic"},{"skinId":9413,"itemName":"Cluster Grenade","skinName":"Slapstick","itemRarity":"Epic"},{"skinId":10227,"itemName":"Combat Axe","skinName":"Bloody Vengeance","itemRarity":"Epic"},{"skinId":1497,"itemName":"Combat Axe","skinName":"Default","itemRarity":"Common"},{"skinId":11521,"itemName":"Combat Axe","skinName":"Denim","itemRarity":"Uncommon"},{"skinId":11412,"itemName":"Combat Axe","skinName":"Desert Sunset","itemRarity":"Rare"},{"skinId":11654,"itemName":"Combat Axe","skinName":"Exosphere","itemRarity":"Epic"},{"skinId":10490,"itemName":"Combat Axe","skinName":"Eyes in the Dark","itemRarity":"Uncommon"},{"skinId":10045,"itemName":"Combat Axe","skinName":"Gas Cloud","itemRarity":"Uncommon"},{"skinId":10977,"itemName":"Combat Axe","skinName":"Glow Fly","itemRarity":"Epic"},{"skinId":7994,"itemName":"Combat Axe","skinName":"Hard Water","itemRarity":"Uncommon"},{"skinId":8831,"itemName":"Combat Axe","skinName":"Merrymaker","itemRarity":"Epic"},{"skinId":11050,"itemName":"Combat Axe","skinName":"Metallurgy","itemRarity":"Epic"},{"skinId":10595,"itemName":"Combat Axe","skinName":"Paper Fan","itemRarity":"Uncommon"},{"skinId":10822,"itemName":"Combat Axe","skinName":"Parasol","itemRarity":"Rare"},{"skinId":10006,"itemName":"Combat Axe","skinName":"Ripped Camo","itemRarity":"Uncommon"},{"skinId":9424,"itemName":"Combat Axe","skinName":"Sprite Ops","itemRarity":"Epic"},{"skinId":8771,"itemName":"Combat Axe","skinName":"Tracker","itemRarity":"Uncommon"},{"skinId":2967,"itemName":"Combat Axe","skinName":"Undead Crusade","itemRarity":"Rare"},{"skinId":8364,"itemName":"Combat Axe","skinName":"Visceral","itemRarity":"Epic"},{"skinId":11246,"itemName":"Combat Axe","skinName":"Wagon Wheel","itemRarity":"Uncommon"},{"skinId":6584,"itemName":"Concussion Grenade","skinName":"Alligator","itemRarity":"Uncommon"},{"skinId":5931,"itemName":"Concussion Grenade","skinName":"Ammo Box","itemRarity":"Uncommon"},{"skinId":931,"itemName":"Concussion Grenade","skinName":"Ancient Runes","itemRarity":"Uncommon"},{"skinId":2352,"itemName":"Concussion Grenade","skinName":"Arctic Digital","itemRarity":"Uncommon"},{"skinId":367,"itemName":"Concussion Grenade","skinName":"Ashen Viper","itemRarity":"Rare"},{"skinId":2118,"itemName":"Concussion Grenade","skinName":"Bats","itemRarity":"Uncommon"},{"skinId":1673,"itemName":"Concussion Grenade","skinName":"Black Lime","itemRarity":"Rare"},{"skinId":10379,"itemName":"Concussion Grenade","skinName":"Black Marble","itemRarity":"Uncommon"},{"skinId":692,"itemName":"Concussion Grenade","skinName":"Blue Graffiti","itemRarity":"Uncommon"},{"skinId":11505,"itemName":"Concussion Grenade","skinName":"Bootstraps","itemRarity":"Rare"},{"skinId":6172,"itemName":"Concussion Grenade","skinName":"Bullet Point","itemRarity":"Uncommon"},{"skinId":9204,"itemName":"Concussion Grenade","skinName":"Bunker","itemRarity":"Uncommon"},{"skinId":1915,"itemName":"Concussion Grenade","skinName":"Calcium Chloride","itemRarity":"Uncommon"},{"skinId":380,"itemName":"Concussion Grenade","skinName":"Canvas","itemRarity":"Rare"},{"skinId":1599,"itemName":"Concussion Grenade","skinName":"Caution","itemRarity":"Uncommon"},{"skinId":6925,"itemName":"Concussion Grenade","skinName":"Chroma","itemRarity":"Rare"},{"skinId":6533,"itemName":"Concussion Grenade","skinName":"Coat","itemRarity":"Uncommon"},{"skinId":8116,"itemName":"Concussion Grenade","skinName":"Concrete Lightning","itemRarity":"Uncommon"},{"skinId":1880,"itemName":"Concussion Grenade","skinName":"Corpse Digger","itemRarity":"Uncommon"},{"skinId":2788,"itemName":"Concussion Grenade","skinName":"Corroded","itemRarity":"Uncommon"},{"skinId":7664,"itemName":"Concussion Grenade","skinName":"Court Blue","itemRarity":"Uncommon"},{"skinId":8148,"itemName":"Concussion Grenade","skinName":"Crackle","itemRarity":"Uncommon"},{"skinId":6939,"itemName":"Concussion Grenade","skinName":"Crayon","itemRarity":"Uncommon"},{"skinId":11011,"itemName":"Concussion Grenade","skinName":"Cumulus","itemRarity":"Uncommon"},{"skinId":8923,"itemName":"Concussion Grenade","skinName":"Dalmatian","itemRarity":"Uncommon"},{"skinId":454,"itemName":"Concussion Grenade","skinName":"Default","itemRarity":"Common"},{"skinId":9181,"itemName":"Concussion Grenade","skinName":"Defibrilator","itemRarity":"Epic"},{"skinId":209,"itemName":"Concussion Grenade","skinName":"Desert Snake","itemRarity":"Uncommon"},{"skinId":2590,"itemName":"Concussion Grenade","skinName":"Distressed","itemRarity":"Uncommon"},{"skinId":11185,"itemName":"Concussion Grenade","skinName":"Duel","itemRarity":"Uncommon"},{"skinId":1496,"itemName":"Concussion Grenade","skinName":"Easter '20","itemRarity":"Uncommon"},{"skinId":6658,"itemName":"Concussion Grenade","skinName":"Fiber Mesh","itemRarity":"Rare"},{"skinId":6883,"itemName":"Concussion Grenade","skinName":"Forest Fabric","itemRarity":"Uncommon"},{"skinId":2039,"itemName":"Concussion Grenade","skinName":"Frostbite","itemRarity":"Uncommon"},{"skinId":2476,"itemName":"Concussion Grenade","skinName":"Fuel Tank","itemRarity":"Uncommon"},{"skinId":7543,"itemName":"Concussion Grenade","skinName":"Glitch","itemRarity":"Uncommon"},{"skinId":7511,"itemName":"Concussion Grenade","skinName":"Gold Glitter","itemRarity":"Epic"},{"skinId":7732,"itemName":"Concussion Grenade","skinName":"Graceful Gold","itemRarity":"Uncommon"},{"skinId":636,"itemName":"Concussion Grenade","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":2616,"itemName":"Concussion Grenade","skinName":"Grime","itemRarity":"Uncommon"},{"skinId":2296,"itemName":"Concussion Grenade","skinName":"Hazard","itemRarity":"Uncommon"},{"skinId":2449,"itemName":"Concussion Grenade","skinName":"Hemophiliac","itemRarity":"Uncommon"},{"skinId":8875,"itemName":"Concussion Grenade","skinName":"Hereafter","itemRarity":"Uncommon"},{"skinId":2120,"itemName":"Concussion Grenade","skinName":"Holiday Ribbons","itemRarity":"Uncommon"},{"skinId":11693,"itemName":"Concussion Grenade","skinName":"Horseshoe","itemRarity":"Uncommon"},{"skinId":2119,"itemName":"Concussion Grenade","skinName":"Jack Frost","itemRarity":"Uncommon"},{"skinId":7434,"itemName":"Concussion Grenade","skinName":"Kapow","itemRarity":"Uncommon"},{"skinId":9312,"itemName":"Concussion Grenade","skinName":"Light Show","itemRarity":"Uncommon"},{"skinId":252,"itemName":"Concussion Grenade","skinName":"Lightning","itemRarity":"Rare"},{"skinId":1387,"itemName":"Concussion Grenade","skinName":"Maple Leaves","itemRarity":"Uncommon"},{"skinId":2117,"itemName":"Concussion Grenade","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":1688,"itemName":"Concussion Grenade","skinName":"Neon Green","itemRarity":"Uncommon"},{"skinId":570,"itemName":"Concussion Grenade","skinName":"Neon Tiger","itemRarity":"Uncommon"},{"skinId":8085,"itemName":"Concussion Grenade","skinName":"Noir","itemRarity":"Epic"},{"skinId":7925,"itemName":"Concussion Grenade","skinName":"Nonconformist","itemRarity":"Uncommon"},{"skinId":2428,"itemName":"Concussion Grenade","skinName":"Nuclear Fallout","itemRarity":"Epic"},{"skinId":2700,"itemName":"Concussion Grenade","skinName":"Oil Spill","itemRarity":"Epic"},{"skinId":5998,"itemName":"Concussion Grenade","skinName":"Old News","itemRarity":"Uncommon"},{"skinId":10252,"itemName":"Concussion Grenade","skinName":"Paint Smear","itemRarity":"Uncommon"},{"skinId":10578,"itemName":"Concussion Grenade","skinName":"Paper Fan","itemRarity":"Uncommon"},{"skinId":8936,"itemName":"Concussion Grenade","skinName":"Pine Cone","itemRarity":"Uncommon"},{"skinId":6404,"itemName":"Concussion Grenade","skinName":"Plated Red","itemRarity":"Uncommon"},{"skinId":8041,"itemName":"Concussion Grenade","skinName":"Pocket Shock","itemRarity":"Uncommon"},{"skinId":2520,"itemName":"Concussion Grenade","skinName":"Posted","itemRarity":"Rare"},{"skinId":6729,"itemName":"Concussion Grenade","skinName":"Purple Geode","itemRarity":"Uncommon"},{"skinId":2908,"itemName":"Concussion Grenade","skinName":"Record Scratch","itemRarity":"Uncommon"},{"skinId":939,"itemName":"Concussion Grenade","skinName":"Red","itemRarity":"Uncommon"},{"skinId":2121,"itemName":"Concussion Grenade","skinName":"Reindeer","itemRarity":"Uncommon"},{"skinId":11633,"itemName":"Concussion Grenade","skinName":"Repellent","itemRarity":"Uncommon"},{"skinId":1149,"itemName":"Concussion Grenade","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":11862,"itemName":"Concussion Grenade","skinName":"Ropework","itemRarity":"Uncommon"},{"skinId":2721,"itemName":"Concussion Grenade","skinName":"Rusted","itemRarity":"Uncommon"},{"skinId":9724,"itemName":"Concussion Grenade","skinName":"Screen Tear","itemRarity":"Uncommon"},{"skinId":6155,"itemName":"Concussion Grenade","skinName":"Sewed Leather","itemRarity":"Rare"},{"skinId":10836,"itemName":"Concussion Grenade","skinName":"Shrine","itemRarity":"Uncommon"},{"skinId":2270,"itemName":"Concussion Grenade","skinName":"Slate","itemRarity":"Uncommon"},{"skinId":1130,"itemName":"Concussion Grenade","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":8248,"itemName":"Concussion Grenade","skinName":"Tagged","itemRarity":"Uncommon"},{"skinId":1433,"itemName":"Concussion Grenade","skinName":"Technologic","itemRarity":"Uncommon"},{"skinId":6369,"itemName":"Concussion Grenade","skinName":"Tiger's Eye","itemRarity":"Epic"},{"skinId":2532,"itemName":"Concussion Grenade","skinName":"Tree Bark","itemRarity":"Uncommon"},{"skinId":6827,"itemName":"Concussion Grenade","skinName":"Tree Ring","itemRarity":"Uncommon"},{"skinId":8457,"itemName":"Concussion Grenade","skinName":"Uncertain","itemRarity":"Uncommon"},{"skinId":6677,"itemName":"Concussion Grenade","skinName":"Undergrowth","itemRarity":"Uncommon"},{"skinId":11247,"itemName":"Concussion Grenade","skinName":"Wagon Wheel","itemRarity":"Uncommon"},{"skinId":9675,"itemName":"Concussion Grenade","skinName":"Warmth","itemRarity":"Uncommon"},{"skinId":1811,"itemName":"Concussion Grenade","skinName":"White Lies","itemRarity":"Uncommon"},{"skinId":10123,"itemName":"Concussion Grenade","skinName":"Yellow Abstract","itemRarity":"Uncommon"},{"skinId":1569,"itemName":"Concussion Grenade","skinName":"Yellow Camo","itemRarity":"Uncommon"},{"skinId":576,"itemName":"Concussion Grenade","skinName":"Yellow Triangle","itemRarity":"Uncommon"},{"skinId":1419,"itemName":"Concussion Grenade","skinName":"Zombie Gene","itemRarity":"Uncommon"},{"skinId":5144,"itemName":"Cordite","skinName":"Abominable","itemRarity":"Common"},{"skinId":5167,"itemName":"Cordite","skinName":"Anaconda","itemRarity":"Common"},{"skinId":5137,"itemName":"Cordite","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":5139,"itemName":"Cordite","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":5136,"itemName":"Cordite","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":5126,"itemName":"Cordite","skinName":"Asphalt","itemRarity":"Common"},{"skinId":9514,"itemName":"Cordite","skinName":"Atlas Corporation","itemRarity":"Epic"},{"skinId":5138,"itemName":"Cordite","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":5125,"itemName":"Cordite","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":5164,"itemName":"Cordite","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":5150,"itemName":"Cordite","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":11410,"itemName":"Cordite","skinName":"Buckskin","itemRarity":"Rare"},{"skinId":5168,"itemName":"Cordite","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":5160,"itemName":"Cordite","skinName":"Canopy","itemRarity":"Common"},{"skinId":5118,"itemName":"Cordite","skinName":"Chain Link","itemRarity":"Common"},{"skinId":8907,"itemName":"Cordite","skinName":"Cherry Blossom","itemRarity":"Epic"},{"skinId":5116,"itemName":"Cordite","skinName":"China Lake","itemRarity":"Common"},{"skinId":5165,"itemName":"Cordite","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":5112,"itemName":"Cordite","skinName":"Commando","itemRarity":"Common"},{"skinId":9515,"itemName":"Cordite","skinName":"Cordis Die","itemRarity":"Epic"},{"skinId":5127,"itemName":"Cordite","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7070,"itemName":"Cordite","skinName":"Damascus","itemRarity":"Common"},{"skinId":5143,"itemName":"Cordite","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":30,"itemName":"Cordite","skinName":"Default","itemRarity":"Common"},{"skinId":5148,"itemName":"Cordite","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":5153,"itemName":"Cordite","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":5111,"itemName":"Cordite","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8543,"itemName":"Cordite","skinName":"Diamond","itemRarity":"Common"},{"skinId":9429,"itemName":"Cordite","skinName":"Digital Desert","itemRarity":"Rare"},{"skinId":5122,"itemName":"Cordite","skinName":"Dirt","itemRarity":"Common"},{"skinId":10611,"itemName":"Cordite","skinName":"Dragon Maw","itemRarity":"Epic"},{"skinId":10284,"itemName":"Cordite","skinName":"Duct Tape","itemRarity":"Uncommon"},{"skinId":5145,"itemName":"Cordite","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":5146,"itemName":"Cordite","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":9635,"itemName":"Cordite","skinName":"Fiber Ray","itemRarity":"Uncommon"},{"skinId":5130,"itemName":"Cordite","skinName":"Foliage","itemRarity":"Common"},{"skinId":5133,"itemName":"Cordite","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":5170,"itemName":"Cordite","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":5169,"itemName":"Cordite","skinName":"Gecko","itemRarity":"Common"},{"skinId":2855,"itemName":"Cordite","skinName":"Going Dark","itemRarity":"Rare"},{"skinId":5171,"itemName":"Cordite","skinName":"Gold","itemRarity":"Common"},{"skinId":5121,"itemName":"Cordite","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":7989,"itemName":"Cordite","skinName":"Hard Water","itemRarity":"Uncommon"},{"skinId":8859,"itemName":"Cordite","skinName":"Hearth","itemRarity":"Rare"},{"skinId":8813,"itemName":"Cordite","skinName":"Heliotrope","itemRarity":"Uncommon"},{"skinId":5134,"itemName":"Cordite","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":6630,"itemName":"Cordite","skinName":"Iridescent","itemRarity":"Rare"},{"skinId":5156,"itemName":"Cordite","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":5163,"itemName":"Cordite","skinName":"Komodo","itemRarity":"Common"},{"skinId":5155,"itemName":"Cordite","skinName":"Marshland","itemRarity":"Common"},{"skinId":5152,"itemName":"Cordite","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":8222,"itemName":"Cordite","skinName":"Moonlight Wisp","itemRarity":"Rare"},{"skinId":5114,"itemName":"Cordite","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":5123,"itemName":"Cordite","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":5142,"itemName":"Cordite","skinName":"Mudslide","itemRarity":"Common"},{"skinId":5128,"itemName":"Cordite","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":5119,"itemName":"Cordite","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":5159,"itemName":"Cordite","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":5141,"itemName":"Cordite","skinName":"Overgrown","itemRarity":"Common"},{"skinId":5166,"itemName":"Cordite","skinName":"Pink Python","itemRarity":"Common"},{"skinId":5117,"itemName":"Cordite","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":5115,"itemName":"Cordite","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":6629,"itemName":"Cordite","skinName":"Plated Green","itemRarity":"Uncommon"},{"skinId":5172,"itemName":"Cordite","skinName":"Platinum","itemRarity":"Common"},{"skinId":8081,"itemName":"Cordite","skinName":"Punchline","itemRarity":"Epic"},{"skinId":5161,"itemName":"Cordite","skinName":"Python","itemRarity":"Common"},{"skinId":5162,"itemName":"Cordite","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":5149,"itemName":"Cordite","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":5113,"itemName":"Cordite","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":7296,"itemName":"Cordite","skinName":"Royal Flush","itemRarity":"Rare"},{"skinId":5135,"itemName":"Cordite","skinName":"Ruins","itemRarity":"Common"},{"skinId":5154,"itemName":"Cordite","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":10535,"itemName":"Cordite","skinName":"Sea Serpent","itemRarity":"Rare"},{"skinId":5140,"itemName":"Cordite","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":10830,"itemName":"Cordite","skinName":"Shrine","itemRarity":"Uncommon"},{"skinId":5120,"itemName":"Cordite","skinName":"Smoke","itemRarity":"Common"},{"skinId":8841,"itemName":"Cordite","skinName":"Snowframe","itemRarity":"Rare"},{"skinId":3044,"itemName":"Cordite","skinName":"Strafing Run","itemRarity":"Epic"},{"skinId":5151,"itemName":"Cordite","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":5124,"itemName":"Cordite","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":9289,"itemName":"Cordite","skinName":"Tech Noir","itemRarity":"Epic"},{"skinId":10148,"itemName":"Cordite","skinName":"Technic Razor","itemRarity":"Epic"},{"skinId":6842,"itemName":"Cordite","skinName":"Third Rail","itemRarity":"Epic"},{"skinId":5147,"itemName":"Cordite","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":5129,"itemName":"Cordite","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":5131,"itemName":"Cordite","skinName":"Tundra","itemRarity":"Common"},{"skinId":5132,"itemName":"Cordite","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":8379,"itemName":"Cordite","skinName":"Upper Hand","itemRarity":"Rare"},{"skinId":11244,"itemName":"Cordite","skinName":"Wagon Wheel","itemRarity":"Uncommon"},{"skinId":5158,"itemName":"Cordite","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":5157,"itemName":"Cordite","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":86,"itemName":"Cordite","skinName":"Zero-G","itemRarity":"Legendary"},{"skinId":37,"itemName":"Cryo Bomb","skinName":"Default","itemRarity":"Common"},{"skinId":8951,"itemName":"Cryo Bomb","skinName":"Ice Crystal","itemRarity":"Epic"},{"skinId":9631,"itemName":"Cryo Bomb","skinName":"Liquid Mercury","itemRarity":"Rare"},{"skinId":9108,"itemName":"Cryo Bomb","skinName":"New Horizon","itemRarity":"Epic"},{"skinId":337,"itemName":"DL Q33","skinName":"1001 Nights","itemRarity":"Uncommon"},{"skinId":4341,"itemName":"DL Q33","skinName":"Abominable","itemRarity":"Common"},{"skinId":8372,"itemName":"DL Q33","skinName":"Alarm","itemRarity":"Uncommon"},{"skinId":6571,"itemName":"DL Q33","skinName":"Alligator","itemRarity":"Uncommon"},{"skinId":11477,"itemName":"DL Q33","skinName":"Ambush","itemRarity":"Uncommon"},{"skinId":4364,"itemName":"DL Q33","skinName":"Anaconda","itemRarity":"Common"},{"skinId":4334,"itemName":"DL Q33","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":4336,"itemName":"DL Q33","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":2359,"itemName":"DL Q33","skinName":"Arctic Digital","itemRarity":"Uncommon"},{"skinId":4333,"itemName":"DL Q33","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":33,"itemName":"DL Q33","skinName":"Ashen Viper","itemRarity":"Rare"},{"skinId":4323,"itemName":"DL Q33","skinName":"Asphalt","itemRarity":"Common"},{"skinId":4335,"itemName":"DL Q33","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":1521,"itemName":"DL Q33","skinName":"Bandit","itemRarity":"Rare"},{"skinId":1670,"itemName":"DL Q33","skinName":"Black Lime","itemRarity":"Rare"},{"skinId":4322,"itemName":"DL Q33","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":4361,"itemName":"DL Q33","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":9708,"itemName":"DL Q33","skinName":"Blue Screen","itemRarity":"Epic"},{"skinId":4347,"itemName":"DL Q33","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":2299,"itemName":"DL Q33","skinName":"Brushed Yellow","itemRarity":"Rare"},{"skinId":4365,"itemName":"DL Q33","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":4357,"itemName":"DL Q33","skinName":"Canopy","itemRarity":"Common"},{"skinId":8200,"itemName":"DL Q33","skinName":"Cerulean","itemRarity":"Uncommon"},{"skinId":4315,"itemName":"DL Q33","skinName":"Chain Link","itemRarity":"Common"},{"skinId":6786,"itemName":"DL Q33","skinName":"Championship Streak","itemRarity":"Rare"},{"skinId":4313,"itemName":"DL Q33","skinName":"China Lake","itemRarity":"Common"},{"skinId":4362,"itemName":"DL Q33","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":10035,"itemName":"DL Q33","skinName":"Collapse","itemRarity":"Rare"},{"skinId":4309,"itemName":"DL Q33","skinName":"Commando","itemRarity":"Common"},{"skinId":6100,"itemName":"DL Q33","skinName":"Copilot","itemRarity":"Rare"},{"skinId":1190,"itemName":"DL Q33","skinName":"Copperhead","itemRarity":"Rare"},{"skinId":4324,"itemName":"DL Q33","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":517,"itemName":"DL Q33","skinName":"Cubic Illusion","itemRarity":"Rare"},{"skinId":7057,"itemName":"DL Q33","skinName":"Damascus","itemRarity":"Common"},{"skinId":4340,"itemName":"DL Q33","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":8006,"itemName":"DL Q33","skinName":"Dark Glow","itemRarity":"Epic"},{"skinId":2204,"itemName":"DL Q33","skinName":"Deep Shark","itemRarity":"Rare"},{"skinId":475,"itemName":"DL Q33","skinName":"Default","itemRarity":"Common"},{"skinId":4345,"itemName":"DL Q33","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":4350,"itemName":"DL Q33","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":3040,"itemName":"DL Q33","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8530,"itemName":"DL Q33","skinName":"Diamond","itemRarity":"Common"},{"skinId":4319,"itemName":"DL Q33","skinName":"Dirt","itemRarity":"Common"},{"skinId":2580,"itemName":"DL Q33","skinName":"Distressed","itemRarity":"Uncommon"},{"skinId":907,"itemName":"DL Q33","skinName":"Eruption","itemRarity":"Epic"},{"skinId":4342,"itemName":"DL Q33","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":2762,"itemName":"DL Q33","skinName":"Fatigue","itemRarity":"Epic"},{"skinId":4343,"itemName":"DL Q33","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":4327,"itemName":"DL Q33","skinName":"Foliage","itemRarity":"Common"},{"skinId":7950,"itemName":"DL Q33","skinName":"Forward Motion","itemRarity":"Rare"},{"skinId":78,"itemName":"DL Q33","skinName":"Frontier","itemRarity":"Rare"},{"skinId":4330,"itemName":"DL Q33","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":2465,"itemName":"DL Q33","skinName":"Fuel Tank","itemRarity":"Uncommon"},{"skinId":516,"itemName":"DL Q33","skinName":"Galvanized","itemRarity":"Rare"},{"skinId":4367,"itemName":"DL Q33","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":4366,"itemName":"DL Q33","skinName":"Gecko","itemRarity":"Common"},{"skinId":7533,"itemName":"DL Q33","skinName":"Glitch","itemRarity":"Uncommon"},{"skinId":6353,"itemName":"DL Q33","skinName":"Going Dark","itemRarity":"Rare"},{"skinId":4368,"itemName":"DL Q33","skinName":"Gold","itemRarity":"Common"},{"skinId":4318,"itemName":"DL Q33","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":1548,"itemName":"DL Q33","skinName":"Hazard","itemRarity":"Rare"},{"skinId":2206,"itemName":"DL Q33","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":271,"itemName":"DL Q33","skinName":"Heat Stroke","itemRarity":"Epic"},{"skinId":7342,"itemName":"DL Q33","skinName":"Heliotrope","itemRarity":"Uncommon"},{"skinId":2441,"itemName":"DL Q33","skinName":"Hemophiliac","itemRarity":"Uncommon"},{"skinId":8868,"itemName":"DL Q33","skinName":"Hereafter","itemRarity":"Uncommon"},{"skinId":679,"itemName":"DL Q33","skinName":"Holidays","itemRarity":"Legendary"},{"skinId":4331,"itemName":"DL Q33","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":591,"itemName":"DL Q33","skinName":"Jack Frost","itemRarity":"Uncommon"},{"skinId":7474,"itemName":"DL Q33","skinName":"Jack O' Lantern","itemRarity":"Rare"},{"skinId":616,"itemName":"DL Q33","skinName":"Jingle Bells","itemRarity":"Uncommon"},{"skinId":4353,"itemName":"DL Q33","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":4360,"itemName":"DL Q33","skinName":"Komodo","itemRarity":"Common"},{"skinId":9627,"itemName":"DL Q33","skinName":"Liquid Mercury","itemRarity":"Rare"},{"skinId":248,"itemName":"DL Q33","skinName":"Lone Wolf","itemRarity":"Rare"},{"skinId":2205,"itemName":"DL Q33","skinName":"Lunar New Year","itemRarity":"Rare"},{"skinId":1530,"itemName":"DL Q33","skinName":"Malware","itemRarity":"Uncommon"},{"skinId":952,"itemName":"DL Q33","skinName":"Mardi Gras","itemRarity":"Rare"},{"skinId":2053,"itemName":"DL Q33","skinName":"Marine","itemRarity":"Rare"},{"skinId":4352,"itemName":"DL Q33","skinName":"Marshland","itemRarity":"Common"},{"skinId":1515,"itemName":"DL Q33","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":4349,"itemName":"DL Q33","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":4311,"itemName":"DL Q33","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":4320,"itemName":"DL Q33","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":6029,"itemName":"DL Q33","skinName":"Moss Rock","itemRarity":"Uncommon"},{"skinId":4339,"itemName":"DL Q33","skinName":"Mudslide","itemRarity":"Common"},{"skinId":7252,"itemName":"DL Q33","skinName":"Neon Burst","itemRarity":"Epic"},{"skinId":4325,"itemName":"DL Q33","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":4316,"itemName":"DL Q33","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":4356,"itemName":"DL Q33","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":4338,"itemName":"DL Q33","skinName":"Overgrown","itemRarity":"Common"},{"skinId":6632,"itemName":"DL Q33","skinName":"Pelt","itemRarity":"Uncommon"},{"skinId":4363,"itemName":"DL Q33","skinName":"Pink Python","itemRarity":"Common"},{"skinId":4314,"itemName":"DL Q33","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":4312,"itemName":"DL Q33","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":4369,"itemName":"DL Q33","skinName":"Platinum","itemRarity":"Common"},{"skinId":1170,"itemName":"DL Q33","skinName":"Pulsar","itemRarity":"Rare"},{"skinId":4358,"itemName":"DL Q33","skinName":"Python","itemRarity":"Common"},{"skinId":4359,"itemName":"DL Q33","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":1301,"itemName":"DL Q33","skinName":"Red Action","itemRarity":"Epic"},{"skinId":4346,"itemName":"DL Q33","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":1619,"itemName":"DL Q33","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":4310,"itemName":"DL Q33","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":4332,"itemName":"DL Q33","skinName":"Ruins","itemRarity":"Common"},{"skinId":4351,"itemName":"DL Q33","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":158,"itemName":"DL Q33","skinName":"Sand Dunes","itemRarity":"Uncommon"},{"skinId":22,"itemName":"DL Q33","skinName":"Sandbox","itemRarity":"Uncommon"},{"skinId":4337,"itemName":"DL Q33","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":4317,"itemName":"DL Q33","skinName":"Smoke","itemRarity":"Common"},{"skinId":1158,"itemName":"DL Q33","skinName":"Snowflakes","itemRarity":"Rare"},{"skinId":6006,"itemName":"DL Q33","skinName":"Strafing Run","itemRarity":"Epic"},{"skinId":2821,"itemName":"DL Q33","skinName":"Stream","itemRarity":"Uncommon"},{"skinId":4348,"itemName":"DL Q33","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":2207,"itemName":"DL Q33","skinName":"Swamped","itemRarity":"Uncommon"},{"skinId":8906,"itemName":"DL Q33","skinName":"Sweet Sniper","itemRarity":"Epic"},{"skinId":4321,"itemName":"DL Q33","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":1428,"itemName":"DL Q33","skinName":"Technologic","itemRarity":"Uncommon"},{"skinId":4344,"itemName":"DL Q33","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":6368,"itemName":"DL Q33","skinName":"Tiger's Eye","itemRarity":"Epic"},{"skinId":10321,"itemName":"DL Q33","skinName":"Tourniquet","itemRarity":"Uncommon"},{"skinId":4326,"itemName":"DL Q33","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":2830,"itemName":"DL Q33","skinName":"Trick-or-Treat","itemRarity":"Uncommon"},{"skinId":4328,"itemName":"DL Q33","skinName":"Tundra","itemRarity":"Common"},{"skinId":1217,"itemName":"DL Q33","skinName":"Ukiyo-e","itemRarity":"Rare"},{"skinId":6666,"itemName":"DL Q33","skinName":"Undergrowth","itemRarity":"Uncommon"},{"skinId":4329,"itemName":"DL Q33","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":712,"itemName":"DL Q33","skinName":"Veiled Ghost","itemRarity":"Rare"},{"skinId":9313,"itemName":"DL Q33","skinName":"Voltaic","itemRarity":"Rare"},{"skinId":4355,"itemName":"DL Q33","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":4354,"itemName":"DL Q33","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":1346,"itemName":"DL Q33","skinName":"Yellow Triangle","itemRarity":"Uncommon"},{"skinId":6746,"itemName":"DL Q33","skinName":"Zealot","itemRarity":"Legendary"},{"skinId":5511,"itemName":"DR-H","skinName":"Abominable","itemRarity":"Common"},{"skinId":7980,"itemName":"DR-H","skinName":"Alarm","itemRarity":"Uncommon"},{"skinId":5534,"itemName":"DR-H","skinName":"Anaconda","itemRarity":"Common"},{"skinId":5504,"itemName":"DR-H","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":5506,"itemName":"DR-H","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":5503,"itemName":"DR-H","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":5493,"itemName":"DR-H","skinName":"Asphalt","itemRarity":"Common"},{"skinId":9336,"itemName":"DR-H","skinName":"Aurora","itemRarity":"Rare"},{"skinId":5505,"itemName":"DR-H","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":6136,"itemName":"DR-H","skinName":"Basecamp","itemRarity":"Epic"},{"skinId":10957,"itemName":"DR-H","skinName":"Birthstone","itemRarity":"Rare"},{"skinId":5492,"itemName":"DR-H","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":5531,"itemName":"DR-H","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":5517,"itemName":"DR-H","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":7981,"itemName":"DR-H","skinName":"Bronze Arrow","itemRarity":"Rare"},{"skinId":5535,"itemName":"DR-H","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":5527,"itemName":"DR-H","skinName":"Canopy","itemRarity":"Common"},{"skinId":5486,"itemName":"DR-H","skinName":"Chain Link","itemRarity":"Common"},{"skinId":2342,"itemName":"DR-H","skinName":"Chained","itemRarity":"Epic"},{"skinId":5484,"itemName":"DR-H","skinName":"China Lake","itemRarity":"Common"},{"skinId":5532,"itemName":"DR-H","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":9969,"itemName":"DR-H","skinName":"Circuit Board","itemRarity":"Epic"},{"skinId":5480,"itemName":"DR-H","skinName":"Commando","itemRarity":"Common"},{"skinId":9068,"itemName":"DR-H","skinName":"Comrade","itemRarity":"Epic"},{"skinId":5494,"itemName":"DR-H","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":9453,"itemName":"DR-H","skinName":"Cyber Security","itemRarity":"Epic"},{"skinId":7076,"itemName":"DR-H","skinName":"Damascus","itemRarity":"Common"},{"skinId":5510,"itemName":"DR-H","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":2320,"itemName":"DR-H","skinName":"Default","itemRarity":"Common"},{"skinId":5515,"itemName":"DR-H","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":5520,"itemName":"DR-H","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":3035,"itemName":"DR-H","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8549,"itemName":"DR-H","skinName":"Diamond","itemRarity":"Common"},{"skinId":5489,"itemName":"DR-H","skinName":"Dirt","itemRarity":"Common"},{"skinId":5512,"itemName":"DR-H","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":5513,"itemName":"DR-H","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":9634,"itemName":"DR-H","skinName":"Fiber Ray","itemRarity":"Uncommon"},{"skinId":5497,"itemName":"DR-H","skinName":"Foliage","itemRarity":"Common"},{"skinId":5500,"itemName":"DR-H","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":5537,"itemName":"DR-H","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":5536,"itemName":"DR-H","skinName":"Gecko","itemRarity":"Common"},{"skinId":5538,"itemName":"DR-H","skinName":"Gold","itemRarity":"Common"},{"skinId":8996,"itemName":"DR-H","skinName":"Gold Glitter","itemRarity":"Epic"},{"skinId":3036,"itemName":"DR-H","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":5501,"itemName":"DR-H","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":11756,"itemName":"DR-H","skinName":"Iron Hunter","itemRarity":"Rare"},{"skinId":5523,"itemName":"DR-H","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":5530,"itemName":"DR-H","skinName":"Komodo","itemRarity":"Common"},{"skinId":10327,"itemName":"DR-H","skinName":"Last Will","itemRarity":"Rare"},{"skinId":9401,"itemName":"DR-H","skinName":"Lunar Tide","itemRarity":"Rare"},{"skinId":5522,"itemName":"DR-H","skinName":"Marshland","itemRarity":"Common"},{"skinId":11056,"itemName":"DR-H","skinName":"Metallurgy","itemRarity":"Epic"},{"skinId":5519,"itemName":"DR-H","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":5482,"itemName":"DR-H","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":5490,"itemName":"DR-H","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":5509,"itemName":"DR-H","skinName":"Mudslide","itemRarity":"Common"},{"skinId":5495,"itemName":"DR-H","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":5487,"itemName":"DR-H","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":5526,"itemName":"DR-H","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":8283,"itemName":"DR-H","skinName":"Noir","itemRarity":"Epic"},{"skinId":5508,"itemName":"DR-H","skinName":"Overgrown","itemRarity":"Common"},{"skinId":11462,"itemName":"DR-H","skinName":"Overpower","itemRarity":"Rare"},{"skinId":5533,"itemName":"DR-H","skinName":"Pink Python","itemRarity":"Common"},{"skinId":5485,"itemName":"DR-H","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":5483,"itemName":"DR-H","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":5539,"itemName":"DR-H","skinName":"Platinum","itemRarity":"Common"},{"skinId":5528,"itemName":"DR-H","skinName":"Python","itemRarity":"Common"},{"skinId":5529,"itemName":"DR-H","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":5516,"itemName":"DR-H","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":11072,"itemName":"DR-H","skinName":"Revolt","itemRarity":"Epic"},{"skinId":5481,"itemName":"DR-H","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":10216,"itemName":"DR-H","skinName":"Ripped Camo","itemRarity":"Uncommon"},{"skinId":5502,"itemName":"DR-H","skinName":"Ruins","itemRarity":"Common"},{"skinId":5521,"itemName":"DR-H","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":11083,"itemName":"DR-H","skinName":"Sea Serpent","itemRarity":"Rare"},{"skinId":5507,"itemName":"DR-H","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":10519,"itemName":"DR-H","skinName":"Sludge","itemRarity":"Epic"},{"skinId":5488,"itemName":"DR-H","skinName":"Smoke","itemRarity":"Common"},{"skinId":8481,"itemName":"DR-H","skinName":"Snowblind","itemRarity":"Rare"},{"skinId":8886,"itemName":"DR-H","skinName":"Snowframe","itemRarity":"Rare"},{"skinId":5518,"itemName":"DR-H","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":5491,"itemName":"DR-H","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":5514,"itemName":"DR-H","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":5496,"itemName":"DR-H","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":5498,"itemName":"DR-H","skinName":"Tundra","itemRarity":"Common"},{"skinId":5499,"itemName":"DR-H","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":7893,"itemName":"DR-H","skinName":"War Torn","itemRarity":"Rare"},{"skinId":5525,"itemName":"DR-H","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":5524,"itemName":"DR-H","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":11667,"itemName":"DR-H","skinName":"Wastelander","itemRarity":"Epic"},{"skinId":8266,"itemName":"DR-H","skinName":"Wicked Claw","itemRarity":"Legendary"},{"skinId":10182,"itemName":"DR-H","skinName":"Widower","itemRarity":"Epic"},{"skinId":9503,"itemName":"EMP","skinName":"Breach","itemRarity":"Epic"},{"skinId":455,"itemName":"EMP","skinName":"Default","itemRarity":"Common"},{"skinId":8168,"itemName":"EMP","skinName":"Magnetic Pulse","itemRarity":"Epic"},{"skinId":10357,"itemName":"EMP","skinName":"Revolt","itemRarity":"Epic"},{"skinId":9456,"itemName":"EMP","skinName":"Static Discharge","itemRarity":"Epic"},{"skinId":9295,"itemName":"EMP","skinName":"Voltaic","itemRarity":"Rare"},{"skinId":6465,"itemName":"Echo","skinName":"Abominable","itemRarity":"Common"},{"skinId":6488,"itemName":"Echo","skinName":"Anaconda","itemRarity":"Common"},{"skinId":6458,"itemName":"Echo","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":6460,"itemName":"Echo","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":6457,"itemName":"Echo","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":6447,"itemName":"Echo","skinName":"Asphalt","itemRarity":"Common"},{"skinId":6459,"itemName":"Echo","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":6446,"itemName":"Echo","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":6485,"itemName":"Echo","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":6471,"itemName":"Echo","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":6489,"itemName":"Echo","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":6481,"itemName":"Echo","skinName":"Canopy","itemRarity":"Common"},{"skinId":6439,"itemName":"Echo","skinName":"Chain Link","itemRarity":"Common"},{"skinId":6437,"itemName":"Echo","skinName":"China Lake","itemRarity":"Common"},{"skinId":6486,"itemName":"Echo","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":9976,"itemName":"Echo","skinName":"Coiled","itemRarity":"Rare"},{"skinId":8944,"itemName":"Echo","skinName":"Cold Air","itemRarity":"Epic"},{"skinId":6433,"itemName":"Echo","skinName":"Commando","itemRarity":"Common"},{"skinId":6448,"itemName":"Echo","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":10511,"itemName":"Echo","skinName":"Crisis","itemRarity":"Rare"},{"skinId":7078,"itemName":"Echo","skinName":"Damascus","itemRarity":"Common"},{"skinId":6464,"itemName":"Echo","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":6281,"itemName":"Echo","skinName":"Default","itemRarity":"Common"},{"skinId":6302,"itemName":"Echo","skinName":"Demon Eyes","itemRarity":"Epic"},{"skinId":6469,"itemName":"Echo","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":6474,"itemName":"Echo","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":6432,"itemName":"Echo","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8551,"itemName":"Echo","skinName":"Diamond","itemRarity":"Common"},{"skinId":6443,"itemName":"Echo","skinName":"Dirt","itemRarity":"Common"},{"skinId":9522,"itemName":"Echo","skinName":"Dissension","itemRarity":"Epic"},{"skinId":11038,"itemName":"Echo","skinName":"Dragonfly","itemRarity":"Uncommon"},{"skinId":6466,"itemName":"Echo","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":6467,"itemName":"Echo","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":6451,"itemName":"Echo","skinName":"Foliage","itemRarity":"Common"},{"skinId":6454,"itemName":"Echo","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":8212,"itemName":"Echo","skinName":"Full Moon","itemRarity":"Epic"},{"skinId":6491,"itemName":"Echo","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":6490,"itemName":"Echo","skinName":"Gecko","itemRarity":"Common"},{"skinId":6492,"itemName":"Echo","skinName":"Gold","itemRarity":"Common"},{"skinId":6442,"itemName":"Echo","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":6455,"itemName":"Echo","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":6477,"itemName":"Echo","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":6484,"itemName":"Echo","skinName":"Komodo","itemRarity":"Common"},{"skinId":6476,"itemName":"Echo","skinName":"Marshland","itemRarity":"Common"},{"skinId":6473,"itemName":"Echo","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":6435,"itemName":"Echo","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":6444,"itemName":"Echo","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":6463,"itemName":"Echo","skinName":"Mudslide","itemRarity":"Common"},{"skinId":6427,"itemName":"Echo","skinName":"Natural Causes","itemRarity":"Legendary"},{"skinId":6449,"itemName":"Echo","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":6440,"itemName":"Echo","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":6480,"itemName":"Echo","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":6462,"itemName":"Echo","skinName":"Overgrown","itemRarity":"Common"},{"skinId":10042,"itemName":"Echo","skinName":"Phantom Limb","itemRarity":"Rare"},{"skinId":6487,"itemName":"Echo","skinName":"Pink Python","itemRarity":"Common"},{"skinId":6438,"itemName":"Echo","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":6436,"itemName":"Echo","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":6493,"itemName":"Echo","skinName":"Platinum","itemRarity":"Common"},{"skinId":6482,"itemName":"Echo","skinName":"Python","itemRarity":"Common"},{"skinId":9737,"itemName":"Echo","skinName":"Radiometer","itemRarity":"Rare"},{"skinId":6483,"itemName":"Echo","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":6470,"itemName":"Echo","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":6434,"itemName":"Echo","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":7292,"itemName":"Echo","skinName":"Royal Flush","itemRarity":"Rare"},{"skinId":6456,"itemName":"Echo","skinName":"Ruins","itemRarity":"Common"},{"skinId":6475,"itemName":"Echo","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":6461,"itemName":"Echo","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":10811,"itemName":"Echo","skinName":"Sleeping Dragon","itemRarity":"Epic"},{"skinId":6441,"itemName":"Echo","skinName":"Smoke","itemRarity":"Common"},{"skinId":9443,"itemName":"Echo","skinName":"Spyware","itemRarity":"Epic"},{"skinId":11759,"itemName":"Echo","skinName":"Steam Clock","itemRarity":"Epic"},{"skinId":6472,"itemName":"Echo","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":6445,"itemName":"Echo","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":6468,"itemName":"Echo","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":6450,"itemName":"Echo","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":9348,"itemName":"Echo","skinName":"Trance","itemRarity":"Rare"},{"skinId":6452,"itemName":"Echo","skinName":"Tundra","itemRarity":"Common"},{"skinId":6453,"itemName":"Echo","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":6479,"itemName":"Echo","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":6478,"itemName":"Echo","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":9347,"itemName":"Echo","skinName":"Warp","itemRarity":"Uncommon"},{"skinId":11169,"itemName":"Echo","skinName":"Water Lantern","itemRarity":"Rare"},{"skinId":5883,"itemName":"FHJ-18","skinName":"Abominable","itemRarity":"Common"},{"skinId":7973,"itemName":"FHJ-18","skinName":"Alarm","itemRarity":"Uncommon"},{"skinId":6579,"itemName":"FHJ-18","skinName":"Alligator","itemRarity":"Uncommon"},{"skinId":6259,"itemName":"FHJ-18","skinName":"Ammo Box","itemRarity":"Uncommon"},{"skinId":5906,"itemName":"FHJ-18","skinName":"Anaconda","itemRarity":"Common"},{"skinId":6118,"itemName":"FHJ-18","skinName":"Angles","itemRarity":"Uncommon"},{"skinId":5876,"itemName":"FHJ-18","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":5878,"itemName":"FHJ-18","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":5875,"itemName":"FHJ-18","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":5865,"itemName":"FHJ-18","skinName":"Asphalt","itemRarity":"Common"},{"skinId":5877,"itemName":"FHJ-18","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":2189,"itemName":"FHJ-18","skinName":"Bats","itemRarity":"Uncommon"},{"skinId":7300,"itemName":"FHJ-18","skinName":"Black Top","itemRarity":"Uncommon"},{"skinId":5864,"itemName":"FHJ-18","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":5903,"itemName":"FHJ-18","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":5889,"itemName":"FHJ-18","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":6237,"itemName":"FHJ-18","skinName":"Bolted Metal","itemRarity":"Uncommon"},{"skinId":8355,"itemName":"FHJ-18","skinName":"Bronze Arrow","itemRarity":"Rare"},{"skinId":3077,"itemName":"FHJ-18","skinName":"Brushed Red","itemRarity":"Uncommon"},{"skinId":6168,"itemName":"FHJ-18","skinName":"Bullet Point","itemRarity":"Uncommon"},{"skinId":5907,"itemName":"FHJ-18","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":1910,"itemName":"FHJ-18","skinName":"Calcium Chloride","itemRarity":"Uncommon"},{"skinId":5899,"itemName":"FHJ-18","skinName":"Canopy","itemRarity":"Common"},{"skinId":11734,"itemName":"FHJ-18","skinName":"Carrion","itemRarity":"Uncommon"},{"skinId":8203,"itemName":"FHJ-18","skinName":"Cerulean","itemRarity":"Uncommon"},{"skinId":5857,"itemName":"FHJ-18","skinName":"Chain Link","itemRarity":"Common"},{"skinId":5855,"itemName":"FHJ-18","skinName":"China Lake","itemRarity":"Common"},{"skinId":6924,"itemName":"FHJ-18","skinName":"Chroma","itemRarity":"Rare"},{"skinId":5904,"itemName":"FHJ-18","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":6528,"itemName":"FHJ-18","skinName":"Coat","itemRarity":"Uncommon"},{"skinId":5851,"itemName":"FHJ-18","skinName":"Commando","itemRarity":"Common"},{"skinId":8113,"itemName":"FHJ-18","skinName":"Concrete Lightning","itemRarity":"Uncommon"},{"skinId":6103,"itemName":"FHJ-18","skinName":"Copilot","itemRarity":"Rare"},{"skinId":1874,"itemName":"FHJ-18","skinName":"Corpse Digger","itemRarity":"Uncommon"},{"skinId":7661,"itemName":"FHJ-18","skinName":"Court Blue","itemRarity":"Uncommon"},{"skinId":8142,"itemName":"FHJ-18","skinName":"Crackle","itemRarity":"Uncommon"},{"skinId":6933,"itemName":"FHJ-18","skinName":"Crayon","itemRarity":"Uncommon"},{"skinId":5866,"itemName":"FHJ-18","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":6973,"itemName":"FHJ-18","skinName":"Damascus","itemRarity":"Common"},{"skinId":5882,"itemName":"FHJ-18","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":9437,"itemName":"FHJ-18","skinName":"Data Blocks","itemRarity":"Uncommon"},{"skinId":437,"itemName":"FHJ-18","skinName":"Default","itemRarity":"Common"},{"skinId":5887,"itemName":"FHJ-18","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":5892,"itemName":"FHJ-18","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":14,"itemName":"FHJ-18","skinName":"Desert Snake","itemRarity":"Uncommon"},{"skinId":5850,"itemName":"FHJ-18","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":11434,"itemName":"FHJ-18","skinName":"Desert Sunset","itemRarity":"Rare"},{"skinId":2372,"itemName":"FHJ-18","skinName":"Desperate Measures","itemRarity":"Rare"},{"skinId":8507,"itemName":"FHJ-18","skinName":"Diamond","itemRarity":"Common"},{"skinId":5861,"itemName":"FHJ-18","skinName":"Dirt","itemRarity":"Common"},{"skinId":2585,"itemName":"FHJ-18","skinName":"Distressed","itemRarity":"Uncommon"},{"skinId":10613,"itemName":"FHJ-18","skinName":"Dragon Maw","itemRarity":"Epic"},{"skinId":11183,"itemName":"FHJ-18","skinName":"Duel","itemRarity":"Uncommon"},{"skinId":5943,"itemName":"FHJ-18","skinName":"Eagle Feather","itemRarity":"Uncommon"},{"skinId":5884,"itemName":"FHJ-18","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":5885,"itemName":"FHJ-18","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":5869,"itemName":"FHJ-18","skinName":"Foliage","itemRarity":"Common"},{"skinId":6878,"itemName":"FHJ-18","skinName":"Forest Fabric","itemRarity":"Uncommon"},{"skinId":2033,"itemName":"FHJ-18","skinName":"Frostbite","itemRarity":"Uncommon"},{"skinId":5872,"itemName":"FHJ-18","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":2471,"itemName":"FHJ-18","skinName":"Fuel Tank","itemRarity":"Uncommon"},{"skinId":5909,"itemName":"FHJ-18","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":5908,"itemName":"FHJ-18","skinName":"Gecko","itemRarity":"Common"},{"skinId":7541,"itemName":"FHJ-18","skinName":"Glitch","itemRarity":"Uncommon"},{"skinId":5910,"itemName":"FHJ-18","skinName":"Gold","itemRarity":"Common"},{"skinId":7510,"itemName":"FHJ-18","skinName":"Gold Glitter","itemRarity":"Epic"},{"skinId":6902,"itemName":"FHJ-18","skinName":"Graceful Blue","itemRarity":"Uncommon"},{"skinId":1328,"itemName":"FHJ-18","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":2610,"itemName":"FHJ-18","skinName":"Grime","itemRarity":"Uncommon"},{"skinId":5860,"itemName":"FHJ-18","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":7346,"itemName":"FHJ-18","skinName":"Heliotrope","itemRarity":"Uncommon"},{"skinId":2445,"itemName":"FHJ-18","skinName":"Hemophiliac","itemRarity":"Uncommon"},{"skinId":8871,"itemName":"FHJ-18","skinName":"Hereafter","itemRarity":"Uncommon"},{"skinId":1447,"itemName":"FHJ-18","skinName":"Holiday Ribbons","itemRarity":"Uncommon"},{"skinId":11690,"itemName":"FHJ-18","skinName":"Horseshoe","itemRarity":"Uncommon"},{"skinId":5873,"itemName":"FHJ-18","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":8431,"itemName":"FHJ-18","skinName":"Impulse","itemRarity":"Rare"},{"skinId":237,"itemName":"FHJ-18","skinName":"Industrial Revolution","itemRarity":"Rare"},{"skinId":6384,"itemName":"FHJ-18","skinName":"Jungle Cat","itemRarity":"Rare"},{"skinId":5895,"itemName":"FHJ-18","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":5902,"itemName":"FHJ-18","skinName":"Komodo","itemRarity":"Common"},{"skinId":2338,"itemName":"FHJ-18","skinName":"Living Rust","itemRarity":"Epic"},{"skinId":8160,"itemName":"FHJ-18","skinName":"Magnetic Pulse","itemRarity":"Epic"},{"skinId":5894,"itemName":"FHJ-18","skinName":"Marshland","itemRarity":"Common"},{"skinId":663,"itemName":"FHJ-18","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":5891,"itemName":"FHJ-18","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":5853,"itemName":"FHJ-18","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":5862,"itemName":"FHJ-18","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":6037,"itemName":"FHJ-18","skinName":"Moss Rock","itemRarity":"Uncommon"},{"skinId":5881,"itemName":"FHJ-18","skinName":"Mudslide","itemRarity":"Common"},{"skinId":1684,"itemName":"FHJ-18","skinName":"Neon Green","itemRarity":"Uncommon"},{"skinId":5867,"itemName":"FHJ-18","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":5858,"itemName":"FHJ-18","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":5898,"itemName":"FHJ-18","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":7920,"itemName":"FHJ-18","skinName":"Nonconformist","itemRarity":"Uncommon"},{"skinId":5994,"itemName":"FHJ-18","skinName":"Old News","itemRarity":"Uncommon"},{"skinId":5880,"itemName":"FHJ-18","skinName":"Overgrown","itemRarity":"Common"},{"skinId":10585,"itemName":"FHJ-18","skinName":"Paper Star","itemRarity":"Uncommon"},{"skinId":5905,"itemName":"FHJ-18","skinName":"Pink Python","itemRarity":"Common"},{"skinId":5856,"itemName":"FHJ-18","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":5854,"itemName":"FHJ-18","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":6345,"itemName":"FHJ-18","skinName":"Plated Green","itemRarity":"Uncommon"},{"skinId":5911,"itemName":"FHJ-18","skinName":"Platinum","itemRarity":"Common"},{"skinId":6222,"itemName":"FHJ-18","skinName":"Propaganda","itemRarity":"Rare"},{"skinId":6724,"itemName":"FHJ-18","skinName":"Purple Geode","itemRarity":"Uncommon"},{"skinId":5900,"itemName":"FHJ-18","skinName":"Python","itemRarity":"Common"},{"skinId":9588,"itemName":"FHJ-18","skinName":"Quartz","itemRarity":"Epic"},{"skinId":5901,"itemName":"FHJ-18","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":2905,"itemName":"FHJ-18","skinName":"Record Scratch","itemRarity":"Uncommon"},{"skinId":10632,"itemName":"FHJ-18","skinName":"Red Sun","itemRarity":"Uncommon"},{"skinId":5888,"itemName":"FHJ-18","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":765,"itemName":"FHJ-18","skinName":"Reindeer","itemRarity":"Uncommon"},{"skinId":1742,"itemName":"FHJ-18","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":10266,"itemName":"FHJ-18","skinName":"Revolt","itemRarity":"Epic"},{"skinId":5852,"itemName":"FHJ-18","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":2887,"itemName":"FHJ-18","skinName":"Ruby","itemRarity":"Epic"},{"skinId":5874,"itemName":"FHJ-18","skinName":"Ruins","itemRarity":"Common"},{"skinId":10109,"itemName":"FHJ-18","skinName":"Rust Trim","itemRarity":"Rare"},{"skinId":2298,"itemName":"FHJ-18","skinName":"Rusted","itemRarity":"Uncommon"},{"skinId":5893,"itemName":"FHJ-18","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":10596,"itemName":"FHJ-18","skinName":"Severed","itemRarity":"Rare"},{"skinId":6154,"itemName":"FHJ-18","skinName":"Sewed Leather","itemRarity":"Rare"},{"skinId":5879,"itemName":"FHJ-18","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":2264,"itemName":"FHJ-18","skinName":"Slate","itemRarity":"Uncommon"},{"skinId":7410,"itemName":"FHJ-18","skinName":"Sleight of Hand","itemRarity":"Rare"},{"skinId":5859,"itemName":"FHJ-18","skinName":"Smoke","itemRarity":"Common"},{"skinId":6423,"itemName":"FHJ-18","skinName":"Spores","itemRarity":"Epic"},{"skinId":652,"itemName":"FHJ-18","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":140,"itemName":"FHJ-18","skinName":"Stained Glass","itemRarity":"Uncommon"},{"skinId":2707,"itemName":"FHJ-18","skinName":"Stained Steel","itemRarity":"Rare"},{"skinId":8913,"itemName":"FHJ-18","skinName":"Starlight","itemRarity":"Rare"},{"skinId":9455,"itemName":"FHJ-18","skinName":"Static Discharge","itemRarity":"Epic"},{"skinId":6868,"itemName":"FHJ-18","skinName":"Subterfuge","itemRarity":"Rare"},{"skinId":5890,"itemName":"FHJ-18","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":5863,"itemName":"FHJ-18","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":8292,"itemName":"FHJ-18","skinName":"Target Lock","itemRarity":"Epic"},{"skinId":5886,"itemName":"FHJ-18","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":6640,"itemName":"FHJ-18","skinName":"Tourmaline","itemRarity":"Epic"},{"skinId":5868,"itemName":"FHJ-18","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":2528,"itemName":"FHJ-18","skinName":"Tree Bark","itemRarity":"Uncommon"},{"skinId":6822,"itemName":"FHJ-18","skinName":"Tree Ring","itemRarity":"Uncommon"},{"skinId":5870,"itemName":"FHJ-18","skinName":"Tundra","itemRarity":"Common"},{"skinId":104,"itemName":"FHJ-18","skinName":"Turquoise","itemRarity":"Rare"},{"skinId":6672,"itemName":"FHJ-18","skinName":"Undergrowth","itemRarity":"Uncommon"},{"skinId":5871,"itemName":"FHJ-18","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":1897,"itemName":"FHJ-18","skinName":"Urban Waste","itemRarity":"Rare"},{"skinId":11485,"itemName":"FHJ-18","skinName":"Wanted","itemRarity":"Uncommon"},{"skinId":5897,"itemName":"FHJ-18","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":5896,"itemName":"FHJ-18","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":9062,"itemName":"FHJ-18","skinName":"Warhead","itemRarity":"Uncommon"},{"skinId":9702,"itemName":"FHJ-18","skinName":"Warp","itemRarity":"Uncommon"},{"skinId":1806,"itemName":"FHJ-18","skinName":"White Lies","itemRarity":"Uncommon"},{"skinId":9081,"itemName":"FHJ-18","skinName":"Wintergreen","itemRarity":"Uncommon"},{"skinId":8710,"itemName":"FHJ-18","skinName":"Winterwood","itemRarity":"Rare"},{"skinId":6022,"itemName":"FHJ-18","skinName":"Woodland","itemRarity":"Rare"},{"skinId":1563,"itemName":"FHJ-18","skinName":"Yellow Camo","itemRarity":"Uncommon"},{"skinId":7689,"itemName":"FHJ-18","skinName":"Yellow Fabric","itemRarity":"Uncommon"},{"skinId":9145,"itemName":"FR .556","skinName":"Abominable","itemRarity":"Common"},{"skinId":9168,"itemName":"FR .556","skinName":"Anaconda","itemRarity":"Common"},{"skinId":9138,"itemName":"FR .556","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":9140,"itemName":"FR .556","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":9137,"itemName":"FR .556","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":9127,"itemName":"FR .556","skinName":"Asphalt","itemRarity":"Common"},{"skinId":9139,"itemName":"FR .556","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":9126,"itemName":"FR .556","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":9165,"itemName":"FR .556","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":9151,"itemName":"FR .556","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":9169,"itemName":"FR .556","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":9161,"itemName":"FR .556","skinName":"Canopy","itemRarity":"Common"},{"skinId":9119,"itemName":"FR .556","skinName":"Chain Link","itemRarity":"Common"},{"skinId":9117,"itemName":"FR .556","skinName":"China Lake","itemRarity":"Common"},{"skinId":9166,"itemName":"FR .556","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":9113,"itemName":"FR .556","skinName":"Commando","itemRarity":"Common"},{"skinId":9128,"itemName":"FR .556","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":9174,"itemName":"FR .556","skinName":"Damascus","itemRarity":"Common"},{"skinId":9144,"itemName":"FR .556","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":9223,"itemName":"FR .556","skinName":"Default","itemRarity":"Common"},{"skinId":9149,"itemName":"FR .556","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":9154,"itemName":"FR .556","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":9112,"itemName":"FR .556","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":9175,"itemName":"FR .556","skinName":"Diamond","itemRarity":"Common"},{"skinId":9123,"itemName":"FR .556","skinName":"Dirt","itemRarity":"Common"},{"skinId":9146,"itemName":"FR .556","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":9147,"itemName":"FR .556","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":9131,"itemName":"FR .556","skinName":"Foliage","itemRarity":"Common"},{"skinId":9134,"itemName":"FR .556","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":9171,"itemName":"FR .556","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":9170,"itemName":"FR .556","skinName":"Gecko","itemRarity":"Common"},{"skinId":9172,"itemName":"FR .556","skinName":"Gold","itemRarity":"Common"},{"skinId":9122,"itemName":"FR .556","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":9135,"itemName":"FR .556","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":10353,"itemName":"FR .556","skinName":"Insurgency","itemRarity":"Epic"},{"skinId":9157,"itemName":"FR .556","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":9164,"itemName":"FR .556","skinName":"Komodo","itemRarity":"Common"},{"skinId":10878,"itemName":"FR .556","skinName":"Kuudere","itemRarity":"Epic"},{"skinId":9156,"itemName":"FR .556","skinName":"Marshland","itemRarity":"Common"},{"skinId":9153,"itemName":"FR .556","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":9115,"itemName":"FR .556","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":9124,"itemName":"FR .556","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":9143,"itemName":"FR .556","skinName":"Mudslide","itemRarity":"Common"},{"skinId":11704,"itemName":"FR .556","skinName":"Munitions","itemRarity":"Epic"},{"skinId":9129,"itemName":"FR .556","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":9120,"itemName":"FR .556","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":9160,"itemName":"FR .556","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":9142,"itemName":"FR .556","skinName":"Overgrown","itemRarity":"Common"},{"skinId":10975,"itemName":"FR .556","skinName":"Patchwork","itemRarity":"Epic"},{"skinId":9167,"itemName":"FR .556","skinName":"Pink Python","itemRarity":"Common"},{"skinId":9118,"itemName":"FR .556","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":9116,"itemName":"FR .556","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":9173,"itemName":"FR .556","skinName":"Platinum","itemRarity":"Common"},{"skinId":9162,"itemName":"FR .556","skinName":"Python","itemRarity":"Common"},{"skinId":9163,"itemName":"FR .556","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":9150,"itemName":"FR .556","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":9114,"itemName":"FR .556","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":9326,"itemName":"FR .556","skinName":"Rogue Agent","itemRarity":"Epic"},{"skinId":9136,"itemName":"FR .556","skinName":"Ruins","itemRarity":"Common"},{"skinId":10067,"itemName":"FR .556","skinName":"Ruptured Steel","itemRarity":"Rare"},{"skinId":9155,"itemName":"FR .556","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":9141,"itemName":"FR .556","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":9121,"itemName":"FR .556","skinName":"Smoke","itemRarity":"Common"},{"skinId":9499,"itemName":"FR .556","skinName":"Superhighway","itemRarity":"Legendary"},{"skinId":9152,"itemName":"FR .556","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":9125,"itemName":"FR .556","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":9148,"itemName":"FR .556","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":9130,"itemName":"FR .556","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":9132,"itemName":"FR .556","skinName":"Tundra","itemRarity":"Common"},{"skinId":9133,"itemName":"FR .556","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":9159,"itemName":"FR .556","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":9158,"itemName":"FR .556","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":7112,"itemName":"Fennec","skinName":"Abominable","itemRarity":"Common"},{"skinId":7135,"itemName":"Fennec","skinName":"Anaconda","itemRarity":"Common"},{"skinId":7105,"itemName":"Fennec","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":7107,"itemName":"Fennec","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":7104,"itemName":"Fennec","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":7682,"itemName":"Fennec","skinName":"Ascended","itemRarity":"Mythic"},{"skinId":7094,"itemName":"Fennec","skinName":"Asphalt","itemRarity":"Common"},{"skinId":7106,"itemName":"Fennec","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":7093,"itemName":"Fennec","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":7132,"itemName":"Fennec","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":7118,"itemName":"Fennec","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":7136,"itemName":"Fennec","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":7128,"itemName":"Fennec","skinName":"Canopy","itemRarity":"Common"},{"skinId":7086,"itemName":"Fennec","skinName":"Chain Link","itemRarity":"Common"},{"skinId":7084,"itemName":"Fennec","skinName":"China Lake","itemRarity":"Common"},{"skinId":7133,"itemName":"Fennec","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":7080,"itemName":"Fennec","skinName":"Commando","itemRarity":"Common"},{"skinId":7095,"itemName":"Fennec","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7141,"itemName":"Fennec","skinName":"Damascus","itemRarity":"Common"},{"skinId":7111,"itemName":"Fennec","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":9728,"itemName":"Fennec","skinName":"Death Engine","itemRarity":"Epic"},{"skinId":7205,"itemName":"Fennec","skinName":"Default","itemRarity":"Common"},{"skinId":7116,"itemName":"Fennec","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":7121,"itemName":"Fennec","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":7079,"itemName":"Fennec","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":11422,"itemName":"Fennec","skinName":"Desert Sunset","itemRarity":"Rare"},{"skinId":8552,"itemName":"Fennec","skinName":"Diamond","itemRarity":"Common"},{"skinId":7090,"itemName":"Fennec","skinName":"Dirt","itemRarity":"Common"},{"skinId":7113,"itemName":"Fennec","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":7114,"itemName":"Fennec","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":7098,"itemName":"Fennec","skinName":"Foliage","itemRarity":"Common"},{"skinId":7101,"itemName":"Fennec","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":7138,"itemName":"Fennec","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":7137,"itemName":"Fennec","skinName":"Gecko","itemRarity":"Common"},{"skinId":7139,"itemName":"Fennec","skinName":"Gold","itemRarity":"Common"},{"skinId":7089,"itemName":"Fennec","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":7102,"itemName":"Fennec","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":10316,"itemName":"Fennec","skinName":"Imprint","itemRarity":"Rare"},{"skinId":10619,"itemName":"Fennec","skinName":"Inferno","itemRarity":"Rare"},{"skinId":7124,"itemName":"Fennec","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":7131,"itemName":"Fennec","skinName":"Komodo","itemRarity":"Common"},{"skinId":7123,"itemName":"Fennec","skinName":"Marshland","itemRarity":"Common"},{"skinId":8718,"itemName":"Fennec","skinName":"Midnight","itemRarity":"Epic"},{"skinId":7120,"itemName":"Fennec","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":7082,"itemName":"Fennec","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":7091,"itemName":"Fennec","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":7110,"itemName":"Fennec","skinName":"Mudslide","itemRarity":"Common"},{"skinId":7096,"itemName":"Fennec","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":7087,"itemName":"Fennec","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":7127,"itemName":"Fennec","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":7109,"itemName":"Fennec","skinName":"Overgrown","itemRarity":"Common"},{"skinId":11031,"itemName":"Fennec","skinName":"Perfect Balance","itemRarity":"Rare"},{"skinId":7134,"itemName":"Fennec","skinName":"Pink Python","itemRarity":"Common"},{"skinId":7085,"itemName":"Fennec","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":7083,"itemName":"Fennec","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":7140,"itemName":"Fennec","skinName":"Platinum","itemRarity":"Common"},{"skinId":7129,"itemName":"Fennec","skinName":"Python","itemRarity":"Common"},{"skinId":7130,"itemName":"Fennec","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":7117,"itemName":"Fennec","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":7081,"itemName":"Fennec","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":10510,"itemName":"Fennec","skinName":"Ripped Camo","itemRarity":"Uncommon"},{"skinId":8986,"itemName":"Fennec","skinName":"Royal Coffer","itemRarity":"Epic"},{"skinId":7103,"itemName":"Fennec","skinName":"Ruins","itemRarity":"Common"},{"skinId":7122,"itemName":"Fennec","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":7108,"itemName":"Fennec","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":7088,"itemName":"Fennec","skinName":"Smoke","itemRarity":"Common"},{"skinId":7119,"itemName":"Fennec","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":7092,"itemName":"Fennec","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":7115,"itemName":"Fennec","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":7097,"itemName":"Fennec","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":7099,"itemName":"Fennec","skinName":"Tundra","itemRarity":"Common"},{"skinId":7100,"itemName":"Fennec","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":7274,"itemName":"Fennec","skinName":"Verdant","itemRarity":"Epic"},{"skinId":7126,"itemName":"Fennec","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":7125,"itemName":"Fennec","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":648,"itemName":"Flashbang Grenade","skinName":"1001 Nights","itemRarity":"Rare"},{"skinId":2123,"itemName":"Flashbang Grenade","skinName":"Abnormality","itemRarity":"Uncommon"},{"skinId":8022,"itemName":"Flashbang Grenade","skinName":"Acid Helix","itemRarity":"Rare"},{"skinId":7883,"itemName":"Flashbang Grenade","skinName":"Alarm","itemRarity":"Uncommon"},{"skinId":6583,"itemName":"Flashbang Grenade","skinName":"Alligator","itemRarity":"Uncommon"},{"skinId":11482,"itemName":"Flashbang Grenade","skinName":"Ambush","itemRarity":"Uncommon"},{"skinId":6121,"itemName":"Flashbang Grenade","skinName":"Angles","itemRarity":"Uncommon"},{"skinId":6689,"itemName":"Flashbang Grenade","skinName":"Ashen Viper","itemRarity":"Rare"},{"skinId":1341,"itemName":"Flashbang Grenade","skinName":"Aurora Borealis","itemRarity":"Rare"},{"skinId":6861,"itemName":"Flashbang Grenade","skinName":"Azurite","itemRarity":"Epic"},{"skinId":213,"itemName":"Flashbang Grenade","skinName":"Bandit","itemRarity":"Rare"},{"skinId":6610,"itemName":"Flashbang Grenade","skinName":"Beekeeper","itemRarity":"Epic"},{"skinId":10378,"itemName":"Flashbang Grenade","skinName":"Black Marble","itemRarity":"Uncommon"},{"skinId":7305,"itemName":"Flashbang Grenade","skinName":"Black Top","itemRarity":"Uncommon"},{"skinId":2252,"itemName":"Flashbang Grenade","skinName":"Blue Carbon","itemRarity":"Rare"},{"skinId":690,"itemName":"Flashbang Grenade","skinName":"Blue Graffiti","itemRarity":"Uncommon"},{"skinId":1968,"itemName":"Flashbang Grenade","skinName":"Blue Wave","itemRarity":"Uncommon"},{"skinId":2896,"itemName":"Flashbang Grenade","skinName":"Bogged Down","itemRarity":"Rare"},{"skinId":6240,"itemName":"Flashbang Grenade","skinName":"Bolted Metal","itemRarity":"Uncommon"},{"skinId":1132,"itemName":"Flashbang Grenade","skinName":"Brambles","itemRarity":"Rare"},{"skinId":3080,"itemName":"Flashbang Grenade","skinName":"Brushed Red","itemRarity":"Uncommon"},{"skinId":6171,"itemName":"Flashbang Grenade","skinName":"Bullet Point","itemRarity":"Uncommon"},{"skinId":9202,"itemName":"Flashbang Grenade","skinName":"Bunker","itemRarity":"Uncommon"},{"skinId":1916,"itemName":"Flashbang Grenade","skinName":"Calcium Chloride","itemRarity":"Uncommon"},{"skinId":1107,"itemName":"Flashbang Grenade","skinName":"Candy Cane","itemRarity":"Rare"},{"skinId":8209,"itemName":"Flashbang Grenade","skinName":"Cerulean","itemRarity":"Uncommon"},{"skinId":7560,"itemName":"Flashbang Grenade","skinName":"Citrine","itemRarity":"Epic"},{"skinId":555,"itemName":"Flashbang Grenade","skinName":"Clown","itemRarity":"Rare"},{"skinId":6532,"itemName":"Flashbang Grenade","skinName":"Coat","itemRarity":"Uncommon"},{"skinId":10493,"itemName":"Flashbang Grenade","skinName":"Color Burst","itemRarity":"Rare"},{"skinId":1759,"itemName":"Flashbang Grenade","skinName":"Colorful","itemRarity":"Rare"},{"skinId":8115,"itemName":"Flashbang Grenade","skinName":"Concrete Lightning","itemRarity":"Uncommon"},{"skinId":1879,"itemName":"Flashbang Grenade","skinName":"Corpse Digger","itemRarity":"Uncommon"},{"skinId":2787,"itemName":"Flashbang Grenade","skinName":"Corroded","itemRarity":"Uncommon"},{"skinId":7665,"itemName":"Flashbang Grenade","skinName":"Court Blue","itemRarity":"Uncommon"},{"skinId":8737,"itemName":"Flashbang Grenade","skinName":"Crackle","itemRarity":"Uncommon"},{"skinId":6940,"itemName":"Flashbang Grenade","skinName":"Crayon","itemRarity":"Uncommon"},{"skinId":331,"itemName":"Flashbang Grenade","skinName":"Crescent Moon","itemRarity":"Rare"},{"skinId":11009,"itemName":"Flashbang Grenade","skinName":"Cumulus","itemRarity":"Uncommon"},{"skinId":374,"itemName":"Flashbang Grenade","skinName":"Dark Fiber","itemRarity":"Uncommon"},{"skinId":449,"itemName":"Flashbang Grenade","skinName":"Default","itemRarity":"Common"},{"skinId":220,"itemName":"Flashbang Grenade","skinName":"Desert Snake","itemRarity":"Uncommon"},{"skinId":2591,"itemName":"Flashbang Grenade","skinName":"Distressed","itemRarity":"Uncommon"},{"skinId":11040,"itemName":"Flashbang Grenade","skinName":"Dragonfly","itemRarity":"Uncommon"},{"skinId":10289,"itemName":"Flashbang Grenade","skinName":"Duct Tape","itemRarity":"Uncommon"},{"skinId":11186,"itemName":"Flashbang Grenade","skinName":"Duel","itemRarity":"Uncommon"},{"skinId":1761,"itemName":"Flashbang Grenade","skinName":"Easter '20","itemRarity":"Uncommon"},{"skinId":6500,"itemName":"Flashbang Grenade","skinName":"Echolocation","itemRarity":"Epic"},{"skinId":2819,"itemName":"Flashbang Grenade","skinName":"Electric","itemRarity":"Rare"},{"skinId":1465,"itemName":"Flashbang Grenade","skinName":"Eruption","itemRarity":"Epic"},{"skinId":9603,"itemName":"Flashbang Grenade","skinName":"Eternal Youth","itemRarity":"Uncommon"},{"skinId":1152,"itemName":"Flashbang Grenade","skinName":"Evil Chip","itemRarity":"Rare"},{"skinId":10492,"itemName":"Flashbang Grenade","skinName":"Eyes in the Dark","itemRarity":"Uncommon"},{"skinId":2126,"itemName":"Flashbang Grenade","skinName":"Fashion Purple","itemRarity":"Uncommon"},{"skinId":9641,"itemName":"Flashbang Grenade","skinName":"Fiber Ray","itemRarity":"Uncommon"},{"skinId":6882,"itemName":"Flashbang Grenade","skinName":"Forest Fabric","itemRarity":"Uncommon"},{"skinId":2038,"itemName":"Flashbang Grenade","skinName":"Frostbite","itemRarity":"Uncommon"},{"skinId":2477,"itemName":"Flashbang Grenade","skinName":"Fuel Tank","itemRarity":"Uncommon"},{"skinId":295,"itemName":"Flashbang Grenade","skinName":"Gallant","itemRarity":"Rare"},{"skinId":9980,"itemName":"Flashbang Grenade","skinName":"Gas Cloud","itemRarity":"Uncommon"},{"skinId":1104,"itemName":"Flashbang Grenade","skinName":"Glacier","itemRarity":"Rare"},{"skinId":7733,"itemName":"Flashbang Grenade","skinName":"Graceful Gold","itemRarity":"Uncommon"},{"skinId":2864,"itemName":"Flashbang Grenade","skinName":"Gray Skies","itemRarity":"Uncommon"},{"skinId":2124,"itemName":"Flashbang Grenade","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":2617,"itemName":"Flashbang Grenade","skinName":"Grime","itemRarity":"Uncommon"},{"skinId":11239,"itemName":"Flashbang Grenade","skinName":"Groovy","itemRarity":"Rare"},{"skinId":6636,"itemName":"Flashbang Grenade","skinName":"Halloween","itemRarity":"Rare"},{"skinId":1551,"itemName":"Flashbang Grenade","skinName":"Hazard","itemRarity":"Rare"},{"skinId":2125,"itemName":"Flashbang Grenade","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":7351,"itemName":"Flashbang Grenade","skinName":"Heliotrope","itemRarity":"Uncommon"},{"skinId":2450,"itemName":"Flashbang Grenade","skinName":"Hemophiliac","itemRarity":"Uncommon"},{"skinId":11694,"itemName":"Flashbang Grenade","skinName":"Horseshoe","itemRarity":"Uncommon"},{"skinId":235,"itemName":"Flashbang Grenade","skinName":"Industrial Revolution","itemRarity":"Rare"},{"skinId":1176,"itemName":"Flashbang Grenade","skinName":"Irradiated Amethyst","itemRarity":"Rare"},{"skinId":6385,"itemName":"Flashbang Grenade","skinName":"Jungle Cat","itemRarity":"Rare"},{"skinId":7435,"itemName":"Flashbang Grenade","skinName":"Kapow","itemRarity":"Uncommon"},{"skinId":9308,"itemName":"Flashbang Grenade","skinName":"Light Show","itemRarity":"Uncommon"},{"skinId":10173,"itemName":"Flashbang Grenade","skinName":"Lingering","itemRarity":"Uncommon"},{"skinId":1283,"itemName":"Flashbang Grenade","skinName":"Lunar New Year","itemRarity":"Rare"},{"skinId":7912,"itemName":"Flashbang Grenade","skinName":"Lunar Tide","itemRarity":"Rare"},{"skinId":1016,"itemName":"Flashbang Grenade","skinName":"Magic Eye","itemRarity":"Rare"},{"skinId":1394,"itemName":"Flashbang Grenade","skinName":"Maple Leaves","itemRarity":"Uncommon"},{"skinId":1231,"itemName":"Flashbang Grenade","skinName":"Mardi Gras","itemRarity":"Rare"},{"skinId":2127,"itemName":"Flashbang Grenade","skinName":"Marine Blue","itemRarity":"Uncommon"},{"skinId":2122,"itemName":"Flashbang Grenade","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":6039,"itemName":"Flashbang Grenade","skinName":"Moss Rock","itemRarity":"Uncommon"},{"skinId":1690,"itemName":"Flashbang Grenade","skinName":"Neon Green","itemRarity":"Uncommon"},{"skinId":571,"itemName":"Flashbang Grenade","skinName":"Neon Tiger","itemRarity":"Uncommon"},{"skinId":7924,"itemName":"Flashbang Grenade","skinName":"Nonconformist","itemRarity":"Uncommon"},{"skinId":2765,"itemName":"Flashbang Grenade","skinName":"Oil Spill","itemRarity":"Epic"},{"skinId":10253,"itemName":"Flashbang Grenade","skinName":"Paint Smear","itemRarity":"Uncommon"},{"skinId":6322,"itemName":"Flashbang Grenade","skinName":"Plated Gray","itemRarity":"Uncommon"},{"skinId":6403,"itemName":"Flashbang Grenade","skinName":"Plated Red","itemRarity":"Uncommon"},{"skinId":8040,"itemName":"Flashbang Grenade","skinName":"Pocket Shock","itemRarity":"Uncommon"},{"skinId":6223,"itemName":"Flashbang Grenade","skinName":"Propaganda","itemRarity":"Rare"},{"skinId":6728,"itemName":"Flashbang Grenade","skinName":"Purple Geode","itemRarity":"Uncommon"},{"skinId":9590,"itemName":"Flashbang Grenade","skinName":"Quartz","itemRarity":"Epic"},{"skinId":933,"itemName":"Flashbang Grenade","skinName":"Red","itemRarity":"Uncommon"},{"skinId":2838,"itemName":"Flashbang Grenade","skinName":"Reindeer","itemRarity":"Uncommon"},{"skinId":2040,"itemName":"Flashbang Grenade","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":9753,"itemName":"Flashbang Grenade","skinName":"Rewind","itemRarity":"Uncommon"},{"skinId":10066,"itemName":"Flashbang Grenade","skinName":"Ruptured Steel","itemRarity":"Rare"},{"skinId":2722,"itemName":"Flashbang Grenade","skinName":"Rusted","itemRarity":"Uncommon"},{"skinId":9726,"itemName":"Flashbang Grenade","skinName":"Screen Tear","itemRarity":"Uncommon"},{"skinId":10835,"itemName":"Flashbang Grenade","skinName":"Shrine","itemRarity":"Uncommon"},{"skinId":2269,"itemName":"Flashbang Grenade","skinName":"Slate","itemRarity":"Uncommon"},{"skinId":7411,"itemName":"Flashbang Grenade","skinName":"Sleight of Hand","itemRarity":"Rare"},{"skinId":2596,"itemName":"Flashbang Grenade","skinName":"Snake Bite","itemRarity":"Epic"},{"skinId":838,"itemName":"Flashbang Grenade","skinName":"Space Station","itemRarity":"Epic"},{"skinId":2577,"itemName":"Flashbang Grenade","skinName":"Spoils","itemRarity":"Rare"},{"skinId":1131,"itemName":"Flashbang Grenade","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":2708,"itemName":"Flashbang Grenade","skinName":"Stained Steel","itemRarity":"Rare"},{"skinId":8915,"itemName":"Flashbang Grenade","skinName":"Starlight","itemRarity":"Rare"},{"skinId":1241,"itemName":"Flashbang Grenade","skinName":"Steel Cut","itemRarity":"Rare"},{"skinId":2350,"itemName":"Flashbang Grenade","skinName":"Stream","itemRarity":"Uncommon"},{"skinId":8250,"itemName":"Flashbang Grenade","skinName":"Tagged","itemRarity":"Uncommon"},{"skinId":8293,"itemName":"Flashbang Grenade","skinName":"Target Lock","itemRarity":"Epic"},{"skinId":926,"itemName":"Flashbang Grenade","skinName":"Technologic","itemRarity":"Uncommon"},{"skinId":9339,"itemName":"Flashbang Grenade","skinName":"The Numbers","itemRarity":"Uncommon"},{"skinId":8765,"itemName":"Flashbang Grenade","skinName":"Tracker","itemRarity":"Uncommon"},{"skinId":2534,"itemName":"Flashbang Grenade","skinName":"Tree Bark","itemRarity":"Uncommon"},{"skinId":6826,"itemName":"Flashbang Grenade","skinName":"Tree Ring","itemRarity":"Uncommon"},{"skinId":1504,"itemName":"Flashbang Grenade","skinName":"Tropical","itemRarity":"Uncommon"},{"skinId":1452,"itemName":"Flashbang Grenade","skinName":"Ukiyo-e","itemRarity":"Rare"},{"skinId":8455,"itemName":"Flashbang Grenade","skinName":"Uncertain","itemRarity":"Uncommon"},{"skinId":6676,"itemName":"Flashbang Grenade","skinName":"Undergrowth","itemRarity":"Uncommon"},{"skinId":9065,"itemName":"Flashbang Grenade","skinName":"Warhead","itemRarity":"Uncommon"},{"skinId":9676,"itemName":"Flashbang Grenade","skinName":"Warmth","itemRarity":"Uncommon"},{"skinId":11605,"itemName":"Flashbang Grenade","skinName":"Watcher","itemRarity":"Uncommon"},{"skinId":1812,"itemName":"Flashbang Grenade","skinName":"White Lies","itemRarity":"Uncommon"},{"skinId":1332,"itemName":"Flashbang Grenade","skinName":"Year of the Rat","itemRarity":"Rare"},{"skinId":1568,"itemName":"Flashbang Grenade","skinName":"Yellow Camo","itemRarity":"Uncommon"},{"skinId":1818,"itemName":"Flashbang Grenade","skinName":"Yellow Snow","itemRarity":"Uncommon"},{"skinId":577,"itemName":"Flashbang Grenade","skinName":"Yellow Triangle","itemRarity":"Uncommon"},{"skinId":1350,"itemName":"Flashbang Grenade","skinName":"Zombie Gene","itemRarity":"Uncommon"},{"skinId":9687,"itemName":"Folding Knife","skinName":"Mire","itemRarity":"Epic"},{"skinId":1250,"itemName":"Folding Knife","skinName":"Pumpkin Head","itemRarity":"Epic"},{"skinId":643,"itemName":"Frag Grenade","skinName":"1001 Nights","itemRarity":"Rare"},{"skinId":1270,"itemName":"Frag Grenade","skinName":"Abnormality","itemRarity":"Uncommon"},{"skinId":6580,"itemName":"Frag Grenade","skinName":"Alligator","itemRarity":"Uncommon"},{"skinId":11481,"itemName":"Frag Grenade","skinName":"Ambush","itemRarity":"Uncommon"},{"skinId":6260,"itemName":"Frag Grenade","skinName":"Ammo Box","itemRarity":"Uncommon"},{"skinId":924,"itemName":"Frag Grenade","skinName":"Ancient Runes","itemRarity":"Uncommon"},{"skinId":6119,"itemName":"Frag Grenade","skinName":"Angles","itemRarity":"Uncommon"},{"skinId":2919,"itemName":"Frag Grenade","skinName":"Arctic Digital","itemRarity":"Uncommon"},{"skinId":366,"itemName":"Frag Grenade","skinName":"Ashen Viper","itemRarity":"Rare"},{"skinId":1343,"itemName":"Frag Grenade","skinName":"Aurora Borealis","itemRarity":"Rare"},{"skinId":6793,"itemName":"Frag Grenade","skinName":"Azurite","itemRarity":"Epic"},{"skinId":197,"itemName":"Frag Grenade","skinName":"Bandit","itemRarity":"Rare"},{"skinId":2130,"itemName":"Frag Grenade","skinName":"Bats","itemRarity":"Uncommon"},{"skinId":7308,"itemName":"Frag Grenade","skinName":"Black Top","itemRarity":"Uncommon"},{"skinId":689,"itemName":"Frag Grenade","skinName":"Blue Graffiti","itemRarity":"Uncommon"},{"skinId":1503,"itemName":"Frag Grenade","skinName":"Blue Wave","itemRarity":"Uncommon"},{"skinId":6238,"itemName":"Frag Grenade","skinName":"Bolted Metal","itemRarity":"Uncommon"},{"skinId":9049,"itemName":"Frag Grenade","skinName":"Bombs Away","itemRarity":"Epic"},{"skinId":1125,"itemName":"Frag Grenade","skinName":"Brambles","itemRarity":"Rare"},{"skinId":3078,"itemName":"Frag Grenade","skinName":"Brushed Red","itemRarity":"Uncommon"},{"skinId":6710,"itemName":"Frag Grenade","skinName":"Bug Spray","itemRarity":"Rare"},{"skinId":1912,"itemName":"Frag Grenade","skinName":"Calcium Chloride","itemRarity":"Uncommon"},{"skinId":1109,"itemName":"Frag Grenade","skinName":"Candy Cane","itemRarity":"Rare"},{"skinId":8210,"itemName":"Frag Grenade","skinName":"Cerulean","itemRarity":"Uncommon"},{"skinId":95,"itemName":"Frag Grenade","skinName":"Championship 2020","itemRarity":"Rare"},{"skinId":2042,"itemName":"Frag Grenade","skinName":"Championship Purple","itemRarity":"Epic"},{"skinId":2015,"itemName":"Frag Grenade","skinName":"Chrome Wave","itemRarity":"Epic"},{"skinId":6529,"itemName":"Frag Grenade","skinName":"Coat","itemRarity":"Uncommon"},{"skinId":10364,"itemName":"Frag Grenade","skinName":"Coiled","itemRarity":"Rare"},{"skinId":6958,"itemName":"Frag Grenade","skinName":"Color Burst","itemRarity":"Rare"},{"skinId":2750,"itemName":"Frag Grenade","skinName":"Color Spectrum","itemRarity":"Epic"},{"skinId":1028,"itemName":"Frag Grenade","skinName":"Colorful","itemRarity":"Rare"},{"skinId":8118,"itemName":"Frag Grenade","skinName":"Concrete Lightning","itemRarity":"Uncommon"},{"skinId":1753,"itemName":"Frag Grenade","skinName":"Contamination","itemRarity":"Epic"},{"skinId":6104,"itemName":"Frag Grenade","skinName":"Copilot","itemRarity":"Rare"},{"skinId":1876,"itemName":"Frag Grenade","skinName":"Corpse Digger","itemRarity":"Uncommon"},{"skinId":2784,"itemName":"Frag Grenade","skinName":"Corroded","itemRarity":"Uncommon"},{"skinId":1202,"itemName":"Frag Grenade","skinName":"Cotton Candy","itemRarity":"Rare"},{"skinId":7662,"itemName":"Frag Grenade","skinName":"Court Blue","itemRarity":"Uncommon"},{"skinId":8147,"itemName":"Frag Grenade","skinName":"Crackle","itemRarity":"Uncommon"},{"skinId":10796,"itemName":"Frag Grenade","skinName":"Crane Style","itemRarity":"Uncommon"},{"skinId":332,"itemName":"Frag Grenade","skinName":"Crescent Moon","itemRarity":"Rare"},{"skinId":7522,"itemName":"Frag Grenade","skinName":"Crossed Cables","itemRarity":"Rare"},{"skinId":2128,"itemName":"Frag Grenade","skinName":"Cubic Illusion","itemRarity":"Rare"},{"skinId":10532,"itemName":"Frag Grenade","skinName":"Cumulus","itemRarity":"Uncommon"},{"skinId":7641,"itemName":"Frag Grenade","skinName":"Cyberline","itemRarity":"Rare"},{"skinId":8922,"itemName":"Frag Grenade","skinName":"Dalmatian","itemRarity":"Uncommon"},{"skinId":373,"itemName":"Frag Grenade","skinName":"Dark Fiber","itemRarity":"Uncommon"},{"skinId":2463,"itemName":"Frag Grenade","skinName":"Deep Forest","itemRarity":"Rare"},{"skinId":448,"itemName":"Frag Grenade","skinName":"Default","itemRarity":"Common"},{"skinId":11519,"itemName":"Frag Grenade","skinName":"Denim","itemRarity":"Uncommon"},{"skinId":195,"itemName":"Frag Grenade","skinName":"Desert Snake","itemRarity":"Uncommon"},{"skinId":2378,"itemName":"Frag Grenade","skinName":"Desperate Measures","itemRarity":"Rare"},{"skinId":9432,"itemName":"Frag Grenade","skinName":"Digital Desert","itemRarity":"Rare"},{"skinId":484,"itemName":"Frag Grenade","skinName":"Digital Exotic","itemRarity":"Rare"},{"skinId":2587,"itemName":"Frag Grenade","skinName":"Distressed","itemRarity":"Uncommon"},{"skinId":3000,"itemName":"Frag Grenade","skinName":"Dive Bomb","itemRarity":"Epic"},{"skinId":11042,"itemName":"Frag Grenade","skinName":"Dragonfly","itemRarity":"Uncommon"},{"skinId":1215,"itemName":"Frag Grenade","skinName":"Dream Glacier","itemRarity":"Rare"},{"skinId":10287,"itemName":"Frag Grenade","skinName":"Duct Tape","itemRarity":"Uncommon"},{"skinId":1760,"itemName":"Frag Grenade","skinName":"Easter '20","itemRarity":"Uncommon"},{"skinId":6549,"itemName":"Frag Grenade","skinName":"Echolocation","itemRarity":"Epic"},{"skinId":11148,"itemName":"Frag Grenade","skinName":"Effigy","itemRarity":"Epic"},{"skinId":912,"itemName":"Frag Grenade","skinName":"Eruption","itemRarity":"Epic"},{"skinId":9604,"itemName":"Frag Grenade","skinName":"Eternal Youth","itemRarity":"Uncommon"},{"skinId":1146,"itemName":"Frag Grenade","skinName":"Evil Chip","itemRarity":"Rare"},{"skinId":6777,"itemName":"Frag Grenade","skinName":"Evil Clown","itemRarity":"Rare"},{"skinId":2774,"itemName":"Frag Grenade","skinName":"Faded Dream","itemRarity":"Rare"},{"skinId":2137,"itemName":"Frag Grenade","skinName":"Fashion Purple","itemRarity":"Uncommon"},{"skinId":10903,"itemName":"Frag Grenade","skinName":"Festival","itemRarity":"Uncommon"},{"skinId":9640,"itemName":"Frag Grenade","skinName":"Fiber Ray","itemRarity":"Uncommon"},{"skinId":1841,"itemName":"Frag Grenade","skinName":"Flesh Bite","itemRarity":"Uncommon"},{"skinId":11163,"itemName":"Frag Grenade","skinName":"Floating Lotus","itemRarity":"Epic"},{"skinId":6879,"itemName":"Frag Grenade","skinName":"Forest Fabric","itemRarity":"Uncommon"},{"skinId":2035,"itemName":"Frag Grenade","skinName":"Frostbite","itemRarity":"Uncommon"},{"skinId":2473,"itemName":"Frag Grenade","skinName":"Fuel Tank","itemRarity":"Uncommon"},{"skinId":940,"itemName":"Frag Grenade","skinName":"G-Series","itemRarity":"Rare"},{"skinId":1540,"itemName":"Frag Grenade","skinName":"Gallant","itemRarity":"Rare"},{"skinId":10039,"itemName":"Frag Grenade","skinName":"Gas Cloud","itemRarity":"Uncommon"},{"skinId":1106,"itemName":"Frag Grenade","skinName":"Glacier","itemRarity":"Rare"},{"skinId":7545,"itemName":"Frag Grenade","skinName":"Glitch","itemRarity":"Uncommon"},{"skinId":10243,"itemName":"Frag Grenade","skinName":"Golden Age","itemRarity":"Rare"},{"skinId":6896,"itemName":"Frag Grenade","skinName":"Graceful Blue","itemRarity":"Uncommon"},{"skinId":7730,"itemName":"Frag Grenade","skinName":"Graceful Gold","itemRarity":"Uncommon"},{"skinId":10788,"itemName":"Frag Grenade","skinName":"Great Wave","itemRarity":"Rare"},{"skinId":2133,"itemName":"Frag Grenade","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":2613,"itemName":"Frag Grenade","skinName":"Grime","itemRarity":"Uncommon"},{"skinId":10962,"itemName":"Frag Grenade","skinName":"Guardian Spirit","itemRarity":"Epic"},{"skinId":6635,"itemName":"Frag Grenade","skinName":"Halloween","itemRarity":"Rare"},{"skinId":7952,"itemName":"Frag Grenade","skinName":"Hard Water","itemRarity":"Uncommon"},{"skinId":461,"itemName":"Frag Grenade","skinName":"Hazardous","itemRarity":"Uncommon"},{"skinId":9973,"itemName":"Frag Grenade","skinName":"Head Trauma","itemRarity":"Uncommon"},{"skinId":2132,"itemName":"Frag Grenade","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":7348,"itemName":"Frag Grenade","skinName":"Heliotrope","itemRarity":"Uncommon"},{"skinId":1605,"itemName":"Frag Grenade","skinName":"Hellion","itemRarity":"Rare"},{"skinId":2446,"itemName":"Frag Grenade","skinName":"Hemophiliac","itemRarity":"Uncommon"},{"skinId":8874,"itemName":"Frag Grenade","skinName":"Hereafter","itemRarity":"Uncommon"},{"skinId":11222,"itemName":"Frag Grenade","skinName":"Ho Ho Ho","itemRarity":"Epic"},{"skinId":2134,"itemName":"Frag Grenade","skinName":"Holiday Ribbons","itemRarity":"Uncommon"},{"skinId":2060,"itemName":"Frag Grenade","skinName":"Hot and Cold","itemRarity":"Rare"},{"skinId":8433,"itemName":"Frag Grenade","skinName":"Impulse","itemRarity":"Rare"},{"skinId":6618,"itemName":"Frag Grenade","skinName":"Iridescent","itemRarity":"Rare"},{"skinId":1173,"itemName":"Frag Grenade","skinName":"Irradiated Amethyst","itemRarity":"Rare"},{"skinId":2129,"itemName":"Frag Grenade","skinName":"Jack Frost","itemRarity":"Uncommon"},{"skinId":2135,"itemName":"Frag Grenade","skinName":"Jingle Bells","itemRarity":"Uncommon"},{"skinId":388,"itemName":"Frag Grenade","skinName":"Jungle Terrain","itemRarity":"Uncommon"},{"skinId":7432,"itemName":"Frag Grenade","skinName":"Kapow","itemRarity":"Uncommon"},{"skinId":8137,"itemName":"Frag Grenade","skinName":"Labyrinth","itemRarity":"Rare"},{"skinId":9367,"itemName":"Frag Grenade","skinName":"Light Show","itemRarity":"Uncommon"},{"skinId":1029,"itemName":"Frag Grenade","skinName":"Lightning","itemRarity":"Rare"},{"skinId":10172,"itemName":"Frag Grenade","skinName":"Lingering","itemRarity":"Uncommon"},{"skinId":1281,"itemName":"Frag Grenade","skinName":"Lunar New Year","itemRarity":"Rare"},{"skinId":1795,"itemName":"Frag Grenade","skinName":"Lurk","itemRarity":"Rare"},{"skinId":1124,"itemName":"Frag Grenade","skinName":"MacTavish","itemRarity":"Rare"},{"skinId":1438,"itemName":"Frag Grenade","skinName":"Magic Eye","itemRarity":"Rare"},{"skinId":2536,"itemName":"Frag Grenade","skinName":"Maple Leaves","itemRarity":"Uncommon"},{"skinId":8405,"itemName":"Frag Grenade","skinName":"Mar","itemRarity":"Uncommon"},{"skinId":1232,"itemName":"Frag Grenade","skinName":"Mardi Gras","itemRarity":"Rare"},{"skinId":2056,"itemName":"Frag Grenade","skinName":"Marine","itemRarity":"Uncommon"},{"skinId":1825,"itemName":"Frag Grenade","skinName":"Meltdown","itemRarity":"Epic"},{"skinId":2131,"itemName":"Frag Grenade","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":8225,"itemName":"Frag Grenade","skinName":"Moonlight Wisp","itemRarity":"Rare"},{"skinId":8705,"itemName":"Frag Grenade","skinName":"Moonstone","itemRarity":"Epic"},{"skinId":2603,"itemName":"Frag Grenade","skinName":"Moss","itemRarity":"Rare"},{"skinId":6038,"itemName":"Frag Grenade","skinName":"Moss Rock","itemRarity":"Uncommon"},{"skinId":11498,"itemName":"Frag Grenade","skinName":"Munitions","itemRarity":"Epic"},{"skinId":11618,"itemName":"Frag Grenade","skinName":"Murder","itemRarity":"Epic"},{"skinId":1686,"itemName":"Frag Grenade","skinName":"Neon Green","itemRarity":"Uncommon"},{"skinId":569,"itemName":"Frag Grenade","skinName":"Neon Tiger","itemRarity":"Uncommon"},{"skinId":7922,"itemName":"Frag Grenade","skinName":"Nonconformist","itemRarity":"Uncommon"},{"skinId":2429,"itemName":"Frag Grenade","skinName":"Nuclear Fallout","itemRarity":"Epic"},{"skinId":5996,"itemName":"Frag Grenade","skinName":"Old News","itemRarity":"Uncommon"},{"skinId":882,"itemName":"Frag Grenade","skinName":"Open Circuit","itemRarity":"Rare"},{"skinId":10576,"itemName":"Frag Grenade","skinName":"Paper Fan","itemRarity":"Uncommon"},{"skinId":10931,"itemName":"Frag Grenade","skinName":"Paper Star","itemRarity":"Uncommon"},{"skinId":867,"itemName":"Frag Grenade","skinName":"Phobos","itemRarity":"Epic"},{"skinId":6323,"itemName":"Frag Grenade","skinName":"Plated Gray","itemRarity":"Uncommon"},{"skinId":6400,"itemName":"Frag Grenade","skinName":"Plated Red","itemRarity":"Uncommon"},{"skinId":8042,"itemName":"Frag Grenade","skinName":"Pocket Shock","itemRarity":"Uncommon"},{"skinId":10802,"itemName":"Frag Grenade","skinName":"Porcelain Yakuza","itemRarity":"Epic"},{"skinId":1251,"itemName":"Frag Grenade","skinName":"Pumpkin Head","itemRarity":"Epic"},{"skinId":6725,"itemName":"Frag Grenade","skinName":"Purple Geode","itemRarity":"Uncommon"},{"skinId":7401,"itemName":"Frag Grenade","skinName":"Quartz","itemRarity":"Epic"},{"skinId":1646,"itemName":"Frag Grenade","skinName":"Radioactive","itemRarity":"Rare"},{"skinId":2906,"itemName":"Frag Grenade","skinName":"Record Scratch","itemRarity":"Uncommon"},{"skinId":928,"itemName":"Frag Grenade","skinName":"Red","itemRarity":"Uncommon"},{"skinId":8287,"itemName":"Frag Grenade","skinName":"Red Burst","itemRarity":"Uncommon"},{"skinId":935,"itemName":"Frag Grenade","skinName":"Red Dragon","itemRarity":"Rare"},{"skinId":10635,"itemName":"Frag Grenade","skinName":"Red Sun","itemRarity":"Uncommon"},{"skinId":2136,"itemName":"Frag Grenade","skinName":"Reindeer","itemRarity":"Uncommon"},{"skinId":11631,"itemName":"Frag Grenade","skinName":"Repellent","itemRarity":"Uncommon"},{"skinId":1147,"itemName":"Frag Grenade","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":10268,"itemName":"Frag Grenade","skinName":"Revolt","itemRarity":"Epic"},{"skinId":5955,"itemName":"Frag Grenade","skinName":"Revolution","itemRarity":"Epic"},{"skinId":11098,"itemName":"Frag Grenade","skinName":"Rock Cairn","itemRarity":"Uncommon"},{"skinId":10307,"itemName":"Frag Grenade","skinName":"Rogue Intel","itemRarity":"Epic"},{"skinId":11860,"itemName":"Frag Grenade","skinName":"Ropework","itemRarity":"Uncommon"},{"skinId":2245,"itemName":"Frag Grenade","skinName":"Royal Force","itemRarity":"Rare"},{"skinId":6089,"itemName":"Frag Grenade","skinName":"Ruby","itemRarity":"Epic"},{"skinId":10110,"itemName":"Frag Grenade","skinName":"Rust Trim","itemRarity":"Rare"},{"skinId":2718,"itemName":"Frag Grenade","skinName":"Rusted","itemRarity":"Uncommon"},{"skinId":51,"itemName":"Frag Grenade","skinName":"Sandbox","itemRarity":"Uncommon"},{"skinId":9716,"itemName":"Frag Grenade","skinName":"Scatter Force","itemRarity":"Rare"},{"skinId":5938,"itemName":"Frag Grenade","skinName":"Sewed Snake","itemRarity":"Rare"},{"skinId":2651,"itemName":"Frag Grenade","skinName":"Slagged","itemRarity":"Epic"},{"skinId":2266,"itemName":"Frag Grenade","skinName":"Slate","itemRarity":"Uncommon"},{"skinId":2568,"itemName":"Frag Grenade","skinName":"Snake Bite","itemRarity":"Epic"},{"skinId":8752,"itemName":"Frag Grenade","skinName":"Snow Stream","itemRarity":"Rare"},{"skinId":963,"itemName":"Frag Grenade","skinName":"Snowman","itemRarity":"Epic"},{"skinId":6430,"itemName":"Frag Grenade","skinName":"Spores","itemRarity":"Epic"},{"skinId":1127,"itemName":"Frag Grenade","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":11678,"itemName":"Frag Grenade","skinName":"Steam Engine","itemRarity":"Rare"},{"skinId":6008,"itemName":"Frag Grenade","skinName":"Strafing Run","itemRarity":"Epic"},{"skinId":8247,"itemName":"Frag Grenade","skinName":"Tagged","itemRarity":"Uncommon"},{"skinId":1136,"itemName":"Frag Grenade","skinName":"Technologic","itemRarity":"Uncommon"},{"skinId":9505,"itemName":"Frag Grenade","skinName":"The Numbers","itemRarity":"Uncommon"},{"skinId":1942,"itemName":"Frag Grenade","skinName":"Thermonuclear","itemRarity":"Epic"},{"skinId":6694,"itemName":"Frag Grenade","skinName":"Tiger's Eye","itemRarity":"Epic"},{"skinId":9216,"itemName":"Frag Grenade","skinName":"Tire Chains","itemRarity":"Uncommon"},{"skinId":11207,"itemName":"Frag Grenade","skinName":"Topography","itemRarity":"Uncommon"},{"skinId":6641,"itemName":"Frag Grenade","skinName":"Tourmaline","itemRarity":"Epic"},{"skinId":8483,"itemName":"Frag Grenade","skinName":"Tracker","itemRarity":"Uncommon"},{"skinId":2530,"itemName":"Frag Grenade","skinName":"Tree Bark","itemRarity":"Uncommon"},{"skinId":6823,"itemName":"Frag Grenade","skinName":"Tree Ring","itemRarity":"Uncommon"},{"skinId":1511,"itemName":"Frag Grenade","skinName":"Tropical","itemRarity":"Uncommon"},{"skinId":671,"itemName":"Frag Grenade","skinName":"Ukiyo-e","itemRarity":"Rare"},{"skinId":8453,"itemName":"Frag Grenade","skinName":"Uncertain","itemRarity":"Uncommon"},{"skinId":6673,"itemName":"Frag Grenade","skinName":"Undergrowth","itemRarity":"Uncommon"},{"skinId":6809,"itemName":"Frag Grenade","skinName":"Upper Hand","itemRarity":"Rare"},{"skinId":1898,"itemName":"Frag Grenade","skinName":"Urban Waste","itemRarity":"Rare"},{"skinId":948,"itemName":"Frag Grenade","skinName":"Valentine","itemRarity":"Rare"},{"skinId":11624,"itemName":"Frag Grenade","skinName":"Vine Growth","itemRarity":"Rare"},{"skinId":11241,"itemName":"Frag Grenade","skinName":"Wagon Wheel","itemRarity":"Uncommon"},{"skinId":2369,"itemName":"Frag Grenade","skinName":"Wasteland Red","itemRarity":"Uncommon"},{"skinId":11604,"itemName":"Frag Grenade","skinName":"Watcher","itemRarity":"Uncommon"},{"skinId":2695,"itemName":"Frag Grenade","skinName":"Water Festival","itemRarity":"Epic"},{"skinId":1808,"itemName":"Frag Grenade","skinName":"White Lies","itemRarity":"Uncommon"},{"skinId":9478,"itemName":"Frag Grenade","skinName":"Wiremass","itemRarity":"Uncommon"},{"skinId":6023,"itemName":"Frag Grenade","skinName":"Woodland","itemRarity":"Rare"},{"skinId":1034,"itemName":"Frag Grenade","skinName":"Wrath Black & Gold","itemRarity":"Epic"},{"skinId":1323,"itemName":"Frag Grenade","skinName":"Year of the Rat","itemRarity":"Rare"},{"skinId":1565,"itemName":"Frag Grenade","skinName":"Yellow Camo","itemRarity":"Uncommon"},{"skinId":1165,"itemName":"Frag Grenade","skinName":"Yellow Snake","itemRarity":"Rare"},{"skinId":1819,"itemName":"Frag Grenade","skinName":"Yellow Snow","itemRarity":"Uncommon"},{"skinId":575,"itemName":"Frag Grenade","skinName":"Yellow Triangle","itemRarity":"Uncommon"},{"skinId":1349,"itemName":"Frag Grenade","skinName":"Zombie Gene","itemRarity":"Uncommon"},{"skinId":3499,"itemName":"GKS","skinName":"Abominable","itemRarity":"Common"},{"skinId":8353,"itemName":"GKS","skinName":"Alarm","itemRarity":"Uncommon"},{"skinId":3522,"itemName":"GKS","skinName":"Anaconda","itemRarity":"Common"},{"skinId":3492,"itemName":"GKS","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":7221,"itemName":"GKS","skinName":"Anniversary","itemRarity":"Rare"},{"skinId":3494,"itemName":"GKS","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":3491,"itemName":"GKS","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":3481,"itemName":"GKS","skinName":"Asphalt","itemRarity":"Common"},{"skinId":3493,"itemName":"GKS","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":3480,"itemName":"GKS","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":3519,"itemName":"GKS","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":8192,"itemName":"GKS","skinName":"Blue Mercury","itemRarity":"Epic"},{"skinId":3505,"itemName":"GKS","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":11441,"itemName":"GKS","skinName":"Buckskin","itemRarity":"Rare"},{"skinId":8056,"itemName":"GKS","skinName":"Bug Spray","itemRarity":"Rare"},{"skinId":3523,"itemName":"GKS","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":3515,"itemName":"GKS","skinName":"Canopy","itemRarity":"Common"},{"skinId":3059,"itemName":"GKS","skinName":"Catacombs","itemRarity":"Rare"},{"skinId":3473,"itemName":"GKS","skinName":"Chain Link","itemRarity":"Common"},{"skinId":6787,"itemName":"GKS","skinName":"Championship Streak","itemRarity":"Rare"},{"skinId":3471,"itemName":"GKS","skinName":"China Lake","itemRarity":"Common"},{"skinId":3520,"itemName":"GKS","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":3467,"itemName":"GKS","skinName":"Commando","itemRarity":"Common"},{"skinId":3482,"itemName":"GKS","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7043,"itemName":"GKS","skinName":"Damascus","itemRarity":"Common"},{"skinId":3498,"itemName":"GKS","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":6915,"itemName":"GKS","skinName":"Dark Light","itemRarity":"Rare"},{"skinId":1144,"itemName":"GKS","skinName":"Default","itemRarity":"Common"},{"skinId":3503,"itemName":"GKS","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":3508,"itemName":"GKS","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":3466,"itemName":"GKS","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8516,"itemName":"GKS","skinName":"Diamond","itemRarity":"Common"},{"skinId":3477,"itemName":"GKS","skinName":"Dirt","itemRarity":"Common"},{"skinId":3500,"itemName":"GKS","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":3501,"itemName":"GKS","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":3485,"itemName":"GKS","skinName":"Foliage","itemRarity":"Common"},{"skinId":6333,"itemName":"GKS","skinName":"Freight Train","itemRarity":"Rare"},{"skinId":3488,"itemName":"GKS","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":3525,"itemName":"GKS","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":3524,"itemName":"GKS","skinName":"Gecko","itemRarity":"Common"},{"skinId":3526,"itemName":"GKS","skinName":"Gold","itemRarity":"Common"},{"skinId":3476,"itemName":"GKS","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":3489,"itemName":"GKS","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":3511,"itemName":"GKS","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":9579,"itemName":"GKS","skinName":"Kitsune","itemRarity":"Epic"},{"skinId":3518,"itemName":"GKS","skinName":"Komodo","itemRarity":"Common"},{"skinId":8134,"itemName":"GKS","skinName":"Labyrinth","itemRarity":"Rare"},{"skinId":3510,"itemName":"GKS","skinName":"Marshland","itemRarity":"Common"},{"skinId":3507,"itemName":"GKS","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":3469,"itemName":"GKS","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":3478,"itemName":"GKS","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":3497,"itemName":"GKS","skinName":"Mudslide","itemRarity":"Common"},{"skinId":3483,"itemName":"GKS","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":3474,"itemName":"GKS","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":3514,"itemName":"GKS","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":3496,"itemName":"GKS","skinName":"Overgrown","itemRarity":"Common"},{"skinId":8774,"itemName":"GKS","skinName":"Pack Warrior","itemRarity":"Epic"},{"skinId":10846,"itemName":"GKS","skinName":"Paper Star","itemRarity":"Uncommon"},{"skinId":6334,"itemName":"GKS","skinName":"Pelt","itemRarity":"Uncommon"},{"skinId":3521,"itemName":"GKS","skinName":"Pink Python","itemRarity":"Common"},{"skinId":3472,"itemName":"GKS","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":3470,"itemName":"GKS","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":3527,"itemName":"GKS","skinName":"Platinum","itemRarity":"Common"},{"skinId":3516,"itemName":"GKS","skinName":"Python","itemRarity":"Common"},{"skinId":3517,"itemName":"GKS","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":3504,"itemName":"GKS","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":3468,"itemName":"GKS","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":3490,"itemName":"GKS","skinName":"Ruins","itemRarity":"Common"},{"skinId":10812,"itemName":"GKS","skinName":"Sakura Storm","itemRarity":"Epic"},{"skinId":3509,"itemName":"GKS","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":6264,"itemName":"GKS","skinName":"Scion","itemRarity":"Epic"},{"skinId":3495,"itemName":"GKS","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":3475,"itemName":"GKS","skinName":"Smoke","itemRarity":"Common"},{"skinId":2593,"itemName":"GKS","skinName":"Snake Bite","itemRarity":"Epic"},{"skinId":9422,"itemName":"GKS","skinName":"Sprite Ops","itemRarity":"Epic"},{"skinId":8911,"itemName":"GKS","skinName":"Starlight","itemRarity":"Rare"},{"skinId":3506,"itemName":"GKS","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":894,"itemName":"GKS","skinName":"Tactical Unicorn","itemRarity":"Legendary"},{"skinId":3479,"itemName":"GKS","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":3502,"itemName":"GKS","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":3484,"itemName":"GKS","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":3486,"itemName":"GKS","skinName":"Tundra","itemRarity":"Common"},{"skinId":3487,"itemName":"GKS","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":10142,"itemName":"GKS","skinName":"Wanderer","itemRarity":"Legendary"},{"skinId":3513,"itemName":"GKS","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":3512,"itemName":"GKS","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":9493,"itemName":"Gas Grenade","skinName":"Default","itemRarity":"Common"},{"skinId":10014,"itemName":"Glow Stick","skinName":"Chemical Light","itemRarity":"Epic"},{"skinId":7237,"itemName":"Glow Stick","skinName":"Glow Stick","itemRarity":"Epic"},{"skinId":5265,"itemName":"HBRa3","skinName":"Abominable","itemRarity":"Common"},{"skinId":5288,"itemName":"HBRa3","skinName":"Anaconda","itemRarity":"Common"},{"skinId":5258,"itemName":"HBRa3","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":5260,"itemName":"HBRa3","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":5257,"itemName":"HBRa3","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":5247,"itemName":"HBRa3","skinName":"Asphalt","itemRarity":"Common"},{"skinId":5259,"itemName":"HBRa3","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":10648,"itemName":"HBRa3","skinName":"Birthstone","itemRarity":"Rare"},{"skinId":7932,"itemName":"HBRa3","skinName":"Black Gold","itemRarity":"Epic"},{"skinId":5246,"itemName":"HBRa3","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":5285,"itemName":"HBRa3","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":5271,"itemName":"HBRa3","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":5289,"itemName":"HBRa3","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":5281,"itemName":"HBRa3","skinName":"Canopy","itemRarity":"Common"},{"skinId":9298,"itemName":"HBRa3","skinName":"Capacitor","itemRarity":"Epic"},{"skinId":5240,"itemName":"HBRa3","skinName":"Chain Link","itemRarity":"Common"},{"skinId":5238,"itemName":"HBRa3","skinName":"China Lake","itemRarity":"Common"},{"skinId":5286,"itemName":"HBRa3","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":5234,"itemName":"HBRa3","skinName":"Commando","itemRarity":"Common"},{"skinId":6930,"itemName":"HBRa3","skinName":"Crayon","itemRarity":"Uncommon"},{"skinId":5248,"itemName":"HBRa3","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7518,"itemName":"HBRa3","skinName":"Crossed Cables","itemRarity":"Rare"},{"skinId":10533,"itemName":"HBRa3","skinName":"Cumulus","itemRarity":"Uncommon"},{"skinId":7072,"itemName":"HBRa3","skinName":"Damascus","itemRarity":"Common"},{"skinId":5264,"itemName":"HBRa3","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":2357,"itemName":"HBRa3","skinName":"Default","itemRarity":"Common"},{"skinId":5269,"itemName":"HBRa3","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":5274,"itemName":"HBRa3","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":3031,"itemName":"HBRa3","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8545,"itemName":"HBRa3","skinName":"Diamond","itemRarity":"Common"},{"skinId":5243,"itemName":"HBRa3","skinName":"Dirt","itemRarity":"Common"},{"skinId":853,"itemName":"HBRa3","skinName":"Dragon Dance","itemRarity":"Epic"},{"skinId":9598,"itemName":"HBRa3","skinName":"Eternal Youth","itemRarity":"Uncommon"},{"skinId":10002,"itemName":"HBRa3","skinName":"Evergreen","itemRarity":"Uncommon"},{"skinId":5266,"itemName":"HBRa3","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":5267,"itemName":"HBRa3","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":11589,"itemName":"HBRa3","skinName":"Ferrofluid","itemRarity":"Epic"},{"skinId":5251,"itemName":"HBRa3","skinName":"Foliage","itemRarity":"Common"},{"skinId":5254,"itemName":"HBRa3","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":5291,"itemName":"HBRa3","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":5290,"itemName":"HBRa3","skinName":"Gecko","itemRarity":"Common"},{"skinId":11075,"itemName":"HBRa3","skinName":"Glow Fly","itemRarity":"Epic"},{"skinId":5292,"itemName":"HBRa3","skinName":"Gold","itemRarity":"Common"},{"skinId":3032,"itemName":"HBRa3","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":9529,"itemName":"HBRa3","skinName":"Hard Tech","itemRarity":"Rare"},{"skinId":5255,"itemName":"HBRa3","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":5277,"itemName":"HBRa3","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":5284,"itemName":"HBRa3","skinName":"Komodo","itemRarity":"Common"},{"skinId":5276,"itemName":"HBRa3","skinName":"Marshland","itemRarity":"Common"},{"skinId":2883,"itemName":"HBRa3","skinName":"Mob Boss","itemRarity":"Epic"},{"skinId":5273,"itemName":"HBRa3","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":5236,"itemName":"HBRa3","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":5244,"itemName":"HBRa3","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":5263,"itemName":"HBRa3","skinName":"Mudslide","itemRarity":"Common"},{"skinId":5249,"itemName":"HBRa3","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":9100,"itemName":"HBRa3","skinName":"New Horizon","itemRarity":"Epic"},{"skinId":5241,"itemName":"HBRa3","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":5280,"itemName":"HBRa3","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":9518,"itemName":"HBRa3","skinName":"Nucleobase","itemRarity":"Rare"},{"skinId":5262,"itemName":"HBRa3","skinName":"Overgrown","itemRarity":"Common"},{"skinId":2358,"itemName":"HBRa3","skinName":"Persisted","itemRarity":"Rare"},{"skinId":8555,"itemName":"HBRa3","skinName":"Pine Cone","itemRarity":"Uncommon"},{"skinId":5287,"itemName":"HBRa3","skinName":"Pink Python","itemRarity":"Common"},{"skinId":5239,"itemName":"HBRa3","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":5237,"itemName":"HBRa3","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":5293,"itemName":"HBRa3","skinName":"Platinum","itemRarity":"Common"},{"skinId":10799,"itemName":"HBRa3","skinName":"Porcelain Yakuza","itemRarity":"Epic"},{"skinId":5282,"itemName":"HBRa3","skinName":"Python","itemRarity":"Common"},{"skinId":5283,"itemName":"HBRa3","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":8268,"itemName":"HBRa3","skinName":"Red Shock","itemRarity":"Rare"},{"skinId":5270,"itemName":"HBRa3","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":5235,"itemName":"HBRa3","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":10386,"itemName":"HBRa3","skinName":"Ripped Camo","itemRarity":"Uncommon"},{"skinId":5256,"itemName":"HBRa3","skinName":"Ruins","itemRarity":"Common"},{"skinId":10108,"itemName":"HBRa3","skinName":"Rust Trim","itemRarity":"Rare"},{"skinId":5275,"itemName":"HBRa3","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":5261,"itemName":"HBRa3","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":1729,"itemName":"HBRa3","skinName":"Skulls & Blood","itemRarity":"Rare"},{"skinId":5242,"itemName":"HBRa3","skinName":"Smoke","itemRarity":"Common"},{"skinId":8761,"itemName":"HBRa3","skinName":"Snow Stream","itemRarity":"Rare"},{"skinId":9706,"itemName":"HBRa3","skinName":"Splinterburst","itemRarity":"Rare"},{"skinId":5272,"itemName":"HBRa3","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":6607,"itemName":"HBRa3","skinName":"Swarm","itemRarity":"Legendary"},{"skinId":5245,"itemName":"HBRa3","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":5268,"itemName":"HBRa3","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":5250,"itemName":"HBRa3","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":5252,"itemName":"HBRa3","skinName":"Tundra","itemRarity":"Common"},{"skinId":5253,"itemName":"HBRa3","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":5279,"itemName":"HBRa3","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":5278,"itemName":"HBRa3","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":2210,"itemName":"HG 40","skinName":"Abnormality","itemRarity":"Uncommon"},{"skinId":3251,"itemName":"HG 40","skinName":"Abominable","itemRarity":"Common"},{"skinId":6573,"itemName":"HG 40","skinName":"Alligator","itemRarity":"Uncommon"},{"skinId":8564,"itemName":"HG 40","skinName":"Alpine Infinite","itemRarity":"Rare"},{"skinId":2854,"itemName":"HG 40","skinName":"Ammo Box","itemRarity":"Uncommon"},{"skinId":3274,"itemName":"HG 40","skinName":"Anaconda","itemRarity":"Common"},{"skinId":3244,"itemName":"HG 40","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":3246,"itemName":"HG 40","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":2555,"itemName":"HG 40","skinName":"Arctic Digital","itemRarity":"Uncommon"},{"skinId":3243,"itemName":"HG 40","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":3233,"itemName":"HG 40","skinName":"Asphalt","itemRarity":"Common"},{"skinId":3245,"itemName":"HG 40","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":1856,"itemName":"HG 40","skinName":"Ballista","itemRarity":"Epic"},{"skinId":552,"itemName":"HG 40","skinName":"Black Gold","itemRarity":"Epic"},{"skinId":3232,"itemName":"HG 40","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":710,"itemName":"HG 40","skinName":"Bloody Vengeance","itemRarity":"Epic"},{"skinId":3271,"itemName":"HG 40","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":3257,"itemName":"HG 40","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":8965,"itemName":"HG 40","skinName":"Brain Freeze","itemRarity":"Uncommon"},{"skinId":518,"itemName":"HG 40","skinName":"Brambles","itemRarity":"Rare"},{"skinId":1000,"itemName":"HG 40","skinName":"Brushed Green","itemRarity":"Uncommon"},{"skinId":3275,"itemName":"HG 40","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":3267,"itemName":"HG 40","skinName":"Canopy","itemRarity":"Common"},{"skinId":3225,"itemName":"HG 40","skinName":"Chain Link","itemRarity":"Common"},{"skinId":7385,"itemName":"HG 40","skinName":"Championship Charge","itemRarity":"Rare"},{"skinId":3223,"itemName":"HG 40","skinName":"China Lake","itemRarity":"Common"},{"skinId":3272,"itemName":"HG 40","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":6791,"itemName":"HG 40","skinName":"Collateral","itemRarity":"Epic"},{"skinId":3219,"itemName":"HG 40","skinName":"Commando","itemRarity":"Common"},{"skinId":159,"itemName":"HG 40","skinName":"Copperhead","itemRarity":"Rare"},{"skinId":2776,"itemName":"HG 40","skinName":"Corroded","itemRarity":"Uncommon"},{"skinId":3234,"itemName":"HG 40","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":9317,"itemName":"HG 40","skinName":"Cybersick","itemRarity":"Epic"},{"skinId":7039,"itemName":"HG 40","skinName":"Damascus","itemRarity":"Common"},{"skinId":3250,"itemName":"HG 40","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":487,"itemName":"HG 40","skinName":"Dead Zebra","itemRarity":"Uncommon"},{"skinId":435,"itemName":"HG 40","skinName":"Default","itemRarity":"Common"},{"skinId":3255,"itemName":"HG 40","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":3260,"itemName":"HG 40","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":323,"itemName":"HG 40","skinName":"Desert Snake","itemRarity":"Uncommon"},{"skinId":3218,"itemName":"HG 40","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8512,"itemName":"HG 40","skinName":"Diamond","itemRarity":"Common"},{"skinId":3229,"itemName":"HG 40","skinName":"Dirt","itemRarity":"Common"},{"skinId":11149,"itemName":"HG 40","skinName":"Effigy","itemRarity":"Epic"},{"skinId":550,"itemName":"HG 40","skinName":"Electric","itemRarity":"Rare"},{"skinId":911,"itemName":"HG 40","skinName":"Eruption","itemRarity":"Epic"},{"skinId":1886,"itemName":"HG 40","skinName":"Evil Chip","itemRarity":"Rare"},{"skinId":3252,"itemName":"HG 40","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":256,"itemName":"HG 40","skinName":"Fashion Purple","itemRarity":"Uncommon"},{"skinId":3253,"itemName":"HG 40","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":6654,"itemName":"HG 40","skinName":"Fiber Mesh","itemRarity":"Rare"},{"skinId":6337,"itemName":"HG 40","skinName":"Flytrap","itemRarity":"Epic"},{"skinId":3237,"itemName":"HG 40","skinName":"Foliage","itemRarity":"Common"},{"skinId":6301,"itemName":"HG 40","skinName":"Forest Floor","itemRarity":"Rare"},{"skinId":7957,"itemName":"HG 40","skinName":"Forward Motion","itemRarity":"Rare"},{"skinId":6340,"itemName":"HG 40","skinName":"Freight Train","itemRarity":"Rare"},{"skinId":4,"itemName":"HG 40","skinName":"Frontier","itemRarity":"Rare"},{"skinId":3240,"itemName":"HG 40","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":3277,"itemName":"HG 40","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":3276,"itemName":"HG 40","skinName":"Gecko","itemRarity":"Common"},{"skinId":657,"itemName":"HG 40","skinName":"Geometry","itemRarity":"Epic"},{"skinId":3278,"itemName":"HG 40","skinName":"Gold","itemRarity":"Common"},{"skinId":7509,"itemName":"HG 40","skinName":"Gold Glitter","itemRarity":"Epic"},{"skinId":6059,"itemName":"HG 40","skinName":"Gold Standard","itemRarity":"Legendary"},{"skinId":631,"itemName":"HG 40","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":2605,"itemName":"HG 40","skinName":"Grime","itemRarity":"Uncommon"},{"skinId":3228,"itemName":"HG 40","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":250,"itemName":"HG 40","skinName":"Halloween","itemRarity":"Rare"},{"skinId":1547,"itemName":"HG 40","skinName":"Hazard","itemRarity":"Rare"},{"skinId":673,"itemName":"HG 40","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":1612,"itemName":"HG 40","skinName":"Heat Stroke","itemRarity":"Epic"},{"skinId":3241,"itemName":"HG 40","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":11845,"itemName":"HG 40","skinName":"Ivory Tickler","itemRarity":"Rare"},{"skinId":2211,"itemName":"HG 40","skinName":"Jack Frost","itemRarity":"Uncommon"},{"skinId":1023,"itemName":"HG 40","skinName":"Jingle Bells","itemRarity":"Uncommon"},{"skinId":3263,"itemName":"HG 40","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":3270,"itemName":"HG 40","skinName":"Komodo","itemRarity":"Common"},{"skinId":10330,"itemName":"HG 40","skinName":"Last Will","itemRarity":"Rare"},{"skinId":641,"itemName":"HG 40","skinName":"Lava","itemRarity":"Epic"},{"skinId":2319,"itemName":"HG 40","skinName":"Living Rust","itemRarity":"Epic"},{"skinId":3262,"itemName":"HG 40","skinName":"Marshland","itemRarity":"Common"},{"skinId":2209,"itemName":"HG 40","skinName":"Melon","itemRarity":"Uncommon"},{"skinId":1820,"itemName":"HG 40","skinName":"Meltdown","itemRarity":"Epic"},{"skinId":1352,"itemName":"HG 40","skinName":"Mettle","itemRarity":"Uncommon"},{"skinId":3259,"itemName":"HG 40","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":3221,"itemName":"HG 40","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":3230,"itemName":"HG 40","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":3249,"itemName":"HG 40","skinName":"Mudslide","itemRarity":"Common"},{"skinId":3235,"itemName":"HG 40","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":1421,"itemName":"HG 40","skinName":"Neon Tiger","itemRarity":"Uncommon"},{"skinId":3226,"itemName":"HG 40","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":3266,"itemName":"HG 40","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":7913,"itemName":"HG 40","skinName":"Nonconformist","itemRarity":"Uncommon"},{"skinId":2865,"itemName":"HG 40","skinName":"Obstacle","itemRarity":"Rare"},{"skinId":913,"itemName":"HG 40","skinName":"Open Circuit","itemRarity":"Rare"},{"skinId":3248,"itemName":"HG 40","skinName":"Overgrown","itemRarity":"Common"},{"skinId":8938,"itemName":"HG 40","skinName":"Pine Cone","itemRarity":"Uncommon"},{"skinId":3273,"itemName":"HG 40","skinName":"Pink Python","itemRarity":"Common"},{"skinId":3224,"itemName":"HG 40","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":3222,"itemName":"HG 40","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":3279,"itemName":"HG 40","skinName":"Platinum","itemRarity":"Common"},{"skinId":6220,"itemName":"HG 40","skinName":"Propaganda","itemRarity":"Rare"},{"skinId":8381,"itemName":"HG 40","skinName":"Purple Geode","itemRarity":"Uncommon"},{"skinId":8320,"itemName":"HG 40","skinName":"Purple Prism","itemRarity":"Rare"},{"skinId":3268,"itemName":"HG 40","skinName":"Python","itemRarity":"Common"},{"skinId":3269,"itemName":"HG 40","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":10629,"itemName":"HG 40","skinName":"Red Sun","itemRarity":"Uncommon"},{"skinId":3256,"itemName":"HG 40","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":124,"itemName":"HG 40","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":3220,"itemName":"HG 40","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":3242,"itemName":"HG 40","skinName":"Ruins","itemRarity":"Common"},{"skinId":10060,"itemName":"HG 40","skinName":"Ruptured Steel","itemRarity":"Rare"},{"skinId":3261,"itemName":"HG 40","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":3247,"itemName":"HG 40","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":3227,"itemName":"HG 40","skinName":"Smoke","itemRarity":"Common"},{"skinId":1370,"itemName":"HG 40","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":9454,"itemName":"HG 40","skinName":"Static Discharge","itemRarity":"Epic"},{"skinId":310,"itemName":"HG 40","skinName":"Steel Defense","itemRarity":"Rare"},{"skinId":7379,"itemName":"HG 40","skinName":"Supermax","itemRarity":"Epic"},{"skinId":3258,"itemName":"HG 40","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":2208,"itemName":"HG 40","skinName":"Swamped","itemRarity":"Uncommon"},{"skinId":3231,"itemName":"HG 40","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":1425,"itemName":"HG 40","skinName":"Technologic","itemRarity":"Uncommon"},{"skinId":3254,"itemName":"HG 40","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":3236,"itemName":"HG 40","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":3238,"itemName":"HG 40","skinName":"Tundra","itemRarity":"Common"},{"skinId":103,"itemName":"HG 40","skinName":"Turquoise","itemRarity":"Rare"},{"skinId":3239,"itemName":"HG 40","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":11888,"itemName":"HG 40","skinName":"Wanted","itemRarity":"Uncommon"},{"skinId":3265,"itemName":"HG 40","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":3264,"itemName":"HG 40","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":1282,"itemName":"HG 40","skinName":"Werewolf Fighter","itemRarity":"Epic"},{"skinId":1800,"itemName":"HG 40","skinName":"White Lies","itemRarity":"Uncommon"},{"skinId":6019,"itemName":"HG 40","skinName":"Woodland","itemRarity":"Rare"},{"skinId":1417,"itemName":"HG 40","skinName":"Yellow Triangle","itemRarity":"Uncommon"},{"skinId":1288,"itemName":"HG 40","skinName":"Zombie Gene","itemRarity":"Uncommon"},{"skinId":4774,"itemName":"HS0405","skinName":"Abominable","itemRarity":"Common"},{"skinId":6572,"itemName":"HS0405","skinName":"Alligator","itemRarity":"Uncommon"},{"skinId":4797,"itemName":"HS0405","skinName":"Anaconda","itemRarity":"Common"},{"skinId":419,"itemName":"HS0405","skinName":"Ancient Runes","itemRarity":"Rare"},{"skinId":4767,"itemName":"HS0405","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":4769,"itemName":"HS0405","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":4766,"itemName":"HS0405","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":4756,"itemName":"HS0405","skinName":"Asphalt","itemRarity":"Common"},{"skinId":2213,"itemName":"HS0405","skinName":"Aurora Borealis","itemRarity":"Rare"},{"skinId":4768,"itemName":"HS0405","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":206,"itemName":"HS0405","skinName":"Bandit","itemRarity":"Rare"},{"skinId":4755,"itemName":"HS0405","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":4794,"itemName":"HS0405","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":4780,"itemName":"HS0405","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":1207,"itemName":"HS0405","skinName":"Blue Wave","itemRarity":"Uncommon"},{"skinId":2915,"itemName":"HS0405","skinName":"Boom Scrawl","itemRarity":"Rare"},{"skinId":3072,"itemName":"HS0405","skinName":"Brushed Red","itemRarity":"Uncommon"},{"skinId":6164,"itemName":"HS0405","skinName":"Bullet Point","itemRarity":"Uncommon"},{"skinId":4798,"itemName":"HS0405","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":9199,"itemName":"HS0405","skinName":"Bunker","itemRarity":"Uncommon"},{"skinId":4790,"itemName":"HS0405","skinName":"Canopy","itemRarity":"Common"},{"skinId":1590,"itemName":"HS0405","skinName":"Caution","itemRarity":"Uncommon"},{"skinId":8201,"itemName":"HS0405","skinName":"Cerulean","itemRarity":"Uncommon"},{"skinId":4748,"itemName":"HS0405","skinName":"Chain Link","itemRarity":"Common"},{"skinId":4746,"itemName":"HS0405","skinName":"China Lake","itemRarity":"Common"},{"skinId":4795,"itemName":"HS0405","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":4742,"itemName":"HS0405","skinName":"Commando","itemRarity":"Common"},{"skinId":150,"itemName":"HS0405","skinName":"Copperhead","itemRarity":"Rare"},{"skinId":4757,"itemName":"HS0405","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":1741,"itemName":"HS0405","skinName":"Cubic Illusion","itemRarity":"Rare"},{"skinId":7638,"itemName":"HS0405","skinName":"Cyberline","itemRarity":"Rare"},{"skinId":7064,"itemName":"HS0405","skinName":"Damascus","itemRarity":"Common"},{"skinId":4773,"itemName":"HS0405","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":277,"itemName":"HS0405","skinName":"Dark Victorian","itemRarity":"Rare"},{"skinId":1529,"itemName":"HS0405","skinName":"Data Field","itemRarity":"Rare"},{"skinId":6082,"itemName":"HS0405","skinName":"Default","itemRarity":"Common"},{"skinId":4778,"itemName":"HS0405","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":1719,"itemName":"HS0405","skinName":"Desert Hex","itemRarity":"Uncommon"},{"skinId":4783,"itemName":"HS0405","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":4741,"itemName":"HS0405","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8537,"itemName":"HS0405","skinName":"Diamond","itemRarity":"Common"},{"skinId":4752,"itemName":"HS0405","skinName":"Dirt","itemRarity":"Common"},{"skinId":889,"itemName":"HS0405","skinName":"Easter '20","itemRarity":"Rare"},{"skinId":1885,"itemName":"HS0405","skinName":"Evil Chip","itemRarity":"Rare"},{"skinId":4775,"itemName":"HS0405","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":4776,"itemName":"HS0405","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":4760,"itemName":"HS0405","skinName":"Foliage","itemRarity":"Common"},{"skinId":6871,"itemName":"HS0405","skinName":"Forest Fabric","itemRarity":"Uncommon"},{"skinId":6288,"itemName":"HS0405","skinName":"Forest Floor","itemRarity":"Rare"},{"skinId":4763,"itemName":"HS0405","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":4800,"itemName":"HS0405","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":4799,"itemName":"HS0405","skinName":"Gecko","itemRarity":"Common"},{"skinId":7536,"itemName":"HS0405","skinName":"Glitch","itemRarity":"Uncommon"},{"skinId":4801,"itemName":"HS0405","skinName":"Gold","itemRarity":"Common"},{"skinId":4751,"itemName":"HS0405","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":7340,"itemName":"HS0405","skinName":"Heliotrope","itemRarity":"Uncommon"},{"skinId":2440,"itemName":"HS0405","skinName":"Hemophiliac","itemRarity":"Uncommon"},{"skinId":1382,"itemName":"HS0405","skinName":"Holiday Ribbons","itemRarity":"Uncommon"},{"skinId":4764,"itemName":"HS0405","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":11755,"itemName":"HS0405","skinName":"Iron Hunter","itemRarity":"Rare"},{"skinId":4786,"itemName":"HS0405","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":4793,"itemName":"HS0405","skinName":"Komodo","itemRarity":"Common"},{"skinId":6347,"itemName":"HS0405","skinName":"Leaf Beetle","itemRarity":"Rare"},{"skinId":279,"itemName":"HS0405","skinName":"Low Frequency","itemRarity":"Rare"},{"skinId":850,"itemName":"HS0405","skinName":"Lunar New Year","itemRarity":"Rare"},{"skinId":4785,"itemName":"HS0405","skinName":"Marshland","itemRarity":"Common"},{"skinId":625,"itemName":"HS0405","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":4782,"itemName":"HS0405","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":4744,"itemName":"HS0405","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":4753,"itemName":"HS0405","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":4772,"itemName":"HS0405","skinName":"Mudslide","itemRarity":"Common"},{"skinId":4758,"itemName":"HS0405","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":4749,"itemName":"HS0405","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":4789,"itemName":"HS0405","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":4771,"itemName":"HS0405","skinName":"Overgrown","itemRarity":"Common"},{"skinId":8768,"itemName":"HS0405","skinName":"Permafrost","itemRarity":"Rare"},{"skinId":4796,"itemName":"HS0405","skinName":"Pink Python","itemRarity":"Common"},{"skinId":4747,"itemName":"HS0405","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":4745,"itemName":"HS0405","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":4802,"itemName":"HS0405","skinName":"Platinum","itemRarity":"Common"},{"skinId":4791,"itemName":"HS0405","skinName":"Python","itemRarity":"Common"},{"skinId":4792,"itemName":"HS0405","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":4779,"itemName":"HS0405","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":582,"itemName":"HS0405","skinName":"Red Triangle","itemRarity":"Uncommon"},{"skinId":1269,"itemName":"HS0405","skinName":"Reindeer","itemRarity":"Uncommon"},{"skinId":4743,"itemName":"HS0405","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":10459,"itemName":"HS0405","skinName":"Ripped Camo","itemRarity":"Uncommon"},{"skinId":4765,"itemName":"HS0405","skinName":"Ruins","itemRarity":"Common"},{"skinId":10064,"itemName":"HS0405","skinName":"Ruptured Steel","itemRarity":"Rare"},{"skinId":4784,"itemName":"HS0405","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":5936,"itemName":"HS0405","skinName":"Sewed Snake","itemRarity":"Rare"},{"skinId":4770,"itemName":"HS0405","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":4750,"itemName":"HS0405","skinName":"Smoke","itemRarity":"Common"},{"skinId":1518,"itemName":"HS0405","skinName":"Steel Cut","itemRarity":"Rare"},{"skinId":10843,"itemName":"HS0405","skinName":"Stone Mason","itemRarity":"Epic"},{"skinId":4781,"itemName":"HS0405","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":4754,"itemName":"HS0405","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":870,"itemName":"HS0405","skinName":"Tank","itemRarity":"Epic"},{"skinId":4777,"itemName":"HS0405","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":4759,"itemName":"HS0405","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":2522,"itemName":"HS0405","skinName":"Tree Bark","itemRarity":"Uncommon"},{"skinId":542,"itemName":"HS0405","skinName":"Trick-or-Treat","itemRarity":"Uncommon"},{"skinId":4761,"itemName":"HS0405","skinName":"Tundra","itemRarity":"Common"},{"skinId":132,"itemName":"HS0405","skinName":"Ukiyo-e","itemRarity":"Rare"},{"skinId":9402,"itemName":"HS0405","skinName":"Uncertain","itemRarity":"Uncommon"},{"skinId":4762,"itemName":"HS0405","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":4788,"itemName":"HS0405","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":4787,"itemName":"HS0405","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":11602,"itemName":"HS0405","skinName":"Watcher","itemRarity":"Uncommon"},{"skinId":6257,"itemName":"HS0405","skinName":"Woodland","itemRarity":"Rare"},{"skinId":791,"itemName":"HS2126","skinName":"Abnormality","itemRarity":"Uncommon"},{"skinId":4960,"itemName":"HS2126","skinName":"Abominable","itemRarity":"Common"},{"skinId":4983,"itemName":"HS2126","skinName":"Anaconda","itemRarity":"Common"},{"skinId":4953,"itemName":"HS2126","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":4955,"itemName":"HS2126","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":4952,"itemName":"HS2126","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":4942,"itemName":"HS2126","skinName":"Asphalt","itemRarity":"Common"},{"skinId":4954,"itemName":"HS2126","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":425,"itemName":"HS2126","skinName":"Balloons","itemRarity":"Rare"},{"skinId":4941,"itemName":"HS2126","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":4980,"itemName":"HS2126","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":4966,"itemName":"HS2126","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":1206,"itemName":"HS2126","skinName":"Blue Wave","itemRarity":"Uncommon"},{"skinId":4984,"itemName":"HS2126","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":4976,"itemName":"HS2126","skinName":"Canopy","itemRarity":"Common"},{"skinId":4934,"itemName":"HS2126","skinName":"Chain Link","itemRarity":"Common"},{"skinId":4932,"itemName":"HS2126","skinName":"China Lake","itemRarity":"Common"},{"skinId":4981,"itemName":"HS2126","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":4928,"itemName":"HS2126","skinName":"Commando","itemRarity":"Common"},{"skinId":6928,"itemName":"HS2126","skinName":"Crayon","itemRarity":"Uncommon"},{"skinId":4943,"itemName":"HS2126","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7067,"itemName":"HS2126","skinName":"Damascus","itemRarity":"Common"},{"skinId":4959,"itemName":"HS2126","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":929,"itemName":"HS2126","skinName":"Deck of Spades","itemRarity":"Rare"},{"skinId":6076,"itemName":"HS2126","skinName":"Default","itemRarity":"Common"},{"skinId":4964,"itemName":"HS2126","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":4969,"itemName":"HS2126","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":4927,"itemName":"HS2126","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8540,"itemName":"HS2126","skinName":"Diamond","itemRarity":"Common"},{"skinId":4938,"itemName":"HS2126","skinName":"Dirt","itemRarity":"Common"},{"skinId":4961,"itemName":"HS2126","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":4962,"itemName":"HS2126","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":4946,"itemName":"HS2126","skinName":"Foliage","itemRarity":"Common"},{"skinId":4949,"itemName":"HS2126","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":4986,"itemName":"HS2126","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":9982,"itemName":"HS2126","skinName":"Gas Cloud","itemRarity":"Uncommon"},{"skinId":4985,"itemName":"HS2126","skinName":"Gecko","itemRarity":"Common"},{"skinId":4987,"itemName":"HS2126","skinName":"Gold","itemRarity":"Common"},{"skinId":6907,"itemName":"HS2126","skinName":"Graceful Blue","itemRarity":"Uncommon"},{"skinId":4937,"itemName":"HS2126","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":8869,"itemName":"HS2126","skinName":"Hereafter","itemRarity":"Uncommon"},{"skinId":4950,"itemName":"HS2126","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":608,"itemName":"HS2126","skinName":"Jingle Bells","itemRarity":"Uncommon"},{"skinId":7427,"itemName":"HS2126","skinName":"Kapow","itemRarity":"Uncommon"},{"skinId":4972,"itemName":"HS2126","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":4979,"itemName":"HS2126","skinName":"Komodo","itemRarity":"Common"},{"skinId":951,"itemName":"HS2126","skinName":"Mardi Gras","itemRarity":"Rare"},{"skinId":4971,"itemName":"HS2126","skinName":"Marshland","itemRarity":"Common"},{"skinId":626,"itemName":"HS2126","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":4968,"itemName":"HS2126","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":4930,"itemName":"HS2126","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":4939,"itemName":"HS2126","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":4958,"itemName":"HS2126","skinName":"Mudslide","itemRarity":"Common"},{"skinId":4944,"itemName":"HS2126","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":4935,"itemName":"HS2126","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":4975,"itemName":"HS2126","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":4957,"itemName":"HS2126","skinName":"Overgrown","itemRarity":"Common"},{"skinId":11460,"itemName":"HS2126","skinName":"Overpower","itemRarity":"Rare"},{"skinId":4982,"itemName":"HS2126","skinName":"Pink Python","itemRarity":"Common"},{"skinId":4933,"itemName":"HS2126","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":4931,"itemName":"HS2126","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":4988,"itemName":"HS2126","skinName":"Platinum","itemRarity":"Common"},{"skinId":4977,"itemName":"HS2126","skinName":"Python","itemRarity":"Common"},{"skinId":4978,"itemName":"HS2126","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":4965,"itemName":"HS2126","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":7266,"itemName":"HS2126","skinName":"Reflective","itemRarity":"Rare"},{"skinId":4929,"itemName":"HS2126","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":11094,"itemName":"HS2126","skinName":"Rock Cairn","itemRarity":"Uncommon"},{"skinId":4951,"itemName":"HS2126","skinName":"Ruins","itemRarity":"Common"},{"skinId":4970,"itemName":"HS2126","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":9720,"itemName":"HS2126","skinName":"Screen Tear","itemRarity":"Uncommon"},{"skinId":4956,"itemName":"HS2126","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":4936,"itemName":"HS2126","skinName":"Smoke","itemRarity":"Common"},{"skinId":1459,"itemName":"HS2126","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":4967,"itemName":"HS2126","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":9311,"itemName":"HS2126","skinName":"Synapse","itemRarity":"Rare"},{"skinId":4940,"itemName":"HS2126","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":1426,"itemName":"HS2126","skinName":"Technologic","itemRarity":"Uncommon"},{"skinId":4963,"itemName":"HS2126","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":4945,"itemName":"HS2126","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":4947,"itemName":"HS2126","skinName":"Tundra","itemRarity":"Common"},{"skinId":8446,"itemName":"HS2126","skinName":"Uncertain","itemRarity":"Uncommon"},{"skinId":4948,"itemName":"HS2126","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":4974,"itemName":"HS2126","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":4973,"itemName":"HS2126","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":1311,"itemName":"HS2126","skinName":"Yellow Triangle","itemRarity":"Uncommon"},{"skinId":4037,"itemName":"HVK-30","skinName":"Abominable","itemRarity":"Common"},{"skinId":4060,"itemName":"HVK-30","skinName":"Anaconda","itemRarity":"Common"},{"skinId":4030,"itemName":"HVK-30","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":4032,"itemName":"HVK-30","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":4029,"itemName":"HVK-30","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":4019,"itemName":"HVK-30","skinName":"Asphalt","itemRarity":"Common"},{"skinId":4031,"itemName":"HVK-30","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":11046,"itemName":"HVK-30","skinName":"Birthstone","itemRarity":"Rare"},{"skinId":4018,"itemName":"HVK-30","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":4057,"itemName":"HVK-30","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":4043,"itemName":"HVK-30","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":4061,"itemName":"HVK-30","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":9004,"itemName":"HVK-30","skinName":"Burial Ground","itemRarity":"Rare"},{"skinId":4053,"itemName":"HVK-30","skinName":"Canopy","itemRarity":"Common"},{"skinId":4012,"itemName":"HVK-30","skinName":"Chain Link","itemRarity":"Common"},{"skinId":4010,"itemName":"HVK-30","skinName":"China Lake","itemRarity":"Common"},{"skinId":2012,"itemName":"HVK-30","skinName":"Chrome Wave","itemRarity":"Epic"},{"skinId":4058,"itemName":"HVK-30","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":4006,"itemName":"HVK-30","skinName":"Commando","itemRarity":"Common"},{"skinId":2778,"itemName":"HVK-30","skinName":"Corroded","itemRarity":"Uncommon"},{"skinId":4020,"itemName":"HVK-30","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7052,"itemName":"HVK-30","skinName":"Damascus","itemRarity":"Common"},{"skinId":4036,"itemName":"HVK-30","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":9434,"itemName":"HVK-30","skinName":"Data Blocks","itemRarity":"Uncommon"},{"skinId":1851,"itemName":"HVK-30","skinName":"Default","itemRarity":"Common"},{"skinId":4041,"itemName":"HVK-30","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":4046,"itemName":"HVK-30","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":3033,"itemName":"HVK-30","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8525,"itemName":"HVK-30","skinName":"Diamond","itemRarity":"Common"},{"skinId":4015,"itemName":"HVK-30","skinName":"Dirt","itemRarity":"Common"},{"skinId":10283,"itemName":"HVK-30","skinName":"Duct Tape","itemRarity":"Uncommon"},{"skinId":905,"itemName":"HVK-30","skinName":"Eruption","itemRarity":"Epic"},{"skinId":4038,"itemName":"HVK-30","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":4039,"itemName":"HVK-30","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":4023,"itemName":"HVK-30","skinName":"Foliage","itemRarity":"Common"},{"skinId":4026,"itemName":"HVK-30","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":4063,"itemName":"HVK-30","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":4062,"itemName":"HVK-30","skinName":"Gecko","itemRarity":"Common"},{"skinId":4064,"itemName":"HVK-30","skinName":"Gold","itemRarity":"Common"},{"skinId":3034,"itemName":"HVK-30","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":4027,"itemName":"HVK-30","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":9178,"itemName":"HVK-30","skinName":"Insurgent","itemRarity":"Epic"},{"skinId":1852,"itemName":"HVK-30","skinName":"Isometric","itemRarity":"Rare"},{"skinId":10020,"itemName":"HVK-30","skinName":"Jumper Cable","itemRarity":"Epic"},{"skinId":7426,"itemName":"HVK-30","skinName":"Kapow","itemRarity":"Uncommon"},{"skinId":4049,"itemName":"HVK-30","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":4056,"itemName":"HVK-30","skinName":"Komodo","itemRarity":"Common"},{"skinId":6418,"itemName":"HVK-30","skinName":"Lattice","itemRarity":"Rare"},{"skinId":4048,"itemName":"HVK-30","skinName":"Marshland","itemRarity":"Common"},{"skinId":7376,"itemName":"HVK-30","skinName":"Maximum Security","itemRarity":"Legendary"},{"skinId":4045,"itemName":"HVK-30","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":4008,"itemName":"HVK-30","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":4016,"itemName":"HVK-30","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":4035,"itemName":"HVK-30","skinName":"Mudslide","itemRarity":"Common"},{"skinId":4021,"itemName":"HVK-30","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":4013,"itemName":"HVK-30","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":4052,"itemName":"HVK-30","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":8190,"itemName":"HVK-30","skinName":"Nine Round","itemRarity":"Rare"},{"skinId":4034,"itemName":"HVK-30","skinName":"Overgrown","itemRarity":"Common"},{"skinId":2481,"itemName":"HVK-30","skinName":"Persisted","itemRarity":"Rare"},{"skinId":4059,"itemName":"HVK-30","skinName":"Pink Python","itemRarity":"Common"},{"skinId":4011,"itemName":"HVK-30","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":4009,"itemName":"HVK-30","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":6311,"itemName":"HVK-30","skinName":"Plated Gray","itemRarity":"Uncommon"},{"skinId":4065,"itemName":"HVK-30","skinName":"Platinum","itemRarity":"Common"},{"skinId":8030,"itemName":"HVK-30","skinName":"Pocket Shock","itemRarity":"Uncommon"},{"skinId":5950,"itemName":"HVK-30","skinName":"Pseudoscience","itemRarity":"Epic"},{"skinId":6716,"itemName":"HVK-30","skinName":"Purple Geode","itemRarity":"Uncommon"},{"skinId":4054,"itemName":"HVK-30","skinName":"Python","itemRarity":"Common"},{"skinId":4055,"itemName":"HVK-30","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":4042,"itemName":"HVK-30","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":4007,"itemName":"HVK-30","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":11093,"itemName":"HVK-30","skinName":"Rock Cairn","itemRarity":"Uncommon"},{"skinId":4028,"itemName":"HVK-30","skinName":"Ruins","itemRarity":"Common"},{"skinId":4047,"itemName":"HVK-30","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":9713,"itemName":"HVK-30","skinName":"Scatter Force","itemRarity":"Rare"},{"skinId":4033,"itemName":"HVK-30","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":10085,"itemName":"HVK-30","skinName":"Shredded","itemRarity":"Rare"},{"skinId":4014,"itemName":"HVK-30","skinName":"Smoke","itemRarity":"Common"},{"skinId":8005,"itemName":"HVK-30","skinName":"Stalwart","itemRarity":"Rare"},{"skinId":7309,"itemName":"HVK-30","skinName":"Static Electricity","itemRarity":"Rare"},{"skinId":4044,"itemName":"HVK-30","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":4017,"itemName":"HVK-30","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":8291,"itemName":"HVK-30","skinName":"Target Lock","itemRarity":"Epic"},{"skinId":4040,"itemName":"HVK-30","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":6198,"itemName":"HVK-30","skinName":"Tin Stitched","itemRarity":"Rare"},{"skinId":4022,"itemName":"HVK-30","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":4024,"itemName":"HVK-30","skinName":"Tundra","itemRarity":"Common"},{"skinId":4025,"itemName":"HVK-30","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":4051,"itemName":"HVK-30","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":4050,"itemName":"HVK-30","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":8712,"itemName":"HVK-30","skinName":"Winterwood","itemRarity":"Rare"},{"skinId":9369,"itemName":"Hachi","skinName":"Bladeware","itemRarity":"Epic"},{"skinId":6004,"itemName":"Hachi","skinName":"Dragonfang","itemRarity":"Epic"},{"skinId":390,"itemName":"Hachi","skinName":"Hachi","itemRarity":"Epic"},{"skinId":10806,"itemName":"Hachi","skinName":"Porcelain Yakuza","itemRarity":"Epic"},{"skinId":11574,"itemName":"Heartbeat Sensor","skinName":"Default","itemRarity":"Common"},{"skinId":11368,"itemName":"Holger 26","skinName":"Abominable","itemRarity":"Common"},{"skinId":11391,"itemName":"Holger 26","skinName":"Anaconda","itemRarity":"Common"},{"skinId":11361,"itemName":"Holger 26","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":11363,"itemName":"Holger 26","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":11360,"itemName":"Holger 26","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":11350,"itemName":"Holger 26","skinName":"Asphalt","itemRarity":"Common"},{"skinId":11362,"itemName":"Holger 26","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":11349,"itemName":"Holger 26","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":11388,"itemName":"Holger 26","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":11374,"itemName":"Holger 26","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":11392,"itemName":"Holger 26","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":11384,"itemName":"Holger 26","skinName":"Canopy","itemRarity":"Common"},{"skinId":11342,"itemName":"Holger 26","skinName":"Chain Link","itemRarity":"Common"},{"skinId":11340,"itemName":"Holger 26","skinName":"China Lake","itemRarity":"Common"},{"skinId":11389,"itemName":"Holger 26","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":11336,"itemName":"Holger 26","skinName":"Commando","itemRarity":"Common"},{"skinId":11351,"itemName":"Holger 26","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":11397,"itemName":"Holger 26","skinName":"Damascus","itemRarity":"Common"},{"skinId":11367,"itemName":"Holger 26","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":11887,"itemName":"Holger 26","skinName":"Dark Frontier","itemRarity":"Mythic"},{"skinId":11270,"itemName":"Holger 26","skinName":"Default","itemRarity":"Common"},{"skinId":11372,"itemName":"Holger 26","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":11377,"itemName":"Holger 26","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":11335,"itemName":"Holger 26","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":11398,"itemName":"Holger 26","skinName":"Diamond","itemRarity":"Common"},{"skinId":11346,"itemName":"Holger 26","skinName":"Dirt","itemRarity":"Common"},{"skinId":11369,"itemName":"Holger 26","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":11370,"itemName":"Holger 26","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":11354,"itemName":"Holger 26","skinName":"Foliage","itemRarity":"Common"},{"skinId":11357,"itemName":"Holger 26","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":11394,"itemName":"Holger 26","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":11393,"itemName":"Holger 26","skinName":"Gecko","itemRarity":"Common"},{"skinId":11395,"itemName":"Holger 26","skinName":"Gold","itemRarity":"Common"},{"skinId":11345,"itemName":"Holger 26","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":11358,"itemName":"Holger 26","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":11380,"itemName":"Holger 26","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":11387,"itemName":"Holger 26","skinName":"Komodo","itemRarity":"Common"},{"skinId":11379,"itemName":"Holger 26","skinName":"Marshland","itemRarity":"Common"},{"skinId":11376,"itemName":"Holger 26","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":11338,"itemName":"Holger 26","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":11347,"itemName":"Holger 26","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":11366,"itemName":"Holger 26","skinName":"Mudslide","itemRarity":"Common"},{"skinId":11352,"itemName":"Holger 26","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":11343,"itemName":"Holger 26","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":11383,"itemName":"Holger 26","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":11365,"itemName":"Holger 26","skinName":"Overgrown","itemRarity":"Common"},{"skinId":11390,"itemName":"Holger 26","skinName":"Pink Python","itemRarity":"Common"},{"skinId":11341,"itemName":"Holger 26","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":11339,"itemName":"Holger 26","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":11396,"itemName":"Holger 26","skinName":"Platinum","itemRarity":"Common"},{"skinId":11385,"itemName":"Holger 26","skinName":"Python","itemRarity":"Common"},{"skinId":11386,"itemName":"Holger 26","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":11373,"itemName":"Holger 26","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":11337,"itemName":"Holger 26","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":11359,"itemName":"Holger 26","skinName":"Ruins","itemRarity":"Common"},{"skinId":11378,"itemName":"Holger 26","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":11364,"itemName":"Holger 26","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":11344,"itemName":"Holger 26","skinName":"Smoke","itemRarity":"Common"},{"skinId":11375,"itemName":"Holger 26","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":11348,"itemName":"Holger 26","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":11371,"itemName":"Holger 26","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":11353,"itemName":"Holger 26","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":11355,"itemName":"Holger 26","skinName":"Tundra","itemRarity":"Common"},{"skinId":11356,"itemName":"Holger 26","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":11382,"itemName":"Holger 26","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":11381,"itemName":"Holger 26","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":5020,"itemName":"ICR-1","skinName":"Abominable","itemRarity":"Common"},{"skinId":2991,"itemName":"ICR-1","skinName":"Ammo Box","itemRarity":"Uncommon"},{"skinId":5043,"itemName":"ICR-1","skinName":"Anaconda","itemRarity":"Common"},{"skinId":5013,"itemName":"ICR-1","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":7228,"itemName":"ICR-1","skinName":"Anniversary","itemRarity":"Rare"},{"skinId":5015,"itemName":"ICR-1","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":5012,"itemName":"ICR-1","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":5002,"itemName":"ICR-1","skinName":"Asphalt","itemRarity":"Common"},{"skinId":5014,"itemName":"ICR-1","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":11066,"itemName":"ICR-1","skinName":"Birthstone","itemRarity":"Rare"},{"skinId":5001,"itemName":"ICR-1","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":6273,"itemName":"ICR-1","skinName":"Bloodline","itemRarity":"Rare"},{"skinId":5040,"itemName":"ICR-1","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":5026,"itemName":"ICR-1","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":5044,"itemName":"ICR-1","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":5036,"itemName":"ICR-1","skinName":"Canopy","itemRarity":"Common"},{"skinId":3058,"itemName":"ICR-1","skinName":"Catacombs","itemRarity":"Rare"},{"skinId":4995,"itemName":"ICR-1","skinName":"Chain Link","itemRarity":"Common"},{"skinId":4993,"itemName":"ICR-1","skinName":"China Lake","itemRarity":"Common"},{"skinId":5041,"itemName":"ICR-1","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":9730,"itemName":"ICR-1","skinName":"Circuit Board","itemRarity":"Epic"},{"skinId":10037,"itemName":"ICR-1","skinName":"Collapse","itemRarity":"Rare"},{"skinId":2747,"itemName":"ICR-1","skinName":"Color Spectrum","itemRarity":"Epic"},{"skinId":4989,"itemName":"ICR-1","skinName":"Commando","itemRarity":"Common"},{"skinId":9525,"itemName":"ICR-1","skinName":"Cosmic Wave","itemRarity":"Rare"},{"skinId":1814,"itemName":"ICR-1","skinName":"Cosmos","itemRarity":"Epic"},{"skinId":5003,"itemName":"ICR-1","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7068,"itemName":"ICR-1","skinName":"Damascus","itemRarity":"Common"},{"skinId":5019,"itemName":"ICR-1","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":611,"itemName":"ICR-1","skinName":"Dark Matter","itemRarity":"Epic"},{"skinId":5947,"itemName":"ICR-1","skinName":"Default","itemRarity":"Common"},{"skinId":5024,"itemName":"ICR-1","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":5029,"itemName":"ICR-1","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":3026,"itemName":"ICR-1","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8541,"itemName":"ICR-1","skinName":"Diamond","itemRarity":"Common"},{"skinId":4998,"itemName":"ICR-1","skinName":"Dirt","itemRarity":"Common"},{"skinId":5021,"itemName":"ICR-1","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":11259,"itemName":"ICR-1","skinName":"Fenrir","itemRarity":"Epic"},{"skinId":5022,"itemName":"ICR-1","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":11588,"itemName":"ICR-1","skinName":"Ferrofluid","itemRarity":"Epic"},{"skinId":5006,"itemName":"ICR-1","skinName":"Foliage","itemRarity":"Common"},{"skinId":9406,"itemName":"ICR-1","skinName":"Forced Laughter","itemRarity":"Legendary"},{"skinId":5009,"itemName":"ICR-1","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":5046,"itemName":"ICR-1","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":5045,"itemName":"ICR-1","skinName":"Gecko","itemRarity":"Common"},{"skinId":5047,"itemName":"ICR-1","skinName":"Gold","itemRarity":"Common"},{"skinId":3027,"itemName":"ICR-1","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":7992,"itemName":"ICR-1","skinName":"Hard Water","itemRarity":"Uncommon"},{"skinId":8860,"itemName":"ICR-1","skinName":"Hearth","itemRarity":"Rare"},{"skinId":7628,"itemName":"ICR-1","skinName":"Hot Heat","itemRarity":"Epic"},{"skinId":5010,"itemName":"ICR-1","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":10234,"itemName":"ICR-1","skinName":"Ignition","itemRarity":"Epic"},{"skinId":10509,"itemName":"ICR-1","skinName":"Imprint","itemRarity":"Rare"},{"skinId":11197,"itemName":"ICR-1","skinName":"Innovator","itemRarity":"Legendary"},{"skinId":5032,"itemName":"ICR-1","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":5039,"itemName":"ICR-1","skinName":"Komodo","itemRarity":"Common"},{"skinId":640,"itemName":"ICR-1","skinName":"Lava","itemRarity":"Epic"},{"skinId":5031,"itemName":"ICR-1","skinName":"Marshland","itemRarity":"Common"},{"skinId":8895,"itemName":"ICR-1","skinName":"Meteor Core","itemRarity":"Epic"},{"skinId":133,"itemName":"ICR-1","skinName":"Meteors","itemRarity":"Rare"},{"skinId":5028,"itemName":"ICR-1","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":4991,"itemName":"ICR-1","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":4999,"itemName":"ICR-1","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":5018,"itemName":"ICR-1","skinName":"Mudslide","itemRarity":"Common"},{"skinId":5004,"itemName":"ICR-1","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":4996,"itemName":"ICR-1","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":5035,"itemName":"ICR-1","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":7917,"itemName":"ICR-1","skinName":"Nonconformist","itemRarity":"Uncommon"},{"skinId":2425,"itemName":"ICR-1","skinName":"Nuclear Fallout","itemRarity":"Epic"},{"skinId":5017,"itemName":"ICR-1","skinName":"Overgrown","itemRarity":"Common"},{"skinId":2356,"itemName":"ICR-1","skinName":"Persisted","itemRarity":"Rare"},{"skinId":9616,"itemName":"ICR-1","skinName":"Phobos","itemRarity":"Epic"},{"skinId":5042,"itemName":"ICR-1","skinName":"Pink Python","itemRarity":"Common"},{"skinId":4994,"itemName":"ICR-1","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":4992,"itemName":"ICR-1","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":5048,"itemName":"ICR-1","skinName":"Platinum","itemRarity":"Common"},{"skinId":5037,"itemName":"ICR-1","skinName":"Python","itemRarity":"Common"},{"skinId":5038,"itemName":"ICR-1","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":5025,"itemName":"ICR-1","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":2863,"itemName":"ICR-1","skinName":"Retro Nuclear","itemRarity":"Epic"},{"skinId":4990,"itemName":"ICR-1","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":11855,"itemName":"ICR-1","skinName":"Ropework","itemRarity":"Uncommon"},{"skinId":5011,"itemName":"ICR-1","skinName":"Ruins","itemRarity":"Common"},{"skinId":5030,"itemName":"ICR-1","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":5016,"itemName":"ICR-1","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":1727,"itemName":"ICR-1","skinName":"Skulls & Blood","itemRarity":"Rare"},{"skinId":4997,"itemName":"ICR-1","skinName":"Smoke","itemRarity":"Common"},{"skinId":7968,"itemName":"ICR-1","skinName":"Stalwart","itemRarity":"Rare"},{"skinId":5027,"itemName":"ICR-1","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":5000,"itemName":"ICR-1","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":5023,"itemName":"ICR-1","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":6639,"itemName":"ICR-1","skinName":"Tourmaline","itemRarity":"Epic"},{"skinId":5005,"itemName":"ICR-1","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":5007,"itemName":"ICR-1","skinName":"Tundra","itemRarity":"Common"},{"skinId":5008,"itemName":"ICR-1","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":9306,"itemName":"ICR-1","skinName":"Voltaic","itemRarity":"Rare"},{"skinId":5034,"itemName":"ICR-1","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":5033,"itemName":"ICR-1","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":9060,"itemName":"ICR-1","skinName":"Warhead","itemRarity":"Uncommon"},{"skinId":11672,"itemName":"Ice Axe","skinName":"Murder","itemRarity":"Epic"},{"skinId":8741,"itemName":"Ice Axe","skinName":"Nocturnal","itemRarity":"Epic"},{"skinId":11455,"itemName":"Ice Axe","skinName":"Overpower","itemRarity":"Rare"},{"skinId":11107,"itemName":"Ice Axe","skinName":"Periwinkle","itemRarity":"Epic"},{"skinId":6139,"itemName":"Ice Axe","skinName":"Revolution","itemRarity":"Epic"},{"skinId":527,"itemName":"Ice Axe","skinName":"Shattered","itemRarity":"Epic"},{"skinId":5697,"itemName":"J358","skinName":"Abominable","itemRarity":"Common"},{"skinId":469,"itemName":"J358","skinName":"Abomination","itemRarity":"Epic"},{"skinId":8282,"itemName":"J358","skinName":"Alarm","itemRarity":"Uncommon"},{"skinId":6577,"itemName":"J358","skinName":"Alligator","itemRarity":"Uncommon"},{"skinId":5946,"itemName":"J358","skinName":"Ammo Box","itemRarity":"Uncommon"},{"skinId":5720,"itemName":"J358","skinName":"Anaconda","itemRarity":"Common"},{"skinId":6116,"itemName":"J358","skinName":"Angles","itemRarity":"Uncommon"},{"skinId":5690,"itemName":"J358","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":5692,"itemName":"J358","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":5689,"itemName":"J358","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":5679,"itemName":"J358","skinName":"Asphalt","itemRarity":"Common"},{"skinId":5691,"itemName":"J358","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":2844,"itemName":"J358","skinName":"Bats","itemRarity":"Uncommon"},{"skinId":2951,"itemName":"J358","skinName":"Battle Dressed","itemRarity":"Rare"},{"skinId":1014,"itemName":"J358","skinName":"Black Gold","itemRarity":"Epic"},{"skinId":6966,"itemName":"J358","skinName":"Black Top","itemRarity":"Uncommon"},{"skinId":5678,"itemName":"J358","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":2251,"itemName":"J358","skinName":"Blue Carbon","itemRarity":"Rare"},{"skinId":2191,"itemName":"J358","skinName":"Blue Graffiti","itemRarity":"Uncommon"},{"skinId":5717,"itemName":"J358","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":5703,"itemName":"J358","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":6235,"itemName":"J358","skinName":"Bolted Metal","itemRarity":"Uncommon"},{"skinId":8969,"itemName":"J358","skinName":"Brain Freeze","itemRarity":"Uncommon"},{"skinId":3075,"itemName":"J358","skinName":"Brushed Red","itemRarity":"Uncommon"},{"skinId":6167,"itemName":"J358","skinName":"Bullet Point","itemRarity":"Uncommon"},{"skinId":5721,"itemName":"J358","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":9201,"itemName":"J358","skinName":"Bunker","itemRarity":"Uncommon"},{"skinId":7267,"itemName":"J358","skinName":"CODM","itemRarity":"Rare"},{"skinId":1908,"itemName":"J358","skinName":"Calcium Chloride","itemRarity":"Uncommon"},{"skinId":5713,"itemName":"J358","skinName":"Canopy","itemRarity":"Common"},{"skinId":11730,"itemName":"J358","skinName":"Carrion","itemRarity":"Uncommon"},{"skinId":3061,"itemName":"J358","skinName":"Catacombs","itemRarity":"Rare"},{"skinId":8206,"itemName":"J358","skinName":"Cerulean","itemRarity":"Uncommon"},{"skinId":5671,"itemName":"J358","skinName":"Chain Link","itemRarity":"Common"},{"skinId":7382,"itemName":"J358","skinName":"Championship Charge","itemRarity":"Rare"},{"skinId":6781,"itemName":"J358","skinName":"Championship Streak","itemRarity":"Rare"},{"skinId":5669,"itemName":"J358","skinName":"China Lake","itemRarity":"Common"},{"skinId":5718,"itemName":"J358","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":7559,"itemName":"J358","skinName":"Citrine","itemRarity":"Epic"},{"skinId":5665,"itemName":"J358","skinName":"Commando","itemRarity":"Common"},{"skinId":1191,"itemName":"J358","skinName":"Copperhead","itemRarity":"Rare"},{"skinId":1872,"itemName":"J358","skinName":"Corpse Digger","itemRarity":"Uncommon"},{"skinId":2781,"itemName":"J358","skinName":"Corroded","itemRarity":"Uncommon"},{"skinId":7658,"itemName":"J358","skinName":"Court Blue","itemRarity":"Uncommon"},{"skinId":8141,"itemName":"J358","skinName":"Crackle","itemRarity":"Uncommon"},{"skinId":5680,"itemName":"J358","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":11199,"itemName":"J358","skinName":"Cutting Edge","itemRarity":"Epic"},{"skinId":6970,"itemName":"J358","skinName":"Damascus","itemRarity":"Common"},{"skinId":5696,"itemName":"J358","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":404,"itemName":"J358","skinName":"Dark Fiber","itemRarity":"Uncommon"},{"skinId":193,"itemName":"J358","skinName":"Dark Victorian","itemRarity":"Rare"},{"skinId":428,"itemName":"J358","skinName":"Default","itemRarity":"Common"},{"skinId":11517,"itemName":"J358","skinName":"Denim","itemRarity":"Uncommon"},{"skinId":5701,"itemName":"J358","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":5706,"itemName":"J358","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":5664,"itemName":"J358","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8504,"itemName":"J358","skinName":"Diamond","itemRarity":"Common"},{"skinId":9430,"itemName":"J358","skinName":"Digital Desert","itemRarity":"Rare"},{"skinId":5675,"itemName":"J358","skinName":"Dirt","itemRarity":"Common"},{"skinId":2583,"itemName":"J358","skinName":"Distressed","itemRarity":"Uncommon"},{"skinId":2856,"itemName":"J358","skinName":"Eagle Feather","itemRarity":"Uncommon"},{"skinId":760,"itemName":"J358","skinName":"Easter '20","itemRarity":"Uncommon"},{"skinId":6548,"itemName":"J358","skinName":"Echolocation","itemRarity":"Epic"},{"skinId":11144,"itemName":"J358","skinName":"Effigy","itemRarity":"Epic"},{"skinId":10273,"itemName":"J358","skinName":"Engine Bay","itemRarity":"Rare"},{"skinId":7683,"itemName":"J358","skinName":"Enlightened","itemRarity":"Epic"},{"skinId":2773,"itemName":"J358","skinName":"Faded Dream","itemRarity":"Rare"},{"skinId":5698,"itemName":"J358","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":5699,"itemName":"J358","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":6656,"itemName":"J358","skinName":"Fiber Mesh","itemRarity":"Rare"},{"skinId":2071,"itemName":"J358","skinName":"Firecracker","itemRarity":"Epic"},{"skinId":1953,"itemName":"J358","skinName":"Flesh Bite","itemRarity":"Uncommon"},{"skinId":5683,"itemName":"J358","skinName":"Foliage","itemRarity":"Common"},{"skinId":6876,"itemName":"J358","skinName":"Forest Fabric","itemRarity":"Uncommon"},{"skinId":73,"itemName":"J358","skinName":"Frontier","itemRarity":"Rare"},{"skinId":5686,"itemName":"J358","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":5723,"itemName":"J358","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":5722,"itemName":"J358","skinName":"Gecko","itemRarity":"Common"},{"skinId":7540,"itemName":"J358","skinName":"Glitch","itemRarity":"Uncommon"},{"skinId":5724,"itemName":"J358","skinName":"Gold","itemRarity":"Common"},{"skinId":7729,"itemName":"J358","skinName":"Graceful Gold","itemRarity":"Uncommon"},{"skinId":7709,"itemName":"J358","skinName":"Green Terror","itemRarity":"Rare"},{"skinId":2190,"itemName":"J358","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":2612,"itemName":"J358","skinName":"Grime","itemRarity":"Uncommon"},{"skinId":2020,"itemName":"J358","skinName":"Ground Splitter","itemRarity":"Rare"},{"skinId":5674,"itemName":"J358","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":9530,"itemName":"J358","skinName":"Hard Tech","itemRarity":"Rare"},{"skinId":10256,"itemName":"J358","skinName":"Haunted","itemRarity":"Rare"},{"skinId":1550,"itemName":"J358","skinName":"Hazard","itemRarity":"Rare"},{"skinId":8861,"itemName":"J358","skinName":"Hearth","itemRarity":"Rare"},{"skinId":2243,"itemName":"J358","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":2444,"itemName":"J358","skinName":"Hemophiliac","itemRarity":"Uncommon"},{"skinId":1384,"itemName":"J358","skinName":"Holiday Ribbons","itemRarity":"Uncommon"},{"skinId":5687,"itemName":"J358","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":8432,"itemName":"J358","skinName":"Impulse","itemRarity":"Rare"},{"skinId":10620,"itemName":"J358","skinName":"Inferno","itemRarity":"Rare"},{"skinId":11846,"itemName":"J358","skinName":"Ivory Tickler","itemRarity":"Rare"},{"skinId":6600,"itemName":"J358","skinName":"Jack Frost","itemRarity":"Uncommon"},{"skinId":614,"itemName":"J358","skinName":"Jingle Bells","itemRarity":"Uncommon"},{"skinId":6383,"itemName":"J358","skinName":"Jungle Cat","itemRarity":"Rare"},{"skinId":7429,"itemName":"J358","skinName":"Kapow","itemRarity":"Uncommon"},{"skinId":5709,"itemName":"J358","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":5716,"itemName":"J358","skinName":"Komodo","itemRarity":"Common"},{"skinId":7328,"itemName":"J358","skinName":"Lovestruck","itemRarity":"Rare"},{"skinId":1794,"itemName":"J358","skinName":"Lurk","itemRarity":"Rare"},{"skinId":1432,"itemName":"J358","skinName":"Maple Leaves","itemRarity":"Uncommon"},{"skinId":2054,"itemName":"J358","skinName":"Marine Blue","itemRarity":"Uncommon"},{"skinId":5708,"itemName":"J358","skinName":"Marshland","itemRarity":"Common"},{"skinId":1822,"itemName":"J358","skinName":"Meltdown","itemRarity":"Epic"},{"skinId":8824,"itemName":"J358","skinName":"Merrymaker","itemRarity":"Epic"},{"skinId":664,"itemName":"J358","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":5705,"itemName":"J358","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":5667,"itemName":"J358","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":5676,"itemName":"J358","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":6035,"itemName":"J358","skinName":"Moss Rock","itemRarity":"Uncommon"},{"skinId":5695,"itemName":"J358","skinName":"Mudslide","itemRarity":"Common"},{"skinId":6057,"itemName":"J358","skinName":"Narcissist","itemRarity":"Epic"},{"skinId":1682,"itemName":"J358","skinName":"Neon Green","itemRarity":"Uncommon"},{"skinId":5681,"itemName":"J358","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":5672,"itemName":"J358","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":5712,"itemName":"J358","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":8083,"itemName":"J358","skinName":"Noir","itemRarity":"Epic"},{"skinId":7918,"itemName":"J358","skinName":"Nonconformist","itemRarity":"Uncommon"},{"skinId":2427,"itemName":"J358","skinName":"Nuclear Fallout","itemRarity":"Epic"},{"skinId":9516,"itemName":"J358","skinName":"Nucleobase","itemRarity":"Rare"},{"skinId":2867,"itemName":"J358","skinName":"Obstacle","itemRarity":"Rare"},{"skinId":5993,"itemName":"J358","skinName":"Old News","itemRarity":"Uncommon"},{"skinId":5694,"itemName":"J358","skinName":"Overgrown","itemRarity":"Common"},{"skinId":7595,"itemName":"J358","skinName":"Pantomime","itemRarity":"Epic"},{"skinId":11155,"itemName":"J358","skinName":"Paper Star","itemRarity":"Uncommon"},{"skinId":10462,"itemName":"J358","skinName":"Parzival","itemRarity":"Epic"},{"skinId":6335,"itemName":"J358","skinName":"Pelt","itemRarity":"Uncommon"},{"skinId":9981,"itemName":"J358","skinName":"Phantom Limb","itemRarity":"Rare"},{"skinId":955,"itemName":"J358","skinName":"Phobos","itemRarity":"Epic"},{"skinId":8940,"itemName":"J358","skinName":"Pine Cone","itemRarity":"Uncommon"},{"skinId":5719,"itemName":"J358","skinName":"Pink Python","itemRarity":"Common"},{"skinId":5670,"itemName":"J358","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":5668,"itemName":"J358","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":6397,"itemName":"J358","skinName":"Plated Red","itemRarity":"Uncommon"},{"skinId":5725,"itemName":"J358","skinName":"Platinum","itemRarity":"Common"},{"skinId":8037,"itemName":"J358","skinName":"Pocket Shock","itemRarity":"Uncommon"},{"skinId":6722,"itemName":"J358","skinName":"Purple Geode","itemRarity":"Uncommon"},{"skinId":8196,"itemName":"J358","skinName":"Purple Prism","itemRarity":"Rare"},{"skinId":5714,"itemName":"J358","skinName":"Python","itemRarity":"Common"},{"skinId":7400,"itemName":"J358","skinName":"Quartz","itemRarity":"Epic"},{"skinId":9739,"itemName":"J358","skinName":"Radiometer","itemRarity":"Rare"},{"skinId":5715,"itemName":"J358","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":2903,"itemName":"J358","skinName":"Record Scratch","itemRarity":"Uncommon"},{"skinId":5702,"itemName":"J358","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":11109,"itemName":"J358","skinName":"Refined","itemRarity":"Rare"},{"skinId":2839,"itemName":"J358","skinName":"Reindeer","itemRarity":"Uncommon"},{"skinId":759,"itemName":"J358","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":10355,"itemName":"J358","skinName":"Revolt","itemRarity":"Epic"},{"skinId":6138,"itemName":"J358","skinName":"Revolution","itemRarity":"Epic"},{"skinId":5666,"itemName":"J358","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":10302,"itemName":"J358","skinName":"Ripped Camo","itemRarity":"Uncommon"},{"skinId":6742,"itemName":"J358","skinName":"Ritual","itemRarity":"Epic"},{"skinId":997,"itemName":"J358","skinName":"Riveted Green","itemRarity":"Rare"},{"skinId":11097,"itemName":"J358","skinName":"Rock Cairn","itemRarity":"Uncommon"},{"skinId":7290,"itemName":"J358","skinName":"Royal Flush","itemRarity":"Rare"},{"skinId":6206,"itemName":"J358","skinName":"Ruby","itemRarity":"Epic"},{"skinId":5688,"itemName":"J358","skinName":"Ruins","itemRarity":"Common"},{"skinId":2715,"itemName":"J358","skinName":"Rusted","itemRarity":"Uncommon"},{"skinId":10987,"itemName":"J358","skinName":"Sakura Storm","itemRarity":"Epic"},{"skinId":5707,"itemName":"J358","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":157,"itemName":"J358","skinName":"Sand Dunes","itemRarity":"Uncommon"},{"skinId":6153,"itemName":"J358","skinName":"Sewed Leather","itemRarity":"Rare"},{"skinId":5693,"itemName":"J358","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":1726,"itemName":"J358","skinName":"Skulls & Blood","itemRarity":"Rare"},{"skinId":5673,"itemName":"J358","skinName":"Smoke","itemRarity":"Common"},{"skinId":8776,"itemName":"J358","skinName":"Snow Stream","itemRarity":"Rare"},{"skinId":1155,"itemName":"J358","skinName":"Snowflakes","itemRarity":"Rare"},{"skinId":761,"itemName":"J358","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":11839,"itemName":"J358","skinName":"Stampede","itemRarity":"Epic"},{"skinId":2346,"itemName":"J358","skinName":"Stream","itemRarity":"Uncommon"},{"skinId":5704,"itemName":"J358","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":9366,"itemName":"J358","skinName":"Synapse","itemRarity":"Rare"},{"skinId":8243,"itemName":"J358","skinName":"Tagged","itemRarity":"Uncommon"},{"skinId":5677,"itemName":"J358","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":6513,"itemName":"J358","skinName":"Taped Flecktarn","itemRarity":"Rare"},{"skinId":8215,"itemName":"J358","skinName":"Target Lock","itemRarity":"Epic"},{"skinId":1429,"itemName":"J358","skinName":"Technologic","itemRarity":"Uncommon"},{"skinId":9619,"itemName":"J358","skinName":"The Numbers","itemRarity":"Uncommon"},{"skinId":5700,"itemName":"J358","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":8484,"itemName":"J358","skinName":"Tracker","itemRarity":"Uncommon"},{"skinId":5682,"itemName":"J358","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":2526,"itemName":"J358","skinName":"Tree Bark","itemRarity":"Uncommon"},{"skinId":6819,"itemName":"J358","skinName":"Tree Ring","itemRarity":"Uncommon"},{"skinId":5684,"itemName":"J358","skinName":"Tundra","itemRarity":"Common"},{"skinId":8452,"itemName":"J358","skinName":"Uncertain","itemRarity":"Uncommon"},{"skinId":6669,"itemName":"J358","skinName":"Undergrowth","itemRarity":"Uncommon"},{"skinId":5685,"itemName":"J358","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":11766,"itemName":"J358","skinName":"Wanted","itemRarity":"Uncommon"},{"skinId":5711,"itemName":"J358","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":5710,"itemName":"J358","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":9061,"itemName":"J358","skinName":"Warhead","itemRarity":"Uncommon"},{"skinId":1986,"itemName":"J358","skinName":"Werewolf Fighter","itemRarity":"Rare"},{"skinId":9476,"itemName":"J358","skinName":"Wiremass","itemRarity":"Uncommon"},{"skinId":6021,"itemName":"J358","skinName":"Woodland","itemRarity":"Rare"},{"skinId":2321,"itemName":"J358","skinName":"Wrecked","itemRarity":"Rare"},{"skinId":90,"itemName":"J358","skinName":"Zero-G","itemRarity":"Epic"},{"skinId":4097,"itemName":"KN-44","skinName":"Abominable","itemRarity":"Common"},{"skinId":8151,"itemName":"KN-44","skinName":"Alarm","itemRarity":"Uncommon"},{"skinId":4120,"itemName":"KN-44","skinName":"Anaconda","itemRarity":"Common"},{"skinId":4090,"itemName":"KN-44","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":4092,"itemName":"KN-44","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":4089,"itemName":"KN-44","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":116,"itemName":"KN-44","skinName":"Ashen Viper","itemRarity":"Rare"},{"skinId":4079,"itemName":"KN-44","skinName":"Asphalt","itemRarity":"Common"},{"skinId":9391,"itemName":"KN-44","skinName":"Aurora","itemRarity":"Rare"},{"skinId":4091,"itemName":"KN-44","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":7961,"itemName":"KN-44","skinName":"Black Gold","itemRarity":"Epic"},{"skinId":4078,"itemName":"KN-44","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":4117,"itemName":"KN-44","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":4103,"itemName":"KN-44","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":4121,"itemName":"KN-44","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":4113,"itemName":"KN-44","skinName":"Canopy","itemRarity":"Common"},{"skinId":4072,"itemName":"KN-44","skinName":"Chain Link","itemRarity":"Common"},{"skinId":11467,"itemName":"KN-44","skinName":"Championship Mindset","itemRarity":"Epic"},{"skinId":4070,"itemName":"KN-44","skinName":"China Lake","itemRarity":"Common"},{"skinId":6921,"itemName":"KN-44","skinName":"Chroma","itemRarity":"Rare"},{"skinId":4118,"itemName":"KN-44","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":919,"itemName":"KN-44","skinName":"Color Spectrum","itemRarity":"Legendary"},{"skinId":4066,"itemName":"KN-44","skinName":"Commando","itemRarity":"Common"},{"skinId":4080,"itemName":"KN-44","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7053,"itemName":"KN-44","skinName":"Damascus","itemRarity":"Common"},{"skinId":11583,"itemName":"KN-44","skinName":"Dance of Death","itemRarity":"Legendary"},{"skinId":4096,"itemName":"KN-44","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":1486,"itemName":"KN-44","skinName":"Default","itemRarity":"Common"},{"skinId":4101,"itemName":"KN-44","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":4106,"itemName":"KN-44","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":3029,"itemName":"KN-44","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8526,"itemName":"KN-44","skinName":"Diamond","itemRarity":"Common"},{"skinId":4075,"itemName":"KN-44","skinName":"Dirt","itemRarity":"Common"},{"skinId":910,"itemName":"KN-44","skinName":"Eruption","itemRarity":"Epic"},{"skinId":10488,"itemName":"KN-44","skinName":"Eyes in the Dark","itemRarity":"Uncommon"},{"skinId":4098,"itemName":"KN-44","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":4099,"itemName":"KN-44","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":4083,"itemName":"KN-44","skinName":"Foliage","itemRarity":"Common"},{"skinId":4086,"itemName":"KN-44","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":4123,"itemName":"KN-44","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":4122,"itemName":"KN-44","skinName":"Gecko","itemRarity":"Common"},{"skinId":8850,"itemName":"KN-44","skinName":"Giftwrapped","itemRarity":"Epic"},{"skinId":6352,"itemName":"KN-44","skinName":"Going Dark","itemRarity":"Rare"},{"skinId":4124,"itemName":"KN-44","skinName":"Gold","itemRarity":"Common"},{"skinId":10010,"itemName":"KN-44","skinName":"Golden Talon","itemRarity":"Epic"},{"skinId":7723,"itemName":"KN-44","skinName":"Graceful Gold","itemRarity":"Uncommon"},{"skinId":3030,"itemName":"KN-44","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":10255,"itemName":"KN-44","skinName":"Haunted","itemRarity":"Rare"},{"skinId":4087,"itemName":"KN-44","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":4109,"itemName":"KN-44","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":4116,"itemName":"KN-44","skinName":"Komodo","itemRarity":"Common"},{"skinId":2305,"itemName":"KN-44","skinName":"Living Rust","itemRarity":"Epic"},{"skinId":7906,"itemName":"KN-44","skinName":"Lunar Tide","itemRarity":"Rare"},{"skinId":4108,"itemName":"KN-44","skinName":"Marshland","itemRarity":"Common"},{"skinId":4105,"itemName":"KN-44","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":4068,"itemName":"KN-44","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":4076,"itemName":"KN-44","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":4095,"itemName":"KN-44","skinName":"Mudslide","itemRarity":"Common"},{"skinId":4081,"itemName":"KN-44","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":4073,"itemName":"KN-44","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":4112,"itemName":"KN-44","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":4094,"itemName":"KN-44","skinName":"Overgrown","itemRarity":"Common"},{"skinId":8491,"itemName":"KN-44","skinName":"Permafrost","itemRarity":"Rare"},{"skinId":4119,"itemName":"KN-44","skinName":"Pink Python","itemRarity":"Common"},{"skinId":4071,"itemName":"KN-44","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":4069,"itemName":"KN-44","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":4125,"itemName":"KN-44","skinName":"Platinum","itemRarity":"Common"},{"skinId":4114,"itemName":"KN-44","skinName":"Python","itemRarity":"Common"},{"skinId":4115,"itemName":"KN-44","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":4102,"itemName":"KN-44","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":9747,"itemName":"KN-44","skinName":"Rewind","itemRarity":"Uncommon"},{"skinId":4067,"itemName":"KN-44","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":4088,"itemName":"KN-44","skinName":"Ruins","itemRarity":"Common"},{"skinId":10063,"itemName":"KN-44","skinName":"Ruptured Steel","itemRarity":"Rare"},{"skinId":4107,"itemName":"KN-44","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":10597,"itemName":"KN-44","skinName":"Severed","itemRarity":"Rare"},{"skinId":4093,"itemName":"KN-44","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":7879,"itemName":"KN-44","skinName":"Sleight of Hand","itemRarity":"Rare"},{"skinId":4074,"itemName":"KN-44","skinName":"Smoke","itemRarity":"Common"},{"skinId":6866,"itemName":"KN-44","skinName":"Subterfuge","itemRarity":"Rare"},{"skinId":4104,"itemName":"KN-44","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":11836,"itemName":"KN-44","skinName":"Swindler","itemRarity":"Epic"},{"skinId":4077,"itemName":"KN-44","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":4100,"itemName":"KN-44","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":6961,"itemName":"KN-44","skinName":"Tourmaline","itemRarity":"Epic"},{"skinId":4082,"itemName":"KN-44","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":4084,"itemName":"KN-44","skinName":"Tundra","itemRarity":"Common"},{"skinId":4085,"itemName":"KN-44","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":6366,"itemName":"KN-44","skinName":"Untamed","itemRarity":"Epic"},{"skinId":8380,"itemName":"KN-44","skinName":"Upper Hand","itemRarity":"Rare"},{"skinId":4111,"itemName":"KN-44","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":4110,"itemName":"KN-44","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":9578,"itemName":"KN-44","skinName":"Warp","itemRarity":"Uncommon"},{"skinId":1556,"itemName":"KN-44","skinName":"Yellow Camo","itemRarity":"Uncommon"},{"skinId":5082,"itemName":"KRM 262","skinName":"Abominable","itemRarity":"Common"},{"skinId":5105,"itemName":"KRM 262","skinName":"Anaconda","itemRarity":"Common"},{"skinId":5075,"itemName":"KRM 262","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":5077,"itemName":"KRM 262","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":5074,"itemName":"KRM 262","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":5064,"itemName":"KRM 262","skinName":"Asphalt","itemRarity":"Common"},{"skinId":5076,"itemName":"KRM 262","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":7480,"itemName":"KRM 262","skinName":"Black Top","itemRarity":"Uncommon"},{"skinId":5063,"itemName":"KRM 262","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":5102,"itemName":"KRM 262","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":5088,"itemName":"KRM 262","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":5106,"itemName":"KRM 262","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":5098,"itemName":"KRM 262","skinName":"Canopy","itemRarity":"Common"},{"skinId":5056,"itemName":"KRM 262","skinName":"Chain Link","itemRarity":"Common"},{"skinId":5054,"itemName":"KRM 262","skinName":"China Lake","itemRarity":"Common"},{"skinId":5103,"itemName":"KRM 262","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":5050,"itemName":"KRM 262","skinName":"Commando","itemRarity":"Common"},{"skinId":5065,"itemName":"KRM 262","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":9978,"itemName":"KRM 262","skinName":"Crisis","itemRarity":"Rare"},{"skinId":11193,"itemName":"KRM 262","skinName":"Cutting Edge","itemRarity":"Epic"},{"skinId":7069,"itemName":"KRM 262","skinName":"Damascus","itemRarity":"Common"},{"skinId":5081,"itemName":"KRM 262","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":2557,"itemName":"KRM 262","skinName":"Default","itemRarity":"Common"},{"skinId":5086,"itemName":"KRM 262","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":5091,"itemName":"KRM 262","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":5049,"itemName":"KRM 262","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8542,"itemName":"KRM 262","skinName":"Diamond","itemRarity":"Common"},{"skinId":5060,"itemName":"KRM 262","skinName":"Dirt","itemRarity":"Common"},{"skinId":11179,"itemName":"KRM 262","skinName":"Duel","itemRarity":"Uncommon"},{"skinId":10044,"itemName":"KRM 262","skinName":"Eagle Claw","itemRarity":"Epic"},{"skinId":5083,"itemName":"KRM 262","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":5084,"itemName":"KRM 262","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":5068,"itemName":"KRM 262","skinName":"Foliage","itemRarity":"Common"},{"skinId":5071,"itemName":"KRM 262","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":9710,"itemName":"KRM 262","skinName":"Future Buzz","itemRarity":"Epic"},{"skinId":5108,"itemName":"KRM 262","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":5107,"itemName":"KRM 262","skinName":"Gecko","itemRarity":"Common"},{"skinId":5109,"itemName":"KRM 262","skinName":"Gold","itemRarity":"Common"},{"skinId":5059,"itemName":"KRM 262","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":11688,"itemName":"KRM 262","skinName":"Horseshoe","itemRarity":"Uncommon"},{"skinId":5072,"itemName":"KRM 262","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":8082,"itemName":"KRM 262","skinName":"Joy Buzzsaw","itemRarity":"Epic"},{"skinId":5094,"itemName":"KRM 262","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":5101,"itemName":"KRM 262","skinName":"Komodo","itemRarity":"Common"},{"skinId":642,"itemName":"KRM 262","skinName":"Lava","itemRarity":"Epic"},{"skinId":5093,"itemName":"KRM 262","skinName":"Marshland","itemRarity":"Common"},{"skinId":5090,"itemName":"KRM 262","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":5052,"itemName":"KRM 262","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":5061,"itemName":"KRM 262","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":5080,"itemName":"KRM 262","skinName":"Mudslide","itemRarity":"Common"},{"skinId":5066,"itemName":"KRM 262","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":5057,"itemName":"KRM 262","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":5097,"itemName":"KRM 262","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":5079,"itemName":"KRM 262","skinName":"Overgrown","itemRarity":"Common"},{"skinId":5104,"itemName":"KRM 262","skinName":"Pink Python","itemRarity":"Common"},{"skinId":5055,"itemName":"KRM 262","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":5053,"itemName":"KRM 262","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":5110,"itemName":"KRM 262","skinName":"Platinum","itemRarity":"Common"},{"skinId":7245,"itemName":"KRM 262","skinName":"Point And Click","itemRarity":"Epic"},{"skinId":5099,"itemName":"KRM 262","skinName":"Python","itemRarity":"Common"},{"skinId":5100,"itemName":"KRM 262","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":5087,"itemName":"KRM 262","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":5951,"itemName":"KRM 262","skinName":"Revolution","itemRarity":"Epic"},{"skinId":5051,"itemName":"KRM 262","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":5073,"itemName":"KRM 262","skinName":"Ruins","itemRarity":"Common"},{"skinId":5092,"itemName":"KRM 262","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":5078,"itemName":"KRM 262","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":2558,"itemName":"KRM 262","skinName":"Sight Unseen","itemRarity":"Rare"},{"skinId":5058,"itemName":"KRM 262","skinName":"Smoke","itemRarity":"Common"},{"skinId":5089,"itemName":"KRM 262","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":5062,"itemName":"KRM 262","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":5085,"itemName":"KRM 262","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":9218,"itemName":"KRM 262","skinName":"Tire Chains","itemRarity":"Uncommon"},{"skinId":5067,"itemName":"KRM 262","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":5069,"itemName":"KRM 262","skinName":"Tundra","itemRarity":"Common"},{"skinId":5070,"itemName":"KRM 262","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":5096,"itemName":"KRM 262","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":5095,"itemName":"KRM 262","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":9763,"itemName":"KRM 262","skinName":"Warp","itemRarity":"Uncommon"},{"skinId":8713,"itemName":"KRM 262","skinName":"Winterwood","itemRarity":"Rare"},{"skinId":9497,"itemName":"Karambit","skinName":"Breach","itemRarity":"Epic"},{"skinId":541,"itemName":"Karambit","skinName":"Color Burst","itemRarity":"Epic"},{"skinId":8270,"itemName":"Karambit","skinName":"Dark Tech","itemRarity":"Epic"},{"skinId":6550,"itemName":"Karambit","skinName":"Echolocation","itemRarity":"Epic"},{"skinId":11078,"itemName":"Karambit","skinName":"Glow Fly","itemRarity":"Epic"},{"skinId":7318,"itemName":"Karambit","skinName":"Gold Glitter","itemRarity":"Epic"},{"skinId":9102,"itemName":"Karambit","skinName":"New Horizon","itemRarity":"Epic"},{"skinId":10464,"itemName":"Karambit","skinName":"Parzival","itemRarity":"Epic"},{"skinId":6207,"itemName":"Karambit","skinName":"Ruby","itemRarity":"Epic"},{"skinId":10081,"itemName":"Karambit","skinName":"Ruptured Steel","itemRarity":"Rare"},{"skinId":6888,"itemName":"Karambit","skinName":"Space Station","itemRarity":"Epic"},{"skinId":6370,"itemName":"Karambit","skinName":"Tiger's Eye","itemRarity":"Epic"},{"skinId":9444,"itemName":"Karambit","skinName":"VHS Glitch","itemRarity":"Epic"},{"skinId":10867,"itemName":"Karambit","skinName":"Visceral","itemRarity":"Epic"},{"skinId":11738,"itemName":"Karambit","skinName":"Volution","itemRarity":"Epic"},{"skinId":7927,"itemName":"Karambit","skinName":"Wetworks","itemRarity":"Epic"},{"skinId":7450,"itemName":"Katana","skinName":"All Hallows","itemRarity":"Epic"},{"skinId":11590,"itemName":"Katana","skinName":"Ferrofluid","itemRarity":"Epic"},{"skinId":10965,"itemName":"Katana","skinName":"Guardian Spirit","itemRarity":"Epic"},{"skinId":11027,"itemName":"Katana","skinName":"Koi Pond","itemRarity":"Epic"},{"skinId":5573,"itemName":"Kilo Bolt-Action","skinName":"Abominable","itemRarity":"Common"},{"skinId":10333,"itemName":"Kilo Bolt-Action","skinName":"Alpine Infinite","itemRarity":"Rare"},{"skinId":5596,"itemName":"Kilo Bolt-Action","skinName":"Anaconda","itemRarity":"Common"},{"skinId":5566,"itemName":"Kilo Bolt-Action","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":5568,"itemName":"Kilo Bolt-Action","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":5565,"itemName":"Kilo Bolt-Action","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":5555,"itemName":"Kilo Bolt-Action","skinName":"Asphalt","itemRarity":"Common"},{"skinId":5567,"itemName":"Kilo Bolt-Action","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":5554,"itemName":"Kilo Bolt-Action","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":5593,"itemName":"Kilo Bolt-Action","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":5579,"itemName":"Kilo Bolt-Action","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":5597,"itemName":"Kilo Bolt-Action","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":5589,"itemName":"Kilo Bolt-Action","skinName":"Canopy","itemRarity":"Common"},{"skinId":5547,"itemName":"Kilo Bolt-Action","skinName":"Chain Link","itemRarity":"Common"},{"skinId":5545,"itemName":"Kilo Bolt-Action","skinName":"China Lake","itemRarity":"Common"},{"skinId":5594,"itemName":"Kilo Bolt-Action","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":5541,"itemName":"Kilo Bolt-Action","skinName":"Commando","itemRarity":"Common"},{"skinId":11638,"itemName":"Kilo Bolt-Action","skinName":"Constable","itemRarity":"Epic"},{"skinId":9507,"itemName":"Kilo Bolt-Action","skinName":"Cosmic Wave","itemRarity":"Rare"},{"skinId":5556,"itemName":"Kilo Bolt-Action","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7077,"itemName":"Kilo Bolt-Action","skinName":"Damascus","itemRarity":"Common"},{"skinId":5572,"itemName":"Kilo Bolt-Action","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":7298,"itemName":"Kilo Bolt-Action","skinName":"Dealer","itemRarity":"Epic"},{"skinId":2939,"itemName":"Kilo Bolt-Action","skinName":"Default","itemRarity":"Common"},{"skinId":5577,"itemName":"Kilo Bolt-Action","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":5582,"itemName":"Kilo Bolt-Action","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":5540,"itemName":"Kilo Bolt-Action","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8550,"itemName":"Kilo Bolt-Action","skinName":"Diamond","itemRarity":"Common"},{"skinId":8419,"itemName":"Kilo Bolt-Action","skinName":"Digital Death","itemRarity":"Epic"},{"skinId":5551,"itemName":"Kilo Bolt-Action","skinName":"Dirt","itemRarity":"Common"},{"skinId":11180,"itemName":"Kilo Bolt-Action","skinName":"Duel","itemRarity":"Uncommon"},{"skinId":5574,"itemName":"Kilo Bolt-Action","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":5575,"itemName":"Kilo Bolt-Action","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":5559,"itemName":"Kilo Bolt-Action","skinName":"Foliage","itemRarity":"Common"},{"skinId":5562,"itemName":"Kilo Bolt-Action","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":5599,"itemName":"Kilo Bolt-Action","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":5598,"itemName":"Kilo Bolt-Action","skinName":"Gecko","itemRarity":"Common"},{"skinId":5600,"itemName":"Kilo Bolt-Action","skinName":"Gold","itemRarity":"Common"},{"skinId":10240,"itemName":"Kilo Bolt-Action","skinName":"Golden Age","itemRarity":"Rare"},{"skinId":5550,"itemName":"Kilo Bolt-Action","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":5563,"itemName":"Kilo Bolt-Action","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":5585,"itemName":"Kilo Bolt-Action","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":5592,"itemName":"Kilo Bolt-Action","skinName":"Komodo","itemRarity":"Common"},{"skinId":2960,"itemName":"Kilo Bolt-Action","skinName":"Lazarus","itemRarity":"Epic"},{"skinId":5584,"itemName":"Kilo Bolt-Action","skinName":"Marshland","itemRarity":"Common"},{"skinId":5581,"itemName":"Kilo Bolt-Action","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":5543,"itemName":"Kilo Bolt-Action","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":5552,"itemName":"Kilo Bolt-Action","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":5571,"itemName":"Kilo Bolt-Action","skinName":"Mudslide","itemRarity":"Common"},{"skinId":5557,"itemName":"Kilo Bolt-Action","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":5548,"itemName":"Kilo Bolt-Action","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":5588,"itemName":"Kilo Bolt-Action","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":5570,"itemName":"Kilo Bolt-Action","skinName":"Overgrown","itemRarity":"Common"},{"skinId":8942,"itemName":"Kilo Bolt-Action","skinName":"Pine Cone","itemRarity":"Uncommon"},{"skinId":5595,"itemName":"Kilo Bolt-Action","skinName":"Pink Python","itemRarity":"Common"},{"skinId":5546,"itemName":"Kilo Bolt-Action","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":5544,"itemName":"Kilo Bolt-Action","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":5601,"itemName":"Kilo Bolt-Action","skinName":"Platinum","itemRarity":"Common"},{"skinId":5590,"itemName":"Kilo Bolt-Action","skinName":"Python","itemRarity":"Common"},{"skinId":6845,"itemName":"Kilo Bolt-Action","skinName":"Railgun","itemRarity":"Legendary"},{"skinId":5591,"itemName":"Kilo Bolt-Action","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":5578,"itemName":"Kilo Bolt-Action","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":5542,"itemName":"Kilo Bolt-Action","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":5564,"itemName":"Kilo Bolt-Action","skinName":"Ruins","itemRarity":"Common"},{"skinId":5583,"itemName":"Kilo Bolt-Action","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":5569,"itemName":"Kilo Bolt-Action","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":5549,"itemName":"Kilo Bolt-Action","skinName":"Smoke","itemRarity":"Common"},{"skinId":8763,"itemName":"Kilo Bolt-Action","skinName":"Snow Stream","itemRarity":"Rare"},{"skinId":9043,"itemName":"Kilo Bolt-Action","skinName":"Snowframe","itemRarity":"Rare"},{"skinId":5580,"itemName":"Kilo Bolt-Action","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":5553,"itemName":"Kilo Bolt-Action","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":5576,"itemName":"Kilo Bolt-Action","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":5558,"itemName":"Kilo Bolt-Action","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":10083,"itemName":"Kilo Bolt-Action","skinName":"Trap Shooter","itemRarity":"Epic"},{"skinId":5560,"itemName":"Kilo Bolt-Action","skinName":"Tundra","itemRarity":"Common"},{"skinId":5561,"itemName":"Kilo Bolt-Action","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":11243,"itemName":"Kilo Bolt-Action","skinName":"Wagon Wheel","itemRarity":"Uncommon"},{"skinId":5587,"itemName":"Kilo Bolt-Action","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":5586,"itemName":"Kilo Bolt-Action","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":9670,"itemName":"Kilo Bolt-Action","skinName":"Warmth","itemRarity":"Uncommon"},{"skinId":10120,"itemName":"Kilo Bolt-Action","skinName":"Yellow Abstract","itemRarity":"Uncommon"},{"skinId":336,"itemName":"Knife","skinName":"1001 Nights","itemRarity":"Uncommon"},{"skinId":782,"itemName":"Knife","skinName":"Abnormality","itemRarity":"Uncommon"},{"skinId":5759,"itemName":"Knife","skinName":"Abominable","itemRarity":"Common"},{"skinId":8021,"itemName":"Knife","skinName":"Acid Helix","itemRarity":"Rare"},{"skinId":1861,"itemName":"Knife","skinName":"Afterlife","itemRarity":"Rare"},{"skinId":8281,"itemName":"Knife","skinName":"Alarm","itemRarity":"Uncommon"},{"skinId":1102,"itemName":"Knife","skinName":"Alaska","itemRarity":"Rare"},{"skinId":6576,"itemName":"Knife","skinName":"Alligator","itemRarity":"Uncommon"},{"skinId":11479,"itemName":"Knife","skinName":"Ambush","itemRarity":"Uncommon"},{"skinId":2987,"itemName":"Knife","skinName":"Ammo Box","itemRarity":"Uncommon"},{"skinId":5782,"itemName":"Knife","skinName":"Anaconda","itemRarity":"Common"},{"skinId":5752,"itemName":"Knife","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":5754,"itemName":"Knife","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":2554,"itemName":"Knife","skinName":"Arctic Digital","itemRarity":"Uncommon"},{"skinId":5751,"itemName":"Knife","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":5741,"itemName":"Knife","skinName":"Asphalt","itemRarity":"Common"},{"skinId":1097,"itemName":"Knife","skinName":"Aurora Borealis","itemRarity":"Rare"},{"skinId":5753,"itemName":"Knife","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":225,"itemName":"Knife","skinName":"Bandit","itemRarity":"Rare"},{"skinId":2940,"itemName":"Knife","skinName":"Battle Dressed","itemRarity":"Rare"},{"skinId":1671,"itemName":"Knife","skinName":"Black Lime","itemRarity":"Rare"},{"skinId":10376,"itemName":"Knife","skinName":"Black Marble","itemRarity":"Uncommon"},{"skinId":5740,"itemName":"Knife","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":6286,"itemName":"Knife","skinName":"Bloodline","itemRarity":"Rare"},{"skinId":251,"itemName":"Knife","skinName":"Bloody","itemRarity":"Rare"},{"skinId":705,"itemName":"Knife","skinName":"Bloody Vengeance","itemRarity":"Epic"},{"skinId":5779,"itemName":"Knife","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":5765,"itemName":"Knife","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":1974,"itemName":"Knife","skinName":"Blue Wave","itemRarity":"Uncommon"},{"skinId":2894,"itemName":"Knife","skinName":"Bogged Down","itemRarity":"Rare"},{"skinId":10158,"itemName":"Knife","skinName":"Bombastic","itemRarity":"Rare"},{"skinId":11504,"itemName":"Knife","skinName":"Bootstraps","itemRarity":"Rare"},{"skinId":748,"itemName":"Knife","skinName":"Brambles","itemRarity":"Rare"},{"skinId":8096,"itemName":"Knife","skinName":"Breakup","itemRarity":"Rare"},{"skinId":10883,"itemName":"Knife","skinName":"Bubblegum","itemRarity":"Epic"},{"skinId":11242,"itemName":"Knife","skinName":"Buckskin","itemRarity":"Rare"},{"skinId":6708,"itemName":"Knife","skinName":"Bug Spray","itemRarity":"Rare"},{"skinId":5783,"itemName":"Knife","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":9200,"itemName":"Knife","skinName":"Bunker","itemRarity":"Uncommon"},{"skinId":1911,"itemName":"Knife","skinName":"Calcium Chloride","itemRarity":"Uncommon"},{"skinId":8840,"itemName":"Knife","skinName":"Candy Cane","itemRarity":"Rare"},{"skinId":5775,"itemName":"Knife","skinName":"Canopy","itemRarity":"Common"},{"skinId":379,"itemName":"Knife","skinName":"Canvas","itemRarity":"Rare"},{"skinId":10559,"itemName":"Knife","skinName":"Card Armor","itemRarity":"Rare"},{"skinId":11641,"itemName":"Knife","skinName":"Carrion","itemRarity":"Uncommon"},{"skinId":3060,"itemName":"Knife","skinName":"Catacombs","itemRarity":"Rare"},{"skinId":1587,"itemName":"Knife","skinName":"Caution","itemRarity":"Uncommon"},{"skinId":5733,"itemName":"Knife","skinName":"Chain Link","itemRarity":"Common"},{"skinId":94,"itemName":"Knife","skinName":"Championship 2020","itemRarity":"Rare"},{"skinId":7386,"itemName":"Knife","skinName":"Championship Charge","itemRarity":"Rare"},{"skinId":2043,"itemName":"Knife","skinName":"Championship Purple","itemRarity":"Epic"},{"skinId":5731,"itemName":"Knife","skinName":"China Lake","itemRarity":"Common"},{"skinId":6923,"itemName":"Knife","skinName":"Chroma","itemRarity":"Rare"},{"skinId":2014,"itemName":"Knife","skinName":"Chrome Wave","itemRarity":"Epic"},{"skinId":5780,"itemName":"Knife","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":7703,"itemName":"Knife","skinName":"Citrine","itemRarity":"Epic"},{"skinId":6525,"itemName":"Knife","skinName":"Coat","itemRarity":"Uncommon"},{"skinId":10047,"itemName":"Knife","skinName":"Collapse","itemRarity":"Rare"},{"skinId":93,"itemName":"Knife","skinName":"Color Spectrum","itemRarity":"Epic"},{"skinId":5727,"itemName":"Knife","skinName":"Commando","itemRarity":"Common"},{"skinId":8111,"itemName":"Knife","skinName":"Concrete Lightning","itemRarity":"Uncommon"},{"skinId":1749,"itemName":"Knife","skinName":"Contamination","itemRarity":"Epic"},{"skinId":6102,"itemName":"Knife","skinName":"Copilot","itemRarity":"Rare"},{"skinId":362,"itemName":"Knife","skinName":"Copperhead","itemRarity":"Rare"},{"skinId":1875,"itemName":"Knife","skinName":"Corpse Digger","itemRarity":"Uncommon"},{"skinId":2782,"itemName":"Knife","skinName":"Corroded","itemRarity":"Uncommon"},{"skinId":10521,"itemName":"Knife","skinName":"Cosmos","itemRarity":"Epic"},{"skinId":10794,"itemName":"Knife","skinName":"Crane Style","itemRarity":"Uncommon"},{"skinId":6934,"itemName":"Knife","skinName":"Crayon","itemRarity":"Uncommon"},{"skinId":5742,"itemName":"Knife","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":746,"itemName":"Knife","skinName":"Cubic Illusion","itemRarity":"Rare"},{"skinId":11007,"itemName":"Knife","skinName":"Cumulus","itemRarity":"Uncommon"},{"skinId":903,"itemName":"Knife","skinName":"Cyberspace","itemRarity":"Epic"},{"skinId":8921,"itemName":"Knife","skinName":"Dalmatian","itemRarity":"Uncommon"},{"skinId":6971,"itemName":"Knife","skinName":"Damascus","itemRarity":"Common"},{"skinId":1633,"itemName":"Knife","skinName":"Danger Zone","itemRarity":"Rare"},{"skinId":5758,"itemName":"Knife","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":10483,"itemName":"Knife","skinName":"Dark Band","itemRarity":"Rare"},{"skinId":1201,"itemName":"Knife","skinName":"Dark Fiber","itemRarity":"Uncommon"},{"skinId":2462,"itemName":"Knife","skinName":"Deep Forest","itemRarity":"Rare"},{"skinId":9180,"itemName":"Knife","skinName":"Defibrilator","itemRarity":"Epic"},{"skinId":5763,"itemName":"Knife","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":5768,"itemName":"Knife","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":758,"itemName":"Knife","skinName":"Desert Snake","itemRarity":"Uncommon"},{"skinId":5726,"itemName":"Knife","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":2330,"itemName":"Knife","skinName":"Desperate Measures","itemRarity":"Rare"},{"skinId":8505,"itemName":"Knife","skinName":"Diamond","itemRarity":"Common"},{"skinId":5737,"itemName":"Knife","skinName":"Dirt","itemRarity":"Common"},{"skinId":2584,"itemName":"Knife","skinName":"Distressed","itemRarity":"Uncommon"},{"skinId":753,"itemName":"Knife","skinName":"Dream Glacier","itemRarity":"Rare"},{"skinId":10285,"itemName":"Knife","skinName":"Duct Tape","itemRarity":"Uncommon"},{"skinId":757,"itemName":"Knife","skinName":"Easter '20","itemRarity":"Uncommon"},{"skinId":6499,"itemName":"Knife","skinName":"Echolocation","itemRarity":"Epic"},{"skinId":890,"itemName":"Knife","skinName":"Enchanted Carbine","itemRarity":"Epic"},{"skinId":908,"itemName":"Knife","skinName":"Eruption","itemRarity":"Epic"},{"skinId":747,"itemName":"Knife","skinName":"Evil Chip","itemRarity":"Rare"},{"skinId":2434,"itemName":"Knife","skinName":"Extinction","itemRarity":"Rare"},{"skinId":5760,"itemName":"Knife","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":5761,"itemName":"Knife","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":8853,"itemName":"Knife","skinName":"Festive","itemRarity":"Epic"},{"skinId":9639,"itemName":"Knife","skinName":"Fiber Ray","itemRarity":"Uncommon"},{"skinId":751,"itemName":"Knife","skinName":"Fire Forged","itemRarity":"Rare"},{"skinId":1848,"itemName":"Knife","skinName":"Flesh Bite","itemRarity":"Uncommon"},{"skinId":11162,"itemName":"Knife","skinName":"Floating Lotus","itemRarity":"Epic"},{"skinId":52,"itemName":"Knife","skinName":"Flowing Bronze","itemRarity":"Rare"},{"skinId":5745,"itemName":"Knife","skinName":"Foliage","itemRarity":"Common"},{"skinId":6875,"itemName":"Knife","skinName":"Forest Fabric","itemRarity":"Uncommon"},{"skinId":6760,"itemName":"Knife","skinName":"Forest Felt","itemRarity":"Uncommon"},{"skinId":6316,"itemName":"Knife","skinName":"Forest Floor","itemRarity":"Rare"},{"skinId":7960,"itemName":"Knife","skinName":"Forward Motion","itemRarity":"Rare"},{"skinId":2034,"itemName":"Knife","skinName":"Frostbite","itemRarity":"Uncommon"},{"skinId":5748,"itemName":"Knife","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":2469,"itemName":"Knife","skinName":"Fuel Tank","itemRarity":"Uncommon"},{"skinId":752,"itemName":"Knife","skinName":"G-Series","itemRarity":"Rare"},{"skinId":2541,"itemName":"Knife","skinName":"Gag","itemRarity":"Epic"},{"skinId":5785,"itemName":"Knife","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":9989,"itemName":"Knife","skinName":"Gas Cloud","itemRarity":"Uncommon"},{"skinId":5784,"itemName":"Knife","skinName":"Gecko","itemRarity":"Common"},{"skinId":5786,"itemName":"Knife","skinName":"Gold","itemRarity":"Common"},{"skinId":10241,"itemName":"Knife","skinName":"Golden Age","itemRarity":"Rare"},{"skinId":7726,"itemName":"Knife","skinName":"Graceful Gold","itemRarity":"Uncommon"},{"skinId":2870,"itemName":"Knife","skinName":"Gray Skies","itemRarity":"Uncommon"},{"skinId":10887,"itemName":"Knife","skinName":"Great Wave","itemRarity":"Rare"},{"skinId":7708,"itemName":"Knife","skinName":"Green Terror","itemRarity":"Rare"},{"skinId":2194,"itemName":"Knife","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":2609,"itemName":"Knife","skinName":"Grime","itemRarity":"Uncommon"},{"skinId":2021,"itemName":"Knife","skinName":"Ground Splitter","itemRarity":"Rare"},{"skinId":5736,"itemName":"Knife","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":545,"itemName":"Knife","skinName":"Halloween","itemRarity":"Rare"},{"skinId":1883,"itemName":"Knife","skinName":"Hazardous","itemRarity":"Uncommon"},{"skinId":1855,"itemName":"Knife","skinName":"Headless Rider","itemRarity":"Rare"},{"skinId":1473,"itemName":"Knife","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":273,"itemName":"Knife","skinName":"Heat Stroke","itemRarity":"Epic"},{"skinId":2443,"itemName":"Knife","skinName":"Hemophiliac","itemRarity":"Uncommon"},{"skinId":8872,"itemName":"Knife","skinName":"Hereafter","itemRarity":"Uncommon"},{"skinId":2845,"itemName":"Knife","skinName":"Holiday Ribbons","itemRarity":"Uncommon"},{"skinId":11691,"itemName":"Knife","skinName":"Horseshoe","itemRarity":"Uncommon"},{"skinId":1892,"itemName":"Knife","skinName":"Hot Spot","itemRarity":"Epic"},{"skinId":5749,"itemName":"Knife","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":8950,"itemName":"Knife","skinName":"Ice Crystal","itemRarity":"Epic"},{"skinId":247,"itemName":"Knife","skinName":"Industrial Revolution","itemRarity":"Rare"},{"skinId":8818,"itemName":"Knife","skinName":"Insulated","itemRarity":"Rare"},{"skinId":6619,"itemName":"Knife","skinName":"Iridescent","itemRarity":"Rare"},{"skinId":594,"itemName":"Knife","skinName":"Jack Frost","itemRarity":"Uncommon"},{"skinId":613,"itemName":"Knife","skinName":"Jingle Bells","itemRarity":"Uncommon"},{"skinId":7431,"itemName":"Knife","skinName":"Kapow","itemRarity":"Uncommon"},{"skinId":5771,"itemName":"Knife","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":5778,"itemName":"Knife","skinName":"Komodo","itemRarity":"Common"},{"skinId":8136,"itemName":"Knife","skinName":"Labyrinth","itemRarity":"Rare"},{"skinId":6346,"itemName":"Knife","skinName":"Leaf Beetle","itemRarity":"Rare"},{"skinId":11661,"itemName":"Knife","skinName":"Leather & Lead","itemRarity":"Rare"},{"skinId":10171,"itemName":"Knife","skinName":"Lingering","itemRarity":"Uncommon"},{"skinId":2336,"itemName":"Knife","skinName":"Living Rust","itemRarity":"Epic"},{"skinId":852,"itemName":"Knife","skinName":"Lunar New Year","itemRarity":"Rare"},{"skinId":1793,"itemName":"Knife","skinName":"Lurk","itemRarity":"Rare"},{"skinId":1364,"itemName":"Knife","skinName":"Magic Bull","itemRarity":"Rare"},{"skinId":1499,"itemName":"Knife","skinName":"Magic Eye","itemRarity":"Epic"},{"skinId":11581,"itemName":"Knife","skinName":"Malpractice","itemRarity":"Epic"},{"skinId":8404,"itemName":"Knife","skinName":"Mar","itemRarity":"Uncommon"},{"skinId":2055,"itemName":"Knife","skinName":"Marine","itemRarity":"Uncommon"},{"skinId":5770,"itemName":"Knife","skinName":"Marshland","itemRarity":"Common"},{"skinId":1757,"itemName":"Knife","skinName":"Medieval","itemRarity":"Rare"},{"skinId":258,"itemName":"Knife","skinName":"Melon","itemRarity":"Uncommon"},{"skinId":9770,"itemName":"Knife","skinName":"Meltdown","itemRarity":"Epic"},{"skinId":551,"itemName":"Knife","skinName":"Metal Note","itemRarity":"Rare"},{"skinId":855,"itemName":"Knife","skinName":"Meteor Shower","itemRarity":"Epic"},{"skinId":2193,"itemName":"Knife","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":5767,"itemName":"Knife","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":1525,"itemName":"Knife","skinName":"Moonstone","itemRarity":"Epic"},{"skinId":5729,"itemName":"Knife","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":2602,"itemName":"Knife","skinName":"Moss","itemRarity":"Rare"},{"skinId":5738,"itemName":"Knife","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":5757,"itemName":"Knife","skinName":"Mudslide","itemRarity":"Common"},{"skinId":1,"itemName":"Knife","skinName":"Natural Hunter","itemRarity":"Epic"},{"skinId":1685,"itemName":"Knife","skinName":"Neon Green","itemRarity":"Uncommon"},{"skinId":5743,"itemName":"Knife","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":5734,"itemName":"Knife","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":5774,"itemName":"Knife","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":8423,"itemName":"Knife","skinName":"Noir","itemRarity":"Epic"},{"skinId":7921,"itemName":"Knife","skinName":"Nonconformist","itemRarity":"Uncommon"},{"skinId":2822,"itemName":"Knife","skinName":"Nuclear Fallout","itemRarity":"Epic"},{"skinId":2947,"itemName":"Knife","skinName":"Obstacle","itemRarity":"Rare"},{"skinId":2699,"itemName":"Knife","skinName":"Oil Spill","itemRarity":"Epic"},{"skinId":5756,"itemName":"Knife","skinName":"Overgrown","itemRarity":"Common"},{"skinId":10995,"itemName":"Knife","skinName":"Pagoda","itemRarity":"Rare"},{"skinId":10250,"itemName":"Knife","skinName":"Paint Smear","itemRarity":"Uncommon"},{"skinId":10598,"itemName":"Knife","skinName":"Paper Fan","itemRarity":"Uncommon"},{"skinId":11065,"itemName":"Knife","skinName":"Paper Star","itemRarity":"Uncommon"},{"skinId":11033,"itemName":"Knife","skinName":"Perfect Balance","itemRarity":"Rare"},{"skinId":8496,"itemName":"Knife","skinName":"Permafrost","itemRarity":"Rare"},{"skinId":9992,"itemName":"Knife","skinName":"Phantom Limb","itemRarity":"Rare"},{"skinId":8844,"itemName":"Knife","skinName":"Pine Cone","itemRarity":"Uncommon"},{"skinId":5781,"itemName":"Knife","skinName":"Pink Python","itemRarity":"Common"},{"skinId":5732,"itemName":"Knife","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":5730,"itemName":"Knife","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":6909,"itemName":"Knife","skinName":"Plated Green","itemRarity":"Uncommon"},{"skinId":6396,"itemName":"Knife","skinName":"Plated Red","itemRarity":"Uncommon"},{"skinId":5787,"itemName":"Knife","skinName":"Platinum","itemRarity":"Common"},{"skinId":8038,"itemName":"Knife","skinName":"Pocket Shock","itemRarity":"Uncommon"},{"skinId":2518,"itemName":"Knife","skinName":"Posted","itemRarity":"Rare"},{"skinId":2192,"itemName":"Knife","skinName":"Pulsar","itemRarity":"Rare"},{"skinId":6721,"itemName":"Knife","skinName":"Purple Geode","itemRarity":"Uncommon"},{"skinId":8325,"itemName":"Knife","skinName":"Purple Prism","itemRarity":"Rare"},{"skinId":5776,"itemName":"Knife","skinName":"Python","itemRarity":"Common"},{"skinId":9585,"itemName":"Knife","skinName":"Quartz","itemRarity":"Epic"},{"skinId":8009,"itemName":"Knife","skinName":"Radar","itemRarity":"Epic"},{"skinId":11228,"itemName":"Knife","skinName":"Rambo's Knife","itemRarity":"Epic"},{"skinId":5777,"itemName":"Knife","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":925,"itemName":"Knife","skinName":"Red","itemRarity":"Uncommon"},{"skinId":8286,"itemName":"Knife","skinName":"Red Burst","itemRarity":"Uncommon"},{"skinId":118,"itemName":"Knife","skinName":"Red Dragon","itemRarity":"Rare"},{"skinId":10633,"itemName":"Knife","skinName":"Red Sun","itemRarity":"Uncommon"},{"skinId":5764,"itemName":"Knife","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":6903,"itemName":"Knife","skinName":"Reflective","itemRarity":"Rare"},{"skinId":755,"itemName":"Knife","skinName":"Reindeer","itemRarity":"Uncommon"},{"skinId":11630,"itemName":"Knife","skinName":"Repellent","itemRarity":"Uncommon"},{"skinId":754,"itemName":"Knife","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":10356,"itemName":"Knife","skinName":"Revolt","itemRarity":"Epic"},{"skinId":9751,"itemName":"Knife","skinName":"Rewind","itemRarity":"Uncommon"},{"skinId":5728,"itemName":"Knife","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":9979,"itemName":"Knife","skinName":"Ripped Camo","itemRarity":"Uncommon"},{"skinId":11858,"itemName":"Knife","skinName":"Ropework","itemRarity":"Uncommon"},{"skinId":5750,"itemName":"Knife","skinName":"Ruins","itemRarity":"Common"},{"skinId":2717,"itemName":"Knife","skinName":"Rusted","itemRarity":"Uncommon"},{"skinId":6598,"itemName":"Knife","skinName":"Sakura","itemRarity":"Rare"},{"skinId":10989,"itemName":"Knife","skinName":"Sakura Storm","itemRarity":"Epic"},{"skinId":5769,"itemName":"Knife","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":57,"itemName":"Knife","skinName":"Sand Dunes","itemRarity":"Uncommon"},{"skinId":285,"itemName":"Knife","skinName":"Sandbox","itemRarity":"Uncommon"},{"skinId":9714,"itemName":"Knife","skinName":"Scatter Force","itemRarity":"Rare"},{"skinId":9723,"itemName":"Knife","skinName":"Screen Tear","itemRarity":"Uncommon"},{"skinId":750,"itemName":"Knife","skinName":"Section","itemRarity":"Rare"},{"skinId":5937,"itemName":"Knife","skinName":"Sewed Snake","itemRarity":"Rare"},{"skinId":5755,"itemName":"Knife","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":10833,"itemName":"Knife","skinName":"Shrine","itemRarity":"Uncommon"},{"skinId":2265,"itemName":"Knife","skinName":"Slate","itemRarity":"Uncommon"},{"skinId":5735,"itemName":"Knife","skinName":"Smoke","itemRarity":"Common"},{"skinId":2567,"itemName":"Knife","skinName":"Snake Bite","itemRarity":"Epic"},{"skinId":2575,"itemName":"Knife","skinName":"Spoils","itemRarity":"Rare"},{"skinId":756,"itemName":"Knife","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":2706,"itemName":"Knife","skinName":"Stained Steel","itemRarity":"Rare"},{"skinId":8000,"itemName":"Knife","skinName":"Stalwart","itemRarity":"Rare"},{"skinId":745,"itemName":"Knife","skinName":"Star Camo","itemRarity":"Rare"},{"skinId":9459,"itemName":"Knife","skinName":"Static Discharge","itemRarity":"Epic"},{"skinId":11210,"itemName":"Knife","skinName":"Steam Engine","itemRarity":"Rare"},{"skinId":458,"itemName":"Knife","skinName":"Steel Cut","itemRarity":"Rare"},{"skinId":2349,"itemName":"Knife","skinName":"Stream","itemRarity":"Uncommon"},{"skinId":5766,"itemName":"Knife","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":8244,"itemName":"Knife","skinName":"Tagged","itemRarity":"Uncommon"},{"skinId":5739,"itemName":"Knife","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":6512,"itemName":"Knife","skinName":"Taped Flecktarn","itemRarity":"Rare"},{"skinId":8194,"itemName":"Knife","skinName":"Target Lock","itemRarity":"Epic"},{"skinId":1257,"itemName":"Knife","skinName":"Task Force 141","itemRarity":"Rare"},{"skinId":6841,"itemName":"Knife","skinName":"Third Rail","itemRarity":"Epic"},{"skinId":5762,"itemName":"Knife","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":6643,"itemName":"Knife","skinName":"Tourmaline","itemRarity":"Epic"},{"skinId":5744,"itemName":"Knife","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":2527,"itemName":"Knife","skinName":"Tree Bark","itemRarity":"Uncommon"},{"skinId":974,"itemName":"Knife","skinName":"Tropical","itemRarity":"Uncommon"},{"skinId":5746,"itemName":"Knife","skinName":"Tundra","itemRarity":"Common"},{"skinId":1180,"itemName":"Knife","skinName":"Ukiyo-e","itemRarity":"Rare"},{"skinId":8451,"itemName":"Knife","skinName":"Uncertain","itemRarity":"Uncommon"},{"skinId":5747,"itemName":"Knife","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":6807,"itemName":"Knife","skinName":"Upper Hand","itemRarity":"Rare"},{"skinId":9643,"itemName":"Knife","skinName":"Vaporwave","itemRarity":"Rare"},{"skinId":11622,"itemName":"Knife","skinName":"Vine Growth","itemRarity":"Rare"},{"skinId":8363,"itemName":"Knife","skinName":"Visceral","itemRarity":"Epic"},{"skinId":9316,"itemName":"Knife","skinName":"Voltaic","itemRarity":"Rare"},{"skinId":11253,"itemName":"Knife","skinName":"Wagon Wheel","itemRarity":"Uncommon"},{"skinId":11747,"itemName":"Knife","skinName":"Wanted","itemRarity":"Uncommon"},{"skinId":5773,"itemName":"Knife","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":5772,"itemName":"Knife","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":9674,"itemName":"Knife","skinName":"Warmth","itemRarity":"Uncommon"},{"skinId":9506,"itemName":"Knife","skinName":"Warp","itemRarity":"Uncommon"},{"skinId":2367,"itemName":"Knife","skinName":"Wasteland Red","itemRarity":"Uncommon"},{"skinId":11603,"itemName":"Knife","skinName":"Watcher","itemRarity":"Uncommon"},{"skinId":11170,"itemName":"Knife","skinName":"Water Lantern","itemRarity":"Rare"},{"skinId":1987,"itemName":"Knife","skinName":"Werewolf Fighter","itemRarity":"Rare"},{"skinId":1807,"itemName":"Knife","skinName":"White Lies","itemRarity":"Uncommon"},{"skinId":9010,"itemName":"Knife","skinName":"Wintergreen","itemRarity":"Uncommon"},{"skinId":9477,"itemName":"Knife","skinName":"Wiremass","itemRarity":"Uncommon"},{"skinId":6188,"itemName":"Knife","skinName":"Wrath Black & Gold","itemRarity":"Epic"},{"skinId":1331,"itemName":"Knife","skinName":"Year of the Rat","itemRarity":"Rare"},{"skinId":10122,"itemName":"Knife","skinName":"Yellow Abstract","itemRarity":"Uncommon"},{"skinId":1564,"itemName":"Knife","skinName":"Yellow Camo","itemRarity":"Uncommon"},{"skinId":749,"itemName":"Knife","skinName":"Yellow Snake","itemRarity":"Rare"},{"skinId":1264,"itemName":"Knife","skinName":"Yellow Snow","itemRarity":"Uncommon"},{"skinId":81,"itemName":"Knife","skinName":"Zero-G","itemRarity":"Epic"},{"skinId":871,"itemName":"LK24","skinName":"1001 Nights","itemRarity":"Rare"},{"skinId":3559,"itemName":"LK24","skinName":"Abominable","itemRarity":"Common"},{"skinId":6562,"itemName":"LK24","skinName":"Adaptable","itemRarity":"Rare"},{"skinId":8280,"itemName":"LK24","skinName":"Alarm","itemRarity":"Uncommon"},{"skinId":3582,"itemName":"LK24","skinName":"Anaconda","itemRarity":"Common"},{"skinId":3552,"itemName":"LK24","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":1667,"itemName":"LK24","skinName":"Antivenom","itemRarity":"Epic"},{"skinId":3554,"itemName":"LK24","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":3551,"itemName":"LK24","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":35,"itemName":"LK24","skinName":"Ashen Viper","itemRarity":"Rare"},{"skinId":3541,"itemName":"LK24","skinName":"Asphalt","itemRarity":"Common"},{"skinId":3553,"itemName":"LK24","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":6287,"itemName":"LK24","skinName":"Backwoods","itemRarity":"Epic"},{"skinId":477,"itemName":"LK24","skinName":"Bengal","itemRarity":"Epic"},{"skinId":7479,"itemName":"LK24","skinName":"Black Top","itemRarity":"Uncommon"},{"skinId":3540,"itemName":"LK24","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":2249,"itemName":"LK24","skinName":"Blue Carbon","itemRarity":"Rare"},{"skinId":3579,"itemName":"LK24","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":3565,"itemName":"LK24","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":1204,"itemName":"LK24","skinName":"Blue Wave","itemRarity":"Uncommon"},{"skinId":2892,"itemName":"LK24","skinName":"Bogged Down","itemRarity":"Rare"},{"skinId":1001,"itemName":"LK24","skinName":"Brushed Green","itemRarity":"Uncommon"},{"skinId":2301,"itemName":"LK24","skinName":"Brushed Yellow","itemRarity":"Rare"},{"skinId":3583,"itemName":"LK24","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":603,"itemName":"LK24","skinName":"CQB","itemRarity":"Epic"},{"skinId":3575,"itemName":"LK24","skinName":"Canopy","itemRarity":"Common"},{"skinId":11869,"itemName":"LK24","skinName":"Celebration","itemRarity":"Rare"},{"skinId":8199,"itemName":"LK24","skinName":"Cerulean","itemRarity":"Uncommon"},{"skinId":3534,"itemName":"LK24","skinName":"Chain Link","itemRarity":"Common"},{"skinId":2046,"itemName":"LK24","skinName":"Championship Purple","itemRarity":"Epic"},{"skinId":3532,"itemName":"LK24","skinName":"China Lake","itemRarity":"Common"},{"skinId":3580,"itemName":"LK24","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":7558,"itemName":"LK24","skinName":"Citrine","itemRarity":"Epic"},{"skinId":3528,"itemName":"LK24","skinName":"Commando","itemRarity":"Common"},{"skinId":3542,"itemName":"LK24","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":842,"itemName":"LK24","skinName":"Cyberspace","itemRarity":"Epic"},{"skinId":7044,"itemName":"LK24","skinName":"Damascus","itemRarity":"Common"},{"skinId":3558,"itemName":"LK24","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":486,"itemName":"LK24","skinName":"Dead Zebra","itemRarity":"Uncommon"},{"skinId":424,"itemName":"LK24","skinName":"Default","itemRarity":"Common"},{"skinId":3563,"itemName":"LK24","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":3568,"itemName":"LK24","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":3024,"itemName":"LK24","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8517,"itemName":"LK24","skinName":"Diamond","itemRarity":"Common"},{"skinId":3537,"itemName":"LK24","skinName":"Dirt","itemRarity":"Common"},{"skinId":10149,"itemName":"LK24","skinName":"Emergence","itemRarity":"Epic"},{"skinId":9597,"itemName":"LK24","skinName":"Eternal Youth","itemRarity":"Uncommon"},{"skinId":2432,"itemName":"LK24","skinName":"Extinction","itemRarity":"Rare"},{"skinId":10486,"itemName":"LK24","skinName":"Eyes in the Dark","itemRarity":"Uncommon"},{"skinId":3560,"itemName":"LK24","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":3561,"itemName":"LK24","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":1723,"itemName":"LK24","skinName":"Flesh Bite","itemRarity":"Uncommon"},{"skinId":41,"itemName":"LK24","skinName":"Flowing Bronze","itemRarity":"Rare"},{"skinId":3545,"itemName":"LK24","skinName":"Foliage","itemRarity":"Common"},{"skinId":6268,"itemName":"LK24","skinName":"Forest Floor","itemRarity":"Rare"},{"skinId":3548,"itemName":"LK24","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":2464,"itemName":"LK24","skinName":"Fuel Tank","itemRarity":"Uncommon"},{"skinId":3585,"itemName":"LK24","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":3584,"itemName":"LK24","skinName":"Gecko","itemRarity":"Common"},{"skinId":3586,"itemName":"LK24","skinName":"Gold","itemRarity":"Common"},{"skinId":2214,"itemName":"LK24","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":3025,"itemName":"LK24","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":1395,"itemName":"LK24","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":216,"itemName":"LK24","skinName":"Heat Stroke","itemRarity":"Epic"},{"skinId":1444,"itemName":"LK24","skinName":"Holiday Ribbons","itemRarity":"Uncommon"},{"skinId":11689,"itemName":"LK24","skinName":"Horseshoe","itemRarity":"Uncommon"},{"skinId":3549,"itemName":"LK24","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":1174,"itemName":"LK24","skinName":"Irradiated Amethyst","itemRarity":"Rare"},{"skinId":2068,"itemName":"LK24","skinName":"Justicar","itemRarity":"Legendary"},{"skinId":3571,"itemName":"LK24","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":3578,"itemName":"LK24","skinName":"Komodo","itemRarity":"Common"},{"skinId":11074,"itemName":"LK24","skinName":"Last Stand","itemRarity":"Epic"},{"skinId":1396,"itemName":"LK24","skinName":"Lunar New Year","itemRarity":"Rare"},{"skinId":8167,"itemName":"LK24","skinName":"Magnetic Pulse","itemRarity":"Epic"},{"skinId":3570,"itemName":"LK24","skinName":"Marshland","itemRarity":"Common"},{"skinId":1213,"itemName":"LK24","skinName":"Metal Note","itemRarity":"Rare"},{"skinId":1508,"itemName":"LK24","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":1351,"itemName":"LK24","skinName":"Mettle","itemRarity":"Uncommon"},{"skinId":3567,"itemName":"LK24","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":3530,"itemName":"LK24","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":3538,"itemName":"LK24","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":3557,"itemName":"LK24","skinName":"Mudslide","itemRarity":"Common"},{"skinId":7620,"itemName":"LK24","skinName":"Neon Army","itemRarity":"Uncommon"},{"skinId":3543,"itemName":"LK24","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":3535,"itemName":"LK24","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":3574,"itemName":"LK24","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":8908,"itemName":"LK24","skinName":"Nosebleed","itemRarity":"Epic"},{"skinId":1247,"itemName":"LK24","skinName":"Open Circuit","itemRarity":"Rare"},{"skinId":3556,"itemName":"LK24","skinName":"Overgrown","itemRarity":"Common"},{"skinId":10874,"itemName":"LK24","skinName":"Paper Star","itemRarity":"Uncommon"},{"skinId":2351,"itemName":"LK24","skinName":"Persisted","itemRarity":"Rare"},{"skinId":3581,"itemName":"LK24","skinName":"Pink Python","itemRarity":"Common"},{"skinId":3533,"itemName":"LK24","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":3531,"itemName":"LK24","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":3587,"itemName":"LK24","skinName":"Platinum","itemRarity":"Common"},{"skinId":8033,"itemName":"LK24","skinName":"Pocket Shock","itemRarity":"Uncommon"},{"skinId":779,"itemName":"LK24","skinName":"Pumpkin Candy","itemRarity":"Uncommon"},{"skinId":3576,"itemName":"LK24","skinName":"Python","itemRarity":"Common"},{"skinId":1654,"itemName":"LK24","skinName":"Radioactive","itemRarity":"Rare"},{"skinId":3577,"itemName":"LK24","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":3564,"itemName":"LK24","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":2215,"itemName":"LK24","skinName":"Reindeer","itemRarity":"Uncommon"},{"skinId":774,"itemName":"LK24","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":3529,"itemName":"LK24","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":10132,"itemName":"LK24","skinName":"Ripped Camo","itemRarity":"Uncommon"},{"skinId":696,"itemName":"LK24","skinName":"Royal Crimson","itemRarity":"Epic"},{"skinId":3550,"itemName":"LK24","skinName":"Ruins","itemRarity":"Common"},{"skinId":2710,"itemName":"LK24","skinName":"Rusted","itemRarity":"Uncommon"},{"skinId":1280,"itemName":"LK24","skinName":"Sakura","itemRarity":"Rare"},{"skinId":3569,"itemName":"LK24","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":282,"itemName":"LK24","skinName":"Sandbox","itemRarity":"Uncommon"},{"skinId":6916,"itemName":"LK24","skinName":"Sharkbait","itemRarity":"Epic"},{"skinId":3555,"itemName":"LK24","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":3536,"itemName":"LK24","skinName":"Smoke","itemRarity":"Common"},{"skinId":655,"itemName":"LK24","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":136,"itemName":"LK24","skinName":"Survival of Fittest","itemRarity":"Rare"},{"skinId":3566,"itemName":"LK24","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":3539,"itemName":"LK24","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":1607,"itemName":"LK24","skinName":"Tangled Web","itemRarity":"Rare"},{"skinId":3562,"itemName":"LK24","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":3544,"itemName":"LK24","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":2521,"itemName":"LK24","skinName":"Tree Bark","itemRarity":"Uncommon"},{"skinId":3546,"itemName":"LK24","skinName":"Tundra","itemRarity":"Common"},{"skinId":1474,"itemName":"LK24","skinName":"Ukiyo-e","itemRarity":"Rare"},{"skinId":2965,"itemName":"LK24","skinName":"Undead Crusade","itemRarity":"Rare"},{"skinId":6668,"itemName":"LK24","skinName":"Undergrowth","itemRarity":"Uncommon"},{"skinId":3547,"itemName":"LK24","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":1139,"itemName":"LK24","skinName":"Viking","itemRarity":"Epic"},{"skinId":3573,"itemName":"LK24","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":3572,"itemName":"LK24","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":9416,"itemName":"LK24","skinName":"Warp","itemRarity":"Uncommon"},{"skinId":2376,"itemName":"LK24","skinName":"Wasteland Red","itemRarity":"Uncommon"},{"skinId":11600,"itemName":"LK24","skinName":"Watcher","itemRarity":"Uncommon"},{"skinId":9006,"itemName":"LK24","skinName":"Wintergreen","itemRarity":"Uncommon"},{"skinId":9474,"itemName":"LK24","skinName":"Wiremass","itemRarity":"Uncommon"},{"skinId":142,"itemName":"LK24","skinName":"Yellow Triangle","itemRarity":"Uncommon"},{"skinId":4158,"itemName":"Locus","skinName":"Abominable","itemRarity":"Common"},{"skinId":7388,"itemName":"Locus","skinName":"All Business","itemRarity":"Epic"},{"skinId":6575,"itemName":"Locus","skinName":"Alligator","itemRarity":"Uncommon"},{"skinId":4181,"itemName":"Locus","skinName":"Anaconda","itemRarity":"Common"},{"skinId":4151,"itemName":"Locus","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":7223,"itemName":"Locus","skinName":"Anniversary","itemRarity":"Rare"},{"skinId":4153,"itemName":"Locus","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":4150,"itemName":"Locus","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":4140,"itemName":"Locus","skinName":"Asphalt","itemRarity":"Common"},{"skinId":4152,"itemName":"Locus","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":7481,"itemName":"Locus","skinName":"Black Top","itemRarity":"Uncommon"},{"skinId":4139,"itemName":"Locus","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":4178,"itemName":"Locus","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":4164,"itemName":"Locus","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":3071,"itemName":"Locus","skinName":"Brushed Red","itemRarity":"Uncommon"},{"skinId":4182,"itemName":"Locus","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":4174,"itemName":"Locus","skinName":"Canopy","itemRarity":"Common"},{"skinId":9304,"itemName":"Locus","skinName":"Carbon Cut","itemRarity":"Epic"},{"skinId":4132,"itemName":"Locus","skinName":"Chain Link","itemRarity":"Common"},{"skinId":4130,"itemName":"Locus","skinName":"China Lake","itemRarity":"Common"},{"skinId":4179,"itemName":"Locus","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":9970,"itemName":"Locus","skinName":"Coiled","itemRarity":"Rare"},{"skinId":4126,"itemName":"Locus","skinName":"Commando","itemRarity":"Common"},{"skinId":1240,"itemName":"Locus","skinName":"Cosmos","itemRarity":"Epic"},{"skinId":4141,"itemName":"Locus","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":8812,"itemName":"Locus","skinName":"Cyberline","itemRarity":"Rare"},{"skinId":7054,"itemName":"Locus","skinName":"Damascus","itemRarity":"Common"},{"skinId":4157,"itemName":"Locus","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":25,"itemName":"Locus","skinName":"Default","itemRarity":"Common"},{"skinId":4162,"itemName":"Locus","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":4167,"itemName":"Locus","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":3041,"itemName":"Locus","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8527,"itemName":"Locus","skinName":"Diamond","itemRarity":"Common"},{"skinId":4136,"itemName":"Locus","skinName":"Dirt","itemRarity":"Common"},{"skinId":4159,"itemName":"Locus","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":4160,"itemName":"Locus","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":11160,"itemName":"Locus","skinName":"Floating Lotus","itemRarity":"Epic"},{"skinId":20,"itemName":"Locus","skinName":"Flowing Bronze","itemRarity":"Rare"},{"skinId":4144,"itemName":"Locus","skinName":"Foliage","itemRarity":"Common"},{"skinId":4147,"itemName":"Locus","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":4184,"itemName":"Locus","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":4183,"itemName":"Locus","skinName":"Gecko","itemRarity":"Common"},{"skinId":4185,"itemName":"Locus","skinName":"Gold","itemRarity":"Common"},{"skinId":4135,"itemName":"Locus","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":1890,"itemName":"Locus","skinName":"Hot Spot","itemRarity":"Epic"},{"skinId":4148,"itemName":"Locus","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":2451,"itemName":"Locus","skinName":"Junk Punk","itemRarity":"Epic"},{"skinId":4170,"itemName":"Locus","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":4177,"itemName":"Locus","skinName":"Komodo","itemRarity":"Common"},{"skinId":11663,"itemName":"Locus","skinName":"Leather & Lead","itemRarity":"Rare"},{"skinId":4169,"itemName":"Locus","skinName":"Marshland","itemRarity":"Common"},{"skinId":4166,"itemName":"Locus","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":1815,"itemName":"Locus","skinName":"Monster Green","itemRarity":"Uncommon"},{"skinId":4128,"itemName":"Locus","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":4137,"itemName":"Locus","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":4156,"itemName":"Locus","skinName":"Mudslide","itemRarity":"Common"},{"skinId":1678,"itemName":"Locus","skinName":"Neon Green","itemRarity":"Uncommon"},{"skinId":4142,"itemName":"Locus","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":4133,"itemName":"Locus","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":4173,"itemName":"Locus","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":4155,"itemName":"Locus","skinName":"Overgrown","itemRarity":"Common"},{"skinId":11461,"itemName":"Locus","skinName":"Overpower","itemRarity":"Rare"},{"skinId":4180,"itemName":"Locus","skinName":"Pink Python","itemRarity":"Common"},{"skinId":4131,"itemName":"Locus","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":4129,"itemName":"Locus","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":6330,"itemName":"Locus","skinName":"Plated Green","itemRarity":"Uncommon"},{"skinId":4186,"itemName":"Locus","skinName":"Platinum","itemRarity":"Common"},{"skinId":4175,"itemName":"Locus","skinName":"Python","itemRarity":"Common"},{"skinId":6945,"itemName":"Locus","skinName":"Radio Current","itemRarity":"Rare"},{"skinId":4176,"itemName":"Locus","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":4163,"itemName":"Locus","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":10354,"itemName":"Locus","skinName":"Revolt","itemRarity":"Epic"},{"skinId":4127,"itemName":"Locus","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":10299,"itemName":"Locus","skinName":"Ripped Camo","itemRarity":"Uncommon"},{"skinId":4149,"itemName":"Locus","skinName":"Ruins","itemRarity":"Common"},{"skinId":11494,"itemName":"Locus","skinName":"Saloon Sniper","itemRarity":"Epic"},{"skinId":4168,"itemName":"Locus","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":8188,"itemName":"Locus","skinName":"Schism","itemRarity":"Epic"},{"skinId":6066,"itemName":"Locus","skinName":"Sewed Snake","itemRarity":"Rare"},{"skinId":4154,"itemName":"Locus","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":4134,"itemName":"Locus","skinName":"Smoke","itemRarity":"Common"},{"skinId":7954,"itemName":"Locus","skinName":"Stalwart","itemRarity":"Rare"},{"skinId":2664,"itemName":"Locus","skinName":"Strapped","itemRarity":"Rare"},{"skinId":4165,"itemName":"Locus","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":4138,"itemName":"Locus","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":4161,"itemName":"Locus","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":8489,"itemName":"Locus","skinName":"Tracker","itemRarity":"Uncommon"},{"skinId":4143,"itemName":"Locus","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":4145,"itemName":"Locus","skinName":"Tundra","itemRarity":"Common"},{"skinId":4146,"itemName":"Locus","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":9642,"itemName":"Locus","skinName":"Vaporwave","itemRarity":"Rare"},{"skinId":4172,"itemName":"Locus","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":4171,"itemName":"Locus","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":8904,"itemName":"Locus","skinName":"Wintergreen","itemRarity":"Uncommon"},{"skinId":1167,"itemName":"Locus","skinName":"Yellow Snake","itemRarity":"Rare"},{"skinId":2218,"itemName":"M16","skinName":"Abnormality","itemRarity":"Uncommon"},{"skinId":3979,"itemName":"M16","skinName":"Abominable","itemRarity":"Common"},{"skinId":6856,"itemName":"M16","skinName":"Alligator Alley","itemRarity":"Epic"},{"skinId":4000,"itemName":"M16","skinName":"Anaconda","itemRarity":"Common"},{"skinId":3974,"itemName":"M16","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":3976,"itemName":"M16","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":2914,"itemName":"M16","skinName":"Arctic Digital","itemRarity":"Uncommon"},{"skinId":3973,"itemName":"M16","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":3964,"itemName":"M16","skinName":"Asphalt","itemRarity":"Common"},{"skinId":3975,"itemName":"M16","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":9188,"itemName":"M16","skinName":"Backdraft","itemRarity":"Rare"},{"skinId":3963,"itemName":"M16","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":707,"itemName":"M16","skinName":"Bloody Vengeance","itemRarity":"Epic"},{"skinId":1442,"itemName":"M16","skinName":"Blue Graffiti","itemRarity":"Uncommon"},{"skinId":3997,"itemName":"M16","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":3985,"itemName":"M16","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":1208,"itemName":"M16","skinName":"Blue Wave","itemRarity":"Uncommon"},{"skinId":8357,"itemName":"M16","skinName":"Bronze Arrow","itemRarity":"Rare"},{"skinId":4001,"itemName":"M16","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":1903,"itemName":"M16","skinName":"Calcium Chloride","itemRarity":"Uncommon"},{"skinId":3994,"itemName":"M16","skinName":"Canopy","itemRarity":"Common"},{"skinId":3957,"itemName":"M16","skinName":"Chain Link","itemRarity":"Common"},{"skinId":971,"itemName":"M16","skinName":"Championship 2020","itemRarity":"Rare"},{"skinId":3955,"itemName":"M16","skinName":"China Lake","itemRarity":"Common"},{"skinId":6922,"itemName":"M16","skinName":"Chroma","itemRarity":"Rare"},{"skinId":2013,"itemName":"M16","skinName":"Chrome Wave","itemRarity":"Epic"},{"skinId":3998,"itemName":"M16","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":10362,"itemName":"M16","skinName":"Coiled","itemRarity":"Rare"},{"skinId":3951,"itemName":"M16","skinName":"Commando","itemRarity":"Common"},{"skinId":8105,"itemName":"M16","skinName":"Concrete Lightning","itemRarity":"Uncommon"},{"skinId":9464,"itemName":"M16","skinName":"Connection","itemRarity":"Rare"},{"skinId":6101,"itemName":"M16","skinName":"Copilot","itemRarity":"Rare"},{"skinId":10792,"itemName":"M16","skinName":"Crane Style","itemRarity":"Uncommon"},{"skinId":3965,"itemName":"M16","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":8918,"itemName":"M16","skinName":"Dalmatian","itemRarity":"Uncommon"},{"skinId":7051,"itemName":"M16","skinName":"Damascus","itemRarity":"Common"},{"skinId":1595,"itemName":"M16","skinName":"Danger Zone","itemRarity":"Rare"},{"skinId":3978,"itemName":"M16","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":372,"itemName":"M16","skinName":"Dark Fiber","itemRarity":"Uncommon"},{"skinId":6081,"itemName":"M16","skinName":"Default","itemRarity":"Common"},{"skinId":11515,"itemName":"M16","skinName":"Denim","itemRarity":"Uncommon"},{"skinId":3983,"itemName":"M16","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":3987,"itemName":"M16","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":3008,"itemName":"M16","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8524,"itemName":"M16","skinName":"Diamond","itemRarity":"Common"},{"skinId":480,"itemName":"M16","skinName":"Digital Exotic","itemRarity":"Rare"},{"skinId":3960,"itemName":"M16","skinName":"Dirt","itemRarity":"Common"},{"skinId":2581,"itemName":"M16","skinName":"Distressed","itemRarity":"Uncommon"},{"skinId":5935,"itemName":"M16","skinName":"Eagle Feather","itemRarity":"Uncommon"},{"skinId":1881,"itemName":"M16","skinName":"Evil Chip","itemRarity":"Rare"},{"skinId":434,"itemName":"M16","skinName":"Evil Clown","itemRarity":"Rare"},{"skinId":2945,"itemName":"M16","skinName":"FUBAR","itemRarity":"Epic"},{"skinId":3980,"itemName":"M16","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":3981,"itemName":"M16","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":3968,"itemName":"M16","skinName":"Foliage","itemRarity":"Common"},{"skinId":6295,"itemName":"M16","skinName":"Forest Floor","itemRarity":"Rare"},{"skinId":7455,"itemName":"M16","skinName":"Fright Night","itemRarity":"Epic"},{"skinId":3970,"itemName":"M16","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":2467,"itemName":"M16","skinName":"Fuel Tank","itemRarity":"Uncommon"},{"skinId":1538,"itemName":"M16","skinName":"Gallant","itemRarity":"Rare"},{"skinId":4003,"itemName":"M16","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":4002,"itemName":"M16","skinName":"Gecko","itemRarity":"Common"},{"skinId":4004,"itemName":"M16","skinName":"Gold","itemRarity":"Common"},{"skinId":7629,"itemName":"M16","skinName":"Gold Glitter","itemRarity":"Epic"},{"skinId":2608,"itemName":"M16","skinName":"Grime","itemRarity":"Uncommon"},{"skinId":3009,"itemName":"M16","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":1517,"itemName":"M16","skinName":"Hazardous","itemRarity":"Uncommon"},{"skinId":849,"itemName":"M16","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":2509,"itemName":"M16","skinName":"Heavy Duty","itemRarity":"Epic"},{"skinId":1955,"itemName":"M16","skinName":"Hellion","itemRarity":"Rare"},{"skinId":2063,"itemName":"M16","skinName":"Hot and Cold","itemRarity":"Rare"},{"skinId":3971,"itemName":"M16","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":8430,"itemName":"M16","skinName":"Impulse","itemRarity":"Rare"},{"skinId":6343,"itemName":"M16","skinName":"Iridescent","itemRarity":"Rare"},{"skinId":2220,"itemName":"M16","skinName":"Jack Frost","itemRarity":"Uncommon"},{"skinId":384,"itemName":"M16","skinName":"Jungle Terrain","itemRarity":"Uncommon"},{"skinId":7423,"itemName":"M16","skinName":"Kapow","itemRarity":"Uncommon"},{"skinId":3990,"itemName":"M16","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":3996,"itemName":"M16","skinName":"Komodo","itemRarity":"Common"},{"skinId":2217,"itemName":"M16","skinName":"Lunar New Year","itemRarity":"Rare"},{"skinId":790,"itemName":"M16","skinName":"Malware","itemRarity":"Uncommon"},{"skinId":68,"itemName":"M16","skinName":"Maple Leaves","itemRarity":"Uncommon"},{"skinId":2216,"itemName":"M16","skinName":"Mardi Gras","itemRarity":"Rare"},{"skinId":3989,"itemName":"M16","skinName":"Marshland","itemRarity":"Common"},{"skinId":667,"itemName":"M16","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":3986,"itemName":"M16","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":3953,"itemName":"M16","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":3961,"itemName":"M16","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":3012,"itemName":"M16","skinName":"Mudslide","itemRarity":"Common"},{"skinId":3966,"itemName":"M16","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":1423,"itemName":"M16","skinName":"Neon Tiger","itemRarity":"Uncommon"},{"skinId":3958,"itemName":"M16","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":3993,"itemName":"M16","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":1246,"itemName":"M16","skinName":"Open Circuit","itemRarity":"Rare"},{"skinId":3011,"itemName":"M16","skinName":"Overgrown","itemRarity":"Common"},{"skinId":11138,"itemName":"M16","skinName":"Paper Star","itemRarity":"Uncommon"},{"skinId":3999,"itemName":"M16","skinName":"Pink Python","itemRarity":"Common"},{"skinId":3956,"itemName":"M16","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":3954,"itemName":"M16","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":4005,"itemName":"M16","skinName":"Platinum","itemRarity":"Common"},{"skinId":11646,"itemName":"M16","skinName":"Playmaker","itemRarity":"Epic"},{"skinId":11595,"itemName":"M16","skinName":"Powder Bomb","itemRarity":"Rare"},{"skinId":6718,"itemName":"M16","skinName":"Purple Geode","itemRarity":"Uncommon"},{"skinId":3014,"itemName":"M16","skinName":"Python","itemRarity":"Common"},{"skinId":3995,"itemName":"M16","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":3984,"itemName":"M16","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":789,"itemName":"M16","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":3952,"itemName":"M16","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":994,"itemName":"M16","skinName":"Riveted Green","itemRarity":"Rare"},{"skinId":6205,"itemName":"M16","skinName":"Ruby","itemRarity":"Epic"},{"skinId":3972,"itemName":"M16","skinName":"Ruins","itemRarity":"Common"},{"skinId":3988,"itemName":"M16","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":10583,"itemName":"M16","skinName":"Severed","itemRarity":"Rare"},{"skinId":3977,"itemName":"M16","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":2257,"itemName":"M16","skinName":"Slate","itemRarity":"Uncommon"},{"skinId":3959,"itemName":"M16","skinName":"Smoke","itemRarity":"Common"},{"skinId":8556,"itemName":"M16","skinName":"Snowblind","itemRarity":"Rare"},{"skinId":8925,"itemName":"M16","skinName":"Snowframe","itemRarity":"Rare"},{"skinId":2573,"itemName":"M16","skinName":"Spoils","itemRarity":"Rare"},{"skinId":2219,"itemName":"M16","skinName":"Stained Glass","itemRarity":"Uncommon"},{"skinId":3013,"itemName":"M16","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":3962,"itemName":"M16","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":6511,"itemName":"M16","skinName":"Taped Flecktarn","itemRarity":"Rare"},{"skinId":3982,"itemName":"M16","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":11209,"itemName":"M16","skinName":"Topography","itemRarity":"Uncommon"},{"skinId":3967,"itemName":"M16","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":9582,"itemName":"M16","skinName":"Trance","itemRarity":"Rare"},{"skinId":3010,"itemName":"M16","skinName":"Tundra","itemRarity":"Common"},{"skinId":1216,"itemName":"M16","skinName":"Ukiyo-e","itemRarity":"Rare"},{"skinId":3969,"itemName":"M16","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":1234,"itemName":"M16","skinName":"Valentine","itemRarity":"Epic"},{"skinId":3992,"itemName":"M16","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":3991,"itemName":"M16","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":2371,"itemName":"M16","skinName":"Wasteland Red","itemRarity":"Uncommon"},{"skinId":1799,"itemName":"M16","skinName":"White Lies","itemRarity":"Uncommon"},{"skinId":6912,"itemName":"M16","skinName":"Yellow Fabric","itemRarity":"Uncommon"},{"skinId":1389,"itemName":"M16","skinName":"Yellow Snow","itemRarity":"Uncommon"},{"skinId":4402,"itemName":"M21 EBR","skinName":"Abominable","itemRarity":"Common"},{"skinId":4425,"itemName":"M21 EBR","skinName":"Anaconda","itemRarity":"Common"},{"skinId":6112,"itemName":"M21 EBR","skinName":"Angles","itemRarity":"Uncommon"},{"skinId":4395,"itemName":"M21 EBR","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":4397,"itemName":"M21 EBR","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":4394,"itemName":"M21 EBR","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":4384,"itemName":"M21 EBR","skinName":"Asphalt","itemRarity":"Common"},{"skinId":4396,"itemName":"M21 EBR","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":4383,"itemName":"M21 EBR","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":4422,"itemName":"M21 EBR","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":4408,"itemName":"M21 EBR","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":8967,"itemName":"M21 EBR","skinName":"Brain Freeze","itemRarity":"Uncommon"},{"skinId":6161,"itemName":"M21 EBR","skinName":"Bullet Point","itemRarity":"Uncommon"},{"skinId":4426,"itemName":"M21 EBR","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":4418,"itemName":"M21 EBR","skinName":"Canopy","itemRarity":"Common"},{"skinId":10456,"itemName":"M21 EBR","skinName":"Cardboard","itemRarity":"Epic"},{"skinId":11874,"itemName":"M21 EBR","skinName":"Carrion","itemRarity":"Uncommon"},{"skinId":4376,"itemName":"M21 EBR","skinName":"Chain Link","itemRarity":"Common"},{"skinId":4374,"itemName":"M21 EBR","skinName":"China Lake","itemRarity":"Common"},{"skinId":4423,"itemName":"M21 EBR","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":7878,"itemName":"M21 EBR","skinName":"Citrine","itemRarity":"Epic"},{"skinId":4370,"itemName":"M21 EBR","skinName":"Commando","itemRarity":"Common"},{"skinId":8109,"itemName":"M21 EBR","skinName":"Concrete Lightning","itemRarity":"Uncommon"},{"skinId":6932,"itemName":"M21 EBR","skinName":"Crayon","itemRarity":"Uncommon"},{"skinId":4385,"itemName":"M21 EBR","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7058,"itemName":"M21 EBR","skinName":"Damascus","itemRarity":"Common"},{"skinId":4401,"itemName":"M21 EBR","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":489,"itemName":"M21 EBR","skinName":"Dead Zebra","itemRarity":"Uncommon"},{"skinId":439,"itemName":"M21 EBR","skinName":"Default","itemRarity":"Common"},{"skinId":4406,"itemName":"M21 EBR","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":1720,"itemName":"M21 EBR","skinName":"Desert Hex","itemRarity":"Uncommon"},{"skinId":4411,"itemName":"M21 EBR","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":3039,"itemName":"M21 EBR","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8531,"itemName":"M21 EBR","skinName":"Diamond","itemRarity":"Common"},{"skinId":9428,"itemName":"M21 EBR","skinName":"Digital Desert","itemRarity":"Rare"},{"skinId":482,"itemName":"M21 EBR","skinName":"Digital Exotic","itemRarity":"Rare"},{"skinId":4380,"itemName":"M21 EBR","skinName":"Dirt","itemRarity":"Common"},{"skinId":778,"itemName":"M21 EBR","skinName":"Easter '20","itemRarity":"Uncommon"},{"skinId":4403,"itemName":"M21 EBR","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":4404,"itemName":"M21 EBR","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":6496,"itemName":"M21 EBR","skinName":"Flesh Wound (Unique)","itemRarity":"Epic"},{"skinId":119,"itemName":"M21 EBR","skinName":"Flowing Bronze","itemRarity":"Rare"},{"skinId":4388,"itemName":"M21 EBR","skinName":"Foliage","itemRarity":"Common"},{"skinId":2030,"itemName":"M21 EBR","skinName":"Frostbite","itemRarity":"Uncommon"},{"skinId":4391,"itemName":"M21 EBR","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":2468,"itemName":"M21 EBR","skinName":"Fuel Tank","itemRarity":"Uncommon"},{"skinId":294,"itemName":"M21 EBR","skinName":"Gallant","itemRarity":"Rare"},{"skinId":4428,"itemName":"M21 EBR","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":4427,"itemName":"M21 EBR","skinName":"Gecko","itemRarity":"Common"},{"skinId":4429,"itemName":"M21 EBR","skinName":"Gold","itemRarity":"Common"},{"skinId":4379,"itemName":"M21 EBR","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":672,"itemName":"M21 EBR","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":4392,"itemName":"M21 EBR","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":6911,"itemName":"M21 EBR","skinName":"Iridescent","itemRarity":"Rare"},{"skinId":2221,"itemName":"M21 EBR","skinName":"Jack Frost","itemRarity":"Uncommon"},{"skinId":6382,"itemName":"M21 EBR","skinName":"Jungle Cat","itemRarity":"Rare"},{"skinId":7424,"itemName":"M21 EBR","skinName":"Kapow","itemRarity":"Uncommon"},{"skinId":4414,"itemName":"M21 EBR","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":4421,"itemName":"M21 EBR","skinName":"Komodo","itemRarity":"Common"},{"skinId":688,"itemName":"M21 EBR","skinName":"Magic Eye","itemRarity":"Rare"},{"skinId":492,"itemName":"M21 EBR","skinName":"Magmacomb","itemRarity":"Epic"},{"skinId":1307,"itemName":"M21 EBR","skinName":"Maple Leaves","itemRarity":"Uncommon"},{"skinId":4413,"itemName":"M21 EBR","skinName":"Marshland","itemRarity":"Common"},{"skinId":1275,"itemName":"M21 EBR","skinName":"Metal Note","itemRarity":"Rare"},{"skinId":1514,"itemName":"M21 EBR","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":2223,"itemName":"M21 EBR","skinName":"Mettle","itemRarity":"Uncommon"},{"skinId":4410,"itemName":"M21 EBR","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":4372,"itemName":"M21 EBR","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":4381,"itemName":"M21 EBR","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":4400,"itemName":"M21 EBR","skinName":"Mudslide","itemRarity":"Common"},{"skinId":4386,"itemName":"M21 EBR","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":4377,"itemName":"M21 EBR","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":4417,"itemName":"M21 EBR","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":2697,"itemName":"M21 EBR","skinName":"Oil Spill","itemRarity":"Epic"},{"skinId":515,"itemName":"M21 EBR","skinName":"On Fire","itemRarity":"Rare"},{"skinId":883,"itemName":"M21 EBR","skinName":"Open Circuit","itemRarity":"Rare"},{"skinId":4399,"itemName":"M21 EBR","skinName":"Overgrown","itemRarity":"Common"},{"skinId":10248,"itemName":"M21 EBR","skinName":"Paint Smear","itemRarity":"Uncommon"},{"skinId":10599,"itemName":"M21 EBR","skinName":"Paper Fan","itemRarity":"Uncommon"},{"skinId":10055,"itemName":"M21 EBR","skinName":"Phantom Limb","itemRarity":"Rare"},{"skinId":9038,"itemName":"M21 EBR","skinName":"Pine Cone","itemRarity":"Uncommon"},{"skinId":4424,"itemName":"M21 EBR","skinName":"Pink Python","itemRarity":"Common"},{"skinId":4375,"itemName":"M21 EBR","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":4373,"itemName":"M21 EBR","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":6631,"itemName":"M21 EBR","skinName":"Plated Green","itemRarity":"Uncommon"},{"skinId":4430,"itemName":"M21 EBR","skinName":"Platinum","itemRarity":"Common"},{"skinId":2884,"itemName":"M21 EBR","skinName":"Politician","itemRarity":"Epic"},{"skinId":2517,"itemName":"M21 EBR","skinName":"Posted","itemRarity":"Rare"},{"skinId":4419,"itemName":"M21 EBR","skinName":"Python","itemRarity":"Common"},{"skinId":4420,"itemName":"M21 EBR","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":4407,"itemName":"M21 EBR","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":7259,"itemName":"M21 EBR","skinName":"Reflective","itemRarity":"Rare"},{"skinId":2222,"itemName":"M21 EBR","skinName":"Reindeer","itemRarity":"Uncommon"},{"skinId":776,"itemName":"M21 EBR","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":4371,"itemName":"M21 EBR","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":128,"itemName":"M21 EBR","skinName":"Royal Crimson","itemRarity":"Epic"},{"skinId":4393,"itemName":"M21 EBR","skinName":"Ruins","itemRarity":"Common"},{"skinId":4412,"itemName":"M21 EBR","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":9719,"itemName":"M21 EBR","skinName":"Screen Tear","itemRarity":"Uncommon"},{"skinId":4398,"itemName":"M21 EBR","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":4378,"itemName":"M21 EBR","skinName":"Smoke","itemRarity":"Common"},{"skinId":801,"itemName":"M21 EBR","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":7476,"itemName":"M21 EBR","skinName":"Static Electricity","itemRarity":"Rare"},{"skinId":4409,"itemName":"M21 EBR","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":4382,"itemName":"M21 EBR","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":4405,"itemName":"M21 EBR","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":4387,"itemName":"M21 EBR","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":6817,"itemName":"M21 EBR","skinName":"Tree Ring","itemRarity":"Uncommon"},{"skinId":254,"itemName":"M21 EBR","skinName":"Tropical","itemRarity":"Uncommon"},{"skinId":4389,"itemName":"M21 EBR","skinName":"Tundra","itemRarity":"Common"},{"skinId":106,"itemName":"M21 EBR","skinName":"Turquoise","itemRarity":"Rare"},{"skinId":6420,"itemName":"M21 EBR","skinName":"Undergrowth","itemRarity":"Uncommon"},{"skinId":4390,"itemName":"M21 EBR","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":4416,"itemName":"M21 EBR","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":4415,"itemName":"M21 EBR","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":9762,"itemName":"M21 EBR","skinName":"Warp","itemRarity":"Uncommon"},{"skinId":3680,"itemName":"M4","skinName":"Abominable","itemRarity":"Common"},{"skinId":3703,"itemName":"M4","skinName":"Anaconda","itemRarity":"Common"},{"skinId":3673,"itemName":"M4","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":7370,"itemName":"M4","skinName":"Anniversary","itemRarity":"Rare"},{"skinId":3675,"itemName":"M4","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":3672,"itemName":"M4","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":3662,"itemName":"M4","skinName":"Asphalt","itemRarity":"Common"},{"skinId":1030,"itemName":"M4","skinName":"Aurora Borealis","itemRarity":"Rare"},{"skinId":3674,"itemName":"M4","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":1659,"itemName":"M4","skinName":"Back Scratcher","itemRarity":"Epic"},{"skinId":2224,"itemName":"M4","skinName":"Bandit","itemRarity":"Rare"},{"skinId":2931,"itemName":"M4","skinName":"Battle Dressed","itemRarity":"Rare"},{"skinId":1037,"itemName":"M4","skinName":"Black Gold","itemRarity":"Epic"},{"skinId":3661,"itemName":"M4","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":2225,"itemName":"M4","skinName":"Blue Graffiti","itemRarity":"Uncommon"},{"skinId":3700,"itemName":"M4","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":2242,"itemName":"M4","skinName":"Blue Sky","itemRarity":"Rare"},{"skinId":3686,"itemName":"M4","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":6229,"itemName":"M4","skinName":"Bolted Metal","itemRarity":"Uncommon"},{"skinId":8090,"itemName":"M4","skinName":"Breakup","itemRarity":"Rare"},{"skinId":11550,"itemName":"M4","skinName":"Buckles & Spurs","itemRarity":"Rare"},{"skinId":6707,"itemName":"M4","skinName":"Bug Spray","itemRarity":"Rare"},{"skinId":3704,"itemName":"M4","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":1017,"itemName":"M4","skinName":"CQB","itemRarity":"Epic"},{"skinId":680,"itemName":"M4","skinName":"Candy Cane","itemRarity":"Rare"},{"skinId":3696,"itemName":"M4","skinName":"Canopy","itemRarity":"Common"},{"skinId":3654,"itemName":"M4","skinName":"Chain Link","itemRarity":"Common"},{"skinId":7384,"itemName":"M4","skinName":"Championship Charge","itemRarity":"Rare"},{"skinId":3652,"itemName":"M4","skinName":"China Lake","itemRarity":"Common"},{"skinId":3701,"itemName":"M4","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":10948,"itemName":"M4","skinName":"Coalition","itemRarity":"Rare"},{"skinId":628,"itemName":"M4","skinName":"Color Burst","itemRarity":"Rare"},{"skinId":11071,"itemName":"M4","skinName":"Color Process","itemRarity":"Uncommon"},{"skinId":3648,"itemName":"M4","skinName":"Commando","itemRarity":"Common"},{"skinId":7598,"itemName":"M4","skinName":"Court Jester","itemRarity":"Legendary"},{"skinId":8739,"itemName":"M4","skinName":"Crackle","itemRarity":"Uncommon"},{"skinId":3663,"itemName":"M4","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7519,"itemName":"M4","skinName":"Crossed Cables","itemRarity":"Rare"},{"skinId":122,"itemName":"M4","skinName":"Cubic Illusion","itemRarity":"Rare"},{"skinId":7046,"itemName":"M4","skinName":"Damascus","itemRarity":"Common"},{"skinId":3679,"itemName":"M4","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":476,"itemName":"M4","skinName":"Default","itemRarity":"Common"},{"skinId":11514,"itemName":"M4","skinName":"Denim","itemRarity":"Uncommon"},{"skinId":3684,"itemName":"M4","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":3689,"itemName":"M4","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":3021,"itemName":"M4","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8519,"itemName":"M4","skinName":"Diamond","itemRarity":"Common"},{"skinId":3658,"itemName":"M4","skinName":"Dirt","itemRarity":"Common"},{"skinId":1263,"itemName":"M4","skinName":"Dream Glacier","itemRarity":"Rare"},{"skinId":509,"itemName":"M4","skinName":"Easter '20","itemRarity":"Rare"},{"skinId":892,"itemName":"M4","skinName":"Enchanted Carbine","itemRarity":"Epic"},{"skinId":1464,"itemName":"M4","skinName":"Eruption","itemRarity":"Epic"},{"skinId":2771,"itemName":"M4","skinName":"Faded Dream","itemRarity":"Rare"},{"skinId":3681,"itemName":"M4","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":697,"itemName":"M4","skinName":"Fashion Purple","itemRarity":"Uncommon"},{"skinId":3682,"itemName":"M4","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":6624,"itemName":"M4","skinName":"Feral Stalker","itemRarity":"Epic"},{"skinId":2995,"itemName":"M4","skinName":"First Horseman","itemRarity":"Rare"},{"skinId":3666,"itemName":"M4","skinName":"Foliage","itemRarity":"Common"},{"skinId":6313,"itemName":"M4","skinName":"Forest Floor","itemRarity":"Rare"},{"skinId":2027,"itemName":"M4","skinName":"Frostbite","itemRarity":"Uncommon"},{"skinId":3669,"itemName":"M4","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":507,"itemName":"M4","skinName":"G-Series","itemRarity":"Rare"},{"skinId":3706,"itemName":"M4","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":3705,"itemName":"M4","skinName":"Gecko","itemRarity":"Common"},{"skinId":987,"itemName":"M4","skinName":"Glacier","itemRarity":"Rare"},{"skinId":3707,"itemName":"M4","skinName":"Gold","itemRarity":"Common"},{"skinId":629,"itemName":"M4","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":3657,"itemName":"M4","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":546,"itemName":"M4","skinName":"Halloween","itemRarity":"Rare"},{"skinId":2297,"itemName":"M4","skinName":"Hazard","itemRarity":"Uncommon"},{"skinId":9974,"itemName":"M4","skinName":"Head Trauma","itemRarity":"Uncommon"},{"skinId":1468,"itemName":"M4","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":7343,"itemName":"M4","skinName":"Heliotrope","itemRarity":"Uncommon"},{"skinId":1622,"itemName":"M4","skinName":"Hellion","itemRarity":"Rare"},{"skinId":8870,"itemName":"M4","skinName":"Hereafter","itemRarity":"Uncommon"},{"skinId":1443,"itemName":"M4","skinName":"Holiday Ribbons","itemRarity":"Uncommon"},{"skinId":3670,"itemName":"M4","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":1839,"itemName":"M4","skinName":"Isometric","itemRarity":"Rare"},{"skinId":113,"itemName":"M4","skinName":"Jade","itemRarity":"Epic"},{"skinId":3692,"itemName":"M4","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":10947,"itemName":"M4","skinName":"Knighted","itemRarity":"Rare"},{"skinId":3699,"itemName":"M4","skinName":"Komodo","itemRarity":"Common"},{"skinId":2329,"itemName":"M4","skinName":"Living Rust","itemRarity":"Epic"},{"skinId":6772,"itemName":"M4","skinName":"Magic Eye","itemRarity":"Rare"},{"skinId":493,"itemName":"M4","skinName":"Magmacomb","itemRarity":"Epic"},{"skinId":8403,"itemName":"M4","skinName":"Mar","itemRarity":"Uncommon"},{"skinId":3691,"itemName":"M4","skinName":"Marshland","itemRarity":"Common"},{"skinId":1969,"itemName":"M4","skinName":"Mechanized Rain","itemRarity":"Rare"},{"skinId":1507,"itemName":"M4","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":1399,"itemName":"M4","skinName":"Minotaur","itemRarity":"Epic"},{"skinId":3688,"itemName":"M4","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":3650,"itemName":"M4","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":3659,"itemName":"M4","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":6031,"itemName":"M4","skinName":"Moss Rock","itemRarity":"Uncommon"},{"skinId":3678,"itemName":"M4","skinName":"Mudslide","itemRarity":"Common"},{"skinId":11703,"itemName":"M4","skinName":"Munitions","itemRarity":"Epic"},{"skinId":3664,"itemName":"M4","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":3655,"itemName":"M4","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":3695,"itemName":"M4","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":7979,"itemName":"M4","skinName":"Nine Round","itemRarity":"Rare"},{"skinId":7915,"itemName":"M4","skinName":"Nonconformist","itemRarity":"Uncommon"},{"skinId":3677,"itemName":"M4","skinName":"Overgrown","itemRarity":"Common"},{"skinId":11061,"itemName":"M4","skinName":"Paper Star","itemRarity":"Uncommon"},{"skinId":11032,"itemName":"M4","skinName":"Perfect Balance","itemRarity":"Rare"},{"skinId":3702,"itemName":"M4","skinName":"Pink Python","itemRarity":"Common"},{"skinId":3653,"itemName":"M4","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":3651,"itemName":"M4","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":6344,"itemName":"M4","skinName":"Plated Green","itemRarity":"Uncommon"},{"skinId":3708,"itemName":"M4","skinName":"Platinum","itemRarity":"Common"},{"skinId":3697,"itemName":"M4","skinName":"Python","itemRarity":"Common"},{"skinId":8193,"itemName":"M4","skinName":"Radar","itemRarity":"Epic"},{"skinId":3698,"itemName":"M4","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":8416,"itemName":"M4","skinName":"Red Burst","itemRarity":"Uncommon"},{"skinId":3685,"itemName":"M4","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":11627,"itemName":"M4","skinName":"Repellent","itemRarity":"Uncommon"},{"skinId":131,"itemName":"M4","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":9749,"itemName":"M4","skinName":"Rewind","itemRarity":"Uncommon"},{"skinId":3649,"itemName":"M4","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":3671,"itemName":"M4","skinName":"Ruins","itemRarity":"Common"},{"skinId":3690,"itemName":"M4","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":283,"itemName":"M4","skinName":"Sandbox","itemRarity":"Uncommon"},{"skinId":2983,"itemName":"M4","skinName":"Sewed Snake","itemRarity":"Rare"},{"skinId":3676,"itemName":"M4","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":2565,"itemName":"M4","skinName":"Sickle","itemRarity":"Epic"},{"skinId":1789,"itemName":"M4","skinName":"Silver Ghoul","itemRarity":"Epic"},{"skinId":10497,"itemName":"M4","skinName":"Six Feet","itemRarity":"Epic"},{"skinId":306,"itemName":"M4","skinName":"Smart Rifle","itemRarity":"Epic"},{"skinId":3656,"itemName":"M4","skinName":"Smoke","itemRarity":"Common"},{"skinId":1157,"itemName":"M4","skinName":"Snowflakes","itemRarity":"Rare"},{"skinId":11431,"itemName":"M4","skinName":"Spurred","itemRarity":"Epic"},{"skinId":656,"itemName":"M4","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":3687,"itemName":"M4","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":9324,"itemName":"M4","skinName":"Synapse","itemRarity":"Rare"},{"skinId":3660,"itemName":"M4","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":99,"itemName":"M4","skinName":"Teal Steal","itemRarity":"Epic"},{"skinId":10877,"itemName":"M4","skinName":"The Breakup","itemRarity":"Epic"},{"skinId":3683,"itemName":"M4","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":8486,"itemName":"M4","skinName":"Tracker","itemRarity":"Uncommon"},{"skinId":3665,"itemName":"M4","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":2523,"itemName":"M4","skinName":"Tree Bark","itemRarity":"Uncommon"},{"skinId":6814,"itemName":"M4","skinName":"Tree Ring","itemRarity":"Uncommon"},{"skinId":976,"itemName":"M4","skinName":"Trick-or-Treat","itemRarity":"Uncommon"},{"skinId":3667,"itemName":"M4","skinName":"Tundra","itemRarity":"Common"},{"skinId":9707,"itemName":"M4","skinName":"Uncertain","itemRarity":"Uncommon"},{"skinId":3668,"itemName":"M4","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":1894,"itemName":"M4","skinName":"Urban Waste","itemRarity":"Rare"},{"skinId":3694,"itemName":"M4","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":3693,"itemName":"M4","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":1224,"itemName":"M4","skinName":"Werewolf Fighter","itemRarity":"Epic"},{"skinId":2325,"itemName":"M4","skinName":"Wrecked","itemRarity":"Rare"},{"skinId":10118,"itemName":"M4","skinName":"Yellow Abstract","itemRarity":"Uncommon"},{"skinId":1310,"itemName":"M4","skinName":"Zombie Gene","itemRarity":"Uncommon"},{"skinId":1219,"itemName":"M4LMG","skinName":"1001 Nights","itemRarity":"Rare"},{"skinId":4712,"itemName":"M4LMG","skinName":"Abominable","itemRarity":"Common"},{"skinId":8020,"itemName":"M4LMG","skinName":"Acid Helix","itemRarity":"Rare"},{"skinId":5941,"itemName":"M4LMG","skinName":"Ammo Box","itemRarity":"Uncommon"},{"skinId":4735,"itemName":"M4LMG","skinName":"Anaconda","itemRarity":"Common"},{"skinId":6114,"itemName":"M4LMG","skinName":"Angles","itemRarity":"Uncommon"},{"skinId":4705,"itemName":"M4LMG","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":112,"itemName":"M4LMG","skinName":"Aqua","itemRarity":"Uncommon"},{"skinId":4707,"itemName":"M4LMG","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":4704,"itemName":"M4LMG","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":4694,"itemName":"M4LMG","skinName":"Asphalt","itemRarity":"Common"},{"skinId":4706,"itemName":"M4LMG","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":10781,"itemName":"M4LMG","skinName":"Bamboo Shoot","itemRarity":"Epic"},{"skinId":169,"itemName":"M4LMG","skinName":"Black Gold","itemRarity":"Epic"},{"skinId":4693,"itemName":"M4LMG","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":5927,"itemName":"M4LMG","skinName":"Blood in the Water","itemRarity":"Rare"},{"skinId":4732,"itemName":"M4LMG","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":4718,"itemName":"M4LMG","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":8966,"itemName":"M4LMG","skinName":"Brain Freeze","itemRarity":"Uncommon"},{"skinId":4736,"itemName":"M4LMG","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":4728,"itemName":"M4LMG","skinName":"Canopy","itemRarity":"Common"},{"skinId":4686,"itemName":"M4LMG","skinName":"Chain Link","itemRarity":"Common"},{"skinId":10048,"itemName":"M4LMG","skinName":"Checkpoint","itemRarity":"Epic"},{"skinId":4684,"itemName":"M4LMG","skinName":"China Lake","itemRarity":"Common"},{"skinId":4733,"itemName":"M4LMG","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":6522,"itemName":"M4LMG","skinName":"Coat","itemRarity":"Uncommon"},{"skinId":4680,"itemName":"M4LMG","skinName":"Commando","itemRarity":"Common"},{"skinId":1868,"itemName":"M4LMG","skinName":"Corpse Digger","itemRarity":"Uncommon"},{"skinId":4695,"itemName":"M4LMG","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":408,"itemName":"M4LMG","skinName":"Crimson Vampire","itemRarity":"Rare"},{"skinId":7063,"itemName":"M4LMG","skinName":"Damascus","itemRarity":"Common"},{"skinId":1635,"itemName":"M4LMG","skinName":"Danger Zone","itemRarity":"Rare"},{"skinId":4711,"itemName":"M4LMG","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":10480,"itemName":"M4LMG","skinName":"Dark Band","itemRarity":"Rare"},{"skinId":1480,"itemName":"M4LMG","skinName":"Data Field","itemRarity":"Rare"},{"skinId":5948,"itemName":"M4LMG","skinName":"Default","itemRarity":"Common"},{"skinId":4716,"itemName":"M4LMG","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":1717,"itemName":"M4LMG","skinName":"Desert Hex","itemRarity":"Uncommon"},{"skinId":4721,"itemName":"M4LMG","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":4679,"itemName":"M4LMG","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8536,"itemName":"M4LMG","skinName":"Diamond","itemRarity":"Common"},{"skinId":4690,"itemName":"M4LMG","skinName":"Dirt","itemRarity":"Common"},{"skinId":10272,"itemName":"M4LMG","skinName":"Engine Bay","itemRarity":"Rare"},{"skinId":4713,"itemName":"M4LMG","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":4714,"itemName":"M4LMG","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":10898,"itemName":"M4LMG","skinName":"Festival","itemRarity":"Uncommon"},{"skinId":65,"itemName":"M4LMG","skinName":"Flowing Bronze","itemRarity":"Rare"},{"skinId":4698,"itemName":"M4LMG","skinName":"Foliage","itemRarity":"Common"},{"skinId":6870,"itemName":"M4LMG","skinName":"Forest Fabric","itemRarity":"Uncommon"},{"skinId":4701,"itemName":"M4LMG","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":293,"itemName":"M4LMG","skinName":"Gallant","itemRarity":"Rare"},{"skinId":4738,"itemName":"M4LMG","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":4737,"itemName":"M4LMG","skinName":"Gecko","itemRarity":"Common"},{"skinId":982,"itemName":"M4LMG","skinName":"Glacier","itemRarity":"Rare"},{"skinId":4739,"itemName":"M4LMG","skinName":"Gold","itemRarity":"Common"},{"skinId":7724,"itemName":"M4LMG","skinName":"Graceful Gold","itemRarity":"Uncommon"},{"skinId":2227,"itemName":"M4LMG","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":4689,"itemName":"M4LMG","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":6771,"itemName":"M4LMG","skinName":"Halloween","itemRarity":"Rare"},{"skinId":1449,"itemName":"M4LMG","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":207,"itemName":"M4LMG","skinName":"Heat Stroke","itemRarity":"Epic"},{"skinId":1891,"itemName":"M4LMG","skinName":"Hot Spot","itemRarity":"Epic"},{"skinId":4702,"itemName":"M4LMG","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":6759,"itemName":"M4LMG","skinName":"Iridescent","itemRarity":"Rare"},{"skinId":597,"itemName":"M4LMG","skinName":"Jack Frost","itemRarity":"Uncommon"},{"skinId":1020,"itemName":"M4LMG","skinName":"Jingle Bells","itemRarity":"Uncommon"},{"skinId":521,"itemName":"M4LMG","skinName":"Jubokko","itemRarity":"Rare"},{"skinId":4724,"itemName":"M4LMG","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":4731,"itemName":"M4LMG","skinName":"Komodo","itemRarity":"Common"},{"skinId":1460,"itemName":"M4LMG","skinName":"Lunar New Year","itemRarity":"Rare"},{"skinId":783,"itemName":"M4LMG","skinName":"Maple Leaves","itemRarity":"Uncommon"},{"skinId":4723,"itemName":"M4LMG","skinName":"Marshland","itemRarity":"Common"},{"skinId":604,"itemName":"M4LMG","skinName":"Medieval","itemRarity":"Epic"},{"skinId":6002,"itemName":"M4LMG","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":4720,"itemName":"M4LMG","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":39,"itemName":"M4LMG","skinName":"Moonstone","itemRarity":"Epic"},{"skinId":4682,"itemName":"M4LMG","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":4691,"itemName":"M4LMG","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":4710,"itemName":"M4LMG","skinName":"Mudslide","itemRarity":"Common"},{"skinId":4696,"itemName":"M4LMG","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":4687,"itemName":"M4LMG","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":4727,"itemName":"M4LMG","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":8191,"itemName":"M4LMG","skinName":"Nine Round","itemRarity":"Rare"},{"skinId":2302,"itemName":"M4LMG","skinName":"Ooze","itemRarity":"Epic"},{"skinId":2226,"itemName":"M4LMG","skinName":"Open Circuit","itemRarity":"Rare"},{"skinId":4709,"itemName":"M4LMG","skinName":"Overgrown","itemRarity":"Common"},{"skinId":4734,"itemName":"M4LMG","skinName":"Pink Python","itemRarity":"Common"},{"skinId":4685,"itemName":"M4LMG","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":4683,"itemName":"M4LMG","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":4740,"itemName":"M4LMG","skinName":"Platinum","itemRarity":"Common"},{"skinId":11644,"itemName":"M4LMG","skinName":"Playmaker","itemRarity":"Epic"},{"skinId":4729,"itemName":"M4LMG","skinName":"Python","itemRarity":"Common"},{"skinId":4730,"itemName":"M4LMG","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":4717,"itemName":"M4LMG","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":188,"itemName":"M4LMG","skinName":"Red Triangle","itemRarity":"Uncommon"},{"skinId":1743,"itemName":"M4LMG","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":6137,"itemName":"M4LMG","skinName":"Revolution","itemRarity":"Epic"},{"skinId":500,"itemName":"M4LMG","skinName":"Ribbon Explosion","itemRarity":"Rare"},{"skinId":4681,"itemName":"M4LMG","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":4703,"itemName":"M4LMG","skinName":"Ruins","itemRarity":"Common"},{"skinId":4722,"itemName":"M4LMG","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":156,"itemName":"M4LMG","skinName":"Sand Dunes","itemRarity":"Uncommon"},{"skinId":1195,"itemName":"M4LMG","skinName":"Sandbox","itemRarity":"Uncommon"},{"skinId":4708,"itemName":"M4LMG","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":10832,"itemName":"M4LMG","skinName":"Shrine","itemRarity":"Uncommon"},{"skinId":2348,"itemName":"M4LMG","skinName":"Sight Unseen","itemRarity":"Rare"},{"skinId":2652,"itemName":"M4LMG","skinName":"Slagged","itemRarity":"Epic"},{"skinId":4688,"itemName":"M4LMG","skinName":"Smoke","itemRarity":"Common"},{"skinId":1457,"itemName":"M4LMG","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":2668,"itemName":"M4LMG","skinName":"Star Camo","itemRarity":"Rare"},{"skinId":11676,"itemName":"M4LMG","skinName":"Steam Engine","itemRarity":"Rare"},{"skinId":4719,"itemName":"M4LMG","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":4692,"itemName":"M4LMG","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":9696,"itemName":"M4LMG","skinName":"The Numbers","itemRarity":"Uncommon"},{"skinId":4715,"itemName":"M4LMG","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":4697,"itemName":"M4LMG","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":255,"itemName":"M4LMG","skinName":"Tropical","itemRarity":"Uncommon"},{"skinId":4699,"itemName":"M4LMG","skinName":"Tundra","itemRarity":"Common"},{"skinId":1218,"itemName":"M4LMG","skinName":"Ukiyo-e","itemRarity":"Rare"},{"skinId":8445,"itemName":"M4LMG","skinName":"Uncertain","itemRarity":"Uncommon"},{"skinId":4700,"itemName":"M4LMG","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":1895,"itemName":"M4LMG","skinName":"Urban Waste","itemRarity":"Rare"},{"skinId":4726,"itemName":"M4LMG","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":4725,"itemName":"M4LMG","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":11601,"itemName":"M4LMG","skinName":"Watcher","itemRarity":"Uncommon"},{"skinId":9001,"itemName":"M4LMG","skinName":"Wintergreen","itemRarity":"Uncommon"},{"skinId":1397,"itemName":"M4LMG","skinName":"Yellow Triangle","itemRarity":"Uncommon"},{"skinId":11304,"itemName":"MK2","skinName":"Abominable","itemRarity":"Common"},{"skinId":11327,"itemName":"MK2","skinName":"Anaconda","itemRarity":"Common"},{"skinId":11297,"itemName":"MK2","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":11299,"itemName":"MK2","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":11296,"itemName":"MK2","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":11286,"itemName":"MK2","skinName":"Asphalt","itemRarity":"Common"},{"skinId":11298,"itemName":"MK2","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":11285,"itemName":"MK2","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":11324,"itemName":"MK2","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":11310,"itemName":"MK2","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":11443,"itemName":"MK2","skinName":"Brushstroke","itemRarity":"Epic"},{"skinId":11328,"itemName":"MK2","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":11320,"itemName":"MK2","skinName":"Canopy","itemRarity":"Common"},{"skinId":11278,"itemName":"MK2","skinName":"Chain Link","itemRarity":"Common"},{"skinId":11276,"itemName":"MK2","skinName":"China Lake","itemRarity":"Common"},{"skinId":11325,"itemName":"MK2","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":11272,"itemName":"MK2","skinName":"Commando","itemRarity":"Common"},{"skinId":11287,"itemName":"MK2","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":11333,"itemName":"MK2","skinName":"Damascus","itemRarity":"Common"},{"skinId":11303,"itemName":"MK2","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":11269,"itemName":"MK2","skinName":"Default","itemRarity":"Common"},{"skinId":11308,"itemName":"MK2","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":11313,"itemName":"MK2","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":11271,"itemName":"MK2","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":11334,"itemName":"MK2","skinName":"Diamond","itemRarity":"Common"},{"skinId":11282,"itemName":"MK2","skinName":"Dirt","itemRarity":"Common"},{"skinId":11305,"itemName":"MK2","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":11306,"itemName":"MK2","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":11290,"itemName":"MK2","skinName":"Foliage","itemRarity":"Common"},{"skinId":11293,"itemName":"MK2","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":11330,"itemName":"MK2","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":11329,"itemName":"MK2","skinName":"Gecko","itemRarity":"Common"},{"skinId":11331,"itemName":"MK2","skinName":"Gold","itemRarity":"Common"},{"skinId":11281,"itemName":"MK2","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":11740,"itemName":"MK2","skinName":"Helix Grade","itemRarity":"Legendary"},{"skinId":11294,"itemName":"MK2","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":11316,"itemName":"MK2","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":11323,"itemName":"MK2","skinName":"Komodo","itemRarity":"Common"},{"skinId":11315,"itemName":"MK2","skinName":"Marshland","itemRarity":"Common"},{"skinId":11312,"itemName":"MK2","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":11274,"itemName":"MK2","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":11283,"itemName":"MK2","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":11302,"itemName":"MK2","skinName":"Mudslide","itemRarity":"Common"},{"skinId":11288,"itemName":"MK2","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":11279,"itemName":"MK2","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":11319,"itemName":"MK2","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":11301,"itemName":"MK2","skinName":"Overgrown","itemRarity":"Common"},{"skinId":11326,"itemName":"MK2","skinName":"Pink Python","itemRarity":"Common"},{"skinId":11277,"itemName":"MK2","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":11275,"itemName":"MK2","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":11332,"itemName":"MK2","skinName":"Platinum","itemRarity":"Common"},{"skinId":11321,"itemName":"MK2","skinName":"Python","itemRarity":"Common"},{"skinId":11322,"itemName":"MK2","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":11309,"itemName":"MK2","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":11273,"itemName":"MK2","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":11295,"itemName":"MK2","skinName":"Ruins","itemRarity":"Common"},{"skinId":11314,"itemName":"MK2","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":11300,"itemName":"MK2","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":11280,"itemName":"MK2","skinName":"Smoke","itemRarity":"Common"},{"skinId":11311,"itemName":"MK2","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":11284,"itemName":"MK2","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":11307,"itemName":"MK2","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":11289,"itemName":"MK2","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":11291,"itemName":"MK2","skinName":"Tundra","itemRarity":"Common"},{"skinId":11292,"itemName":"MK2","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":11318,"itemName":"MK2","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":11317,"itemName":"MK2","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":335,"itemName":"MSMC","skinName":"1001 Nights","itemRarity":"Uncommon"},{"skinId":2229,"itemName":"MSMC","skinName":"Abnormality","itemRarity":"Uncommon"},{"skinId":3189,"itemName":"MSMC","skinName":"Abominable","itemRarity":"Common"},{"skinId":8285,"itemName":"MSMC","skinName":"Alarm","itemRarity":"Uncommon"},{"skinId":3212,"itemName":"MSMC","skinName":"Anaconda","itemRarity":"Common"},{"skinId":438,"itemName":"MSMC","skinName":"Ancient Runes","itemRarity":"Rare"},{"skinId":3182,"itemName":"MSMC","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":3184,"itemName":"MSMC","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":3181,"itemName":"MSMC","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":3171,"itemName":"MSMC","skinName":"Asphalt","itemRarity":"Common"},{"skinId":3183,"itemName":"MSMC","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":1398,"itemName":"MSMC","skinName":"Bats","itemRarity":"Uncommon"},{"skinId":8927,"itemName":"MSMC","skinName":"Bitter Burst","itemRarity":"Epic"},{"skinId":3170,"itemName":"MSMC","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":807,"itemName":"MSMC","skinName":"Blue Graffiti","itemRarity":"Uncommon"},{"skinId":3209,"itemName":"MSMC","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":3195,"itemName":"MSMC","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":6162,"itemName":"MSMC","skinName":"Bullet Point","itemRarity":"Uncommon"},{"skinId":3213,"itemName":"MSMC","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":9197,"itemName":"MSMC","skinName":"Bunker","itemRarity":"Uncommon"},{"skinId":7254,"itemName":"MSMC","skinName":"CODM","itemRarity":"Rare"},{"skinId":3205,"itemName":"MSMC","skinName":"Canopy","itemRarity":"Common"},{"skinId":377,"itemName":"MSMC","skinName":"Canvas","itemRarity":"Rare"},{"skinId":8202,"itemName":"MSMC","skinName":"Cerulean","itemRarity":"Uncommon"},{"skinId":3163,"itemName":"MSMC","skinName":"Chain Link","itemRarity":"Common"},{"skinId":3161,"itemName":"MSMC","skinName":"China Lake","itemRarity":"Common"},{"skinId":3210,"itemName":"MSMC","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":6523,"itemName":"MSMC","skinName":"Coat","itemRarity":"Uncommon"},{"skinId":3157,"itemName":"MSMC","skinName":"Commando","itemRarity":"Common"},{"skinId":8070,"itemName":"MSMC","skinName":"Covert Mini","itemRarity":"Epic"},{"skinId":3172,"itemName":"MSMC","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":6186,"itemName":"MSMC","skinName":"Cubic Illusion","itemRarity":"Rare"},{"skinId":8917,"itemName":"MSMC","skinName":"Dalmatian","itemRarity":"Uncommon"},{"skinId":7038,"itemName":"MSMC","skinName":"Damascus","itemRarity":"Common"},{"skinId":3188,"itemName":"MSMC","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":6080,"itemName":"MSMC","skinName":"Default","itemRarity":"Common"},{"skinId":3193,"itemName":"MSMC","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":3198,"itemName":"MSMC","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":18,"itemName":"MSMC","skinName":"Desert Snake","itemRarity":"Uncommon"},{"skinId":3156,"itemName":"MSMC","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8511,"itemName":"MSMC","skinName":"Diamond","itemRarity":"Common"},{"skinId":3167,"itemName":"MSMC","skinName":"Dirt","itemRarity":"Common"},{"skinId":3190,"itemName":"MSMC","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":699,"itemName":"MSMC","skinName":"Fashion Purple","itemRarity":"Uncommon"},{"skinId":3191,"itemName":"MSMC","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":3175,"itemName":"MSMC","skinName":"Foliage","itemRarity":"Common"},{"skinId":3178,"itemName":"MSMC","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":3215,"itemName":"MSMC","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":3214,"itemName":"MSMC","skinName":"Gecko","itemRarity":"Common"},{"skinId":7534,"itemName":"MSMC","skinName":"Glitch","itemRarity":"Uncommon"},{"skinId":3216,"itemName":"MSMC","skinName":"Gold","itemRarity":"Common"},{"skinId":2230,"itemName":"MSMC","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":2604,"itemName":"MSMC","skinName":"Grime","itemRarity":"Uncommon"},{"skinId":3166,"itemName":"MSMC","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":519,"itemName":"MSMC","skinName":"Halloween","itemRarity":"Rare"},{"skinId":800,"itemName":"MSMC","skinName":"Hazardous","itemRarity":"Uncommon"},{"skinId":649,"itemName":"MSMC","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":5,"itemName":"MSMC","skinName":"Heat Stroke","itemRarity":"Epic"},{"skinId":7341,"itemName":"MSMC","skinName":"Heliotrope","itemRarity":"Uncommon"},{"skinId":2228,"itemName":"MSMC","skinName":"Holiday Ribbons","itemRarity":"Uncommon"},{"skinId":7313,"itemName":"MSMC","skinName":"Hot Rod","itemRarity":"Epic"},{"skinId":3179,"itemName":"MSMC","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":7473,"itemName":"MSMC","skinName":"Jack O' Lantern","itemRarity":"Rare"},{"skinId":114,"itemName":"MSMC","skinName":"Jade","itemRarity":"Epic"},{"skinId":3201,"itemName":"MSMC","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":3208,"itemName":"MSMC","skinName":"Komodo","itemRarity":"Common"},{"skinId":10167,"itemName":"MSMC","skinName":"Lingering","itemRarity":"Uncommon"},{"skinId":3200,"itemName":"MSMC","skinName":"Marshland","itemRarity":"Common"},{"skinId":622,"itemName":"MSMC","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":3197,"itemName":"MSMC","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":3159,"itemName":"MSMC","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":3168,"itemName":"MSMC","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":3187,"itemName":"MSMC","skinName":"Mudslide","itemRarity":"Common"},{"skinId":1681,"itemName":"MSMC","skinName":"Neon Green","itemRarity":"Uncommon"},{"skinId":3173,"itemName":"MSMC","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":3164,"itemName":"MSMC","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":3204,"itemName":"MSMC","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":1668,"itemName":"MSMC","skinName":"Ooze","itemRarity":"Epic"},{"skinId":1466,"itemName":"MSMC","skinName":"Open Circuit","itemRarity":"Rare"},{"skinId":3186,"itemName":"MSMC","skinName":"Overgrown","itemRarity":"Common"},{"skinId":10601,"itemName":"MSMC","skinName":"Paper Fan","itemRarity":"Uncommon"},{"skinId":10935,"itemName":"MSMC","skinName":"Paper Star","itemRarity":"Uncommon"},{"skinId":3211,"itemName":"MSMC","skinName":"Pink Python","itemRarity":"Common"},{"skinId":3162,"itemName":"MSMC","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":3160,"itemName":"MSMC","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":6392,"itemName":"MSMC","skinName":"Plated Red","itemRarity":"Uncommon"},{"skinId":3217,"itemName":"MSMC","skinName":"Platinum","itemRarity":"Common"},{"skinId":3206,"itemName":"MSMC","skinName":"Python","itemRarity":"Common"},{"skinId":3207,"itemName":"MSMC","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":3194,"itemName":"MSMC","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":584,"itemName":"MSMC","skinName":"Red Triangle","itemRarity":"Uncommon"},{"skinId":802,"itemName":"MSMC","skinName":"Reindeer","itemRarity":"Uncommon"},{"skinId":803,"itemName":"MSMC","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":522,"itemName":"MSMC","skinName":"Ribbon Explosion","itemRarity":"Rare"},{"skinId":3158,"itemName":"MSMC","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":5924,"itemName":"MSMC","skinName":"Rosie","itemRarity":"Epic"},{"skinId":3180,"itemName":"MSMC","skinName":"Ruins","itemRarity":"Common"},{"skinId":3199,"itemName":"MSMC","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":1194,"itemName":"MSMC","skinName":"Sandbox","itemRarity":"Uncommon"},{"skinId":2452,"itemName":"MSMC","skinName":"Scrap Metal","itemRarity":"Epic"},{"skinId":3185,"itemName":"MSMC","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":3165,"itemName":"MSMC","skinName":"Smoke","itemRarity":"Common"},{"skinId":836,"itemName":"MSMC","skinName":"Space Station","itemRarity":"Legendary"},{"skinId":6424,"itemName":"MSMC","skinName":"Spores","itemRarity":"Epic"},{"skinId":1471,"itemName":"MSMC","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":11204,"itemName":"MSMC","skinName":"Steam Engine","itemRarity":"Rare"},{"skinId":1245,"itemName":"MSMC","skinName":"Steel Cut","itemRarity":"Rare"},{"skinId":3196,"itemName":"MSMC","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":8238,"itemName":"MSMC","skinName":"Tagged","itemRarity":"Uncommon"},{"skinId":3169,"itemName":"MSMC","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":3192,"itemName":"MSMC","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":3174,"itemName":"MSMC","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":3176,"itemName":"MSMC","skinName":"Tundra","itemRarity":"Common"},{"skinId":3177,"itemName":"MSMC","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":7894,"itemName":"MSMC","skinName":"War Torn","itemRarity":"Rare"},{"skinId":3203,"itemName":"MSMC","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":3202,"itemName":"MSMC","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":9672,"itemName":"MSMC","skinName":"Warmth","itemRarity":"Uncommon"},{"skinId":9342,"itemName":"MSMC","skinName":"Warp","itemRarity":"Uncommon"},{"skinId":1730,"itemName":"MSMC","skinName":"Wasteland","itemRarity":"Epic"},{"skinId":232,"itemName":"MSMC","skinName":"Wild West","itemRarity":"Epic"},{"skinId":1560,"itemName":"MSMC","skinName":"Yellow Camo","itemRarity":"Uncommon"},{"skinId":1347,"itemName":"MSMC","skinName":"Yellow Triangle","itemRarity":"Uncommon"},{"skinId":5635,"itemName":"MW11","skinName":"Abominable","itemRarity":"Common"},{"skinId":6563,"itemName":"MW11","skinName":"Adaptable","itemRarity":"Rare"},{"skinId":6578,"itemName":"MW11","skinName":"Alligator","itemRarity":"Uncommon"},{"skinId":6195,"itemName":"MW11","skinName":"Ammo Box","itemRarity":"Uncommon"},{"skinId":5658,"itemName":"MW11","skinName":"Anaconda","itemRarity":"Common"},{"skinId":6115,"itemName":"MW11","skinName":"Angles","itemRarity":"Uncommon"},{"skinId":5628,"itemName":"MW11","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":7219,"itemName":"MW11","skinName":"Anniversary","itemRarity":"Rare"},{"skinId":5630,"itemName":"MW11","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":5627,"itemName":"MW11","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":11536,"itemName":"MW11","skinName":"Artisan","itemRarity":"Rare"},{"skinId":34,"itemName":"MW11","skinName":"Ashen Viper","itemRarity":"Rare"},{"skinId":5617,"itemName":"MW11","skinName":"Asphalt","itemRarity":"Common"},{"skinId":5629,"itemName":"MW11","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":9189,"itemName":"MW11","skinName":"Backdraft","itemRarity":"Rare"},{"skinId":230,"itemName":"MW11","skinName":"Bandit","itemRarity":"Rare"},{"skinId":1013,"itemName":"MW11","skinName":"Bats","itemRarity":"Uncommon"},{"skinId":8947,"itemName":"MW11","skinName":"Bear Trap","itemRarity":"Epic"},{"skinId":6603,"itemName":"MW11","skinName":"Beekeeper","itemRarity":"Epic"},{"skinId":6860,"itemName":"MW11","skinName":"Bite Size","itemRarity":"Epic"},{"skinId":1672,"itemName":"MW11","skinName":"Black Lime","itemRarity":"Rare"},{"skinId":10375,"itemName":"MW11","skinName":"Black Marble","itemRarity":"Uncommon"},{"skinId":5616,"itemName":"MW11","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":6293,"itemName":"MW11","skinName":"Bloodline","itemRarity":"Rare"},{"skinId":2250,"itemName":"MW11","skinName":"Blue Carbon","itemRarity":"Rare"},{"skinId":5655,"itemName":"MW11","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":5641,"itemName":"MW11","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":6234,"itemName":"MW11","skinName":"Bolted Metal","itemRarity":"Uncommon"},{"skinId":9048,"itemName":"MW11","skinName":"Bombs Away","itemRarity":"Epic"},{"skinId":8968,"itemName":"MW11","skinName":"Brain Freeze","itemRarity":"Uncommon"},{"skinId":3074,"itemName":"MW11","skinName":"Brushed Red","itemRarity":"Uncommon"},{"skinId":343,"itemName":"MW11","skinName":"Brushed Steel","itemRarity":"Rare"},{"skinId":10885,"itemName":"MW11","skinName":"Bubblegum","itemRarity":"Epic"},{"skinId":6166,"itemName":"MW11","skinName":"Bullet Point","itemRarity":"Uncommon"},{"skinId":5659,"itemName":"MW11","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":5651,"itemName":"MW11","skinName":"Canopy","itemRarity":"Common"},{"skinId":378,"itemName":"MW11","skinName":"Canvas","itemRarity":"Rare"},{"skinId":8204,"itemName":"MW11","skinName":"Cerulean","itemRarity":"Uncommon"},{"skinId":5609,"itemName":"MW11","skinName":"Chain Link","itemRarity":"Common"},{"skinId":8068,"itemName":"MW11","skinName":"Chevalier","itemRarity":"Epic"},{"skinId":5607,"itemName":"MW11","skinName":"China Lake","itemRarity":"Common"},{"skinId":5656,"itemName":"MW11","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":9731,"itemName":"MW11","skinName":"Circuit Board","itemRarity":"Epic"},{"skinId":10945,"itemName":"MW11","skinName":"Coalition","itemRarity":"Rare"},{"skinId":6526,"itemName":"MW11","skinName":"Coat","itemRarity":"Uncommon"},{"skinId":2754,"itemName":"MW11","skinName":"Color Spectrum","itemRarity":"Epic"},{"skinId":5603,"itemName":"MW11","skinName":"Commando","itemRarity":"Common"},{"skinId":8110,"itemName":"MW11","skinName":"Concrete Lightning","itemRarity":"Uncommon"},{"skinId":9466,"itemName":"MW11","skinName":"Connection","itemRarity":"Rare"},{"skinId":2783,"itemName":"MW11","skinName":"Corroded","itemRarity":"Uncommon"},{"skinId":10523,"itemName":"MW11","skinName":"Cosmos","itemRarity":"Epic"},{"skinId":7659,"itemName":"MW11","skinName":"Court Blue","itemRarity":"Uncommon"},{"skinId":8143,"itemName":"MW11","skinName":"Crackle","itemRarity":"Uncommon"},{"skinId":10795,"itemName":"MW11","skinName":"Crane Style","itemRarity":"Uncommon"},{"skinId":6935,"itemName":"MW11","skinName":"Crayon","itemRarity":"Uncommon"},{"skinId":5618,"itemName":"MW11","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7521,"itemName":"MW11","skinName":"Crossed Cables","itemRarity":"Rare"},{"skinId":8920,"itemName":"MW11","skinName":"Dalmatian","itemRarity":"Uncommon"},{"skinId":6969,"itemName":"MW11","skinName":"Damascus","itemRarity":"Common"},{"skinId":1600,"itemName":"MW11","skinName":"Danger Zone","itemRarity":"Rare"},{"skinId":5634,"itemName":"MW11","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":7613,"itemName":"MW11","skinName":"Dark Light","itemRarity":"Rare"},{"skinId":9438,"itemName":"MW11","skinName":"Data Blocks","itemRarity":"Uncommon"},{"skinId":2461,"itemName":"MW11","skinName":"Deep Forest","itemRarity":"Rare"},{"skinId":446,"itemName":"MW11","skinName":"Default","itemRarity":"Common"},{"skinId":5639,"itemName":"MW11","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":5644,"itemName":"MW11","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":5602,"itemName":"MW11","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":2380,"itemName":"MW11","skinName":"Desperate Measures","itemRarity":"Rare"},{"skinId":8503,"itemName":"MW11","skinName":"Diamond","itemRarity":"Common"},{"skinId":483,"itemName":"MW11","skinName":"Digital Exotic","itemRarity":"Rare"},{"skinId":5613,"itemName":"MW11","skinName":"Dirt","itemRarity":"Common"},{"skinId":3001,"itemName":"MW11","skinName":"Dive Bomb","itemRarity":"Epic"},{"skinId":10286,"itemName":"MW11","skinName":"Duct Tape","itemRarity":"Uncommon"},{"skinId":11182,"itemName":"MW11","skinName":"Duel","itemRarity":"Uncommon"},{"skinId":762,"itemName":"MW11","skinName":"Easter '20","itemRarity":"Uncommon"},{"skinId":6497,"itemName":"MW11","skinName":"Echolocation","itemRarity":"Epic"},{"skinId":10183,"itemName":"MW11","skinName":"Emergence","itemRarity":"Epic"},{"skinId":11657,"itemName":"MW11","skinName":"Exosphere","itemRarity":"Epic"},{"skinId":10489,"itemName":"MW11","skinName":"Eyes in the Dark","itemRarity":"Uncommon"},{"skinId":2772,"itemName":"MW11","skinName":"Faded Dream","itemRarity":"Rare"},{"skinId":5636,"itemName":"MW11","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":5637,"itemName":"MW11","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":10899,"itemName":"MW11","skinName":"Festival","itemRarity":"Uncommon"},{"skinId":9637,"itemName":"MW11","skinName":"Fiber Ray","itemRarity":"Uncommon"},{"skinId":9054,"itemName":"MW11","skinName":"Fission","itemRarity":"Rare"},{"skinId":5621,"itemName":"MW11","skinName":"Foliage","itemRarity":"Common"},{"skinId":6877,"itemName":"MW11","skinName":"Forest Fabric","itemRarity":"Uncommon"},{"skinId":7963,"itemName":"MW11","skinName":"Forward Motion","itemRarity":"Rare"},{"skinId":2031,"itemName":"MW11","skinName":"Frostbite","itemRarity":"Uncommon"},{"skinId":5624,"itemName":"MW11","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":2470,"itemName":"MW11","skinName":"Fuel Tank","itemRarity":"Uncommon"},{"skinId":5661,"itemName":"MW11","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":5660,"itemName":"MW11","skinName":"Gecko","itemRarity":"Common"},{"skinId":11076,"itemName":"MW11","skinName":"Glow Fly","itemRarity":"Epic"},{"skinId":5662,"itemName":"MW11","skinName":"Gold","itemRarity":"Common"},{"skinId":7317,"itemName":"MW11","skinName":"Gold Glitter","itemRarity":"Epic"},{"skinId":7727,"itemName":"MW11","skinName":"Graceful Gold","itemRarity":"Uncommon"},{"skinId":10786,"itemName":"MW11","skinName":"Great Wave","itemRarity":"Rare"},{"skinId":1327,"itemName":"MW11","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":5612,"itemName":"MW11","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":7997,"itemName":"MW11","skinName":"Hard Water","itemRarity":"Uncommon"},{"skinId":1549,"itemName":"MW11","skinName":"Hazard","itemRarity":"Rare"},{"skinId":460,"itemName":"MW11","skinName":"Hazardous","itemRarity":"Uncommon"},{"skinId":2195,"itemName":"MW11","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":8814,"itemName":"MW11","skinName":"Heliotrope","itemRarity":"Uncommon"},{"skinId":2442,"itemName":"MW11","skinName":"Hemophiliac","itemRarity":"Uncommon"},{"skinId":8474,"itemName":"MW11","skinName":"Holidays","itemRarity":"Epic"},{"skinId":1893,"itemName":"MW11","skinName":"Hot Spot","itemRarity":"Epic"},{"skinId":2059,"itemName":"MW11","skinName":"Hot and Cold","itemRarity":"Rare"},{"skinId":5625,"itemName":"MW11","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":8928,"itemName":"MW11","skinName":"Ice Crystal","itemRarity":"Epic"},{"skinId":236,"itemName":"MW11","skinName":"Industrial Revolution","itemRarity":"Rare"},{"skinId":1363,"itemName":"MW11","skinName":"Jingle Bells","itemRarity":"Uncommon"},{"skinId":387,"itemName":"MW11","skinName":"Jungle Terrain","itemRarity":"Uncommon"},{"skinId":7882,"itemName":"MW11","skinName":"Kapow","itemRarity":"Uncommon"},{"skinId":5647,"itemName":"MW11","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":10944,"itemName":"MW11","skinName":"Knighted","itemRarity":"Rare"},{"skinId":5654,"itemName":"MW11","skinName":"Komodo","itemRarity":"Common"},{"skinId":8135,"itemName":"MW11","skinName":"Labyrinth","itemRarity":"Rare"},{"skinId":10170,"itemName":"MW11","skinName":"Lingering","itemRarity":"Uncommon"},{"skinId":9629,"itemName":"MW11","skinName":"Liquid Mercury","itemRarity":"Rare"},{"skinId":2313,"itemName":"MW11","skinName":"Living Rust","itemRarity":"Epic"},{"skinId":7908,"itemName":"MW11","skinName":"Lunar Tide","itemRarity":"Rare"},{"skinId":763,"itemName":"MW11","skinName":"MacTavish","itemRarity":"Rare"},{"skinId":134,"itemName":"MW11","skinName":"Mardi Gras","itemRarity":"Rare"},{"skinId":5646,"itemName":"MW11","skinName":"Marshland","itemRarity":"Common"},{"skinId":1961,"itemName":"MW11","skinName":"Mechanized Rain","itemRarity":"Rare"},{"skinId":1756,"itemName":"MW11","skinName":"Medieval","itemRarity":"Rare"},{"skinId":9693,"itemName":"MW11","skinName":"Mire","itemRarity":"Epic"},{"skinId":10101,"itemName":"MW11","skinName":"Mitosis","itemRarity":"Epic"},{"skinId":5643,"itemName":"MW11","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":8224,"itemName":"MW11","skinName":"Moonlight Wisp","itemRarity":"Rare"},{"skinId":5605,"itemName":"MW11","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":2601,"itemName":"MW11","skinName":"Moss","itemRarity":"Rare"},{"skinId":5614,"itemName":"MW11","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":6034,"itemName":"MW11","skinName":"Moss Rock","itemRarity":"Uncommon"},{"skinId":5633,"itemName":"MW11","skinName":"Mudslide","itemRarity":"Common"},{"skinId":11669,"itemName":"MW11","skinName":"Murder","itemRarity":"Epic"},{"skinId":8470,"itemName":"MW11","skinName":"Neon Army","itemRarity":"Uncommon"},{"skinId":5619,"itemName":"MW11","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":5610,"itemName":"MW11","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":5650,"itemName":"MW11","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":8422,"itemName":"MW11","skinName":"Noir","itemRarity":"Epic"},{"skinId":2453,"itemName":"MW11","skinName":"Nuclear Fallout","itemRarity":"Epic"},{"skinId":2874,"itemName":"MW11","skinName":"Obstacle","itemRarity":"Rare"},{"skinId":2510,"itemName":"MW11","skinName":"Oil Spill","itemRarity":"Epic"},{"skinId":5992,"itemName":"MW11","skinName":"Old News","itemRarity":"Uncommon"},{"skinId":885,"itemName":"MW11","skinName":"Open Circuit","itemRarity":"Rare"},{"skinId":5632,"itemName":"MW11","skinName":"Overgrown","itemRarity":"Common"},{"skinId":11459,"itemName":"MW11","skinName":"Overpower","itemRarity":"Rare"},{"skinId":10249,"itemName":"MW11","skinName":"Paint Smear","itemRarity":"Uncommon"},{"skinId":11137,"itemName":"MW11","skinName":"Paper Star","itemRarity":"Uncommon"},{"skinId":10821,"itemName":"MW11","skinName":"Parasol","itemRarity":"Rare"},{"skinId":7631,"itemName":"MW11","skinName":"Party Area","itemRarity":"Epic"},{"skinId":6910,"itemName":"MW11","skinName":"Pelt","itemRarity":"Uncommon"},{"skinId":11034,"itemName":"MW11","skinName":"Perfect Balance","itemRarity":"Rare"},{"skinId":8498,"itemName":"MW11","skinName":"Permafrost","itemRarity":"Rare"},{"skinId":8843,"itemName":"MW11","skinName":"Pine Cone","itemRarity":"Uncommon"},{"skinId":5657,"itemName":"MW11","skinName":"Pink Python","itemRarity":"Common"},{"skinId":5608,"itemName":"MW11","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":5606,"itemName":"MW11","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":6312,"itemName":"MW11","skinName":"Plated Gray","itemRarity":"Uncommon"},{"skinId":6326,"itemName":"MW11","skinName":"Plated Green","itemRarity":"Uncommon"},{"skinId":6398,"itemName":"MW11","skinName":"Plated Red","itemRarity":"Uncommon"},{"skinId":5663,"itemName":"MW11","skinName":"Platinum","itemRarity":"Common"},{"skinId":8035,"itemName":"MW11","skinName":"Pocket Shock","itemRarity":"Uncommon"},{"skinId":2519,"itemName":"MW11","skinName":"Posted","itemRarity":"Rare"},{"skinId":11597,"itemName":"MW11","skinName":"Powder Bomb","itemRarity":"Rare"},{"skinId":6221,"itemName":"MW11","skinName":"Propaganda","itemRarity":"Rare"},{"skinId":299,"itemName":"MW11","skinName":"Purple Core","itemRarity":"Rare"},{"skinId":8058,"itemName":"MW11","skinName":"Purple Geode","itemRarity":"Uncommon"},{"skinId":5652,"itemName":"MW11","skinName":"Python","itemRarity":"Common"},{"skinId":9586,"itemName":"MW11","skinName":"Quartz","itemRarity":"Epic"},{"skinId":8008,"itemName":"MW11","skinName":"Radar","itemRarity":"Epic"},{"skinId":1662,"itemName":"MW11","skinName":"Radioactive","itemRarity":"Rare"},{"skinId":5653,"itemName":"MW11","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":2902,"itemName":"MW11","skinName":"Record Scratch","itemRarity":"Uncommon"},{"skinId":560,"itemName":"MW11","skinName":"Red","itemRarity":"Uncommon"},{"skinId":10317,"itemName":"MW11","skinName":"Red Burst","itemRarity":"Uncommon"},{"skinId":8173,"itemName":"MW11","skinName":"Red Curtain","itemRarity":"Rare"},{"skinId":5640,"itemName":"MW11","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":11629,"itemName":"MW11","skinName":"Repellent","itemRarity":"Uncommon"},{"skinId":5952,"itemName":"MW11","skinName":"Revolution","itemRarity":"Epic"},{"skinId":9750,"itemName":"MW11","skinName":"Rewind","itemRarity":"Uncommon"},{"skinId":5604,"itemName":"MW11","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":10012,"itemName":"MW11","skinName":"Ripped Camo","itemRarity":"Uncommon"},{"skinId":11096,"itemName":"MW11","skinName":"Rock Cairn","itemRarity":"Uncommon"},{"skinId":10310,"itemName":"MW11","skinName":"Rogue Intel","itemRarity":"Epic"},{"skinId":11859,"itemName":"MW11","skinName":"Ropework","itemRarity":"Uncommon"},{"skinId":5626,"itemName":"MW11","skinName":"Ruins","itemRarity":"Common"},{"skinId":2714,"itemName":"MW11","skinName":"Rusted","itemRarity":"Uncommon"},{"skinId":10814,"itemName":"MW11","skinName":"Sakura Storm","itemRarity":"Epic"},{"skinId":5645,"itemName":"MW11","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":56,"itemName":"MW11","skinName":"Sandbox","itemRarity":"Uncommon"},{"skinId":9722,"itemName":"MW11","skinName":"Screen Tear","itemRarity":"Uncommon"},{"skinId":8131,"itemName":"MW11","skinName":"Serpentine","itemRarity":"Epic"},{"skinId":10602,"itemName":"MW11","skinName":"Severed","itemRarity":"Rare"},{"skinId":6917,"itemName":"MW11","skinName":"Sharkbite","itemRarity":"Epic"},{"skinId":5631,"itemName":"MW11","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":2756,"itemName":"MW11","skinName":"Sight Unseen","itemRarity":"Rare"},{"skinId":2262,"itemName":"MW11","skinName":"Slate","itemRarity":"Uncommon"},{"skinId":5611,"itemName":"MW11","skinName":"Smoke","itemRarity":"Common"},{"skinId":2576,"itemName":"MW11","skinName":"Spoils","itemRarity":"Rare"},{"skinId":653,"itemName":"MW11","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":8002,"itemName":"MW11","skinName":"Stalwart","itemRarity":"Rare"},{"skinId":764,"itemName":"MW11","skinName":"Star Camo","itemRarity":"Rare"},{"skinId":11677,"itemName":"MW11","skinName":"Steam Engine","itemRarity":"Rare"},{"skinId":312,"itemName":"MW11","skinName":"Steel Defense","itemRarity":"Rare"},{"skinId":3045,"itemName":"MW11","skinName":"Strafing Run","itemRarity":"Epic"},{"skinId":320,"itemName":"MW11","skinName":"Strapped","itemRarity":"Rare"},{"skinId":5968,"itemName":"MW11","skinName":"Strongbox","itemRarity":"Rare"},{"skinId":6867,"itemName":"MW11","skinName":"Subterfuge","itemRarity":"Rare"},{"skinId":5642,"itemName":"MW11","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":9355,"itemName":"MW11","skinName":"Synapse","itemRarity":"Rare"},{"skinId":8242,"itemName":"MW11","skinName":"Tagged","itemRarity":"Uncommon"},{"skinId":5615,"itemName":"MW11","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":9694,"itemName":"MW11","skinName":"The Numbers","itemRarity":"Uncommon"},{"skinId":5638,"itemName":"MW11","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":10326,"itemName":"MW11","skinName":"Tourniquet","itemRarity":"Uncommon"},{"skinId":5620,"itemName":"MW11","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":6820,"itemName":"MW11","skinName":"Tree Ring","itemRarity":"Uncommon"},{"skinId":5622,"itemName":"MW11","skinName":"Tundra","itemRarity":"Common"},{"skinId":8185,"itemName":"MW11","skinName":"Ultramarine","itemRarity":"Rare"},{"skinId":6367,"itemName":"MW11","skinName":"Uncaged","itemRarity":"Epic"},{"skinId":8449,"itemName":"MW11","skinName":"Uncertain","itemRarity":"Uncommon"},{"skinId":2964,"itemName":"MW11","skinName":"Undead Crusade","itemRarity":"Rare"},{"skinId":6670,"itemName":"MW11","skinName":"Undergrowth","itemRarity":"Uncommon"},{"skinId":5623,"itemName":"MW11","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":6808,"itemName":"MW11","skinName":"Upper Hand","itemRarity":"Rare"},{"skinId":2997,"itemName":"MW11","skinName":"Urban Orange","itemRarity":"Uncommon"},{"skinId":11623,"itemName":"MW11","skinName":"Vine Growth","itemRarity":"Rare"},{"skinId":10869,"itemName":"MW11","skinName":"Visceral","itemRarity":"Epic"},{"skinId":11252,"itemName":"MW11","skinName":"Wagon Wheel","itemRarity":"Uncommon"},{"skinId":5649,"itemName":"MW11","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":5648,"itemName":"MW11","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":9673,"itemName":"MW11","skinName":"Warmth","itemRarity":"Uncommon"},{"skinId":9345,"itemName":"MW11","skinName":"Warp","itemRarity":"Uncommon"},{"skinId":1804,"itemName":"MW11","skinName":"White Lies","itemRarity":"Uncommon"},{"skinId":7464,"itemName":"MW11","skinName":"Wicked Whisper","itemRarity":"Epic"},{"skinId":1035,"itemName":"MW11","skinName":"Wrath Black & Gold","itemRarity":"Epic"},{"skinId":1322,"itemName":"MW11","skinName":"Year of the Rat","itemRarity":"Rare"},{"skinId":10121,"itemName":"MW11","skinName":"Yellow Abstract","itemRarity":"Uncommon"},{"skinId":1561,"itemName":"MW11","skinName":"Yellow Camo","itemRarity":"Uncommon"},{"skinId":7477,"itemName":"MW11","skinName":"Yellow Fabric","itemRarity":"Uncommon"},{"skinId":1287,"itemName":"MW11","skinName":"Zombie Gene","itemRarity":"Uncommon"},{"skinId":5205,"itemName":"Man-O-War","skinName":"Abominable","itemRarity":"Common"},{"skinId":5228,"itemName":"Man-O-War","skinName":"Anaconda","itemRarity":"Common"},{"skinId":5198,"itemName":"Man-O-War","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":5200,"itemName":"Man-O-War","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":5197,"itemName":"Man-O-War","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":5187,"itemName":"Man-O-War","skinName":"Asphalt","itemRarity":"Common"},{"skinId":5199,"itemName":"Man-O-War","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":5186,"itemName":"Man-O-War","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":7367,"itemName":"Man-O-War","skinName":"Blood in the Water","itemRarity":"Rare"},{"skinId":5225,"itemName":"Man-O-War","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":5211,"itemName":"Man-O-War","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":10157,"itemName":"Man-O-War","skinName":"Bombastic","itemRarity":"Rare"},{"skinId":5229,"itemName":"Man-O-War","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":5221,"itemName":"Man-O-War","skinName":"Canopy","itemRarity":"Common"},{"skinId":6204,"itemName":"Man-O-War","skinName":"Cardinal","itemRarity":"Epic"},{"skinId":11489,"itemName":"Man-O-War","skinName":"Carrion","itemRarity":"Uncommon"},{"skinId":5179,"itemName":"Man-O-War","skinName":"Chain Link","itemRarity":"Common"},{"skinId":5177,"itemName":"Man-O-War","skinName":"China Lake","itemRarity":"Common"},{"skinId":5226,"itemName":"Man-O-War","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":9729,"itemName":"Man-O-War","skinName":"Circuit Board","itemRarity":"Epic"},{"skinId":5173,"itemName":"Man-O-War","skinName":"Commando","itemRarity":"Common"},{"skinId":5188,"itemName":"Man-O-War","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7071,"itemName":"Man-O-War","skinName":"Damascus","itemRarity":"Common"},{"skinId":5204,"itemName":"Man-O-War","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":10481,"itemName":"Man-O-War","skinName":"Dark Band","itemRarity":"Rare"},{"skinId":7982,"itemName":"Man-O-War","skinName":"Dark Flare","itemRarity":"Epic"},{"skinId":10502,"itemName":"Man-O-War","skinName":"Death Scythe","itemRarity":"Legendary"},{"skinId":1721,"itemName":"Man-O-War","skinName":"Default","itemRarity":"Common"},{"skinId":5209,"itemName":"Man-O-War","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":5214,"itemName":"Man-O-War","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":3028,"itemName":"Man-O-War","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8544,"itemName":"Man-O-War","skinName":"Diamond","itemRarity":"Common"},{"skinId":5183,"itemName":"Man-O-War","skinName":"Dirt","itemRarity":"Common"},{"skinId":989,"itemName":"Man-O-War","skinName":"Dream Crystal","itemRarity":"Legendary"},{"skinId":5206,"itemName":"Man-O-War","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":5207,"itemName":"Man-O-War","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":10953,"itemName":"Man-O-War","skinName":"Five Knights","itemRarity":"Epic"},{"skinId":5191,"itemName":"Man-O-War","skinName":"Foliage","itemRarity":"Common"},{"skinId":5194,"itemName":"Man-O-War","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":5231,"itemName":"Man-O-War","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":5230,"itemName":"Man-O-War","skinName":"Gecko","itemRarity":"Common"},{"skinId":5232,"itemName":"Man-O-War","skinName":"Gold","itemRarity":"Common"},{"skinId":5182,"itemName":"Man-O-War","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":5195,"itemName":"Man-O-War","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":8948,"itemName":"Man-O-War","skinName":"Ice Crystal","itemRarity":"Epic"},{"skinId":239,"itemName":"Man-O-War","skinName":"Industrial Revolution","itemRarity":"Epic"},{"skinId":6622,"itemName":"Man-O-War","skinName":"Iridescent","itemRarity":"Rare"},{"skinId":1716,"itemName":"Man-O-War","skinName":"Isometric","itemRarity":"Rare"},{"skinId":5217,"itemName":"Man-O-War","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":5224,"itemName":"Man-O-War","skinName":"Komodo","itemRarity":"Common"},{"skinId":5216,"itemName":"Man-O-War","skinName":"Marshland","itemRarity":"Common"},{"skinId":5213,"itemName":"Man-O-War","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":5175,"itemName":"Man-O-War","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":5184,"itemName":"Man-O-War","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":5203,"itemName":"Man-O-War","skinName":"Mudslide","itemRarity":"Common"},{"skinId":5189,"itemName":"Man-O-War","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":5180,"itemName":"Man-O-War","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":5220,"itemName":"Man-O-War","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":2548,"itemName":"Man-O-War","skinName":"Nuclear Fallout","itemRarity":"Epic"},{"skinId":5202,"itemName":"Man-O-War","skinName":"Overgrown","itemRarity":"Common"},{"skinId":8748,"itemName":"Man-O-War","skinName":"Pack Leader","itemRarity":"Epic"},{"skinId":5227,"itemName":"Man-O-War","skinName":"Pink Python","itemRarity":"Common"},{"skinId":5178,"itemName":"Man-O-War","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":5176,"itemName":"Man-O-War","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":5233,"itemName":"Man-O-War","skinName":"Platinum","itemRarity":"Common"},{"skinId":5222,"itemName":"Man-O-War","skinName":"Python","itemRarity":"Common"},{"skinId":5223,"itemName":"Man-O-War","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":2897,"itemName":"Man-O-War","skinName":"Record Scratch","itemRarity":"Uncommon"},{"skinId":5210,"itemName":"Man-O-War","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":5174,"itemName":"Man-O-War","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":5196,"itemName":"Man-O-War","skinName":"Ruins","itemRarity":"Common"},{"skinId":10986,"itemName":"Man-O-War","skinName":"Sakura Storm","itemRarity":"Epic"},{"skinId":5215,"itemName":"Man-O-War","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":5201,"itemName":"Man-O-War","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":5181,"itemName":"Man-O-War","skinName":"Smoke","itemRarity":"Common"},{"skinId":7688,"itemName":"Man-O-War","skinName":"Static Electricity","itemRarity":"Rare"},{"skinId":5212,"itemName":"Man-O-War","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":5185,"itemName":"Man-O-War","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":5208,"itemName":"Man-O-War","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":6692,"itemName":"Man-O-War","skinName":"Tiger's Eye","itemRarity":"Epic"},{"skinId":5190,"itemName":"Man-O-War","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":5192,"itemName":"Man-O-War","skinName":"Tundra","itemRarity":"Common"},{"skinId":10970,"itemName":"Man-O-War","skinName":"UAC","itemRarity":"Epic"},{"skinId":5193,"itemName":"Man-O-War","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":11620,"itemName":"Man-O-War","skinName":"Vine Growth","itemRarity":"Rare"},{"skinId":5219,"itemName":"Man-O-War","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":5218,"itemName":"Man-O-War","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":6005,"itemName":"Man-O-War","skinName":"Zilch","itemRarity":"Epic"},{"skinId":9655,"itemName":"Molotov Cocktail","skinName":"All Out War","itemRarity":"Epic"},{"skinId":10159,"itemName":"Molotov Cocktail","skinName":"Bombastic","itemRarity":"Rare"},{"skinId":9075,"itemName":"Molotov Cocktail","skinName":"Comrade","itemRarity":"Epic"},{"skinId":6075,"itemName":"Molotov Cocktail","skinName":"Default","itemRarity":"Common"},{"skinId":11079,"itemName":"Molotov Cocktail","skinName":"Glow Fly","itemRarity":"Epic"},{"skinId":11021,"itemName":"Molotov Cocktail","skinName":"Holster","itemRarity":"Rare"},{"skinId":7373,"itemName":"Molotov Cocktail","skinName":"Supermax","itemRarity":"Epic"},{"skinId":7175,"itemName":"NA-45","skinName":"Abominable","itemRarity":"Common"},{"skinId":10001,"itemName":"NA-45","skinName":"Alpine Infinite","itemRarity":"Rare"},{"skinId":7198,"itemName":"NA-45","skinName":"Anaconda","itemRarity":"Common"},{"skinId":7168,"itemName":"NA-45","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":7170,"itemName":"NA-45","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":7167,"itemName":"NA-45","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":7157,"itemName":"NA-45","skinName":"Asphalt","itemRarity":"Common"},{"skinId":7169,"itemName":"NA-45","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":7156,"itemName":"NA-45","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":7195,"itemName":"NA-45","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":7181,"itemName":"NA-45","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":11250,"itemName":"NA-45","skinName":"Buckskin","itemRarity":"Rare"},{"skinId":7199,"itemName":"NA-45","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":7191,"itemName":"NA-45","skinName":"Canopy","itemRarity":"Common"},{"skinId":7149,"itemName":"NA-45","skinName":"Chain Link","itemRarity":"Common"},{"skinId":7147,"itemName":"NA-45","skinName":"China Lake","itemRarity":"Common"},{"skinId":7196,"itemName":"NA-45","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":7143,"itemName":"NA-45","skinName":"Commando","itemRarity":"Common"},{"skinId":9620,"itemName":"NA-45","skinName":"Cosmic Wave","itemRarity":"Rare"},{"skinId":7158,"itemName":"NA-45","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7204,"itemName":"NA-45","skinName":"Damascus","itemRarity":"Common"},{"skinId":7174,"itemName":"NA-45","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":7206,"itemName":"NA-45","skinName":"Default","itemRarity":"Common"},{"skinId":11516,"itemName":"NA-45","skinName":"Denim","itemRarity":"Uncommon"},{"skinId":7179,"itemName":"NA-45","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":7184,"itemName":"NA-45","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":7142,"itemName":"NA-45","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8553,"itemName":"NA-45","skinName":"Diamond","itemRarity":"Common"},{"skinId":7153,"itemName":"NA-45","skinName":"Dirt","itemRarity":"Common"},{"skinId":7176,"itemName":"NA-45","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":7177,"itemName":"NA-45","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":7161,"itemName":"NA-45","skinName":"Foliage","itemRarity":"Common"},{"skinId":7164,"itemName":"NA-45","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":7201,"itemName":"NA-45","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":7200,"itemName":"NA-45","skinName":"Gecko","itemRarity":"Common"},{"skinId":7202,"itemName":"NA-45","skinName":"Gold","itemRarity":"Common"},{"skinId":7152,"itemName":"NA-45","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":7165,"itemName":"NA-45","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":10099,"itemName":"NA-45","skinName":"Insignia","itemRarity":"Epic"},{"skinId":11577,"itemName":"NA-45","skinName":"Iron Hunter","itemRarity":"Rare"},{"skinId":7187,"itemName":"NA-45","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":7194,"itemName":"NA-45","skinName":"Komodo","itemRarity":"Common"},{"skinId":7467,"itemName":"NA-45","skinName":"Lycanthrope","itemRarity":"Legendary"},{"skinId":7186,"itemName":"NA-45","skinName":"Marshland","itemRarity":"Common"},{"skinId":7183,"itemName":"NA-45","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":7145,"itemName":"NA-45","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":7154,"itemName":"NA-45","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":7173,"itemName":"NA-45","skinName":"Mudslide","itemRarity":"Common"},{"skinId":11496,"itemName":"NA-45","skinName":"Munitions","itemRarity":"Epic"},{"skinId":7159,"itemName":"NA-45","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":7150,"itemName":"NA-45","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":7190,"itemName":"NA-45","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":7172,"itemName":"NA-45","skinName":"Overgrown","itemRarity":"Common"},{"skinId":8810,"itemName":"NA-45","skinName":"Pine Cone","itemRarity":"Uncommon"},{"skinId":7197,"itemName":"NA-45","skinName":"Pink Python","itemRarity":"Common"},{"skinId":7148,"itemName":"NA-45","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":7146,"itemName":"NA-45","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":7203,"itemName":"NA-45","skinName":"Platinum","itemRarity":"Common"},{"skinId":7192,"itemName":"NA-45","skinName":"Python","itemRarity":"Common"},{"skinId":7193,"itemName":"NA-45","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":7180,"itemName":"NA-45","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":7144,"itemName":"NA-45","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":7166,"itemName":"NA-45","skinName":"Ruins","itemRarity":"Common"},{"skinId":7185,"itemName":"NA-45","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":10581,"itemName":"NA-45","skinName":"Severed","itemRarity":"Rare"},{"skinId":7171,"itemName":"NA-45","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":7151,"itemName":"NA-45","skinName":"Smoke","itemRarity":"Common"},{"skinId":8811,"itemName":"NA-45","skinName":"Snowframe","itemRarity":"Rare"},{"skinId":7182,"itemName":"NA-45","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":7155,"itemName":"NA-45","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":7178,"itemName":"NA-45","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":7160,"itemName":"NA-45","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":7162,"itemName":"NA-45","skinName":"Tundra","itemRarity":"Common"},{"skinId":7163,"itemName":"NA-45","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":7189,"itemName":"NA-45","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":7188,"itemName":"NA-45","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":4220,"itemName":"Outlaw","skinName":"Abominable","itemRarity":"Common"},{"skinId":8563,"itemName":"Outlaw","skinName":"Alpine Infinite","itemRarity":"Rare"},{"skinId":5933,"itemName":"Outlaw","skinName":"Ammo Box","itemRarity":"Uncommon"},{"skinId":4243,"itemName":"Outlaw","skinName":"Anaconda","itemRarity":"Common"},{"skinId":4213,"itemName":"Outlaw","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":4215,"itemName":"Outlaw","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":4212,"itemName":"Outlaw","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":8989,"itemName":"Outlaw","skinName":"Arctic Threat","itemRarity":"Epic"},{"skinId":7684,"itemName":"Outlaw","skinName":"Ascending","itemRarity":"Epic"},{"skinId":4202,"itemName":"Outlaw","skinName":"Asphalt","itemRarity":"Common"},{"skinId":4214,"itemName":"Outlaw","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":4201,"itemName":"Outlaw","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":5934,"itemName":"Outlaw","skinName":"Blood in the Water","itemRarity":"Rare"},{"skinId":4240,"itemName":"Outlaw","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":4226,"itemName":"Outlaw","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":9502,"itemName":"Outlaw","skinName":"Breach","itemRarity":"Epic"},{"skinId":8094,"itemName":"Outlaw","skinName":"Breakup","itemRarity":"Rare"},{"skinId":4244,"itemName":"Outlaw","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":9198,"itemName":"Outlaw","skinName":"Bunker","itemRarity":"Uncommon"},{"skinId":4236,"itemName":"Outlaw","skinName":"Canopy","itemRarity":"Common"},{"skinId":4194,"itemName":"Outlaw","skinName":"Chain Link","itemRarity":"Common"},{"skinId":4192,"itemName":"Outlaw","skinName":"China Lake","itemRarity":"Common"},{"skinId":4241,"itemName":"Outlaw","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":4188,"itemName":"Outlaw","skinName":"Commando","itemRarity":"Common"},{"skinId":7366,"itemName":"Outlaw","skinName":"Copilot","itemRarity":"Rare"},{"skinId":4203,"itemName":"Outlaw","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7055,"itemName":"Outlaw","skinName":"Damascus","itemRarity":"Common"},{"skinId":4219,"itemName":"Outlaw","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":201,"itemName":"Outlaw","skinName":"Default","itemRarity":"Common"},{"skinId":4224,"itemName":"Outlaw","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":4229,"itemName":"Outlaw","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":4187,"itemName":"Outlaw","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8528,"itemName":"Outlaw","skinName":"Diamond","itemRarity":"Common"},{"skinId":4198,"itemName":"Outlaw","skinName":"Dirt","itemRarity":"Common"},{"skinId":11036,"itemName":"Outlaw","skinName":"Dragonfly","itemRarity":"Uncommon"},{"skinId":10487,"itemName":"Outlaw","skinName":"Eyes in the Dark","itemRarity":"Uncommon"},{"skinId":4221,"itemName":"Outlaw","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":4222,"itemName":"Outlaw","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":4206,"itemName":"Outlaw","skinName":"Foliage","itemRarity":"Common"},{"skinId":6754,"itemName":"Outlaw","skinName":"Freight Train","itemRarity":"Rare"},{"skinId":4209,"itemName":"Outlaw","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":4246,"itemName":"Outlaw","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":4245,"itemName":"Outlaw","skinName":"Gecko","itemRarity":"Common"},{"skinId":4247,"itemName":"Outlaw","skinName":"Gold","itemRarity":"Common"},{"skinId":4197,"itemName":"Outlaw","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":192,"itemName":"Outlaw","skinName":"Heat Stroke","itemRarity":"Epic"},{"skinId":7,"itemName":"Outlaw","skinName":"High Noon","itemRarity":"Legendary"},{"skinId":4210,"itemName":"Outlaw","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":4232,"itemName":"Outlaw","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":4239,"itemName":"Outlaw","skinName":"Komodo","itemRarity":"Common"},{"skinId":4231,"itemName":"Outlaw","skinName":"Marshland","itemRarity":"Common"},{"skinId":4228,"itemName":"Outlaw","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":4190,"itemName":"Outlaw","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":4199,"itemName":"Outlaw","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":4218,"itemName":"Outlaw","skinName":"Mudslide","itemRarity":"Common"},{"skinId":4204,"itemName":"Outlaw","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":4195,"itemName":"Outlaw","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":4235,"itemName":"Outlaw","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":4217,"itemName":"Outlaw","skinName":"Overgrown","itemRarity":"Common"},{"skinId":8775,"itemName":"Outlaw","skinName":"Permafrost","itemRarity":"Rare"},{"skinId":10049,"itemName":"Outlaw","skinName":"Phantom Limb","itemRarity":"Rare"},{"skinId":4242,"itemName":"Outlaw","skinName":"Pink Python","itemRarity":"Common"},{"skinId":4193,"itemName":"Outlaw","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":4191,"itemName":"Outlaw","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":4248,"itemName":"Outlaw","skinName":"Platinum","itemRarity":"Common"},{"skinId":4237,"itemName":"Outlaw","skinName":"Python","itemRarity":"Common"},{"skinId":8732,"itemName":"Outlaw","skinName":"Radar","itemRarity":"Epic"},{"skinId":4238,"itemName":"Outlaw","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":4225,"itemName":"Outlaw","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":4189,"itemName":"Outlaw","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":4211,"itemName":"Outlaw","skinName":"Ruins","itemRarity":"Common"},{"skinId":4230,"itemName":"Outlaw","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":4216,"itemName":"Outlaw","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":4196,"itemName":"Outlaw","skinName":"Smoke","itemRarity":"Common"},{"skinId":11837,"itemName":"Outlaw","skinName":"Stampede","itemRarity":"Epic"},{"skinId":9660,"itemName":"Outlaw","skinName":"Supernova","itemRarity":"Rare"},{"skinId":4227,"itemName":"Outlaw","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":4200,"itemName":"Outlaw","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":4223,"itemName":"Outlaw","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":4205,"itemName":"Outlaw","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":4207,"itemName":"Outlaw","skinName":"Tundra","itemRarity":"Common"},{"skinId":4208,"itemName":"Outlaw","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":11749,"itemName":"Outlaw","skinName":"Wanted","itemRarity":"Uncommon"},{"skinId":4234,"itemName":"Outlaw","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":4233,"itemName":"Outlaw","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":873,"itemName":"PDW-57","skinName":"1001 Nights","itemRarity":"Rare"},{"skinId":3375,"itemName":"PDW-57","skinName":"Abominable","itemRarity":"Common"},{"skinId":10334,"itemName":"PDW-57","skinName":"Airspace","itemRarity":"Epic"},{"skinId":8156,"itemName":"PDW-57","skinName":"Alarm","itemRarity":"Uncommon"},{"skinId":2988,"itemName":"PDW-57","skinName":"Ammo Box","itemRarity":"Uncommon"},{"skinId":3398,"itemName":"PDW-57","skinName":"Anaconda","itemRarity":"Common"},{"skinId":6111,"itemName":"PDW-57","skinName":"Angles","itemRarity":"Uncommon"},{"skinId":3368,"itemName":"PDW-57","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":525,"itemName":"PDW-57","skinName":"April Fool's Day","itemRarity":"Rare"},{"skinId":3370,"itemName":"PDW-57","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":3367,"itemName":"PDW-57","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":357,"itemName":"PDW-57","skinName":"Ashen Viper","itemRarity":"Rare"},{"skinId":3357,"itemName":"PDW-57","skinName":"Asphalt","itemRarity":"Common"},{"skinId":3369,"itemName":"PDW-57","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":6604,"itemName":"PDW-57","skinName":"Beekeeper","itemRarity":"Epic"},{"skinId":7695,"itemName":"PDW-57","skinName":"Black Top","itemRarity":"Uncommon"},{"skinId":3356,"itemName":"PDW-57","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":1440,"itemName":"PDW-57","skinName":"Blue Graffiti","itemRarity":"Uncommon"},{"skinId":3395,"itemName":"PDW-57","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":3381,"itemName":"PDW-57","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":3399,"itemName":"PDW-57","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":9012,"itemName":"PDW-57","skinName":"Burial Ground","itemRarity":"Rare"},{"skinId":3391,"itemName":"PDW-57","skinName":"Canopy","itemRarity":"Common"},{"skinId":3349,"itemName":"PDW-57","skinName":"Chain Link","itemRarity":"Common"},{"skinId":3347,"itemName":"PDW-57","skinName":"China Lake","itemRarity":"Common"},{"skinId":3396,"itemName":"PDW-57","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":10971,"itemName":"PDW-57","skinName":"Coalition","itemRarity":"Rare"},{"skinId":6521,"itemName":"PDW-57","skinName":"Coat","itemRarity":"Uncommon"},{"skinId":1032,"itemName":"PDW-57","skinName":"Color Burst","itemRarity":"Rare"},{"skinId":3343,"itemName":"PDW-57","skinName":"Commando","itemRarity":"Common"},{"skinId":8107,"itemName":"PDW-57","skinName":"Concrete Lightning","itemRarity":"Uncommon"},{"skinId":6931,"itemName":"PDW-57","skinName":"Crayon","itemRarity":"Uncommon"},{"skinId":3358,"itemName":"PDW-57","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7041,"itemName":"PDW-57","skinName":"Damascus","itemRarity":"Common"},{"skinId":3374,"itemName":"PDW-57","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":422,"itemName":"PDW-57","skinName":"Default","itemRarity":"Common"},{"skinId":3379,"itemName":"PDW-57","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":1718,"itemName":"PDW-57","skinName":"Desert Hex","itemRarity":"Uncommon"},{"skinId":3384,"itemName":"PDW-57","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":17,"itemName":"PDW-57","skinName":"Desert Snake","itemRarity":"Uncommon"},{"skinId":3342,"itemName":"PDW-57","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":9623,"itemName":"PDW-57","skinName":"Desktopper","itemRarity":"Epic"},{"skinId":2334,"itemName":"PDW-57","skinName":"Desperate Measures","itemRarity":"Rare"},{"skinId":8514,"itemName":"PDW-57","skinName":"Diamond","itemRarity":"Common"},{"skinId":3353,"itemName":"PDW-57","skinName":"Dirt","itemRarity":"Common"},{"skinId":2579,"itemName":"PDW-57","skinName":"Distressed","itemRarity":"Uncommon"},{"skinId":11037,"itemName":"PDW-57","skinName":"Dragonfly","itemRarity":"Uncommon"},{"skinId":123,"itemName":"PDW-57","skinName":"Easter '20","itemRarity":"Uncommon"},{"skinId":520,"itemName":"PDW-57","skinName":"Evil Chip","itemRarity":"Rare"},{"skinId":2770,"itemName":"PDW-57","skinName":"Faded Dream","itemRarity":"Rare"},{"skinId":3376,"itemName":"PDW-57","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":3377,"itemName":"PDW-57","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":10897,"itemName":"PDW-57","skinName":"Festival","itemRarity":"Uncommon"},{"skinId":3361,"itemName":"PDW-57","skinName":"Foliage","itemRarity":"Common"},{"skinId":6758,"itemName":"PDW-57","skinName":"Forest Felt","itemRarity":"Uncommon"},{"skinId":120,"itemName":"PDW-57","skinName":"Frontier","itemRarity":"Rare"},{"skinId":3364,"itemName":"PDW-57","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":2466,"itemName":"PDW-57","skinName":"Fuel Tank","itemRarity":"Uncommon"},{"skinId":292,"itemName":"PDW-57","skinName":"Gallant","itemRarity":"Rare"},{"skinId":3401,"itemName":"PDW-57","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":3400,"itemName":"PDW-57","skinName":"Gecko","itemRarity":"Common"},{"skinId":3402,"itemName":"PDW-57","skinName":"Gold","itemRarity":"Common"},{"skinId":632,"itemName":"PDW-57","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":3352,"itemName":"PDW-57","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":2232,"itemName":"PDW-57","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":272,"itemName":"PDW-57","skinName":"Heat Stroke","itemRarity":"Epic"},{"skinId":2438,"itemName":"PDW-57","skinName":"Hemophiliac","itemRarity":"Uncommon"},{"skinId":1834,"itemName":"PDW-57","skinName":"Hot Spot","itemRarity":"Epic"},{"skinId":3365,"itemName":"PDW-57","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":6769,"itemName":"PDW-57","skinName":"Iridescent","itemRarity":"Rare"},{"skinId":11751,"itemName":"PDW-57","skinName":"Iron Hunter","itemRarity":"Rare"},{"skinId":6599,"itemName":"PDW-57","skinName":"Jack Frost","itemRarity":"Uncommon"},{"skinId":1022,"itemName":"PDW-57","skinName":"Jingle Bells","itemRarity":"Uncommon"},{"skinId":3387,"itemName":"PDW-57","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":10946,"itemName":"PDW-57","skinName":"Knighted","itemRarity":"Rare"},{"skinId":3394,"itemName":"PDW-57","skinName":"Komodo","itemRarity":"Common"},{"skinId":10168,"itemName":"PDW-57","skinName":"Lingering","itemRarity":"Uncommon"},{"skinId":7325,"itemName":"PDW-57","skinName":"Lovestruck","itemRarity":"Rare"},{"skinId":2231,"itemName":"PDW-57","skinName":"Lunar New Year","itemRarity":"Rare"},{"skinId":658,"itemName":"PDW-57","skinName":"Mardi Gras","itemRarity":"Rare"},{"skinId":3386,"itemName":"PDW-57","skinName":"Marshland","itemRarity":"Common"},{"skinId":605,"itemName":"PDW-57","skinName":"Medieval","itemRarity":"Epic"},{"skinId":620,"itemName":"PDW-57","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":3383,"itemName":"PDW-57","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":3345,"itemName":"PDW-57","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":3354,"itemName":"PDW-57","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":3373,"itemName":"PDW-57","skinName":"Mudslide","itemRarity":"Common"},{"skinId":11668,"itemName":"PDW-57","skinName":"Murder","itemRarity":"Epic"},{"skinId":6054,"itemName":"PDW-57","skinName":"Narcissist","itemRarity":"Epic"},{"skinId":3359,"itemName":"PDW-57","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":3350,"itemName":"PDW-57","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":3390,"itemName":"PDW-57","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":5988,"itemName":"PDW-57","skinName":"Old News","itemRarity":"Uncommon"},{"skinId":3372,"itemName":"PDW-57","skinName":"Overgrown","itemRarity":"Common"},{"skinId":8890,"itemName":"PDW-57","skinName":"Pine Cone","itemRarity":"Uncommon"},{"skinId":3397,"itemName":"PDW-57","skinName":"Pink Python","itemRarity":"Common"},{"skinId":3348,"itemName":"PDW-57","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":3346,"itemName":"PDW-57","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":3403,"itemName":"PDW-57","skinName":"Platinum","itemRarity":"Common"},{"skinId":291,"itemName":"PDW-57","skinName":"Purple Core","itemRarity":"Rare"},{"skinId":3392,"itemName":"PDW-57","skinName":"Python","itemRarity":"Common"},{"skinId":3393,"itemName":"PDW-57","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":553,"itemName":"PDW-57","skinName":"Red","itemRarity":"Uncommon"},{"skinId":3380,"itemName":"PDW-57","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":6900,"itemName":"PDW-57","skinName":"Reflective","itemRarity":"Rare"},{"skinId":3344,"itemName":"PDW-57","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":995,"itemName":"PDW-57","skinName":"Riveted Green","itemRarity":"Rare"},{"skinId":129,"itemName":"PDW-57","skinName":"Royal Crimson","itemRarity":"Epic"},{"skinId":3366,"itemName":"PDW-57","skinName":"Ruins","itemRarity":"Common"},{"skinId":2712,"itemName":"PDW-57","skinName":"Rusted","itemRarity":"Uncommon"},{"skinId":3385,"itemName":"PDW-57","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":155,"itemName":"PDW-57","skinName":"Sand Dunes","itemRarity":"Uncommon"},{"skinId":523,"itemName":"PDW-57","skinName":"Section","itemRarity":"Rare"},{"skinId":3371,"itemName":"PDW-57","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":10831,"itemName":"PDW-57","skinName":"Shrine","itemRarity":"Uncommon"},{"skinId":2657,"itemName":"PDW-57","skinName":"Sight Unseen","itemRarity":"Rare"},{"skinId":7880,"itemName":"PDW-57","skinName":"Sleight of Hand","itemRarity":"Rare"},{"skinId":3351,"itemName":"PDW-57","skinName":"Smoke","itemRarity":"Common"},{"skinId":1456,"itemName":"PDW-57","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":6072,"itemName":"PDW-57","skinName":"Stream","itemRarity":"Uncommon"},{"skinId":3382,"itemName":"PDW-57","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":3355,"itemName":"PDW-57","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":6962,"itemName":"PDW-57","skinName":"Taped Flecktarn","itemRarity":"Rare"},{"skinId":3378,"itemName":"PDW-57","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":1754,"itemName":"PDW-57","skinName":"Toxic Waste","itemRarity":"Legendary"},{"skinId":3360,"itemName":"PDW-57","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":2524,"itemName":"PDW-57","skinName":"Tree Bark","itemRarity":"Uncommon"},{"skinId":6815,"itemName":"PDW-57","skinName":"Tree Ring","itemRarity":"Uncommon"},{"skinId":3362,"itemName":"PDW-57","skinName":"Tundra","itemRarity":"Common"},{"skinId":1469,"itemName":"PDW-57","skinName":"Ukiyo-e","itemRarity":"Rare"},{"skinId":3363,"itemName":"PDW-57","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":3389,"itemName":"PDW-57","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":3388,"itemName":"PDW-57","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":9475,"itemName":"PDW-57","skinName":"Wiremass","itemRarity":"Uncommon"},{"skinId":797,"itemName":"PDW-57","skinName":"Yellow Snow","itemRarity":"Uncommon"},{"skinId":187,"itemName":"PDW-57","skinName":"Zombie Gene","itemRarity":"Uncommon"},{"skinId":10748,"itemName":"PP19 Bizon","skinName":"Abominable","itemRarity":"Common"},{"skinId":10771,"itemName":"PP19 Bizon","skinName":"Anaconda","itemRarity":"Common"},{"skinId":10741,"itemName":"PP19 Bizon","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":10743,"itemName":"PP19 Bizon","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":10740,"itemName":"PP19 Bizon","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":10730,"itemName":"PP19 Bizon","skinName":"Asphalt","itemRarity":"Common"},{"skinId":10742,"itemName":"PP19 Bizon","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":10729,"itemName":"PP19 Bizon","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":10768,"itemName":"PP19 Bizon","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":10754,"itemName":"PP19 Bizon","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":10772,"itemName":"PP19 Bizon","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":10764,"itemName":"PP19 Bizon","skinName":"Canopy","itemRarity":"Common"},{"skinId":10722,"itemName":"PP19 Bizon","skinName":"Chain Link","itemRarity":"Common"},{"skinId":10720,"itemName":"PP19 Bizon","skinName":"China Lake","itemRarity":"Common"},{"skinId":10769,"itemName":"PP19 Bizon","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":10716,"itemName":"PP19 Bizon","skinName":"Commando","itemRarity":"Common"},{"skinId":10731,"itemName":"PP19 Bizon","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":10777,"itemName":"PP19 Bizon","skinName":"Damascus","itemRarity":"Common"},{"skinId":10747,"itemName":"PP19 Bizon","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":10536,"itemName":"PP19 Bizon","skinName":"Default","itemRarity":"Common"},{"skinId":10752,"itemName":"PP19 Bizon","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":10757,"itemName":"PP19 Bizon","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":10715,"itemName":"PP19 Bizon","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":10778,"itemName":"PP19 Bizon","skinName":"Diamond","itemRarity":"Common"},{"skinId":10726,"itemName":"PP19 Bizon","skinName":"Dirt","itemRarity":"Common"},{"skinId":10749,"itemName":"PP19 Bizon","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":10750,"itemName":"PP19 Bizon","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":10734,"itemName":"PP19 Bizon","skinName":"Foliage","itemRarity":"Common"},{"skinId":10737,"itemName":"PP19 Bizon","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":10774,"itemName":"PP19 Bizon","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":10773,"itemName":"PP19 Bizon","skinName":"Gecko","itemRarity":"Common"},{"skinId":10775,"itemName":"PP19 Bizon","skinName":"Gold","itemRarity":"Common"},{"skinId":10725,"itemName":"PP19 Bizon","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":10738,"itemName":"PP19 Bizon","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":11146,"itemName":"PP19 Bizon","skinName":"Invocation","itemRarity":"Legendary"},{"skinId":10760,"itemName":"PP19 Bizon","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":10767,"itemName":"PP19 Bizon","skinName":"Komodo","itemRarity":"Common"},{"skinId":10759,"itemName":"PP19 Bizon","skinName":"Marshland","itemRarity":"Common"},{"skinId":10756,"itemName":"PP19 Bizon","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":10718,"itemName":"PP19 Bizon","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":10727,"itemName":"PP19 Bizon","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":10746,"itemName":"PP19 Bizon","skinName":"Mudslide","itemRarity":"Common"},{"skinId":10732,"itemName":"PP19 Bizon","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":10723,"itemName":"PP19 Bizon","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":10763,"itemName":"PP19 Bizon","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":10745,"itemName":"PP19 Bizon","skinName":"Overgrown","itemRarity":"Common"},{"skinId":10770,"itemName":"PP19 Bizon","skinName":"Pink Python","itemRarity":"Common"},{"skinId":10721,"itemName":"PP19 Bizon","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":10719,"itemName":"PP19 Bizon","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":10776,"itemName":"PP19 Bizon","skinName":"Platinum","itemRarity":"Common"},{"skinId":10765,"itemName":"PP19 Bizon","skinName":"Python","itemRarity":"Common"},{"skinId":10766,"itemName":"PP19 Bizon","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":10753,"itemName":"PP19 Bizon","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":10717,"itemName":"PP19 Bizon","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":10739,"itemName":"PP19 Bizon","skinName":"Ruins","itemRarity":"Common"},{"skinId":10758,"itemName":"PP19 Bizon","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":10744,"itemName":"PP19 Bizon","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":10724,"itemName":"PP19 Bizon","skinName":"Smoke","itemRarity":"Common"},{"skinId":10755,"itemName":"PP19 Bizon","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":10728,"itemName":"PP19 Bizon","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":10751,"itemName":"PP19 Bizon","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":10733,"itemName":"PP19 Bizon","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":10735,"itemName":"PP19 Bizon","skinName":"Tundra","itemRarity":"Common"},{"skinId":10736,"itemName":"PP19 Bizon","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":10762,"itemName":"PP19 Bizon","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":10761,"itemName":"PP19 Bizon","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":10566,"itemName":"PP19 Bizon","skinName":"Yokai","itemRarity":"Epic"},{"skinId":8672,"itemName":"Peacekeeper MK2","skinName":"Abominable","itemRarity":"Common"},{"skinId":8695,"itemName":"Peacekeeper MK2","skinName":"Anaconda","itemRarity":"Common"},{"skinId":8665,"itemName":"Peacekeeper MK2","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":8667,"itemName":"Peacekeeper MK2","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":8664,"itemName":"Peacekeeper MK2","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":8891,"itemName":"Peacekeeper MK2","skinName":"Artifact","itemRarity":"Mythic"},{"skinId":8654,"itemName":"Peacekeeper MK2","skinName":"Asphalt","itemRarity":"Common"},{"skinId":8666,"itemName":"Peacekeeper MK2","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":8653,"itemName":"Peacekeeper MK2","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":8783,"itemName":"Peacekeeper MK2","skinName":"Blast Off","itemRarity":"Epic"},{"skinId":8692,"itemName":"Peacekeeper MK2","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":8678,"itemName":"Peacekeeper MK2","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":8696,"itemName":"Peacekeeper MK2","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":8688,"itemName":"Peacekeeper MK2","skinName":"Canopy","itemRarity":"Common"},{"skinId":8646,"itemName":"Peacekeeper MK2","skinName":"Chain Link","itemRarity":"Common"},{"skinId":8644,"itemName":"Peacekeeper MK2","skinName":"China Lake","itemRarity":"Common"},{"skinId":8693,"itemName":"Peacekeeper MK2","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":8640,"itemName":"Peacekeeper MK2","skinName":"Commando","itemRarity":"Common"},{"skinId":8655,"itemName":"Peacekeeper MK2","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":8701,"itemName":"Peacekeeper MK2","skinName":"Damascus","itemRarity":"Common"},{"skinId":8671,"itemName":"Peacekeeper MK2","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":8573,"itemName":"Peacekeeper MK2","skinName":"Default","itemRarity":"Common"},{"skinId":8676,"itemName":"Peacekeeper MK2","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":8681,"itemName":"Peacekeeper MK2","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":8639,"itemName":"Peacekeeper MK2","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8702,"itemName":"Peacekeeper MK2","skinName":"Diamond","itemRarity":"Common"},{"skinId":8650,"itemName":"Peacekeeper MK2","skinName":"Dirt","itemRarity":"Common"},{"skinId":10985,"itemName":"Peacekeeper MK2","skinName":"Divine Presence","itemRarity":"Epic"},{"skinId":8673,"itemName":"Peacekeeper MK2","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":8674,"itemName":"Peacekeeper MK2","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":8658,"itemName":"Peacekeeper MK2","skinName":"Foliage","itemRarity":"Common"},{"skinId":8661,"itemName":"Peacekeeper MK2","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":8698,"itemName":"Peacekeeper MK2","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":8697,"itemName":"Peacekeeper MK2","skinName":"Gecko","itemRarity":"Common"},{"skinId":8699,"itemName":"Peacekeeper MK2","skinName":"Gold","itemRarity":"Common"},{"skinId":8649,"itemName":"Peacekeeper MK2","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":8662,"itemName":"Peacekeeper MK2","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":10301,"itemName":"Peacekeeper MK2","skinName":"Imprint","itemRarity":"Rare"},{"skinId":8684,"itemName":"Peacekeeper MK2","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":8691,"itemName":"Peacekeeper MK2","skinName":"Komodo","itemRarity":"Common"},{"skinId":8683,"itemName":"Peacekeeper MK2","skinName":"Marshland","itemRarity":"Common"},{"skinId":8680,"itemName":"Peacekeeper MK2","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":8642,"itemName":"Peacekeeper MK2","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":8651,"itemName":"Peacekeeper MK2","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":8670,"itemName":"Peacekeeper MK2","skinName":"Mudslide","itemRarity":"Common"},{"skinId":8656,"itemName":"Peacekeeper MK2","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":8647,"itemName":"Peacekeeper MK2","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":8687,"itemName":"Peacekeeper MK2","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":8669,"itemName":"Peacekeeper MK2","skinName":"Overgrown","itemRarity":"Common"},{"skinId":8694,"itemName":"Peacekeeper MK2","skinName":"Pink Python","itemRarity":"Common"},{"skinId":8645,"itemName":"Peacekeeper MK2","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":8643,"itemName":"Peacekeeper MK2","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":8700,"itemName":"Peacekeeper MK2","skinName":"Platinum","itemRarity":"Common"},{"skinId":8689,"itemName":"Peacekeeper MK2","skinName":"Python","itemRarity":"Common"},{"skinId":8690,"itemName":"Peacekeeper MK2","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":8677,"itemName":"Peacekeeper MK2","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":8641,"itemName":"Peacekeeper MK2","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":10300,"itemName":"Peacekeeper MK2","skinName":"Ripped Camo","itemRarity":"Uncommon"},{"skinId":8663,"itemName":"Peacekeeper MK2","skinName":"Ruins","itemRarity":"Common"},{"skinId":8682,"itemName":"Peacekeeper MK2","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":8668,"itemName":"Peacekeeper MK2","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":8648,"itemName":"Peacekeeper MK2","skinName":"Smoke","itemRarity":"Common"},{"skinId":8679,"itemName":"Peacekeeper MK2","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":8652,"itemName":"Peacekeeper MK2","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":8675,"itemName":"Peacekeeper MK2","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":8657,"itemName":"Peacekeeper MK2","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":8659,"itemName":"Peacekeeper MK2","skinName":"Tundra","itemRarity":"Common"},{"skinId":8660,"itemName":"Peacekeeper MK2","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":8686,"itemName":"Peacekeeper MK2","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":8685,"itemName":"Peacekeeper MK2","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":3437,"itemName":"Pharo","skinName":"Abominable","itemRarity":"Common"},{"skinId":3460,"itemName":"Pharo","skinName":"Anaconda","itemRarity":"Common"},{"skinId":3430,"itemName":"Pharo","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":3432,"itemName":"Pharo","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":3429,"itemName":"Pharo","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":3419,"itemName":"Pharo","skinName":"Asphalt","itemRarity":"Common"},{"skinId":3431,"itemName":"Pharo","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":15,"itemName":"Pharo","skinName":"Bandit","itemRarity":"Rare"},{"skinId":3418,"itemName":"Pharo","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":3457,"itemName":"Pharo","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":3443,"itemName":"Pharo","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":11503,"itemName":"Pharo","skinName":"Bootstraps","itemRarity":"Rare"},{"skinId":3069,"itemName":"Pharo","skinName":"Brushed Red","itemRarity":"Uncommon"},{"skinId":3461,"itemName":"Pharo","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":1906,"itemName":"Pharo","skinName":"Calcium Chloride","itemRarity":"Uncommon"},{"skinId":3453,"itemName":"Pharo","skinName":"Canopy","itemRarity":"Common"},{"skinId":11575,"itemName":"Pharo","skinName":"Carrion","itemRarity":"Uncommon"},{"skinId":3411,"itemName":"Pharo","skinName":"Chain Link","itemRarity":"Common"},{"skinId":3409,"itemName":"Pharo","skinName":"China Lake","itemRarity":"Common"},{"skinId":3458,"itemName":"Pharo","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":3405,"itemName":"Pharo","skinName":"Commando","itemRarity":"Common"},{"skinId":1869,"itemName":"Pharo","skinName":"Corpse Digger","itemRarity":"Uncommon"},{"skinId":3420,"itemName":"Pharo","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":6085,"itemName":"Pharo","skinName":"Cruise Missile","itemRarity":"Epic"},{"skinId":7042,"itemName":"Pharo","skinName":"Damascus","itemRarity":"Common"},{"skinId":1604,"itemName":"Pharo","skinName":"Danger Zone","itemRarity":"Rare"},{"skinId":3436,"itemName":"Pharo","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":16,"itemName":"Pharo","skinName":"Default","itemRarity":"Common"},{"skinId":3441,"itemName":"Pharo","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":3446,"itemName":"Pharo","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":3404,"itemName":"Pharo","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8515,"itemName":"Pharo","skinName":"Diamond","itemRarity":"Common"},{"skinId":3415,"itemName":"Pharo","skinName":"Dirt","itemRarity":"Common"},{"skinId":1007,"itemName":"Pharo","skinName":"Dream Crystal","itemRarity":"Legendary"},{"skinId":6547,"itemName":"Pharo","skinName":"Echolocation","itemRarity":"Epic"},{"skinId":3438,"itemName":"Pharo","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":3439,"itemName":"Pharo","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":3423,"itemName":"Pharo","skinName":"Foliage","itemRarity":"Common"},{"skinId":3426,"itemName":"Pharo","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":3463,"itemName":"Pharo","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":3462,"itemName":"Pharo","skinName":"Gecko","itemRarity":"Common"},{"skinId":3464,"itemName":"Pharo","skinName":"Gold","itemRarity":"Common"},{"skinId":3414,"itemName":"Pharo","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":3427,"itemName":"Pharo","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":3449,"itemName":"Pharo","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":3456,"itemName":"Pharo","skinName":"Komodo","itemRarity":"Common"},{"skinId":3448,"itemName":"Pharo","skinName":"Marshland","itemRarity":"Common"},{"skinId":1183,"itemName":"Pharo","skinName":"Mirage","itemRarity":"Epic"},{"skinId":3445,"itemName":"Pharo","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":3407,"itemName":"Pharo","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":3416,"itemName":"Pharo","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":3435,"itemName":"Pharo","skinName":"Mudslide","itemRarity":"Common"},{"skinId":3421,"itemName":"Pharo","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":3412,"itemName":"Pharo","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":3452,"itemName":"Pharo","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":3434,"itemName":"Pharo","skinName":"Overgrown","itemRarity":"Common"},{"skinId":10247,"itemName":"Pharo","skinName":"Paint Smear","itemRarity":"Uncommon"},{"skinId":3459,"itemName":"Pharo","skinName":"Pink Python","itemRarity":"Common"},{"skinId":3410,"itemName":"Pharo","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":3408,"itemName":"Pharo","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":3465,"itemName":"Pharo","skinName":"Platinum","itemRarity":"Common"},{"skinId":8034,"itemName":"Pharo","skinName":"Pocket Shock","itemRarity":"Uncommon"},{"skinId":3454,"itemName":"Pharo","skinName":"Python","itemRarity":"Common"},{"skinId":3455,"itemName":"Pharo","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":2898,"itemName":"Pharo","skinName":"Record Scratch","itemRarity":"Uncommon"},{"skinId":3442,"itemName":"Pharo","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":3406,"itemName":"Pharo","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":3428,"itemName":"Pharo","skinName":"Ruins","itemRarity":"Common"},{"skinId":3447,"itemName":"Pharo","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":9712,"itemName":"Pharo","skinName":"Scatter Force","itemRarity":"Rare"},{"skinId":10570,"itemName":"Pharo","skinName":"Severed","itemRarity":"Rare"},{"skinId":6151,"itemName":"Pharo","skinName":"Sewed Leather","itemRarity":"Rare"},{"skinId":3433,"itemName":"Pharo","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":2366,"itemName":"Pharo","skinName":"Sight Unseen","itemRarity":"Rare"},{"skinId":3413,"itemName":"Pharo","skinName":"Smoke","itemRarity":"Common"},{"skinId":7580,"itemName":"Pharo","skinName":"Static Electricity","itemRarity":"Rare"},{"skinId":3444,"itemName":"Pharo","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":3417,"itemName":"Pharo","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":3440,"itemName":"Pharo","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":3422,"itemName":"Pharo","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":9343,"itemName":"Pharo","skinName":"Trance","itemRarity":"Rare"},{"skinId":3424,"itemName":"Pharo","skinName":"Tundra","itemRarity":"Common"},{"skinId":2663,"itemName":"Pharo","skinName":"Turquoise","itemRarity":"Rare"},{"skinId":3425,"itemName":"Pharo","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":3451,"itemName":"Pharo","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":3450,"itemName":"Pharo","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":2332,"itemName":"Pharo","skinName":"Wrecked","itemRarity":"Rare"},{"skinId":5389,"itemName":"QQ9","skinName":"Abominable","itemRarity":"Common"},{"skinId":8016,"itemName":"QQ9","skinName":"Acid Helix","itemRarity":"Rare"},{"skinId":5412,"itemName":"QQ9","skinName":"Anaconda","itemRarity":"Common"},{"skinId":5382,"itemName":"QQ9","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":5384,"itemName":"QQ9","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":5381,"itemName":"QQ9","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":5371,"itemName":"QQ9","skinName":"Asphalt","itemRarity":"Common"},{"skinId":5383,"itemName":"QQ9","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":9212,"itemName":"QQ9","skinName":"BDU","itemRarity":"Rare"},{"skinId":7948,"itemName":"QQ9","skinName":"Black Gold","itemRarity":"Epic"},{"skinId":7311,"itemName":"QQ9","skinName":"Black Top","itemRarity":"Uncommon"},{"skinId":5370,"itemName":"QQ9","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":5409,"itemName":"QQ9","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":5395,"itemName":"QQ9","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":5413,"itemName":"QQ9","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":5405,"itemName":"QQ9","skinName":"Canopy","itemRarity":"Common"},{"skinId":5363,"itemName":"QQ9","skinName":"Chain Link","itemRarity":"Common"},{"skinId":5361,"itemName":"QQ9","skinName":"China Lake","itemRarity":"Common"},{"skinId":5410,"itemName":"QQ9","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":5357,"itemName":"QQ9","skinName":"Commando","itemRarity":"Common"},{"skinId":5372,"itemName":"QQ9","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":9709,"itemName":"QQ9","skinName":"Cyclone","itemRarity":"Epic"},{"skinId":7074,"itemName":"QQ9","skinName":"Damascus","itemRarity":"Common"},{"skinId":5388,"itemName":"QQ9","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":8998,"itemName":"QQ9","skinName":"Dark Light","itemRarity":"Rare"},{"skinId":1628,"itemName":"QQ9","skinName":"Default","itemRarity":"Common"},{"skinId":5393,"itemName":"QQ9","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":5398,"itemName":"QQ9","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":5356,"itemName":"QQ9","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8547,"itemName":"QQ9","skinName":"Diamond","itemRarity":"Common"},{"skinId":5367,"itemName":"QQ9","skinName":"Dirt","itemRarity":"Common"},{"skinId":2970,"itemName":"QQ9","skinName":"Eye Candy","itemRarity":"Epic"},{"skinId":5390,"itemName":"QQ9","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":5391,"itemName":"QQ9","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":1665,"itemName":"QQ9","skinName":"Flood","itemRarity":"Epic"},{"skinId":5375,"itemName":"QQ9","skinName":"Foliage","itemRarity":"Common"},{"skinId":5378,"itemName":"QQ9","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":5415,"itemName":"QQ9","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":5414,"itemName":"QQ9","skinName":"Gecko","itemRarity":"Common"},{"skinId":5416,"itemName":"QQ9","skinName":"Gold","itemRarity":"Common"},{"skinId":5366,"itemName":"QQ9","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":9975,"itemName":"QQ9","skinName":"Head Trauma","itemRarity":"Uncommon"},{"skinId":5379,"itemName":"QQ9","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":8288,"itemName":"QQ9","skinName":"Iridescent","itemRarity":"Rare"},{"skinId":5401,"itemName":"QQ9","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":5408,"itemName":"QQ9","skinName":"Komodo","itemRarity":"Common"},{"skinId":11487,"itemName":"QQ9","skinName":"Leather & Lead","itemRarity":"Rare"},{"skinId":7907,"itemName":"QQ9","skinName":"Lunar Tide","itemRarity":"Rare"},{"skinId":5400,"itemName":"QQ9","skinName":"Marshland","itemRarity":"Common"},{"skinId":2647,"itemName":"QQ9","skinName":"Melting Point","itemRarity":"Legendary"},{"skinId":8833,"itemName":"QQ9","skinName":"Merrymaker","itemRarity":"Epic"},{"skinId":9692,"itemName":"QQ9","skinName":"Mire","itemRarity":"Epic"},{"skinId":5397,"itemName":"QQ9","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":11216,"itemName":"QQ9","skinName":"Monkey in the Wrench","itemRarity":"Epic"},{"skinId":5359,"itemName":"QQ9","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":5368,"itemName":"QQ9","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":5387,"itemName":"QQ9","skinName":"Mudslide","itemRarity":"Common"},{"skinId":7236,"itemName":"QQ9","skinName":"Neon Grunge","itemRarity":"Epic"},{"skinId":5373,"itemName":"QQ9","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":5364,"itemName":"QQ9","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":5404,"itemName":"QQ9","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":5386,"itemName":"QQ9","skinName":"Overgrown","itemRarity":"Common"},{"skinId":8781,"itemName":"QQ9","skinName":"Permafrost","itemRarity":"Rare"},{"skinId":5411,"itemName":"QQ9","skinName":"Pink Python","itemRarity":"Common"},{"skinId":5362,"itemName":"QQ9","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":5360,"itemName":"QQ9","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":5417,"itemName":"QQ9","skinName":"Platinum","itemRarity":"Common"},{"skinId":5406,"itemName":"QQ9","skinName":"Python","itemRarity":"Common"},{"skinId":9738,"itemName":"QQ9","skinName":"Radiometer","itemRarity":"Rare"},{"skinId":5407,"itemName":"QQ9","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":8170,"itemName":"QQ9","skinName":"Red Curtain","itemRarity":"Rare"},{"skinId":5394,"itemName":"QQ9","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":5358,"itemName":"QQ9","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":5380,"itemName":"QQ9","skinName":"Ruins","itemRarity":"Common"},{"skinId":5399,"itemName":"QQ9","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":10606,"itemName":"QQ9","skinName":"Severed","itemRarity":"Rare"},{"skinId":5385,"itemName":"QQ9","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":10086,"itemName":"QQ9","skinName":"Shredded","itemRarity":"Rare"},{"skinId":11264,"itemName":"QQ9","skinName":"Sigrรบn","itemRarity":"Legendary"},{"skinId":5365,"itemName":"QQ9","skinName":"Smoke","itemRarity":"Common"},{"skinId":7307,"itemName":"QQ9","skinName":"Static Electricity","itemRarity":"Rare"},{"skinId":5396,"itemName":"QQ9","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":5369,"itemName":"QQ9","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":9698,"itemName":"QQ9","skinName":"The Numbers","itemRarity":"Uncommon"},{"skinId":5392,"itemName":"QQ9","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":5374,"itemName":"QQ9","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":2952,"itemName":"QQ9","skinName":"Trendsetter","itemRarity":"Epic"},{"skinId":5376,"itemName":"QQ9","skinName":"Tundra","itemRarity":"Common"},{"skinId":8183,"itemName":"QQ9","skinName":"Ultramarine","itemRarity":"Rare"},{"skinId":5377,"itemName":"QQ9","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":5403,"itemName":"QQ9","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":5402,"itemName":"QQ9","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":9058,"itemName":"QQ9","skinName":"Warhead","itemRarity":"Uncommon"},{"skinId":8608,"itemName":"QXR","skinName":"Abominable","itemRarity":"Common"},{"skinId":8631,"itemName":"QXR","skinName":"Anaconda","itemRarity":"Common"},{"skinId":8601,"itemName":"QXR","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":8603,"itemName":"QXR","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":8600,"itemName":"QXR","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":8590,"itemName":"QXR","skinName":"Asphalt","itemRarity":"Common"},{"skinId":8602,"itemName":"QXR","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":8589,"itemName":"QXR","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":8628,"itemName":"QXR","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":8614,"itemName":"QXR","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":11475,"itemName":"QXR","skinName":"Brushed Chrome","itemRarity":"Rare"},{"skinId":8632,"itemName":"QXR","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":8624,"itemName":"QXR","skinName":"Canopy","itemRarity":"Common"},{"skinId":8582,"itemName":"QXR","skinName":"Chain Link","itemRarity":"Common"},{"skinId":8580,"itemName":"QXR","skinName":"China Lake","itemRarity":"Common"},{"skinId":8629,"itemName":"QXR","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":8576,"itemName":"QXR","skinName":"Commando","itemRarity":"Common"},{"skinId":8591,"itemName":"QXR","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":8637,"itemName":"QXR","skinName":"Damascus","itemRarity":"Common"},{"skinId":8607,"itemName":"QXR","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":8574,"itemName":"QXR","skinName":"Default","itemRarity":"Common"},{"skinId":8612,"itemName":"QXR","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":8617,"itemName":"QXR","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":8575,"itemName":"QXR","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8638,"itemName":"QXR","skinName":"Diamond","itemRarity":"Common"},{"skinId":8586,"itemName":"QXR","skinName":"Dirt","itemRarity":"Common"},{"skinId":8609,"itemName":"QXR","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":8610,"itemName":"QXR","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":10465,"itemName":"QXR","skinName":"Flanker","itemRarity":"Epic"},{"skinId":8594,"itemName":"QXR","skinName":"Foliage","itemRarity":"Common"},{"skinId":8597,"itemName":"QXR","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":8634,"itemName":"QXR","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":8633,"itemName":"QXR","skinName":"Gecko","itemRarity":"Common"},{"skinId":8635,"itemName":"QXR","skinName":"Gold","itemRarity":"Common"},{"skinId":8585,"itemName":"QXR","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":8598,"itemName":"QXR","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":8620,"itemName":"QXR","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":8627,"itemName":"QXR","skinName":"Komodo","itemRarity":"Common"},{"skinId":8619,"itemName":"QXR","skinName":"Marshland","itemRarity":"Common"},{"skinId":8616,"itemName":"QXR","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":8578,"itemName":"QXR","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":8587,"itemName":"QXR","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":8606,"itemName":"QXR","skinName":"Mudslide","itemRarity":"Common"},{"skinId":8592,"itemName":"QXR","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":8583,"itemName":"QXR","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":8623,"itemName":"QXR","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":8605,"itemName":"QXR","skinName":"Overgrown","itemRarity":"Common"},{"skinId":8630,"itemName":"QXR","skinName":"Pink Python","itemRarity":"Common"},{"skinId":8581,"itemName":"QXR","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":8579,"itemName":"QXR","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":8636,"itemName":"QXR","skinName":"Platinum","itemRarity":"Common"},{"skinId":11645,"itemName":"QXR","skinName":"Playmaker","itemRarity":"Epic"},{"skinId":8625,"itemName":"QXR","skinName":"Python","itemRarity":"Common"},{"skinId":8626,"itemName":"QXR","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":11473,"itemName":"QXR","skinName":"Rebirth","itemRarity":"Epic"},{"skinId":8613,"itemName":"QXR","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":8577,"itemName":"QXR","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":10069,"itemName":"QXR","skinName":"Roaring Steel","itemRarity":"Epic"},{"skinId":8599,"itemName":"QXR","skinName":"Ruins","itemRarity":"Common"},{"skinId":8618,"itemName":"QXR","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":10560,"itemName":"QXR","skinName":"Scorching Sun","itemRarity":"Epic"},{"skinId":8832,"itemName":"QXR","skinName":"Secret Santa","itemRarity":"Legendary"},{"skinId":8604,"itemName":"QXR","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":10871,"itemName":"QXR","skinName":"Side Scale","itemRarity":"Rare"},{"skinId":8584,"itemName":"QXR","skinName":"Smoke","itemRarity":"Common"},{"skinId":8615,"itemName":"QXR","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":8588,"itemName":"QXR","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":8611,"itemName":"QXR","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":8593,"itemName":"QXR","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":10879,"itemName":"QXR","skinName":"Tsundere","itemRarity":"Epic"},{"skinId":8595,"itemName":"QXR","skinName":"Tundra","itemRarity":"Common"},{"skinId":8596,"itemName":"QXR","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":8622,"itemName":"QXR","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":8621,"itemName":"QXR","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":781,"itemName":"RPD","skinName":"Abnormality","itemRarity":"Uncommon"},{"skinId":4526,"itemName":"RPD","skinName":"Abominable","itemRarity":"Common"},{"skinId":8358,"itemName":"RPD","skinName":"Alarm","itemRarity":"Uncommon"},{"skinId":4549,"itemName":"RPD","skinName":"Anaconda","itemRarity":"Common"},{"skinId":4519,"itemName":"RPD","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":4521,"itemName":"RPD","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":2564,"itemName":"RPD","skinName":"Arctic Digital","itemRarity":"Uncommon"},{"skinId":4518,"itemName":"RPD","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":359,"itemName":"RPD","skinName":"Ashen Viper","itemRarity":"Rare"},{"skinId":4508,"itemName":"RPD","skinName":"Asphalt","itemRarity":"Common"},{"skinId":4520,"itemName":"RPD","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":4507,"itemName":"RPD","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":4546,"itemName":"RPD","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":4532,"itemName":"RPD","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":8407,"itemName":"RPD","skinName":"Bronze Arrow","itemRarity":"Rare"},{"skinId":1003,"itemName":"RPD","skinName":"Brushed Green","itemRarity":"Uncommon"},{"skinId":4550,"itemName":"RPD","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":4542,"itemName":"RPD","skinName":"Canopy","itemRarity":"Common"},{"skinId":6280,"itemName":"RPD","skinName":"Carnivorous","itemRarity":"Epic"},{"skinId":1598,"itemName":"RPD","skinName":"Caution","itemRarity":"Uncommon"},{"skinId":4500,"itemName":"RPD","skinName":"Chain Link","itemRarity":"Common"},{"skinId":4498,"itemName":"RPD","skinName":"China Lake","itemRarity":"Common"},{"skinId":4547,"itemName":"RPD","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":668,"itemName":"RPD","skinName":"Color Burst","itemRarity":"Rare"},{"skinId":4494,"itemName":"RPD","skinName":"Commando","itemRarity":"Common"},{"skinId":146,"itemName":"RPD","skinName":"Copperhead","itemRarity":"Rare"},{"skinId":7654,"itemName":"RPD","skinName":"Court Blue","itemRarity":"Uncommon"},{"skinId":8138,"itemName":"RPD","skinName":"Crackle","itemRarity":"Uncommon"},{"skinId":4509,"itemName":"RPD","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":844,"itemName":"RPD","skinName":"Cyberspace","itemRarity":"Epic"},{"skinId":7060,"itemName":"RPD","skinName":"Damascus","itemRarity":"Common"},{"skinId":4525,"itemName":"RPD","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":441,"itemName":"RPD","skinName":"Default","itemRarity":"Common"},{"skinId":4530,"itemName":"RPD","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":1958,"itemName":"RPD","skinName":"Desert Hex","itemRarity":"Uncommon"},{"skinId":4535,"itemName":"RPD","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":324,"itemName":"RPD","skinName":"Desert Snake","itemRarity":"Uncommon"},{"skinId":4493,"itemName":"RPD","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8533,"itemName":"RPD","skinName":"Diamond","itemRarity":"Common"},{"skinId":4504,"itemName":"RPD","skinName":"Dirt","itemRarity":"Common"},{"skinId":6065,"itemName":"RPD","skinName":"Eagle Feather","itemRarity":"Uncommon"},{"skinId":780,"itemName":"RPD","skinName":"Easter '20","itemRarity":"Uncommon"},{"skinId":4527,"itemName":"RPD","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":125,"itemName":"RPD","skinName":"Fashion Purple","itemRarity":"Uncommon"},{"skinId":4528,"itemName":"RPD","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":8851,"itemName":"RPD","skinName":"Festive","itemRarity":"Epic"},{"skinId":4512,"itemName":"RPD","skinName":"Foliage","itemRarity":"Common"},{"skinId":4515,"itemName":"RPD","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":4552,"itemName":"RPD","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":4551,"itemName":"RPD","skinName":"Gecko","itemRarity":"Common"},{"skinId":4553,"itemName":"RPD","skinName":"Gold","itemRarity":"Common"},{"skinId":7706,"itemName":"RPD","skinName":"Green Terror","itemRarity":"Rare"},{"skinId":2606,"itemName":"RPD","skinName":"Grime","itemRarity":"Uncommon"},{"skinId":4503,"itemName":"RPD","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":2235,"itemName":"RPD","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":4516,"itemName":"RPD","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":2233,"itemName":"RPD","skinName":"Irradiated Amethyst","itemRarity":"Rare"},{"skinId":957,"itemName":"RPD","skinName":"Jack Frost","itemRarity":"Uncommon"},{"skinId":610,"itemName":"RPD","skinName":"Jingle Bells","itemRarity":"Uncommon"},{"skinId":4538,"itemName":"RPD","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":4545,"itemName":"RPD","skinName":"Komodo","itemRarity":"Common"},{"skinId":10169,"itemName":"RPD","skinName":"Lingering","itemRarity":"Uncommon"},{"skinId":1239,"itemName":"RPD","skinName":"Magic Bull","itemRarity":"Rare"},{"skinId":9624,"itemName":"RPD","skinName":"Mainframe","itemRarity":"Epic"},{"skinId":1308,"itemName":"RPD","skinName":"Maple Leaves","itemRarity":"Uncommon"},{"skinId":4537,"itemName":"RPD","skinName":"Marshland","itemRarity":"Common"},{"skinId":621,"itemName":"RPD","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":2234,"itemName":"RPD","skinName":"Mettle","itemRarity":"Uncommon"},{"skinId":74,"itemName":"RPD","skinName":"Mirage","itemRarity":"Epic"},{"skinId":4534,"itemName":"RPD","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":4496,"itemName":"RPD","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":4505,"itemName":"RPD","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":4524,"itemName":"RPD","skinName":"Mudslide","itemRarity":"Common"},{"skinId":4510,"itemName":"RPD","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":4501,"itemName":"RPD","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":4541,"itemName":"RPD","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":5991,"itemName":"RPD","skinName":"Old News","itemRarity":"Uncommon"},{"skinId":87,"itemName":"RPD","skinName":"Orbit","itemRarity":"Epic"},{"skinId":4523,"itemName":"RPD","skinName":"Overgrown","itemRarity":"Common"},{"skinId":6628,"itemName":"RPD","skinName":"Pelt","itemRarity":"Uncommon"},{"skinId":4548,"itemName":"RPD","skinName":"Pink Python","itemRarity":"Common"},{"skinId":4499,"itemName":"RPD","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":4497,"itemName":"RPD","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":4554,"itemName":"RPD","skinName":"Platinum","itemRarity":"Common"},{"skinId":11596,"itemName":"RPD","skinName":"Powder Bomb","itemRarity":"Rare"},{"skinId":2546,"itemName":"RPD","skinName":"Practical Joker","itemRarity":"Legendary"},{"skinId":4543,"itemName":"RPD","skinName":"Python","itemRarity":"Common"},{"skinId":4544,"itemName":"RPD","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":2901,"itemName":"RPD","skinName":"Record Scratch","itemRarity":"Uncommon"},{"skinId":4531,"itemName":"RPD","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":1618,"itemName":"RPD","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":4495,"itemName":"RPD","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":4517,"itemName":"RPD","skinName":"Ruins","itemRarity":"Common"},{"skinId":10062,"itemName":"RPD","skinName":"Ruptured Steel","itemRarity":"Rare"},{"skinId":4536,"itemName":"RPD","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":153,"itemName":"RPD","skinName":"Sandbox","itemRarity":"Uncommon"},{"skinId":10577,"itemName":"RPD","skinName":"Severed","itemRarity":"Rare"},{"skinId":4522,"itemName":"RPD","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":10940,"itemName":"RPD","skinName":"Side Scale","itemRarity":"Rare"},{"skinId":2260,"itemName":"RPD","skinName":"Slate","itemRarity":"Uncommon"},{"skinId":4502,"itemName":"RPD","skinName":"Smoke","itemRarity":"Common"},{"skinId":9076,"itemName":"RPD","skinName":"Snowblind","itemRarity":"Rare"},{"skinId":4533,"itemName":"RPD","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":4506,"itemName":"RPD","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":6964,"itemName":"RPD","skinName":"Taped Flecktarn","itemRarity":"Rare"},{"skinId":4529,"itemName":"RPD","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":11208,"itemName":"RPD","skinName":"Topography","itemRarity":"Uncommon"},{"skinId":4511,"itemName":"RPD","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":4513,"itemName":"RPD","skinName":"Tundra","itemRarity":"Common"},{"skinId":6664,"itemName":"RPD","skinName":"Undergrowth","itemRarity":"Uncommon"},{"skinId":4514,"itemName":"RPD","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":2996,"itemName":"RPD","skinName":"Urban Orange","itemRarity":"Uncommon"},{"skinId":4540,"itemName":"RPD","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":4539,"itemName":"RPD","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":9773,"itemName":"RPD","skinName":"Warp","itemRarity":"Uncommon"},{"skinId":1223,"itemName":"RPD","skinName":"Werewolf Fighter","itemRarity":"Epic"},{"skinId":23,"itemName":"RPD","skinName":"Western Sunset","itemRarity":"Uncommon"},{"skinId":1802,"itemName":"RPD","skinName":"White Lies","itemRarity":"Uncommon"},{"skinId":1557,"itemName":"RPD","skinName":"Yellow Camo","itemRarity":"Uncommon"},{"skinId":3127,"itemName":"RUS-79U","skinName":"Abominable","itemRarity":"Common"},{"skinId":473,"itemName":"RUS-79U","skinName":"Abomination","itemRarity":"Rare"},{"skinId":3150,"itemName":"RUS-79U","skinName":"Anaconda","itemRarity":"Common"},{"skinId":3120,"itemName":"RUS-79U","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":3122,"itemName":"RUS-79U","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":2363,"itemName":"RUS-79U","skinName":"Arctic Digital","itemRarity":"Uncommon"},{"skinId":3119,"itemName":"RUS-79U","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":11535,"itemName":"RUS-79U","skinName":"Artisan","itemRarity":"Rare"},{"skinId":3109,"itemName":"RUS-79U","skinName":"Asphalt","itemRarity":"Common"},{"skinId":1227,"itemName":"RUS-79U","skinName":"Aurora Borealis","itemRarity":"Rare"},{"skinId":3121,"itemName":"RUS-79U","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":1643,"itemName":"RUS-79U","skinName":"Barricade","itemRarity":"Epic"},{"skinId":7398,"itemName":"RUS-79U","skinName":"Black Knight","itemRarity":"Epic"},{"skinId":3108,"itemName":"RUS-79U","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":3147,"itemName":"RUS-79U","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":3133,"itemName":"RUS-79U","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":9046,"itemName":"RUS-79U","skinName":"Bomb Baby","itemRarity":"Epic"},{"skinId":8150,"itemName":"RUS-79U","skinName":"Bronze Arrow","itemRarity":"Rare"},{"skinId":11474,"itemName":"RUS-79U","skinName":"Brushed Chrome","itemRarity":"Rare"},{"skinId":11551,"itemName":"RUS-79U","skinName":"Buckles & Spurs","itemRarity":"Rare"},{"skinId":3151,"itemName":"RUS-79U","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":3143,"itemName":"RUS-79U","skinName":"Canopy","itemRarity":"Common"},{"skinId":881,"itemName":"RUS-79U","skinName":"Cardboard","itemRarity":"Epic"},{"skinId":3101,"itemName":"RUS-79U","skinName":"Chain Link","itemRarity":"Common"},{"skinId":3099,"itemName":"RUS-79U","skinName":"China Lake","itemRarity":"Common"},{"skinId":3148,"itemName":"RUS-79U","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":3095,"itemName":"RUS-79U","skinName":"Commando","itemRarity":"Common"},{"skinId":7656,"itemName":"RUS-79U","skinName":"Court Blue","itemRarity":"Uncommon"},{"skinId":3110,"itemName":"RUS-79U","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7037,"itemName":"RUS-79U","skinName":"Damascus","itemRarity":"Common"},{"skinId":3126,"itemName":"RUS-79U","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":138,"itemName":"RUS-79U","skinName":"Dawn","itemRarity":"Rare"},{"skinId":444,"itemName":"RUS-79U","skinName":"Default","itemRarity":"Common"},{"skinId":3131,"itemName":"RUS-79U","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":3136,"itemName":"RUS-79U","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":60,"itemName":"RUS-79U","skinName":"Desert Snake","itemRarity":"Uncommon"},{"skinId":3094,"itemName":"RUS-79U","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":2340,"itemName":"RUS-79U","skinName":"Desperate Measures","itemRarity":"Rare"},{"skinId":8510,"itemName":"RUS-79U","skinName":"Diamond","itemRarity":"Common"},{"skinId":3105,"itemName":"RUS-79U","skinName":"Dirt","itemRarity":"Common"},{"skinId":10235,"itemName":"RUS-79U","skinName":"Dusk","itemRarity":"Epic"},{"skinId":76,"itemName":"RUS-79U","skinName":"Dustkicker","itemRarity":"Legendary"},{"skinId":794,"itemName":"RUS-79U","skinName":"Easter '20","itemRarity":"Uncommon"},{"skinId":3128,"itemName":"RUS-79U","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":3129,"itemName":"RUS-79U","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":40,"itemName":"RUS-79U","skinName":"Flowing Bronze","itemRarity":"Rare"},{"skinId":3113,"itemName":"RUS-79U","skinName":"Foliage","itemRarity":"Common"},{"skinId":6872,"itemName":"RUS-79U","skinName":"Forest Fabric","itemRarity":"Uncommon"},{"skinId":2029,"itemName":"RUS-79U","skinName":"Frostbite","itemRarity":"Uncommon"},{"skinId":3116,"itemName":"RUS-79U","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":3153,"itemName":"RUS-79U","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":3152,"itemName":"RUS-79U","skinName":"Gecko","itemRarity":"Common"},{"skinId":2794,"itemName":"RUS-79U","skinName":"Glacier","itemRarity":"Rare"},{"skinId":6354,"itemName":"RUS-79U","skinName":"Going Dark","itemRarity":"Rare"},{"skinId":3154,"itemName":"RUS-79U","skinName":"Gold","itemRarity":"Common"},{"skinId":10000,"itemName":"RUS-79U","skinName":"Golden Age","itemRarity":"Rare"},{"skinId":1470,"itemName":"RUS-79U","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":3104,"itemName":"RUS-79U","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":846,"itemName":"RUS-79U","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":1445,"itemName":"RUS-79U","skinName":"Holiday Ribbons","itemRarity":"Uncommon"},{"skinId":3117,"itemName":"RUS-79U","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":8817,"itemName":"RUS-79U","skinName":"Insulated","itemRarity":"Rare"},{"skinId":10549,"itemName":"RUS-79U","skinName":"Karuta","itemRarity":"Epic"},{"skinId":3139,"itemName":"RUS-79U","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":3146,"itemName":"RUS-79U","skinName":"Komodo","itemRarity":"Common"},{"skinId":8740,"itemName":"RUS-79U","skinName":"Labyrinth","itemRarity":"Rare"},{"skinId":9628,"itemName":"RUS-79U","skinName":"Liquid Mercury","itemRarity":"Rare"},{"skinId":980,"itemName":"RUS-79U","skinName":"Magic Bull","itemRarity":"Rare"},{"skinId":10494,"itemName":"RUS-79U","skinName":"Maple Leaves","itemRarity":"Uncommon"},{"skinId":953,"itemName":"RUS-79U","skinName":"Mardi Gras","itemRarity":"Rare"},{"skinId":2052,"itemName":"RUS-79U","skinName":"Marine","itemRarity":"Rare"},{"skinId":3138,"itemName":"RUS-79U","skinName":"Marshland","itemRarity":"Common"},{"skinId":2834,"itemName":"RUS-79U","skinName":"Metal Note","itemRarity":"Rare"},{"skinId":1506,"itemName":"RUS-79U","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":3135,"itemName":"RUS-79U","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":2478,"itemName":"RUS-79U","skinName":"Moonstone","itemRarity":"Epic"},{"skinId":3097,"itemName":"RUS-79U","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":3106,"itemName":"RUS-79U","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":3125,"itemName":"RUS-79U","skinName":"Mudslide","itemRarity":"Common"},{"skinId":7619,"itemName":"RUS-79U","skinName":"Neon Army","itemRarity":"Uncommon"},{"skinId":3111,"itemName":"RUS-79U","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":1314,"itemName":"RUS-79U","skinName":"Neon Tiger","itemRarity":"Uncommon"},{"skinId":3102,"itemName":"RUS-79U","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":3142,"itemName":"RUS-79U","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":8189,"itemName":"RUS-79U","skinName":"Nine Round","itemRarity":"Rare"},{"skinId":2426,"itemName":"RUS-79U","skinName":"Nuclear Fallout","itemRarity":"Epic"},{"skinId":2949,"itemName":"RUS-79U","skinName":"Obstacle","itemRarity":"Rare"},{"skinId":3124,"itemName":"RUS-79U","skinName":"Overgrown","itemRarity":"Common"},{"skinId":6339,"itemName":"RUS-79U","skinName":"Pelt","itemRarity":"Uncommon"},{"skinId":3149,"itemName":"RUS-79U","skinName":"Pink Python","itemRarity":"Common"},{"skinId":3100,"itemName":"RUS-79U","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":3098,"itemName":"RUS-79U","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":3155,"itemName":"RUS-79U","skinName":"Platinum","itemRarity":"Common"},{"skinId":11648,"itemName":"RUS-79U","skinName":"Playmaker","itemRarity":"Epic"},{"skinId":8057,"itemName":"RUS-79U","skinName":"Purple Geode","itemRarity":"Uncommon"},{"skinId":8195,"itemName":"RUS-79U","skinName":"Purple Prism","itemRarity":"Rare"},{"skinId":3144,"itemName":"RUS-79U","skinName":"Python","itemRarity":"Common"},{"skinId":3145,"itemName":"RUS-79U","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":3132,"itemName":"RUS-79U","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":2201,"itemName":"RUS-79U","skinName":"Reindeer","itemRarity":"Uncommon"},{"skinId":121,"itemName":"RUS-79U","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":3096,"itemName":"RUS-79U","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":3118,"itemName":"RUS-79U","skinName":"Ruins","itemRarity":"Common"},{"skinId":3137,"itemName":"RUS-79U","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":9721,"itemName":"RUS-79U","skinName":"Screen Tear","itemRarity":"Uncommon"},{"skinId":3123,"itemName":"RUS-79U","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":7407,"itemName":"RUS-79U","skinName":"Sleight of Hand","itemRarity":"Rare"},{"skinId":3103,"itemName":"RUS-79U","skinName":"Smoke","itemRarity":"Common"},{"skinId":798,"itemName":"RUS-79U","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":11615,"itemName":"RUS-79U","skinName":"Steel Blue","itemRarity":"Epic"},{"skinId":8378,"itemName":"RUS-79U","skinName":"Strafing Run","itemRarity":"Epic"},{"skinId":2549,"itemName":"RUS-79U","skinName":"Stream","itemRarity":"Uncommon"},{"skinId":5966,"itemName":"RUS-79U","skinName":"Strongbox","itemRarity":"Rare"},{"skinId":3134,"itemName":"RUS-79U","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":3107,"itemName":"RUS-79U","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":6510,"itemName":"RUS-79U","skinName":"Taped Flecktarn","itemRarity":"Rare"},{"skinId":3130,"itemName":"RUS-79U","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":3112,"itemName":"RUS-79U","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":8755,"itemName":"RUS-79U","skinName":"Troika","itemRarity":"Epic"},{"skinId":3114,"itemName":"RUS-79U","skinName":"Tundra","itemRarity":"Common"},{"skinId":3115,"itemName":"RUS-79U","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":494,"itemName":"RUS-79U","skinName":"Viking","itemRarity":"Epic"},{"skinId":11621,"itemName":"RUS-79U","skinName":"Vine Growth","itemRarity":"Rare"},{"skinId":3141,"itemName":"RUS-79U","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":3140,"itemName":"RUS-79U","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":1801,"itemName":"RUS-79U","skinName":"White Lies","itemRarity":"Uncommon"},{"skinId":11415,"itemName":"RUS-79U","skinName":"Wretched","itemRarity":"Epic"},{"skinId":795,"itemName":"RUS-79U","skinName":"Yellow Snow","itemRarity":"Uncommon"},{"skinId":7887,"itemName":"RUS-79U","skinName":"ZX 7000","itemRarity":"Legendary"},{"skinId":5327,"itemName":"Razorback","skinName":"Abominable","itemRarity":"Common"},{"skinId":5350,"itemName":"Razorback","skinName":"Anaconda","itemRarity":"Common"},{"skinId":5320,"itemName":"Razorback","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":7216,"itemName":"Razorback","skinName":"Anniversary","itemRarity":"Rare"},{"skinId":5322,"itemName":"Razorback","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":5319,"itemName":"Razorback","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":5309,"itemName":"Razorback","skinName":"Asphalt","itemRarity":"Common"},{"skinId":9392,"itemName":"Razorback","skinName":"Aurora","itemRarity":"Rare"},{"skinId":5321,"itemName":"Razorback","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":5308,"itemName":"Razorback","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":5347,"itemName":"Razorback","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":5333,"itemName":"Razorback","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":11656,"itemName":"Razorback","skinName":"Boreal Aegis","itemRarity":"Legendary"},{"skinId":5351,"itemName":"Razorback","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":5343,"itemName":"Razorback","skinName":"Canopy","itemRarity":"Common"},{"skinId":5301,"itemName":"Razorback","skinName":"Chain Link","itemRarity":"Common"},{"skinId":5299,"itemName":"Razorback","skinName":"China Lake","itemRarity":"Common"},{"skinId":5348,"itemName":"Razorback","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":5295,"itemName":"Razorback","skinName":"Commando","itemRarity":"Common"},{"skinId":978,"itemName":"Razorback","skinName":"Cosmos","itemRarity":"Epic"},{"skinId":10793,"itemName":"Razorback","skinName":"Crane Style","itemRarity":"Uncommon"},{"skinId":5310,"itemName":"Razorback","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7073,"itemName":"Razorback","skinName":"Damascus","itemRarity":"Common"},{"skinId":5326,"itemName":"Razorback","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":2236,"itemName":"Razorback","skinName":"Dark Matter","itemRarity":"Epic"},{"skinId":6083,"itemName":"Razorback","skinName":"Default","itemRarity":"Common"},{"skinId":5331,"itemName":"Razorback","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":5336,"itemName":"Razorback","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":5294,"itemName":"Razorback","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8546,"itemName":"Razorback","skinName":"Diamond","itemRarity":"Common"},{"skinId":5305,"itemName":"Razorback","skinName":"Dirt","itemRarity":"Common"},{"skinId":2992,"itemName":"Razorback","skinName":"Eagle Feather","itemRarity":"Uncommon"},{"skinId":5328,"itemName":"Razorback","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":5329,"itemName":"Razorback","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":9636,"itemName":"Razorback","skinName":"Fiber Ray","itemRarity":"Uncommon"},{"skinId":5313,"itemName":"Razorback","skinName":"Foliage","itemRarity":"Common"},{"skinId":6755,"itemName":"Razorback","skinName":"Freight Train","itemRarity":"Rare"},{"skinId":5316,"itemName":"Razorback","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":5353,"itemName":"Razorback","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":5352,"itemName":"Razorback","skinName":"Gecko","itemRarity":"Common"},{"skinId":5354,"itemName":"Razorback","skinName":"Gold","itemRarity":"Common"},{"skinId":5304,"itemName":"Razorback","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":5317,"itemName":"Razorback","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":11634,"itemName":"Razorback","skinName":"Iron Hunter","itemRarity":"Rare"},{"skinId":5339,"itemName":"Razorback","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":5346,"itemName":"Razorback","skinName":"Komodo","itemRarity":"Common"},{"skinId":9364,"itemName":"Razorback","skinName":"Light Show","itemRarity":"Uncommon"},{"skinId":5338,"itemName":"Razorback","skinName":"Marshland","itemRarity":"Common"},{"skinId":5335,"itemName":"Razorback","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":1813,"itemName":"Razorback","skinName":"Monster Green","itemRarity":"Uncommon"},{"skinId":5297,"itemName":"Razorback","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":5306,"itemName":"Razorback","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":5325,"itemName":"Razorback","skinName":"Mudslide","itemRarity":"Common"},{"skinId":9071,"itemName":"Razorback","skinName":"Necessary Diplomacy","itemRarity":"Legendary"},{"skinId":5311,"itemName":"Razorback","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":5302,"itemName":"Razorback","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":5342,"itemName":"Razorback","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":8421,"itemName":"Razorback","skinName":"Noir","itemRarity":"Epic"},{"skinId":5324,"itemName":"Razorback","skinName":"Overgrown","itemRarity":"Common"},{"skinId":10820,"itemName":"Razorback","skinName":"Parasol","itemRarity":"Rare"},{"skinId":10024,"itemName":"Razorback","skinName":"Phantom Limb","itemRarity":"Rare"},{"skinId":5349,"itemName":"Razorback","skinName":"Pink Python","itemRarity":"Common"},{"skinId":5300,"itemName":"Razorback","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":5298,"itemName":"Razorback","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":5355,"itemName":"Razorback","skinName":"Platinum","itemRarity":"Common"},{"skinId":5344,"itemName":"Razorback","skinName":"Python","itemRarity":"Common"},{"skinId":5345,"itemName":"Razorback","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":5332,"itemName":"Razorback","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":5296,"itemName":"Razorback","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":8172,"itemName":"Razorback","skinName":"Ruby","itemRarity":"Epic"},{"skinId":5318,"itemName":"Razorback","skinName":"Ruins","itemRarity":"Common"},{"skinId":5337,"itemName":"Razorback","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":8186,"itemName":"Razorback","skinName":"Sapphire","itemRarity":"Epic"},{"skinId":2993,"itemName":"Razorback","skinName":"Sewed Snake","itemRarity":"Rare"},{"skinId":5323,"itemName":"Razorback","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":5303,"itemName":"Razorback","skinName":"Smoke","itemRarity":"Common"},{"skinId":11406,"itemName":"Razorback","skinName":"Stirrup","itemRarity":"Epic"},{"skinId":5334,"itemName":"Razorback","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":5307,"itemName":"Razorback","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":5330,"itemName":"Razorback","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":5312,"itemName":"Razorback","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":5314,"itemName":"Razorback","skinName":"Tundra","itemRarity":"Common"},{"skinId":5315,"itemName":"Razorback","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":10137,"itemName":"Razorback","skinName":"Vagabond","itemRarity":"Epic"},{"skinId":5341,"itemName":"Razorback","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":5340,"itemName":"Razorback","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":7470,"itemName":"Razorback","skinName":"Wicked Whisper","itemRarity":"Epic"},{"skinId":8709,"itemName":"Razorback","skinName":"Winterwood","itemRarity":"Rare"},{"skinId":6189,"itemName":"Razorback","skinName":"Wrath Black & Gold","itemRarity":"Epic"},{"skinId":10684,"itemName":"Renetti","skinName":"Abominable","itemRarity":"Common"},{"skinId":10707,"itemName":"Renetti","skinName":"Anaconda","itemRarity":"Common"},{"skinId":10677,"itemName":"Renetti","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":10679,"itemName":"Renetti","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":10676,"itemName":"Renetti","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":10666,"itemName":"Renetti","skinName":"Asphalt","itemRarity":"Common"},{"skinId":10678,"itemName":"Renetti","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":10665,"itemName":"Renetti","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":10704,"itemName":"Renetti","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":10690,"itemName":"Renetti","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":10708,"itemName":"Renetti","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":10700,"itemName":"Renetti","skinName":"Canopy","itemRarity":"Common"},{"skinId":10658,"itemName":"Renetti","skinName":"Chain Link","itemRarity":"Common"},{"skinId":10656,"itemName":"Renetti","skinName":"China Lake","itemRarity":"Common"},{"skinId":10705,"itemName":"Renetti","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":10652,"itemName":"Renetti","skinName":"Commando","itemRarity":"Common"},{"skinId":10667,"itemName":"Renetti","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":10713,"itemName":"Renetti","skinName":"Damascus","itemRarity":"Common"},{"skinId":10683,"itemName":"Renetti","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":10537,"itemName":"Renetti","skinName":"Default","itemRarity":"Common"},{"skinId":10688,"itemName":"Renetti","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":10693,"itemName":"Renetti","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":10651,"itemName":"Renetti","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":10714,"itemName":"Renetti","skinName":"Diamond","itemRarity":"Common"},{"skinId":10662,"itemName":"Renetti","skinName":"Dirt","itemRarity":"Common"},{"skinId":10685,"itemName":"Renetti","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":11260,"itemName":"Renetti","skinName":"Fenrir","itemRarity":"Epic"},{"skinId":10686,"itemName":"Renetti","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":10670,"itemName":"Renetti","skinName":"Foliage","itemRarity":"Common"},{"skinId":10673,"itemName":"Renetti","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":10710,"itemName":"Renetti","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":10709,"itemName":"Renetti","skinName":"Gecko","itemRarity":"Common"},{"skinId":10711,"itemName":"Renetti","skinName":"Gold","itemRarity":"Common"},{"skinId":10661,"itemName":"Renetti","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":10674,"itemName":"Renetti","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":10696,"itemName":"Renetti","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":10703,"itemName":"Renetti","skinName":"Komodo","itemRarity":"Common"},{"skinId":10695,"itemName":"Renetti","skinName":"Marshland","itemRarity":"Common"},{"skinId":11057,"itemName":"Renetti","skinName":"Metal Phantom","itemRarity":"Legendary"},{"skinId":10692,"itemName":"Renetti","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":10654,"itemName":"Renetti","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":10663,"itemName":"Renetti","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":10682,"itemName":"Renetti","skinName":"Mudslide","itemRarity":"Common"},{"skinId":10668,"itemName":"Renetti","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":10659,"itemName":"Renetti","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":10699,"itemName":"Renetti","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":10681,"itemName":"Renetti","skinName":"Overgrown","itemRarity":"Common"},{"skinId":10706,"itemName":"Renetti","skinName":"Pink Python","itemRarity":"Common"},{"skinId":10657,"itemName":"Renetti","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":10655,"itemName":"Renetti","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":10712,"itemName":"Renetti","skinName":"Platinum","itemRarity":"Common"},{"skinId":10701,"itemName":"Renetti","skinName":"Python","itemRarity":"Common"},{"skinId":10702,"itemName":"Renetti","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":10689,"itemName":"Renetti","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":10653,"itemName":"Renetti","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":10675,"itemName":"Renetti","skinName":"Ruins","itemRarity":"Common"},{"skinId":10694,"itemName":"Renetti","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":10680,"itemName":"Renetti","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":10660,"itemName":"Renetti","skinName":"Smoke","itemRarity":"Common"},{"skinId":11218,"itemName":"Renetti","skinName":"Survival Essential","itemRarity":"Epic"},{"skinId":10691,"itemName":"Renetti","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":10664,"itemName":"Renetti","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":10687,"itemName":"Renetti","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":10669,"itemName":"Renetti","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":10671,"itemName":"Renetti","skinName":"Tundra","itemRarity":"Common"},{"skinId":10672,"itemName":"Renetti","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":10698,"itemName":"Renetti","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":10697,"itemName":"Renetti","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":4650,"itemName":"S36","skinName":"Abominable","itemRarity":"Common"},{"skinId":4673,"itemName":"S36","skinName":"Anaconda","itemRarity":"Common"},{"skinId":4643,"itemName":"S36","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":4645,"itemName":"S36","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":4642,"itemName":"S36","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":4632,"itemName":"S36","skinName":"Asphalt","itemRarity":"Common"},{"skinId":4644,"itemName":"S36","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":4631,"itemName":"S36","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":4670,"itemName":"S36","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":4656,"itemName":"S36","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":513,"itemName":"S36","skinName":"Brambles","itemRarity":"Rare"},{"skinId":3073,"itemName":"S36","skinName":"Brushed Red","itemRarity":"Uncommon"},{"skinId":342,"itemName":"S36","skinName":"Brushed Steel","itemRarity":"Rare"},{"skinId":11429,"itemName":"S36","skinName":"Buckskin","itemRarity":"Rare"},{"skinId":6165,"itemName":"S36","skinName":"Bullet Point","itemRarity":"Uncommon"},{"skinId":4674,"itemName":"S36","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":1905,"itemName":"S36","skinName":"Calcium Chloride","itemRarity":"Uncommon"},{"skinId":4666,"itemName":"S36","skinName":"Canopy","itemRarity":"Common"},{"skinId":11735,"itemName":"S36","skinName":"Carrion","itemRarity":"Uncommon"},{"skinId":4624,"itemName":"S36","skinName":"Chain Link","itemRarity":"Common"},{"skinId":4622,"itemName":"S36","skinName":"China Lake","itemRarity":"Common"},{"skinId":4671,"itemName":"S36","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":4618,"itemName":"S36","skinName":"Commando","itemRarity":"Common"},{"skinId":4633,"itemName":"S36","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":10534,"itemName":"S36","skinName":"Cumulus","itemRarity":"Uncommon"},{"skinId":7062,"itemName":"S36","skinName":"Damascus","itemRarity":"Common"},{"skinId":4649,"itemName":"S36","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":249,"itemName":"S36","skinName":"Deep Shark","itemRarity":"Rare"},{"skinId":413,"itemName":"S36","skinName":"Default","itemRarity":"Common"},{"skinId":4654,"itemName":"S36","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":4659,"itemName":"S36","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":4617,"itemName":"S36","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":2383,"itemName":"S36","skinName":"Desperate Measures","itemRarity":"Rare"},{"skinId":8535,"itemName":"S36","skinName":"Diamond","itemRarity":"Common"},{"skinId":4628,"itemName":"S36","skinName":"Dirt","itemRarity":"Common"},{"skinId":2998,"itemName":"S36","skinName":"Dive Bomb","itemRarity":"Epic"},{"skinId":2237,"itemName":"S36","skinName":"Evil Clown","itemRarity":"Rare"},{"skinId":4651,"itemName":"S36","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":4652,"itemName":"S36","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":9052,"itemName":"S36","skinName":"Fission","itemRarity":"Rare"},{"skinId":1847,"itemName":"S36","skinName":"Flesh Bite","itemRarity":"Uncommon"},{"skinId":4636,"itemName":"S36","skinName":"Foliage","itemRarity":"Common"},{"skinId":4639,"itemName":"S36","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":4676,"itemName":"S36","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":4675,"itemName":"S36","skinName":"Gecko","itemRarity":"Common"},{"skinId":4677,"itemName":"S36","skinName":"Gold","itemRarity":"Common"},{"skinId":10785,"itemName":"S36","skinName":"Great Wave","itemRarity":"Rare"},{"skinId":1330,"itemName":"S36","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":4627,"itemName":"S36","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":1228,"itemName":"S36","skinName":"Headless Rider","itemRarity":"Rare"},{"skinId":7315,"itemName":"S36","skinName":"Heartbreaker","itemRarity":"Epic"},{"skinId":1230,"itemName":"S36","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":457,"itemName":"S36","skinName":"Heavy Duty","itemRarity":"Epic"},{"skinId":4640,"itemName":"S36","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":6615,"itemName":"S36","skinName":"Iridescent","itemRarity":"Rare"},{"skinId":4662,"itemName":"S36","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":4669,"itemName":"S36","skinName":"Komodo","itemRarity":"Common"},{"skinId":7326,"itemName":"S36","skinName":"Lovestruck","itemRarity":"Rare"},{"skinId":1015,"itemName":"S36","skinName":"Magic Eye","itemRarity":"Rare"},{"skinId":4661,"itemName":"S36","skinName":"Marshland","itemRarity":"Common"},{"skinId":1512,"itemName":"S36","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":4658,"itemName":"S36","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":4620,"itemName":"S36","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":4629,"itemName":"S36","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":6030,"itemName":"S36","skinName":"Moss Rock","itemRarity":"Uncommon"},{"skinId":4648,"itemName":"S36","skinName":"Mudslide","itemRarity":"Common"},{"skinId":4634,"itemName":"S36","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":4625,"itemName":"S36","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":4665,"itemName":"S36","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":4647,"itemName":"S36","skinName":"Overgrown","itemRarity":"Common"},{"skinId":954,"itemName":"S36","skinName":"Phobos","itemRarity":"Legendary"},{"skinId":4672,"itemName":"S36","skinName":"Pink Python","itemRarity":"Common"},{"skinId":4623,"itemName":"S36","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":4621,"itemName":"S36","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":4678,"itemName":"S36","skinName":"Platinum","itemRarity":"Common"},{"skinId":8032,"itemName":"S36","skinName":"Pocket Shock","itemRarity":"Uncommon"},{"skinId":6719,"itemName":"S36","skinName":"Purple Geode","itemRarity":"Uncommon"},{"skinId":4667,"itemName":"S36","skinName":"Python","itemRarity":"Common"},{"skinId":7399,"itemName":"S36","skinName":"Quartz","itemRarity":"Epic"},{"skinId":4668,"itemName":"S36","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":4655,"itemName":"S36","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":7272,"itemName":"S36","skinName":"Reflective","itemRarity":"Rare"},{"skinId":985,"itemName":"S36","skinName":"Reindeer","itemRarity":"Uncommon"},{"skinId":784,"itemName":"S36","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":9748,"itemName":"S36","skinName":"Rewind","itemRarity":"Uncommon"},{"skinId":4619,"itemName":"S36","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":6743,"itemName":"S36","skinName":"Ritual","itemRarity":"Epic"},{"skinId":11854,"itemName":"S36","skinName":"Ropework","itemRarity":"Uncommon"},{"skinId":7291,"itemName":"S36","skinName":"Royal Flush","itemRarity":"Rare"},{"skinId":4641,"itemName":"S36","skinName":"Ruins","itemRarity":"Common"},{"skinId":4660,"itemName":"S36","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":4646,"itemName":"S36","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":9414,"itemName":"S36","skinName":"Slapstick","itemRarity":"Epic"},{"skinId":4626,"itemName":"S36","skinName":"Smoke","itemRarity":"Common"},{"skinId":2789,"itemName":"S36","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":4657,"itemName":"S36","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":2238,"itemName":"S36","skinName":"Swamped","itemRarity":"Uncommon"},{"skinId":8240,"itemName":"S36","skinName":"Tagged","itemRarity":"Uncommon"},{"skinId":4630,"itemName":"S36","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":1427,"itemName":"S36","skinName":"Technologic","itemRarity":"Uncommon"},{"skinId":4653,"itemName":"S36","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":4635,"itemName":"S36","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":6816,"itemName":"S36","skinName":"Tree Ring","itemRarity":"Uncommon"},{"skinId":4637,"itemName":"S36","skinName":"Tundra","itemRarity":"Common"},{"skinId":8444,"itemName":"S36","skinName":"Uncertain","itemRarity":"Uncommon"},{"skinId":4638,"itemName":"S36","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":10138,"itemName":"S36","skinName":"Vagabond","itemRarity":"Epic"},{"skinId":4664,"itemName":"S36","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":4663,"itemName":"S36","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":9490,"itemName":"S36","skinName":"Warp","itemRarity":"Uncommon"},{"skinId":10119,"itemName":"S36","skinName":"Yellow Abstract","itemRarity":"Uncommon"},{"skinId":1418,"itemName":"S36","skinName":"Yellow Triangle","itemRarity":"Uncommon"},{"skinId":9257,"itemName":"SKS","skinName":"Abominable","itemRarity":"Common"},{"skinId":9280,"itemName":"SKS","skinName":"Anaconda","itemRarity":"Common"},{"skinId":9250,"itemName":"SKS","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":9252,"itemName":"SKS","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":9249,"itemName":"SKS","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":9239,"itemName":"SKS","skinName":"Asphalt","itemRarity":"Common"},{"skinId":9251,"itemName":"SKS","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":10932,"itemName":"SKS","skinName":"Birthstone","itemRarity":"Rare"},{"skinId":9238,"itemName":"SKS","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":9277,"itemName":"SKS","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":9263,"itemName":"SKS","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":9281,"itemName":"SKS","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":9273,"itemName":"SKS","skinName":"Canopy","itemRarity":"Common"},{"skinId":9231,"itemName":"SKS","skinName":"Chain Link","itemRarity":"Common"},{"skinId":9229,"itemName":"SKS","skinName":"China Lake","itemRarity":"Common"},{"skinId":9278,"itemName":"SKS","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":9225,"itemName":"SKS","skinName":"Commando","itemRarity":"Common"},{"skinId":9240,"itemName":"SKS","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":9286,"itemName":"SKS","skinName":"Damascus","itemRarity":"Common"},{"skinId":9256,"itemName":"SKS","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":9222,"itemName":"SKS","skinName":"Default","itemRarity":"Common"},{"skinId":9261,"itemName":"SKS","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":9266,"itemName":"SKS","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":9224,"itemName":"SKS","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":9287,"itemName":"SKS","skinName":"Diamond","itemRarity":"Common"},{"skinId":9235,"itemName":"SKS","skinName":"Dirt","itemRarity":"Common"},{"skinId":9258,"itemName":"SKS","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":9259,"itemName":"SKS","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":9243,"itemName":"SKS","skinName":"Foliage","itemRarity":"Common"},{"skinId":9246,"itemName":"SKS","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":9283,"itemName":"SKS","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":9282,"itemName":"SKS","skinName":"Gecko","itemRarity":"Common"},{"skinId":9284,"itemName":"SKS","skinName":"Gold","itemRarity":"Common"},{"skinId":9234,"itemName":"SKS","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":9247,"itemName":"SKS","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":11639,"itemName":"SKS","skinName":"Iron Hunter","itemRarity":"Rare"},{"skinId":9269,"itemName":"SKS","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":9276,"itemName":"SKS","skinName":"Komodo","itemRarity":"Common"},{"skinId":11586,"itemName":"SKS","skinName":"Malpractice","itemRarity":"Epic"},{"skinId":9268,"itemName":"SKS","skinName":"Marshland","itemRarity":"Common"},{"skinId":9265,"itemName":"SKS","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":9227,"itemName":"SKS","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":9236,"itemName":"SKS","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":9255,"itemName":"SKS","skinName":"Mudslide","itemRarity":"Common"},{"skinId":9241,"itemName":"SKS","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":9232,"itemName":"SKS","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":9272,"itemName":"SKS","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":9254,"itemName":"SKS","skinName":"Overgrown","itemRarity":"Common"},{"skinId":10588,"itemName":"SKS","skinName":"Paper Star","itemRarity":"Uncommon"},{"skinId":9689,"itemName":"SKS","skinName":"Particle Splitter","itemRarity":"Legendary"},{"skinId":9279,"itemName":"SKS","skinName":"Pink Python","itemRarity":"Common"},{"skinId":9230,"itemName":"SKS","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":9228,"itemName":"SKS","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":9285,"itemName":"SKS","skinName":"Platinum","itemRarity":"Common"},{"skinId":9274,"itemName":"SKS","skinName":"Python","itemRarity":"Common"},{"skinId":9275,"itemName":"SKS","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":9262,"itemName":"SKS","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":9226,"itemName":"SKS","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":11159,"itemName":"SKS","skinName":"Robot Samurai","itemRarity":"Epic"},{"skinId":9248,"itemName":"SKS","skinName":"Ruins","itemRarity":"Common"},{"skinId":9267,"itemName":"SKS","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":9253,"itemName":"SKS","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":9233,"itemName":"SKS","skinName":"Smoke","itemRarity":"Common"},{"skinId":9264,"itemName":"SKS","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":9237,"itemName":"SKS","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":9260,"itemName":"SKS","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":9242,"itemName":"SKS","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":9244,"itemName":"SKS","skinName":"Tundra","itemRarity":"Common"},{"skinId":9245,"itemName":"SKS","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":9271,"itemName":"SKS","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":9270,"itemName":"SKS","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":5821,"itemName":"SMRS","skinName":"Abominable","itemRarity":"Common"},{"skinId":6564,"itemName":"SMRS","skinName":"Adaptable","itemRarity":"Rare"},{"skinId":1860,"itemName":"SMRS","skinName":"Afterlife","itemRarity":"Rare"},{"skinId":8354,"itemName":"SMRS","skinName":"Alarm","itemRarity":"Uncommon"},{"skinId":11480,"itemName":"SMRS","skinName":"Ambush","itemRarity":"Uncommon"},{"skinId":6196,"itemName":"SMRS","skinName":"Ammo Box","itemRarity":"Uncommon"},{"skinId":5844,"itemName":"SMRS","skinName":"Anaconda","itemRarity":"Common"},{"skinId":6117,"itemName":"SMRS","skinName":"Angles","itemRarity":"Uncommon"},{"skinId":5814,"itemName":"SMRS","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":5816,"itemName":"SMRS","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":5813,"itemName":"SMRS","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":5915,"itemName":"SMRS","skinName":"Artillery","itemRarity":"Epic"},{"skinId":5803,"itemName":"SMRS","skinName":"Asphalt","itemRarity":"Common"},{"skinId":5815,"itemName":"SMRS","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":6792,"itemName":"SMRS","skinName":"Azurite","itemRarity":"Epic"},{"skinId":2694,"itemName":"SMRS","skinName":"Barrier Reef","itemRarity":"Rare"},{"skinId":1009,"itemName":"SMRS","skinName":"Bats","itemRarity":"Uncommon"},{"skinId":5802,"itemName":"SMRS","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":5929,"itemName":"SMRS","skinName":"Blood in the Water","itemRarity":"Rare"},{"skinId":5841,"itemName":"SMRS","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":5827,"itemName":"SMRS","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":2911,"itemName":"SMRS","skinName":"Bogged Down","itemRarity":"Rare"},{"skinId":6236,"itemName":"SMRS","skinName":"Bolted Metal","itemRarity":"Uncommon"},{"skinId":3076,"itemName":"SMRS","skinName":"Brushed Red","itemRarity":"Uncommon"},{"skinId":11248,"itemName":"SMRS","skinName":"Buckskin","itemRarity":"Rare"},{"skinId":6709,"itemName":"SMRS","skinName":"Bug Spray","itemRarity":"Rare"},{"skinId":6169,"itemName":"SMRS","skinName":"Bullet Point","itemRarity":"Uncommon"},{"skinId":5845,"itemName":"SMRS","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":7264,"itemName":"SMRS","skinName":"CODM","itemRarity":"Rare"},{"skinId":1909,"itemName":"SMRS","skinName":"Calcium Chloride","itemRarity":"Uncommon"},{"skinId":5837,"itemName":"SMRS","skinName":"Canopy","itemRarity":"Common"},{"skinId":8205,"itemName":"SMRS","skinName":"Cerulean","itemRarity":"Uncommon"},{"skinId":5795,"itemName":"SMRS","skinName":"Chain Link","itemRarity":"Common"},{"skinId":5793,"itemName":"SMRS","skinName":"China Lake","itemRarity":"Common"},{"skinId":5842,"itemName":"SMRS","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":7699,"itemName":"SMRS","skinName":"Citrine","itemRarity":"Epic"},{"skinId":6527,"itemName":"SMRS","skinName":"Coat","itemRarity":"Uncommon"},{"skinId":10363,"itemName":"SMRS","skinName":"Coiled","itemRarity":"Rare"},{"skinId":10050,"itemName":"SMRS","skinName":"Collapse","itemRarity":"Rare"},{"skinId":5789,"itemName":"SMRS","skinName":"Commando","itemRarity":"Common"},{"skinId":8112,"itemName":"SMRS","skinName":"Concrete Lightning","itemRarity":"Uncommon"},{"skinId":1873,"itemName":"SMRS","skinName":"Corpse Digger","itemRarity":"Uncommon"},{"skinId":2780,"itemName":"SMRS","skinName":"Corroded","itemRarity":"Uncommon"},{"skinId":10525,"itemName":"SMRS","skinName":"Cosmos","itemRarity":"Epic"},{"skinId":7660,"itemName":"SMRS","skinName":"Court Blue","itemRarity":"Uncommon"},{"skinId":8738,"itemName":"SMRS","skinName":"Crackle","itemRarity":"Uncommon"},{"skinId":6936,"itemName":"SMRS","skinName":"Crayon","itemRarity":"Uncommon"},{"skinId":5804,"itemName":"SMRS","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7520,"itemName":"SMRS","skinName":"Crossed Cables","itemRarity":"Rare"},{"skinId":11008,"itemName":"SMRS","skinName":"Cumulus","itemRarity":"Uncommon"},{"skinId":7640,"itemName":"SMRS","skinName":"Cyberline","itemRarity":"Rare"},{"skinId":6972,"itemName":"SMRS","skinName":"Damascus","itemRarity":"Common"},{"skinId":1592,"itemName":"SMRS","skinName":"Danger Zone","itemRarity":"Rare"},{"skinId":5820,"itemName":"SMRS","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":8362,"itemName":"SMRS","skinName":"Dark Light","itemRarity":"Rare"},{"skinId":490,"itemName":"SMRS","skinName":"Dead Zebra","itemRarity":"Uncommon"},{"skinId":442,"itemName":"SMRS","skinName":"Default","itemRarity":"Common"},{"skinId":9179,"itemName":"SMRS","skinName":"Defibrilator","itemRarity":"Epic"},{"skinId":11518,"itemName":"SMRS","skinName":"Denim","itemRarity":"Uncommon"},{"skinId":5825,"itemName":"SMRS","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":5830,"itemName":"SMRS","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":5788,"itemName":"SMRS","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8506,"itemName":"SMRS","skinName":"Diamond","itemRarity":"Common"},{"skinId":5799,"itemName":"SMRS","skinName":"Dirt","itemRarity":"Common"},{"skinId":2586,"itemName":"SMRS","skinName":"Distressed","itemRarity":"Uncommon"},{"skinId":7368,"itemName":"SMRS","skinName":"Eagle Feather","itemRarity":"Uncommon"},{"skinId":10152,"itemName":"SMRS","skinName":"Emergence","itemRarity":"Epic"},{"skinId":2435,"itemName":"SMRS","skinName":"Extinction","itemRarity":"Rare"},{"skinId":5822,"itemName":"SMRS","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":5823,"itemName":"SMRS","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":10900,"itemName":"SMRS","skinName":"Festival","itemRarity":"Uncommon"},{"skinId":6657,"itemName":"SMRS","skinName":"Fiber Mesh","itemRarity":"Rare"},{"skinId":9638,"itemName":"SMRS","skinName":"Fiber Ray","itemRarity":"Uncommon"},{"skinId":9055,"itemName":"SMRS","skinName":"Fission","itemRarity":"Rare"},{"skinId":1954,"itemName":"SMRS","skinName":"Flesh Bite","itemRarity":"Uncommon"},{"skinId":5807,"itemName":"SMRS","skinName":"Foliage","itemRarity":"Common"},{"skinId":6614,"itemName":"SMRS","skinName":"Forest Felt","itemRarity":"Uncommon"},{"skinId":6309,"itemName":"SMRS","skinName":"Forest Floor","itemRarity":"Rare"},{"skinId":2032,"itemName":"SMRS","skinName":"Frostbite","itemRarity":"Uncommon"},{"skinId":5810,"itemName":"SMRS","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":2472,"itemName":"SMRS","skinName":"Fuel Tank","itemRarity":"Uncommon"},{"skinId":5847,"itemName":"SMRS","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":9987,"itemName":"SMRS","skinName":"Gas Cloud","itemRarity":"Uncommon"},{"skinId":5846,"itemName":"SMRS","skinName":"Gecko","itemRarity":"Common"},{"skinId":11077,"itemName":"SMRS","skinName":"Glow Fly","itemRarity":"Epic"},{"skinId":5848,"itemName":"SMRS","skinName":"Gold","itemRarity":"Common"},{"skinId":7728,"itemName":"SMRS","skinName":"Graceful Gold","itemRarity":"Uncommon"},{"skinId":2831,"itemName":"SMRS","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":2611,"itemName":"SMRS","skinName":"Grime","itemRarity":"Uncommon"},{"skinId":5798,"itemName":"SMRS","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":767,"itemName":"SMRS","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":7347,"itemName":"SMRS","skinName":"Heliotrope","itemRarity":"Uncommon"},{"skinId":5811,"itemName":"SMRS","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":8957,"itemName":"SMRS","skinName":"Icefall","itemRarity":"Rare"},{"skinId":6601,"itemName":"SMRS","skinName":"Jack Frost","itemRarity":"Uncommon"},{"skinId":606,"itemName":"SMRS","skinName":"Jingle Bells","itemRarity":"Uncommon"},{"skinId":7430,"itemName":"SMRS","skinName":"Kapow","itemRarity":"Uncommon"},{"skinId":5833,"itemName":"SMRS","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":5840,"itemName":"SMRS","skinName":"Komodo","itemRarity":"Common"},{"skinId":9360,"itemName":"SMRS","skinName":"Light Show","itemRarity":"Uncommon"},{"skinId":10645,"itemName":"SMRS","skinName":"Liquid Mercury","itemRarity":"Rare"},{"skinId":5832,"itemName":"SMRS","skinName":"Marshland","itemRarity":"Common"},{"skinId":662,"itemName":"SMRS","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":1355,"itemName":"SMRS","skinName":"Mettle","itemRarity":"Uncommon"},{"skinId":5829,"itemName":"SMRS","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":5791,"itemName":"SMRS","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":5800,"itemName":"SMRS","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":6036,"itemName":"SMRS","skinName":"Moss Rock","itemRarity":"Uncommon"},{"skinId":5819,"itemName":"SMRS","skinName":"Mudslide","itemRarity":"Common"},{"skinId":11670,"itemName":"SMRS","skinName":"Murder","itemRarity":"Epic"},{"skinId":1683,"itemName":"SMRS","skinName":"Neon Green","itemRarity":"Uncommon"},{"skinId":5805,"itemName":"SMRS","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":5796,"itemName":"SMRS","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":5836,"itemName":"SMRS","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":8084,"itemName":"SMRS","skinName":"Noir","itemRarity":"Epic"},{"skinId":7919,"itemName":"SMRS","skinName":"Nonconformist","itemRarity":"Uncommon"},{"skinId":2764,"itemName":"SMRS","skinName":"Oil Spill","itemRarity":"Epic"},{"skinId":5995,"itemName":"SMRS","skinName":"Old News","itemRarity":"Uncommon"},{"skinId":5818,"itemName":"SMRS","skinName":"Overgrown","itemRarity":"Common"},{"skinId":10607,"itemName":"SMRS","skinName":"Paper Fan","itemRarity":"Uncommon"},{"skinId":10844,"itemName":"SMRS","skinName":"Paper Star","itemRarity":"Uncommon"},{"skinId":5843,"itemName":"SMRS","skinName":"Pink Python","itemRarity":"Common"},{"skinId":5794,"itemName":"SMRS","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":5792,"itemName":"SMRS","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":6327,"itemName":"SMRS","skinName":"Plated Green","itemRarity":"Uncommon"},{"skinId":6399,"itemName":"SMRS","skinName":"Plated Red","itemRarity":"Uncommon"},{"skinId":5849,"itemName":"SMRS","skinName":"Platinum","itemRarity":"Common"},{"skinId":8036,"itemName":"SMRS","skinName":"Pocket Shock","itemRarity":"Uncommon"},{"skinId":11598,"itemName":"SMRS","skinName":"Powder Bomb","itemRarity":"Rare"},{"skinId":6723,"itemName":"SMRS","skinName":"Purple Geode","itemRarity":"Uncommon"},{"skinId":5838,"itemName":"SMRS","skinName":"Python","itemRarity":"Common"},{"skinId":9587,"itemName":"SMRS","skinName":"Quartz","itemRarity":"Epic"},{"skinId":1645,"itemName":"SMRS","skinName":"Radioactive","itemRarity":"Rare"},{"skinId":5839,"itemName":"SMRS","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":2904,"itemName":"SMRS","skinName":"Record Scratch","itemRarity":"Uncommon"},{"skinId":5826,"itemName":"SMRS","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":766,"itemName":"SMRS","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":5790,"itemName":"SMRS","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":5812,"itemName":"SMRS","skinName":"Ruins","itemRarity":"Common"},{"skinId":10061,"itemName":"SMRS","skinName":"Ruptured Steel","itemRarity":"Rare"},{"skinId":2716,"itemName":"SMRS","skinName":"Rusted","itemRarity":"Uncommon"},{"skinId":5831,"itemName":"SMRS","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":289,"itemName":"SMRS","skinName":"Sandbox","itemRarity":"Uncommon"},{"skinId":9715,"itemName":"SMRS","skinName":"Scatter Force","itemRarity":"Rare"},{"skinId":11084,"itemName":"SMRS","skinName":"Sea Serpent","itemRarity":"Rare"},{"skinId":5817,"itemName":"SMRS","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":10834,"itemName":"SMRS","skinName":"Shrine","itemRarity":"Uncommon"},{"skinId":2645,"itemName":"SMRS","skinName":"Slagged","itemRarity":"Epic"},{"skinId":2263,"itemName":"SMRS","skinName":"Slate","itemRarity":"Uncommon"},{"skinId":5797,"itemName":"SMRS","skinName":"Smoke","itemRarity":"Common"},{"skinId":2594,"itemName":"SMRS","skinName":"Snake Bite","itemRarity":"Epic"},{"skinId":92,"itemName":"SMRS","skinName":"Space Station","itemRarity":"Epic"},{"skinId":1367,"itemName":"SMRS","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":11838,"itemName":"SMRS","skinName":"Stampede","itemRarity":"Epic"},{"skinId":6007,"itemName":"SMRS","skinName":"Strafing Run","itemRarity":"Epic"},{"skinId":319,"itemName":"SMRS","skinName":"Strapped","itemRarity":"Rare"},{"skinId":5969,"itemName":"SMRS","skinName":"Strongbox","itemRarity":"Rare"},{"skinId":7372,"itemName":"SMRS","skinName":"Supermax","itemRarity":"Epic"},{"skinId":9661,"itemName":"SMRS","skinName":"Supernova","itemRarity":"Rare"},{"skinId":5828,"itemName":"SMRS","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":8245,"itemName":"SMRS","skinName":"Tagged","itemRarity":"Uncommon"},{"skinId":5801,"itemName":"SMRS","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":1943,"itemName":"SMRS","skinName":"Thermonuclear","itemRarity":"Epic"},{"skinId":5824,"itemName":"SMRS","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":6693,"itemName":"SMRS","skinName":"Tiger's Eye","itemRarity":"Epic"},{"skinId":8494,"itemName":"SMRS","skinName":"Tracker","itemRarity":"Uncommon"},{"skinId":5806,"itemName":"SMRS","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":2529,"itemName":"SMRS","skinName":"Tree Bark","itemRarity":"Uncommon"},{"skinId":6821,"itemName":"SMRS","skinName":"Tree Ring","itemRarity":"Uncommon"},{"skinId":5808,"itemName":"SMRS","skinName":"Tundra","itemRarity":"Common"},{"skinId":8450,"itemName":"SMRS","skinName":"Uncertain","itemRarity":"Uncommon"},{"skinId":6671,"itemName":"SMRS","skinName":"Undergrowth","itemRarity":"Uncommon"},{"skinId":5809,"itemName":"SMRS","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":1896,"itemName":"SMRS","skinName":"Urban Waste","itemRarity":"Rare"},{"skinId":10144,"itemName":"SMRS","skinName":"Vagabond","itemRarity":"Epic"},{"skinId":11483,"itemName":"SMRS","skinName":"Wanted","itemRarity":"Uncommon"},{"skinId":5835,"itemName":"SMRS","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":5834,"itemName":"SMRS","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":1805,"itemName":"SMRS","skinName":"White Lies","itemRarity":"Uncommon"},{"skinId":1562,"itemName":"SMRS","skinName":"Yellow Camo","itemRarity":"Uncommon"},{"skinId":1166,"itemName":"SMRS","skinName":"Yellow Snake","itemRarity":"Rare"},{"skinId":9937,"itemName":"SP-R 208","skinName":"Abominable","itemRarity":"Common"},{"skinId":9960,"itemName":"SP-R 208","skinName":"Anaconda","itemRarity":"Common"},{"skinId":9930,"itemName":"SP-R 208","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":9932,"itemName":"SP-R 208","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":9929,"itemName":"SP-R 208","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":9919,"itemName":"SP-R 208","skinName":"Asphalt","itemRarity":"Common"},{"skinId":9931,"itemName":"SP-R 208","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":9918,"itemName":"SP-R 208","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":9957,"itemName":"SP-R 208","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":9943,"itemName":"SP-R 208","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":9961,"itemName":"SP-R 208","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":9953,"itemName":"SP-R 208","skinName":"Canopy","itemRarity":"Common"},{"skinId":9911,"itemName":"SP-R 208","skinName":"Chain Link","itemRarity":"Common"},{"skinId":9909,"itemName":"SP-R 208","skinName":"China Lake","itemRarity":"Common"},{"skinId":9958,"itemName":"SP-R 208","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":9905,"itemName":"SP-R 208","skinName":"Commando","itemRarity":"Common"},{"skinId":10309,"itemName":"SP-R 208","skinName":"Counter Spy","itemRarity":"Legendary"},{"skinId":9920,"itemName":"SP-R 208","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":9966,"itemName":"SP-R 208","skinName":"Damascus","itemRarity":"Common"},{"skinId":9936,"itemName":"SP-R 208","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":9839,"itemName":"SP-R 208","skinName":"Default","itemRarity":"Common"},{"skinId":9941,"itemName":"SP-R 208","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":9946,"itemName":"SP-R 208","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":9904,"itemName":"SP-R 208","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":9967,"itemName":"SP-R 208","skinName":"Diamond","itemRarity":"Common"},{"skinId":9915,"itemName":"SP-R 208","skinName":"Dirt","itemRarity":"Common"},{"skinId":10610,"itemName":"SP-R 208","skinName":"Dragon Head","itemRarity":"Epic"},{"skinId":9938,"itemName":"SP-R 208","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":9939,"itemName":"SP-R 208","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":9923,"itemName":"SP-R 208","skinName":"Foliage","itemRarity":"Common"},{"skinId":9926,"itemName":"SP-R 208","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":9963,"itemName":"SP-R 208","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":9962,"itemName":"SP-R 208","skinName":"Gecko","itemRarity":"Common"},{"skinId":9964,"itemName":"SP-R 208","skinName":"Gold","itemRarity":"Common"},{"skinId":9914,"itemName":"SP-R 208","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":9927,"itemName":"SP-R 208","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":9949,"itemName":"SP-R 208","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":9956,"itemName":"SP-R 208","skinName":"Komodo","itemRarity":"Common"},{"skinId":11886,"itemName":"SP-R 208","skinName":"Lost Gothic","itemRarity":"Epic"},{"skinId":9948,"itemName":"SP-R 208","skinName":"Marshland","itemRarity":"Common"},{"skinId":9945,"itemName":"SP-R 208","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":9907,"itemName":"SP-R 208","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":9916,"itemName":"SP-R 208","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":9935,"itemName":"SP-R 208","skinName":"Mudslide","itemRarity":"Common"},{"skinId":9921,"itemName":"SP-R 208","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":9912,"itemName":"SP-R 208","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":9952,"itemName":"SP-R 208","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":9934,"itemName":"SP-R 208","skinName":"Overgrown","itemRarity":"Common"},{"skinId":11465,"itemName":"SP-R 208","skinName":"Overpower","itemRarity":"Rare"},{"skinId":9959,"itemName":"SP-R 208","skinName":"Pink Python","itemRarity":"Common"},{"skinId":9910,"itemName":"SP-R 208","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":9908,"itemName":"SP-R 208","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":9965,"itemName":"SP-R 208","skinName":"Platinum","itemRarity":"Common"},{"skinId":9954,"itemName":"SP-R 208","skinName":"Python","itemRarity":"Common"},{"skinId":9955,"itemName":"SP-R 208","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":9942,"itemName":"SP-R 208","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":9906,"itemName":"SP-R 208","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":9928,"itemName":"SP-R 208","skinName":"Ruins","itemRarity":"Common"},{"skinId":9947,"itemName":"SP-R 208","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":9933,"itemName":"SP-R 208","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":9913,"itemName":"SP-R 208","skinName":"Smoke","itemRarity":"Common"},{"skinId":9944,"itemName":"SP-R 208","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":9917,"itemName":"SP-R 208","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":9940,"itemName":"SP-R 208","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":9922,"itemName":"SP-R 208","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":9924,"itemName":"SP-R 208","skinName":"Tundra","itemRarity":"Common"},{"skinId":9925,"itemName":"SP-R 208","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":9951,"itemName":"SP-R 208","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":9950,"itemName":"SP-R 208","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":10422,"itemName":"Shovel","skinName":"Abominable","itemRarity":"Common"},{"skinId":10445,"itemName":"Shovel","skinName":"Anaconda","itemRarity":"Common"},{"skinId":10415,"itemName":"Shovel","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":10417,"itemName":"Shovel","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":10414,"itemName":"Shovel","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":10404,"itemName":"Shovel","skinName":"Asphalt","itemRarity":"Common"},{"skinId":10416,"itemName":"Shovel","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":10403,"itemName":"Shovel","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":10442,"itemName":"Shovel","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":10428,"itemName":"Shovel","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":10446,"itemName":"Shovel","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":10438,"itemName":"Shovel","skinName":"Canopy","itemRarity":"Common"},{"skinId":10396,"itemName":"Shovel","skinName":"Chain Link","itemRarity":"Common"},{"skinId":10394,"itemName":"Shovel","skinName":"China Lake","itemRarity":"Common"},{"skinId":10443,"itemName":"Shovel","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":10390,"itemName":"Shovel","skinName":"Commando","itemRarity":"Common"},{"skinId":10405,"itemName":"Shovel","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":10451,"itemName":"Shovel","skinName":"Damascus","itemRarity":"Common"},{"skinId":10421,"itemName":"Shovel","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":10453,"itemName":"Shovel","skinName":"Default","itemRarity":"Common"},{"skinId":10426,"itemName":"Shovel","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":10431,"itemName":"Shovel","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":10389,"itemName":"Shovel","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":10452,"itemName":"Shovel","skinName":"Diamond","itemRarity":"Common"},{"skinId":10400,"itemName":"Shovel","skinName":"Dirt","itemRarity":"Common"},{"skinId":10423,"itemName":"Shovel","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":11262,"itemName":"Shovel","skinName":"Fenrir","itemRarity":"Epic"},{"skinId":10424,"itemName":"Shovel","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":10408,"itemName":"Shovel","skinName":"Foliage","itemRarity":"Common"},{"skinId":10411,"itemName":"Shovel","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":10448,"itemName":"Shovel","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":10447,"itemName":"Shovel","skinName":"Gecko","itemRarity":"Common"},{"skinId":10449,"itemName":"Shovel","skinName":"Gold","itemRarity":"Common"},{"skinId":10399,"itemName":"Shovel","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":10412,"itemName":"Shovel","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":10434,"itemName":"Shovel","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":10441,"itemName":"Shovel","skinName":"Komodo","itemRarity":"Common"},{"skinId":10433,"itemName":"Shovel","skinName":"Marshland","itemRarity":"Common"},{"skinId":10430,"itemName":"Shovel","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":10392,"itemName":"Shovel","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":10401,"itemName":"Shovel","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":10420,"itemName":"Shovel","skinName":"Mudslide","itemRarity":"Common"},{"skinId":11705,"itemName":"Shovel","skinName":"Munitions","itemRarity":"Epic"},{"skinId":10406,"itemName":"Shovel","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":10397,"itemName":"Shovel","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":10437,"itemName":"Shovel","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":10419,"itemName":"Shovel","skinName":"Overgrown","itemRarity":"Common"},{"skinId":10444,"itemName":"Shovel","skinName":"Pink Python","itemRarity":"Common"},{"skinId":10395,"itemName":"Shovel","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":10393,"itemName":"Shovel","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":10450,"itemName":"Shovel","skinName":"Platinum","itemRarity":"Common"},{"skinId":10439,"itemName":"Shovel","skinName":"Python","itemRarity":"Common"},{"skinId":10440,"itemName":"Shovel","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":10427,"itemName":"Shovel","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":10391,"itemName":"Shovel","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":10413,"itemName":"Shovel","skinName":"Ruins","itemRarity":"Common"},{"skinId":10432,"itemName":"Shovel","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":11400,"itemName":"Shovel","skinName":"Sandy Spade","itemRarity":"Epic"},{"skinId":10418,"itemName":"Shovel","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":10503,"itemName":"Shovel","skinName":"Six Feet","itemRarity":"Epic"},{"skinId":10398,"itemName":"Shovel","skinName":"Smoke","itemRarity":"Common"},{"skinId":10429,"itemName":"Shovel","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":10402,"itemName":"Shovel","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":10425,"itemName":"Shovel","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":10407,"itemName":"Shovel","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":10409,"itemName":"Shovel","skinName":"Tundra","itemRarity":"Common"},{"skinId":10410,"itemName":"Shovel","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":10436,"itemName":"Shovel","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":10435,"itemName":"Shovel","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":11804,"itemName":"Sickle","skinName":"Abominable","itemRarity":"Common"},{"skinId":11827,"itemName":"Sickle","skinName":"Anaconda","itemRarity":"Common"},{"skinId":11797,"itemName":"Sickle","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":11799,"itemName":"Sickle","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":11796,"itemName":"Sickle","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":11786,"itemName":"Sickle","skinName":"Asphalt","itemRarity":"Common"},{"skinId":11798,"itemName":"Sickle","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":11785,"itemName":"Sickle","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":11824,"itemName":"Sickle","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":11810,"itemName":"Sickle","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":11828,"itemName":"Sickle","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":11820,"itemName":"Sickle","skinName":"Canopy","itemRarity":"Common"},{"skinId":11778,"itemName":"Sickle","skinName":"Chain Link","itemRarity":"Common"},{"skinId":11776,"itemName":"Sickle","skinName":"China Lake","itemRarity":"Common"},{"skinId":11825,"itemName":"Sickle","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":11772,"itemName":"Sickle","skinName":"Commando","itemRarity":"Common"},{"skinId":11787,"itemName":"Sickle","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":11833,"itemName":"Sickle","skinName":"Damascus","itemRarity":"Common"},{"skinId":11803,"itemName":"Sickle","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":11399,"itemName":"Sickle","skinName":"Default","itemRarity":"Common"},{"skinId":11808,"itemName":"Sickle","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":11813,"itemName":"Sickle","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":11771,"itemName":"Sickle","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":11834,"itemName":"Sickle","skinName":"Diamond","itemRarity":"Common"},{"skinId":11782,"itemName":"Sickle","skinName":"Dirt","itemRarity":"Common"},{"skinId":11805,"itemName":"Sickle","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":11806,"itemName":"Sickle","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":11790,"itemName":"Sickle","skinName":"Foliage","itemRarity":"Common"},{"skinId":11793,"itemName":"Sickle","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":11830,"itemName":"Sickle","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":11829,"itemName":"Sickle","skinName":"Gecko","itemRarity":"Common"},{"skinId":11831,"itemName":"Sickle","skinName":"Gold","itemRarity":"Common"},{"skinId":11781,"itemName":"Sickle","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":11794,"itemName":"Sickle","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":11816,"itemName":"Sickle","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":11823,"itemName":"Sickle","skinName":"Komodo","itemRarity":"Common"},{"skinId":11883,"itemName":"Sickle","skinName":"Lost Gothic","itemRarity":"Epic"},{"skinId":11815,"itemName":"Sickle","skinName":"Marshland","itemRarity":"Common"},{"skinId":11812,"itemName":"Sickle","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":11774,"itemName":"Sickle","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":11783,"itemName":"Sickle","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":11802,"itemName":"Sickle","skinName":"Mudslide","itemRarity":"Common"},{"skinId":11788,"itemName":"Sickle","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":11779,"itemName":"Sickle","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":11819,"itemName":"Sickle","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":11801,"itemName":"Sickle","skinName":"Overgrown","itemRarity":"Common"},{"skinId":11826,"itemName":"Sickle","skinName":"Pink Python","itemRarity":"Common"},{"skinId":11777,"itemName":"Sickle","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":11775,"itemName":"Sickle","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":11832,"itemName":"Sickle","skinName":"Platinum","itemRarity":"Common"},{"skinId":11821,"itemName":"Sickle","skinName":"Python","itemRarity":"Common"},{"skinId":11822,"itemName":"Sickle","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":11809,"itemName":"Sickle","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":11773,"itemName":"Sickle","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":11795,"itemName":"Sickle","skinName":"Ruins","itemRarity":"Common"},{"skinId":11814,"itemName":"Sickle","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":11800,"itemName":"Sickle","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":11780,"itemName":"Sickle","skinName":"Smoke","itemRarity":"Common"},{"skinId":11811,"itemName":"Sickle","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":11784,"itemName":"Sickle","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":11807,"itemName":"Sickle","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":11789,"itemName":"Sickle","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":11791,"itemName":"Sickle","skinName":"Tundra","itemRarity":"Common"},{"skinId":11792,"itemName":"Sickle","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":11818,"itemName":"Sickle","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":11817,"itemName":"Sickle","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":647,"itemName":"Smoke Grenade","skinName":"1001 Nights","itemRarity":"Rare"},{"skinId":2141,"itemName":"Smoke Grenade","skinName":"Abnormality","itemRarity":"Uncommon"},{"skinId":6565,"itemName":"Smoke Grenade","skinName":"Adaptable","itemRarity":"Rare"},{"skinId":7984,"itemName":"Smoke Grenade","skinName":"Alarm","itemRarity":"Uncommon"},{"skinId":6582,"itemName":"Smoke Grenade","skinName":"Alligator","itemRarity":"Uncommon"},{"skinId":6120,"itemName":"Smoke Grenade","skinName":"Angles","itemRarity":"Uncommon"},{"skinId":2138,"itemName":"Smoke Grenade","skinName":"Ashen Viper","itemRarity":"Rare"},{"skinId":1342,"itemName":"Smoke Grenade","skinName":"Aurora Borealis","itemRarity":"Rare"},{"skinId":205,"itemName":"Smoke Grenade","skinName":"Bandit","itemRarity":"Rare"},{"skinId":2146,"itemName":"Smoke Grenade","skinName":"Bats","itemRarity":"Uncommon"},{"skinId":10377,"itemName":"Smoke Grenade","skinName":"Black Marble","itemRarity":"Uncommon"},{"skinId":691,"itemName":"Smoke Grenade","skinName":"Blue Graffiti","itemRarity":"Uncommon"},{"skinId":259,"itemName":"Smoke Grenade","skinName":"Blue Wave","itemRarity":"Uncommon"},{"skinId":6239,"itemName":"Smoke Grenade","skinName":"Bolted Metal","itemRarity":"Uncommon"},{"skinId":1129,"itemName":"Smoke Grenade","skinName":"Brambles","itemRarity":"Rare"},{"skinId":8469,"itemName":"Smoke Grenade","skinName":"Bronze Arrow","itemRarity":"Rare"},{"skinId":3079,"itemName":"Smoke Grenade","skinName":"Brushed Red","itemRarity":"Uncommon"},{"skinId":6170,"itemName":"Smoke Grenade","skinName":"Bullet Point","itemRarity":"Uncommon"},{"skinId":9203,"itemName":"Smoke Grenade","skinName":"Bunker","itemRarity":"Uncommon"},{"skinId":7242,"itemName":"Smoke Grenade","skinName":"CODM","itemRarity":"Rare"},{"skinId":1914,"itemName":"Smoke Grenade","skinName":"Calcium Chloride","itemRarity":"Uncommon"},{"skinId":1108,"itemName":"Smoke Grenade","skinName":"Candy Cane","itemRarity":"Rare"},{"skinId":10547,"itemName":"Smoke Grenade","skinName":"Card Armor","itemRarity":"Rare"},{"skinId":1589,"itemName":"Smoke Grenade","skinName":"Caution","itemRarity":"Uncommon"},{"skinId":8208,"itemName":"Smoke Grenade","skinName":"Cerulean","itemRarity":"Uncommon"},{"skinId":2016,"itemName":"Smoke Grenade","skinName":"Chrome Wave","itemRarity":"Epic"},{"skinId":1303,"itemName":"Smoke Grenade","skinName":"Clown","itemRarity":"Rare"},{"skinId":6531,"itemName":"Smoke Grenade","skinName":"Coat","itemRarity":"Uncommon"},{"skinId":6959,"itemName":"Smoke Grenade","skinName":"Color Burst","itemRarity":"Rare"},{"skinId":932,"itemName":"Smoke Grenade","skinName":"Colorful","itemRarity":"Rare"},{"skinId":8114,"itemName":"Smoke Grenade","skinName":"Concrete Lightning","itemRarity":"Uncommon"},{"skinId":1192,"itemName":"Smoke Grenade","skinName":"Copperhead","itemRarity":"Rare"},{"skinId":1878,"itemName":"Smoke Grenade","skinName":"Corpse Digger","itemRarity":"Uncommon"},{"skinId":2786,"itemName":"Smoke Grenade","skinName":"Corroded","itemRarity":"Uncommon"},{"skinId":7666,"itemName":"Smoke Grenade","skinName":"Court Blue","itemRarity":"Uncommon"},{"skinId":8144,"itemName":"Smoke Grenade","skinName":"Crackle","itemRarity":"Uncommon"},{"skinId":10797,"itemName":"Smoke Grenade","skinName":"Crane Style","itemRarity":"Uncommon"},{"skinId":6941,"itemName":"Smoke Grenade","skinName":"Crayon","itemRarity":"Uncommon"},{"skinId":11010,"itemName":"Smoke Grenade","skinName":"Cumulus","itemRarity":"Uncommon"},{"skinId":11194,"itemName":"Smoke Grenade","skinName":"Cutting Edge","itemRarity":"Epic"},{"skinId":8924,"itemName":"Smoke Grenade","skinName":"Dalmatian","itemRarity":"Uncommon"},{"skinId":10484,"itemName":"Smoke Grenade","skinName":"Dark Band","itemRarity":"Rare"},{"skinId":64,"itemName":"Smoke Grenade","skinName":"Dark Fiber","itemRarity":"Uncommon"},{"skinId":8272,"itemName":"Smoke Grenade","skinName":"Dark Tech","itemRarity":"Epic"},{"skinId":9440,"itemName":"Smoke Grenade","skinName":"Data Blocks","itemRarity":"Uncommon"},{"skinId":447,"itemName":"Smoke Grenade","skinName":"Default","itemRarity":"Common"},{"skinId":11520,"itemName":"Smoke Grenade","skinName":"Denim","itemRarity":"Uncommon"},{"skinId":204,"itemName":"Smoke Grenade","skinName":"Desert Snake","itemRarity":"Uncommon"},{"skinId":2589,"itemName":"Smoke Grenade","skinName":"Distressed","itemRarity":"Uncommon"},{"skinId":11184,"itemName":"Smoke Grenade","skinName":"Duel","itemRarity":"Uncommon"},{"skinId":6067,"itemName":"Smoke Grenade","skinName":"Eagle Feather","itemRarity":"Uncommon"},{"skinId":1267,"itemName":"Smoke Grenade","skinName":"Easter '20","itemRarity":"Uncommon"},{"skinId":6498,"itemName":"Smoke Grenade","skinName":"Echolocation","itemRarity":"Epic"},{"skinId":10184,"itemName":"Smoke Grenade","skinName":"Emergence","itemRarity":"Epic"},{"skinId":906,"itemName":"Smoke Grenade","skinName":"Eruption","itemRarity":"Epic"},{"skinId":9605,"itemName":"Smoke Grenade","skinName":"Eternal Youth","itemRarity":"Uncommon"},{"skinId":1148,"itemName":"Smoke Grenade","skinName":"Evil Chip","itemRarity":"Rare"},{"skinId":2436,"itemName":"Smoke Grenade","skinName":"Extinction","itemRarity":"Rare"},{"skinId":2140,"itemName":"Smoke Grenade","skinName":"Fashion Purple","itemRarity":"Uncommon"},{"skinId":9056,"itemName":"Smoke Grenade","skinName":"Fission","itemRarity":"Rare"},{"skinId":2065,"itemName":"Smoke Grenade","skinName":"Flesh Bite","itemRarity":"Uncommon"},{"skinId":43,"itemName":"Smoke Grenade","skinName":"Flowing Bronze","itemRarity":"Rare"},{"skinId":6881,"itemName":"Smoke Grenade","skinName":"Forest Fabric","itemRarity":"Uncommon"},{"skinId":6613,"itemName":"Smoke Grenade","skinName":"Forest Felt","itemRarity":"Uncommon"},{"skinId":2037,"itemName":"Smoke Grenade","skinName":"Frostbite","itemRarity":"Uncommon"},{"skinId":2475,"itemName":"Smoke Grenade","skinName":"Fuel Tank","itemRarity":"Uncommon"},{"skinId":2537,"itemName":"Smoke Grenade","skinName":"Gag","itemRarity":"Epic"},{"skinId":1541,"itemName":"Smoke Grenade","skinName":"Gallant","itemRarity":"Rare"},{"skinId":10043,"itemName":"Smoke Grenade","skinName":"Gas Cloud","itemRarity":"Uncommon"},{"skinId":1105,"itemName":"Smoke Grenade","skinName":"Glacier","itemRarity":"Rare"},{"skinId":7542,"itemName":"Smoke Grenade","skinName":"Glitch","itemRarity":"Uncommon"},{"skinId":6892,"itemName":"Smoke Grenade","skinName":"Graceful Blue","itemRarity":"Uncommon"},{"skinId":7734,"itemName":"Smoke Grenade","skinName":"Graceful Gold","itemRarity":"Uncommon"},{"skinId":2880,"itemName":"Smoke Grenade","skinName":"Gray Skies","itemRarity":"Uncommon"},{"skinId":10888,"itemName":"Smoke Grenade","skinName":"Great Wave","itemRarity":"Rare"},{"skinId":7710,"itemName":"Smoke Grenade","skinName":"Green Terror","itemRarity":"Rare"},{"skinId":2143,"itemName":"Smoke Grenade","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":2614,"itemName":"Smoke Grenade","skinName":"Grime","itemRarity":"Uncommon"},{"skinId":11232,"itemName":"Smoke Grenade","skinName":"Guerilla","itemRarity":"Epic"},{"skinId":6634,"itemName":"Smoke Grenade","skinName":"Halloween","itemRarity":"Rare"},{"skinId":7990,"itemName":"Smoke Grenade","skinName":"Hard Water","itemRarity":"Uncommon"},{"skinId":6776,"itemName":"Smoke Grenade","skinName":"Headless Rider","itemRarity":"Rare"},{"skinId":2142,"itemName":"Smoke Grenade","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":7352,"itemName":"Smoke Grenade","skinName":"Heliotrope","itemRarity":"Uncommon"},{"skinId":2448,"itemName":"Smoke Grenade","skinName":"Hemophiliac","itemRarity":"Uncommon"},{"skinId":8873,"itemName":"Smoke Grenade","skinName":"Hereafter","itemRarity":"Uncommon"},{"skinId":2145,"itemName":"Smoke Grenade","skinName":"Holiday Ribbons","itemRarity":"Uncommon"},{"skinId":11692,"itemName":"Smoke Grenade","skinName":"Horseshoe","itemRarity":"Uncommon"},{"skinId":8958,"itemName":"Smoke Grenade","skinName":"Icefall","itemRarity":"Rare"},{"skinId":2139,"itemName":"Smoke Grenade","skinName":"Irradiated Amethyst","itemRarity":"Rare"},{"skinId":11847,"itemName":"Smoke Grenade","skinName":"Ivory Tickler","itemRarity":"Rare"},{"skinId":2148,"itemName":"Smoke Grenade","skinName":"Jingle Bells","itemRarity":"Uncommon"},{"skinId":7436,"itemName":"Smoke Grenade","skinName":"Kapow","itemRarity":"Uncommon"},{"skinId":9357,"itemName":"Smoke Grenade","skinName":"Light Show","itemRarity":"Uncommon"},{"skinId":10174,"itemName":"Smoke Grenade","skinName":"Lingering","itemRarity":"Uncommon"},{"skinId":1284,"itemName":"Smoke Grenade","skinName":"Lunar New Year","itemRarity":"Rare"},{"skinId":1008,"itemName":"Smoke Grenade","skinName":"Magic Eye","itemRarity":"Rare"},{"skinId":1388,"itemName":"Smoke Grenade","skinName":"Maple Leaves","itemRarity":"Uncommon"},{"skinId":1233,"itemName":"Smoke Grenade","skinName":"Mardi Gras","itemRarity":"Rare"},{"skinId":2144,"itemName":"Smoke Grenade","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":71,"itemName":"Smoke Grenade","skinName":"Mirage","itemRarity":"Epic"},{"skinId":9684,"itemName":"Smoke Grenade","skinName":"Mire","itemRarity":"Epic"},{"skinId":10102,"itemName":"Smoke Grenade","skinName":"Mitosis","itemRarity":"Epic"},{"skinId":8704,"itemName":"Smoke Grenade","skinName":"Moonstone","itemRarity":"Epic"},{"skinId":6040,"itemName":"Smoke Grenade","skinName":"Moss Rock","itemRarity":"Uncommon"},{"skinId":11671,"itemName":"Smoke Grenade","skinName":"Murder","itemRarity":"Epic"},{"skinId":6063,"itemName":"Smoke Grenade","skinName":"Narcissist","itemRarity":"Epic"},{"skinId":10,"itemName":"Smoke Grenade","skinName":"Natural Hunter","itemRarity":"Epic"},{"skinId":1689,"itemName":"Smoke Grenade","skinName":"Neon Green","itemRarity":"Uncommon"},{"skinId":573,"itemName":"Smoke Grenade","skinName":"Neon Tiger","itemRarity":"Uncommon"},{"skinId":8424,"itemName":"Smoke Grenade","skinName":"Noir","itemRarity":"Epic"},{"skinId":7923,"itemName":"Smoke Grenade","skinName":"Nonconformist","itemRarity":"Uncommon"},{"skinId":2454,"itemName":"Smoke Grenade","skinName":"Nuclear Fallout","itemRarity":"Epic"},{"skinId":2701,"itemName":"Smoke Grenade","skinName":"Oil Spill","itemRarity":"Epic"},{"skinId":5997,"itemName":"Smoke Grenade","skinName":"Old News","itemRarity":"Uncommon"},{"skinId":11464,"itemName":"Smoke Grenade","skinName":"Overpower","itemRarity":"Rare"},{"skinId":10251,"itemName":"Smoke Grenade","skinName":"Paint Smear","itemRarity":"Uncommon"},{"skinId":2655,"itemName":"Smoke Grenade","skinName":"Persisted","itemRarity":"Rare"},{"skinId":2050,"itemName":"Smoke Grenade","skinName":"Plasma","itemRarity":"Epic"},{"skinId":6306,"itemName":"Smoke Grenade","skinName":"Plated Gray","itemRarity":"Uncommon"},{"skinId":6402,"itemName":"Smoke Grenade","skinName":"Plated Red","itemRarity":"Uncommon"},{"skinId":8039,"itemName":"Smoke Grenade","skinName":"Pocket Shock","itemRarity":"Uncommon"},{"skinId":6727,"itemName":"Smoke Grenade","skinName":"Purple Geode","itemRarity":"Uncommon"},{"skinId":6920,"itemName":"Smoke Grenade","skinName":"Quartz","itemRarity":"Epic"},{"skinId":2909,"itemName":"Smoke Grenade","skinName":"Record Scratch","itemRarity":"Uncommon"},{"skinId":938,"itemName":"Smoke Grenade","skinName":"Red","itemRarity":"Uncommon"},{"skinId":10636,"itemName":"Smoke Grenade","skinName":"Red Sun","itemRarity":"Uncommon"},{"skinId":2147,"itemName":"Smoke Grenade","skinName":"Reindeer","itemRarity":"Uncommon"},{"skinId":11632,"itemName":"Smoke Grenade","skinName":"Repellent","itemRarity":"Uncommon"},{"skinId":1145,"itemName":"Smoke Grenade","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":2888,"itemName":"Smoke Grenade","skinName":"Ruby","itemRarity":"Epic"},{"skinId":2720,"itemName":"Smoke Grenade","skinName":"Rusted","itemRarity":"Uncommon"},{"skinId":2149,"itemName":"Smoke Grenade","skinName":"Sandbox","itemRarity":"Uncommon"},{"skinId":9725,"itemName":"Smoke Grenade","skinName":"Screen Tear","itemRarity":"Uncommon"},{"skinId":10837,"itemName":"Smoke Grenade","skinName":"Shrine","itemRarity":"Uncommon"},{"skinId":10505,"itemName":"Smoke Grenade","skinName":"Six Feet","itemRarity":"Epic"},{"skinId":2268,"itemName":"Smoke Grenade","skinName":"Slate","itemRarity":"Uncommon"},{"skinId":1156,"itemName":"Smoke Grenade","skinName":"Snowflakes","itemRarity":"Rare"},{"skinId":1126,"itemName":"Smoke Grenade","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":313,"itemName":"Smoke Grenade","skinName":"Steel Defense","itemRarity":"Rare"},{"skinId":5970,"itemName":"Smoke Grenade","skinName":"Strongbox","itemRarity":"Rare"},{"skinId":8246,"itemName":"Smoke Grenade","skinName":"Tagged","itemRarity":"Uncommon"},{"skinId":8217,"itemName":"Smoke Grenade","skinName":"Target Lock","itemRarity":"Epic"},{"skinId":1137,"itemName":"Smoke Grenade","skinName":"Technologic","itemRarity":"Uncommon"},{"skinId":6849,"itemName":"Smoke Grenade","skinName":"Third Rail","itemRarity":"Epic"},{"skinId":8487,"itemName":"Smoke Grenade","skinName":"Tracker","itemRarity":"Uncommon"},{"skinId":2533,"itemName":"Smoke Grenade","skinName":"Tree Bark","itemRarity":"Uncommon"},{"skinId":6825,"itemName":"Smoke Grenade","skinName":"Tree Ring","itemRarity":"Uncommon"},{"skinId":1510,"itemName":"Smoke Grenade","skinName":"Tropical","itemRarity":"Uncommon"},{"skinId":678,"itemName":"Smoke Grenade","skinName":"Ukiyo-e","itemRarity":"Rare"},{"skinId":8456,"itemName":"Smoke Grenade","skinName":"Uncertain","itemRarity":"Uncommon"},{"skinId":6675,"itemName":"Smoke Grenade","skinName":"Undergrowth","itemRarity":"Uncommon"},{"skinId":11255,"itemName":"Smoke Grenade","skinName":"Wagon Wheel","itemRarity":"Uncommon"},{"skinId":11875,"itemName":"Smoke Grenade","skinName":"Wanted","itemRarity":"Uncommon"},{"skinId":9492,"itemName":"Smoke Grenade","skinName":"Warp","itemRarity":"Uncommon"},{"skinId":11171,"itemName":"Smoke Grenade","skinName":"Water Lantern","itemRarity":"Rare"},{"skinId":1810,"itemName":"Smoke Grenade","skinName":"White Lies","itemRarity":"Uncommon"},{"skinId":8479,"itemName":"Smoke Grenade","skinName":"Wintergreen","itemRarity":"Uncommon"},{"skinId":9479,"itemName":"Smoke Grenade","skinName":"Wiremass","itemRarity":"Uncommon"},{"skinId":1567,"itemName":"Smoke Grenade","skinName":"Yellow Camo","itemRarity":"Uncommon"},{"skinId":578,"itemName":"Smoke Grenade","skinName":"Yellow Triangle","itemRarity":"Uncommon"},{"skinId":1420,"itemName":"Smoke Grenade","skinName":"Zombie Gene","itemRarity":"Uncommon"},{"skinId":1101,"itemName":"Sticky Grenade","skinName":"Alaska","itemRarity":"Rare"},{"skinId":6581,"itemName":"Sticky Grenade","skinName":"Alligator","itemRarity":"Uncommon"},{"skinId":6122,"itemName":"Sticky Grenade","skinName":"Angles","itemRarity":"Uncommon"},{"skinId":2843,"itemName":"Sticky Grenade","skinName":"Bats","itemRarity":"Uncommon"},{"skinId":6269,"itemName":"Sticky Grenade","skinName":"Bloodline","itemRarity":"Rare"},{"skinId":6241,"itemName":"Sticky Grenade","skinName":"Bolted Metal","itemRarity":"Uncommon"},{"skinId":8972,"itemName":"Sticky Grenade","skinName":"Brain Freeze","itemRarity":"Uncommon"},{"skinId":8097,"itemName":"Sticky Grenade","skinName":"Breakup","itemRarity":"Rare"},{"skinId":3081,"itemName":"Sticky Grenade","skinName":"Brushed Red","itemRarity":"Uncommon"},{"skinId":345,"itemName":"Sticky Grenade","skinName":"Brushed Steel","itemRarity":"Rare"},{"skinId":6173,"itemName":"Sticky Grenade","skinName":"Bullet Point","itemRarity":"Uncommon"},{"skinId":1913,"itemName":"Sticky Grenade","skinName":"Calcium Chloride","itemRarity":"Uncommon"},{"skinId":1594,"itemName":"Sticky Grenade","skinName":"Caution","itemRarity":"Uncommon"},{"skinId":8211,"itemName":"Sticky Grenade","skinName":"Cerulean","itemRarity":"Uncommon"},{"skinId":7700,"itemName":"Sticky Grenade","skinName":"Citrine","itemRarity":"Epic"},{"skinId":6530,"itemName":"Sticky Grenade","skinName":"Coat","itemRarity":"Uncommon"},{"skinId":921,"itemName":"Sticky Grenade","skinName":"Color Spectrum","itemRarity":"Epic"},{"skinId":8117,"itemName":"Sticky Grenade","skinName":"Concrete Lightning","itemRarity":"Uncommon"},{"skinId":1877,"itemName":"Sticky Grenade","skinName":"Corpse Digger","itemRarity":"Uncommon"},{"skinId":2785,"itemName":"Sticky Grenade","skinName":"Corroded","itemRarity":"Uncommon"},{"skinId":10526,"itemName":"Sticky Grenade","skinName":"Cosmos","itemRarity":"Epic"},{"skinId":7663,"itemName":"Sticky Grenade","skinName":"Court Blue","itemRarity":"Uncommon"},{"skinId":8145,"itemName":"Sticky Grenade","skinName":"Crackle","itemRarity":"Uncommon"},{"skinId":10798,"itemName":"Sticky Grenade","skinName":"Crane Style","itemRarity":"Uncommon"},{"skinId":6938,"itemName":"Sticky Grenade","skinName":"Crayon","itemRarity":"Uncommon"},{"skinId":450,"itemName":"Sticky Grenade","skinName":"Default","itemRarity":"Common"},{"skinId":217,"itemName":"Sticky Grenade","skinName":"Desert Snake","itemRarity":"Uncommon"},{"skinId":2588,"itemName":"Sticky Grenade","skinName":"Distressed","itemRarity":"Uncommon"},{"skinId":10288,"itemName":"Sticky Grenade","skinName":"Duct Tape","itemRarity":"Uncommon"},{"skinId":2154,"itemName":"Sticky Grenade","skinName":"Easter '20","itemRarity":"Uncommon"},{"skinId":2820,"itemName":"Sticky Grenade","skinName":"Electric","itemRarity":"Rare"},{"skinId":11591,"itemName":"Sticky Grenade","skinName":"Ferrofluid","itemRarity":"Epic"},{"skinId":10902,"itemName":"Sticky Grenade","skinName":"Festival","itemRarity":"Uncommon"},{"skinId":2076,"itemName":"Sticky Grenade","skinName":"Firecracker","itemRarity":"Epic"},{"skinId":1840,"itemName":"Sticky Grenade","skinName":"Flesh Bite","itemRarity":"Uncommon"},{"skinId":6880,"itemName":"Sticky Grenade","skinName":"Forest Fabric","itemRarity":"Uncommon"},{"skinId":7938,"itemName":"Sticky Grenade","skinName":"Forward Motion","itemRarity":"Rare"},{"skinId":2036,"itemName":"Sticky Grenade","skinName":"Frostbite","itemRarity":"Uncommon"},{"skinId":2474,"itemName":"Sticky Grenade","skinName":"Fuel Tank","itemRarity":"Uncommon"},{"skinId":7544,"itemName":"Sticky Grenade","skinName":"Glitch","itemRarity":"Uncommon"},{"skinId":7319,"itemName":"Sticky Grenade","skinName":"Gold Glitter","itemRarity":"Epic"},{"skinId":6906,"itemName":"Sticky Grenade","skinName":"Graceful Blue","itemRarity":"Uncommon"},{"skinId":7731,"itemName":"Sticky Grenade","skinName":"Graceful Gold","itemRarity":"Uncommon"},{"skinId":635,"itemName":"Sticky Grenade","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":2615,"itemName":"Sticky Grenade","skinName":"Grime","itemRarity":"Uncommon"},{"skinId":2022,"itemName":"Sticky Grenade","skinName":"Ground Splitter","itemRarity":"Rare"},{"skinId":8004,"itemName":"Sticky Grenade","skinName":"Hard Water","itemRarity":"Uncommon"},{"skinId":7349,"itemName":"Sticky Grenade","skinName":"Heliotrope","itemRarity":"Uncommon"},{"skinId":2447,"itemName":"Sticky Grenade","skinName":"Hemophiliac","itemRarity":"Uncommon"},{"skinId":2152,"itemName":"Sticky Grenade","skinName":"Holiday Ribbons","itemRarity":"Uncommon"},{"skinId":8929,"itemName":"Sticky Grenade","skinName":"Ice Crystal","itemRarity":"Epic"},{"skinId":2151,"itemName":"Sticky Grenade","skinName":"Jack Frost","itemRarity":"Uncommon"},{"skinId":7433,"itemName":"Sticky Grenade","skinName":"Kapow","itemRarity":"Uncommon"},{"skinId":11028,"itemName":"Sticky Grenade","skinName":"Koi Pond","itemRarity":"Epic"},{"skinId":9314,"itemName":"Sticky Grenade","skinName":"Light Show","itemRarity":"Uncommon"},{"skinId":2150,"itemName":"Sticky Grenade","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":6042,"itemName":"Sticky Grenade","skinName":"Moss Rock","itemRarity":"Uncommon"},{"skinId":1687,"itemName":"Sticky Grenade","skinName":"Neon Green","itemRarity":"Uncommon"},{"skinId":7926,"itemName":"Sticky Grenade","skinName":"Nonconformist","itemRarity":"Uncommon"},{"skinId":2511,"itemName":"Sticky Grenade","skinName":"Oil Spill","itemRarity":"Epic"},{"skinId":5999,"itemName":"Sticky Grenade","skinName":"Old News","itemRarity":"Uncommon"},{"skinId":10996,"itemName":"Sticky Grenade","skinName":"Pagoda","itemRarity":"Rare"},{"skinId":10608,"itemName":"Sticky Grenade","skinName":"Paper Fan","itemRarity":"Uncommon"},{"skinId":7630,"itemName":"Sticky Grenade","skinName":"Party Area","itemRarity":"Epic"},{"skinId":6401,"itemName":"Sticky Grenade","skinName":"Plated Red","itemRarity":"Uncommon"},{"skinId":6726,"itemName":"Sticky Grenade","skinName":"Purple Geode","itemRarity":"Uncommon"},{"skinId":9589,"itemName":"Sticky Grenade","skinName":"Quartz","itemRarity":"Epic"},{"skinId":2907,"itemName":"Sticky Grenade","skinName":"Record Scratch","itemRarity":"Uncommon"},{"skinId":2153,"itemName":"Sticky Grenade","skinName":"Reindeer","itemRarity":"Uncommon"},{"skinId":1153,"itemName":"Sticky Grenade","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":6140,"itemName":"Sticky Grenade","skinName":"Revolution","itemRarity":"Epic"},{"skinId":9754,"itemName":"Sticky Grenade","skinName":"Rewind","itemRarity":"Uncommon"},{"skinId":6749,"itemName":"Sticky Grenade","skinName":"Ritual","itemRarity":"Epic"},{"skinId":7295,"itemName":"Sticky Grenade","skinName":"Royal Flush","itemRarity":"Rare"},{"skinId":2719,"itemName":"Sticky Grenade","skinName":"Rusted","itemRarity":"Uncommon"},{"skinId":6597,"itemName":"Sticky Grenade","skinName":"Sakura","itemRarity":"Rare"},{"skinId":1143,"itemName":"Sticky Grenade","skinName":"Section","itemRarity":"Rare"},{"skinId":8132,"itemName":"Sticky Grenade","skinName":"Serpentine","itemRarity":"Epic"},{"skinId":2757,"itemName":"Sticky Grenade","skinName":"Sight Unseen","itemRarity":"Rare"},{"skinId":2267,"itemName":"Sticky Grenade","skinName":"Slate","itemRarity":"Uncommon"},{"skinId":2595,"itemName":"Sticky Grenade","skinName":"Snake Bite","itemRarity":"Epic"},{"skinId":1133,"itemName":"Sticky Grenade","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":1262,"itemName":"Sticky Grenade","skinName":"Star","itemRarity":"Rare"},{"skinId":6869,"itemName":"Sticky Grenade","skinName":"Subterfuge","itemRarity":"Rare"},{"skinId":6514,"itemName":"Sticky Grenade","skinName":"Taped Flecktarn","itemRarity":"Rare"},{"skinId":1221,"itemName":"Sticky Grenade","skinName":"Task Force 141","itemRarity":"Rare"},{"skinId":2531,"itemName":"Sticky Grenade","skinName":"Tree Bark","itemRarity":"Uncommon"},{"skinId":6824,"itemName":"Sticky Grenade","skinName":"Tree Ring","itemRarity":"Uncommon"},{"skinId":8454,"itemName":"Sticky Grenade","skinName":"Uncertain","itemRarity":"Uncommon"},{"skinId":6674,"itemName":"Sticky Grenade","skinName":"Undergrowth","itemRarity":"Uncommon"},{"skinId":9063,"itemName":"Sticky Grenade","skinName":"Warhead","itemRarity":"Uncommon"},{"skinId":2374,"itemName":"Sticky Grenade","skinName":"Wasteland Red","itemRarity":"Uncommon"},{"skinId":1809,"itemName":"Sticky Grenade","skinName":"White Lies","itemRarity":"Uncommon"},{"skinId":9480,"itemName":"Sticky Grenade","skinName":"Wiremass","itemRarity":"Uncommon"},{"skinId":6193,"itemName":"Sticky Grenade","skinName":"Wrath Black & Gold","itemRarity":"Epic"},{"skinId":2309,"itemName":"Sticky Grenade","skinName":"Wrecked","itemRarity":"Rare"},{"skinId":1566,"itemName":"Sticky Grenade","skinName":"Yellow Camo","itemRarity":"Uncommon"},{"skinId":4836,"itemName":"Striker","skinName":"Abominable","itemRarity":"Common"},{"skinId":2938,"itemName":"Striker","skinName":"Aeronaut","itemRarity":"Epic"},{"skinId":6574,"itemName":"Striker","skinName":"Alligator","itemRarity":"Uncommon"},{"skinId":4859,"itemName":"Striker","skinName":"Anaconda","itemRarity":"Common"},{"skinId":6113,"itemName":"Striker","skinName":"Angles","itemRarity":"Uncommon"},{"skinId":4829,"itemName":"Striker","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":4831,"itemName":"Striker","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":4828,"itemName":"Striker","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":356,"itemName":"Striker","skinName":"Ashen Viper","itemRarity":"Rare"},{"skinId":4818,"itemName":"Striker","skinName":"Asphalt","itemRarity":"Common"},{"skinId":4830,"itemName":"Striker","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":1614,"itemName":"Striker","skinName":"Bandit","itemRarity":"Rare"},{"skinId":1652,"itemName":"Striker","skinName":"Barricade","itemRarity":"Epic"},{"skinId":2239,"itemName":"Striker","skinName":"Bats","itemRarity":"Uncommon"},{"skinId":4817,"itemName":"Striker","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":4856,"itemName":"Striker","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":4842,"itemName":"Striker","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":1002,"itemName":"Striker","skinName":"Brushed Green","itemRarity":"Uncommon"},{"skinId":4860,"itemName":"Striker","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":4852,"itemName":"Striker","skinName":"Canopy","itemRarity":"Common"},{"skinId":4810,"itemName":"Striker","skinName":"Chain Link","itemRarity":"Common"},{"skinId":4808,"itemName":"Striker","skinName":"China Lake","itemRarity":"Common"},{"skinId":4857,"itemName":"Striker","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":4804,"itemName":"Striker","skinName":"Commando","itemRarity":"Common"},{"skinId":6929,"itemName":"Striker","skinName":"Crayon","itemRarity":"Uncommon"},{"skinId":4819,"itemName":"Striker","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7065,"itemName":"Striker","skinName":"Damascus","itemRarity":"Common"},{"skinId":4835,"itemName":"Striker","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":9436,"itemName":"Striker","skinName":"Data Blocks","itemRarity":"Uncommon"},{"skinId":432,"itemName":"Striker","skinName":"Default","itemRarity":"Common"},{"skinId":4840,"itemName":"Striker","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":4845,"itemName":"Striker","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":4803,"itemName":"Striker","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8538,"itemName":"Striker","skinName":"Diamond","itemRarity":"Common"},{"skinId":481,"itemName":"Striker","skinName":"Digital Exotic","itemRarity":"Rare"},{"skinId":4814,"itemName":"Striker","skinName":"Dirt","itemRarity":"Common"},{"skinId":2582,"itemName":"Striker","skinName":"Distressed","itemRarity":"Uncommon"},{"skinId":1306,"itemName":"Striker","skinName":"Electric","itemRarity":"Rare"},{"skinId":4837,"itemName":"Striker","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":4838,"itemName":"Striker","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":42,"itemName":"Striker","skinName":"Flowing Bronze","itemRarity":"Rare"},{"skinId":4822,"itemName":"Striker","skinName":"Foliage","itemRarity":"Common"},{"skinId":6617,"itemName":"Striker","skinName":"Forest Felt","itemRarity":"Uncommon"},{"skinId":4825,"itemName":"Striker","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":4862,"itemName":"Striker","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":4861,"itemName":"Striker","skinName":"Gecko","itemRarity":"Common"},{"skinId":7535,"itemName":"Striker","skinName":"Glitch","itemRarity":"Uncommon"},{"skinId":4863,"itemName":"Striker","skinName":"Gold","itemRarity":"Common"},{"skinId":630,"itemName":"Striker","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":4813,"itemName":"Striker","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":1448,"itemName":"Striker","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":9000,"itemName":"Striker","skinName":"Heliotrope","itemRarity":"Uncommon"},{"skinId":2792,"itemName":"Striker","skinName":"Holiday Ribbons","itemRarity":"Uncommon"},{"skinId":4826,"itemName":"Striker","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":1175,"itemName":"Striker","skinName":"Irradiated Amethyst","itemRarity":"Rare"},{"skinId":512,"itemName":"Striker","skinName":"Jubokko","itemRarity":"Rare"},{"skinId":7485,"itemName":"Striker","skinName":"Kaboom","itemRarity":"Rare"},{"skinId":4848,"itemName":"Striker","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":4855,"itemName":"Striker","skinName":"Komodo","itemRarity":"Common"},{"skinId":137,"itemName":"Striker","skinName":"Lightwave","itemRarity":"Rare"},{"skinId":4847,"itemName":"Striker","skinName":"Marshland","itemRarity":"Common"},{"skinId":6774,"itemName":"Striker","skinName":"Melon","itemRarity":"Uncommon"},{"skinId":627,"itemName":"Striker","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":4844,"itemName":"Striker","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":4806,"itemName":"Striker","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":4815,"itemName":"Striker","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":4834,"itemName":"Striker","skinName":"Mudslide","itemRarity":"Common"},{"skinId":4820,"itemName":"Striker","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":1220,"itemName":"Striker","skinName":"New Year '20","itemRarity":"Epic"},{"skinId":4811,"itemName":"Striker","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":4851,"itemName":"Striker","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":4833,"itemName":"Striker","skinName":"Overgrown","itemRarity":"Common"},{"skinId":6858,"itemName":"Striker","skinName":"Pastel Poison","itemRarity":"Epic"},{"skinId":4858,"itemName":"Striker","skinName":"Pink Python","itemRarity":"Common"},{"skinId":4809,"itemName":"Striker","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":4807,"itemName":"Striker","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":6394,"itemName":"Striker","skinName":"Plated Red","itemRarity":"Uncommon"},{"skinId":4864,"itemName":"Striker","skinName":"Platinum","itemRarity":"Common"},{"skinId":8031,"itemName":"Striker","skinName":"Pocket Shock","itemRarity":"Uncommon"},{"skinId":6717,"itemName":"Striker","skinName":"Purple Geode","itemRarity":"Uncommon"},{"skinId":4853,"itemName":"Striker","skinName":"Python","itemRarity":"Common"},{"skinId":4854,"itemName":"Striker","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":2900,"itemName":"Striker","skinName":"Record Scratch","itemRarity":"Uncommon"},{"skinId":561,"itemName":"Striker","skinName":"Red","itemRarity":"Uncommon"},{"skinId":10631,"itemName":"Striker","skinName":"Red Sun","itemRarity":"Uncommon"},{"skinId":4841,"itemName":"Striker","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":6904,"itemName":"Striker","skinName":"Reflective","itemRarity":"Rare"},{"skinId":11628,"itemName":"Striker","skinName":"Repellent","itemRarity":"Uncommon"},{"skinId":1962,"itemName":"Striker","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":4805,"itemName":"Striker","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":996,"itemName":"Striker","skinName":"Riveted Green","itemRarity":"Rare"},{"skinId":11856,"itemName":"Striker","skinName":"Ropework","itemRarity":"Uncommon"},{"skinId":2244,"itemName":"Striker","skinName":"Royal Force","itemRarity":"Rare"},{"skinId":4827,"itemName":"Striker","skinName":"Ruins","itemRarity":"Common"},{"skinId":4846,"itemName":"Striker","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":6152,"itemName":"Striker","skinName":"Sewed Leather","itemRarity":"Rare"},{"skinId":4832,"itemName":"Striker","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":4812,"itemName":"Striker","skinName":"Smoke","itemRarity":"Common"},{"skinId":1368,"itemName":"Striker","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":2705,"itemName":"Striker","skinName":"Stained Steel","itemRarity":"Rare"},{"skinId":7998,"itemName":"Striker","skinName":"Stalwart","itemRarity":"Rare"},{"skinId":8912,"itemName":"Striker","skinName":"Starlight","itemRarity":"Rare"},{"skinId":4843,"itemName":"Striker","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":464,"itemName":"Striker","skinName":"Swamped","itemRarity":"Uncommon"},{"skinId":4816,"itemName":"Striker","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":4839,"itemName":"Striker","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":4821,"itemName":"Striker","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":257,"itemName":"Striker","skinName":"Tropical","itemRarity":"Uncommon"},{"skinId":4823,"itemName":"Striker","skinName":"Tundra","itemRarity":"Common"},{"skinId":8447,"itemName":"Striker","skinName":"Uncertain","itemRarity":"Uncommon"},{"skinId":4824,"itemName":"Striker","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":4850,"itemName":"Striker","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":4849,"itemName":"Striker","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":1559,"itemName":"Striker","skinName":"Yellow Camo","itemRarity":"Uncommon"},{"skinId":1309,"itemName":"Striker","skinName":"Zombie Gene","itemRarity":"Uncommon"},{"skinId":6068,"itemName":"Thermite","skinName":"Default","itemRarity":"Common"},{"skinId":10621,"itemName":"Thermite","skinName":"Inferno","itemRarity":"Rare"},{"skinId":9772,"itemName":"Thermite","skinName":"Meltdown","itemRarity":"Epic"},{"skinId":9080,"itemName":"Thermite","skinName":"Noir","itemRarity":"Epic"},{"skinId":7602,"itemName":"Thermite","skinName":"Pantomime","itemRarity":"Epic"},{"skinId":10815,"itemName":"Thermite","skinName":"Sakura Storm","itemRarity":"Epic"},{"skinId":9662,"itemName":"Thermite","skinName":"Supernova","itemRarity":"Rare"},{"skinId":9445,"itemName":"Thermite","skinName":"VHS Glitch","itemRarity":"Epic"},{"skinId":1862,"itemName":"Trip Mine","skinName":"Afterlife","itemRarity":"Rare"},{"skinId":5942,"itemName":"Trip Mine","skinName":"Ammo Box","itemRarity":"Uncommon"},{"skinId":6123,"itemName":"Trip Mine","skinName":"Angles","itemRarity":"Uncommon"},{"skinId":5921,"itemName":"Trip Mine","skinName":"Artillery","itemRarity":"Epic"},{"skinId":6242,"itemName":"Trip Mine","skinName":"Bolted Metal","itemRarity":"Uncommon"},{"skinId":8971,"itemName":"Trip Mine","skinName":"Brain Freeze","itemRarity":"Uncommon"},{"skinId":3082,"itemName":"Trip Mine","skinName":"Brushed Red","itemRarity":"Uncommon"},{"skinId":6174,"itemName":"Trip Mine","skinName":"Bullet Point","itemRarity":"Uncommon"},{"skinId":11640,"itemName":"Trip Mine","skinName":"Carrion","itemRarity":"Uncommon"},{"skinId":3062,"itemName":"Trip Mine","skinName":"Catacombs","itemRarity":"Rare"},{"skinId":8207,"itemName":"Trip Mine","skinName":"Cerulean","itemRarity":"Uncommon"},{"skinId":6788,"itemName":"Trip Mine","skinName":"Championship Streak","itemRarity":"Rare"},{"skinId":8067,"itemName":"Trip Mine","skinName":"Chevalier","itemRarity":"Epic"},{"skinId":10026,"itemName":"Trip Mine","skinName":"Collapse","itemRarity":"Rare"},{"skinId":8146,"itemName":"Trip Mine","skinName":"Crackle","itemRarity":"Uncommon"},{"skinId":6937,"itemName":"Trip Mine","skinName":"Crayon","itemRarity":"Uncommon"},{"skinId":194,"itemName":"Trip Mine","skinName":"Dark Victorian","itemRarity":"Rare"},{"skinId":9441,"itemName":"Trip Mine","skinName":"Data Blocks","itemRarity":"Uncommon"},{"skinId":453,"itemName":"Trip Mine","skinName":"Default","itemRarity":"Common"},{"skinId":10491,"itemName":"Trip Mine","skinName":"Eyes in the Dark","itemRarity":"Uncommon"},{"skinId":10901,"itemName":"Trip Mine","skinName":"Festival","itemRarity":"Uncommon"},{"skinId":7546,"itemName":"Trip Mine","skinName":"Glitch","itemRarity":"Uncommon"},{"skinId":7262,"itemName":"Trip Mine","skinName":"Graceful Blue","itemRarity":"Uncommon"},{"skinId":7958,"itemName":"Trip Mine","skinName":"Hard Water","itemRarity":"Uncommon"},{"skinId":7350,"itemName":"Trip Mine","skinName":"Heliotrope","itemRarity":"Uncommon"},{"skinId":11882,"itemName":"Trip Mine","skinName":"Lost Gothic","itemRarity":"Legendary"},{"skinId":7329,"itemName":"Trip Mine","skinName":"Lovestruck","itemRarity":"Rare"},{"skinId":6041,"itemName":"Trip Mine","skinName":"Moss Rock","itemRarity":"Uncommon"},{"skinId":6000,"itemName":"Trip Mine","skinName":"Old News","itemRarity":"Uncommon"},{"skinId":10579,"itemName":"Trip Mine","skinName":"Paper Fan","itemRarity":"Uncommon"},{"skinId":9613,"itemName":"Trip Mine","skinName":"Phobos","itemRarity":"Epic"},{"skinId":8043,"itemName":"Trip Mine","skinName":"Pocket Shock","itemRarity":"Uncommon"},{"skinId":1171,"itemName":"Trip Mine","skinName":"Pulsar","itemRarity":"Rare"},{"skinId":8197,"itemName":"Trip Mine","skinName":"Purple Prism","itemRarity":"Rare"},{"skinId":8010,"itemName":"Trip Mine","skinName":"Radar","itemRarity":"Epic"},{"skinId":2910,"itemName":"Trip Mine","skinName":"Record Scratch","itemRarity":"Uncommon"},{"skinId":10634,"itemName":"Trip Mine","skinName":"Red Sun","itemRarity":"Uncommon"},{"skinId":9752,"itemName":"Trip Mine","skinName":"Rewind","itemRarity":"Uncommon"},{"skinId":11099,"itemName":"Trip Mine","skinName":"Rock Cairn","itemRarity":"Uncommon"},{"skinId":11861,"itemName":"Trip Mine","skinName":"Ropework","itemRarity":"Uncommon"},{"skinId":6208,"itemName":"Trip Mine","skinName":"Ruby","itemRarity":"Epic"},{"skinId":11085,"itemName":"Trip Mine","skinName":"Sea Serpent","itemRarity":"Rare"},{"skinId":1728,"itemName":"Trip Mine","skinName":"Skulls & Blood","itemRarity":"Rare"},{"skinId":3047,"itemName":"Trip Mine","skinName":"Strafing Run","itemRarity":"Epic"},{"skinId":8769,"itemName":"Trip Mine","skinName":"Tracker","itemRarity":"Uncommon"},{"skinId":10139,"itemName":"Trip Mine","skinName":"Vagabond","itemRarity":"Epic"},{"skinId":11737,"itemName":"Trip Mine","skinName":"Volution","itemRarity":"Epic"},{"skinId":9064,"itemName":"Trip Mine","skinName":"Warhead","itemRarity":"Uncommon"},{"skinId":11606,"itemName":"Trip Mine","skinName":"Watcher","itemRarity":"Uncommon"},{"skinId":10124,"itemName":"Trip Mine","skinName":"Yellow Abstract","itemRarity":"Uncommon"},{"skinId":88,"itemName":"Trip Mine","skinName":"Zero-G","itemRarity":"Epic"},{"skinId":2927,"itemName":"Trophy System","skinName":"Battle Dressed","itemRarity":"Rare"},{"skinId":8970,"itemName":"Trophy System","skinName":"Brain Freeze","itemRarity":"Uncommon"},{"skinId":9439,"itemName":"Trophy System","skinName":"Data Blocks","itemRarity":"Uncommon"},{"skinId":456,"itemName":"Trophy System","skinName":"Default","itemRarity":"Common"},{"skinId":11041,"itemName":"Trophy System","skinName":"Dragonfly","itemRarity":"Uncommon"},{"skinId":10151,"itemName":"Trophy System","skinName":"Emergence","itemRarity":"Epic"},{"skinId":7685,"itemName":"Trophy System","skinName":"Enlightened","itemRarity":"Epic"},{"skinId":9991,"itemName":"Trophy System","skinName":"Gas Cloud","itemRarity":"Uncommon"},{"skinId":8980,"itemName":"Trophy System","skinName":"Gold Bar","itemRarity":"Epic"},{"skinId":10477,"itemName":"Trophy System","skinName":"Graveyard Watch","itemRarity":"Epic"},{"skinId":7955,"itemName":"Trophy System","skinName":"Hard Water","itemRarity":"Uncommon"},{"skinId":11100,"itemName":"Trophy System","skinName":"Rock Cairn","itemRarity":"Uncommon"},{"skinId":10990,"itemName":"Trophy System","skinName":"Sakura Storm","itemRarity":"Epic"},{"skinId":11841,"itemName":"Trophy System","skinName":"Stampede","itemRarity":"Epic"},{"skinId":8249,"itemName":"Trophy System","skinName":"Tagged","itemRarity":"Uncommon"},{"skinId":9677,"itemName":"Trophy System","skinName":"Warmth","itemRarity":"Uncommon"},{"skinId":8715,"itemName":"Trophy System","skinName":"Winterwood","itemRarity":"Rare"},{"skinId":10125,"itemName":"Trophy System","skinName":"Yellow Abstract","itemRarity":"Uncommon"},{"skinId":8413,"itemName":"Trophy System","skinName":"Zero-G","itemRarity":"Epic"},{"skinId":3802,"itemName":"Type 25","skinName":"Abominable","itemRarity":"Common"},{"skinId":2859,"itemName":"Type 25","skinName":"Ammo Box","itemRarity":"Uncommon"},{"skinId":3825,"itemName":"Type 25","skinName":"Anaconda","itemRarity":"Common"},{"skinId":3795,"itemName":"Type 25","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":504,"itemName":"Type 25","skinName":"April Fool's Day","itemRarity":"Rare"},{"skinId":3797,"itemName":"Type 25","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":2354,"itemName":"Type 25","skinName":"Arctic Digital","itemRarity":"Uncommon"},{"skinId":3794,"itemName":"Type 25","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":3784,"itemName":"Type 25","skinName":"Asphalt","itemRarity":"Common"},{"skinId":3796,"itemName":"Type 25","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":1613,"itemName":"Type 25","skinName":"Bandit","itemRarity":"Rare"},{"skinId":1400,"itemName":"Type 25","skinName":"Bats","itemRarity":"Uncommon"},{"skinId":3783,"itemName":"Type 25","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":709,"itemName":"Type 25","skinName":"Bloody Vengeance","itemRarity":"Legendary"},{"skinId":2248,"itemName":"Type 25","skinName":"Blue Carbon","itemRarity":"Rare"},{"skinId":3822,"itemName":"Type 25","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":3808,"itemName":"Type 25","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":3826,"itemName":"Type 25","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":3818,"itemName":"Type 25","skinName":"Canopy","itemRarity":"Common"},{"skinId":884,"itemName":"Type 25","skinName":"Cardboard","itemRarity":"Epic"},{"skinId":3776,"itemName":"Type 25","skinName":"Chain Link","itemRarity":"Common"},{"skinId":3774,"itemName":"Type 25","skinName":"China Lake","itemRarity":"Common"},{"skinId":3823,"itemName":"Type 25","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":3770,"itemName":"Type 25","skinName":"Commando","itemRarity":"Common"},{"skinId":3785,"itemName":"Type 25","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":505,"itemName":"Type 25","skinName":"Cubic Illusion","itemRarity":"Rare"},{"skinId":11192,"itemName":"Type 25","skinName":"Cutting Edge","itemRarity":"Epic"},{"skinId":1739,"itemName":"Type 25","skinName":"Cyberspace","itemRarity":"Epic"},{"skinId":8919,"itemName":"Type 25","skinName":"Dalmatian","itemRarity":"Uncommon"},{"skinId":7048,"itemName":"Type 25","skinName":"Damascus","itemRarity":"Common"},{"skinId":3801,"itemName":"Type 25","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":8262,"itemName":"Type 25","skinName":"Dark Light","itemRarity":"Rare"},{"skinId":2460,"itemName":"Type 25","skinName":"Deep Forest","itemRarity":"Rare"},{"skinId":549,"itemName":"Type 25","skinName":"Deep Shark","itemRarity":"Rare"},{"skinId":416,"itemName":"Type 25","skinName":"Default","itemRarity":"Common"},{"skinId":9211,"itemName":"Type 25","skinName":"Defibrilator","itemRarity":"Epic"},{"skinId":2763,"itemName":"Type 25","skinName":"Demise","itemRarity":"Epic"},{"skinId":11513,"itemName":"Type 25","skinName":"Denim","itemRarity":"Uncommon"},{"skinId":3806,"itemName":"Type 25","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":3811,"itemName":"Type 25","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":322,"itemName":"Type 25","skinName":"Desert Snake","itemRarity":"Uncommon"},{"skinId":3769,"itemName":"Type 25","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8521,"itemName":"Type 25","skinName":"Diamond","itemRarity":"Common"},{"skinId":3780,"itemName":"Type 25","skinName":"Dirt","itemRarity":"Common"},{"skinId":506,"itemName":"Type 25","skinName":"Evil Chip","itemRarity":"Rare"},{"skinId":3803,"itemName":"Type 25","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":3804,"itemName":"Type 25","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":9053,"itemName":"Type 25","skinName":"Fission","itemRarity":"Rare"},{"skinId":2064,"itemName":"Type 25","skinName":"Flesh Bite","itemRarity":"Uncommon"},{"skinId":3788,"itemName":"Type 25","skinName":"Foliage","itemRarity":"Common"},{"skinId":6874,"itemName":"Type 25","skinName":"Forest Fabric","itemRarity":"Uncommon"},{"skinId":6318,"itemName":"Type 25","skinName":"Forest Floor","itemRarity":"Rare"},{"skinId":3791,"itemName":"Type 25","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":3828,"itemName":"Type 25","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":3827,"itemName":"Type 25","skinName":"Gecko","itemRarity":"Common"},{"skinId":1182,"itemName":"Type 25","skinName":"Geometry","itemRarity":"Epic"},{"skinId":3829,"itemName":"Type 25","skinName":"Gold","itemRarity":"Common"},{"skinId":869,"itemName":"Type 25","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":3779,"itemName":"Type 25","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":7316,"itemName":"Type 25","skinName":"Heartbreaker","itemRarity":"Epic"},{"skinId":3792,"itemName":"Type 25","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":7941,"itemName":"Type 25","skinName":"Infiltrate","itemRarity":"Epic"},{"skinId":6381,"itemName":"Type 25","skinName":"Jungle Cat","itemRarity":"Rare"},{"skinId":7425,"itemName":"Type 25","skinName":"Kapow","itemRarity":"Uncommon"},{"skinId":3814,"itemName":"Type 25","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":3821,"itemName":"Type 25","skinName":"Komodo","itemRarity":"Common"},{"skinId":3813,"itemName":"Type 25","skinName":"Marshland","itemRarity":"Common"},{"skinId":1509,"itemName":"Type 25","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":3810,"itemName":"Type 25","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":3772,"itemName":"Type 25","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":2600,"itemName":"Type 25","skinName":"Moss","itemRarity":"Rare"},{"skinId":3781,"itemName":"Type 25","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":3800,"itemName":"Type 25","skinName":"Mudslide","itemRarity":"Common"},{"skinId":3786,"itemName":"Type 25","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":1313,"itemName":"Type 25","skinName":"Neon Tiger","itemRarity":"Uncommon"},{"skinId":3777,"itemName":"Type 25","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":3817,"itemName":"Type 25","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":7916,"itemName":"Type 25","skinName":"Nonconformist","itemRarity":"Uncommon"},{"skinId":10543,"itemName":"Type 25","skinName":"Oni","itemRarity":"Epic"},{"skinId":1490,"itemName":"Type 25","skinName":"Open Circuit","itemRarity":"Rare"},{"skinId":3799,"itemName":"Type 25","skinName":"Overgrown","itemRarity":"Common"},{"skinId":10994,"itemName":"Type 25","skinName":"Pagoda","itemRarity":"Rare"},{"skinId":9622,"itemName":"Type 25","skinName":"Password Protected","itemRarity":"Epic"},{"skinId":3824,"itemName":"Type 25","skinName":"Pink Python","itemRarity":"Common"},{"skinId":3775,"itemName":"Type 25","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":943,"itemName":"Type 25","skinName":"Pinstripes","itemRarity":"Rare"},{"skinId":3773,"itemName":"Type 25","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":3830,"itemName":"Type 25","skinName":"Platinum","itemRarity":"Common"},{"skinId":3819,"itemName":"Type 25","skinName":"Python","itemRarity":"Common"},{"skinId":3820,"itemName":"Type 25","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":3807,"itemName":"Type 25","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":799,"itemName":"Type 25","skinName":"Reindeer","itemRarity":"Uncommon"},{"skinId":806,"itemName":"Type 25","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":3771,"itemName":"Type 25","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":2886,"itemName":"Type 25","skinName":"Ruby","itemRarity":"Epic"},{"skinId":3793,"itemName":"Type 25","skinName":"Ruins","itemRarity":"Common"},{"skinId":2709,"itemName":"Type 25","skinName":"Rusted","itemRarity":"Uncommon"},{"skinId":3812,"itemName":"Type 25","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":154,"itemName":"Type 25","skinName":"Sand Dunes","itemRarity":"Uncommon"},{"skinId":10324,"itemName":"Type 25","skinName":"Sanguine","itemRarity":"Epic"},{"skinId":3798,"itemName":"Type 25","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":10941,"itemName":"Type 25","skinName":"Side Scale","itemRarity":"Rare"},{"skinId":1788,"itemName":"Type 25","skinName":"Silver Ghoul","itemRarity":"Epic"},{"skinId":3778,"itemName":"Type 25","skinName":"Smoke","itemRarity":"Common"},{"skinId":11616,"itemName":"Type 25","skinName":"Steel Blue","itemRarity":"Epic"},{"skinId":309,"itemName":"Type 25","skinName":"Steel Defense","itemRarity":"Rare"},{"skinId":3809,"itemName":"Type 25","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":3782,"itemName":"Type 25","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":1424,"itemName":"Type 25","skinName":"Technologic","itemRarity":"Uncommon"},{"skinId":1946,"itemName":"Type 25","skinName":"Thermonuclear","itemRarity":"Epic"},{"skinId":3805,"itemName":"Type 25","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":3787,"itemName":"Type 25","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":253,"itemName":"Type 25","skinName":"Tropical","itemRarity":"Uncommon"},{"skinId":3789,"itemName":"Type 25","skinName":"Tundra","itemRarity":"Common"},{"skinId":3790,"itemName":"Type 25","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":3816,"itemName":"Type 25","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":3815,"itemName":"Type 25","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":2825,"itemName":"UL736","skinName":"Abnormality","itemRarity":"Uncommon"},{"skinId":4588,"itemName":"UL736","skinName":"Abominable","itemRarity":"Common"},{"skinId":6561,"itemName":"UL736","skinName":"Adaptable","itemRarity":"Rare"},{"skinId":9652,"itemName":"UL736","skinName":"All Out War","itemRarity":"Epic"},{"skinId":4611,"itemName":"UL736","skinName":"Anaconda","itemRarity":"Common"},{"skinId":4581,"itemName":"UL736","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":111,"itemName":"UL736","skinName":"Aqua","itemRarity":"Uncommon"},{"skinId":4583,"itemName":"UL736","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":4580,"itemName":"UL736","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":358,"itemName":"UL736","skinName":"Ashen Viper","itemRarity":"Rare"},{"skinId":4570,"itemName":"UL736","skinName":"Asphalt","itemRarity":"Common"},{"skinId":1096,"itemName":"UL736","skinName":"Aurora Borealis","itemRarity":"Rare"},{"skinId":4582,"itemName":"UL736","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":1012,"itemName":"UL736","skinName":"Bats","itemRarity":"Uncommon"},{"skinId":4569,"itemName":"UL736","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":4608,"itemName":"UL736","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":4594,"itemName":"UL736","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":2893,"itemName":"UL736","skinName":"Bogged Down","itemRarity":"Rare"},{"skinId":6231,"itemName":"UL736","skinName":"Bolted Metal","itemRarity":"Uncommon"},{"skinId":4612,"itemName":"UL736","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":9007,"itemName":"UL736","skinName":"Burial Ground","itemRarity":"Rare"},{"skinId":4604,"itemName":"UL736","skinName":"Canopy","itemRarity":"Common"},{"skinId":4562,"itemName":"UL736","skinName":"Chain Link","itemRarity":"Common"},{"skinId":4560,"itemName":"UL736","skinName":"China Lake","itemRarity":"Common"},{"skinId":4609,"itemName":"UL736","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":6524,"itemName":"UL736","skinName":"Coat","itemRarity":"Uncommon"},{"skinId":4556,"itemName":"UL736","skinName":"Commando","itemRarity":"Common"},{"skinId":1747,"itemName":"UL736","skinName":"Contamination","itemRarity":"Epic"},{"skinId":7657,"itemName":"UL736","skinName":"Court Blue","itemRarity":"Uncommon"},{"skinId":8140,"itemName":"UL736","skinName":"Crackle","itemRarity":"Uncommon"},{"skinId":10791,"itemName":"UL736","skinName":"Crane Style","itemRarity":"Uncommon"},{"skinId":4571,"itemName":"UL736","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7061,"itemName":"UL736","skinName":"Damascus","itemRarity":"Common"},{"skinId":4587,"itemName":"UL736","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":488,"itemName":"UL736","skinName":"Dead Zebra","itemRarity":"Uncommon"},{"skinId":414,"itemName":"UL736","skinName":"Default","itemRarity":"Common"},{"skinId":2999,"itemName":"UL736","skinName":"Depth Charge","itemRarity":"Legendary"},{"skinId":4592,"itemName":"UL736","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":4597,"itemName":"UL736","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":4555,"itemName":"UL736","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":8534,"itemName":"UL736","skinName":"Diamond","itemRarity":"Common"},{"skinId":7903,"itemName":"UL736","skinName":"Direct Heat","itemRarity":"Epic"},{"skinId":4566,"itemName":"UL736","skinName":"Dirt","itemRarity":"Common"},{"skinId":4589,"itemName":"UL736","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":698,"itemName":"UL736","skinName":"Fashion Purple","itemRarity":"Uncommon"},{"skinId":4590,"itemName":"UL736","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":1846,"itemName":"UL736","skinName":"Flesh Bite","itemRarity":"Uncommon"},{"skinId":4574,"itemName":"UL736","skinName":"Foliage","itemRarity":"Common"},{"skinId":6751,"itemName":"UL736","skinName":"Forest Felt","itemRarity":"Uncommon"},{"skinId":6790,"itemName":"UL736","skinName":"Forester","itemRarity":"Epic"},{"skinId":4577,"itemName":"UL736","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":4614,"itemName":"UL736","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":4613,"itemName":"UL736","skinName":"Gecko","itemRarity":"Common"},{"skinId":4615,"itemName":"UL736","skinName":"Gold","itemRarity":"Common"},{"skinId":7725,"itemName":"UL736","skinName":"Graceful Gold","itemRarity":"Uncommon"},{"skinId":1325,"itemName":"UL736","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":2607,"itemName":"UL736","skinName":"Grime","itemRarity":"Uncommon"},{"skinId":4565,"itemName":"UL736","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":1244,"itemName":"UL736","skinName":"Hazardous","itemRarity":"Uncommon"},{"skinId":2841,"itemName":"UL736","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":1383,"itemName":"UL736","skinName":"Holiday Ribbons","itemRarity":"Uncommon"},{"skinId":4578,"itemName":"UL736","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":8429,"itemName":"UL736","skinName":"Impulse","itemRarity":"Rare"},{"skinId":386,"itemName":"UL736","skinName":"Jungle Terrain","itemRarity":"Uncommon"},{"skinId":4600,"itemName":"UL736","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":4607,"itemName":"UL736","skinName":"Komodo","itemRarity":"Common"},{"skinId":8733,"itemName":"UL736","skinName":"Labyrinth","itemRarity":"Rare"},{"skinId":1792,"itemName":"UL736","skinName":"Lurk","itemRarity":"Rare"},{"skinId":618,"itemName":"UL736","skinName":"Mardi Gras","itemRarity":"Rare"},{"skinId":4599,"itemName":"UL736","skinName":"Marshland","itemRarity":"Common"},{"skinId":6778,"itemName":"UL736","skinName":"Melon","itemRarity":"Uncommon"},{"skinId":856,"itemName":"UL736","skinName":"Meteor Shower","itemRarity":"Epic"},{"skinId":6001,"itemName":"UL736","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":1353,"itemName":"UL736","skinName":"Mettle","itemRarity":"Uncommon"},{"skinId":4596,"itemName":"UL736","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":8223,"itemName":"UL736","skinName":"Moonlight Wisp","itemRarity":"Rare"},{"skinId":4558,"itemName":"UL736","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":4567,"itemName":"UL736","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":4586,"itemName":"UL736","skinName":"Mudslide","itemRarity":"Common"},{"skinId":4572,"itemName":"UL736","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":6419,"itemName":"UL736","skinName":"Nightfall","itemRarity":"Uncommon"},{"skinId":4563,"itemName":"UL736","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":4603,"itemName":"UL736","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":2959,"itemName":"UL736","skinName":"Obstacle","itemRarity":"Rare"},{"skinId":2698,"itemName":"UL736","skinName":"Oil Spill","itemRarity":"Epic"},{"skinId":4585,"itemName":"UL736","skinName":"Overgrown","itemRarity":"Common"},{"skinId":11458,"itemName":"UL736","skinName":"Overpower","itemRarity":"Rare"},{"skinId":8937,"itemName":"UL736","skinName":"Pine Cone","itemRarity":"Uncommon"},{"skinId":4610,"itemName":"UL736","skinName":"Pink Python","itemRarity":"Common"},{"skinId":4561,"itemName":"UL736","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":4559,"itemName":"UL736","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":4616,"itemName":"UL736","skinName":"Platinum","itemRarity":"Common"},{"skinId":4605,"itemName":"UL736","skinName":"Python","itemRarity":"Common"},{"skinId":6918,"itemName":"UL736","skinName":"Quartz","itemRarity":"Epic"},{"skinId":4606,"itemName":"UL736","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":559,"itemName":"UL736","skinName":"Red","itemRarity":"Uncommon"},{"skinId":4593,"itemName":"UL736","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":1268,"itemName":"UL736","skinName":"Reindeer","itemRarity":"Uncommon"},{"skinId":786,"itemName":"UL736","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":4557,"itemName":"UL736","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":11857,"itemName":"UL736","skinName":"Ropework","itemRarity":"Uncommon"},{"skinId":4579,"itemName":"UL736","skinName":"Ruins","itemRarity":"Common"},{"skinId":4598,"itemName":"UL736","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":286,"itemName":"UL736","skinName":"Sand Dunes","itemRarity":"Uncommon"},{"skinId":10528,"itemName":"UL736","skinName":"Sea Serpent","itemRarity":"Rare"},{"skinId":4584,"itemName":"UL736","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":4564,"itemName":"UL736","skinName":"Smoke","itemRarity":"Common"},{"skinId":9704,"itemName":"UL736","skinName":"Solar Wind","itemRarity":"Epic"},{"skinId":2574,"itemName":"UL736","skinName":"Spoils","itemRarity":"Rare"},{"skinId":5967,"itemName":"UL736","skinName":"Strongbox","itemRarity":"Rare"},{"skinId":4595,"itemName":"UL736","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":4568,"itemName":"UL736","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":991,"itemName":"UL736","skinName":"Teal Steal","itemRarity":"Epic"},{"skinId":4591,"itemName":"UL736","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":4573,"itemName":"UL736","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":4575,"itemName":"UL736","skinName":"Tundra","itemRarity":"Common"},{"skinId":4576,"itemName":"UL736","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":4602,"itemName":"UL736","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":4601,"itemName":"UL736","skinName":"Warcom Greens","itemRarity":"Common"},{"skinId":9059,"itemName":"UL736","skinName":"Warhead","itemRarity":"Uncommon"},{"skinId":2246,"itemName":"UL736","skinName":"Wasteland","itemRarity":"Epic"},{"skinId":141,"itemName":"UL736","skinName":"Zombie Gene","itemRarity":"Uncommon"},{"skinId":4464,"itemName":"XPR-50","skinName":"Abominable","itemRarity":"Common"},{"skinId":1100,"itemName":"XPR-50","skinName":"Alaska","itemRarity":"Rare"},{"skinId":4487,"itemName":"XPR-50","skinName":"Anaconda","itemRarity":"Common"},{"skinId":420,"itemName":"XPR-50","skinName":"Ancient Runes","itemRarity":"Rare"},{"skinId":4457,"itemName":"XPR-50","skinName":"Angles (Grindable)","itemRarity":"Common"},{"skinId":580,"itemName":"XPR-50","skinName":"April Fool's Day","itemRarity":"Rare"},{"skinId":6294,"itemName":"XPR-50","skinName":"Arachnophobia","itemRarity":"Epic"},{"skinId":4459,"itemName":"XPR-50","skinName":"Arctic Abstract","itemRarity":"Common"},{"skinId":2658,"itemName":"XPR-50","skinName":"Arctic Digital","itemRarity":"Uncommon"},{"skinId":4456,"itemName":"XPR-50","skinName":"Arctic Seafoam","itemRarity":"Common"},{"skinId":4446,"itemName":"XPR-50","skinName":"Asphalt","itemRarity":"Common"},{"skinId":964,"itemName":"XPR-50","skinName":"Aurora Borealis","itemRarity":"Rare"},{"skinId":4458,"itemName":"XPR-50","skinName":"Autumn Dazzle","itemRarity":"Common"},{"skinId":2941,"itemName":"XPR-50","skinName":"Battle Dressed","itemRarity":"Rare"},{"skinId":4445,"itemName":"XPR-50","skinName":"Black Top (Grindable)","itemRarity":"Common"},{"skinId":4484,"itemName":"XPR-50","skinName":"Blue Iguana","itemRarity":"Common"},{"skinId":4470,"itemName":"XPR-50","skinName":"Blue Tiger","itemRarity":"Common"},{"skinId":6230,"itemName":"XPR-50","skinName":"Bolted Metal","itemRarity":"Uncommon"},{"skinId":4488,"itemName":"XPR-50","skinName":"Bullsnake","itemRarity":"Common"},{"skinId":4480,"itemName":"XPR-50","skinName":"Canopy","itemRarity":"Common"},{"skinId":4438,"itemName":"XPR-50","skinName":"Chain Link","itemRarity":"Common"},{"skinId":4436,"itemName":"XPR-50","skinName":"China Lake","itemRarity":"Common"},{"skinId":4485,"itemName":"XPR-50","skinName":"Chupacabra","itemRarity":"Common"},{"skinId":4432,"itemName":"XPR-50","skinName":"Commando","itemRarity":"Common"},{"skinId":1867,"itemName":"XPR-50","skinName":"Corpse Digger","itemRarity":"Uncommon"},{"skinId":2779,"itemName":"XPR-50","skinName":"Corroded","itemRarity":"Uncommon"},{"skinId":9523,"itemName":"XPR-50","skinName":"Cosmic Wave","itemRarity":"Rare"},{"skinId":4447,"itemName":"XPR-50","skinName":"Crime Scene","itemRarity":"Common"},{"skinId":7059,"itemName":"XPR-50","skinName":"Damascus","itemRarity":"Common"},{"skinId":4463,"itemName":"XPR-50","skinName":"Dank Forest","itemRarity":"Common"},{"skinId":8269,"itemName":"XPR-50","skinName":"Dark Tech","itemRarity":"Epic"},{"skinId":6078,"itemName":"XPR-50","skinName":"Default","itemRarity":"Common"},{"skinId":4468,"itemName":"XPR-50","skinName":"Desert Cat","itemRarity":"Common"},{"skinId":4473,"itemName":"XPR-50","skinName":"Desert Hybrid","itemRarity":"Common"},{"skinId":4431,"itemName":"XPR-50","skinName":"Desert Snake (Grindable)","itemRarity":"Common"},{"skinId":2337,"itemName":"XPR-50","skinName":"Desperate Measures","itemRarity":"Rare"},{"skinId":8532,"itemName":"XPR-50","skinName":"Diamond","itemRarity":"Common"},{"skinId":4442,"itemName":"XPR-50","skinName":"Dirt","itemRarity":"Common"},{"skinId":10455,"itemName":"XPR-50","skinName":"Easter '20","itemRarity":"Uncommon"},{"skinId":4465,"itemName":"XPR-50","skinName":"Faded Veil","itemRarity":"Common"},{"skinId":4466,"itemName":"XPR-50","skinName":"Feral Beast","itemRarity":"Common"},{"skinId":4450,"itemName":"XPR-50","skinName":"Foliage","itemRarity":"Common"},{"skinId":4453,"itemName":"XPR-50","skinName":"Frostbite (Grindable)","itemRarity":"Common"},{"skinId":4490,"itemName":"XPR-50","skinName":"Gartersnake","itemRarity":"Common"},{"skinId":4489,"itemName":"XPR-50","skinName":"Gecko","itemRarity":"Common"},{"skinId":669,"itemName":"XPR-50","skinName":"Geometry","itemRarity":"Epic"},{"skinId":4491,"itemName":"XPR-50","skinName":"Gold","itemRarity":"Common"},{"skinId":1329,"itemName":"XPR-50","skinName":"Gridiron Football","itemRarity":"Uncommon"},{"skinId":2019,"itemName":"XPR-50","skinName":"Ground Splitter","itemRarity":"Rare"},{"skinId":4441,"itemName":"XPR-50","skinName":"H2O (Grindable)","itemRarity":"Common"},{"skinId":2240,"itemName":"XPR-50","skinName":"Hearts","itemRarity":"Uncommon"},{"skinId":2241,"itemName":"XPR-50","skinName":"Holiday Ribbons","itemRarity":"Uncommon"},{"skinId":4454,"itemName":"XPR-50","skinName":"Ice Breaker","itemRarity":"Common"},{"skinId":607,"itemName":"XPR-50","skinName":"Jingle Bells","itemRarity":"Uncommon"},{"skinId":4476,"itemName":"XPR-50","skinName":"Kill Brush","itemRarity":"Common"},{"skinId":4483,"itemName":"XPR-50","skinName":"Komodo","itemRarity":"Common"},{"skinId":2885,"itemName":"XPR-50","skinName":"Marquis","itemRarity":"Epic"},{"skinId":4475,"itemName":"XPR-50","skinName":"Marshland","itemRarity":"Common"},{"skinId":2835,"itemName":"XPR-50","skinName":"Melon","itemRarity":"Uncommon"},{"skinId":773,"itemName":"XPR-50","skinName":"Meteors","itemRarity":"Uncommon"},{"skinId":4472,"itemName":"XPR-50","skinName":"Modern Woodland","itemRarity":"Common"},{"skinId":4434,"itemName":"XPR-50","skinName":"Moroccan Snake","itemRarity":"Common"},{"skinId":4443,"itemName":"XPR-50","skinName":"Moss (Grindable)","itemRarity":"Common"},{"skinId":4462,"itemName":"XPR-50","skinName":"Mudslide","itemRarity":"Common"},{"skinId":4448,"itemName":"XPR-50","skinName":"Neon Pink","itemRarity":"Common"},{"skinId":4439,"itemName":"XPR-50","skinName":"Nightfall (Grindable)","itemRarity":"Common"},{"skinId":4479,"itemName":"XPR-50","skinName":"Nightfrost","itemRarity":"Common"},{"skinId":5989,"itemName":"XPR-50","skinName":"Old News","itemRarity":"Uncommon"},{"skinId":4461,"itemName":"XPR-50","skinName":"Overgrown","itemRarity":"Common"},{"skinId":11156,"itemName":"XPR-50","skinName":"Paper Star","itemRarity":"Uncommon"},{"skinId":4486,"itemName":"XPR-50","skinName":"Pink Python","itemRarity":"Common"},{"skinId":4437,"itemName":"XPR-50","skinName":"Pinstripe Suit","itemRarity":"Common"},{"skinId":4435,"itemName":"XPR-50","skinName":"Pitter Patter","itemRarity":"Common"},{"skinId":4492,"itemName":"XPR-50","skinName":"Platinum","itemRarity":"Common"},{"skinId":4481,"itemName":"XPR-50","skinName":"Python","itemRarity":"Common"},{"skinId":4482,"itemName":"XPR-50","skinName":"Rattlesnake","itemRarity":"Common"},{"skinId":4469,"itemName":"XPR-50","skinName":"Red Tiger","itemRarity":"Common"},{"skinId":583,"itemName":"XPR-50","skinName":"Red Triangle","itemRarity":"Uncommon"},{"skinId":11626,"itemName":"XPR-50","skinName":"Repellent","itemRarity":"Uncommon"},{"skinId":768,"itemName":"XPR-50","skinName":"Reticulated","itemRarity":"Uncommon"},{"skinId":4433,"itemName":"XPR-50","skinName":"Rip 'N Tear","itemRarity":"Common"},{"skinId":998,"itemName":"XPR-50","skinName":"Riveted Green","itemRarity":"Rare"},{"skinId":11095,"itemName":"XPR-50","skinName":"Rock Cairn","itemRarity":"Uncommon"},{"skinId":4455,"itemName":"XPR-50","skinName":"Ruins","itemRarity":"Common"},{"skinId":2713,"itemName":"XPR-50","skinName":"Rusted","itemRarity":"Uncommon"},{"skinId":4474,"itemName":"XPR-50","skinName":"Sand Dance","itemRarity":"Common"},{"skinId":4460,"itemName":"XPR-50","skinName":"Sharp Edges","itemRarity":"Common"},{"skinId":4440,"itemName":"XPR-50","skinName":"Smoke","itemRarity":"Common"},{"skinId":1369,"itemName":"XPR-50","skinName":"St. Patrick's Day","itemRarity":"Uncommon"},{"skinId":1545,"itemName":"XPR-50","skinName":"Sunspot","itemRarity":"Epic"},{"skinId":4471,"itemName":"XPR-50","skinName":"Swamp (Grindable)","itemRarity":"Common"},{"skinId":9318,"itemName":"XPR-50","skinName":"Synapse","itemRarity":"Rare"},{"skinId":4444,"itemName":"XPR-50","skinName":"Tagged (Grindable)","itemRarity":"Common"},{"skinId":1951,"itemName":"XPR-50","skinName":"Tangled Web","itemRarity":"Rare"},{"skinId":4467,"itemName":"XPR-50","skinName":"Tiger Stripes","itemRarity":"Common"},{"skinId":4449,"itemName":"XPR-50","skinName":"Trailblazer","itemRarity":"Common"},{"skinId":769,"itemName":"XPR-50","skinName":"Tropical","itemRarity":"Uncommon"},{"skinId":4451,"itemName":"XPR-50","skinName":"Tundra","itemRarity":"Common"},{"skinId":4452,"itemName":"XPR-50","skinName":"Undergrowth (Grindable)","itemRarity":"Common"},{"skinId":4478,"itemName":"XPR-50","skinName":"Warcom Blues","itemRarity":"Common"},{"skinId":4477,"itemName":"XPR-50","skinName":"Warcom Greens","itemRarity":"Common"}] +\ No newline at end of file diff --git a/util/Data/statsIndex.json b/util/Data/statsIndex.json @@ -0,0 +1,48 @@ +{ + "attachmentTypes": [ + "Optics", + "Underbarrel", + "Rear Grip", + "Laser", + "Muzzle", + "Barrel", + "Stock", + "Ammunition", + "Perk", + "Trigger Action", + "Guard", + "Bolt", + "Bowstring", + "Limb", + "Smoothbore" + ], + "weaponTypes": [ + "AR", + "Sniper", + "LMG", + "SMG", + "Shotgun", + "Marksman", + "Pistol" + ], + "firingModes": [ + "Full Auto", + "Semi Auto", + "Burst", + "Break Action", + "Pump Action", + "Lever Action", + "Bolt Action" + ], + "penetrationLevels": [ + "Zero", + "Low", + "Medium", + "High" + ], + "reloadTypes": [ + "Magazine", + "Single", + "Belt" + ] +} +\ No newline at end of file diff --git a/util/Data/statsNames.json b/util/Data/statsNames.json @@ -0,0 +1,24 @@ +{ + "firingMode": "Firing Mode", + "rof": "Rate of fire", + "penetrationLevel": "Penetration Level", + "adsTime": "ADS Time", + "adsZoom": "ADS Zoom%", + "bht": "Breath Hold Time", + "bsa": "Bullet Spread Accuracy", + "bulletVelocity": "Bullet Velocity", + "bulletsPerShot": "Bullets Per Shot", + "burstRpmDelay": "Burst Delay", + "hipfireSpread": "Hipfire Spread", + "magazineSize": "Magazine Size", + "reserve": "Magazine Reserve", + "reloadTime": "Reload Time", + "reloadCancel": "Reload Cancel", + "ReloadTimeEmpty": "Empty Reload Time", + "reloadCancelEmpty": "Empty Reload Cancel", + "stf": "Sprint to fire", + "raiseTime": "Raise Time", + "dropTime": "Drop Time", + "sprinting": "Sprinting Speed", + "walking": "Movement Speed" +} diff --git a/util/Data/truth.json b/util/Data/truth.json @@ -0,0 +1,63 @@ +[ + "When was the last time you lied?", + "When was the last time you cried?", + "What's your biggest fear?", + "What's your biggest fantasy?", + "Do you have any fetishes?", + "What's something you're glad your mum doesn't know about you?", + "Have you ever cheated on someone?", + "What's the worst thing you've ever done?", + "What's a secret you've never told anyone?", + "Do you have a hidden talent?", + "Who was your first celebrity crush?", + "What are your thoughts on polyamory?", + "What's the worst intimate experience you've ever had?", + "What's the best intimate experience you've ever had?", + "Have you ever cheated in an exam?", + "What's the most drunk you've ever been?", + "Have you ever broken the law?", + "What's the most embarrassing thing you've ever done?", + "What's your biggest insecurity?", + "Have you ever stayed friends with someone because it benefitted you beyond just the friendship?", + "What's the biggest mistake you've ever made?", + "What's the most disgusting thing you've ever done?", + "Who would you like to kiss in this room?", + "What's one thing you hate people knowing about you?", + "What's the worst thing anyone's ever done to you?", + "What's the best thing anyone's ever done for you?", + "Have you ever had a run in with the law?", + "What's your worst habit?", + "What's the most embarrassing thing you've done in a taxi?", + "What's the worst thing you've ever said to anyone?", + "Have you ever peed in the shower?", + "What's the strangest dream you've had?", + "Have you ever been caught doing something you shouldn't have?", + "What's the worst date you've been on?", + "What's the best date you've been on?", + "What happened on the latest night out you've ever had?", + "What's your biggest regret?", + "What's the biggest misconception about you?", + "Have you ever said something you regret about someone in this room?", + "What's one thing you wish people knew about you?", + "Where's the weirdest place you've had sex?", + "Why did your last relationship break down?", + "Have you ever lied to get out of a bad date?", + "What's the most trouble you've been in?", + "When did you last have sex outside?", + "What's the worst thing you've lied about?", + "What's one thing you wish you'd lied about?", + "What's the best piece of advice you've been given?", + "What's the most you've spent on a night out?", + "Name a time you think you were a bad partner", + "What's your guilty pleasure?", + "What's one thing you only do when you're alone?", + "If you had to get back with an ex, who would you choose?", + "If you had to cut one friend out of your life, who would it be?", + "Do you have a favourite friend?", + "Do you have a favourite sibling?", + "What's the strangest rumour you've heard about yourself?", + "What's your biggest turn on?", + "What's the silliest reason you've left a club early?", + "What have you purchased that's been the biggest waste of money?", + "If you could swap lives with someone in this room, who would it be?" +] +\ No newline at end of file diff --git a/util/Data/wyr.json b/util/Data/wyr.json @@ -0,0 +1,127 @@ +[ + "Would you rather always be 10 minutes late or always be 20 minutes early?", + "Would you rather lose all of your money and valuables or all of the pictures you have ever taken?", + "Would you rather be able to see 10 minutes into your own future or 10 minutes into the future of anyone but yourself?", + "Would you rather be famous when you are alive and forgotten when you die or unknown when you are alive but famous after you die?", + "Would you rather go to jail for 4 years for something you didn't do or get away with something horrible you did but always live in fear of being caught?", + "Would you rather accidentally be responsible for the death of a child or accidentally be responsible for the deaths of three adults?", + "Would you rather your shirts be always two sizes too big or one size too small?", + "Would you rather live in the wilderness far from civilization or live on the streets of a city as a homeless person?", + "Would you rather the general public think you are a horrible person but your family be very proud of you or your family think you are a horrible person but the general public be very proud of you?", + "Would you rather live your entire life in a virtual reality where all your wishes are granted or in the real world?", + "Would you rather be alone for the rest of your life or always be surrounded by annoying people?", + "Would you rather never use social media sites / apps again or never watch another movie or TV show?", + "Would you rather have an easy job working for someone else or work for yourself but work incredibly hard?", + "Would you rather be the first person to explore a planet or be the inventor of a drug that cures a deadly disease?", + "Would you rather have a horrible short term memory or a horrible long term memory?", + "Would you rather be completely invisible for one day or be able to fly for one day?", + "Would you rather be locked in a room that is constantly dark for a week or a room that is constantly bright for a week?", + "Would you rather be poor but help people or become incredibly rich by hurting people?", + "Would you rather live without the internet or live without AC and heating?", + "Would you rather have a horrible job, but be able to retire comfortably in 10 years or have your dream job, but have to work until the day you die?", + "Would you rather find your true love or a suitcase with five million dollars inside?", + "Would you rather be able to teleport anywhere or be able to read minds?", + "Would you rather die in 20 years with no regrets or die in 50 years with many regrets?", + "Would you rather be feared by all or loved by all?", + "Would you rather know when you are going to die or how you are going to die? (You can't change the time or method of your death.)", + "Would you rather be transported permanently 500 years into the future or 500 years into the past?", + "Would you rather never be able to use a touchscreen or never be able to use a keyboard and mouse?", + "Would you rather be able to control fire or water?", + "Would you rather have everything you eat be too salty or not salty enough no matter how much salt you add?", + "Would you rather have hands that kept growing as you got older or feet that kept growing as you got older?", + "Would you rather have unlimited sushi for life or unlimited tacos for life? (both are amazingly delicious and can be any type of sushi / taco you want)", + "Would you rather be unable to use search engines or unable to use social media?", + "Would you rather give up bathing for a month or give up the internet for a month?", + "Would you rather donate your body to science or donate your organs to people who need them?", + "Would you rather go back to age 5 with everything you know now or know now everything your future self will learn?", + "Would you rather relive the same day for 365 days or lose a year of your life?", + "Would you rather have a golden voice or a silver tongue?", + "Would you rather be able to control animals (but not humans) with your mind or control electronics with your mind?", + "Would you rather suddenly be elected a senator or suddenly become a CEO of a major company. (You won't have any more knowledge about how to do either job than you do right now.)", + "Would you rather sell all of your possessions or sell one of your organs?", + "Would you rather lose all of your memories from birth to now or lose your ability to make new long term memories?", + "Would you rather be infamous in history books or be forgotten after your death?", + "Would you rather never have to work again or never have to sleep again (you won't feel tired or suffer negative health effects)?", + "Would you rather be beautiful / handsome but stupid or intelligent but ugly?", + "Would you rather get one free round trip international plane ticket every year or be able to fly domestic anytime for free?", + "Would you rather be balding but fit or overweight with a full head of hair?", + "Would you rather be able to be free from junk mail or free from email spam for the rest of your life?", + "Would you rather be fluent in all languages and never be able to travel or be able to travel anywhere for a year but never be able to learn a word of a different language?", + "Would you rather have an unlimited international first class ticket or never have to pay for food at restaurants?", + "Would you rather see what was behind every closed door or be able to guess the combination of every safe on the first try?", + "Would you rather live in virtual reality where you are all powerful or live in the real world and be able to go anywhere but not be able to interact with anyone or anything?", + "Would you rather never be able to eat meat or never be able to eat vegetables?", + "Would you rather give up watching TV / movies for a year or give up playing games for a year?", + "Would you rather always be able to see 5 minutes into the future or always be able to see 100 years into the future?", + "Would you rather super sensitive taste or super sensitive hearing?", + "Would you rather be a practicing doctor or a medical researcher?", + "Would you rather be married to a 10 with a bad personality or a 6 with an amazing personality?", + "Would you rather never be able to drink sodas like coke again or only be able to drink sodas and nothing else?", + "Would you rather have amazingly fast typing / texting speed or be able to read ridiculously fast?", + "Would you rather know the history of every object you touched or be able to talk to animals?", + "Would you rather be a reverse centaur or a reverse mermaid/merman?", + "Would you rather have constantly dry eyes or a constant runny nose?", + "Would you rather be a famous director or a famous actor?", + "Would you rather not be able to open any closed doors (locked or unlocked) or not be able to close any open doors?", + "Would you rather give up all drinks except for water or give up eating anything that was cooked in an oven?", + "Would you rather be constantly tired no matter how much you sleep or constantly hungry no matter what you eat? Assuming that there are no health problems besides the feeling of hunger and sleepiness.", + "Would you rather have to read aloud every word you read or sing everything you say out loud?", + "Would you rather have whatever you are thinking appear above your head for everyone to see or have absolutely everything you do live streamed for anyone to see?", + "Would you rather be put in a maximum security federal prison with the hardest of the hardened criminals for one year or be put in a relatively relaxed prison where wall street types are held for ten years?", + "Would you rather have a clown only you can see that follows you everywhere and just stands silently in a corner watching you without doing or saying anything or have a real life stalker who dresses like the Easter bunny that everyone can see?", + "Would you rather kill one innocent person or five people who committed minor crimes?", + "Would you rather have a completely automated home or a self-driving car?", + "Would you rather work very hard at a rewarding job or hardly have to work at a job that isn't rewarding?", + "Would you rather be held in high regard by your parents or your friends?", + "Would you rather be an amazing painter or a brilliant mathematician?", + "Would you rather be reincarnated as a fly or just cease to exist after you die?", + "Would you rather be able to go to any theme park in the world for free for the rest of your life or eat for free at any drive through restaurant for the rest of your life?", + "Would you rather be only able to watch the few movies with a rotten tomatoes score of 95-100% or only be able to watch the majority of movies with a rotten tomatoes score of 94% and lower?", + "Would you rather never lose your phone again or never lose your keys again?", + "Would you rather have one real get out of jail free card or a key that opens any door?", + "Would you rather have a criminal justice system that actually works and is fair or an administrative government that is free of corruption?", + "Would you rather have real political power but be relatively poor or be ridiculously rich and have no political power?", + "Would you rather have the power to gently nudge anyone's decisions or have complete puppet master control of five people?", + "Would you rather have everyone laugh at your jokes but not find anyone else's jokes funny or have no one laugh at your jokes but you still find other people's jokes funny?", + "Would you rather be the absolute best at something that no one takes seriously or be well above average but not anywhere near the best at something well respected?", + "Would you rather lose the ability to read or lose the ability to speak?", + "Would you rather live under a sky with no stars at night or live under a sky with no clouds during the day?", + "Would you rather humans go to the moon again or go to mars?", + "Would you rather never get angry or never be envious?", + "Would you rather have free Wi-Fi wherever you go or be able to drink unlimited free coffee at any coffee shop?", + "Would you rather be compelled to high five everyone you meet or be compelled to give wedgies to anyone in a green shirt?", + "Would you rather live in a house with see-through walls in a city or in the same see-though house but in the middle of a forest far from civilization?", + "Would you rather take amazing selfies but all of your other pictures are horrible or take breathtaking photographs of anything but yourself?", + "Would you rather use a push lawn mower with a bar that is far too high or far too low?", + "Would you rather be able to dodge anything no matter how fast it's moving or be able ask any three questions and have them answered accurately?", + "Would you rather live on the beach or in a cabin in the woods?", + "Would you rather lose your left hand or right foot?", + "Would you rather face your fears or forget that you have them?", + "Would you rather be forced to dance every time you heard music or be forced to sing along to any song you heard?", + "Would you rather have skin that changes color based on your emotions or tattoos appear all over your body depicting what you did yesterday?", + "Would you rather live in a utopia as a normal person or in a dystopia but you are the supreme ruler?", + "Would you rather snitch on your best friend for a crime they committed or go to jail for the crime they committed?", + "Would you rather have everything on your phone right now (browsing history, photos, etc.) made public to anyone who Google's your name or never use a cell phone again?", + "Would you rather eat a box of dry spaghetti noodles or a cup of uncooked rice?", + "Would you rather wake up as a new random person every year and have full control of them for the whole year or once a week spend a day inside a stranger without having any control of them?", + "Would you rather be born again in a totally different life or born again with all the knowledge you have now?", + "Would you rather be lost in a bad part of town or lost in the forest?", + "Would you rather never get a paper cut again or never get something stuck in your eye again?", + "Would you rather lose your passport or lose your wallet?", + "Would you rather randomly time travel +/- 20 years every time you fart or teleport to a different place on earth (on land, not water) every time you sneeze?", + "Would you rather the aliens that make first contact be robotic or organic?", + "Would you rather be famous but ridiculed or be just a normal person?", + "Would you rather be an amazing virtuoso at any instrument but only if you play naked or be able to speak any language but only if close your eyes and dance while you are doing it?", + "Would you rather have a flying carpet or a car that can drive underwater?", + "Would you rather be an amazing artist but not be able to see any of the art you created or be an amazing musician but not be able to hear any of the music you create?", + "Would you rather there be a perpetual water balloon war going on in your city / town or a perpetual food fight?", + "Would you rather find five dollars on the ground or find all of your missing socks?", + "Would you rather never have another embarrassing fall in public or never feel the need to pass gas in public again?", + "Would you rather be able to talk to land animals, animals that fly, or animals that live under the water?", + "Would you rather lose your best friend or all of your friends except for your best friend?", + "Would you rather it be impossible for you to be woken up for 11 straight hours every day but you wake up feeling amazing or you can be woken up normally but never feel totally rested?", + "Would you rather find true love today or win the lottery next year?", + "Would you rather be forced to sing along or dance to every single song you hear?", + "Would you rather team up with Wonder Woman or Captain Marvel?", + "Would you rather cuddle a koala or pal around with a panda?" +] +\ No newline at end of file diff --git a/util/assets/images/cod_logo.svg b/util/assets/images/cod_logo.svg @@ -0,0 +1 @@ +<svg id="SvgjsSvg1001" width="288" height="288" xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.com/svgjs"><defs id="SvgjsDefs1002"></defs><g id="SvgjsG1008" transform="matrix(1,0,0,1,0,0)"><svg xmlns="http://www.w3.org/2000/svg" class="icon" viewBox="0 0 24 24" width="288" height="288"><path d="M2.8 15.3v3.5S6.4 22 12 22s9.2-3.2 9.2-3.2v-3.5s-5.2-3.1-9.2-6c-4 2.9-9.2 6-9.2 6zM18.2 17c-2.9 1.5-6.2 1.4-6.2 1.4s-3.3.1-6.2-1.4c1.9-1.1 4.3-2.7 6.2-4.1 2 1.4 4.4 3 6.2 4.1z" fill="#ffffff" class="color000 svgShape"></path><path d="M12 2C8 4.9 2.8 8 2.8 8v3.5S8.2 8.3 12 5.6c3.8 2.7 9.2 5.9 9.2 5.9V8S16 4.9 12 2z" fill="#ffffff" class="color000 svgShape"></path></svg></g></svg> +\ No newline at end of file diff --git a/util/assets/images/nyx_black.svg b/util/assets/images/nyx_black.svg @@ -0,0 +1,20 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" + "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<svg version="1.0" xmlns="http://www.w3.org/2000/svg" + width="1000.000000pt" height="1034.000000pt" viewBox="0 0 1000.000000 1034.000000" + preserveAspectRatio="xMidYMid meet"> + +<g transform="translate(0.000000,1034.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"> +<path d="M590 5165 l0 -5170 680 680 680 680 0 3810 0 3810 -680 680 -680 680 +0 -5170z"/> +<path d="M8857 9692 l-637 -637 0 -3890 0 -3890 640 -640 640 -640 0 5168 c0 +2842 -1 5167 -3 5167 -1 0 -289 -287 -640 -638z"/> +<path d="M6353 7388 l-1313 -1313 -1270 1270 -1270 1270 0 -905 0 -905 817 +-817 818 -818 -818 -818 -817 -817 0 -810 0 -810 2585 2585 2585 2585 -2 808 +-3 807 -1312 -1312z"/> +<path d="M5742 4467 l-452 -452 1190 -1190 1190 -1190 0 905 0 905 -738 738 +-737 737 -453 -453z"/> +</g> +</svg> diff --git a/util/assets/images/nyx_logo_transparent.webp b/util/assets/images/nyx_logo_transparent.webp Binary files differ. diff --git a/util/assets/images/nyx_white.svg b/util/assets/images/nyx_white.svg @@ -0,0 +1 @@ +<svg id="SvgjsSvg1001" width="288" height="288" xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.com/svgjs"><defs id="SvgjsDefs1002"></defs><g id="SvgjsG1008" transform="matrix(1,0,0,1,0,0)"><svg xmlns="http://www.w3.org/2000/svg" width="288" height="288" version="1.0" viewBox="0 0 1000 1034"><g transform="matrix(.1 0 0 -.1 0 1034)" fill="#ffffff" class="color000 svgShape" data-darkreader-inline-fill="" style="--darkreader-inline-fill:#181a1b;"><path d="M590 5165l0-5170 680 680 680 680 0 3810 0 3810-680 680-680 680 0-5170zM8857 9692l-637-637 0-3890 0-3890 640-640 640-640 0 5168c0 2842-1 5167-3 5167-1 0-289-287-640-638zM6353 7388l-1313-1313-1270 1270-1270 1270 0-905 0-905 817-817 818-818-818-818-817-817 0-810 0-810 2585 2585 2585 2585-2 808-3 807-1312-1312zM5742 4467l-452-452 1190-1190 1190-1190 0 905 0 905-738 738-737 737-453-453z" fill="#ffffff" class="color000 svgShape" data-darkreader-inline-fill="" style="--darkreader-inline-fill:#181a1b;"></path></g></svg></g></svg> +\ No newline at end of file diff --git a/util/dist/cmds.js b/util/dist/cmds.js @@ -1,39 +1,39 @@ const { readdirSync } = require("fs"); const utils = require("../../util/functions/function"); function cmds() { - let categories = []; - readdirSync("./commands").forEach(dir => { - const dirs = readdirSync(`./commands/${dir}`).filter(file => - file.endsWith(".js") - ); - let commands = []; - dirs.map(cmd => { - const file = require(`../../commands/${dir}/${cmd}`); - commands.push({ - name: file.name ? file.name : "No command name", - description: file.description - ? file.description - : "No command description", - aliases: file.aliases ? file.aliases : "No command aliases", - usage: file.usage ? `C.${file.name} ${file.usage}` : `C.${file.name}`, - timeout: file.timeout - ? utils.ms(file.timeout, { long: true }) - : "No command cooldown", - BotPermission: file.BotPerm - ? file.BotPerm - : "No required bot permission", - UserPermission: file.UserPerm - ? file.UserPerm - : "No required user permission", - status: file.status ? file.status : true, - }); - }); - let data = { - name: dir, - commands, - }; - categories.push(data); - }); - return categories; + const categories = []; + readdirSync("./commands").forEach(dir => { + const dirs = readdirSync(`./commands/${dir}`).filter(file => + file.endsWith(".js"), + ); + const commands = []; + dirs.map(cmd => { + const file = require(`../../commands/${dir}/${cmd}`); + commands.push({ + name: file.name ? file.name : "No command name", + description: file.description + ? file.description + : "No command description", + aliases: file.aliases ? file.aliases : "No command aliases", + usage: file.usage ? `C.${file.name} ${file.usage}` : `C.${file.name}`, + timeout: file.timeout + ? utils.ms(file.timeout, { long: true }) + : "No command cooldown", + BotPermission: file.BotPerms + ? file.BotPerms + : "No required bot permission", + UserPermission: file.UserPerms + ? file.UserPerms + : "No required user permission", + status: file.status ? file.status : true, + }); + }); + const data = { + name: dir, + commands, + }; + categories.push(data); + }); + return categories; } module.exports = { cmds }; diff --git a/util/dist/err.js b/util/dist/err.js @@ -1,5 +1,5 @@ const { MessageEmbed } = require("discord.js"); -const client = require("../../bot"); +const client = require("../.."); /** * @param {String} message * @param {String} dir @@ -197,15 +197,15 @@ module.exports = async (message, dir, file, err) => { break; } const pull = require(`../../commands/${dir}/${file}`); - let pre = await client.prefix(message); - let embed = new MessageEmbed() + const pre = await client.prefix(message); + const embed = new MessageEmbed() .setAuthor( `Error from ${message.author.tag}`, message.author.displayAvatarURL({ dynamic: true }) ) .setColor("RED") .setDescription( - `${require("../../config.json").ca}\nUse \`${pre}help ${ + `${require("../../config").ca}\nUse \`${pre}help ${ pull.name }\` to get help\n\n ` ) @@ -216,7 +216,7 @@ module.exports = async (message, dir, file, err) => { .setTimestamp() .setThumbnail(client.user.displayAvatarURL({ dynamic: false })) .setURL(client.web) - .setFooter(`Made by ${client.author}`); + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()); const msg = await message.reply({ embeds: [embed] }); setTimeout(function () { msg.delete(); diff --git a/util/dist/handler.js b/util/dist/handler.js @@ -1,83 +1,54 @@ -const { glob } = require("glob"); -const { promisify } = require("util"); -const { Client } = require("discord.js"); -const globPromise = promisify(glob); -/** - * @param {Client} client - */ +const fs = require("fs"); +const cmds = []; +const ownercmds = []; module.exports = async client => { - const commands = await globPromise(`${process.cwd()}/commands/**/*.js`); - commands.map(value => { - if (!value.includes("Owner")) { - const file = require(value); - const splitted = value.split("/"); - const directory = splitted[splitted.length - 2]; - if (file.name) { - const properties = { directory, ...file }; - client.commands.set(file.name, properties); - } - } - }); - const events = await globPromise(`${process.cwd()}/events/*.js`); - events.map(value => require(value)); - const paths = await globPromise(`${process.cwd()}/cat/*.js`); - paths.map(value => { - const file = require(value); - const splitted = value.split("/"); - const directory = splitted[splitted.length - 2]; - if (file.name) { - const properties = { directory, ...file }; - client.hide.set(file.name, properties); - } + fs.readdirSync("./events").forEach(file => { + require(`${process.cwd()}/events/${file}`); }); - const cmds = []; - const scommands = await globPromise(`${process.cwd()}/command/*/*.js`); - scommands.map(value => { - if (!value.includes("Owner")) { - const file = require(value); - const splitted = value.split("/"); - const directory = splitted[splitted.length - 2]; - if (file.name) { - const properties = { directory, ...file }; - client.slashCommands.set(file.name, properties); - } - if (["MESSAGE", "USER"].includes(file.type)) delete file.description; - if (file.userPerms) file.defaultPermission = false; - cmds.push(file); + fs.readdirSync("./command").forEach(directory => { + if (directory !== "Owner") { + const commands = fs.readdirSync(`./command/${directory}/`); + commands.map(value => { + const file = require(`${process.cwd()}/command/${directory}/${value}`); + if (file.name) { + const properties = { directory, ...file }; + client.slashCommands.set(file.name, properties); + } + if (["MESSAGE", "USER"].includes(file.type)) delete file.description; + if (file.UserPerms) file.defaultPermission = false; + cmds.push(file); + }); } }); - const ownercmds = []; - const owners = await globPromise(`${process.cwd()}/command/Owner/*.js`); - owners.map(value => { - const file = require(value); + fs.readdirSync("./command/Owner").forEach(f => { + const file = require(`${process.cwd()}/command/Owner/${f}`); client.hide.set(file.name, file); if (["MESSAGE", "USER"].includes(file.type)) delete file.description; - if (file.userPerms) file.defaultPermission = false; + if (file.UserPerms) file.defaultPermission = false; ownercmds.push(file); }); client.on("ready", async () => { - const g = client.guilds.cache.get("840225563193114624"); - await g.commands.set(ownercmds); + const gg = client.guilds.cache.get("840225563193114624"); + await gg.commands.set(ownercmds); await client.application.commands.set(cmds).then(async cmd => { - const getroles = name => { - const perms = cmds.find(n => n.name == name).userPerms; - if (!perms) return null; - return g.roles.cache.filter( - z => z.permissions.has(perms) && !z.managed - ); - }; - const fullPermissions = cmd.reduce((accumulator, v) => { - const roles = getroles(v.name); - if (!roles) return accumulator; - const permissions = roles.reduce((a, w) => { - return [...a, { id: w.id, type: "ROLE", permission: true }]; + client.guilds.cache.forEach(g => { + const getroles = name => { + const perms = cmds.find(n => n.name == name).UserPerms; + if (!perms) return null; + return g.roles.cache.filter( + z => z.permissions.has(perms) && !z.managed + ); + }; + const fullPermissions = cmd.reduce((accumulator, v) => { + const roles = getroles(v.name); + if (!roles) return accumulator; + const permissions = roles.reduce((a, w) => { + return [...a, { id: w.id, type: "ROLE", permission: true }]; + }, []); + return [...accumulator, { id: v.id, permissions }]; }, []); - return [...accumulator, { id: v.id, permissions }]; - }, []); - client.guilds.cache.forEach(g => - g.commands.permissions.set({ fullPermissions }).catch(e => null) - ); + g.commands.permissions.set({ fullPermissions }); + }); }); - //.catch(e => null); }); }; diff --git a/util/dist/item.js b/util/dist/item.js @@ -1,68 +0,0 @@ -module.exports = [ - { - item: "<:na45:840231919529623562> NA-45", - alias: "na45", - id: "na45", - price: 10000, - }, - { - item: "<:50gs:840231952045178892> Akimbo .50 GS", - alias: ".50gs", - id: ".50gs", - price: 10000, - }, - { - item: "<:mantaray:840231914747985941> Manta Ray", - alias: "mantaray", - id: "mantaray", - price: 50000, - }, - { - item: "<:zer0:840231945778626642> Zero", - alias: "zero", - id: "zero", - price: 50000, - }, - { - item: "<:artery:840231910575833118> Artery", - alias: "artery", - id: "artery", - price: 50000, - }, - { - item: "<:alias:840231973443338321> Alias", - alias: "alias", - id: "alias", - price: 50000, - }, - { - item: "<:urban:840231930741653545> Urban Tracker", - alias: "urban", - id: "urban", - price: 50000, - }, - { - item: "<:scylla:840231932289089556> Scylla", - alias: "scylla", - id: "scylla", - price: 50000, - }, - { - item: "<:parkk:840231975380975636> Park", - alias: "park", - id: "park", - price: 50000, - }, - { - item: "<:mara:840231965210968104> Mara", - alias: "mara", - id: "mara", - price: 50000, - }, - { - item: "<:outrider:840231986504794153> Outrider", - alias: "outrider", - id: "outrider", - price: 50000, - }, -]; diff --git a/util/dist/manager.js b/util/dist/manager.js @@ -1,86 +0,0 @@ -const { Manager } = require("erela.js"); -const Spotify = require("erela.js-spotify"); -const { MessageEmbed } = require("discord.js"); -module.exports = async client => { - try { - const id = process.env.SPOTIFY_ID; - const secret = process.env.SPOTIFY_SECRET; - client.manager = new Manager({ - plugins: [ - new Spotify({ - clientID: id, - clientSecret: secret, - }), - ], - nodes: [ - { - host: process.env.host, - port: Number(process.env.port), - password: process.env.password, - retryDelay: 5000, - }, - ], - autoPlay: true, - send: (id, payload) => { - const guild = client.guilds.cache.get(id); - if (guild) guild.shard.send(payload); - }, - }) - .on("nodeConnect", node => - console.log(`Node "${node.options.identifier}" has connected.`) - ) - .on("nodeError", (node, error) => - console.log( - `Node "${node.options.identifier}" encountered an error: ${error.message}.` - ) - ) - .on("trackStart", (player, track) => { - const channel = client.channels.cache.get(player.textChannel); - const embed = new MessageEmbed() - .setColor("02023a") - .setAuthor( - `Now Playing`, - client.user.displayAvatarURL({ - dynamic: true, - }) - ) - .setFooter(`Made by ${client.author}`) - .setTimestamp() - .setDescription(`[${track.title}](${track.uri})`) - .addField(`Requested By : `, `${track.requester}`, true); - channel.send({ embeds: [embed] }); - }) - .on("trackStuck", (player, track) => { - const channel = client.channels.cache.get(player.textChannel); - const embed = new MessageEmbed() - .setColor("02023a") - .setAuthor( - `Track Stuck`, - client.user.displayAvatarURL({ - dynamic: true, - }) - ) - .setDescription(`${track.title}`) - .setFooter(`Made by ${client.author}`) - .setTimestamp(); - channel.send({ embeds: [embed] }); - }) - .on("queueEnd", player => { - const channel = client.channels.cache.get(player.textChannel); - const embed2 = new MessageEmbed() - .setColor("02023a") - .setAuthor( - `Queue has ended`, - client.user.displayAvatarURL({ - dynamic: true, - }) - ) - .setFooter(`Made by ${client.author}`) - .setTimestamp(); - channel.send({ embeds: [embed2] }); - player.destroy(); - }); - } catch (e) { - console.log(e); - } -}; diff --git a/util/dist/npm.sh b/util/dist/npm.sh @@ -1,4 +0,0 @@ -npm i --save-dev node@16 && npm config set prefix=$(pwd)/node_modules/node && export PATH=$(pwd)/node_modules/node/bin:$PATH -rm -rf node_modules && rm package-lock.json && npm cache clear --force && npm cache clean --force && npm i -npm run node-update && npm run node-clean -npm uninstall canvas && npm i canvas -\ No newline at end of file diff --git a/util/dist/slash.js b/util/dist/slash.js @@ -1,230 +0,0 @@ -const { MessageEmbed } = require("discord.js"); -const client = require("../../bot"); -/** - * @param {String} interaction - * @param {String} dir - * @param {String} file - * @param {String} err - */ -module.exports = async (interaction, dir, file, err) => { - switch (err) { - case 101: - err = "Invalid argument"; - break; - case 0: - err = "Missing argument"; - break; - case 1: - err = "Missing 'User' argument"; - break; - case 2: - err = "'User' argument can't be author"; - break; - case 3: - err = "Missing 'Role' argument"; - break; - case 4: - err = "Missing 'Message' argument"; - break; - case 5: - err = "Missing 'Number' argument"; - break; - case 6: - err = "Missing permission"; - break; - case 7: - err = "Invalid number"; - break; - case 8: - err = "User doesn't have enough hierarchy"; - break; - case 9: - err = "Bot doesn't have enough hierarchy"; - break; - case 10: - err = "There isn't any data"; - break; - case 11: - err = "Missing 'Emoji' argument"; - break; - case 12: - err = "Missing 'Text' argument"; - break; - case 13: - err = "'Text' argument must be less than or equal to 100"; - break; - case 14: - err = "The maximum of modmail choices is 5"; - break; - case 15: - err = "Emoji can't be found"; - break; - case 16: - err = "'Time' argument must be larger than 1 second"; - break; - case 17: - err = "Missing 'Command'/'Category' argument"; - break; - case 18: - err = "'Command'/'Category' is already disabled"; - break; - case 19: - err = "Missing 'Time' argument"; - break; - case 20: - err = "Insufficient balance"; - break; - case 21: - err = "Missing 'Item' argument"; - break; - case 22: - err = "Invalid Item"; - break; - case 23: - err = "You didn't have enough item to gift"; - break; - case 24: - err = "Item invalid or you don't have that item"; - break; - case 25: - err = "Inventory is empty"; - break; - case 26: - err = "Giveaway not found"; - break; - case 27: - err = "Missing 'Message ID' argument"; - break; - case 28: - err = "Missing 'Channel' argument"; - break; - case 29: - err = "'Time' argument is invalid"; - break; - case 30: - err = "Missing 'Winners' argument"; - break; - case 31: - err = "'Winner' argument must be a number"; - break; - case 32: - err = "Missing 'Prize' argument"; - break; - case 33: - err = "You cannot hug yourself"; - break; - case 34: - err = "There isn't any song playing in the server currently"; - break; - case 35: - err = "You must be in a voice channel"; - break; - case 36: - err = "The player has stopped and the queue has been cleared"; - break; - case 37: - err = "There is no queue"; - break; - case 38: - err = "Can't find the playlist at YouTube"; - break; - case 39: - err = "Can't join the voice channel"; - break; - case 40: - err = "Left the voice channel since there is no song at the queue"; - break; - case 41: - err = "I am not in a voice channel"; - break; - case 42: - err = "I can't find this song/video"; - break; - case 43: - err = "I can't find the song at SoundCloud"; - break; - case 44: - err = "I can't find the song at YouTube"; - break; - case 45: - err = "Invalid selection"; - break; - case 46: - err = "Missing 'Prefix' argument"; - break; - case 47: - err = "Missing 'Command' argument"; - break; - case 48: - err = "The attachment must be an image"; - break; - case 49: - err = "'Emoji' name must be more than 2 characters"; - break; - case 50: - err = - "The error maybe the link isn't a image, or the image size is too big"; - break; - case 51: - err = "Missing 'Query' argument"; - break; - case 52: - err = "This message doesn't exist in this channel"; - break; - case 53: - err = "Missing 'Code' argument"; - break; - case 54: - err = "'Text' argument must be less than or equal to 2000"; - break; - case 55: - err = "Different channel between user and client"; - break; - case 404: - err = "Error 404 - Not Found"; - break; - case 505: - err = "You have reached the maximum number of premium servers"; - break; - case 506: - err = "This server is already premium"; - break; - case 507: - err = "This server isn't premium yet"; - break; - case 508: - err = "You didn't make the server premium"; - break; - case 999: - err = "An unexpected error occured. Please try again."; - break; - default: - "Missing argument"; - break; - } - const pull = require(`../../command/${dir}/${file}`); - let pre = await client.prefix(interaction); - let embed = new MessageEmbed() - .setAuthor( - `Error from ${interaction.user.tag}`, - interaction.user.displayAvatarURL({ dynamic: true }) - ) - .setColor("RED") - .setDescription( - `${require("../../config.json").ca}\nUse \`${pre}help ${ - pull.name - }\` to get help\n\n ` - ) - .addField( - `**>Usage**: ${pre}${pull.name} ${pull.usage ? pull.usage : ""}`, - `\`${err}\`` - ) - .setTimestamp() - .setThumbnail(client.user.displayAvatarURL({ dynamic: false })) - .setURL(client.web) - .setFooter(`Made by ${client.author}`); - const msg = await interaction.followUp({ embeds: [embed] }); - setTimeout(function () { - msg.delete(); - }, 15000); -}; diff --git a/util/functions/common.js b/util/functions/common.js @@ -0,0 +1,818 @@ +const data = require("../Data/data.json"); +const QuickChart = require("quickchart-js"); +const nmDt = require("../Data/aliases.json"); +const weaponActualName = nmDt.weaponActualName; +const weaponAlliasName = nmDt.weaponAlliasName; +Object.defineProperty(String.prototype, "Simplify", { + value: function Simplify() { + return this.toLowerCase().replace(/[^0-9a-z]/g, ""); + }, + writable: true, + configurable: true, +}); + +Object.defineProperty(Number.prototype, "IsPositive", { + value: function IsPositive() { + if (this > 0) { + return true; + } + return false; + }, + writable: true, + configurable: true, +}); + +Object.defineProperty(Number.prototype, "IsNegative", { + value: function IsNegative() { + if (this < 0) { + return true; + } + return false; + }, + writable: true, + configurable: true, +}); + +Object.defineProperty(Number.prototype, "ToBool", { + value: function ToBool() { + if (this == 1) { + return true; + } + return false; + }, + writable: true, + configurable: true, +}); + +Object.defineProperty(Number.prototype, "PlusHL", { + value: function PlusHL() { + if (this.toString()[0] == "-") { + return parseFloat(this.toFixed(2)).toString(); + } + return "+" + parseFloat(this.toFixed(2)).toString(); + }, + writable: true, + configurable: true, +}); + +function inpFixer(inpmsg) { + const parts = partExtracter(inpmsg); + nmDt.attachmentAlliasName[0].map((x, i) => + x.map(y => { + if (parts[0].startsWith(y + " ") || parts[0].endsWith(" " + y)) { + inpmsg = + parts[0].replace(y + " ", "").replace(" " + y, "") + + (parts[1] ? ", " : " + ") + + nmDt.attachmentActualName[0][i]; + } + }), + ); + return inpmsg; +} + +function partExtracter(inpmsg) { + if (inpmsg.includes(" + ")) { + const out = inpmsg + .split(" + ") + .map(x => x.split("+")) + .flat(); + return [out.shift(), out.join(", ")]; + } + return inpmsg.split(" with "); +} + +function hasAttachments(inpmsg) { + inpmsg = inpFixer(inpmsg); + if ( + inpmsg.split(" with ").filter(x => x.Simplify()).length > 1 || + inpmsg.split(" + ").filter(x => x.Simplify()).length > 1 + ) { + return true; + } + return false; +} + +function isolator(inpmsg) { + return partExtracter(inpFixer(inpmsg)); +} + +function weaponIdentifier(inpmsg) { + const inpWeaponName = isolator(inpmsg)[0]; + if (inpWeaponName.length < 2) { + return inpmsg.trim().length + ? "The name `" + inpmsg.trim() + "` is too short." + : "Empty weapon name"; + } + let probableWeapons = []; + for (let i = 0; i < data.cguns.length; i++) { + if (inpWeaponName.Simplify() == data.cguns[i].gunname.Simplify()) { + return JSON.parse(JSON.stringify(data.cguns[i])); + } + else if ( + data.cguns[i].gunname.Simplify().includes(inpWeaponName.Simplify()) + ) { + probableWeapons.push(i); + } + } + + if (probableWeapons.length == 1) { + return JSON.parse(JSON.stringify(data.cguns[probableWeapons[0]])); + } + + for (let i = 0; i < weaponAlliasName.length; i++) { + for (let j = 0; j < weaponAlliasName[i].length; j++) { + if (weaponAlliasName[i][j].Simplify() == inpWeaponName.Simplify()) { + for (let i2 = 0; i2 < data.cguns.length; i2++) { + if ( + weaponActualName[i].Simplify() == data.cguns[i2].gunname.Simplify() + ) { + return JSON.parse(JSON.stringify(data.cguns[i2])); + } + } + } + } + } + probableWeapons = [...new Set(probableWeapons)]; + if (probableWeapons.length == 1) { + return JSON.parse(JSON.stringify(data.cguns[probableWeapons[0]])); + } + if (probableWeapons.length > 1) { + return ( + "Did you mean `" + + probableWeapons + .map(x => data.cguns[x].gunname) + .reduce((out, x, i) => + [out, x].join(i === probableWeapons.length - 1 ? "` or `" : "`, `"), + ) + + "`?" + ); + } + return "Couldn't identify the weapon: `" + '"' + inpWeaponName + '"`'; +} + +function attachmentsIdentifier(inpmsg, attachmentsData, inpStats) { + if (!hasAttachments(inpmsg)) { + return []; + } + // no need for isolator because using slash commands, we get individual attachment + let inputAttachmentsNames = isolator(inpmsg)[1] + .split(/ & |, |,| and /) + .filter(x => x); + const tooSmall = inputAttachmentsNames.filter(x => x.length < 3); + inputAttachmentsNames = inputAttachmentsNames.filter(x => !(x.length < 3)); + let errorMsgs = "", + errors = [], + unidentifined = []; + + if (inputAttachmentsNames.length == 00) { + errorMsgs += "\nAttachments are missing!\n"; + } + if (inputAttachmentsNames.length >= 10) { + return "Cocaineeeeee"; + } + + // Can directly use args[] to return, no need for isolator, partExtractor, inpFixer + const splitAttachmentsDataName = [], + outAttachments = []; + + for (let i = 0; i < attachmentsData.length; i++) { + splitAttachmentsDataName.push([ + ...new Set( + attachmentsData[i].name + .split(" ") + .filter(x => x) + .map(x => x.trim()) + ), + ]); + if (Math.max(...splitAttachmentsDataName.map(x => x.length)) > 6) { + return "Cocaineeeeee"; + } + for (let j = 0; j < splitAttachmentsDataName[i].length; j++) { + splitAttachmentsDataName[i][j] = + splitAttachmentsDataName[i][j].Simplify(); + } + } + + for (let i = 0; i < inputAttachmentsNames.length; i++) { + var probables = []; + var splitInputAttachmentsName = inputAttachmentsNames[i] + .split(" ") + .filter(x => x); + + function finder() { + for (let j = 0; j < splitAttachmentsDataName.length; j++) { + for (let i2 = 0; i2 < splitAttachmentsDataName[j].length; i2++) { + for (let i3 = 0; i3 < splitInputAttachmentsName.length; i3++) { + if ( + splitAttachmentsDataName[j][i2].includes( + splitInputAttachmentsName[i3].Simplify(), + ) + ) { + let probablePushed = false; + for (let i4 = 0; i4 < probables.length; i4++) { + if (!probables[i4].includes(j)) { + probables[i4].push(j); + probablePushed = true; + break; + } + } + if (!probablePushed) { + probables.push([j]); + } + } + } + } + } + } + finder(); + if ( + (inputAttachmentsNames[i].includes(" rounds mag") || + inputAttachmentsNames[i].includes(" round mag")) && + inputAttachmentsNames[i].startsWith( + inputAttachmentsNames[i].replace(/\D/g, ""), + ) + ) { + var tmp1 = parseInt(inputAttachmentsNames[i]); + const tmp2 = attachmentsData.filter( + x => + x.type === 8 && x.effects[27] + x.effects[28] + inpStats[17] === tmp1, + ); + if (tmp2.length === 1) { + outAttachments.push(tmp2[0]); + continue; + } + } + if ( + probables.length === 0 || + probables[probables.length - 1].length !== 1 || + probables.length < splitInputAttachmentsName.length + ) { + probables = []; + splitInputAttachmentsName.map((x, i5) => + nmDt.attachmentAlliasName[1].map((y, i6) => + y.map(z => { + if (x.Simplify() === z.Simplify()) { + splitInputAttachmentsName[i5] = nmDt.attachmentActualName[1][i6]; + } + }), + ), + ); + splitInputAttachmentsName = splitInputAttachmentsName + .join(" ") + .split(" ") + .filter(x => x); + finder(); + if ( + probables.length === 0 || + probables[probables.length - 1].length !== 1 || + probables.length < splitInputAttachmentsName.length + ) { + probables = []; + splitInputAttachmentsName = inputAttachmentsNames[i] + .split(" ") + .filter(x => x); + finder(); + } + } + + if (probables.length === 0) { + unidentifined.push(inputAttachmentsNames[i]); + continue; + } + + var curr = probables[probables.length - 1]; + const temp1 = probables[probables.length - 1].filter( + x => + attachmentsData[x].name.Simplify() == + inputAttachmentsNames[i].Simplify(), + ); + const temp2 = probables[probables.length - 1].filter( + x => + splitAttachmentsDataName[x].length == splitInputAttachmentsName.length, + ); + /**/ if (temp1.length === 1 && temp2.length !== 1) { + probables.push([temp1]); + } + else if (temp1.length !== 1 && temp2.length === 1) { + probables.push([temp2]); + } + else if ( + temp1.length === 1 && + temp2.length === 1 && + temp1[0] == temp2[0] + ) { + probables.push([temp1]); + } + if ( + probables[probables.length - 1].length != 1 || + probables.length < splitInputAttachmentsName.length + ) { + errors.push( + "`" + + curr + .map(x => attachmentsData[x].name) + .reduce((out, x, i) => + [out, x].join(i === curr.length - 1 ? "` or `" : "`, `"), + ) + + '` by `"' + + inputAttachmentsNames[i] + + '"`', + ); + } + outAttachments.push(attachmentsData[probables[probables.length - 1][0]]); + } + const outAttachmentsTypes = outAttachments.map(x => x.type - 1), + t1 = outAttachments + .map(x => x.effects[35]) + .reduce((t, x) => t + x, 0) + .toString() + .padStart(11, "0") + .toString() + .split("") + .map((x, i) => + parseInt(x) !== 0 && outAttachmentsTypes.includes(i) ? parseInt(i) : -1, + ) + .filter(x => x !== -1); + + errorMsgs += t1.length + ? "Can't equip `" + + t1 + .map(x => data.attachmentTypes[x]) + .reduce((out, x, i, a) => + [out, x].join(i === a.length - 1 ? "` or `" : "`, `"), + ) + + "` with " + + outAttachments + .filter(x => x.effects[35]) + .map(x => x.name) + .reduce((out, x, i, a) => + [out, x].join(i === a.length - 1 ? " and " : ", "), + ) + : ""; + errorMsgs += errors.length + ? "\nDid you mean " + errors.join(";\n") + "?\n" + : ""; + errorMsgs += unidentifined.length + ? "\nCouldn't identify the attachment" + + (unidentifined.length === 1 ? "" : "s") + + ': `"' + + unidentifined.join('"`, `"') + + '"`\n' + : ""; + errorMsgs += + outAttachments.length > 5 ? "\nCan't equip more than 5 attachments!\n" : ""; + errorMsgs += outAttachments.filter((x, i, a) => a.indexOf(x) !== i).length + ? "\nMultiple of same attachments found!\n" + : ""; + errorMsgs += outAttachments + .map(x => x.type) + .filter((x, i, a) => a.indexOf(x) !== i).length + ? "\nMultiple of attachments the same type found!\n" + : ""; + errorMsgs += tooSmall.length + ? "\nThe name" + + (tooSmall.length === 1 ? "" : "s") + + ': `"' + + tooSmall.reduce((out, x, i) => + [out, x].join(i === curr.length - 1 ? '"` and `"' : '"`, `"'), + ) + + '"` ' + + (tooSmall.length === 1 ? "is" : "are") + + " too short\n" + : ""; + return errorMsgs ? errorMsgs.trim() : outAttachments; +} +// console.log(attachmentsIdentifier("chopper with heavy handle, red sight, granulated", data.cguns[38].aments)); makeError(); +// console.log(attachmentsIdentifier("ak + 5mw lazer", data.cguns[0].aments)); //makeError(); +// console.log(attachmentsIdentifier("117 + 40 round mag", data.cguns[0].aments, data.cguns[0].stats)); makeError(); +// console.log(attachmentsIdentifier("117 + rtc muzzle brake, rubberized griptape, tac lazer sight, 40 round mag, no stock", data.cguns[1].aments)); makeError(); + +function damageHandler( + currDmgs, + currRngs, + damageMulti, + hp, + tbs, + tbb, + bib, + pellets, +) { + currDmgs = [...currDmgs]; + currRngs = [...currRngs]; + + currRngs = currRngs.filter(x => x < 100).map(x => Math.round(x)); + currDmgs.length = currRngs.length + 1; + currDmgs = currDmgs.map(x => Math.round(x * damageMulti)); + let currSTKs = currDmgs.map(x => stk(x)), + currTTKs = currDmgs.map(x => ttk(x)), + currPDmg = null, + n = Math.max(...currTTKs.map(x => x.toString().length)); + n = n < 3 ? 3 : n; + function worker1(inp) { + return inp.map(x => x.toString().padStart(n)).join(" -- ") + "\n"; + } + function worker2(inp) { + return ( + "".padStart(n + 1) + + inp.map(x => x.toString().padStart(2)).join("".padStart(n + 2)) + + "\n" + ); + } + function stk(dmg) { + let out; + if (!pellets) { + out = Math.ceil(hp / dmg); + } + else { + out = Math.ceil(hp / (dmg * pellets)); + } + out = out == Infinity ? "โˆž" : out; + return out; + } + function ttk(dmg) { + const stkVal = stk(dmg); + if (stkVal == "โˆž") { + return stkVal; + } + if (!bib) { + return Math.round((stkVal - 1) * tbs); + } + let out = 0; + if (dmg > 0) { + if (stkVal % bib == 0) { + for (var i = 0; i < Math.floor(stkVal / bib) - 1; i++) { + out += tbs * (bib - 1) + tbb; + } + out = out + tbs * (bib - 1); + } + else if (stkVal % bib != 0) { + for (var i = 0; i <= Math.floor(stkVal / bib) - 1; i++) { + out += tbs * (bib - 1) + tbb; + } + for (var i = 0; i < (stkVal % bib) - 1; i++) { + out += tbs; + } + } + out = Math.round(out); + if (out == Infinity) { + return "โˆž"; + } + } + else { + out = "No"; + } + return out; + } + if (pellets) { + currPDmg = currDmgs.map(x => x + "ร—" + pellets); + n = Math.max(...currPDmg.map(x => x.toString().length)); + } + return ( + "```swift\n" + + "Damage : " + + worker1(currPDmg || currDmgs) + + (pellets ? "Total : " + worker1(currDmgs.map(x => x * pellets)) : "") + + "STK : " + + worker1(currSTKs) + + "TTK : " + + worker1(currTTKs) + + "Range : " + + (currRngs.length ? worker2(currRngs) : worker1(["โˆž"])) + + "```" + ); +} +// console.log(damageHandler([30, 25, 20], [10, 20], 1, 100, 60000 / 720, 0, 0)); makeError(); +// console.log(damageHandler([ 33, 23 ], [ 39 ], 1, 100, 109.0909090909091, 0, 0 )); makeError(); + +function recoilHandler( + xRecoil, + yRecoil, + xMultiplier, + yMultiplier, + bulletCount, +) { + if (xRecoil.length != yRecoil.length) { + return "err"; + } + const recoilLength = xRecoil.length; + if (recoilLength == 0) { + return "none"; + } + const recoilPattern = [ + { + x: 0, + y: 0, + }, + ]; + let recoilObj; + for (let i = 0; i < bulletCount; i++) { + const xContinuationVal = + xRecoil[recoilLength - 1] - xRecoil[recoilLength - 2]; + const yContinuationVal = + yRecoil[recoilLength - 1] - yRecoil[recoilLength - 2]; + if (i < recoilLength) { + recoilObj = { + x: xRecoil[i] * (1 + xMultiplier / 100), + y: yRecoil[i] * (1 + yMultiplier / 100), + }; + } + else { + recoilObj = { + x: + (recoilPattern[recoilPattern.length - 1].x + xContinuationVal) * + xMultiplier, + y: + (recoilPattern[recoilPattern.length - 1].y + yContinuationVal) * + yMultiplier, + }; + } + recoilPattern.push(recoilObj); + } + const chart = new QuickChart(); + chart + .setConfig({ + type: "scatter", + data: { + datasets: [ + { + data: recoilPattern, + showLine: true, + fill: false, + pointRadius: 3, + backgroundColor: "rgba(056,205,255,1.00)", // "#38CDFF" fully transparent + borderColor: "rgba(056,205,255,0.75)", // "#38CDFF" 75% transparent + }, + ], + }, + options: { + plugins: { + backgroundImageUrl: "https://i.imgur.com/jFAFaWF.png", + }, + legend: { + display: false, + }, + scales: { + yAxes: [ + { + ticks: { + display: false, + min: 0, + max: 5050, + }, + }, + ], + xAxes: [ + { + ticks: { + display: false, + min: -4495, + max: 4495, + }, + }, + ], + }, + }, + }) + .setWidth(1780) + .setHeight(1000); + + return chart; +} + +function updateStatswithEffects(inpEffects, inpStats) { + const l = inpStats[18] / inpStats[17]; + const outStats = [...inpStats]; + + var inpStatsarr = [1, 2, 5, 11, 14, 15, 20, 21, 22, 26, 27, 31]; + var inpEfecsarr = [17, 18, 16, 19, 1, 10, 14, 14, 14, 6, 7, 42]; // Efecs is short for Effects + for (let i = 0; i < inpEffects.length; i++) { + if (inpEffects[inpEfecsarr[i]] != 0) { + outStats[inpStatsarr[i]] *= (inpEffects[inpEfecsarr[i]] + 100) / 100; + } + } + var inpStatsarr = [3, 4, 16, 28, 29, 30]; + var inpEfecsarr = [20, 38, 0, 39, 40, 41]; + for (let i = 0; i < inpEffects.length; i++) { + if (inpEffects[inpEfecsarr[i]] != 0) { + outStats[inpStatsarr[i]] = inpEffects[inpEfecsarr[i]]; + } + } + var inpStatsarr = [0, 17, 25]; + var inpEfecsarr = [29, 27, 9]; + for (let i = 0; i < inpEffects.length; i++) { + if (inpEffects[inpEfecsarr[i]] != 0) { + outStats[inpStatsarr[i]] += inpEffects[inpEfecsarr[i]]; + } + } + + if (inpEffects[4] != 0) { + outStats[10] = 11 - (11 - inpStats[10]) * (1 + inpEffects[4] / 100); // + } + if (inpEffects[43] != 0 && inpStats[8] != -1) { + outStats[8] *= (inpEffects[43] + 100) / 100; + } + if (inpEffects[16] != 0) { + outStats[7] *= inpEffects[16] / -100 + 1; + } + outStats[18] = inpStats[17] * l; + return outStats; +} + +function attachmentHandler(currEffects, currStats) { + const pos = [], + neg = [], + atr = []; + if (currEffects[0] > currStats[16]) { + pos.push( + currEffects[0] + + "% zoom (+" + + (currEffects[0] - currStats[16]) + + "% zoom)", + ); + } + else if (currEffects[0] != 0 && currEffects[0] != currStats[16]) { + neg.push( + currEffects[0] + + "% zoom (-" + + (currStats[16] - currEffects[0]) + + "% zoom)", + ); + } + if (currEffects[0] != 0 && currStats[16] <= 110) { + atr.push("Easier to Aim"); + } + negGood1(1, "ADS time"); + negGood1(2, "Vertical Recoil"); + negGood1(3, "Horizontal Recoil"); + negGood1(4, "Bullet Spread"); + negGood1(5, "Moving Bullet Spread"); + posGood1(6, "Mobility"); + posGood1(7, "ADS Mobility"); + negGood1(8, "Recoil when Crouched or Prone"); + posGood1(9, "Sprint Mobility"); + negGood1(10, "Sprint to Fire Time"); + negGood1(11, "Flinch"); + negGood1(12, "Hipfire Spread"); + posGood1(13, "Damage Range"); + negGood1(14, "Reload Time"); + posGood1(15, "Headshot Damage"); + posGood1(16, "Rate of Fire"); + posGood1(17, "Detonation Range"); + posGood1(18, "Explosion Radius"); + negGood1(19, "Idle Sway"); + if (currEffects[20] > currStats[3]) { + pos.push( + currEffects[20].ToString().Replace(".", " ~ ") + " Explosion Damage", + ); + } + else if (currEffects[20] != 0 && currEffects[20] != currStats[3]) { + neg.push( + currEffects[20].ToString().Replace(".", " ~ ") + " Explosion Damage", + ); + } + atrPush3(21, "Visible Laser when not ADS-ed"); + atrPush3(22, "Visible Laser when ADS-ed"); + atrPush3(23, "Visible Laser"); + atrPush3(24, "Silenced Gunfire"); + atrPush3(25, "Hidden Muzzle Flash"); + posGood2(27, "Rounds/Mag"); + posGood2(28, "Rounds/Tube"); + posGood2(29, "Pellets per Shot"); + posGood2(30, "Damage Over Time"); + atrPush3(32, "Reworked ADS"); + atrPush3(33, "Faster Melee QTE"); + if (currEffects[35]) { + atr.push( + "Can Not use " + + currEffects[35] + .toString() + .padStart(11, "0") + .toString() + .split("") + .map((x, i) => (parseInt(x) !== 0 ? data.attachmentTypes[i] : 0)) + .filter(x => x), + ); + } + atrPush3(36, "Can't ADS"); + if (currEffects[37] != 0) { + atr.push("New Lethality Profile"); + } + if (currEffects[38] != 0 && currEffects[38] < currStats[4]) { + pos.push("Turns to " + data.firingModes[currEffects[38] - 1]); + } + else if (currEffects[38] != 0 && currEffects[38] != currStats[4]) { + neg.push("Turns to " + data.firingModes[currEffects[38] - 1]); + } + posGood2(39, "Tick Damage"); + posGood2(40, "Ticks"); + negGood2(41, "ms Tick Interval"); + posGood2(42, "Breath Holding Time"); + posGood1(43, "Bullet Speed"); + if (currEffects[44] == 1) { + atr.push("Higher Penetraion Damage"); + } + else if (currEffects[44] == -1) { + atr.push("Lower Penetraion Damage"); + } + posGood2(45, "Round" + (currEffects[45] - 1 ? "s" : "") + " in Reserve"); + + function posGood1(i, ext) { + if (currEffects[i].IsPositive()) { + pos.push(currEffects[i].PlusHL() + "% " + ext); + } + else if (currEffects[i].IsNegative()) { + neg.push(currEffects[i].PlusHL() + "% " + ext); + } + } + + function negGood1(i, ext) { + if (currEffects[i].IsNegative()) { + pos.push(currEffects[i].PlusHL() + "% " + ext); + } + else if (currEffects[i].IsPositive()) { + neg.push(currEffects[i].PlusHL() + "% " + ext); + } + } + + function posGood2(i, ext) { + if (currEffects[i].IsPositive()) { + pos.push(currEffects[i].PlusHL() + " " + ext); + } + else if (currEffects[i].IsNegative()) { + neg.push(currEffects[i].PlusHL() + " " + ext); + } + } + + function negGood2(i, ext) { + if (currEffects[i].IsNegative()) { + pos.push(currEffects[i].PlusHL() + " " + ext); + } + else if (currEffects[i].IsPositive()) { + neg.push(currEffects[i].PlusHL() + " " + ext); + } + } + + function atrPush3(i, ext) { + if (currEffects[i].ToBool()) { + atr.push(ext); + } + } + + return [ + pos.length + ? { + name: "**Positives:**", + value: "```ini\n[" + pos.join("]\n[") + "]\n```", + inline: true, + } + : 0, + neg.length + ? { + name: "**Negatives:**", + value: "```css\n[" + neg.join("]\n[") + "]\n```", + inline: true, + } + : 0, + atr.length + ? { + name: "**Attributes:**", + value: "```fix\n[" + atr.join("]\n[") + "]\n```", + } + : 0, + ].filter(x => x); +} + +function interpretioner(inpAttachments) { + return inpAttachments.length + ? " with " + inpAttachments.map(x => x.name).join(", ") + : ""; +} + +function totaler(inpAttachments) { + const totalEffects = inpAttachments[0].effects; + for (let j = 1; j < inpAttachments.length; j++) { + for (let i2 = 0; i2 < totalEffects.length; i2++) { + totalEffects[i2] += inpAttachments[j].effects[i2]; + } + } + return totalEffects; +} + +function makeError() { + let m; + m.split("L"); +} + +module.exports = { + weaponIdentifier, + attachmentsIdentifier, + recoilHandler, + attachmentHandler, + updateStatswithEffects, + makeError, + interpretioner, + damageHandler, + isolator, + totaler, + hasAttachments, +}; diff --git a/util/functions/economy.js b/util/functions/economy.js @@ -1,15 +1,23 @@ -module.exports = async (client, message) => { +const guns = require("../Data/gun.json"); +const req = { + Iron: 0, + Gold: 400, + Platinum: 1000, + Diamond: 2000, + Master: 3500, +}; +module.exports = async client => { const econ = require("../../models/econ"); const user = require("../../models/users"); client.createUser = id => { - user.findOne({ User: id }, (err, data) => { + user.findOne({ User: id }, () => { new user({ User: id, }).save(); }); }; client.createProfile = id => { - econ.findOne({ User: id }, (err, data) => { + econ.findOne({ User: id }, () => { new econ({ User: id, }).save(); @@ -17,46 +25,18 @@ module.exports = async (client, message) => { }; client.multi = interaction => new Promise(async ful => { - var multiplier = 0; + let multiplier = 0; const b = await user.findOne({ User: interaction.user.id }); if (!b) { client.createUser(interaction.user.id); } - if (b) { - if (b.Tier == 3) { - multiplier += 0.1; - } - if (b.Tier == 2) { - multiplier += 0.15; - } - if (b.Tier == 1) { - multiplier += 0.2; - } - if (b.Premium === true) { - multiplier += 0.25; - } + if (b?.Premium === true) { + multiplier += 0.25; } if (client.path.includes(interaction.guild.id)) { multiplier += 0.15; } - if ( - [ - "๐Ÿฑ", - "๐Ÿ˜พ", - "๐Ÿ˜ฟ", - "๐Ÿ˜ฝ", - "๐Ÿ™€", - "๐Ÿ˜ผ", - "๐Ÿ˜ป", - "๐Ÿ˜น", - "๐Ÿ˜ธ", - "๐Ÿ˜บ", - "cathexe", - "cath", - ] - .map(x => (interaction.channel.name.includes(x) ? 1 : 0)) - .filter(x => x).length - ) { + if (interaction.channel.name.toLowerCase().includes("nyx")) { multiplier += 0.1; } @@ -74,7 +54,7 @@ module.exports = async (client, message) => { client.add = (id, amount, interaction) => { econ.findOne({ User: id }, async (err, data) => { - var multi = 0; + let multi = 0; if (err) throw err; if (data) { const users = require("../../models/users"); @@ -82,41 +62,14 @@ module.exports = async (client, message) => { if (!b) { client.createUser(id); } - if (b) { - if (b.Tier == 3) { - multi += 0.1; - } - if (b.Tier == 2) { - multi += 0.15; - } - if (b.Tier === 1) { - multi += 0.2; - } - if (b.Premium === true) { - multi += 0.25; - } + if (b?.Premium === true) { + multi += 0.25; } + if (client.path.includes(interaction.guild.id)) { multi += 0.15; } - if ( - [ - "๐Ÿฑ", - "๐Ÿ˜พ", - "๐Ÿ˜ฟ", - "๐Ÿ˜ฝ", - "๐Ÿ™€", - "๐Ÿ˜ผ", - "๐Ÿ˜ป", - "๐Ÿ˜น", - "๐Ÿ˜ธ", - "๐Ÿ˜บ", - "cathexe", - "cath", - ] - .map(x => (interaction.channel.name.includes(x) ? 1 : 0)) - .filter(x => x).length - ) { + if (interaction.channel.name.toLowerCase().includes("nyx")) { multi += 0.1; } if (multi === 0) { @@ -144,23 +97,23 @@ module.exports = async (client, message) => { }); }; client.addItem = (id, item, amount) => { - const economy = require("../../models/inventory"); + const economy = require("../../models/econ"); economy.findOne({ User: id }, (err, data) => { if (!data) { client.createProfile(id); } else { - data[item] += amount; + data.Inventory[item] += amount; data.save(); } }); }; client.removeItem = (id, item, amount) => { - const inventory = require("../../models/inventory"); + const inventory = require("../../models/econ"); inventory.findOne({ User: id }, (err, data) => { if (!data) { client.createProfile(id); } else { - data[item] -= amount; + data.Inventory[item] -= amount; data.save(); } }); @@ -210,6 +163,102 @@ module.exports = async (client, message) => { } }); }; + client.addXP = async (id, xp, message) => { + try { + const data = await econ.findOne({ User: id }); + if (data?.Gun.XP >= 0) { + data.Gun.XP += xp; + data.Gun.Level = Math.floor(0.1 * Math.sqrt(data.Gun.XP)); + await data.save().catch(e => console.log(e)); + const emoji = guns.find(z => z.name === data.Gun.Name).emoji; + if ((data.Gun.XP -= xp) < req[data.Gun.Rank]) { + message.channel.send({ + content: `Congratulations **${message.user.tag}**! Your **${emoji}${data?.Gun.Name}** has upgraded to level **${data?.Gun.Rank}**!`, + }); + } + if (data?.Gun.XP < 400) { + data.Gun.Rank = "Iron"; + await data.save().catch(e => console.log(e)); + } + if (data?.Gun.XP >= 400 && data?.Gun.XP < 1000) { + data.Gun.Rank = "Gold"; + await data.save().catch(e => console.log(e)); + } + if (data?.Gun.XP >= 1000 && data?.Gun.XP < 2000) { + data.Gun.Rank = "Platinum"; + await data.save().catch(e => console.log(e)); + } + if (data?.Gun.XP >= 2000 && data?.Gun.XP < 3500) { + data.Gun.Rank = "Diamond"; + await data.save().catch(e => console.log(e)); + } + if (data?.Gun.XP >= 3500) { + data.Gun.Rank = "Master"; + await data.save().catch(e => console.log(e)); + } + + // if (Math.floor(0.1 * Math.sqrt((data.Gun.XP -= xp))) < data.Gun.Level) { + // if (data?.Gun.Name) { + // const emoji = guns.find(z => z.name === data?.Gun.Name).emoji; + // message.channel.send({ + // content: `Congratulations **${message.user.tag}**! Your **${emoji}${data?.Gun.Name}** has upgraded to level **${data?.Gun.Level}**!`, + // }); + // } else; + // } + } else { + const ee = new econ({ + User: id, + Gun: { + XP: xp, + Level: Math.floor(0.1 * Math.sqrt(xp)), + }, + }); + if (ee?.Gun.XP >= 400 && ee?.Gun.XP < 1000) { + ee.Gun.Rank = "Gold"; + const emoji = guns.find(z => z.name === ee?.Gun.Name).emoji; + message.channel.send({ + content: `Congratulations **${message.user.tag}**! Your **${emoji}${ee?.Gun.Name}** has upgraded to rank **${ee?.Gun.Rank}**!`, + }); + await ee.save().catch(e => console.log(e)); + } + if (ee?.Gun.XP >= 1000 && ee?.Gun.XP < 2000) { + ee.Gun.Rank = "Platinum"; + const emoji = guns.find(z => z.name === ee?.Gun.Name).emoji; + message.channel.send({ + content: `Congratulations **${message.user.tag}**! Your **${emoji}${ee?.Gun.Name}** has upgraded to rank **${ee?.Gun.Rank}**!`, + }); + await ee.save().catch(e => console.log(e)); + } + if (ee?.Gun.XP >= 2000 && ee?.Gun.XP < 3500) { + ee.Gun.Rank = "Diamond"; + const emoji = guns.find(z => z.name === ee?.Gun.Name).emoji; + message.channel.send({ + content: `Congratulations **${message.user.tag}**! Your **${emoji}${ee?.Gun.Name}** has upgraded to rank **${ee?.Gun.Rank}**!`, + }); + await ee.save().catch(e => console.log(e)); + } + if (ee?.Gun.XP >= 3500) { + ee.Gun.Rank = "Master"; + const emoji = guns.find(z => z.name === ee?.Gun.Name).emoji; + message.channel.send({ + content: `Congratulations **${message.user.tag}**! Your **${emoji}${ee?.Gun.Name}** has upgraded to rank **${ee?.Gun.Rank}**!`, + }); + await ee.save().catch(e => console.log(e)); + } + await ee.save().catch(e => console.log(e)); + // if (Math.floor(0.1 * Math.sqrt(xp)) > 0) { + // if (ee?.Gun.Name) { + // const emoji = guns.find(z => z.name === ee?.Gun.Name).emoji; + // message.channel.send({ + // content: `Congratulations **${message.user.tag}**! Your **${emoji}${ee?.Gun.Name}** has upgraded to level **${ee?.Gun.Level}**!`, + // }); + // } else; + // } + } + } catch (e) { + console.log(e); + } + }; client.cmdsUSED = id => new Promise(async ful => { const data = await user.findOne({ User: id }); diff --git a/util/functions/function.js b/util/functions/function.js @@ -1,11 +1,7 @@ -const { MessageEmbed } = require("discord.js"); +const { MessageEmbed, MessageActionRow, MessageButton } = require("discord.js"); function rndint(max, min) { return Math.floor(Math.random() * (max - (min ? min : 0))) + (min ? min : 0); } -function toBool() { - const num = Math.floor(Math.random() * 2); - return num === 1; -} function timer(timestamp) { const timeLeft = timestamp; const days = Math.floor(timeLeft / 86400000); @@ -17,25 +13,23 @@ function timer(timestamp) { let string = ""; if (days) string = string + `${days} ${days == 1 ? "day " : "days "}`; if (hours) string = string + `${hours} ${hours == 1 ? "hour " : "hours "}`; - if (minutes) + if (minutes) { string = string + `${minutes} ${minutes == 1 ? "minute " : "minutes "}`; - if (seconds) + } + if (seconds) { string = string + `${seconds} ${seconds == 1 ? "second " : "seconds "}`; + } if (!string.length) string = `${mseconds.toFixed(1)} second`; return string; } function sleep(ms) { - let start = new Date().getTime(); - let end = start; - while (end < start + ms) { - end = new Date().getTime(); - } + new Promise(resolve => setTimeout(resolve, ms)); } function toHHMMSS(str) { - var sec_num = parseInt(str, 10); - var hours = Math.floor(sec_num / 3600); - var minutes = Math.floor((sec_num - hours * 3600) / 60); - var seconds = sec_num - hours * 3600 - minutes * 60; + const sec_num = parseInt(str, 10); + let hours = Math.floor(sec_num / 3600); + let minutes = Math.floor((sec_num - hours * 3600) / 60); + let seconds = sec_num - hours * 3600 - minutes * 60; if (hours < 10) { hours = "0" + hours; } @@ -111,9 +105,9 @@ function trimArray(arr = []) { return arr.join(" **|** "); } function checkDays(date) { - let now = new Date(); - let diff = now.getTime() - date.getTime(); - let days = Math.floor(diff / 86400000); + const now = new Date(); + const diff = now.getTime() - date.getTime(); + const days = Math.floor(diff / 86400000); return days + (days == 1 ? " day" : " days") + " ago"; } function format(str) { @@ -155,12 +149,12 @@ function cooldown(dbtime, defaults, msg) { const slow = [ "Keep it slow...", "Calm down", - "Stop it get some help", + "Stop it. Get some help.", "Too fast", "Slow down little bit", ]; const slowed = slow[Math.floor(Math.random() * slow.length)]; - return msg.channel.send({ + return msg.followUp({ embeds: [ new MessageEmbed() .setColor("RANDOM") @@ -176,13 +170,13 @@ function cooldown(dbtime, defaults, msg) { ], }); } -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var mn = d * 30; -var w = d * 7; -var y = d * 365.25; +const s = 1000; +const m = s * 60; +const h = m * 60; +const d = h * 24; +const mn = d * 30; +const w = d * 7; +const y = d * 365.25; /** * @param {String|Number} val @@ -193,7 +187,7 @@ var y = d * 365.25; function ms(val, options) { options = options || {}; - var type = typeof val; + const type = typeof val; if (type === "string" && val.length > 0) { return parse(val); } else if (type === "number" && isFinite(val)) { @@ -215,15 +209,15 @@ function parse(str) { if (str.length > 100) { return; } - var match = + const match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|months?|mths|mn|years?|yrs?|y)?$/i.exec( str ); if (!match) { return; } - var n = parseFloat(match[1]); - var type = (match[2] || "ms").toLowerCase(); + const n = parseFloat(match[1]); + const type = (match[2] || "ms").toLowerCase(); switch (type) { case "years": case "year": @@ -282,7 +276,7 @@ function parse(str) { */ function fmtShort(ms) { - var msAbs = Math.abs(ms); + const msAbs = Math.abs(ms); if (msAbs >= mn) { return Math.round(ms / mn) + "mo"; } @@ -310,7 +304,7 @@ function fmtShort(ms) { */ function fmtLong(ms) { - var msAbs = Math.abs(ms); + const msAbs = Math.abs(ms); if (msAbs >= mn) { return plural(ms, msAbs, mn, "month"); } @@ -331,9 +325,9 @@ function fmtLong(ms) { } return ms + " ms"; } -function plural(ms, msAbs, n, name) { - var isPlural = msAbs >= n * 1.5; - return Math.round(ms / n) + " " + name + (isPlural ? "s" : ""); +function plural(ms, msAbs, nz, name) { + const isPlural = msAbs >= nz * 1.5; + return Math.round(ms / nz) + " " + name + (isPlural ? "s" : ""); } async function confirmation(message, author, validReactions, time = 60000) { try { @@ -363,22 +357,25 @@ function getAllTextFromEmbed(embed) { )}:${escape(date.getMinutes())}:${escape(date.getSeconds())}${ampm}`; } - if (embed.title) + if (embed.title) { text += `**${embed.title .replace(/(https?:\/\/)?discord\.gg\/(\w+)/g, "Invite") .replace(/\[(.*)\]\((.*)\)/g, "Hyper link")}**`; - if (embed.description) + } + if (embed.description) { text += `\n${embed.description .replace(/(https?:\/\/)?discord\.gg\/(\w+)/g, "Invite") .replace(/\[(.*)\]\((.*)\)/g, "Hyper link")}`; + } if (embed.fields) { text += "\n"; - for (const field of embed.fields) + for (const field of embed.fields) { text += `\n**${field.name .replace(/(https?:\/\/)?discord\.gg\/(\w+)/g, "Invite") .replace(/\[(.*)\]\((.*)\)/g, "Hyper link")}**\n ${field.value .replace(/(https?:\/\/)?discord\.gg\/(\w+)/g, "Invite") .replace(/\[(.*)\]\((.*)\)/g, "Hyper link")}`; + } } if (embed.footer) { let field = `\n\n**${embed.footer.text @@ -398,9 +395,358 @@ function getAllTextFromEmbed(embed) { return text; } +function clean(text) { + if (typeof text === "string") { + return text + .replace(/`/g, "`" + String.fromCharCode(8203)) + .replace(/@/g, "@" + String.fromCharCode(8203)); + } else { + return text; + } +} +function tips(interaction, client) { + const all = [ + "You can report bugs by using `/report` and send a suggestion by `/suggest` !", + "If a gun isn't there, please be paitent and wait for the us to get the stats", + "We all recruiting for bot developers (Total: 4) Please DM the bot for more info", + ]; + const ran = Math.floor(Math.random() * 50) + 2; + const rTip = all[Math.floor(Math.random() * all.length)]; + if (ran <= 11) { + interaction.channel.send({ + embeds: [ + new MessageEmbed() + .setTitle("Tips") + .setColor(client.color) + .setDescription(`**๐Ÿ’ก Did you know**\n${rTip}`) + .setFooter(`Made by ${client.author}`, client.user.displayAvatarURL()) + .setTimestamp() + .setURL(client.web), + ], + }); + } +} +function buttons(client) { + const invite = new MessageButton() + .setLabel("Invite the bot!") + .setStyle("LINK") + .setEmoji("896527406100283462") + .setURL( + `https://discord.com/oauth2/authorize?client_id=${client.user.id}&permissions=4231314550&scope=bot%20applications.commands` + ); + const support = new MessageButton() + .setLabel("Support Server") + .setStyle("LINK") + .setEmoji("867093614403256350") + .setURL("https://discord.gg/SbQHChmGcp"); + const website = new MessageButton() + .setLabel("Website") + .setStyle("LINK") + .setEmoji("๐Ÿ–ฅ") + .setURL("https://cath.gq/"); + const youtube = new MessageButton() + .setLabel("YouTube") + .setStyle("LINK") + .setEmoji("841186450497339412") + .setURL("https://youtube.com/Kirito01"); + const kofi = new MessageButton() + .setLabel("Ko-fi") + .setStyle("LINK") + .setEmoji("900590344364757013") + .setURL("https://ko-fi.com/cathteam"); + const row = new MessageActionRow().addComponents( + invite, + support, + website, + youtube, + kofi + ); + return [row]; +} +const colorize = (...args) => ({ + black: `\x1b[30m${args.join(" ")}`, + red: `\x1b[31m${args.join(" ")}`, + green: `\x1b[32m${args.join(" ")}`, + yellow: `\x1b[33m${args.join(" ")}`, + blue: `\x1b[34m${args.join(" ")}`, + magenta: `\x1b[35m${args.join(" ")}`, + cyan: `\x1b[36m${args.join(" ")}`, + white: `\x1b[37m${args.join(" ")}`, + bgBlack: `\x1b[40m${args.join(" ")}\x1b[0m`, + bgRed: `\x1b[41m${args.join(" ")}\x1b[0m`, + bgGreen: `\x1b[42m${args.join(" ")}\x1b[0m`, + bgYellow: `\x1b[43m${args.join(" ")}\x1b[0m`, + bgBlue: `\x1b[44m${args.join(" ")}\x1b[0m`, + bgMagenta: `\x1b[45m${args.join(" ")}\x1b[0m`, + bgCyan: `\x1b[46m${args.join(" ")}\x1b[0m`, + bgWhite: `\x1b[47m${args.join(" ")}\x1b[0m`, +}); +const leven = (te, t) => { + if (!te.length) return t.length; + if (!t.length) return te.length; + const arr = []; + for (let i = 0; i <= t.length; i++) { + arr[i] = [i]; + for (let j = 1; j <= te.length; j++) { + arr[i][j] = + i === 0 + ? j + : Math.min( + arr[i - 1][j] + 1, + arr[i][j - 1] + 1, + arr[i - 1][j - 1] + (te[j - 1] === t[i - 1] ? 0 : 1) + ); + } + } + return arr[t.length][te.length]; +}; +function chunk(arr, size) { + Array.from({ length: Math.ceil(arr.length / size) }, (v, i) => { + arr.slice(i * size, i * size + size); + }); +} +function progressBar(value, maxValue, size) { + const percentage = value / maxValue; + const progress = Math.round(size * percentage); + const emptyProgress = size - progress; + const progressText = "โ–‡".repeat(progress); + const emptyProgressText = "โ€”".repeat(emptyProgress); + const percentageText = Math.round(percentage * 100) + "%"; + + const Bar = progressText + emptyProgressText; + return { Bar, percentageText }; +} +function prettyMs(milliseconds, options = {}) { + const pluralize = (word, count) => (count === 1 ? word : `${word}s`); + const SECOND_ROUNDING_EPSILON = 0.0000001; + if (!Number.isFinite(milliseconds)) { + throw new TypeError("Expected a finite number"); + } + + if (options.colonNotation) { + options.compact = false; + options.formatSubMilliseconds = false; + options.separateMilliseconds = false; + options.verbose = false; + } + + if (options.compact) { + options.secondsDecimalDigits = 0; + options.millisecondsDecimalDigits = 0; + } + + const result = []; + + const floorDecimals = (value, decimalDigits) => { + const flooredInterimValue = Math.floor( + value * 10 ** decimalDigits + SECOND_ROUNDING_EPSILON + ); + const flooredValue = Math.round(flooredInterimValue) / 10 ** decimalDigits; + return flooredValue.toFixed(decimalDigits); + }; + + const add = (value, long, short, valueString) => { + if ( + (result.length === 0 || !options.colonNotation) && + value === 0 && + !(options.colonNotation && short === "m") + ) { + return; + } + + valueString = (valueString || value || "0").toString(); + let prefix; + let suffix; + if (options.colonNotation) { + prefix = result.length > 0 ? ":" : ""; + suffix = ""; + const wholeDigits = valueString.includes(".") + ? valueString.split(".")[0].length + : valueString.length; + const minLength = result.length > 0 ? 2 : 1; + valueString = + "0".repeat(Math.max(0, minLength - wholeDigits)) + valueString; + } else { + prefix = ""; + suffix = options.verbose ? " " + pluralize(long, value) : short; + } + + result.push(prefix + valueString + suffix); + }; + + const parsed = parseMilliseconds(milliseconds); + + add(Math.trunc(parsed.days / 365), "year", "y"); + add(parsed.days % 365, "day", "d"); + add(parsed.hours, "hour", "h"); + add(parsed.minutes, "minute", "m"); + + if ( + options.separateMilliseconds || + options.formatSubMilliseconds || + (!options.colonNotation && milliseconds < 1000) + ) { + add(parsed.seconds, "second", "s"); + if (options.formatSubMilliseconds) { + add(parsed.milliseconds, "millisecond", "ms"); + add(parsed.microseconds, "microsecond", "ยตs"); + add(parsed.nanoseconds, "nanosecond", "ns"); + } else { + const millisecondsAndBelow = + parsed.milliseconds + + parsed.microseconds / 1000 + + parsed.nanoseconds / 1e6; + + const millisecondsDecimalDigits = + typeof options.millisecondsDecimalDigits === "number" + ? options.millisecondsDecimalDigits + : 0; + + const roundedMiliseconds = + millisecondsAndBelow >= 1 + ? Math.round(millisecondsAndBelow) + : Math.ceil(millisecondsAndBelow); + + const millisecondsString = millisecondsDecimalDigits + ? millisecondsAndBelow.toFixed(millisecondsDecimalDigits) + : roundedMiliseconds; + + add( + Number.parseFloat(millisecondsString, 10), + "millisecond", + "ms", + millisecondsString + ); + } + } else { + const seconds = (milliseconds / 1000) % 60; + const secondsDecimalDigits = + typeof options.secondsDecimalDigits === "number" + ? options.secondsDecimalDigits + : 1; + const secondsFixed = floorDecimals(seconds, secondsDecimalDigits); + const secondsString = options.keepDecimalsOnWholeSeconds + ? secondsFixed + : secondsFixed.replace(/\.0+$/, ""); + add(Number.parseFloat(secondsString, 10), "second", "s", secondsString); + } + + if (result.length === 0) { + return "0" + (options.verbose ? " milliseconds" : "ms"); + } + + if (options.compact) { + return result[0]; + } + + if (typeof options.unitCount === "number") { + const separator = options.colonNotation ? "" : " "; + return result.slice(0, Math.max(options.unitCount, 1)).join(separator); + } + + return options.colonNotation ? result.join("") : result.join(" "); +} +function parseMilliseconds(milliseconds) { + if (typeof milliseconds !== "number") { + throw new TypeError("Expected a number"); + } + + return { + days: Math.trunc(milliseconds / 86400000), + hours: Math.trunc(milliseconds / 3600000) % 24, + minutes: Math.trunc(milliseconds / 60000) % 60, + seconds: Math.trunc(milliseconds / 1000) % 60, + milliseconds: Math.trunc(milliseconds) % 1000, + microseconds: Math.trunc(milliseconds * 1000) % 1000, + nanoseconds: Math.trunc(milliseconds * 1e6) % 1000, + }; +} +const default_opts = { + hoursPerDay: 24, + daysPerWeek: 7, + weeksPerMonth: 4, + monthsPerYear: 12, + daysPerYear: 365.25, +}; +const UNIT_MAP = { + ms: ["ms", "milli", "millisecond", "milliseconds"], + s: ["s", "sec", "secs", "second", "seconds"], + m: ["m", "min", "mins", "minute", "minutes"], + h: ["h", "hr", "hrs", "hour", "hours"], + d: ["d", "day", "days"], + w: ["w", "week", "weeks"], + mth: ["mon", "mth", "mths", "month", "months"], + y: ["y", "yr", "yrs", "year", "years"], +}; + +/** + * Parse a timestring + * + * @param {string} string + * @param {string} returnUnit + * @param {Object} opts + * @returns {number} + */ + +function parseTimestring(string, returnUnit, opts) { + opts = Object.assign({}, default_opts, opts || {}); + + let totalSeconds = 0; + const unitValues = getUnitValues(opts); + const groups = string + .toLowerCase() + .replace(/[^.\w+-]+/g, "") + .match(/[-+]?[0-9.]+[a-z]+/g); + + if (groups === null) { + throw new Error(`The string [${string}] could not be parsed by timestring`); + } + + groups.forEach(group => { + const value = group.match(/[0-9.]+/g)[0]; + const unit = group.match(/[a-z]+/g)[0]; + + totalSeconds += getSeconds(value, unit, unitValues); + }); + + if (returnUnit) { + return convert(totalSeconds, returnUnit, unitValues); + } + + return totalSeconds; +} +function getUnitValues(opts) { + const unitValues = { + ms: 0.001, + s: 1, + m: 60, + h: 3600, + }; + + unitValues.d = opts.hoursPerDay * unitValues.h; + unitValues.w = opts.daysPerWeek * unitValues.d; + unitValues.mth = (opts.daysPerYear / opts.monthsPerYear) * unitValues.d; + unitValues.y = opts.daysPerYear * unitValues.d; + + return unitValues; +} +function getUnitKey(unit) { + for (const key of Object.keys(UNIT_MAP)) { + if (UNIT_MAP[key].indexOf(unit) > -1) { + return key; + } + } + throw new Error(`The unit [${unit}] is not supported by timestring`); +} +function getSeconds(value, unit, unitValues) { + return value * unitValues[getUnitKey(unit)]; +} +function convert(value, unit, unitValues) { + return value / unitValues[getUnitKey(unit)]; +} + module.exports = { rndint, - toBool, timer, sleep, toHHMMSS, @@ -415,4 +761,13 @@ module.exports = { confirmation, selectRandom, getAllTextFromEmbed, + clean, + tips, + buttons, + colorize, + leven, + chunk, + progressBar, + parseTimestring, + prettyMs, }; diff --git a/util/functions/mongoose.js b/util/functions/mongoose.js @@ -41,6 +41,8 @@ module.exports = { Category, Commands, Level, + NSFW, + Tips, } = gg; await gg.save().catch(error => console.log(error)); return { @@ -57,6 +59,8 @@ module.exports = { Category, Commands, Level, + NSFW, + Tips, }; } else { const Guild = guild.Guild; @@ -72,6 +76,8 @@ module.exports = { const Category = guild.Category; const Commands = guild.Commands; const Level = guild.Level; + const NSFW = guild.NSFW; + const Tips = guild.Tips; return { Guild, Prefix, @@ -86,6 +92,8 @@ module.exports = { Category, Commands, Level, + NSFW, + Tips, }; } }, @@ -148,10 +156,10 @@ module.exports = { */ async getUserEcon(ID) { if (!ID) throw new Error("User ID?"); - const user = await u.findOne({ User: ID }).lean().cache(120); + const user = await e.findOne({ User: ID }).lean().cache(120); if (!user) { - const ss = new u({ User: ID }); - const { User, CP, BJWins, SlotsWins, BetWins } = ss; + const ss = new e({ User: ID }); + const { User, CP, BJWins, SlotsWins, BetWins, Inventory, Gun } = ss; await ss.save().catch(error => console.log(error)); return { User, @@ -159,6 +167,8 @@ module.exports = { BJWins, SlotsWins, BetWins, + Inventory, + Gun, }; } else { const User = user.User; @@ -166,12 +176,16 @@ module.exports = { const BJWins = user.BJWins; const SlotsWins = user.SlotsWins; const BetWins = user.BetWins; + const Inventory = user.Inventory; + const Gun = user.Gun; return { User, CP, BJWins, SlotsWins, BetWins, + Inventory, + Gun, }; } }, @@ -186,7 +200,7 @@ module.exports = { if (!user) { const sss = new u({ User: ID }); await sss.save().catch(error => console.log(error)); - return { Reason, Time }; + return { Reason }; } else { user.User = ID; user.AFK = Reason; @@ -220,7 +234,7 @@ module.exports = { */ async BK(ID, Toggle, Reason) { if (!ID) throw new Error("User ID?"); - //if (!Toggle) throw new Error("Blacklist Toggle?"); + // if (!Toggle) throw new Error("Blacklist Toggle?"); if (!Reason) throw new Error("Blacklist Feason?"); const user = await u.findOne({ User: ID }); if (!user) { @@ -388,7 +402,8 @@ module.exports = { /** * @param {String} ID - Guild ID * @param {String} Role = Role ID - */ async setMuterole(ID, Role) { + */ + async setMuterole(ID, Role) { if (!ID) throw new Error("Guild ID?"); if (!Role) throw new Error("Role?"); const guild = await g.findOne({ Guild: ID }); @@ -407,7 +422,8 @@ module.exports = { * @param {String} ID - Guild ID * @param {String} Channel = Channel ID * @param {Number} Count - StarCount - */ async setStarboard(ID, Channel, Count) { + */ + async setStarboard(ID, Channel, Count) { if (!ID) throw new Error("Guild ID?"); if (!Channel) throw new Error("Channel?"); const guild = await g.findOne({ Guild: ID }); @@ -427,7 +443,8 @@ module.exports = { /** * @param {String} ID - Guild ID * @param {String} Channel = Channel ID - */ async setChatbot(ID, Channel) { + */ + async setChatbot(ID, Channel) { if (!ID) throw new Error("Guild ID?"); if (!Channel) throw new Error("Channel?"); const guild = await g.findOne({ Guild: ID }); @@ -459,12 +476,10 @@ module.exports = { } await newU.save().catch(error => console.log(error)); return; + } else if (Toggle == "true") { + guild.Premium = true; } else { - if (Toggle == "true") { - guild.Premium = true; - } else { - guild.Premium = false; - } + guild.Premium = false; } await guild.save().catch(error => console.log(error)); cachegoose.clearCache(); @@ -571,12 +586,10 @@ module.exports = { } await newdb.save().catch(error => console.log(error)); return; + } else if (Toggle === "true") { + idk.Status = "true"; } else { - if (Toggle === "true") { - idk.Status = "true"; - } else { - idk.Status = "false"; - } + idk.Status = "false"; } await idk.save().catch(error => console.log(error)); cachegoose.clearCache(); @@ -599,12 +612,62 @@ module.exports = { } await newU.save().catch(error => console.log(error)); return; + } else if (Toggle == "true") { + guild.Level = true; } else { + guild.Level = false; + } + await guild.save().catch(error => console.log(error)); + cachegoose.clearCache(); + return; + }, + /** + * @param {String} ID - Guild ID + * @param {String} Toggle - Level Toggle + */ + async setNSFW(ID, Toggle) { + if (!ID) throw new Error("Please Provide a Guild ID"); + if (!Toggle) throw new Error("Please Provide a Toggle!"); + const guild = await g.findOne({ Guild: ID }); + if (!guild) { + const newU = new g({ Guild: ID }); if (Toggle == "true") { - guild.Level = true; + guild.NSFW = true; } else { - guild.Level = false; + guild.NSFW = false; + } + await newU.save().catch(error => console.log(error)); + return; + } else if (Toggle == "true") { + guild.NSFW = true; + } else { + guild.NSFW = false; + } + await guild.save().catch(error => console.log(error)); + cachegoose.clearCache(); + return; + }, + /** + * @param {String} ID - Guild ID + * @param {String} Toggle - Level Toggle + */ + async setTips(ID, Toggle) { + if (!ID) throw new Error("Please Provide a Guild ID"); + if (!Toggle) throw new Error("Please Provide a Toggle!"); + const guild = await g.findOne({ Guild: ID }); + if (!guild) { + const newU = new g({ Guild: ID }); + if (Toggle == "true") { + guild.Tips = true; + } else { + guild.Tips = false; } + await newU.save().catch(error => console.log(error)); + return; + } else if (Toggle == "true") { + guild.Tips = true; + } else { + guild.Tips = false; } await guild.save().catch(error => console.log(error)); cachegoose.clearCache(); diff --git a/util/pagination/pagination.js b/util/pagination/pagination.js @@ -1,46 +0,0 @@ -module.exports = class Util { - static chunk(arr, size) { - const temp = []; - for (let i = 0; i < arr.length; i += size) { - temp.push(arr.slice(i, i + size)); - } - return temp; - } - - static get paginationEmojis() { - return ["โ—€", "โ›”", "โ–ถ"]; - } - - static async pagination(msg, author, contents, init = true, currPage = 0) { - if (init) for (const emoji of this.paginationEmojis) await msg.react(emoji); - const filter = (reaction, user) => { - return ( - this.paginationEmojis.includes(reaction.emoji.name) && - user.id === author.id - ); - }; - const collector = msg.createReactionCollector({ - filter, - max: 1, - time: 90000, - }); - collector - .on("collect", reaction => { - reaction.users.remove(author); - const emoji = reaction.emoji.name; - if (emoji === this.paginationEmojis[0]) currPage--; - if (emoji === this.paginationEmojis[1]) return collector.stop(); - if (emoji === this.paginationEmojis[2]) currPage++; - currPage = - ((currPage % contents.length) + contents.length) % contents.length; - const embed = msg.embeds[0] - .setDescription(contents[currPage]) - .setFooter(`Page ${currPage + 1} of ${contents.length}`); - msg.edit({ embeds: [embed] }); - this.pagination(msg, author, contents, false, currPage); - }) - .on("end", (_, reason) => { - if (["time", "user"].includes(reason)) msg.reactions.removeAll(); - }); - } -};