Get an Epic Experience with Premium

Reagent Restocker

Bags & Inventory Login to Add Favorites
  • World of Warcraft
  • 2,527 Monthly Downloads
  • Supports: 6.0.3
  • 266,434 Total Downloads
  • Updated 01/18/2015
  • Created 10/06/2009
  • 377 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: MIT License
  • Newest File: v10.1
Support development! **

About Reagent Restocker

Reagent Restocker is a simple addon for automatically purchasing items, selling unwanted items, and repairing. Unlike many other similar addons, Reagent Restocker supports drag and drop and has a full GUI for editing buy/sell lists.

If you like it, feel free to donate! I highly recommend donating to your favorite addons, it really helps. If every person who downloads this addon donates as little as $1 per month, I could actually work on this addon full time. As it stands, however, it's actually kinda hard to justify putting much time into it at all.

Reagent Restocker now has Google+ and Facebook pages! News, notes, and patch releases will be posted to Google+ and Facebook.

NOTE: I've been seeing copies of Reagent Restocker popping up at other download sites. The only three places I currently upload the addon to are,, and I cannot guarantee the integrity of any other download sites.

What can you do with Reagent Restocker? Well, you can do the following:

  • Automatically buy items from vendors.

  • Automatically sell items you can't use.

  • Automatically fix your gear.

  • Warn you when you're getting low on items you automatically buy.

  • Use LDB to show your current stock of items.

  • Automatically mark items in ArkInventory as trash (Note: This feature is maintained by the authors of ArkInventory).

  • Access it via the minimap (must have LibDBIcon installed).

  • When automatically buying water, it can automatically update the buy list to the latest usable water by your character.

  • Stock excess items in your bank or the guild bank.

  • Control buying/selling/repairing based on vendor discounts.

Devs wanted! It's open source, and I've been busy with other things in real life. I'm willing to add more members to the team. Must have a CurseForge account.


If you have LibDBIcon or a LDB compatible bar installed, you can access Reagent Restocker simply by clicking on the icon. Otherwise, you can access it via slash commands.

To start using Reagent Restocker, type /rr at the command line. /rrstock and /reagentrestocker also work.

Raid Roll users: Reagent Restocker may take over /rr - if that happens, use /rrl for Raid Roll.

/rrbuy and /rrsell add items to the sell and buy lists (thanks g3gg0)


The primary portal for Reagent Restocker is at, even though I also publish the addon to (the old portal) and, and may publish to other places in the future.

The public facing page is here:

The development pages are here:

r128 | cobraa1 | 2015-01-18 19:04:05 +0000 (Sun, 18 Jan 2015) | 6 lines
Changed paths:
   A /tags/v10.1 (from /trunk:127)

-   Code cleanup, prints message that reagents have been deposited into Reagent Bank.

-   Fixed stocking from bank.

-   Fixed automatic moving of reagents to reagent bank.

r127 | cobraa1 | 2015-01-18 19:02:10 +0000 (Sun, 18 Jan 2015) | 1 line
Changed paths:
   M /trunk/BankBag.lua
   M /trunk/
   M /trunk/ReagentRestocker.toc

Commit before release.


