promotional bannermobile promotional banner

BetterBags

A total bag replacement for World of Warcraft, successor to AdiBags!
Back to Files

v0.5.16

File nameBetterBags-v0.5.16.zip
Uploader
CidanzCidanz
Uploaded
Oct 16, 2026
Downloads
22.2K
Size
617.7 KB
Flavors
MoP ClassicClassic TBCClassicRetailForever
File ID
9203339
Type
R
Release
Supported game versions
  • 12.1.5
  • 5.5.4
  • 2.5.6
  • 1.60.1
  • 1.15.9

What's new

BetterBags

v0.5.16 (2026-10-16)

Full Changelog Previous Releases

  • Bank opacity slider, pinned built-in categories kept (#1107), Forever keyring (#1121) (#1133)
    Bank Opacity slider: each bag window now gets its own bag's opacity
    (frame.Owner.kind) in ApplyTheme, UpdateOpacity and window registration;
    before, every window got the Backpack's value and the Bank slider did
    nothing. Other windows keep the Backpack's.
    #1107 (and #1119): DB:Migrate runs on every load and ended with
    PruneOrphanedSectionSort, which dropped every pin whose name was not a
    custom or persisted-ephemeral category: every built-in category ("Armor",
    "Junk", "Other"). It was added in v0.5.5 to heal leftovers of an old delete
    bug; at load a built-in name cannot be told from a leftover, so it is
    removed. Leftovers stay covered (deletes scrub every side table, older
    profiles were already pruned once, and "Remove Category" remains). The #183
    rename now also moves pinned order.
    #1121: the WoW: Forever keyring (bag -1) is read with the backpack when
    addon.isForever and C_ActionBar.ShouldShowKeyring(), the check Blizzard's
    own Forever bags make. As on Classic Era it has no bag slot button and its
    empty slots are not free space; Show Bags numbers it after the last bag
    ("#7" on Forever, "#6" on Era as before).
    Also records #204 (closed, working as intended) and #291 (closed, no longer
    reproduces) in docs/validbugs.md, and updates the rules
    (category-lifecycle.md §3/§5, camelot-forever.md §7), patterns and package
    READMEs.
    Tests written first and seen failing; all 8 guards mutation-tested against
    the full suite; 1761 specs pass on Lua 5.1; luacheck clean; CI test and
    luacheck pass. Tested in game by the maintainer.
  • Bag windows are a drop target (#408), locale item-row font (#175), no "Quest - Quest" (#183), retail TOC 12.1.5 (#1132)
    Fixes three still-valid bugs from the triage of the 20 oldest open bug
    reports, bumps the retail TOC for patch 12.1.5, and updates the docs.
    #408: an item dropped anywhere on a bag or bank window, or the window
    left-clicked while holding one, goes into a free slot of that window's bags
    (before, only a Free Space slot accepted a drop). New util/cursorplacement.lua
    picks the slot: a bag made for the item first (profession bag of its family,
    the reagent bag for crafting reagents, the Classic keyring for keys), else the
    first ordinary bag, backpack first; free slots are read live from the client;
    the bank fills the bank type it shows, active tab first; an item picked up
    from the same window returns to its slot; a refundable item is left on the
    cursor when the bank shows the Warbank; full bags show ERR_INV_FULL /
    ERR_BANK_FULL. bagProto:WatchMouse wires OnReceiveDrag and left-click
    OnMouseUp, and the window never moves while an item is held. Section titles
    add the item to their category with Shift and pass the drop to the window
    without it. Taint: the only move is C_Container.PickupContainerItem, which is
    not protected; the drop writes nothing Blizzard's code reads, never forwards
    to a slot button's OnClick (which could reach the protected
    UseContainerItem), and shows no Blizzard StaticPopup
    (.claude/rules/bag-drop-zone.md). Not yet verified in game.
    #175: the category pane's item rows hard-coded Fonts\FRIZQT__.TTF (roman
    glyphs only); they now use STANDARD_TEXT_FONT, the client's locale font.
    #183: GetCategory no longer repeats a subtype equal to its type ("Quest", not
    "Quest - Quest"); DB:RenameRepeatedTypeCategories moves hidden state and group
    assignments saved under the old names.
    Retail TOC: Interface 120105 for patch 12.1.5 (live October 13, 2026).
    Docs: docs/validbugs.md (the triage; #175, #183, #408 fixed; the cause of open
    #1107), README "Dropping Items Into Your Bags" and category naming, package
    READMEs (util, frames, data, core), rules bag-drop-zone.md and
    category-lifecycle.md §5, font and taint patterns.
    Tests written first and seen failing; every new guard mutation-tested (13 for
    the drop target, 3 for the migration). 1752 specs pass on Lua 5.1; luacheck
    clean; CI test and luacheck pass.

This mod has no additional files