Lets Grind
Version 0.9.8
Author: Slashdot

Lets Grind records personal loot and farming runs and can be used without any other addon.


VERSION 0.9.8
- Removed the explanatory paragraph below Choose an Expansion so the overview now contains only its heading and expansion buttons.
- Achievement and set-progress notifications now use their matching dungeon artwork, set-piece icon, set icon, treasure icon, pet icon, or Feat of Strength item icon.
- Set-piece names and tracked rare-item names use their native Blizzard item-quality colors in achievement notifications.
- Toasts pause during loading screens and resume shortly after the loading screen has finished, preventing dungeon achievement alerts from expiring unseen.
- Achievement and progress notifications are clickable and open the Achievement window directly on the matching dungeon, set, treasure, pet, Feat of Strength, account statistic, or meta achievement.

VERSION 0.9.7
- Dungeon entries now show three compact rank medals for the 10, 100 and 1,000 run achievements.
- A dungeon entry remains fully gray until at least one achievement tier is actually completed; ordinary progress such as 7 / 10 does not color the card.
- Completed ranks are shown as bronze, silver and gold medals while unfinished ranks remain gray.
- After the first completed tier, the dungeon card shows completed tiers and progress toward the next tier directly in the list.

VERSION 0.9.4
- Added the Across Expansions achievement collection.
- Added Chests Looted milestones at 100, 1,000 and 10,000 lootable world-object sessions.
- Added Lockboxes Opened milestones at 100, 1,000 and 10,000 opened item containers.
- Added Looted Item Value milestones at 10 million, 100 million and 1 billion gold.
- Looted Item Value uses TradeSkillMaster DBRegionMarketAvg, is recorded only for confirmed self-loot, and clearly states that TSM is required.
- Existing compatible loot history is imported once into the new permanent statistics without replaying achievement notifications.
- Added Flintrock Shoulders as a Feat of Strength; Feats of Strength remain outside all meta-achievement requirements.
- Added a new TradeSkillMaster settings section for quantity X markers based on Lets Grind color groups.
- Quantity X markers use every configured Lets Grind color group except the first gray/junk group; user-added groups appear automatically.
- Color-group thresholds keep following the same group when it is renamed or reordered.
- Quantity X markers are withheld until TSM confirms the exact total across the current character, alts, auctions, Guild Bank and Warband Bank.
- Only visible copies above the configured keep amount receive the large full-slot X; a TSM fallback estimate can never authorize a marker.

VERSION 0.9.2
- The Achievement window now raises above the Loot Database whenever it is opened or clicked.
- Added Shift-left-click on the minimap button as a direct Achievement shortcut.
- Added overall and per-collection completion counters.
- Added an expansion overview with Classic active and future Burning Crusade and Wrath of the Lich King collections prepared in the same window.
- Added centered, cropped Adventure Guide artwork for supported dungeon achievements without stretching the original images.

VERSION 0.9.1
- Added an Achievements button directly beside Runs in the Loot Database main window.
- Restored the minimap button to left-click Main Window and right-click Settings.
- Locked achievements and unfinished set/item entries are visibly grayed out and desaturated until completed.
- Achievement list and detail scrollbars are shown only when their content exceeds the visible area.
- Added configurable completed-achievement and silent set-progress notifications in General settings.
- Achievement alerts use a separate bottom-center stack close to Blizzard achievement alerts, while loot notifications remain in their existing position.
- New set-piece progress notifications appear only for the first self-looted copy of a missing piece, never for dungeon-run progress, and never play a sound.
- Added test buttons for completed-achievement and set-progress notifications.
- Added Selfmade Achievements to the first-start feature overview.

VERSION 0.9.0
- Added the account-wide Selfmade Achievement system for Vanilla dungeon runs, transmog sets, treasures, Feats of Strength, and rare pets.
- Achievement progress is stored separately from deletable loot and run history.
- Only confirmed self-looted items count; mail, trade, auction purchases, banks, and quest rewards do not.

VERSION 0.8.23
- Unified the Scarlet Monastery of Old reset counter and run grouping into one shared per-character session.
- Changing the required Scarlet exit count now starts a clean session instead of carrying an old partial count into the new setting.
- Manual Blizzard instance resets and the Lets Grind reset button both clear the shared Scarlet counter and run session.
- Empty dungeon exits no longer create visible run records; at least one recorded item or looted gold is required.
- Cached unit prices and per-run totals for the Runs tab for 30 seconds, and only builds a run's item rows when that run is expanded.
- Debounced bursts of item-info events so the Loot Database is refreshed once instead of repeatedly.

