promotional bannermobile promotional banner

BetterBags

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

v0.5.14

File nameBetterBags-v0.5.14.zip
Uploader
CidanzCidanz
Uploaded
Oct 2, 2026
Downloads
49.1K
Size
539.0 KB
Flavors
MoP ClassicRetailClassic TBCClassicForever
File ID
9033055
Type
R
Release
Supported game versions
  • 12.1.0
  • 5.5.4
  • 2.5.6
  • 1.60.1
  • 1.15.9

What's new

BetterBags

v0.5.14 (2026-10-02)

Full Changelog Previous Releases

  • Fix load crash on WoW: Forever 1.60.1 (70170): treat WOW_PROJECT_CAMELOT as retail (#1117)
    WoW: Forever build 1.60.1 (70170) added
    Blizzard_ProjectConstants/Camelot/ProjectConstants.lua (loaded only on the camelot
    game type), which sets WOW_PROJECT_CAMELOT = 18 and WOW_PROJECT_ID =
    WOW_PROJECT_CAMELOT. Earlier builds reported WOW_PROJECT_MAINLINE.
    core/constants.lua derived addon.isRetail from WOW_PROJECT_ID == WOW_PROJECT_MAINLINE
    alone, so on 70170 isRetail went false and the Classic branch built const.BANK_BAGS
    with [Enum.BagIndex.Bank] as a key. Camelot's Enum.BagIndex is retail-shaped and has
    no Bank member (Characterbanktab = -2, Keyring = -1), so the addon died at load with
    "core/constants.lua:162: table index is nil".
    Fix:
    • addon.isRetail is now true for WOW_PROJECT_MAINLINE or the Camelot project. Every
      other flavor gate in the addon reads addon.isRetail, so Forever is back on the
      retail paths it ran before 70170.
    • addon.isForever is now true from either the TOC flag set by core/forever.lua
      (still the only signal on pre-70170 builds) or the Camelot project ID.
    • The check is nil-guarded (WOW_PROJECT_CAMELOT ~= nil): WOW_PROJECT_CAMELOT only
      exists on the camelot game type, and nil == nil would otherwise be true wherever
      both globals are undefined (including the spec environment).
      Tests (spec/core/constants_spec.lua, "client flavor detection (WOW_PROJECT_ID)"):
      the 70170 Camelot project with Camelot's real Enum.BagIndex loads without error and
      resolves to retail + Forever with retail-shaped bank tables and no warbank; the
      project ID alone sets Forever; pre-70170 (mainline + TOC flag) still works; live
      retail and Classic Era detection are unchanged. The first two failed with the exact
      reported "table index is nil" before the fix.
      Also: add WOW_PROJECT_CAMELOT to .luacheckrc read globals, rewrite the detection
      section of .claude/rules/camelot-forever.md (it said no project ID could identify
      Forever, which 70170 made untrue), and update core/forever.lua and core/README.md.

This mod has no additional files