v0.5.14
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.
- addon.isRetail is now true for WOW_PROJECT_MAINLINE or the Camelot project. Every
This mod has no additional files