VERSION 0.8.22
- Renamed the add-on to Lets Grind while keeping the existing add-on folder and SavedVariables name so current installations and recorded data can be updated safely.
- Replaced the old startup message with a one-time, scrollable German or English feature overview.
- Added /letsgrind and /lg while keeping the existing slash commands.
- Made the General, All The Things, and TradeSkillMaster settings content responsive to the actual panel width so long descriptions and checkbox labels wrap instead of being cut off.

VERSION 0.8.19
- Added an optional ATT + TSM setting that remembers item IDs after their first ATT loot notification and suppresses later ATT notifications while ATT still considers the item uncollected.
- The remembered list is account-wide and only affects Lets Grind's ATT notification; ATT X markers, ATT collection state, loot tracking, and TSM class notifications remain unchanged.
- If an item triggers both integrations, the first combined notification remembers it even when TSM has notification priority.
- Added a settings counter and reset button for the remembered ATT item IDs.

VERSION 0.8.18
- Opened lockboxes and other item containers now appear under a dedicated Lockboxes group in the Zones tab.
- Each lockbox type is shown by its localized item name, with the item ID used as a fallback until item data is available.
- Clicking a lockbox type shows the combined items, quantities, drop events, rates, and assigned gold from every opened box of that type.
- Lockbox loot is no longer assigned to the physical zone or instance where the box was opened and is excluded from dungeon/raid run totals.
- Existing item-container history is migrated away from its old opening-zone contexts into the virtual Lockboxes context.
- Unlocking remains completely separate: only the later right-click that actually opens and loots the box matters for recording.

VERSION 0.8.17
- Added a localized "Withdraw highlighted items" button to the guild bank.
- The guild-bank button withdraws only the red snapshot selections from the currently open tab and stops cleanly on missing permissions, withdrawal limits, full bags, tab changes, or closing the bank.
- Guild-bank withdrawals use Blizzard's normal AutoStoreGuildBankItem path and preserve the per-tab snapshot, so no replacement copy starts glowing during the sequence.
- Locked lockboxes and other lootable containers are now explicitly excluded from auction-status highlights, including valuable lockboxes that TSM classifies into a selling class.
- Lockbox detection uses the actual localized item tooltip (Locked / Verschlossen) with container and lootable-item fallbacks.
- No permanent scanner or OnUpdate loop was added.

VERSION 0.8.16
- Reworked the bag-lockbox mouse handling so both interactions work at the same time.
- A secure helper now sits over only the hovered locked bag slot and handles physical RightButton clicks directly.
- LeftButton, MiddleButton and auxiliary mouse buttons pass through to Blizzard's original bag item button, preserving click-to-pick-up and drag-and-drop.
- Removed the unreliable pre-click BUTTON2 override from the active lockbox path; the first right-click activates Pick Lock / the key and the second right-click targets the exact bag slot on the same secure button.
- No polling scanner or OnUpdate loop was added.

VERSION 0.8.14
- Added the built-in WoW coin / money sound (SoundKit 891) as "Auction Sale (Coins)" for TSM class loot notifications.
- Removed "Collection Log Completed" from the normal TSM loot-notification sound list; it remains available only for All The Things collection notifications.
- Existing TSM loot settings that selected Collection Log Completed are migrated to the new coin sound.

VERSION 0.8.13
- Auction-status markers now group random-suffix and bonus variants by the TSM base item string, so only one copy of the same base item is highlighted.
- Current-character bag and auction checks now use the same base item string.
- Warband-bank and guild-bank marker selections are snapshots taken when a tab is opened; withdrawing an item no longer briefly highlights a replacement copy.
- Native gray-quality items are included when Lets Grind classifies them into a higher selling class, while actual junk-class items remain excluded.
- Added a localized "Withdraw highlighted items" button to the Warband bank, positioned left of Blizzard's deposit-all button.
- The button withdraws the currently highlighted items from the open Warband-bank tab in a bounded event-driven sequence and does not affect the guild bank.

VERSION 0.8.12
- Fixed the bag-lockbox right-click helper no longer activating Pick Lock / the configured unlocking item after the 0.8.8 left-click preservation change.
- BUTTON2 is now routed with SetOverrideBindingClick directly to the secure lockbox helper while hovering a locked player-bag slot.
- Added a SecureHandler SetBindingClick compatibility fallback instead of the previous textual CLICK binding command.
- The helper registers the same key-down or key-up edge used by the player's ActionButtonUseKeyDown setting, preventing a physical right-click from being missed or processed twice.
- No mouse-enabled overlay is placed over the bag slot, so left-click pickup and drag-and-drop remain fully handled by Blizzard.

