Quality Armory 1.1.122

A quality gun plugin similar to CrackShot.

  1. zombie_striker
    Tested Minecraft Versions:
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.13
    Source Code:
    [!] I will not respond to bug fixes in the review section.[!]
    If you are experiencing a problem with QA, please report this issue in the Discussions tab or the Github page, including any errors you recieve and whether you tried it on a clean server (with no other plugins installed). I will not respond to issues in the review section, so don't use it as a way to try to get faster responses.

    QualityArmory is meant to be a replacement for Crackshot, as it's last released update was for 1.8. What this plugin aims to do is add guns into minecraft without affecting the base game. All 3D gun models are loaded onto select items and data values in such a way as to make sure you should never see those textures unless you are given a gun.

    The resourcepack is included in the core plugin, and can be configured in the config if needed:
    By default, the resourcepack is sent when the player uses a /qa command, or when they interact with a custom item. These values are configurable in the config; The resourcepack can be disabled (useDefaultResourcepack), can be set to be sent when the player joins (sendOnJoin), or can even be overriden with a custom resourcepack (setting DefaultResourcepackOverride to true(so that QA knows its a custom url), and DefaultResourcepack to the URL of the resourcepack)

    Crackshot support/conversion:
    QualityArmory now supports crackshot weapons conversions. Drop the weapon configs for crackshot in the /newguns/ directory and reload to have QA convert the weapons. All crackshot weapons will now have a corresponding yml file for QA.

    1. Adds new guns, such as P30, M16, M40, MP5, AK-47, Remmington, HeneryRifle, an RPG, and many, many, many more.
    2. Does not replace existing items in the game.
    3. Built-in resoucepack distributor; players will see the guns without you needing to change your server resoucepack.
    4. Built-in auto-updater, allowing for improvements and new guns to be synched with the server on reloads.
    5. Includes an API to allow other plugins to add guns
    6. Supports 1.9 - 1.12
    7. 1.8 has some support-Due to the way this update handled textures, there are currently only 7 guns. More may be added if I can find a work around.
    • /QA give <Gun/Ammo>, gives the player the item if they have permission "qualityarmory.give"
    • /QA craft, allows players to be able to craft guns if they have permission "qualityarmory.craft"
    • /QA shop, allows players to open up the gun shops if they have permission "qualityarmory.shop"
    • /QA reload, reloads all of the values for the plugin.
    Creating custom guns:
    Creating custom guns is as easy as Crackshot. To learn how to create new guns, visit the Wiki HERE.

    As much as I will try add compatibility with older updates, this may not be possible with certain features or systems. Also, due to the major changes in 1.13, existing features may not work properly in order to support the current, recommended update. Although I will still try to help as much as I can, if a certain bug is specific to an older update or fixing the bug will create other problems for new updates, I may have to let a bug exist.

    Plugins that support QualityArmory:
    • qualityarmory.*
      • Inherits qualityarmory.admin
    • qualityarmory.admin
      • qualityarmory.give
      • qualityarmory.create
      • qualityarmory.reload
      • qualityarmory.createnewitem
      • qualityarmory.getmaterialused
      • qualityarmory.debugmessages
      • qualityarmory.getopengunslot
      • Inherits quailityarmory.default
    • qualityarmory.default
      • qualityarmory.craft
      • qualityarmory.shop
      • qualityarmory.usegun
    You can view the API and how to use it here:


    I created this plugin as a simple alternative to Crackshot, and never intended on making money from it. However, if you want to support me, you can do so through Paypal (PM me for details)

    This plugin does update automatically:

    This plugin checks for updates and will download updates. If you do not want this plugin to automatically update, all you need to do is edit one line in the "plugins\AUpdater\global.yml" file. Just change the one variable in there to false (or, if you run into any problems, copy the code below)
    Code (Text):

    # Updater by ArsenArsen
    # Global config
    # Sets should updates be downloaded globaly
    update: false
    How to Install
    • Drop this plugin into you plugins folder
    • Find/Create a plugin that will allow you get to your world
    • Restart your server

