Simple Item Levels
Show item levels on:
- The character panel
- The inspect panel
- Weapons, armor, and artifact relics in bags (built in, bagnon, baggins, inventorian)
I'm open to adding them in more places.
Shows an up-arrow on items in your bags which you can use whose item level is higher than whatever you currently have equipped.
Simple configuration
For a summary of settings:
/simpleilvl
To toggle a place to display item levels:
/simpleilvl [type]
...where type
is bags
, character
, or inspect
.
To disable the upgrade arrow:
/simpleilvl upgrades
To change whether the text is colored by item quality or just left white:
/simpleilvl color
I get constant differences on ilvl between what the game shows a piece of gear as ilvl, and what the addon says. I tried to reinstall it few times but with the same result. Not only my gear, but others too. Sometimes the differences are huge, the addon reads an item as ilvl 60, when in fact it's 364. Does anyone has this problem? Cataclysm Classic. Thank you!
In reply to acernat:
Are you seeing this in your bags/bank, or somewhere else? (Also, are you using a bag addon?)
In reply to Kemayo: Thanks for your answer. I don't use a bag addon. It happens especially when I inspect players to see their gear. I've seen that a big probability to show a wrong ilvl is when the item is transmogged, but not always. Also I observed that there's no errors on lower ilvl items (below let's say 100 ilvl). Another thing, now in my character info says that my ilvl is 324 and the addon says 323. There's almost constant a difference. Is there a way to send you some screenshots? Thank you!
I am getting this error every time i open up my Bank, happens in SW and Dal and others.
20x SimpleItemLevel/addon.lua:330: attempt to compare nil with number
[string "@SimpleItemLevel/addon.lua"]:330: in function <SimpleItemLevel/addon.lua:328>
[string "@SimpleItemLevel/addon.lua"]:356: in function <SimpleItemLevel/addon.lua:355>
[string "=[C]"]: in function `xpcall'
[string "@Blizzard_ObjectAPI/Classic/Item.lua"]:298: in function `FireCallbacks'
[string "@Blizzard_ObjectAPI/Classic/Item.lua"]:260: in function <Blizzard_ObjectAPI/Classic/Item.lua:256>
Locals:
item = <table> {
GetItemLocation = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:66
SetItemLink = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:56
HasItemLocation = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:70
LockItem = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:113
itemLocation = <table> {
}
GetItemID = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:98
IsItemDataCached = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:216
GetInventoryTypeName = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:210
GetCurrentItemLevel = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:172
GetItemQualityColor = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:183
UnlockItem = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:119
Clear = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:74
GetItemIcon = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:125
IsItemLocked = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:109
GetItemLink = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:146
SetItemLocation = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:51
GetItemName = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:135
IsItemInPlayersControl = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:92
GetItemQuality = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:161
GetItemGUID = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:199
GetInventoryType = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:188
IsItemEmpty = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:80
GetStaticBackingItem = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:88
SetItemID = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:61
IsDataEvictable = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:227
ContinueWithCancelOnItemLoad = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:242
ContinueOnItemLoad = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:233
}
quality = nil
(*temporary) = 1
(*temporary) = nil
(*temporary) = <table> {
GetItemLocation = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:66
SetItemLink = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:56
HasItemLocation = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:70
LockItem = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:113
itemLocation = <table> {
}
GetItemID = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:98
IsItemDataCached = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:216
GetInventoryTypeName = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:210
GetCurrentItemLevel = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:172
GetItemQualityColor = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:183
UnlockItem = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:119
Clear = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:74
GetItemIcon = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:125
IsItemLocked = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:109
GetItemLink = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:146
SetItemLocation = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:51
GetItemName = <function> defined @Blizzard_ObjectAPI/
In reply to evil_godly:
In Classic, specifically? Are you using a bag addon, or is this with the built-in Blizzard bags/bank?
In reply to Kemayo: I'm getting the error as well in retail, using Bagnon, no error when Bagnon is disabled:
10x SimpleItemLevel/addon.lua:330: attempt to compare nil with number
[string "@SimpleItemLevel/addon.lua"]:330: in function <SimpleItemLevel/addon.lua:328>
[string "@SimpleItemLevel/addon.lua"]:356: in function <SimpleItemLevel/addon.lua:355>
[string "=[C]"]: in function `xpcall'
[string "@Blizzard_ObjectAPI/Mainline/AsyncCallbackSystem.lua"]:76: in function `FireCallbacks'
[string "@Blizzard_ObjectAPI/Mainline/AsyncCallbackSystem.lua"]:35: in function <.../Blizzard_ObjectAPI/Mainline/AsyncCallbackSystem.lua:31>
Locals:
item = <table> {
itemLocation = <table> {
}
}
quality = nil
(*temporary) = 1
(*temporary) = nil
(*temporary) = <table> {
itemLocation = <table> {
}
}
(*temporary) = true
(*temporary) = <table> {
itemLocation = <table> {
}
}
(*temporary) = <table> {
slotIndex = 68
bagID = 15
}
(*temporary) = false
(*temporary) = <table> {
slotIndex = 68
bagID = 15
}
(*temporary) = false
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to compare nil with number"
db = <table> {
battlepets = false
positionmissing = "TOP"
color = false
inspectavg = false
font = "Large"
position = "BOTTOM"
scalebound = 0.700000
positionup = "TOPRIGHT"
scaleup = 0.700000
}
In reply to LFGKilikk: same
In reply to Kemayo: Yes this is in Cata Classic, sorry i didnt say that at the start. Also yes i use Bagnon.
In reply to evil_godly:
Bagnon released an update not long ago that just said "Fixes two bugs from occurring in inventory and bank" -- does that fix it for you?
Please, add it to Baganator, Simple Item Levels show its on a better way then it
In reply to Ayacoz: For Baganator I'm using its API -- if you go into its settings you can add various bits of information from SimpleItemLevels to its display. Plusmouse changes Baganator so rapidly that it was breaking constantly when I was hooking onto it the same way as I was other bag addons.
Hey, not a big deal but for some reason addon shows wrong ilvl on an old items, e.g. - https://prnt.sc/CnfiTEj0m-BJ
P.S it only happens inside loot table
In reply to Jazzmania: Yeah, I was noticing that yesterday. There's very limited information available to me about the loot items -- I'm currently using the link, which is apparently inaccurate in scaled content. I think the only thing I can fall back on is trying to tooltip-scan, because there's a specific GameTooltip method for loot items. I've been resisting it because it'd mean not working in Classic.
In reply to Jazzmania: Okay, new version should work better. For weapons/armor, at least.
In reply to Kemayo:
Thank you very much!
Please fix these errors.... it seems happened for 1 week time even after this addon was updated, thanks
Game version: 11.0.0.56008 (WOW CN)
1848x SimpleItemLevel/addon.lua:652: attempt to call method 'GetItem' (a nil value)
[string "@SimpleItemLevel/addon.lua"]:652: in function <SimpleItemLevel/addon.lua:650>
[string "=(tail call)"]: ?
[string "=[C]"]: in function `securecallfunction'
[string "@Blizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua"]:61: in function <...lizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua:56>
[string "@Blizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua"]:81: in function <...lizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua:77>
[string "@Blizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua"]:117: in function <...lizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua:107>
[string "=[C]"]: in function `SetAttribute'
[string "@Blizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua"]:142: in function <...lizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua:135>
[string "@Blizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua"]:288: in function <...lizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua:238>
[string "=[C]"]: in function `securecallfunction'
[string "@Blizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua"]:235: in function <...lizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua:234>
[string "=[C]"]: in function `ProcessInfo'
...
[string "@Blizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua"]:50: in function <...lizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua:45>
[string "@Blizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua"]:72: in function <...lizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua:68>
[string "@Blizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua"]:136: in function <...lizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua:135>
[string "@Blizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua"]:288: in function <...lizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua:238>
[string "=[C]"]: in function `securecallfunction'
[string "@Blizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua"]:235: in function <...lizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua:234>
[string "=[C]"]: in function `ProcessInfo'
[string "@Blizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua"]:443: in function <...lizzard_SharedXMLGame/Tooltip/TooltipDataHandler.lua:438>
[string "=[C]"]: in function `SetInventoryItem'
[string "@Blizzard_UIPanels_Game/Mainline/PaperDollFrame.lua"]:1781: in function <...s/Blizzard_UIPanels_Game/Mainline/PaperDollFrame.lua:1774>
Locals:
self = ShoppingTooltip1 {
BottomOverlay = Texture {
}
NineSlice = Frame {
}
TopEdge = Texture {
}
LeftEdge = Texture {
}
textLeft1Font = "GameFontNormalSmall"
hasMoney = 1
textRight2Font = "GameFontHighlightSmall"
TopOverlay = Texture {
}
TextLeft1 = ShoppingTooltip1TextLeft1 {
}
numMoneyFrames = 1
ttIcon = Texture {
}
ttCount = FontString {
}
shownMoneyFrames = 1
processingInfo = <table> {
}
infoList = <table> {
}
Center = Texture {
}
RightEdge = Texture {
}
BottomEdge = Texture {
}
BottomRightCorner = Texture {
}
BottomLeftCorner = Texture {
}
TopRightCorner = Texture {
}
TopLeftCorner = Texture {
}
backdropInfo = <table> {
}
TextRight1 = ShoppingTooltip1TextRight1 {
}
updateTooltipTimer = 0.200000
textRight1Font = "GameFontNormal"
textLeft2Font = "GameFontNormal"
TextRight2 = ShoppingTooltip1TextRight2 {
}
TextLeft2 = ShoppingTooltip1TextLeft2 {
}
}
(*temporary) = nil
(*temporary) = ShoppingTooltip1 {
BottomOverlay = Texture {
}
NineSlice = Frame {
}
TopEdge = Texture {
}
LeftEdge = Texture {
}
textLeft1Font = "GameFontNormalSmall"
hasMoney = 1
textRight2Font = "GameFontHighlightSmall"
TopOverlay = Texture {
}
TextLeft1 = ShoppingTooltip1TextLeft1 {
}
numMoneyFrames = 1
ttIcon = Texture {
}
ttCount = FontString {
}
shownMoneyFrames = 1
processingInfo = <table> {
}
infoList = <table> {
}
Center = Texture {
}
RightEdge = Texture {
}
BottomEdge = Texture {
}
BottomRightCorner = Texture {
}
BottomLeftCorner = Texture {
}
TopRightCorner = Texture {
}
TopLeftCorner = Texture {
}
backdropInfo = <table> {
}
TextRight1 = ShoppingTooltip1TextRight1 {
}
updateTooltipTimer = 0.200000
textRight1Font = "GameFontNormal"
textLeft2Font = "GameFontNormal"
TextRight2 = ShoppingTooltip1TextRight2 {
}
TextLeft2 = ShoppingTooltip1TextLeft2 {
}
}
(*temporary) = "attempt to call method 'GetItem' (a nil value)"
db = <table> {
characteravg = true
battlepets = false
positionmissing = "TOPLEFT"
bags = true
inspectavg = true
itemlevel = true
font = "NumberNormal"
tooltip = true
position = "BOTTOMRIGHT"
scalebound = 1
positionup = "TOP"
bound = false
scaleup = 1
}
In reply to z78929990:
I'm not actually sure how your game is in a state where that error could happen! The path that leads to it requires that you've changed a setting that's only available in Classic, and then that you be in the retail client.
That said, future-proofing against this would be a good idea for whenever Blizzard decides to randomly drop C_TooltipInfo into Classic...
In reply to z78929990:
Okay, new version is going up. If it doesn't fix your issue, let me know.
In reply to Kemayo: nice! Now it works ver 11.0.0.56008 perfectly, thanks for the prompt reply and updates !!!
Addon throws errors after this latest update:
252x SimpleItemLevel/addon.lua:192: attempt to call field 'IsBoundToAccountUntilEquip' (a nil value)
[string "@SimpleItemLevel/addon.lua"]:192: in function <SimpleItemLevel/addon.lua:178>
[string "@SimpleItemLevel/addon.lua"]:356: in function <SimpleItemLevel/addon.lua:353>
[string "=[C]"]: in function `xpcall'
[string "@Blizzard_ObjectAPI/Classic/Item.lua"]:298: in function `FireCallbacks'
[string "@Blizzard_ObjectAPI/Classic/Item.lua"]:260: in function <Blizzard_ObjectAPI/Classic/Item.lua:256>
[string "=[C]"]: ?
[string "=[C]"]: in function `RequestLoadItemDataByID'
[string "@Blizzard_ObjectAPI/Classic/Item.lua"]:274: in function `AddCallback'
[string "@Blizzard_ObjectAPI/Classic/Item.lua"]:238: in function `ContinueOnItemLoad'
[string "@SimpleItemLevel/addon.lua"]:353: in function <SimpleItemLevel/addon.lua:348>
[string "@SimpleItemLevel/addon.lua"]:552: in function <SimpleItemLevel/addon.lua:542>
[string "@SimpleItemLevel/addon.lua"]:770: in function <SimpleItemLevel/addon.lua:756>
...
[string "@BagBrother/core/classes/itemGroup.lua"]:32: in function `Update'
[string "@BagBrother/core/classes/itemGroup.lua"]:26: in function <BagBrother/core/classes/itemGroup.lua:12>
[string "=(tail call)"]: ?
[string "@Bagnon/src/frame.lua"]:24: in function `New'
[string "@BagBrother/core/api/frames.lua"]:83: in function `New'
[string "@BagBrother/core/core.lua"]:42: in function <BagBrother/core/core.lua:42>
[string "=[C]"]: ?
[string "@Atlas/Libs/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:19: in function <...las/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:15>
[string "@Atlas/Libs/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:54: in function `Fire'
[string "@Attune/Libs/AceEvent-3.0-4/AceEvent-3.0.lua"]:120: in function <...aceAttune/Libs/AceEvent-3.0/AceEvent-3.0.lua:119>
Locals:
item = <table> {
GetItemLocation = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:66
SetItemLink = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:56
HasItemLocation = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:70
LockItem = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:113
itemLocation = <table> {
}
GetItemID = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:98
IsItemDataCached = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:216
GetInventoryTypeName = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:210
GetCurrentItemLevel = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:172
GetItemQualityColor = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:183
UnlockItem = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:119
Clear = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:74
GetItemIcon = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:125
IsItemLocked = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:109
GetItemLink = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:146
SetItemLocation = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:51
GetItemName = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:135
IsItemInPlayersControl = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:92
GetItemQuality = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:161
GetItemGUID = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:199
GetInventoryType = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:188
IsItemEmpty = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:80
GetStaticBackingItem = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:88
SetItemID = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:61
IsDataEvictable = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:227
ContinueWithCancelOnItemLoad = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:242
ContinueOnItemLoad = <function> defined @Blizzard_ObjectAPI/Classic/Item.lua:233
}
details = <table> {
missingGems = false
missingEnchants = false
link = "|cff0070dd|Hitem:227923:911:::::::60:::::::::|h[Water Treads]|h|r"
level = 65
quality = 3
}
itemLocation = <table> {
Clear = <function> defined @Blizzard_ObjectAPI/Classic/ItemLocation.lua:21
IsEquipmentSlot = <function> defined @Blizzard_ObjectAPI/Classic/ItemLocation.lua:48
IsEqualToBagAndSlot = <function> defined @Blizzard_ObjectAPI/Classic/ItemLocation.lua:60
SetBagAndSlot = <function> defined @Blizzard_ObjectAPI/Classic/ItemLocation.lua:27
IsBagAndSlot = <function> defined @Blizzard_ObjectAPI/Classic/ItemLocation.lua:52
SetEquipmentSlot = <function> defined @Blizzard_ObjectAPI/Classic/ItemLocation.lua:38
HasAnyLocation = <function> defined @Blizzard_ObjectAPI/Classic/ItemLocation.lua:56
slotIndex = 8
GetEquipmentSlot = <function> defined @Blizzard_ObjectAPI/Classic/ItemLocation.lua:44
IsEqualToEquipmentSlot = <function> defined @Blizzard_ObjectAPI/Classic/ItemLocation.lua:68
bagID = 1
GetBagAndSlot = <function> defined @Blizzard_ObjectAPI/Classic/ItemLocation.lua:34
IsEqualTo = <function> defined @Blizzard_ObjectAPI/Classic/ItemLocation.lua:76
}
(*temporary) = nil
(*temporary) = <table> {
Clear = <function> defined @Blizzard_ObjectAPI/Classic/ItemLocation.lua:21
IsEquipmentSlot = <function> defined @Blizzard_ObjectAPI/Classic/ItemLocation.lua