v0.12.0-bcc
What's new
QuestItemButton
v0.12.0 (2026-07-13)
- fix(button): open right-click menu without EasyMenu
The pick menu relied on EasyMenu, a FrameXML helper absent in the 2.5.6
client, so the call errored out silently and the menu never opened.
Rebuilt it on the UIDropDownMenu_Initialize / ToggleDropDownMenu
primitives, which are always present.
Also broaden Scanner: emit a candidate for any carried quest item whose
bag slot reports a quest that's in the log and has a use effect, so the
menu surfaces (and can pin) usable items the game never flags via
GetQuestLogSpecialItemInfo, without a hand-curated byItem entry.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com - update curseforge description
- feat(config): native per-character profiles
Add named settings profiles stored natively in the SavedVariable (no new lib):
each character selects a profile via profileKeys; get/set route to the active
profile, while account-wide keys (minimap) stay at the root. New Profiles
options tab to switch/create/copy/delete/reset. A one-time migration lifts the
old flat layout into profiles.Default.
Config is now require()-able and unit-tested (default merge, scoping, profile
management, migration) — chosen over AceDB specifically to keep the funnel
WoW-free and testable.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com - feat(waypoint): optional objective waypoint via TomTom/native
Add Waypoint.lua: a pure, unit-tested provider ladder (TomTom > native > none)
plus guarded set/clear. When enabled, a waypoint is dropped at the quest
objective on each item change and cleared on hide. Coordinates come from a new
best-effort Proximity.questieSpawn (heavily guarded; fails safe to no waypoint,
may need in-game tuning against Questie's API).
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com - feat(button): optional keybind to trigger the item
Add Keybind.lua: a pure, unit-tested normalize() plus a combat-guarded
SetOverrideBindingClick apply(). Bind a key under Display to fire the quest item
like clicking the button; changes made in combat reapply on PLAYER_REGEN_ENABLED,
and the binding is (re)applied on login and at button creation.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com - feat(button): glow/sound when the button appears
Add a WoW-free Alert.shouldAlert core (unit-tested across all state
transitions) and fire a brief overlay glow — plus an optional sound — when a
new item starts showing. Re-showing the same item does not re-alert; hiding
never alerts. TogglesalertGlow(default on) andalertSound(default off).
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com - feat(learn): suggest overrides from observed item-use zones
Add a WoW-free Learn.note core (unit-tested: dedupes, skips shipped quests,
ignores empty input). On UNIT_SPELLCAST_SUCCEEDED for the player, cross-reference
the fired spell against usable quest items in the log; on a match, record the
current zone and print a paste-ready override line. Togglelearn(default on);
/qib learneddumps the collected suggestions, persisted in SavedVariables.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com - feat(match): hide button when quest objectives complete
Add a WoW-free Complete.isComplete predicate (unit-tested) and compose a
completion gate alongside the existing distance gate in evaluate(): the button
drops once all of a quest's objectives are finished. TogglehideComplete
(default on). Quests with no trackable objectives are never auto-hidden.
Gates now compose generically — a candidate must pass every enabled gate.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com - feat(data): bundled starter override dataset + validator
Make the shipped Data table opt-out via abundledDatatoggle (default on)
and require()-able so it can be unit-tested. Add spec/data_spec.lua to validate
the table's shape (key types, no unknown override keys, no disabled+zone
contradiction, byItem never targets a disabled quest).
The dataset itself stays conservative — real TBC quest/item IDs can't be
verified offline, so it grows via the auto-learn feature and community edits,
guarded by the validator.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com - add curseforge description
This mod has no additional files