Recent Updates

  1. Fixed recoil. (Full release)
  2. Fixed recoil
  3. Fixed bunch of bugs

Recent Reviews

  1. honla
    Version: 1.1.121
    the guns no damage the players in the server or mobs please help me only the lightsaber damage
    1. zombie_striker
      Author's Response
      If you have an issue with the plugin, please post it in the discussions tab.

      QA uses the same damaging system as bukkit. As such, plugins that stop damage such as AntiCheat/anti-farreach plugins *can* cause conflicts if they do not account for plugins doing damage. If you can, make a test server with only QA installed and see if you can damage entities then. If you can, then there is a conflict with another one of the plugins. In which case, either remove the conflicting plugin if it is not needed, or post it here and I'll see if I can make a patch for it.
  2. LauchGameee
    Version: 1.1.120
    I have a bug on my server with this Plugin. If you shoot and you actually hit the player then he gets no damage (probably not hit) would be nice if I got an answer. Dear Greetings LauchGamee
    1. zombie_striker
      Author's Response
      This is most likely a caused by a conflict with one of the plugins on your server. Can you create a new post in the discussions section, and post all of the plugins enabled on your server?
  3. Peebbong
    Version: 1.1.120
    Thanks for Plugin. Nice Its recommend plugin. Nice author plugin. always update plugin thanks happy day!
  4. Mixo
    Version: 1.1.118E
    My server or my Minecraft is laging when I use ful auto on weapons like M4A1S or FN-P90.
    1. zombie_striker
      Author's Response
      Is it the *Server* (tick speed. FPS stays the same) or the *Client* (FPS drop) this is lagging?

      If it's FPS drop, it could be the particles used. If this is the case, I would recommend editing the config so the bullet tracer spacing is set to a larger number (or just reduce the particles settings in the minecraft options menu)

      If it is the server, you may not have a powerful enough server to run all the bullet detection. If this is the case, you can go into the config and increase the "bullet step" from 0.1 to somewhere below 0.5 (anything above this could cause bullets to go through walls or not damage players)
  5. Gustavo_Player
    Version: 1.1.118E
    It's a great plugin, but unfortunately I have not been able to merge the texture of Magic with it, I'm horrible at mecher with the textures of Minecraft. :P
  6. Ghostproyolo
    Version: 1.1.118E
    The best gun plugin ive ever seen! flamethrower? yA YeEeeEEeeeeEEeEEeEEEEEEEEEeeeT
    1. zombie_striker
      Author's Response
      A flamethrower is coming soon.
  7. Zendrique
    Version: 1.1.118E
    yes the weapon is in my main hand when I reload the weapon but it disappears every time
  8. Lazo
    Version: 1.1.118E
    This isn't similar to Crackshot. Rather, this is unique and has richer features.
  9. Zendrique
    Version: 1.1.118D
    bnojur my problem of reloading the weapon is still not raigler here are the logs of "ENABLE-DEBUG":
    [15:51:37 INFO]: ClickedShop
    [15:51:37 INFO]: Buy-gun
    [15:51:38 INFO]: InteractEvent Called
    [15:51:38 INFO]: me.zombie_striker.qg.guns.Gun item is being used!
    [15:51:38 INFO]: CLICKED GUN musket
    [15:51:38 INFO]: Dups check
    [15:51:38 INFO]: Made it to gun/attachment check : musket
    [15:51:38 INFO]: Non-Fire mode activated
    [15:51:38 INFO]: Reload called
    [15:51:38 INFO]: Trying to reload. player has ammo
    [15:51:38 INFO]: Reached end for gun-check!
    [15:51:40 INFO]: InteractEvent Called
    [15:51:40 INFO]: me.zombie_striker.qg.guns.Gun item is being used!
    [15:51:40 INFO]: CLICKED GUN musket
    [15:51:40 INFO]: Dups check
    [15:51:40 INFO]: Made it to gun/attachment check : musket
    [15:51:40 INFO]: Fire mode called
    [15:51:40 INFO]: Trying to reload WITH AUTORELOAD. player has ammo
    [15:51:40 ERROR]: Could not pass event PlayerInteractEvent to QualityArmory v1.1.118
    org.bukkit.event.EventException: null
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:308) ~[server.jar:git-Spigot-f6a273b-1a7f2d1]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[server.jar:git-Spigot-f6a273b-1a7f2d1]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:500) ~[server.jar:git-Spigot-f6a273b-1a7f2d1]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:485) ~[server.jar:git-Spigot-f6a273b-1a7f2d1]
    at org.bukkit.craftbukkit.v1_13_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:239) ~[server.jar:git-Spigot-f6a273b-1a7f2d1]
    at org.bukkit.craftbukkit.v1_13_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:206) ~[server.jar:git-Spigot-f6a273b-1a7f2d1]
    at org.bukkit.craftbukkit.v1_13_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:202) ~[server.jar:git-Spigot-f6a273b-1a7f2d1]
    at net.minecraft.server.v1_13_R2.PlayerConnection.a(PlayerConnection.java:1683) ~[server.jar:git-Spigot-f6a273b-1a7f2d1]
    at net.minecraft.server.v1_13_R2.PacketPlayInArmAnimation.a(PacketPlayInArmAnimation.java:24) ~[server.jar:git-Spigot-f6a273b-1a7f2d1]
    at net.minecraft.server.v1_13_R2.PacketPlayInArmAnimation.a(PacketPlayInArmAnimation.java:1) ~[server.jar:git-Spigot-f6a273b-1a7f2d1]
    at net.minecraft.server.v1_13_R2.PlayerConnectionUtils.a(SourceFile:10) ~[server.jar:git-Spigot-f6a273b-1a7f2d1]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_181]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_181]
    at net.minecraft.server.v1_13_R2.SystemUtils.a(SourceFile:199) [server.jar:git-Spigot-f6a273b-1a7f2d1]
    at net.minecraft.server.v1_13_R2.MinecraftServer.b(MinecraftServer.java:900) [server.jar:git-Spigot-f6a273b-1a7f2d1]
    at net.minecraft.server.v1_13_R2.DedicatedServer.b(DedicatedServer.java:417) [server.jar:git-Spigot-f6a273b-1a7f2d1]
    at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:835) [server.jar:git-Spigot-f6a273b-1a7f2d1]
    at net.minecraft.server.v1_13_R2.MinecraftServer.run(MinecraftServer.java:733) [server.jar:git-Spigot-f6a273b-1a7f2d1]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]
    Caused by: java.lang.NullPointerException
    at me.zombie_striker.qg.guns.utils.GunUtil.basicReload(GunUtil.java:501) ~[?:?]
    at me.zombie_striker.qg.guns.Gun.reload(Gun.java:350) ~[?:?]
    at me.zombie_striker.qg.guns.Gun.onClick(Gun.java:631) ~[?:?]
    at me.zombie_striker.qg.guns.Gun.onLMB(Gun.java:518) ~[?:?]
    at me.zombie_striker.qg.Main.onClick(Main.java:2824) ~[?:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_181]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_181]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_181]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_181]
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:304) ~[server.jar:git-Spigot-f6a273b-1a7f2d1]
    ... 18 more
    1. zombie_striker
      Author's Response
      Odd error. Basically, that error is stating that the item in the player's main hand is null/air. When you press the F key or RMB to reload, is the gun in your main hand?
  10. Dzoko
    Version: 1.1.118B
    line: 423


    if (QualityArmory.isCustomItem(p.getItemInHand())) {


    if (p.getItemInHand() != null && QualityArmory.isCustomItem(p.getItemInHand())) {
    1. zombie_striker
      Author's Response
      isCustomItem checks if the item is null inside the method itself. Adding that extra check is unnecessary