VERSION 0.8.11
- Added an event-driven auction-status marker for bags and storage.
- Warband bank and guild bank are enabled by default; player bags and character bank are optional.
- Uses TSM's current-character auction quantity and exact TSM item strings.
- In storage, no marker is shown when the current character already has that exact item in bags or on the auction house.
- For duplicate copies in the currently displayed storage view, only one slot receives the neon-red marker.
- Moving the marked copy into the character's bags removes the marker from all remaining storage copies on the next bag event.
- The glow can optionally pulse through a Blizzard AnimationGroup and has no polling scanner or OnUpdate loop.
- Added complete German and English settings text.

VERSION 0.8.10
- Added an event-driven low-stock warning for consumable unlocking items after leaving a dungeon or raid.
- The warning threshold defaults to 5 and the popup closes after 15 seconds by default; 0 keeps it visible until dismissed.
- The popup shows the localized item link and current remaining count. Rogues using Pick Lock do not receive a consumable-stock warning.
- The last used or configured unlocking item is remembered so a count of 0 can still be reported.
- Opening a Blizzard merchant window now immediately closes the bag-space warning and cancels any pending warning from the same dungeon exit.
- Added complete German and English settings and popup text for the new warning.

VERSION 0.8.9
- Removed the unsuccessful world-chest BUTTON2-to-left-click remapping after in-game testing confirmed that WoW still treats the second right-click as normal object interaction ("Item is locked").
- Locked world chests now use the reliable flow: first right-click activates Pick Lock / the key item, then a normal left-click applies it to the chest.
- The temporary world BUTTON2 override and its secure fallback were removed completely, so the right mouse button is no longer remapped during world-object targeting.
- Bag lockboxes keep their working two-right-click flow because Lets Grind can securely target the exact bag slot.
- Updated German and English settings text to describe the actual tested behavior.

VERSION 0.8.8
- Fixed locked lockboxes blocking normal left-click pickup and drag-and-drop in bags.
- Removed the mouse-enabled transparent overlay from bag slots.
- Only BUTTON2 is now temporarily routed to the secure lockbox helper while hovering a locked lockbox; Blizzard's original bag button receives every left click unchanged.
- The two-right-click unlocking flow remains intact and still has no scanner or OnUpdate loop.

VERSION 0.8.7
- Added a second world-chest right-click experiment using the public SetOverrideBinding API after the first physical right-click has been released.
- Temporarily maps BUTTON2 to CAMERAORSELECTORMOVE only while the key / Pick Lock targeting cursor is active.
- Uses the existing secure binding owner so its combat state driver can clear the temporary binding, with five-second, cursor-change and combat cleanup retained.
- Falls back to the previous secure binding route only if the direct override API is unavailable or rejected by the client.

VERSION 0.8.6
- The instance reset popup now shows the looted item value and total run duration.
- Scarlet Monastery of Old is identified by its locale-independent instance map ID and waits for four exits by default before showing the reset popup.
- Added a setting to show the Scarlet Monastery of Old reset popup after 1, 2, 3 or 4 exits.

VERSION 0.8.5
- Added optional two-right-click unlocking for locked lockboxes in the player's bags.
- Rogues automatically use Pick Lock (spell ID 1804); non-rogues can optionally use the configured or automatically detected unlocking item.
- The first right-click activates the tool. The second right-click is securely redirected to the exact bag slot that was hovered, while a normal left-click remains available as a fallback.
- Detection uses the localized Blizzard Locked tooltip text and therefore works on German and English clients.
- The helper only hooks bag-item hover events and uses bounded one-shot timers during the two-click sequence; it has no permanent scanner or OnUpdate loop.
- Added separate German and English settings for world chests, bag lockboxes and non-rogue item use.

VERSION 0.8.4
- Changed the locked-chest assistant to an explicit two-right-click flow.
- The first right-click activates Pick Lock or the selected key item.
- Lets Grind then disables its secure overlay and temporarily maps the second right-click to WoW's left-click world action, allowing it to confirm the pending key / Pick Lock cursor on the chest.
- The helper only re-arms after the cursor has left the chest and reaches a locked object again.
- Updated the German and English settings text to describe the tested two-click behavior.

VERSION 0.8.2
- Added an optional experimental locked-chest assistant in the General settings.
- Detects locked world objects from the localized world tooltip (German "Verschlossen", English "Locked").
- A real right-click activates the rogue Pick Lock ability or an available key item through a secure action button.
- Pick Lock uses spell ID 1804 and item tools use item IDs, so the feature is independent of localized spell and item names.
- Supports a preferred custom unlocking item ID; 0 automatically checks known key items in the player's bags.
- The helper is event-driven, disabled in combat and has no OnUpdate scanner or recurring background timer.
- This is an in-game prototype: depending on how the client handles the propagated click, one additional left-click on the chest may still be required.

