Classic is now supported! If you see issues with Classic, please open an issue and we will investigate and resolve as quickly as we can, thanks!
The ultimate in auto-selling unwanted items in your bags whenever you visit a vendor. Features detailed rules for selling and keeping items with custom rules to make it do exactly what you want. Automatically get rid of the trash, old expansion items, and anything else you don't want and always find yourself having to sell. Features a plugin model so other addons can extend our rules and functions. We have an example plugin for Pawn, which adds sell rule for non-Pawn upgrades, and a keep rule for anything that is an upgrade.
Our goal is to allow you to set up the exact set of sell rules you want so it always sells precisely the things you want it to sell, and never the things you care about. So you can set up your rules, relax, enjoy the convenience, and not worry about it!
Here's a video tutorial of the addon and all of its features!
New Features (3.0.3 Release)
For returning fans of our addon, here's a quick list of new things we've added with 3.0.0 and up that you may not have known.
-
CUSTOM RULES! We have done a tremendous amount of work to give you the ability to make any sort of Sell or Keep rule that you want. We made it as painless as we could think in terms of exposing to you a controlled Lua environment to do script expressions, as well as exposing a variety of properties and functions you can use to build your custom rules.
-
A rich help reference for making custom rules, inside the custom rules editor.
-
The ability to view the item properties of any item, for use in making rules.
-
The ability to test your rule against any items in your inventory to see what matches.
-
Fairly robust validation of the rules for correctness. There are a few corner cases due to short-circuit logic, but we validate as much as we can to catch authoring errors.
-
A new UI for the Rules List. This UI indicates which rules are custom rules and is a little simpler to use in terms of enabling/disabling rules. You can also right-click any rule to directly edit it (if it is a custom rule), or to view its script and see what it matches in your inventory.
-
A Plugin Model! Version 3.0.0 ships with a Pawn extension as a demonstration of our plugin model. It will only be loaded if you have both Pawn and Vendor installed, and when it does, you have a new sell rule and a new keep rule based on Pawn Upgrades. We expect in the future to have at least one more plugin that will contain a bunch of extra built-in rules to include the popular ones those who use our addon share.
What is Vendor?
Vendor is a fully configurable manager for auto-selling any items you don't want to keep. It is designed to be a tool for convenience when leveling, questing, raiding, or farming old content. You end up with a lot of junk to sell, and Vendor helps you do that by giving you configurable rules to use that can sell what you want it to sell, without having to lift a finger, and with peace of mind that the things you don't want sold will not be. We have a solid set of built-in rules, along with a plugin system for more rules, and the ultimate in custimization - the ability to create your own custom selling or keeping rules. Sell or keep exactly the items you want!
Vendor also has an auto-repair feature for whenever you visit the vendor capable of doing so. We're all about hands-off convenience.
And performance. We know every frame counts, and even though we have a light touch by our nature, we are careful to make sure we can deliver a quality experience with efficient programming. We are also quite proud to say we have zero dependencies, which means no unnecessary bloat, and no risk of dependency corruption to or from other addons. If we do add any dependencies, it will be for independently-removable plug-ins to other addons which require it and not for our core functionality.
A short (incomplete) list of select features. Most of these are configurable.
-
Built in set of keep rules, covering uncollected transmog, BOE, Soulbound, Equipment Sets and others.
-
Built in set of sell rules, covering green/blue/purple gear below a certain level, old food, greys, and others.
-
Ability to create your own custom sell or keep rules based on almost any item property. Want a rule to behave slightly differently? You can create your own to do the job and make it exactly the way you want.
-
Auto-repair whenever you visit a merchant.
-
Auto-confirm selling an item that will become non-tradeable (such as raid loot).
-
Tooltips that indicate if an item will be sold, or is on one of your block lists.
If you encounter any problems, please create an issue to let us know!
How does Vendor Work?
Vendor works by having a rules engine and an auto-selling thread that executes whenever you open the merchant window. This also auto-repairs if you have that enabled (it is by default).
We have three sets of rules:
-
Keep Rules. These are safeguards that prevent you from accidentally selling things you don't want to sell. Keep rules always run before Sell rules, with one exception - Items on the "Always Sell" list will always be sold. By default we have a few safeguards on that make sure you aren't surprised by what Vendor can do for you. There are additional safeguards you can enable if you want. As you become comfortable with Vendor and its rules, you can relax some of the safeguards to get more out of it.
-
Sell Rules. These are the rules that will auto-vendor things. We have most of them turned on by default, but they will be limited depending on which Keep Rules you have enabled. A few rules have configurable variables such as Selling green items below a certain item level - you can set the item level.
-
Custom Rules. These are intended to be the real meat of Vendor - make whatever rules to sell things that you want! You can make very flexible custom rules, especially with the TooltipContains() function, which allows you to match any text in the tooltip as well as item properties. You can make both Sell and Keep rules to suit your needs. This is a very powerful part of Vendor.
In addition to the rules, we also have blocklists you can set for items to be Always-Sold, or Never-Sold. This is your fine-tuned exact control over the Sell and Keep rules. As such, the blocklists are always checked first before any rules are run. So if you put something on the Always-Sell or Never-Sell list, it will do exactly as you expect it to do. By using our keybinds, you can quickly add or remove items from either list by mousing over them and pressing the keybind. We also have console commands if you really want to do it the hard way.
You might be wondering - how do I know if an item will be sold? We add that information to its tooltip! Whenever you mouseover an item, we will tell you if that item will be auto-sold by Vendor. We also have detailed tooltips which can even tell you which rule was the one that causes the item to be sold - so you know which one to tweak should you not want it sold, or to see which rule is making your life easier. Also, items in either the Always-Sell or Never-Sell blocklists will have an additional tooltip line indicating that you have marked them Always-Sell or Never-Sell.
We will continually add more properties of items that can be used for rules, and occasionally some new useful built-in Keep rules and Sell rules. See the upcoming features for more, and if you have a request, feel free to open an issue ticket or leave a comment.
How to Configure Vendor
You can configure Vendor's rules and options by accessing the interface options panel, or using these slash commands: /vendor or /ven
/vendor rules - will directly open the rules configuration dialog.
/vendor settings - will directly open the interface options panel.
/vendor keys - will directly open the keybind options.
We strongly recommend trying the keybinds, as they are a convenient way to mark any item you mouse-over with a tooltip as auto-sell or never sell, giving you a very quick way of adding and removing items from the Always-Sell and Never-Sell lists.
The Interface Options panel has sub-panels where you can tweak the performance of Vendor and the Repair functionality. By default, Repair will pull from the Guild Repairs if available and sufficient to cover the cost. You can disable Guild Repairs or Auto-Repair if you want.
Upcoming Features
Here's the list of things we are working on now to make Vendor even better, and some of our future plans. If you have ideas for us, feel free to let us know via ticket or comment. These are in no particular order, except Custom Rules, which we are actively working on now and expect later this week (around July 20-22nd).
-
Keep Rule for items that are Upgrades or Best-In-Slot. This would also be a property available for custom rules. This is very useful when leveling in general, and in BFA. We want you to be able to relax the keep safeguard rules and actively sell off out-leveled gear or non-upgrades without worrying about your best items or upgrades being sold. We plan to be relatively simple with what is an "upgrade" by looking at item level, which is Blizzard's goal. After you level up, we expect the Equipment Set rule and blocklists will work to keep your active gear out of the vendor's hands.
-
New item properties for use in Custom rules and some new Sell rules, such as Unknown Recipes, Uncollected Pets, Items Equippable by you, Items that are tradeable, Champion Equipment (we know you vendor the greens and some of the blues, admit it!).
-
Plugin for Ark Inventory so you can group together all the things Vendor will be selling based on your current rules.
-
Plugin for Bagnon to add glyphs/highlights to items that will be auto-sold by vendor.
-
Plugin for Titan so you can know how many items will be sold and quick-access to the rules configuration.
-
Custom Rule sharing. Send custom rules to your friends and guildies via hyperlink, or a string.
As you can see, we've got plans! If you have some to add, let us know! We aim to please.
In reply to TheRealSeminko:
We could have destroy rules that run after an item is added to inventory. This is in line with an idea Umf and I were discussing yesterday when our bags got full on classic, it would be nice to destroy things that are low value like dalaran sharp and mushrooms and the lowest-value items that will be sold upon reaching a merchant. Destroy rules could run in two cases:
1) Bags are full and you want to make room - in this case, run Vendor sell rules and sort by value, then destroy the least-valuable item.
2) You always want to destroy certain items
* warlock soul shards are one thing I use an addon to limit, so we could make a few destroy rules for examples, one of which could be Warlock shards that says Destroy item if > N exist and then whenever item comes in we can trigger destroy rules to run.
I would think there are very few items you would always want to destroy (for example too many soul shards), but there may be quite a few items you would want to destroy IF you needed to, but you would otherwise prefer to sell them.
One odd quirk we have now is that there is a hidden keep rule of anything that isn't sellable. For the destroy-to-make-room you would need to be able to mark items as "always sell" even though they are unsellable, which means that you would destroy those items if you needed bag space, or explicitly wanted to destroy all destroyable items.
This is an interesting feature concept I want to think about some more to make sure we get the best design. It would be helpful if you could describe the user flows you want to see from this, the typical items you want to destroy, why you want to destroy them, etc.
In reply to typicalzergling:
That is exactly it. When I'm leveling, I'm obviously struggling with bag space. I'd rather fill that limited spade with items which have at least X value than some 30c trash. Or other example - Shredder manual pages. Once I was done with the quest, I didn't need the pages, it wasn't even profitable to collect them and sell them since they don't stack, just a waste of bag space.
The other scenario i can think of from the top of my head is fishing. Let's say I'm fishing for Deviate fish. The most common catch is Brilliant Smallfish and Bristle Whisker Catfish. I don't care about those two at all since I'm well past their level of usefullness. The only thing I want is Deviate Fish and any other unusual catches. This way, my bags would stay clean, organized and free from things I don't want.
So from my point of view these would be nice:
- Delete items by name - a list of names to always delete
- Delete items by rarity - ie delete all greys
- Delete items by vendor value - ie delete all items below X silver
- A combination of rarity and vendor value - ie delete all greys whose vendor value is below X silver but keep all other rarities despite the vendor value being lower than the limit.
A PlayerItemLevel variable would be helpful. (the equipped item level, that is also showing on the character sheet)
In reply to LuvPrncess:
That can be done for Retail, I believe Umferth has already prototyped it. Classic is more difficult, as we'd have to derive it by checking every piece of equipped gear and come up with our own rating. It is a bit dangerous to make a sell rule based on *player* item level or based on what is equipped in a given slot because that number is very volatile. For example, if you equip the cloak to teleport to stormwind your ilvl will drop and the rule evaluation will be different. It shoudl be safe if you're only interested in selling things *lower* than your current item level, but again that number is volatile. If you get a new piece of gear and your ilvl bumps up suddenly some gear you thought was not going to be sold becomes eligible because your ilvl is higher.
The ideal solution here is to be explicit in what ilvls you want to sell, or determine best-in-slot or near-best-in-slot items and tag them accordingly. That is something I had looked at before, but it is non-trivial, and I'm a bit hesitant to making sell rules based on computed usefulness of an item and would prefer people be explicit, which is why we have the built-in quality rules for common, green, blue, and purple gear where you can specify the ilvl you want to vendor them. Or you can create a custom rule if you want to consider more properties (like soulbound class-specific, etc). We do have a Pawn plugin for this specifically, such that if you have Pawn and Pawn thinks an item is best-in-slot, we won't sell that item. We also have possible sell rules for pawn, but keep rules are the main reason so you could be more liberal with the quality+ilvl based selling and not worry about ever selling anything that is an upgrade.
A simple solution already exists in vendor - I would recommend you look at the built-in rules that have quality level + item level defined, where you can be explicit about what you want to sell when it comes to lower level gear.
In reply to typicalzergling:
ohh a reply, thank you. :)
"which is why we have the built-in quality rules for common, green, blue, and purple gear where you can specify the ilvl you want to vendor them."
Yes, this is the one i use. let's say i have 450 ilvl, and i decide, i want to sell everything below 420 ilvl since they would be too low to consider as upgrade or sidegrade. Works fine. Now i am relogging to an alt, that has only 380 ilvl, now this rule is not really valid for me anymore. Would have been if i could simply set something like playeritemlevel-30.
But i will dig deeper to look what can be done on the keep rules side, i have just started to use this addon and already awesome :)
(on different note, this addon perfectly handles the interaction between my bag and the vendor frame (maybe if it also had auto-buy rules to restock stuff?) Would like to see similar addon, based on this, that does bags and bank frame interactions, auto depositing, auto withdrawing, restocking based on rules; and also one with bag and mailbox frame interactions, auto sending to different recipients based on rules. but its only my wish, since it would be quite hard to actually implement)
In reply to LuvPrncess:
For that I would recommend using Pawn and then using our Pawn rule to sell upgrades. Not sure if pawn works on classic, but we have Pawn integration precisely for that purpose. We figured it would be best for a specialized addon to tell you what your best gear was and piggy back on that than have a separate algorithm.
In reply to typicalzergling:
Thank you, i don't play classic, so that is not an issue :)
I really like this addon but this morning it sold all my Buff food, Miners coffee for my wod garrison & some more "white" items not junk. Is there a way to set it so it doesnt do that? Thank you :)
In reply to sadeeva:
In the options there is a tooltip checkbox that will tell you which rule is causing the items to be sold. Buyback the items, and then mouse over them in your inventory with that option checked and it will tell you which rule is matching those items in the tooltip. That would be really helpful to diagnose the issue.
As a quick fix, you can add the items it is selling that you don't want to the Never Sell list. There's a hotkey for this you can set in keybindings to make it easy to and and remove items from that list.
Sad to see this isn't being updated.
In reply to NoShotz_:
I just updated it for 8.2 and fixed some bugs. There are also a couple of new features (for example, scrapping rules) but they are still rough. Let me know what you think. Sorry, my co-collaborator who was handling the page stopped playing and I didn't see any of the issues until recently.
error when clicking save on a "rule ok" custom rule
Message: [string "<unnamed>:OnClick"]:1: attempt to call global 'PortraitFrameCloseButton_OnClick' (a nil value)
Time: Sun Dec 30 22:03:24 2018
Count: 15
Stack: [string "<unnamed>:OnClick"]:1: attempt to call global 'PortraitFrameCloseButton_OnClick' (a nil value)
[string "*:OnClick"]:1: in function <[string "*:OnClick"]:1>
Locals: self = <unnamed> {
0 = <userdata>
Text = VendorEditRuleDialogText {
}
Right = <unnamed> {
}
Middle = <unnamed> {
}
Left = <unnamed> {
}
}
button = "LeftButton"
down = false
(*temporary) = nil
(*temporary) = <unnamed> {
0 = <userdata>
Text = VendorEditRuleDialogText {
}
Right = <unnamed> {
}
Middle = <unnamed> {
}
Left = <unnamed> {
}
}
(*temporary) = "attempt to call global 'PortraitFrameCloseButton_OnClick' (a nil value)"
In reply to Ssateneth:
Time: Sun Dec 30 22:02:21 2018
Count: 4
In reply to Ssateneth:
In reply to Ssateneth:
Should be fixed.
Where can I see a list of always-sell and never-sell items that I added with key bindings?
In reply to Ssateneth:
There's a command line option to dump the entire list. Type "/vendor list" and you can clear the list with "/vendor clear"
We are looking at adding a visual representation in the settings of the current list.
I really just want to be able to flag stuff as junk.
Every time I make a rule, it's just SO broad the addon feels unuseable for a lot of things.
Maybe expand that out to a generated list of filters of what that item is using an additional keybind just incase there's several things that fit the criteria:
i.e.
I flag an item as junk and hold down some kind of modifier saying I want to expand on the rules of this junk
And that creates the new rule, much more quickly with a nice little gui. Also allowing for enmasse rule creation.
OR even just let me make a rule that includes my Adibags' inventory section I've labeled as "junk", that a lone would be awesome.
In reply to Jordaldo:
In reply to Jordaldo:
In reply to Jordaldo:
In reply to Brolan:
I am not quite sure I understand what your saying, but Adding support to query other add-on's is pretty easy. If your still interested let me know and I'll look into it.