You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Jørgen Lien Sellæg 269852a19a show last buy price in tooltips 4 months ago
.github Initial commit 4 years ago
TradeSkillMaster show last buy price in tooltips 4 months ago
TradeSkillMaster_Accounting show last buy price in tooltips 4 months ago
TradeSkillMaster_AuctionDB show last buy price in tooltips 4 months ago
TradeSkillMaster_Auctioning add scan complete flash toggle 4 months ago
TradeSkillMaster_Crafting update crafting and warehousing 4 months ago
TradeSkillMaster_Destroying Remove libraries handled by Ascension. Add addon icon 2 years ago
TradeSkillMaster_ItemTracker Remove libraries handled by Ascension. Add addon icon 2 years ago
TradeSkillMaster_Mailing Couple of fixes and a new feature for bank/GB (#25) 6 months ago
TradeSkillMaster_Shopping pause auctiondb scan on tab change 4 months ago
TradeSkillMaster_Warehousing add ah restock command 4 months ago
bin delete unused mount script 4 months ago
scripts Changes link_and_go defaults 4 months ago
.gitignore ignore local wtf and omanfred 4 months ago
AGENTS.md update auctiondb sync and accounting graph 4 months ago
README.md show last buy price in tooltips 4 months ago

README.md

TradeSkillMaster (Ascension.gg)

TradeSkillMaster (TSM) is a World of Warcraft addon suite. This fork is tailored for Ascension.gg and includes the core addon plus feature modules.

Modules

Each module lives in its own top-level folder and is loaded by its .toc manifest:

  • TradeSkillMaster (core)
  • TradeSkillMaster_Accounting
  • TradeSkillMaster_AuctionDB
  • TradeSkillMaster_Auctioning
  • TradeSkillMaster_Crafting
  • TradeSkillMaster_Destroying
  • TradeSkillMaster_ItemTracker
  • TradeSkillMaster_Mailing
  • TradeSkillMaster_Shopping
  • TradeSkillMaster_Warehousing

Install (Local)

Copy the desired module folders into your AddOns directory and reload the game:

  • AddOns: /home/zalox/Games/ascension-wow/drive_c/Program Files/Ascension Launcher/resources/client/Interface/AddOns
  • SavedVariables: /home/zalox/Games/ascension-wow/drive_c/Program Files/Ascension Launcher/resources/client/WTF/Account/omanfred/SavedVariables

In-game, use /reload after changes.

Development Notes

  • Lua files use tab indentation.
  • Keep .toc and primary .lua filenames aligned with the module name.
  • If adding files, list them in the module .toc.
  • Versions are tracked in TradeSkillMaster/TradeSkillMaster.toc and TradeSkillMaster_AuctionDB/TradeSkillMaster_AuctionDB.toc.

Custom Price Sources (Full Reference)

TSM price strings can reference built-in data sources and combine them with math. Source names are case-insensitive.

Core sources

  • VendorBuy: Buy from vendor.
  • VendorSell: Sell to vendor.
  • Disenchant: Disenchant value (if available).

AuctionDB sources

  • DBMarket: AuctionDB market value (scan/app historical average).
  • DBMinBuyout: AuctionDB minimum buyout from the most recent scan data.

Accounting sources

  • avgSell: Average sell price.
  • avgBuy: Average buy price.
  • smartAvgBuy: Smart average buy price (uses current holdings to weight recent buys).
  • lastBuy: Last buy price (most recent purchase; also shown under Last Purchased in Accounting tooltips).
  • maxSell: Maximum sell price.
  • maxBuy: Maximum buy price.
  • minSell: Minimum sell price.
  • minBuy: Minimum buy price.

Crafting sources

  • Crafting: Crafting cost.
  • matPrice: Crafting material cost.

Optional addon sources

Available only if the addon is installed and enabled.

  • AucAppraiser: Auctioneer - Appraiser.
  • AucMinBuyout: Auctioneer - Minimum Buyout.
  • AucMarket: Auctioneer - Market Value.
  • AtrValue: Auctionator - Auction Value.

Functions and syntax

  • Math operators: +, -, *, /, ^
  • Money literals: 100g, 50s, 25c, or combined 12g 34s 56c
  • Convert another item: convert(priceSource, itemLink) or convert(priceSource, item:12345)

Function: min(...)

Returns the smallest of the provided values. Ignores invalid values. Example: min(dbmarket, 250g)

Function: max(...)

Returns the largest of the provided values. Ignores invalid values. Example: max(dbminbuyout, 100g)

Function: avg(...)

Returns the average (rounded) of the provided values. Ignores invalid values. Example: avg(dbmarket, dbminbuyout)

Function: first(...)

Returns the first valid value from left to right. Example: first(dbminbuyout, dbmarket, 100g)

Function: check(checkValue, ifValue, elseValue)

Returns ifValue when checkValue is greater than 0, otherwise elseValue. Example: check(dbminbuyout, dbminbuyout, dbmarket)

Function: ifgt(a, b, ifValue, elseValue)

Returns ifValue when a is greater than b, otherwise elseValue. Example: ifgt(dbminbuyout, 200g, dbminbuyout, dbmarket)

Function: ifgte(a, b, ifValue, elseValue)

Returns ifValue when a is greater than or equal to b, otherwise elseValue. Example: ifgte(dbmarket, 500g, 500g, dbmarket)

Function: iflt(a, b, ifValue, elseValue)

Returns ifValue when a is less than b, otherwise elseValue. Example: iflt(dbminbuyout, 50g, 50g, dbminbuyout)

Function: iflte(a, b, ifValue, elseValue)

Returns ifValue when a is less than or equal to b, otherwise elseValue. Example: iflte(dbmarket, 20g, dbmarket, 20g)

Function: ifeq(a, b, ifValue, elseValue)

Returns ifValue when a equals b, otherwise elseValue. Example: ifeq(dbminbuyout, dbmarket, dbminbuyout, dbmarket)

Function: round(value[, step])

Rounds to the nearest step (default 1). Example: round(dbmarket, 1g)

Function: roundup(value[, step])

Rounds up to the nearest step (default 1). Example: roundup(dbmarket, 5g)

Function: rounddown(value[, step])

Rounds down to the nearest step (default 1). Example: rounddown(dbmarket, 5g)

Examples

  • dbmarket * 0.9 (90% of market value)
  • max(dbminbuyout, 100g) (at least 100g)
  • min(dbmarket, 250g) (cap at 250g)
  • ifgt(dbminbuyout, 200g, dbminbuyout, dbmarket) (prefer min buyout if above 200g)

Notes:

  • Sources return values only when their module has data (for example, no AuctionDB scan means empty values).
  • Use DBMarket for stable pricing and DBMinBuyout for recent lows.

Testing

There is no automated test framework. Validate changes in-game by:

  1. Logging in / reloading to verify module initialization.
  2. Exercising the relevant UI workflows.