Skip to content

Commit d80a52e

Browse files
author
Mikolaj Graf
committed
docs: update docs for AH protection, Safe Mode, and destruction system
Update CHANGELOG, FEATURES, and CurseForge description with new v3.5 features: AH value protection, Safe Mode template, destruction system v1, centralized AH lookups, and friendly self-test messages.
1 parent 9f12366 commit d80a52e

3 files changed

Lines changed: 143 additions & 24 deletions

File tree

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@
55
### Added
66
- **Tooltip item status** (`showTooltipStatus`, default: on) — Shows ASP classification in item tooltips: "Will sell (quality filter)", "Protected (uncollected transmog)", "On never-sell list", etc. Works for items in bags, equipped gear, and merchant windows. Togglable in Settings > Display.
77
- **Compact mode** (`compactMode`, default: off) — Condensed popup showing item count, total value, per-quality breakdown, and a one-click Sell button. Toggle between compact and detailed views via a button on either popup or `/asp compact`. All filters and protections still apply.
8+
- **AH value protection** (`ahProtectionEnabled`, default: off) — Protects items worth more than a configurable threshold on the AH from being auto-sold. Requires TSM or Auctionator. Popup rows where AH value exceeds a configurable multiplier of vendor price are color-coded, with a tooltip showing "Worth listing: AH Xg, vendor Yg (Nx)".
9+
- **Safe Mode template** — New profile template for new users: grays only, all protections on. Wizard defaults to Safe Mode when no template or profile is selected.
10+
- **Destruction system v1** — Complete rewrite of the auto-destroy feature with separate destroy filters (quality, ilvl, max vendor value), a never-destroy list, countdown confirmation popup, and a bag pressure valve that auto-triggers when free slots drop below a configurable threshold. Items are destroyed one per tick with cursor verification for safety.
11+
12+
### Improved
13+
- **Self-test messages** — API failure messages are now user-friendly and reassuring instead of technical ("Transmog detection paused — Blizzard changed an API. Sell rules are more conservative until updated.").
14+
- **Centralized AH lookup** — TSM/Auctionator price queries consolidated into `ns:GetAHValue()` and `ns:HasAHAddon()`, replacing duplicated code in Popup, PopupFilters, and Overlays.
815

916
### Fixed
1017
- **Bindings.xml parsing error** — Removed invalid `header` attribute from Binding element. The section header is provided by the `BINDING_HEADER_AUTOSELLPLUS` global.

CURSEFORGE_DESCRIPTION.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,14 @@ Lightweight, modular, and self-testing on login so it keeps working through patc
99
## Selling
1010

1111
- **Popup preview** -- sortable columns (name, ilvl, vendor price, AH value), checkboxes, one-click Sell All
12+
- **Compact mode** -- condensed popup showing item count, total value, per-quality breakdown, and a one-click Sell button. Toggle with `/asp compact` or the button on either popup
1213
- **Three sell modes** -- interactive popup (default), one-click, or fully automatic with configurable delay
1314
- **Quality filters** -- gray through epic, each with independent ilvl thresholds
15+
- **Relative ilvl threshold** -- set a single sell threshold as a percentage of your equipped ilvl instead of per-quality sliders
1416
- **Category filters** -- consumables, trade goods, quest items, miscellaneous
1517
- **Expansion and slot filters** -- narrow results by expansion or equipment slot
18+
- **Sell collected transmog** -- optionally sell items whose appearances you've already collected
19+
- **Sell known collectibles** -- optionally sell already-known mounts, pets, and toys
1620
- **Confirmations** -- epic, high-value, and Sell All Junk show a confirmation with item count and gold total
1721
- **Buyback safety** -- highest-value items are sold first so buyback slots hold the most valuable items
1822
- **Dry run** -- preview what would be sold without actually selling
@@ -27,9 +31,12 @@ Lightweight, modular, and self-testing on login so it keeps working through patc
2731
- **Transmog** -- source-level appearance checking; uncollected items are never sold
2832
- **Equipment sets** -- items in any saved gear set are protected
2933
- **BoE** -- unbound Bind on Equip items are protected
34+
- **Warband items** -- optionally protect all warband and account-bound items
35+
- **Mount equipment** -- mount equipment items are protected by default
3036
- **Soulbound-only mode** -- optionally skip all unbound BoE items, useful for dungeon farmers keeping BoE for AH
3137
- **Quest items** -- items in the Quest Items category are protected by default
3238
- **Current expansion materials** -- optionally protect Trade Goods from the current expansion
39+
- **AH value protection** -- protects items worth listing on the AH (requires TSM or Auctionator). Color-coded popup rows show when AH value exceeds vendor price
3340
- **Refundable** -- items in the vendor refund window are skipped
3441
- **Addon hooks** -- AllTheThings and CanIMogIt integration for enhanced transmog detection
3542