First Previous Page 2 of 35 Next Last
  • #520

    The feature should be available in version 10.

  • #515

    Awesome mod dude!

    Just one little note: As a guild master I am unable to use the repair from guild option as the mod thinks there is insufficient funds (shows 0g remaining on mouse over).



  • #514

    Hi. Love this addon!

    I can't get RR to restock items from the bank. I don't see any error messages or anything, it just doesn't do anything when I am low on an item and I open my bank. In fact now that I'm checking, it isn't overstocking to the bank either. I have both items checked in the options.

    Stocking from a vendor works just fine!

  • #512

    Hello CobraA1!

    You may want to replace "Bag" string in BankBag.lua with _G.GetAuctionItemSubClasses(3). If you do so, your addon will correctly stock items from bank in non-english WoW versions. Thank you!

  • #513

    Should be fixed, although I should note that I've never really taken the time to localize the addon, and I don't have access to foreign language versions of WoW, so foreign language versions of the game may still be problematic.

  • #511

    Just tried to use it to setup to take food from the Guild Bank to my bag etc....

    Received this error:

    Message: Interface\AddOns\ReagentRestocker\BankBag.lua:917: attempt to call global 'GetGuildBankItemInfo' (a nil value)
    Time: 09/06/14 10:53:13
    Count: 3
    Stack: [C]: in function `GetGuildBankItemInfo'
    Interface\AddOns\ReagentRestocker\BankBag.lua:917: in function `doMove'
    Interface\AddOns\ReagentRestocker\BankBag.lua:875: in function `moveItems'
    Interface\AddOns\ReagentRestocker\BankBag.lua:188: in function `theAction'
    Interface\AddOns\ReagentRestocker\BankBag.lua:1255: in function `triggerAction'
    Interface\AddOns\ReagentRestocker\BankBag.lua:243: in function `v'
    Interface\AddOns\ReagentRestocker\EventHandler.lua:66: in function <Interface\AddOns\ReagentRestocker\EventHandler.lua:32>
    (tail call): ?



    It doesn't take anything from the Guild Bank what so ever =/ Any ideals as to why or what I can do to fix it etc ?

    Last edited by Redcar71 on 9/6/2014 9:56:50 AM
  • #510

    I love this addon, thanks for making it.  I can't remember the last time I ran out of any tomes or anything.   The only problem I have come across (just now) was having "Sell unusuable armor and weapons" enabled.  It's great for running old instances for transmog gear, it gets all the crap I can't transmog anyway out of my bags which I love.  Unfortunately, after looking for an hour or more for a Hellscream BoA shield I got just a week or two ago, I find that this addon had vendored it--because monks can't use shields.  

    TLDR: Can you throw some sort of exception for BoAs getting vendored if unusable.  I imagine it already exists, but perhaps the Hellscream ones aren't all on there?  Thanks again!

    Last edited by Apennyworth on 8/25/2014 10:02:37 AM
  • #509

    It's been a while, and I haven't worked on Reagent Restocker in a long time. Addon support has just been added to the beta in Warlords of Draenor, so it's prime time to get started working on it again.

     I'm gonna try to make Reagent Restocker my weekend project from now on, and I'm setting the following goals for myself:

    • Relearn the code - sadly, I've been out of it for a while, I've probably forgotten where everything is . . .

    • Prepare Reagent Restocker for Warlords of Draenor. Already it needs some work, with one of the libraries crashing. An update for the library just came out that fixes it, so I'm going to release a beta of RR very soon to fix that.

    • Rework the UI, especially the "new" UI. It never seemed quite right. I'm gonna shoot for a flat look, which requires less artwork and should be easier to work with.

    • Use what I've learned from working with Lua as a full time job to make it a better addon. Kinda vague right now, but I've learned a lot, and should be able to apply it as I work with the code.


    So I'm back :). Hopefully I can get things done.

    Last edited by CobraA1 on 7/20/2014 1:38:45 PM
  • #507

    The addon just sold all my pandaren banquets and buff food. O.O

    Could you add option to sell food and water but not buff food? Additionally it would be nice if there would be an option to limit the number it auto-sells to the max amount you are able to buyback if an accident like this happens. Thanks!

  • #508

    Detecting "buff food" isn't trivial - I'd probably need to read the tooltips.

    And unfortunately, I usually don't want to see WoW again after I'm done with work, since developing the Zygor addon is my full time job now.

    For now, just add the banquets and buff food to the exceptions list. That should work.

  • #506

    Mmmm    couldn't setup to buy noodles from cart. 

  • #505

    Apologies for not getting much done. There's some mixed news as far as the future of Reagent Restocker goes: On one hand - I'm actually working for Zygor Guides! Working on Lua full time now. Which means I'm learning a lot, and that could potentially help out Reagent Restocker. There's a few things I'd like to change going forward.

    On the other hand - I'm pretty burned out after a hard day's work, and I generally don't want to be in World of Warcraft for the rest of the day, much less doing more programming for it. Perhaps during the holiday season I'll see if I can do more work. But for now, I'm just updating the TOC and fixing occasional bugs.

  • #504
    restocker Buying quantity and stock level warning

    Hi it seems reagent restocker is having problem with keeping the quantity and stock level warning ain't working..once each has a number set.. it doesn't keep those settings once you close or go to another option..

  • #503

    Hi after I updated to 8.1 I keep getting this error message when attempting to auto sell items. Any help would be greatly appreciated.

    Message: ReagentRestocker-v8.1\Core.lua:1510: attempt to index field "?" (a nil value)
    Time: 07/21/13 01:39:26
    Count: 1
    Stack: Interface\AddOns\ReagentRestocker\Core.lua:1055: in function `isToBeSold'
    Interface\AddOns\ReagentRestocker\Core.lua:1540: in function `sell'
    Interface\AddOns\ReagentRestocker\Core.lua:868: in function `MERCHANT_SHOW'
    Interface\AddOns\ReagentRestocker\Core.lua:817: in function `v'
    Interface\AddOns\ReagentRestocker\EventHandler.lua:66: in function <Interface\AddOns\ReagentRestocker\EventHandler.lua:32>
    (tail call): ?

    Locals: self = <table> {
     repair = <function> defined @Interface\AddOns\ReagentRestocker\Core.lua:1368
     SetDefaultModuleLibraries = <function> defined @Interface\AddOns\ArkInventory\Externals\Ace3-AceAddon\AceAddon-3.0.lua:398
     findOptimalDestinationInBags = <function> defined @Interface\AddOns\ReagentRestocker\BankBag.lua:494
     EnableModule = <function> defined @Interface\AddOns\ArkInventory\Externals\Ace3-AceAddon\AceAddon-3.0.lua:363
     modules = <table> {
     baseName = "ReagentRestocker"
     IterateEmbeds = <function> defined @Interface\AddOns\ArkInventory\Externals\Ace3-AceAddon\AceAddon-3.0.lua:473
     MERCHANT_SHOW = <function> defined @Interface\AddOns\ReagentRestocker\Core.lua:821
     MERCHANT_UPDATE = <function> defined @Interface\AddOns\ReagentRestocker\Core.lua:702
     showFrame = <function> defined @Interface\AddOns\ReagentRestocker\UI.lua:1108
     purchaseItems = <function> defined @Interface\AddOns\ReagentRestocker\Core.lua:957
     lockTransaction = <function> defined @Interface\AddOns\ReagentRestocker\Core.lua:631
     getSellPrice = <function> defined @Interface\AddOns\ReagentRestocker\Core.lua:361
     listType = <function> defined @Interface\AddOns\ReagentRestocker\Core.lua:537
     defaultModuleState = true
     IsEnabled = <function> defined @Interface\AddOns\ArkInventory\Externals\Ace3-AceAddon\AceAddon-3.0.lua:482
     isToBeDestroyed = <function> defined @Interface\AddOns\ReagentRestocker\Core.lua:1323
     areSlotsUnlocked = <function> defined @Interface\AddOns\ReagentRestocker\BankBag.lua:254
     DisableModule = <function> defined @Interface\AddOns\ArkInventory\Externals\Ace3-AceAddon\AceAddon-3.0.lua:381
     ADDON_LOADED = <function> defined @Interface\AddOns\ReagentRestocker\Core.lua:1667
     getMerchantDiscount = <function> defined @Interface\AddOns\ReagentRestocker\Core.lua:1581
     isReagentVendor = <function> defined @Interface\AddOns\ReagentRestocker\Core.lua:1353
     safeGetItemInfo = <function> defined @Interface\AddOns\ReagentRestocker\Core.lua:300
     isSpecialBagType = <function> defined @Interface\AddOns\ReagentRestocker\BankBag.lua:575
     addToListByID = <function> defined @Interface\AddOns\ReagentRestocker\Core.lua:595
     SetEnabledState = <function> defined @Interface\AddOns\ArkInventory\Externals\Ace3-AceAddon\AceAddon-3.0.lua:455
     enabledState = true
     isSlotUnlocked = <function> defined @Interface\AddOns\ReagentRestocker\BankBag.lua:248
     hideFrame = <function> defined @Interface\AddOns\ReagentRestocker\UI.lua:1104
     IterateModules = <function> defined @Interface\AddOns\ArkInventory\Externals\Ace3-AceAddon\AceAddon-3.0.lua:468
     sell = <function> defined @Interface\AddOns\ReagentRestocker\Core.lua:1528
     checkDB = <function> defined @Interface\AddOns\ReagentRestocker\DatabaseUpdate.lua:497
     countItemInBags = <function> defined @Interface\AddOns\ReagentRestocker\BankBag.lua:281
     ITEM_LOCK_CHANGED = <function> defined @Interface\AddOns\ReagentRestocker\Core.lua:1760
     Enable = <function> defined @Interface\AddOns\ArkInventory\Externals\Ace3-AceAddon\AceAddon-3.0.lua:325
     NewModule = <function> defined @Interface\AddOns\ArkInventory\Externals\Ace3-AceAddon\AceAddon-3.0.lua:266
     getVersion = <function> defined @Interface\AddOns\ReagentRestocker\Core.lua:1649
     VARIABLES_LOADED = <function> defined @Interface\AddOns\ReagentRestocker\DatabaseUpdate.lua:447
     addItemToSellingList = <function> defined =[C]:-1
     notifyPlayer = <function> defined @Interface\AddOns\ReagentRestocker\Core.lua:643
     defaultModuleLibraries = <table> {

  • #502

    Hi. I just want to confirm that the overstocking bug still exists. I am using my own quote since earlier...

    Quote from catonbreak»

    This addon seems fantastic and I tried it out. Unfortunately it did not work as it is intended. Bugs, I believe.

    I tried various settings for the automatic stocking feature. Set River's Hearts to stock up to "20", and "Overstock" for bank ticked. If I have 40 in inventory, it just keeps stocking up 1 more full stacked River's Heart everytime I enter the Bank. It never overstock anything neither from bank nor to the inventory. Simply, the overstock feature seems to not work at all for me.

    I haven't found any addon that should do like your addon does automatically, so I would love this to work.

    I want to set up all my gems for this, so I will always have 20 of each sort and cutted versions in the bags and all exceeded amounts into the bank.

  • To post a comment, please login or register a new account.
Login to Curse

Don't have an account? Create One.

Get an epic experience with Curse Premium
  • Faster addon downloads
  • Premium-Only Beta Giveaways
  • Ad-Free Curse experience
  • Premium Curse Client
  • and many More Features
  • Learn More »

CoachVicious Giveaway!