VERSION 0.8.1
- Reworked the settings layout to keep English and German texts and buttons inside the visible panel.
- Long information texts now reserve their real wrapped height instead of being clipped or overlapping later options.
- Reorganized the TSM color-class editor and moved Delete group / condition controls away from the right edge.
- Removed the large Available TSM values reference block from the settings.
- TSM sale rates in loot notifications are now shown as the original decimal values (for example 0.02 / 0,02) instead of percentages.

VERSION 0.8.0
- Added automatic German / English localization based on the WoW client locale.
- German clients use the existing German UI; every other client uses English.
- Localized settings, tabs, tooltips, buttons, dialogs, chat messages, loot notifications, run history, Loot Database and diagnostic output.
- Added locale-appropriate date, decimal and thousands formatting while accepting previously saved date formats.
- Localization is cached and event-driven; it adds no background scanner or recurring CPU work.

VERSION 0.7.14
- Fixed ATT notification priority so TSM value rows and the TSM drop counter are excluded when ATT wins a combined notification.
- Simplified ATT and TSM loot-message settings to one fixed Lets Grind design.
- Fixed notification design: 440 width, 80 minimum height, 62 icon size, 18 title size, black background, orange title/border and automatic item-quality color.
- ATT X defaults to size 12 and an orange-brown color.
- Collection Log Completed always uses the included 225% amplified sound file; volume variants and the volume slider were removed.
- TSM drop counts now appear in the upper-right corner instead of a separate Loot Database row.
- New default TSM classes use DBRegionMarketAvg thresholds of 500 / 2,500 / 10,000 / 50,000 / 100,000 gold, with gray as the fallback class.
- Default TSM overlay opacity is now 0.70.
- Raid instance-reset prompts are enabled by default and the instance-reset popup sound option was removed.

CORE FEATURES
- Personal loot database
- Dungeon and raid run tracking
- Open-world farming history
- Looted items, quantities, gold, run duration and vendor values
- Manual bag-item marking with an enable switch and configurable key
- Marked sellable items are added to Blizzard's Sell Junk button
- Marked items without vendor value can be destroyed deliberately
- Bag-space warning and instance-reset helper

OPTIONAL ALL THE THINGS INTEGRATION
- Orange-brown X on eligible items which ATT has not yet recorded as collected
- Loot notification for newly collected ATT items
- Configurable notification title, duration and sound
- Uses item IDs / item links and therefore works independently of the client language

OPTIONAL TRADESKILLMASTER INTEGRATION
- Configurable price-based item classes and bag/bank colors
- Optional item-count display
- Colored and sortable grouped / ungrouped TSM item lists
- TSM loot notifications with selectable sound and configurable TSM value rows
- Market values in run history
- Optional sale of the first configured class through Blizzard's Sell Junk button

LOOT NOTIFICATION DESIGN
- Fixed Lets Grind layout for ATT and TSM notifications
- Black background, orange title and border
- Item names always keep the automatic WoW quality color
- TSM drop count is shown in the upper-right corner
- Selectable sounds: off, classic WoW level-up, WoW achievement or the included loud Collection Log Completed sound

SETTINGS
- Separate General, All The Things and TradeSkillMaster tabs
- Configurable priority when ATT and TSM would notify for the same item

DEPENDENCIES
All The Things and TradeSkillMaster are optional. Lets Grind loads and keeps its core features when either or both are missing.

DATA MIGRATION
The existing SavedVariables name TSMBagValuesDB is intentionally retained so previous settings, manual markings, loot history and run history are preserved after upgrading from TSM Bag Values.

INSTALLATION
Copy the LetsGrind folder into World of Warcraft/_retail_/Interface/AddOns and restart the game or use /reload after updating.

SLASH COMMANDS
/lootjournal
/lj
/lj stats
/lj runs
/lj status
/lg achievements

Version 0.9.0 - Achievements
----------------------------
- Separate, account-wide achievement progress that is not deleted with run history.
- Dungeon milestones at 10, 100 and 1,000 valid runs for Vanilla-era Retail dungeons.
- Meta achievements for every dungeon tier.
- Broad Classic transmog set catalogue with per-piece lifetime loot counters.
- Curated attainable treasure achievements and treasure metas.
- Ultra-rare Uldaman/Gnomeregan/Old Scarlet drops are Feats of Strength and never block a meta.
- Rare old-world pet drop achievements and pet metas.
- Final meta achievement: The Grind Never Ends.
- Only loot confirmed through the player's own loot window counts. Mail, trades, Auction House, guild bank and quest rewards do not count.
- Open with /lg achievements, the Achievements button beside Runs, or Shift-left-click on the minimap button.