@@ -47,6 +54,9 @@ Lightweight, modular, and self-testing on login so it keeps working through patc
4754

4855
## Bag Management
4956

57+
- **Destruction system** -- destroy worthless items when not at a vendor. Separate protection chain, countdown confirmation, cursor-safe one-at-a-time deletion
58+
- **Bag pressure valve** -- auto-triggers destruction confirmation when free slots drop below a threshold
59+
- **Never-destroy list** -- per-item blacklist for destruction, independent from never-sell
5060
- **Bag space guard** -- automatically suggests selling the cheapest junk when free slots are low
5161
- **Stack limits** -- set max quantities per item, excess goes into the sell queue
5262
- **Free slot alerts** -- chat message or on-screen warning when bag space is low
@@ -56,6 +66,7 @@ Lightweight, modular, and self-testing on login so it keeps working through patc
5666

5767
## Tracking
5868

69+
- **Tooltip item status** -- colored status line on item tooltips showing how ASP classifies each item (will sell, protected, on never-sell list, etc.)
5970
- **Session tracker** -- gold/hour calculation in the minimap button tooltip
6071
- **Sale history** -- scrollable panel showing the last 200 sales; shift-click to link items in chat
6172
- **Per-character stats** -- lifetime sales totals visible across alts
@@ -65,7 +76,7 @@ Lightweight, modular, and self-testing on login so it keeps working through patc
6576

6677
## Profiles
6778

68-
- **Built-in templates** -- Raid Farmer, Transmog Hunter, Leveling Alt, Gold Farmer
79+
- **Built-in templates** -- Safe Mode, Raid Farmer, Transmog Hunter, Leveling Alt, Gold Farmer
6980
- **Named profiles** -- save and load settings that persist across sessions
7081
- **Auto-load** -- last loaded profile restores automatically on login
7182
- **Instance auto-profiles** -- auto-switch profiles when entering raids, dungeons, battlegrounds, or open world
@@ -87,13 +98,16 @@ Type `/asp` or `/autosell` for the full command list. Key commands:
8798
- `/asp session` -- View session stats
8899
- `/asp log ui` -- Open sale history
89100
- `/asp keep [id] [count]` -- Set stack limits
101+
- `/asp compact` -- Toggle compact popup mode
102+
- `/asp destroy` -- Destroy eligible junk items
103+
- `/asp neverdestroy add/remove/list` -- Manage never-destroy list
90104
- `/asp wizard` -- Re-run setup wizard
91105

92106
---
93107

94108
## Integrations
95109

96-
- **TSM / Auctionator** -- AH price column in popup
110+
- **TSM / Auctionator** -- AH price column in popup, AH value protection
97111
- **Bagnon / AdiBags / ArkInventory / Baganator** -- junk mark overlays in bag frames
98112
- **AllTheThings / CanIMogIt** -- enhanced transmog protection
99113
- **Leatrix Plus** -- conflict detection

FEATURES.md

