File Details
v3.5.0
- R
- Mar 9, 2026
- 96.38 KB
- 40
- 12.0.1
- Retail
File Name
AutoSellPlus-v3.5.0.zip
Supported Versions
- 12.0.1
AutoSellPlus
v3.5.0 (2026-03-09)
Full Changelog Previous Releases
- Remove Bindings.xml from TOC to fix XML parsing errors
WoW auto-loads Bindings.xml by filename. Listing it in the TOC causes
WoW to also parse it as UI XML, which doesn't recognize Binding element
attributes (name, runOnUp), producing Unrecognized XML attribute errors. - Merge branch '3.5'
Conflicts:
.luacheckrc
AutoSellPlus/Selling.lua
- Rewrite CHANGELOG.md with full release history
Organized by release version (v1.0.0 through v3.3.0) plus unreleased
3.5 changes. Each version documents its fixes, features, performance
improvements, and breaking changes. - Update CHANGELOG.md with all recent fixes and features
- Add tooltip fallback for warband detection
GetItemInfo bindType is unreliable for many warband items (reagents,
trade goods). Falls back to scanning tooltip data via C_TooltipInfo
using Blizzard's own localized binding globals (ITEM_BIND_TO_BNETACCOUNT,
ITEM_BNETACCOUNTBOUND, ITEM_ACCOUNTBOUND, ITEM_BIND_TO_ACCOUNT) for
locale-safe detection of all warband and account-bound items. - Include legacy Bind to Account (bindType 7) in warband detection
Many warband items still report as bindType 7 (ToWoWAccount) through
the API despite displaying as "Binds to Warband" in tooltips. Now
detects all three account-bound types: 7, 8, and 9. - Rename warbound to warband to match official WoW terminology
Blizzard uses "Binds to Warband" in-game. Renames protectWarbound to
protectWarband, IsWarbound to IsWarband, and the checkbox label to
Protect Warband throughout. - Add warbound item protection with toggleable checkbox
Detects warbound items via bindType 8 (ToBnetAccount) and 9
(ToBnetAccountUntilEquipped) from Enum.ItemBind. Adds a Protect
Warbound checkbox to the popup filter section. Defaults to off. - Defer AH value lookup to visible items only
Move TSM/Auctionator price queries from BuildDisplayList to
ApplyFilters so they only run for items that pass visibility filters.
Reduces unnecessary pcall overhead for filtered-out items. - Use CanIMogIt constants for locale-safe transmog detection
Replace hardcoded English string matching ("Cannot", "Collected")
with CanIMogIt's own NOT_COLLECTED constants for proper localization
support. Fixes false positives/negatives for non-English clients. - Add cursor verification before destroying items
ClearCursor before pickup, then verify GetCursorInfo matches the
expected itemID before calling DeleteCursorItem. Prevents accidentally
destroying the wrong item if the player is dragging something or the
bag slot changed between scan and destroy. - Add unit tests for GetMaxBagID and GetServerTime helpers
- Add row pooling to confirm list for better performance
Reuses hidden row frames instead of creating new ones each time the
confirm list is shown. Rows are pooled by type (item vs divider) and
recycled on subsequent opens. - Add dynamic bag ID and server time helpers, use throughout
Adds GetMaxBagID() using NUM_TOTAL_EQUIPPED_BAG_SLOTS for reagent bag
support and GetServerTime() with C_DateAndTime fallback. Replaces all
hardcoded bag 0-4 loops and direct GetServerTime calls. Also improves
undo buyback matching to use full item link instead of name substring. - Fix mount equipment classID: Miscellaneous (15) not Armor (4)
Mount equipment items like Light-Step Hoofplates are classified as
Miscellaneous (classID 15, subclassID 6), not Armor (classID 4).
Also adds missing WoW API globals to luacheckrc. - Add mount equipment protection with toggleable checkbox
Mount equipment (Armor classID 4, subclassID 6) is now protected from
selling by default. A Protect Mount Equipment checkbox in the popup
filter section allows toggling this on or off. Also reuses the
GetItemInfoInstant classID in ShouldSellItem and BuildDisplayList to
avoid redundant API calls. - Fix Bindings.xml parsing error by removing invalid header attribute
WoW auto-loads Bindings.xml and the header attribute is not valid on
Binding elements. The section header is already provided by the
BINDING_HEADER_AUTOSELLPLUS global in Core.lua. - Merge pull request #5 from mikigraf/v31
V31 - Fix selling, undo, and auto-destroy safety and correctness issues
Selling safety:- /asp sell and /asp undo now require a merchant to be open
- Guild auto-repair checks CanGuildBankRepair before claiming success
- Priority sell queue sorts ascending so valuable items stay in buyback
- Sell All Junk cancel only reverts force-checked items, not all
- Drag-to-sell checks isMerchantOpen before UseContainerItem
- Sell queue builders propagate quality field for confirm list colors
- Expansion filter cycle uses dynamic CURRENT_EXPANSION
Undo improvements: - Buyback matching iterates in reverse to handle index shifting
- Uses name+count lookup to avoid double-buying same item
Auto-destroy fixes: - Respects equipment set, transmog, BoE, and refundable protections
- Re-verifies bag slot contents before each deletion
- autoDestroyMaxValue=0 now means no limit instead of blocking all
- Stack limit check uses total bag count instead of per-slot count
Instance profiles: - Only fires when instance type actually changes, not every load screen
Other: - Invalidate equipped ilvl cache on PLAYER_EQUIPMENT_CHANGED
- Reuse animation groups in FlashSellButton and undo toast
- Fix wizard template and profile section Y overlap
When saved profiles exist, the template quick-apply section started at
the same Y coordinate as the profile picker, causing visual overlap.
Offset the template section down when profiles are present. - Fix session report net loss missing minus sign
Net gold change was showing losses without a minus sign (e.g. "50g"
instead of "-50g") because the negative prefix was empty string. - Fix transmog source protection and wire up addon integration
IsUncollectedTransmogSource was passing itemID directly to
GetAllAppearanceSources which expects a visualID. Now correctly gets
the appearance ID via GetItemInfo first. Also wire up the previously
dead IsTransmogProtectedByAddon function into ShouldSellItem so
AllTheThings and CanIMogIt collection data is used for protection. - Fix bag item flash texture and animation group leak
FlashBagItem created new textures and animation groups on every call
without reusing them. Use an object pool so textures and their animation
groups are recycled after the flash completes. - Fix ALT+click hook and loot auto-mark item link extraction
ALT+click hook now only marks items when at a merchant or in bulk mark
mode, preventing interference with normal item use (eating food, opening
lockboxes). CHAT_MSG_LOOT handler now correctly extracts the item link
from the chat message string before passing to GetItemInfoInstant and
GetEffectiveItemLevel. - Use dynamic expansion detection instead of hardcoded ID
Replace hardcoded CURRENT_EXPANSION = 12 with GetExpansionLevel() so
trade goods protection automatically tracks the correct expansion
without code changes when a new expansion launches. - Fix keybind support by re-adding Bindings.xml to TOC
The Bindings.xml file was removed from the TOC to fix a loading error,
which left the keybind system completely non-functional. Re-add it so
the Key Bindings UI entry appears and the keybind works.

