BijouRR-v1.2.10-classic
What's new
BijouRR Changelog
All notable changes to BijouRR are documented here.
[Unreleased]
Nothing yet.
v1.2.10 — 2026-07-22
Bug Fixes
- [API-001] HIGH Addon failed to load after Blizzard's Classic Era API refresh — the AddOn-management functions were moved into the
C_AddOnsnamespace and the old flat globals (IsAddOnLoaded,GetAddOnMetadata, etc.) were removed. BijouRR cached both at file-scope during load (local IsAddOnLoaded = IsAddOnLoaded,local GetAddOnMetadata = GetAddOnMetadata), so they capturednil, and the firstIsAddOnLoaded("VersionCheck-1.0")call in theADDON_LOADEDhandler threwattempt to call a nil value(BijouRR.lua:598), aborting init. Fix: resolve both caches fromC_AddOnsfirst, falling back to the legacy global —local IsAddOnLoaded = (C_AddOns and C_AddOns.IsAddOnLoaded) or IsAddOnLoaded(same forGetAddOnMetadata). VerifiedNamespace = "C_AddOns"/Environment = "All"for both functions in the updatedAddOnsDocumentation.luaAPI dump. Also addedC_AddOnsto.luarc.jsondiagnostics.globals. Location: BijouRR.lua (top-of-file API caches), .luarc.json.
v1.2.9 — 2026-07-09
Features
[AQ-SPLIT] Split the single "Auto-Designate AQ Items" toggle into two independent toggles — Auto-Designate AQ20 Items (Ruins of Ahn'Qiraj idols, 20866–20868) and Auto-Designate AQ40 Items (Temple of Ahn'Qiraj idols, 20869–20876). Previously one toggle (
BRR_AQ40_ITEMS_TO_MASTER) designated both tiers at once. Guilds running AQ20 only can now route AQ20 idols to the Master Looter without also committing AQ40. Adds aBRR_AQ20_ITEMS_TO_MASTERSavedVariable (defaultfalse) andGetAhnQiraj20Items/GetAhnQiraj40Itemsdata-pack getters; the AhnQiraj pack now builds its combined list from the two tier sublists so they cannot drift.- Migration: an ML who previously enabled the combined "AQ Items" toggle keeps AQ40 auto-designation but must tick the new AQ20 box to restore AQ20 idol routing (AQ20 defaults off).
[COMMON-ITEMS] Added an opt-in single-toggle category that round-robins all Common (white, quality 1) items to the raid — Hourglass Sand (the Chromaggus cure in Blackwing Lair), Runecloth, white gear, etc. — detected by quality via
IsCommonItem(no whitelist). Distributed like coins/bijous (per-loot-window duplicate guard, cycle reset,/brr statusline, cleared in all three reset paths). The loot loop excludes items already claimed by a specific category (coins, bijous, scarabs, gems, lockboxes — all of which are also white) so those keep their own rotation. NewBRR_COMMONtoggle (config "Distribute Common Items" +/brr common) withcommonList/commonsDistributedstate andTryToDistributeCommon.- The single toggle also handles the loot threshold. White items only reach the master-loot window at a Common threshold —
SetLootThreshold(1), confirmed working in Classic Era (the wikis' claim that it errors below Uncommon is retail-only). Enabling "Distribute Common Items" (config or/brr common) lowers the threshold to Common when you lead a raid: immediately on enable and onGROUP_ROSTER_UPDATE/PLAYER_ENTERING_WORLD, via thepcall-guarded threshold helper (the event-time call may be blocked as protected; it degrades silently, and manual/brr thresholdcommands always work). RegisteredGROUP_ROSTER_UPDATE/PLAYER_ENTERING_WORLDon the addon frame. Note: a Common threshold routes all white items raid-wide through the loot window (they stop being free-for-all); grey/poor items stay free-for-all. - Stacks (documented behavior):
GiveMasterLootassigns an entire loot slot, and WoW cannot split a stack during looting (LootSlotis whole-slot; splitting only exists in bags post-loot), so a stacked drop — e.g. Hourglass Sand ×3 or a Runecloth stack in one slot — is handed in full to a single player. The round-robin spreads items across separate drops, not within one stack. This is a WoW master-loot limitation, not an addon choice. - Persisted:
BRR_COMMON,commonList,commonsDistributedadded to## SavedVariables:.
- The single toggle also handles the loot threshold. White items only reach the master-loot window at a Common threshold —
[JUNK-ITEMS] Added a parallel opt-in "Distribute Junk Items" toggle that round-robins all Junk (grey/Poor, quality 0) items, mirroring Common Items (
IsJunkItem,TryToDistributeJunk,BRR_JUNK,junkList/junksDistributed,/brr junk, same category exclusions, status/reset plumbing). Enabling it lowers the loot threshold to Poor —SetLootThreshold(0), confirmed working in Classic Era. The threshold helper is generalized (DesiredThreshold/TryLowerThreshold): it targets the lowest level any enabled toggle needs (Poor if Junk is on, else Common if Common is on, else leaves it alone), and the config toggles set the same. Because Poor is the floor, a Poor threshold routes everything through the loot window (nothing stays free-for-all) — so Junk + Common together give full auto-distribution. Manual/brr threshold pooradded. Persisted:BRR_JUNK,junkList,junksDistributed.
Bug Fixes
[DESIGN-001] HIGH Master-loot designations were a persisted snapshot that went stale against data-pack updates.
masterLootDesignations/masterLootByNamewere saved to disk and only ever populated at toggle-click time, so any item added to (or removed from) a data-pack file in a later version never took effect for an ML who had already enabled that pack — the saved snapshot stayed frozen at whatever the pack contained when they first ticked the box. Fix: removed both tables from## SavedVariables:in BijouRR.toc; they are now rebuilt from the registry at load byRebuildMasterDesignations()(called fromBijouRR:OnInitialize, after the toggle booleans restore and the data packs register), driven by which pack toggles are on. The data packs are now the single source of truth — updating a pack file takes effect on the ML's next login with no re-toggle, and removed IDs no longer linger as orphaned designations. Location: BijouRRMaster.lua (RebuildMasterDesignations), BijouRRConfig.lua (OnInitialize), BijouRR.toc.[MASTER-004] LOW
GetValidMasterLootMembersusedGetNumGroupMembers()as the candidate-list loop cap — the same anti-pattern MASTER-001 fixed insideDistributeMasterLoot. Master-loot candidate indices are not guaranteed 1:1 with group-member count, solastGroupMembers(the denominator in "Completed X/N" messages and/brr status) could be undercounted. Fix: loop1..40and break on the firstnil, matching the corrected pattern elsewhere. Location: BijouRR.luaGetValidMasterLootMembers.[STATUS-001] LOW The per-player summary line of
/brr statuswas garbled —print(... "Coins" .. " Scarabs" .. scarabs)produced output likePlayername: 2 Bijous, 1 Coins Scarabs0, missing a separator and placing the "Scarabs" label before its count. Fix: corrected the format string toN Bijous, N Coins, N Scarabs. Location: BijouRR.lua/brr statushandler.[DATA-001] LOW The Various data pack listed item 18404 labeled "Onyxia Hide Backpack," but 18404 is actually the Onyxia Tooth Pendant (a quest neck that does not drop in raids). The backpack's exclusion was never affected — it is hard-excluded as 17966 in the unconditional
excludeTable— so this was a mislabeled no-op, not a broken exclusion. Fix: corrected the Various entry to 17966 to match its label. Location: Data Packs/Various.lua.[DATA-002] LOW The Ahn'Qiraj data pack registered itself under the key
"AhnQiraj"while the other packs use display-friendly names ("Molten Core","Blackwing Lair","Zul'Gurub"), producing inconsistent output in/bijoumaster statusand/bijoumaster testitem. Fix: registered as"Ahn'Qiraj". Location: Data Packs/AhnQiraj.lua.
Repository
- Brought the repo up to current addon-project conventions: added
CLAUDE.md,.luarc.json(Lua language-server globals),.markdownlint.json/.markdownlintignore, and aLICENSEfile (All Rights Reserved; maintained fork of the original BijouRR by Kaytooben, continued by Pimptasty). These are development files and are excluded from the packaged zip via.pkgmeta.
v1.2.8 — 2026-04-02
Bug Fixes
[PERSIST-003] Fixed
logged_off_timedeclared aslocal, defeating the 1-hour rotation reset guard — the variable was never persisted by WoW's SavedVariables system, so coin/bijou/scarab/green/gem/lockbox rotation lists were wiped on every login regardless of how recently the player logged off. Changed tologged_off_time = logged_off_time or 0.[DIST-001] Fixed five session receiver tables (
sessionBijouReceivers,sessionCoinReceivers,sessionScarabReceivers,sessionGemReceivers,sessionLockboxReceivers) being declared but never passed into theirTryToDistribute*functions. Without this, the per-loot-window duplicate-receive guard was non-functional for all categories except greens.[MASTER-001] Fixed
DistributeMasterLootnamed-player branch usingGetNumGroupMembers()as the candidate loop cap — the correct pattern is to loop up to 40 and break onnil, matching how theMASTERbranch already worked in the same function.[MASTER-001/002] Fixed master loot candidate matching ignoring realm suffixes — on connected-realm clusters,
GetMasterLootCandidatereturns"PlayerName-RealmName". Extracted aCandidateMatches(candidate, targetName)helper that does realm-aware comparison: if the target contains a-, requires a full case-insensitive match; otherwise compares base names only. Both branches ofDistributeMasterLootnow use this helper.[MASTER-003] Removed hardcoded
"pickyminer"fallback master looter name.BRR_MASTER_LOOTER_NAMEnow defaults tonilon a fresh install andDistributeMasterLootreturnsfalsewith a log message when it is unset, rather than giving loot to a hardcoded character. Use/bijoumaster setmaster <name>to configure.[DEAD-001] Removed dead
IsClassBookfunction (was a thin wrapper overIsSkillBookwith no callers) and the unuseditemIsClassBooklocal variable in the loot loop.
Documentation
- Added
docs/BUGS.mdbug tracker documenting all known and resolved issues (PERSIST-001 through DEAD-001). - Added
CHANGELOG.mdpopulated from full git history. - Added
docs/Curseforge_Description.htmlfor CurseForge listing.
v1.2.7 — 2026-04-02
Bug Fixes
[PERSIST-001] Added
BRR_LOGGINGto the## SavedVariables:line in BijouRR.toc. The verbosity toggle was configurable via the config panel and/brr logbut was not persisted — it reverted totrue(debug spam) on every login.[PERSIST-002] Added explicit
falsedefaults forBRR_VARIOUS_ENABLEDandBRR_AQ40_ITEMS_TO_MASTERin BijouRR.lua. Both were listed in SavedVariables and exposed in the config UI but had no initializer, causingnilboolean behaviour on a fresh install.[QOL-001] Changed
BRR_LOGGINGdefault fromtruetofalse. Debug item-scan output is now opt-in rather than on by default for all users.
Internal
- Suppressed
deprecateddiagnostic in the workspace LSP config forGetItemInfo— the annotation marks it deprecated for retail but it is the correct API for Classic Era (Interface 11508).
Pre-release History
The commits below predate version tagging and are grouped by feature milestone.
November 2025 — Content Additions
- Added Mojo of Madness drops to the Various data pack (2025-11-20)
- Added Ony Hide Backpack to the Various data pack (2025-11-18)
- Added AQ data pack covering items from both AQ20 and AQ40 (2025-11-15)
- Added Various data pack — items excluded from rolling and from going into the ML bag; added associated config options and readme (2025-11-15)
- Updated book/skill-book classification to read item data in real time rather than from a static table (2025-11-15)
- Implemented
/brr test <item>item test function to inspect how BijouRR will handle a given item; updated Tranq Tome item ID (2025-11-15)
October 2025 — BWL, ZG & Library Restructure
- Added ZG data pack covering Zul'Gurub master-loot items (2025-10-26)
- Moved Ace3 to a global shared library dependency and added version-check logic (2025-10-25)
- Simplified the Molten Core data pack (2025-10-25)
- Added BWL data pack and BWL exclusion list; updated
GetItemInfoto the current API call (2025-10-25) - Added class ability books to the exclusion logic so they bypass the loot roll system (2025-10-25)
- Fixed master looter designation code (2025-10-25)
- Cleaned up syntax errors (2025-10-24)
October 2025 — Exclusion System & Core Fixes
- Added sacks of gems to the exclusion system (2025-10-23)
- Added exclusion system; initially excluded Onyxia Hide Backpack (2025-10-23)
- Fixed green gear multi-drop logic — multiple green items dropping simultaneously now handled correctly (2025-10-23)
- Updated interface version to match current Classic Era patch (2025-10-23)
- Tuned automation event settings (2025-10-23)
October 2025 — v1.0.0 Initial Release (2025-10-22)
- Initial release of BijouRR — automated bijou, coin, scarab, gem, lockbox, and green-gear distribution for WoW Classic Era raids with master-loot integration.
This mod has no additional files