Lines changed: 120 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ AutoSellPlus is a World of Warcraft addon that shows a popup when visiting a mer
2121
13. [Stack Limits](#stack-limits)
2222
14. [Value-Based Eviction](#value-based-eviction)
2323
15. [Auto-Repair](#auto-repair)
24-
16. [Auto-Destroy](#auto-destroy)
24+
16. [Destruction System](#destruction-system)
2525
17. [Bag Space Monitoring](#bag-space-monitoring)
2626
18. [Minimap Button](#minimap-button)
2727
19. [Bag Gold Display](#bag-gold-display)
@@ -44,6 +44,9 @@ AutoSellPlus is a World of Warcraft addon that shows a popup when visiting a mer
4444
36. [Quest Item Protection](#quest-item-protection)
4545
37. [Tooltip Item Status](#tooltip-item-status)
4646
38. [Compact Mode](#compact-mode)
47+
39. [AH Value Protection](#ah-value-protection)
48+
40. [Safe Mode Template](#safe-mode-template)
49+
41. [Destruction System](#destruction-system)
4750

4851
---
4952

@@ -390,24 +393,64 @@ Automatically repairs all gear when visiting a repair-capable merchant.
390393

391394
---
392395

393-
## Auto-Destroy
394-
395-
Safely destroy junk items that have no vendor value (or when not at a vendor).
396-
397-
### Behavior
398-
1. Scans bags for destroyable items matching quality and value criteria
399-
2. Respects never-sell list and stack limits
400-
3. Destroys max 5 items per invocation (safety limit)
401-
4. Optional confirmation dialog
396+
## Destruction System
397+
398+
Complete item destruction system for clearing worthless items when not at a vendor.
399+
400+
### Protection Chain
401+
Items pass through a separate destruction protection chain before being eligible:
402+
1. Never-destroy list (manual blacklist)
403+
2. Never-sell list (also blocks destruction)
404+
3. Equipment set items (if `destroyProtectEquipmentSets` enabled)
405+
4. Uncollected transmog (if `destroyProtectTransmog` enabled)
406+
5. BoE items (if `destroyProtectBoE` enabled)
407+
6. Refundable items (always skipped)
408+
7. Quality filter (`destroyMaxQuality`)
409+
8. Item level filter (`destroyMaxIlvl`)
410+
9. Vendor value filter (`destroyMaxVendorValue`)
411+
412+
### Countdown Confirmation
413+
Before destroying, a confirmation popup appears with:
414+
- Red-themed dialog listing items to destroy (up to 10 shown, remainder counted)
415+
- Vendor value being lost
416+
- Countdown timer on the Destroy button (configurable, default 3 seconds)
417+
- Cancel button to abort
418+
419+
### Cursor Safety
420+
Each item is destroyed one at a time (0.3s per tick) with full cursor verification:
421+
1. `ClearCursor()` to ensure clean state
422+
2. `PickupContainerItem()` to pick up the item
423+
3. `GetCursorInfo()` to verify the correct item is on the cursor
424+
4. `DeleteCursorItem()` only if itemID matches
425+
5. Skips with a warning if cursor has wrong item (e.g., player dragging something)
426+
427+
### Bag Pressure Valve
428+
Automatically triggers the destruction confirmation when free bag slots drop below a configured threshold:
429+
- Fires on `BAG_UPDATE_DELAYED` events
430+
- 60-second cooldown between triggers to avoid spam
431+
- Only triggers when destruction is enabled and not already in progress
432+
- Shows the same confirmation popup (never auto-destroys silently)
433+
434+
### Never-Destroy List
435+
Separate per-item blacklist for destruction (independent from never-sell list):
436+
- `/asp neverdestroy add <ItemLink>` — add item to never-destroy list
437+
- `/asp neverdestroy remove <ItemLink>` — remove item
438+
- `/asp neverdestroy list` — show all items on the list
439+
- Also manageable via Settings > Lists > Never-Destroy tab
402440

403441
### Settings
404-
- `autoDestroyEnabled` (default: off)
405-
- `autoDestroyMaxQuality` (default: 0 / Poor only) - max quality to destroy (0-4)
406-
- `autoDestroyMaxValue` (default: 0 / unlimited) - max copper value to destroy
407-
- `autoDestroyConfirm` (default: on) - require confirmation
442+
- `destroyEnabled` (default: off) — enable destruction feature
443+
- `destroyMaxQuality` (default: 0 / Poor only) — max quality to destroy (0-4)
444+
- `destroyMaxIlvl` (default: 0 / disabled) — max ilvl for equippable items
445+
- `destroyMaxVendorValue` (default: 0 / unlimited) — max total vendor value (copper)
446+
- `destroyConfirmCountdown` (default: 3) — seconds before Destroy button activates
447+
- `destroyFreeSlotTrigger` (default: 0 / disabled) — bag pressure valve threshold
448+
- `destroyProtectTransmog` (default: on) — protect uncollected transmog
449+
- `destroyProtectBoE` (default: on) — protect bind-on-equip items
450+
- `destroyProtectEquipmentSets` (default: on) — protect equipment set items
408451

409452
### Command
410-
- `/asp destroy` - trigger item destruction
453+
- `/asp destroy` trigger item destruction
411454

412455
---
413456

@@ -715,6 +758,10 @@ All commands use `/asp` or `/autosell` as prefix.
715758
| `onlySoulbound` | bool | false | Only sell soulbound items, skip all unbound BoE |
716759
| `protectQuestItems` | bool | true | Never sell Quest Items category |
717760
| `protectCurrentExpMaterials` | bool | false | Never sell current expansion Trade Goods |
761+
| `protectMountEquipment` | bool | true | Never sell mount equipment items |
762+
| `protectWarband` | bool | false | Protect warband and account-bound items |
763+
| `sellCollectedTransmog` | bool | false | Sell items with already-collected transmog |
764+
| `sellKnownCollectibles` | bool | false | Sell already-known mounts, pets, and toys |
718765

719766
### Safety & Confirmation
720767
| Setting | Type | Default | Description |
@@ -758,13 +805,25 @@ All commands use `/asp` or `/autosell` as prefix.
758805
| `freeSlotAlertMode` | string | "chat" | Alert mode: "chat" or "screen" |
759806
| `evictionEnabled` | bool | false | Enable value-based eviction |
760807

761-
### Auto-Destroy
808+
### Destruction
809+
| Setting | Type | Default | Description |
810+
|---------|------|---------|-------------|
811+
| `destroyEnabled` | bool | false | Enable destruction feature |
812+
| `destroyMaxQuality` | int | 0 | Max quality to destroy (0-4) |
813+
| `destroyMaxIlvl` | int | 0 | Max ilvl for equippable items (0 = disabled) |
814+
| `destroyMaxVendorValue` | int | 0 | Max total vendor value in copper (0 = unlimited) |
815+
| `destroyConfirmCountdown` | int | 3 | Seconds before Destroy button activates |
816+
| `destroyFreeSlotTrigger` | int | 0 | Free slot threshold for pressure valve (0 = disabled) |
817+
| `destroyProtectTransmog` | bool | true | Protect uncollected transmog from destruction |
818+
| `destroyProtectBoE` | bool | true | Protect bind-on-equip items from destruction |
819+
| `destroyProtectEquipmentSets` | bool | true | Protect equipment set items from destruction |
820+
821+
### AH Value Protection
762822
| Setting | Type | Default | Description |
763823
|---------|------|---------|-------------|
764-
| `autoDestroyEnabled` | bool | false | Enable destruction feature |
765-
| `autoDestroyMaxQuality` | int | 0 | Max quality to destroy (0-4) |
766-
| `autoDestroyMaxValue` | int | 0 | Max copper value to destroy |
767-
| `autoDestroyConfirm` | bool | true | Require confirmation |
824+
| `ahProtectionEnabled` | bool | false | Protect items worth listing on AH |
825+
| `ahProtectionThreshold` | int | 10000 | AH value threshold in copper |
826+
| `ahHighlightMultiplier` | int | 2 | AH/vendor ratio to color-code popup rows |
768827

769828
---
770829

@@ -839,8 +898,9 @@ charStats["Charactername - Realmname"] = {
839898
12. **PopupFilters.lua** - Popup filter logic and smart defaults
840899
13. **ConfirmList.lua** - Confirmation dialog item list panel
841900
14. **Popup.lua** - Merchant popup frame, item row rendering, sell action
842-
15. **Selling.lua** - Auto-sell logic, confirmations, eviction, destruction
843-
16. **Core.lua** - Event handling, sell queue processing, slash commands
901+
15. **Selling.lua** - Auto-sell logic, confirmations, eviction
902+
16. **Destroy.lua** - Item destruction system, countdown confirmation, bag pressure valve
903+
17. **Core.lua** - Event handling, sell queue processing, slash commands
844904

845905
### Event Flow
846906
```
@@ -985,6 +1045,44 @@ The compact popup has independent position and scale saved separately from the f
9851045

9861046
---
9871047

1048+
## AH Value Protection
1049+
1050+
When enabled (`ahProtectionEnabled`, default: off), items worth more than a configurable threshold on the auction house are protected from being auto-sold. Requires TradeSkillMaster (TSM) or Auctionator.
1051+
1052+
### How It Works
1053+
1. During sell evaluation, each item's AH market value is looked up via TSM's `DBMarket` or Auctionator's price API
1054+
2. If the AH value exceeds `ahProtectionThreshold` (default: 1g), the item is protected from selling
1055+
3. In the popup, rows where AH value exceeds `ahHighlightMultiplier` times the vendor price are color-coded in light blue
1056+
4. Hovering a color-coded row shows a tooltip: "Worth listing: AH Xg, vendor Yg (Nx)"
1057+
1058+
### Settings
1059+
- `ahProtectionEnabled` (default: off) — enable AH value protection
1060+
- `ahProtectionThreshold` (default: 10000 copper / 1g) — minimum AH value to trigger protection
1061+
- `ahHighlightMultiplier` (default: 2) — AH/vendor price ratio for popup row coloring
1062+
1063+
### Requirements
1064+
- TSM or Auctionator must be installed and have price data available
1065+
- Without either addon, AH protection is silently skipped (items sell normally)
1066+
1067+
---
1068+
1069+
## Safe Mode Template
1070+
1071+
A new profile template designed for new users or anyone who wants maximum safety.
1072+
1073+
### Settings Applied
1074+
- **Quality**: Grays only (whites, greens, blues, epics all disabled)
1075+
- **Protections**: All protections enabled (transmog, equipment sets, BoE, quest items, mount equipment, warband, current expansion materials)
1076+
- **Confirmations**: Epic confirm and high-value confirm enabled (threshold: 1g)
1077+
- **Mode**: Popup mode with buyback warning
1078+
- **Categories**: Only equippable items (no consumables, trade goods, quest items, misc)
1079+
1080+
### Wizard Integration
1081+
- Safe Mode is rendered first in the wizard template list with a green accent
1082+
- If the user completes the wizard without selecting any template or profile, Safe Mode is automatically applied as the default
1083+
1084+
---
1085+
9881086
## Competitive Analysis & Roadmap
9891087

9901088
AutoSellPlus is already exceptionally comprehensive, covering 90%+ of player wishlists from recent [r/wowaddons](https://www.reddit.com/r/wowaddons/comments/1qtqsze/legacy_vendor_a_simple_addon_to_clean_up_old/) threads (filters, marking, safeties, profiles). It outclasses Aardvark, Scrap, and Legacy Vendor in proactive tools like eviction and loot-marking previews.

0 commit comments

Comments
 (0)