Rarity
NEW:
- 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.
What is this BUG???
(Just clicked on Auctionhouse and also happens when closing...)
-------------------------------
Message: Interface\AddOns\Rarity\Core\Debugging.lua:20: bad argument #2 to 'format' (string expected, got nil)
Time: Fri Mar 27 09:02:38 2020
Count: 1
Stack: Interface\AddOns\Rarity\Core\Debugging.lua:20: bad argument #2 to 'format' (string expected, got nil)
[string "@Interface\AddOns\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua"]:733: in function <...Ons\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua:693>
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "@Interface\AddOns\Rarity\Core\Debugging.lua"]:20: in function `Debug'
[string "@Interface\AddOns\Rarity\Core\Session.lua"]:126: in function `End'
[string "@Interface\AddOns\Rarity\Core\Session.lua"]:56: in function `func'
[string "@Interface\AddOns\Ace3\AceTimer-3.0\AceTimer-3.0.lua"]:57: in function <Interface\AddOns\Ace3\AceTimer-3.0\AceTimer-3.0.lua:50>
Locals: errMsg = "Interface\AddOns\Rarity\Core\Debugging.lua:20: bad argument #2 to 'format' (string expected, got nil)"
tsmErrMsg = nil
oldModule = nil
private = <table> {
CreateErrorFrame = <function> defined @Interface\AddOns\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua:514
num = 0
ErrorHandler = <function> defined @Interface\AddOns\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua:132
hitInternalError = false
origErrorHandler = <function> defined @Interface\SharedXML\SharedBasicControls.lua:295
FormatErrorMessageSection = <function> defined @Interface\AddOns\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua:495
AddonBlockedHandler = <function> defined @Interface\AddOns\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua:480
SanitizeString = <function> defined @Interface\AddOns\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua:488
GetStackLevelInfo = <function> defined @Interface\AddOns\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua:328
ParseLocals = <function> defined @Interface\AddOns\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua:380
errorReports = <table> {
}
IsTSMAddon = <function> defined @Interface\AddOns\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua:456
localLinesTemp = <table> {
}
GetStackInfo = <function> defined @Interface\AddOns\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua:297
}
MAX_STACK_DEPTH = 50
OLD_TSM_MODULES = <table> {
1 = "TradeSkillMaster_Accounting"
2 = "TradeSkillMaster_AuctionDB"
3 = "TradeSkillMaster_Auctioning"
4 = "TradeSkillMaster_Crafting"
5 = "TradeSkillMaster_Destroying"
6 = "TradeSkillMaster_Mailing"
7 = "TradeSkillMaster_Shopping"
8 = "TradeSkillMaster_Vendoring"
9 = "TradeSkillMaster_Warehousing"
}
In reply to Forge_User_39912282:
I've been getting the same error for about a week as well. Pops up every time rarirty should update
In reply to Forge_User_39912282:
I've been getting the same error for about a week as well. Pops up every time rarirty should update
In reply to pazypax:
Doesn't appear to happen for me, but I can look into it. Did you try disabling all other addons?
Status: https://github.com/SacredDuckwhale/Rarity/issues/171
Hi,
When I hover over the mini map button to see all rares and attempts, I get this error:
Date: 2020-03-26 09:58:20
ID: 3
Error occured in: Global
Count: 1
Message: ..\AddOns\Rarity\Core\GUI.lua line 1198:
Usage: GetItemInfo(itemID|"name"|"itemlink")
Debug:
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "@Rarity\Core\GUI.lua"]:1198:
Rarity\Core\GUI.lua:1127
[string "@Rarity\Core\GUI.lua"]:1704: ShowTooltip()
[string "@Rarity\Core\GUI.lua"]:404: OnEnter()
[string "@DBM-Core\Libs\LibDBIcon-1.0\LibDBIcon-1.0.lua"]:77:
...AddOns\DBM-Core\Libs\LibDBIcon-1.0\LibDBIcon-1.0.lua:60
In reply to Forge_User_51747777:
According to some other reports, this appears to be caused by a custom item with an invalid item ID. I'm looking into a workaround for the issue, but you should be able to delete (and re-add) any affected items to restore functionality in the meantime.
In reply to Cakechart:
Not an IT brainiac here ... what do you mean by deleting and re adding items? i never added an item before, i only use your addon for the list and attempts
In reply to Forge_User_51747777:
This issue was reportedly caused by Custom items, are you sure you haven't entered anything under the "custom" tab? If the data for an item can't be retrieved from the server, this appears to be a cause for this error.
I'll have to look into it more if you're saying you literally haven't touched any settings at all. Does it still occur if you switch to a different (new/empty) profile?
Status: https://github.com/SacredDuckwhale/Rarity/issues/166
Date: 2020-03-17 05:58:08Date: 2020-03-17 05:58:08ID: 3Error occured in: GlobalCount: 1Message: ..\AddOns\Rarity\Core\Debugging.lua line 20: bad argument #2 to 'format' (string expected, got nil)Debug: [string "=[C]"]: ? [string "=[C]"]: ? [string "@Rarity\Core\Debugging.lua"]:20: Debug() [string "@Rarity\Core\Session.lua"]:95: End() [string "@Rarity\Core\Session.lua"]:56: func() [string "@AckisRecipeList\libs\AceTimer-3.0\AceTimer-3.0.lua"]:57: ...s\AckisRecipeList\libs\AceTimer-3.0\AceTimer-3.0.lua:50Locals:
AddOns: Swatter, v7.3.1 (<%codename%>) AccountantClassic, vv2.11.08.11302 AckisRecipeList, v8.3.0.2 AckisRecipeListQuickScan, v7.3.0.1 AddFriend, v3.29 AdventureGuideLockouts, v1.3.3 AlreadyKnown, v1.26 Armory, vv15.9.0 ArmoryGuildBank, vv15.9.0 AuctionProfit, vv1.8 Auctionator, v8.3.0 BagSlots, v80205-2 CharacterAchievements, v3.1 DBMArchaeology, v DBMCore, v8.3.17 DBMDefaultSkin, v DBMInterrupts, v8.3.0 DBMRaidLeadTools, vr124 DBMSoundEventsPack, v1.6.5 DBMSpellTimers, v DBMStatusBarTimers, v DBMTimelessIsle, v Decursive, v2.7.6.7 ExtTabardUI, v1.0.2 FactionAddict, v1.58 GatherLite, v1.3.0-retail GoldenPortrait, v GoldTracker, vv1.0 GTFO, v4.55 IHearYouAll, v5.2 JPostal, vv4.0.2 KibsItemLevel, v8.0.1.4 LibSharedMedia30, v3.0-113 LockedOut, v1.10.5 Mappy, v3.8.5 Oilvl, v8.3 Omen, v3.2.2 OmniCC, v8.3.5 OmniCCConfig, v Overachiever, v1.0.9 OverachieverCache, v1.0.9 OverachieverTabs, v1.0.9 PlayerXPBar, v2.6.2 Quartz, v3.5.2 RareScanner, v7.0.0 Rarity, v1.0 (r696-release) RarityOptions, v Recount, vv8.3.0c Scrap, v8.3.2 ScrapConfig, v ScrapMerchant, v ShowLevel, v5.1.2 SlideBar, v7.3.1 (<%codename%>) Soldit, vv2.6 Stackpack, v8.2.5 SushiSort, v7.0.0.0 TargetClassIcon, v1.3.3-8.3.0 TomTom, vv80300-1.1.2 VuhDo, v3.112 VuhDoOptions, v3.112 WorkComplete, vv8.3.0.20200120 WorldBossStatus, vv6.0.6 WorldBossTimers, vv1.4 ZygorGuidesViewer, v7.0 BlizRuntimeLib_enUS v8.3.0.80300 <none> (ck=5f0)
In reply to merthalde:
What were you doing when this error occured? And does it affect the functionality of the addon? It appears the item that was supposed to be tracked wasn't yet loaded from the server, which should happen after logging in.
It takes a bit to load all the items, since there are so many of them and the server doesn't like being queried for them all at once, so Rarity spaces it out a little during the initialization phase (after logging in). It might happen that some data hasn't loaded yet under such circumstances.
Hello, I've noticed there's a report being made when I attempt to fish at Darkmoon Faire, Garrison, and several other locations. Figured I'd pass along the info I have on hand. (If more is needed, please let me know)
UI Error Report
---------------------
Message: Interface\AddOns\Rarity\Core\EventHandlers.lua:1165: attempt to index global 'fishzones' (a nil value)
Time: Mon Mar 2 03:37:26 2020
Count: 12
Stack: Interface\AddOns\Rarity\Core\EventHandlers.lua:1165: attempt to index global 'fishzones' (a nil value)
Locals: <none>
---------------------
Debug Log
---------------
Rarity: Debug mode ON
Rarity: BAG_UPDATE
Rarity: Detected UNIT_SPELLCAST_SENT for unit = player, spellID = 131474, castGUID = Cast-3-3788-974-16643-131474-00055CD3CD, target = nil
Rarity: Detected relevant spell: 131474 ~ Fishing
Rarity: Fishing or opening something
Rarity: Getting world target nil
Rarity:OnSpellcastSucceeded triggered with relevant spell 131474
Rarity: Getting world target nil
Rarity: Getting world target nil
Rarity: Getting world target nil
Rarity: LOOT_READY with target: NO TARGET
Rarity: Locking session for 1 second(s) to prevent duplicate attempts from being counted
Rarity: Successfully fished
Rarity: Getting world target Fishing Bobber
Rarity: LOOT_READY with target: NO TARGET
Rarity: Session is locked; ignoring this LOOT_READY event
Rarity: Unlocking session to continue scanning for new LOOT_READY events
Rarity: Setting lastNode to nil
Rarity: Setting lastNode to nil
Rarity: You didn't loot anything from that fishing. Giving Up.
Rarity: Debug mode OFF
In reply to Blushadows:
Thanks for the report! The latest beta has a lot of potentially risky changes and that seemingly caused some (a hopefully small number of) bugs. I'll get it fixed with the next beta version :)
In reply to Cakechart:
Authors have a pretty thankless job so anytime I find something, I try to provide what I can.
My thanks to all involved in keeping this addon viable for so many years.
In reply to Blushadows:
Thanks, that error was caused by a mere oversight and is now fixed (in r696-beta-2). Please let me know if you encounter anything else!
my wow lagt is laggi froze for seconds with rarity
In reply to Forge_User_13442166:
I have a similar problem, when Rarity is loaded and used in-game, I have random freezes which sometimes can take a couple of seconds.
For that reason I don't use the addon anymore. Which is a shame because I love Rarity, hopefully it will be fixed in the near future.
In reply to Forge_User_08085318:
What is printed in the debug log (/rarity debug) when those freezes occur?
In reply to Forge_User_13442166:
What is printed in the debug log (/rarity debug) when those freezes occur?
[19:19:04] Rarity: Initialization failed to retrieve 687 item(s)
[19:19:09] Rarity: Loading 687 item(s) from server...
[19:19:28] Rarity: Scanning calendar (DELAYED INIT)
[19:19:28] Rarity: Scanning toys (DELAYED INIT)
Date: 2020-01-24 14:47:26
ID: 1
Error occured in: Global
Count: 1
Message: ...rface\AddOns\Rarity\Libs\LibQTip-1.0\LibQTip-1.0.lua line 1020:
script ran too long
Debug:
[string "@Rarity\Libs\LibQTip-1.0\LibQTip-1.0.lua"]:1020:
...rface\AddOns\Rarity\Libs\LibQTip-1.0\LibQTip-1.0.lua:930
[string "@Rarity\Libs\LibQTip-1.0\LibQTip-1.0.lua"]:1092:
...rface\AddOns\Rarity\Libs\LibQTip-1.0\LibQTip-1.0.lua:1058
[string "=(tail call)"]: ?
[string "@Rarity\Core.lua"]:3953:
Rarity\Core.lua:3704
[string "@Rarity\Core.lua"]:4087: ShowTooltip()
[string "@Rarity\Core.lua"]:898: func()
[string "@AnnounceRare\Libraries\Ace3\AceTimer-3.0\AceTimer-3.0.lua"]:57:
...nceRare\Libraries\Ace3\AceTimer-3.0\AceTimer-3.0.lua:50
Locals:
tooltip = <unnamed> {
0 = <userdata>
regularFont = GameTooltipText {
}
columns = <table> {
}
scrollChild = <unnamed> {
}
colspans = <table> {
}
autoHideTimerFrame = <unnamed> {
}
width = 886.732386
headerFont = GameTooltipHeaderText {
}
cell_margin_h = 6
key = "RarityTooltip"
cell_margin_v = 3
height = 3905.098198
labelProvider = <table> {
}
lines = <table> {
}
scrollFrame = <unnamed> {
}
}
lineNum = 274
colNum = 8
value = "Defeated"
font = GameTooltipText {
0 = <userdata>
fontStyle = "OUTLINE"
font = "Fonts\FRIZQT__.TTF"
fontSize = 11
}
justification = "CENTER"
colSpan = 1
provider = <table> {
cells = <table> {
}
cellMetatable = <table> {
}
cellPrototype = <table> {
}
heap = <table> {
}
}
line = <unnamed> {
cells = <table> {
}
height = 11.267605
0 = <userdata>
}
cells = <table> {
1 = <unnamed> {
}
2 = <unnamed> {
}
3 = <unnamed> {
}
4 = <unnamed> {
}
5 = <unnamed> {
}
6 = <unnamed> {
}
7 = <unnamed> {
}
8 = <unnamed> {
}
}
cell = <unnamed> {
0 = <userdata>
_provider = <table> {
}
fontString = <unnamed> {
}
}
prevCell = nil
tooltipWidth = 9
rightColNum = 8
(*temporary) = <function> defined =[C]:-1
(*temporary) = <unnamed> {
0 = <userdata>
_provider = <table> {
}
fontString = <unnamed> {
}
}
(*temporary) = "RIGHT"
(*temporary) = <unnamed> {
0 = <userdata>
justification = "CENTER"
width = 74.647896
}
(*temporary) = <userdata>
(*temporary) = <unnamed> {
0 = <userdata>
_provider = <table> {
}
fontString = <unnamed> {
}
}
(*temporary) = 6
(*temporary) = <userdata>
(*temporary) = "script ran too long"
ReleaseCell = <function> defined @Interface\AddOns\Rarity\Libs\LibQTip-1.0\LibQTip-1.0.lua:465
error = <function> defined =[C]:-1
max = <function> defined =[C]:-1
AcquireCell = <function> defined @Interface\AddOns\Rarity\Libs\LibQTip-1.0\LibQTip-1.0.lua:454
layoutCleaner = <unnamed> {
0 = <userdata>
registry = <table> {
}
CleanupLayouts = <function> defined @Interface\AddOns\Rarity\Libs\LibQTip-1.0\LibQTip-1.0.lua:206
RegisterForCleanup = <function> defined @Interface\AddOns\Rarity\Libs\LibQTip-1.0\LibQTip-1.0.lua:201
}
EnlargeColumn = <function> defined @Interface\AddOns\Rarity\Libs\LibQTip-1.0\LibQTip-1.0.lua:849
SetTooltipSize = <function> defined @Interface\AddOns\Rarity\Libs\LibQTip-1.0\LibQTip-1.0.lua:831
AddOns:
Swatter, v8.2.6511 (SwimmingSeadragon)
AnnounceRare, v2.0.0
AtlasLoot, vv8.11.00
AtlasLootBattleforAzeroth, vv8.11.00
AtlasLootBurningCrusade, vv8.11.00
AtlasLootCataclysm, vv8.11.00
AtlasLootClassic, vv8.11.00
AtlasLootLegion, vv8.11.00
AtlasLootMistsofPandaria, vv8.11.00
AtlasLootWarlordsofDraenor, vv8.11.00
AtlasLootWrathoftheLichKing, vv8.11.00
BigWigs, vv174
Coordinates, v2.1.0
DBMArchaeology, v
DBMCore, v8.3.3
DBMDefaultSkin, v
DBMSoundEventsPack, v1.6.4
DBMSpellTimers, v
DBMStatusBarTimers, v
DBMVPVEM, v10.0.1
Details, v
DetailsChartViewer, v
DetailsDeathGraphs, v
DetailsEncounterDetails, v
DetailsExplosiveOrbs, vv8.3.0
DetailsRaidCheck, v
DetailsRaidPowerBars, v
DetailsStreamer, v
DetailsTargetCaller, v
DetailsTimeLine, v
DetailsTinyThreat, v
DetailsVanguard, v
ElvUI, v11.33
ElvUISLE, v3.64
GatherMate2, v1.45.5
GeekFan, v3.2.1
Grail, v106
GrailAchievements, v011
GrailNPCsretail, v27178
GrailNPCsretailenUS, v27178
GrailQuestsretail, v31478
GrailQuestsretailenUS, v31478
GrailReputationsretail, v007
GTFO, v4.52.2
HandyNotes, vv1.5.9
HandyNotesArgus, vv0.15
HandyNotesBattleForAzerothTreasures, v1
HandyNotesBrokenShore, vv1.33
HandyNotesDungeonLocations, v1.49
HandyNotesHallowsEnd, vv1.5
HandyNotesLegionClassOrderHalls, vv1.34
HandyNotesLegionInstanceWorldQuests, vv1.20
HandyNotesLegionRaresTreasures, v1.1
HandyNotesLegionTreasures, v1
HandyNotesLostAndFound, v1
HandyNotesMechagonAndNazjatar, v13
HandyNotesSuramarShalAranTelemancy, vv1.23
HandyNotesTravelGuide, vv2.1.3
HandyNotesUniversalExplorer, v8.3
Informant, v8.2.6508 (SwimmingSeadragon)
LeatrixMaps, v8.3.01
LeatrixPlus, v8.3.01
LeatrixTunes, v8.3.00
LightHeaded, vv80200-1.0.0
NameplateSCT, v1.17
NeatMinimap, vv1.06.00
Omen, v3.2.2
OmniCC, v8.3.3
Pawn, v2.3.19
Rarity, v1.0 (r694-release)
RarityOptions, v
Recount, vv8.3.0a
RecountSpeedUpUpdates, v
SlideBar, v8.2.6509 (SwimmingSeadragon)
Stubby, v8.2.6510 (SwimmingSeadragon)
Titan, v5.18.5.80300
TitanBag, v5.18.5.80300
TitanClock, v5.18.5.80300
TitanGold, v5.18.5.80300
TitanLocation, v5.18.5.80300
TitanLootType, v5.18.5.80300
TitanPerformance, v5.18.5.80300
TitanRepair, v5.18.5.80300
TitanVolume, v5.18.5.80300
TitanXP, v5.18.5.80300
TomCats, v1.4.9
TomCatsArathiHighlandsRares, v1.4.3
TomCatsChildrensWeek, v1.0.6
TomCatsComplete, v1.4.1
TomCatsDarkshoreRares, v1.4.5
TomCatsHallowsEnd, v1.3.4
TomCatsHivemind, v0.1.6
TomCatsLoveIsInTheAir, v1.0.14
TomCatsLunarFestival, v1.0.24
TomCatsMechagon, v1.4.3
TomCatsNazjatar, v1.4.3
TomCatsNoblegarden, v1.0.4
TomCatsNzoth, v1.4.21
TomCatsWarfrontsCommandCenter, v@{version}
TomTom, vv80300-1.1.0
Wholly, v076
WorldQuestTracker, v
XIVDatabar, v2.0.16
BlizRuntimeLib_enUS v8.3.0.80300 <none>
(ck=b47)