promotional bannermobile promotional banner

BijouRR - Revived

A Bijou and Scarab auto rolling tool for ZG and AQ20 raids.
Back to Files

BijouRR-v1.2.10-classic

File nameBijouRR-BijouRR-v1.2.10-classic.zip
Uploader
PmptastyPmptasty
Uploaded
Jul 22, 2026
Downloads
295
Size
30.9 KB
Flavors
Classic
File ID
8487784
Type
R
Release
Supported game versions
  • 1.15.8

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_AddOns namespace 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 captured nil, and the first IsAddOnLoaded("VersionCheck-1.0") call in the ADDON_LOADED handler threw attempt to call a nil value (BijouRR.lua:598), aborting init. Fix: resolve both caches from C_AddOns first, falling back to the legacy global — local IsAddOnLoaded = (C_AddOns and C_AddOns.IsAddOnLoaded) or IsAddOnLoaded (same for GetAddOnMetadata). Verified Namespace = "C_AddOns" / Environment = "All" for both functions in the updated AddOnsDocumentation.lua API dump. Also added C_AddOns to .luarc.json diagnostics.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 a BRR_AQ20_ITEMS_TO_MASTER SavedVariable (default false) and GetAhnQiraj20Items / GetAhnQiraj40Items data-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 status line, 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. New BRR_COMMON toggle (config "Distribute Common Items" + /brr common) with commonList / commonsDistributed state and TryToDistributeCommon.

    • 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 on GROUP_ROSTER_UPDATE / PLAYER_ENTERING_WORLD, via the pcall-guarded threshold helper (the event-time call may be blocked as protected; it degrades silently, and manual /brr threshold commands always work). Registered GROUP_ROSTER_UPDATE / PLAYER_ENTERING_WORLD on 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): GiveMasterLoot assigns an entire loot slot, and WoW cannot split a stack during looting (LootSlot is 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, commonsDistributed added to ## SavedVariables:.
  • [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 PoorSetLootThreshold(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 poor added. 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 / masterLootByName were 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 by RebuildMasterDesignations() (called from BijouRR: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 GetValidMasterLootMembers used GetNumGroupMembers() as the candidate-list loop cap — the same anti-pattern MASTER-001 fixed inside DistributeMasterLoot. Master-loot candidate indices are not guaranteed 1:1 with group-member count, so lastGroupMembers (the denominator in "Completed X/N" messages and /brr status) could be undercounted. Fix: loop 1..40 and break on the first nil, matching the corrected pattern elsewhere. Location: BijouRR.lua GetValidMasterLootMembers.

  • [STATUS-001] LOW The per-player summary line of /brr status was garbled — print(... "Coins" .. " Scarabs" .. scarabs) produced output like Playername: 2 Bijous, 1 Coins Scarabs0, missing a separator and placing the "Scarabs" label before its count. Fix: corrected the format string to N Bijous, N Coins, N Scarabs. Location: BijouRR.lua /brr status handler.

  • [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 status and /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 a LICENSE file (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_time declared as local, 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 to logged_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 their TryToDistribute* functions. Without this, the per-loot-window duplicate-receive guard was non-functional for all categories except greens.

  • [MASTER-001] Fixed DistributeMasterLoot named-player branch using GetNumGroupMembers() as the candidate loop cap — the correct pattern is to loop up to 40 and break on nil, matching how the MASTER branch already worked in the same function.

  • [MASTER-001/002] Fixed master loot candidate matching ignoring realm suffixes — on connected-realm clusters, GetMasterLootCandidate returns "PlayerName-RealmName". Extracted a CandidateMatches(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 of DistributeMasterLoot now use this helper.

  • [MASTER-003] Removed hardcoded "pickyminer" fallback master looter name. BRR_MASTER_LOOTER_NAME now defaults to nil on a fresh install and DistributeMasterLoot returns false with 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 IsClassBook function (was a thin wrapper over IsSkillBook with no callers) and the unused itemIsClassBook local variable in the loot loop.

Documentation

  • Added docs/BUGS.md bug tracker documenting all known and resolved issues (PERSIST-001 through DEAD-001).
  • Added CHANGELOG.md populated from full git history.
  • Added docs/Curseforge_Description.html for CurseForge listing.

v1.2.7 — 2026-04-02

Bug Fixes

  • [PERSIST-001] Added BRR_LOGGING to the ## SavedVariables: line in BijouRR.toc. The verbosity toggle was configurable via the config panel and /brr log but was not persisted — it reverted to true (debug spam) on every login.

  • [PERSIST-002] Added explicit false defaults for BRR_VARIOUS_ENABLED and BRR_AQ40_ITEMS_TO_MASTER in BijouRR.lua. Both were listed in SavedVariables and exposed in the config UI but had no initializer, causing nil boolean behaviour on a fresh install.

  • [QOL-001] Changed BRR_LOGGING default from true to false. Debug item-scan output is now opt-in rather than on by default for all users.

Internal

  • Suppressed deprecated diagnostic in the workspace LSP config for GetItemInfo — 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 GetItemInfo to 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