v1.2.2
What's new
Changelog
All notable changes to Tallymaster are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[1.2.2] - 2026-11-06
Fixed
- Releases reach CurseForge: the packager uploads there itself, like to Wago
[1.2.1] - 2026-11-06
Changed
- The Add window, the minimap tooltip and the addon list say "item or currency": collectibles were promised but could never be added (#19)
Removed
- Unused counting for mounts, battle pets and transmog
[1.2.0] - 2026-11-06
Added
make install-foreverandmake uninstall-foreverinstall into and remove from the Forever client- World of Warcraft: Forever:
Tallymaster_Camelot.toc(interface 16001); Forever uses the retail item and currency API and counts all nine character and nine account bank tabs
Changed
- The About block in the options shows the version, the copyright line and the
embedded libraries again, links
github.com/lasse-tech/tallymasterand no longer shows the author separately.## X-Websitein the TOCs points at the repository. - Labels instead of sentences: the empty tracker, the setting descriptions, the quality tooltip in the Add window, the edit box hint and the item-or-currency question are short labels now, in English and German.
Fixed
- The ElvUI skin never applied: it read a setting ElvUI does not have and waited for ElvUI's options to load.
make installreports a leftoverLibs/LibElvUIPlugin-1.0as stale, andmake prune-libsremoves it; nothing loads it any more.Makefile stageandMakefile distpoint atfetch-libswhenLibs\is empty.
[1.1.1] - 2026-10-20
Changed
- Tallymaster is a lasse tech addon under the MIT licence now. The TOCs, the About
block in the options and the README carry the new copyright line and contact, the
About block shows the author and
github.com/lasse-tech · MIT License(no version or copyright line any more), andLICENSEships with the addon. make helpandMakefile helplist the targets from their comments;make lintalso checks those comments in both files. Newdebuganddeploytargets;purgeno longer needsCONFIRM=yes.- Updated
Tallymaster_Mainline.tocto Interface 120105 for WoW 12.1.5. Mists (50504) and Classic Era (11509) already match their live clients.
Fixed
- Clicking outside the Add window while its input box had focus raised a Lua error, and the box kept the focus.
- After switching the game language, the item names Tallymaster re-fetched ended in a Lua error once the last one arrived, and the tracker did not refresh.
- Account-wide currencies were counted once per character in the account-wide scope, and the tooltip listed a copy for every character.
- The first Shift- or Ctrl-click after a
/reloaddid nothing. - Equipped items were counted twice:
C_Item.GetItemCountalready includes them, and Tallymaster added every equipped copy on top, so a single equipped weapon or trinket showed as 2.
Added
make testrunstests/*.luaheadless in wow-ui-sim against the real retail Blizzard UI. It covers slash commands, SavedVariables defaults, the LibDataBroker launcher, adding an item and counting it in bags and when equipped.
[1.1.0] - 2026-09-14
Added
- Runs on Mists Classic and Classic Era alongside retail. One folder carries three
TOCs -
Tallymaster_Mainline.toc(Interface 120100),Tallymaster_Mists.toc(50504) andTallymaster_Vanilla.toc(11509) - and the client loads the one whose suffix matches. The singleTallymaster.tocis gone. Core/Compat.luaholds every retail/Classic API difference, so no other file names a flavor-specific API:- Classic has no
C_CurrencyInfo.GetCurrencyListSize/GetCurrencyListInfo. It keeps the pre-10.0 globals instead, andGetCurrencyListInforeturnsname, isHeader, isExpanded, isUnused, isWatched, count, iconwhere retail returns a table. Compat normalizes the tuple, so adding a currency by name and reading currency headers work on Mists Classic. Classic Era has no currency list at all - there a currency can only be added by ID. Enum.BagIndexis renumbered between the flavors (Classic:Bank=-1,Keyring=-2,Reagentbank=-3,BankBag_1..7=6..12; retail:Keyring=-1,CharacterBankTab_1..6=6..11). Containers are now resolved by name, so the Classic bank, reagent bank and keyring are scanned instead of silently skipped.
- Classic has no
make check-tocs(Makefile check-tocson Windows) verifies the three TOCs differ only in## Interface:and that every file they list exists.make lintruns it aftercheck.FLAVOR=_classic_selects the Mists Classic client forinstall,uninstall,prune-libsandpurge, next to the existing_classic_era_.make stage(Makefile stageon Windows) buildsdist/<expansion>/Tallymasterfor Midnight, Mists and Vanilla, each carrying only the TOC that expansion loads, ready to copy into that client'sInterface/AddOns.stageanddistsharedist/but only remove their own output, so building one no longer discards the other.- Copyright in the About block, read from a new
## X-CopyrightTOC field, and a "Made with <3 in Europe" chip below it. make install/uninstall/purgewith aFLAVORoverride also look for that client next to_retail_in the folderWOW_RETAIL_ADDON_FOLDERpoints into, so the Classic clients are found under Wine without settingWOW_DIR.make fetch-libs(Makefile fetch-libson Windows) downloads the embedded libraries intoLibs/, reading the URLs and the ignore list out of.pkgmetarather than repeating them, so it stays in step with what the CI packager pulls. Needssvnfor the three CurseForge externals andgitfor LibDataBroker-1.1.
Changed
- Contact address changed.
Fixed
- Counting a battle pet could throw instead of returning a count.
C_PetJournal.GetNumCollectedInfowas called behind aif not C_PetJournalguard, but the namespace exists in every flavor - Classic Era included, where the pet journal does not - so the guard never caught a missing function. All collection lookups now probe the function itself. The same held forC_MountJournalandC_TransmogCollection.
Notes
- Crafting quality tiers are retail-only:
C_TradeSkillUI.GetItemReagentQualityByItemInfoandGetItemCraftedQualityByItemInfodo not exist in either Classic flavor, so entries there never carry a quality and the tier markup, the "respect quality" checkbox and the name-based count stay dormant on their own. - Mounts, battle pets and transmog have no content in Classic Era, and the Legion wardrobe
behind
PlayerHasTransmoghas none in Mists Classic. Those count zero rather than error.
[1.0.1] - 2026-08-30
Never tagged or published on its own; these changes first shipped with 1.1.0.
Added
make install(andMakefile installon Windows) readsWOW_RETAIL_ADDON_FOLDERand installs into that AddOns folder directly, skipping the WoW-folder search.uninstall,prune-libsandpurgefollow the same path;purgederives theWTFfolder two levels above it. The variable is retail-only - aFLAVORoverride falls back toWOW_DIRand auto-detection.
Fixed
- The tracker window came back on every login even after being hidden. Its
shown/hidden state is now stored alongside its position in the profile
(
tracker.shown), and hiding it - shift-click on the frame,/tally show, the keybinding or a shift-click on the minimap button - persists across sessions. Adding an entry re-shows a hidden tracker, so the new row is never added into nowhere.
[1.0.0] - 2026-08-23
First stable release. Everything below 0.3.0-alpha was pre-release; the feature set is unchanged from it.
Added
Makefile(GNU make) andMakefile.bat(plain Windows batch, needs neither make nor zip) withcheck,libs,install,uninstall,prune-libs,dist,clean,distcleanandpurge.installauto-detects the WoW folder, keeps the libraries already present in the client and points out onesembeds.xmlno longer lists;purgerefuses to touch SavedVariables withoutCONFIRM=yes.- About block at the top of the options panel listing author, website and version,
read from the TOC. The TOC gained a matching
## X-Websitefield.
Fixed
- Items in the Warband bank were not counted.
C_Item.GetItemCountwas called without theincludeAccountBankparameter that WoW 11.0 added, and the container scan usedEnum.BagIndex.Bank/.Reagentbank, which Midnight replaced with per-tab indices - soAccountBankTab_1..5were never looked at. Both are fixed, andBANK_TABS_CHANGEDnow also triggers a refresh. - The minimap button showed Blizzard's generic bag icon instead of the addon's own
Media/Satchel.tga, which has shipped since 0.2.20 and is already referenced by the TOC'sIconTexture. - The Known items window never refreshed on bag events, so an open window kept showing stale counts.
- README documented a Rename feature and a right-click "delete or rename" action
on the Known items list. Neither exists: the context menu and renaming were removed
in 0.2.x,
DB:DeleteEntryhas no caller andcustomNameis written but never read. Both claims are gone from the README. - README still called the project a
0.1.0-alphascaffold and told you to optionally addMedia/Satchel.blp; the icon has shipped asMedia/Satchel.tgasince 0.2.20.
[0.3.0-alpha] - 2026-08-23
Changed
- Removed the Ace3 dependency. Everything Ace3 provided is now implemented
directly against the Blizzard API:
AceAddon-3.0/AceEvent-3.0/AceConsole-3.0→Core/Addon.lua(ADDON_LOADED/PLAYER_LOGIN lifecycle, an event dispatcher,Print,RegisterChatCommand).AceDB-3.0→DB:Initialize()inCore/Database.lua. It keeps the exact same SavedVariables layout (profileKeys/profiles/global/char), so existingTallymasterDBdata carries over untouched — no migration needed.AceLocale-3.0→Locales/Locale.lua, a plain table that falls back to the English key when a string is missing.AceConfig-3.0/AceConfigDialog-3.0→ the Blizzard Settings API. Options now live under Game Menu → Options → AddOns → Tallymaster instead of in a separate Ace dialog.AceGUI-3.0→ the Known items window is now a plain frame (search box,WowStyle1DropdownTemplatecategory filter, sortable headers, scroll frame with pooled rows).
Libs/now only carriesLibStub,CallbackHandler-1.0,LibDataBroker-1.1andLibDBIcon-1.0, needed solely for the minimap button.
Fixed
- ElvUI skinning now also covers the Add and Known items windows. Both are created lazily, so they did not exist yet when the skin ran at login; the skin is now idempotent and re-applied when those frames are built.
[0.2.25-alpha] - 2026-08-23
Changed
Counts are computed once per refresh instead of inside the sort comparators.
Counting:DisplayCountboth counted and wrote to the DB and sat inside threetable.sortcomparators, so every refresh rann + O(n log n) + nlive counts - and a single live count for a crafting-quality item scans every container slot by slot.Counting:Snapshotnow builds one key-to-count table per refresh and both windows share it;Counting:Comparatorreplaces the three near-identical comparators.Removed dead code left over from the rename/delete feature dropped in 0.2.x:
DB:Get,DB:DeleteEntry,DB:IsVisible,DB:DisplayName(it only returnedoriginalName),entry.customName,global.customCategoriesandAddon:UnregisterEvent. No behaviour change; stored data is untouched.Addon:RegisterEventignores events the client does not know instead of letting one removed event abort the whole startup.Updated TOC Interface to 120100 for WoW 12.1.0 (Curse of Ula'tek). No API changes in 12.1.0 affect this addon.
[0.2.24-alpha] - 2026-06-13
Changed
- Updated TOC Interface to 120007 for WoW 12.0.7.
[0.2.23-alpha] - 2026-06-13
Fixed
- The count breakdown appeared twice on the tracker/Known-items tooltip: our custom tooltip sets the item, which also triggered the new game-tooltip hook. The hook now skips our own tooltip calls, so the breakdown shows once.
[0.2.22-alpha] - 2026-06-13
Added
- The per-character (per-realm) count breakdown now also appears on the standard game item tooltip (hovering an item in bags, etc.) for tracked items, so you can see how many you have across all characters without opening the addon. New setting "Show counts on item tooltips" (default on). The tracker/Known-items tooltip and this one now share the same breakdown code.
[0.2.21-alpha] - 2026-06-13
Changed
- Removed all comments from the addon source (Lua, embeds.xml, and the TOC). No behavior change. Third-party libraries and docs are untouched.
[0.2.20-alpha] - 2026-06-13
Fixed
- Removed the persistent "Unrecognized XML: Binding" warnings.
Bindings.xmlis no longer listed in the TOC; WoW auto-loads it from the addon root via its dedicated bindings loader, avoiding the generic XML schema validator that produced the warnings. (Also dropped the XML comment from the file.) Keybindings still work and keep their own "Tallymaster" section.
Added
- In-game addon icon:
Media/Satchel.tga(referenced by the TOCIconTexture).
[0.2.19-alpha] - 2026-06-13
Fixed
- Tracked entries' category headers and names stayed in the language they were first added in (e.g. English category headers on a German client). Stored categories/names are now re-derived/re-resolved to the current client language when it changes; item names not yet cached are resolved as their data arrives.
[0.2.18-alpha] - 2026-06-13
Added
- German (deDE) localization. The addon now uses German automatically when the game client is set to German, and English otherwise (via AceLocale). Also moved the previously hardcoded minimap tooltip labels (Click/Shift-Click/etc.) into the locale so they translate too.
[0.2.17-alpha] - 2026-06-13
Fixed
- Sell-price coins still sat low next to the small details font. Replaced GetCoinTextureString with line-height (":0") coin icons that center on the text.
[0.2.16-alpha] - 2026-06-13
Fixed
- Shift-clicking a row in the Known items list failed with "Could not find ..." for items not cached this session, because it re-resolved by name. It now passes the existing entry straight through (no name lookup), preserving its quality setting.
[0.2.15-alpha] - 2026-06-13
Fixed
- The Add window opened behind the Known items window when shift-clicking a row to paste. It now uses the same FULLSCREEN_DIALOG strata and is raised on open.
[0.2.14-alpha] - 2026-06-13
Added
- The Add window now shows the item's icon next to the details.
Fixed
- The sell-price coin icon is sized to the details font so it aligns with the text (was using the default 14px size).
[0.2.13-alpha] - 2026-06-13
Removed
- The right-click context menu in the Known items list (and its Rename/Delete
actions). Item and category renaming is no longer possible;
DisplayNamenow always returns the original name. Note: this also removes the only Delete UI.
[0.2.12-alpha] - 2026-06-13
Added
- Hovering an item in the Known items window now shows the same tooltip as the tracker (item info + per-character count breakdown), respecting the "Show item tooltip" and "Show counts in tooltip" settings. The tooltip logic is now shared.
[0.2.11-alpha] - 2026-06-13
Added
- Settings option "Show counts in tooltip" (default on) to show/hide the per-character count breakdown within the tracker tooltip, independently of the tooltip itself.
[0.2.10-alpha] - 2026-06-13
Fixed
- Bindings.xml failed to parse (a double hyphen inside an XML comment is illegal), so no keybindings registered and the section disappeared entirely. Reworded the comment; the "Tallymaster" keybindings section is back.
[0.2.9-alpha] - 2026-06-13
Changed
- The per-character (per-realm) count breakdown in the tracker tooltip is now shown regardless of the count scope, including when set to Per character.
[0.2.8-alpha] - 2026-06-13
Changed
- Account-wide tooltip: the header is now the addon name ("Tallymaster") instead of "Account-wide", and characters are grouped under realm headers with the realm stripped from each character name.
[0.2.7-alpha] - 2026-06-13
Added
- Tracker tooltips now list each character's count and the total when the count scope is Account-wide.
- Settings option "Show item tooltip" (default on) to enable/disable the tracker hover tooltip.
[0.2.6-alpha] - 2026-06-13
Fixed
- Keybindings now appear in their own "Tallymaster" section of the Key Bindings UI
(instead of under "Other" with a stray HEADER_TALLYMASTER row). This needs the
categoryattribute in Bindings.xml, which re-introduces a cosmetic "Unrecognized XML attribute: category" schema-validation warning — the same one every addon with binding categories (RaiderIO, BagSync, ...) produces; harmless.
[0.2.5-alpha] - 2026-06-13
Fixed
- Account-wide counting now works. Each character records its count for every known entry on refresh (not only the items it is itself tracking), so the account-wide total includes all characters. Previously a character only contributed for items visible on its own tracker, so the sum omitted others.
[0.2.4-alpha] - 2026-06-13
Added
- An "Add" button in the Add window (bottom-right), doing the same as pressing Enter. Skinned by ElvUI when active.
[0.2.3-alpha] - 2026-06-13
Fixed
- Known items: the sort-direction indicator showed as a broken glyph (Unicode arrow with no font glyph); replaced with an arrow texture.
- Known items: added a divider line so the column header no longer visually merges with the first row.
[0.2.2-alpha] - 2026-06-13
Added
- Settings option "Group by category" (default on). When off, the tracker shows a single flat list (sorted by the current sort order) instead of category groups.
[0.2.1-alpha] - 2026-06-13
Fixed
- The tracker now remembers its position across sessions once dragged.
- Collapsing/expanding a group now resizes the tracker downward only, keeping its position fixed (previously the center-anchored frame shifted when it resized). The frame is TOPLEFT-anchored and its position is saved on drag.
[0.2.0-alpha] - 2026-06-13
Added
- Item detail capture: when an item is added (typed, by ID, or shift-clicked), the Add window now shows a details panel — quality (rarity + crafting tier), item level & type/subtype, stack size & sell price, expansion & bind type — and these are stored on the entry. Details preview live as you type and on shift-click.
- Crafting-quality handling. A "Respect quality" checkbox appears for items that
have a crafting tier:
- Off (default): the entry counts any quality of the item, summed across all tiers (sibling tiers discovered by name across your containers).
- On: the entry counts only that exact tier. The tracked entry then shows the tier star in the tracker and Known items list.
Fixed
- (carried from 0.1.21) Shift-clicking a quality item no longer pastes the tier atlas markup into the box.
[0.1.21-alpha] - 2026-06-13
Fixed
- Shift-clicking an item with a crafting quality (Tier 1-3 stars) pasted the inline atlas markup into the box, so the item couldn't be resolved. The pasted name now strips inline escapes (atlas |A..|a, textures |T..|t, colour codes).
[0.1.20-alpha] - 2026-06-13
Added
- The Known items window now has two columns (icon+name | count) with clickable column headers: click "Name" or "Count" to sort by it, click again to reverse. Name defaults to A→Z, Count to highest-first; the active header shows an arrow.
[0.1.19-alpha] - 2026-06-13
Changed
- Minimap icon clicks rearranged: left-click opens the Add window, Shift-click toggles the tracker, Ctrl-click opens Known items, Right-click opens Options. Tooltip updated; the empty-tracker hint again lists the minimap as an add method.
[0.1.18-alpha] - 2026-06-13
Added
- Click the tracker's background/title to open the Add window; Shift+left-click hides the tracker. Dragging to move is no longer mistaken for a click. (Rows keep their per-entry shift-click-to-hide behaviour.)
[0.1.17-alpha] - 2026-06-13
Fixed
- Key Bindings UI showed raw tokens (HEADER_TALLYMASTER, TALLYMASTER_OPEN_ADD, ...).
Defined the
BINDING_HEADER_TALLYMASTERandBINDING_NAME_*globals so the header and each action show readable, localized names ("Tallymaster", "Open Add window", "Toggle tracker", "Toggle known items").
[0.1.16-alpha] - 2026-06-13
Fixed
- Item categories were stored as a numeric classID instead of the type name
(e.g. a Consumable showed up under category "0").
Categories:Autonow reads the 2nd return ofGetItemInfoInstant(itemType) rather than the 6th (classID). - Added
DB:RepairCategories()(run on enable) to re-derive proper categories for entries already saved with a numeric category from the old bug.
[0.1.15-alpha] - 2026-06-13
Fixed
- Shift-clicking an item while the Add window is open no longer pops up the stack-split amount picker; it just copies the name (StackSplitFrame is suppressed while the Add window is shown).
[0.1.14-alpha] - 2026-06-13
Changed
- The minimap icon's left-click now toggles the on-screen tracker (was: open Add window). Add moved to Ctrl-click; Shift-click (Known items) and Right-click (Options) are unchanged. Tooltip updated accordingly. The empty-tracker hint no longer lists the minimap as an add method.
[0.1.13-alpha] - 2026-06-13
Added
- Shift-clicking the tracker's background/title now hides the whole tracker. (Rows keep their existing shift-click behaviour of hiding that single entry.)
[0.1.12-alpha] - 2026-06-13
Changed
- The empty-tracker hint now also tells the user that, with the Add window open, Shift-clicking an item in their bags copies its name into the input box.
[0.1.11-alpha] - 2026-06-13
Changed
- The empty-tracker hint now also mentions clicking the minimap icon as a way to open the Add window, alongside /tally and the Add keybinding.
[0.1.10-alpha] - 2026-06-13
Fixed
- Reworked Add-window focus handling (the 0.1.9 Escape approach didn't release the
keyboard). Root cause was
SetAutoFocus(true), which kept re-grabbing the keyboard. Now: auto-focus is off (the box is focused explicitly on open for immediate typing); clicking anywhere outside the window releases keyboard focus so game keybinds like opening bags work again (viaGLOBAL_MOUSE_DOWN); and Escape closes the window. Also start the frame hidden so the first toggle opens it.
[0.1.9-alpha] - 2026-06-13
Changed
- The Add window no longer holds the keyboard hostage. It still auto-focuses for
immediate typing, but pressing Escape now releases keyboard focus (so game
keybinds like opening bags work again) while keeping the window open; a second
Escape closes it (registered via
UISpecialFrames).
[0.1.8-alpha] - 2026-06-13
Added
- The tracker now shows a how-to-add hint ("No items tracked yet. Type /tally or use the Add keybinding...") instead of an empty list when nothing is tracked yet.
[0.1.7-alpha] - 2026-06-13
Added
- Shift-clicking an item or currency while the Add window is open now pastes that
item's name into the input field (via a
HandleModifiedItemClickhook).
[0.1.6-alpha] - 2026-06-13
Changed
- Enlarged the Add window and moved the instruction text into the input box as a proper placeholder, so it is no longer clipped/unreadable. The placeholder hides as soon as you start typing.
[0.1.5-alpha] - 2026-06-13
Fixed
- Fixed
Binding header TALLYMASTER was attempted to be loaded more than once. Theheaderattribute defines a Key Bindings UI header row and belongs only on the first binding of a group; it is now declared once onTALLYMASTER_OPEN_ADDand removed from the other two bindings inBindings.xml.
[0.1.4-alpha] - 2026-06-13
Fixed
- Stopped embedding
LibElvUIPlugin-1.0, which raised anError loading ... LibElvUIPlugin-1.0.luawhenever ElvUI was absent (the library requires ElvUI to load). It is now removed fromembeds.xmland.pkgmeta.Skin/ElvUI.luaalready resolves it at runtime viaLibStub("LibElvUIPlugin-1.0", true)— which ElvUI registers itself when installed — and no-ops gracefully when ElvUI is absent.
[0.1.3-alpha] - 2026-06-13
Fixed
- Removed the obsolete
PLAYERREAGENTBANKSLOTS_CHANGEDevent registration inCore/Counting.lua. That event was removed in patch 11.2 when the standalone Reagent Bank was replaced by tabbed banks, causing Ace3 to error on registration. Reagent items now live in regular bank tabs, whose updates are still caught by the existingBAG_UPDATE_DELAYEDandPLAYERBANKSLOTS_CHANGEDhandlers.
[0.1.2-alpha] - 2026-06-13
Fixed
- Fixed keybinding actions throwing
unexpected symbol near '/'. Binding bodies inBindings.xmlrun as raw Lua, so the/runchat-command prefix was invalid; the bindings now callTallymaster_Binding(...)directly.
[0.1.1-alpha] - 2026-06-13
Fixed
- Removed the unrecognized
categoryXML attribute fromBindings.xml, which raisedUnrecognized XML attribute: category(and a cascadingUnrecognized XML: Binding) warnings on load. Bindings are grouped via theheaderattribute instead.
[0.1.0-alpha]
Added
- Initial alpha release: live on-screen tracker for items, currencies and collectibles, grouped by category.
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include

