Rarity
NEW:
- Support for Cataclysm Classic (experimental)
- Rarity now has a Discord server!
If you're interested in following the development process or contributing, you should also check out the official GitHub repository. We're always in need of more hands to help us make the addon better!
Rarity tracks how many times you've tried to obtain various rare items like mounts, battle pets, and toys. It will tell you how likely you are to obtain the item, track how long you've been farming for it, and tell you how lucky you've been so far. Although it's mostly used for mounts, battle pets, and toys, it supports pretty much any item, including profession patterns, archaeology projects, and more.
Looking for Rarity Item Packs? Click here.
Out of the box, Rarity includes support for every single mount, battle pet, and toy in the game which require some time to farm. It also includes support for some mount-related items like Skyshard, Primal Egg, and Giant Dinosaur Bone. It'll even notice if you mouseover a Mysterious Camel Figurine, plus lots of other stuff. Rarity factors in the size of a typical group when determining probabilities, and can also tell you if you've killed various bosses this week (or day). Holiday just started, and you didn't notice? Rarity will give you a helpful reminder to run those holiday dungeons or daily quests if you still need an item from them.
If Rarity doesn't track something you want to track, you can add it yourself! Just about everything is user configurable.
Curious what math is going on behind the scenes? The author of Bunny Hunter created the original algorithms. He wrote an article about it here. Your chance to obtain an item doesn't increase as you farm it; Rarity is just telling you how lucky you've been so far. It can be remarkably cathartic to see a progress bar move up as you spend hours upon hours trying for that Disgusting Oozeling.
Main features
- Rarity is primarily an LDB feed with a large tooltip. It can function as either a mini-map icon (you have to turn this on in the options), or as a standard LDB feed (use a display like Fortress, Button Bin, Titan Panel, or Chocolate Bar).
- Provides a progress bar, which you can toggle by clicking the icon or feed label.
- Adds info to NPC and item tooltips, showing you if it drops or contains something that Rarity tracks. Rare mobs with a guaranteed drop show which item they drop and if you've defeated them yet.
- Includes full source info, telling you how to obtain everything Rarity tracks.
Other features
- Share packs of items with other users
- Can automatically add waypoints to TomTom for certain items
- Uses statistics whenever possible to keep track of attempts
- Breaks your farming down by session, day, week, and month
- Looks at your instance locks to see if you've defeated various bosses recently
- Reminds you if you need to farm a holiday dungeon or daily quest, and hides holiday items that aren't available right now
- Supports bonus coin rolls
- Automatically screenshots when you obtain an item
- Keeps track of rare achievements like Frostbitten and Glorious
- You can add your own items to track
- Lets you modify your attempt count without having to edit saved variables
- Automatically imports data from Bunny Hunter if you're switching
Slash Commands
Simply typing /rarity should open the options menu (unless disabled).
For troubleshooting issues:
- /rarity dump displays the most recent debug log entries (even if the debug mode is disabled)
- /rarity validate checks the consistency of your item database, including custom items (experimental)
Comments & bug reports
Help translate Rarity
Click here to help translate Rarity into your language.
Frequently Asked Questions
Click here to read the Frequently Asked Questions. Please read this before requesting support.
In reply to aznamir:
The minimap icon that shows the list of all your missing items
In reply to Forge_User_98854240:
works fine for me
In reply to aznamir:
Must be some other addon that is blocking it for me then :/ thanks for the fix tho :)
Edit: Nvm, I disabled all other addons and it's still not showing the list for me when I hover over it o.o
In reply to Forge_User_98854240:
post the error message, just to make sure
In reply to aznamir:
Message: ...rface\AddOns\Rarity\Libs\LibQTip-1.0\LibQTip-1.0.lua:519: attempt to call method 'SetBackdrop' (a nil value)
Time: Wed Oct 14 23:25:48 2020
Count: 1
Stack: ...rface\AddOns\Rarity\Libs\LibQTip-1.0\LibQTip-1.0.lua:519: attempt to call method 'SetBackdrop' (a nil value)
[string "@Interface\AddOns\Rarity\Libs\LibQTip-1.0\LibQTip-1.0.lua"]:519: in function <...rface\AddOns\Rarity\Libs\LibQTip-1.0\LibQTip-1.0.lua:513>
[string "@Interface\AddOns\Rarity\Libs\LibQTip-1.0\LibQTip-1.0.lua"]:126: in function `Acquire'
[string "@Interface\AddOns\Rarity\Core\GUI.lua"]:1598: in function `ShowTooltip'
[string "@Interface\AddOns\Rarity\Core\GUI.lua"]:404: in function `OnEnter'
[string "@Interface\AddOns\Rarity\Libs\LibDBIcon-1.0\LibDBIcon-1.0.lua"]:77: in function <...e\AddOns\Rarity\Libs\LibDBIcon-1.0\LibDBIcon-1.0.lua:60>
Locals: tooltip = <unnamed> {
0 = <userdata>
scrollChild = <unnamed> {
}
scrollFrame = <unnamed> {
}
}
key = "RarityTooltip"
backdrop = <table> {
backdropColor = <table> {
}
edgeSize = 16
tileEdge = true
backdropBorderColor = <table> {
}
tileSize = 16
edgeFile = "Interface/Tooltips/UI-Tooltip-Border"
tile = true
bgFile = "Interface/Tooltips/UI-Tooltip-Background"
insets = <table> {
}
}
(*temporary) = nil
(*temporary) = <unnamed> {
0 = <userdata>
scrollChild = <unnamed> {
}
scrollFrame = <unnamed> {
}
}
(*temporary) = <table> {
backdropColor = <table> {
}
edgeSize = 16
tileEdge = true
backdropBorderColor = <table> {
}
tileSize = 16
edgeFile = "Interface/Tooltips/UI-Tooltip-Border"
tile = true
bgFile = "Interface/Tooltips/UI-Tooltip-Background"
insets = <table> {
}
}
(*temporary) = "attempt to call method 'SetBackdrop' (a nil value)"
GameTooltip = GameTooltip {
BottomLeftCorner = <unnamed> {
}
OnBackdropLoaded = <function> defined @Interface\SharedXML\Backdrop.lua:205
textLeft1Font = "GameTooltipHeaderText"
GetBackdropColor = <function> defined @Interface\SharedXML\Backdrop.lua:443
SetBackdropBorderColor = <function> defined @Interface\SharedXML\Backdrop.lua:475
RightEdge = <unnamed> {
}
textRight2Font = "GameTooltipText"
ApplyBackdrop = <function> defined @Interface\SharedXML\Backdrop.lua:347
SetBackdrop = <function> defined @Interface\SharedXML\Backdrop.lua:382
ClearBackdrop = <function> defined @Interface\SharedXML\Backdrop.lua:335
TopOverlay = <unnamed> {
}
GetBackdropBorderColor = <function> defined @Interface\SharedXML\Backdrop.lua:462
GetBackdrop = <function> defined @Interface\SharedXML\Backdrop.lua:400
SetBorderBlendMode = <function> defined @Interface\SharedXML\Backdrop.lua:319
comparing = false
BottomRightCorner = <unnamed> {
}
backdropInfo = <table> {
}
shoppingTooltips = <table> {
}
TextLeft1 = GameTooltipTextLeft1 {
}
0 = <userdata>
ItemTooltip = <unnamed> {
}
SetupTextureCoordinates = <function> defined @Interface\SharedXML\Backdrop.lua:267
OnBackdropSizeChanged = <function> defined @Interface\SharedXML\Backdrop.lua:235
BottomOverlay = <unnamed> {
}
Center = <unnamed> {
}
HasBackdropInfo = <function> defined @Interface\SharedXML\Backdrop.lua:331
textRight1Font = "GameTooltipHeaderText"
BottomEdge = <unnamed> {
}
GetEdgeSize = <function> defined @Interface\SharedXML\Backdrop.lua:241
updateTooltip = 0.140000
textLeft2Font = "GameTooltipText"
TopEdge = <unnamed> {
}
TextRight2 = GameTooltipTextRight2 {
}
TextLeft2 = GameTooltipTextLeft2 {
}
TopRightCorner = <unnamed> {
}
TopLeftCorner = <unnamed> {
}
SetBagItem = <function> defined =[C]:-1
needsReset = true
SetupPieceVisuals = <function> defined @Interface\SharedXML\Backdrop.lua:299
SetBackdropColor = <function> defined @Interface\SharedXML\Backdrop.lua:452
LeftEdge = <unnamed> {
}
TextRight1 = GameTooltipTextRight1 {
}
}
AcquireTable = <function> defined @Interface\AddOns\Rarity\Libs\LibQTip-1.0\LibQTip-1.0.lua:493
labelProvider = <table> {
cells = <table> {
}
cellMetatable = <table> {
}
cellPrototype = <table> {
}
heap = <table> {
}
}
CELL_MARGIN_H
In reply to Forge_User_98854240:
Just get a newer version of LibQtip. I use Broker_Everything and the fix was packaged there.
In reply to aznamir:
https://imgur.com/a/1ibTqwF
Thanks! that fixed it for me.
In reply to aznamir:
can you post the full file with the fix using the new LibQtip file you mentioned?
In reply to aznamir:
I'm getting this error and it won't load at all. Just says "Rarity is loading"
In reply to CrusaderEsper:
I do not have this file, but try changing
local IsQuestComplete = IsQuestComplete
to
local IsQuestComplete = C_QuestLog.IsComplete
In reply to aznamir:
all the tracking is stored in a folder under _retail_/WTF/ .... /Rarity.lua
I have no issues with the options, but you can go into Interface/Addons/Rarity/Advanced and click a checkbox to verify the DB or something like that.
Sorry if it does not work for you, i just spent a few hours trying to do a quick fix.
In reply to aznamir:
That was it. Thanks!
In reply to aznamir:
Hey Uuuuum, so my Rarity (Options) Doesn't show the Mount List so i can manually add the amount of attempts i already did, any help possible maybe? :3
Here's what it looks like for me
https://imgur.com/a/AKhZkUq
In reply to aznamir:
Hi there and thank you for the attempted fix. I have tried it and it killed the addon completely.
What do I do with the zipped file if I'm not installing it ?
I have nothing but Broker Everything and rarity installed atm.
Where do I find the place to change:
local IsQuestComplete = IsQuestComplete
to
local IsQuestComplete = C_QuestLog.IsComplete
I can't find anything in the .Lua that says this ?
I'm not a coder or IT able at all, I need all the steps, not the ones you smart lads get to skip :)
In reply to aznamir:
thx a million but this weird error comes in now
'Clears the accountwide statistics saved for all characters. You can use this to remove the attempts stored for characters that no longer exist in their original form, e.g., after a server transfer, realm merge, or name change. After clearing this cached data, you will have to log into each character once so attempts can be updated from their statistics again.'
[string "@Rarity_Options\Options-Options.lua"]:1335: in function `PrepareOptions'
[string "@Rarity_Options\Options-Options.lua"]:101: in function `Options_DoEnable'
[string "@Rarity\Core.lua"]:212: in function `DoEnable'
[string "@Rarity\Core.lua"]:165: in function <Rarity\Core.lua:164>
[string "=[C]"]: ?
[string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:70: in function <...s\ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0.lua:65>
[string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:527: in function `EnableAddon'
[string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:630: in function <...s\ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0.lua:615>
[string "=[C]"]: ?
[string "=[C]"]: in function `LoadAddOn'
[string "@ArkInventory\ArkInventory-30941.lua"]:11684: in function `LoadAddOn'
[string "@ArkInventory\ArkInventory-30941.lua"]:11699: in function `BlizzardAPIHook'
...
[string "=[C]"]: ?
[string "@ElvUI_SLE\core\toolkit.lua"]:307: in function `InitializeModules'
[string "@ElvUI_SLE\core\core.lua"]:85: in function `?'
[string "@ElvUI\Libraries\LibElvUIPlugin-1.0\LibElvUIPlugin-1.0-36.lua"]:303: in function <...\Libraries\LibElvUIPlugin-1.0\LibElvUIPlugin-1.0.lua:299>
[string "=[C]"]: in function `Initialize'
[string "@ElvUI\init.lua"]:154: in function <ElvUI\init.lua:153>
[string "=[C]"]: ?
[string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:70: in function <...s\ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0.lua:65>
[string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:527: in function `EnableAddon'
[string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:630: in function <...s\ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0.lua:615>
In reply to Pharou:
and this
AceLocale-3.0-6: Rarity: Missing entry for 'Clear accountwide statistics'
[string "@Rarity_Options\Options-Options.lua"]:1334: in function `PrepareOptions'
[string "@Rarity_Options\Options-Options.lua"]:101: in function `Options_DoEnable'
[string "@Rarity\Core.lua"]:212: in function `DoEnable'
[string "@Rarity\Core.lua"]:165: in function <Rarity\Core.lua:164>
[string "=[C]"]: ?
[string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:70: in function <...s\ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0.lua:65>
[string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:527: in function `EnableAddon'
[string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:630: in function <...s\ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0.lua:615>
[string "=[C]"]: ?
[string "=[C]"]: in function `LoadAddOn'
[string "@ArkInventory\ArkInventory-30941.lua"]:11684: in function `LoadAddOn'
[string "@ArkInventory\ArkInventory-30941.lua"]:11699: in function `BlizzardAPIHook'
...
[string "=[C]"]: ?
[string "@ElvUI_SLE\core\toolkit.lua"]:307: in function `InitializeModules'
[string "@ElvUI_SLE\core\core.lua"]:85: in function `?'
[string "@ElvUI\Libraries\LibElvUIPlugin-1.0\LibElvUIPlugin-1.0-36.lua"]:303: in function <...\Libraries\LibElvUIPlugin-1.0\LibElvUIPlugin-1.0.lua:299>
[string "=[C]"]: in function `Initialize'
[string "@ElvUI\init.lua"]:154: in function <ElvUI\init.lua:153>
[string "=[C]"]: ?
[string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:70: in function <...s\ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0.lua:65>
[string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:527: in function `EnableAddon'
[string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:630: in function <...s\ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0.lua:615>
In reply to Pharou:
that looks like a conflict between different Ace3 libraries in Rarity and ELVUI folders.
I suggest installing Ace3 as standalone addon.
In reply to aznamir:
Well I did ....... same error showing
I am disabling the options portion of addon for now
In reply to aznamir:
you sir are a champion
In reply to aznamir:
Thank you. It works correctly now. You just copy the Rarity folder to your addons foler and overwrite the files that need to be overwritten. You can back up the old folder just in case, but none of my attempt counts were wiped out so that shouldn't be needed.