promotional bannermobile promotional banner

KeyRoll

Automatically track keystones from party, guild, and friends, then roll to decide which key your group should run.

File Details

KeyRoll v3.2.2

  • R
  • Feb 20, 2026
  • 1.15 MB
  • 24
  • 12.0.1+1
  • Retail

File Name

KeyRoll.zip

Supported Versions

  • 12.0.1
  • 12.0.0

# KeyRoll Changelog

### Code Cleanup & Bug Fixes (2026-02-20)

  • **pcall audit**: Removed 8 unnecessary pcalls that were hiding errors instead of handling them. `UnitFullName()`, `BNGetNumFriends()`, `GetGuildRosterInfo()`, and `Ambiguate()` are all safe in their calling contexts and now use direct calls with nil-checks instead
    - **Kept justified pcalls**: `C_ChatInfo.SendAddonMessage` (prefix may not be registered), `BNSendGameData` (friend can disconnect mid-send), `SendChatMessage` (guild chat can fail during loading)
    - **Fixed duplicate UI code**: Removed roll button hide logic in `Refresh()`
    - **Fixed `_noguild_` persistence**: Guildless characters no longer write an empty `_noguild_` entry to SavedVariables — uses a local table instead
    - **Fixed friend request iteration**: `RequestFriendKeystones()` was calling `BNGetNumFriends()` twice and using the wrong return value for its loop counter
    - **Deduplicated bag scanning**: Extracted `GetCurrentKeystoneFromBags()` helper in Comm.lua, replacing 3 identical bag scan loops across broadcast functions
    - **Removed duplicate exports**: `IsDebug` and `DebugPrint` were exported to `KeyRoll` twice in Utils.lua
    - **Comment cleanup**: Removed ~400 lines of redundant section dividers and comments that restated what the code does
    - **Weekly reset**: Fixed keystones not clearing after Tuesday reset - now properly detects reset and clears all caches (For real this time!.... Maybe)