promotional bannermobile promotional banner
premium banner
TOG Profession Master should help you and your guild to know faster which player has which profession and who can craft which item or who has learned which enchantment.

Description

TOG Profession Master — Guild-Wide Profession & Cooldown Tracker for WoW Classic

Stop whispering every alchemist in the guild to ask "is your transmute up?" and stop opening five different alts to remember who knows the recipe you need. TOG Profession Master keeps a live, shared view of every guild member's professions, recipes, and cooldowns — and lets you mail reagents straight to the crafter without typing a single character name.

The Problem

WoW's built-in profession UI shows you exactly one thing: your own professions on the character you're currently logged into. The information you actually need — who in my guild can craft this, whose cooldown is up, what reagents do they need — is scattered across whisper requests and guild-chat noise.

For active guilds with crafting alts, this gets worse fast. Multiple alchemists each on a 24-hour transmute cooldown, four leatherworkers with different specialisations, alts spread across connected realms, and no good way to coordinate without spamming every member.

The Solution

TOG Profession Master uses a hash-then-fetch peer-to-peer sync protocol over the guild addon channel to keep every member's view of guild professions and cooldowns up to date in real time, with near-zero ongoing bandwidth. Recipe metadata (names, reagents, item links) syncs once on first contact and stays cached forever; only crafter membership and cooldown state flow over the wire after that.

Every guildmate's data is relayable — if Alice is offline, Bob's cached copy of Alice's cooldowns can serve them to Carol when she logs in. Cooldown coverage no longer requires the data owner to be online.

Core Features

Guild Profession Browser

  • Master-detail layout: scrollable recipe list on the left, full recipe drilldown on the right
  • Filter by profession (Alchemy, Blacksmithing, Cooking, Enchanting, Engineering, First Aid, Leatherworking, Mining, Tailoring, Inscription, Jewelcrafting)
  • Search box for fast item-name filtering, with persistent filter preference per character
  • Recipe rows show every guild crafter who knows the recipe — online (white), offline (grey), and your own characters (purple, with "You (AltName)" disambiguation when multiple alts know it)
  • Drilldown panel shows reagent list with bag counts, bank stock, and shopping-list quantity controls
  • Right-click a crafter row to whisper them with one click
  • Virtual scrolling for performance on guilds with thousands of recipes

Missing Recipes Tab

  • Pick a character and a profession and see every recipe scroll they haven't learned yet — no more wondering "what am I missing"
  • Each row shows the scroll icon, the skill level required, and where to obtain it (vendor, drop, quest, crafted, container, fishing)
  • Search by name, filter to a single profession, or toggle whether trainer-only scrolls show
  • Shift-click a row to insert the scroll's link into chat; [Bank] button when your guild bank has it in stock
  • Defaults to the currently logged-in character; switch to any tracked alt on your account
  • Smart filtering: rank-up books (Expert / Artisan / etc. for Cooking / First Aid / Fishing) hide automatically once you've outgrown them

Cooldown Tracker

  • Cross-character cooldown panel: every guild member's active and ready cooldowns in one view
  • Tracks transmutes (per expansion), Mooncloth, Salt Shaker, Spellcloth/Shadowcloth, Northrend / Inscription Research, Icy Prism, Titansteel, Dreamcloth (all 5), Truegold, Living Steel, JC daily cuts, Magnificence — with grouped rows for multi-spell cooldowns (click [+] to expand)
  • Two-level filter: pick a profession, then narrow to a specific shared-timer cooldown (Transmute, Mooncloth, Salt Shaker, Dreamcloth group, JC daily cuts, etc.)
  • "Ready Only" filter to hide active cooldowns; ready cooldowns sort A-Z by name for stable ordering
  • Sortable columns (Character, Cooldown, Time Left)
  • Spell tooltip on hover, item tooltip on the reagent
  • Right-click to whisper the cooldown owner
  • One-click [Mail] button per row — opens a pre-composed supply mail to the cooldown owner with the right reagent attached from your bags
  • Multi-reagent transmutes (Arcanite Bar = Thorium + Arcane Crystal) expand to one row per reagent so you can mail or bank-request each independently

Reagent Tracker & Shopping List

  • Add any recipe to your personal shopping list with the "+" button on the recipe row
  • Floating Reagent Tracker window aggregates every reagent needed across all queued recipes — have from your bags, need from the shopping list, color-coded green / yellow / red
  • Reagent Watch list: pin any item ID to track its bag count separately
  • Shopping-list alerts: chat notification when all reagents for a queued craft are available
  • Shift-click reagent names to insert item links into chat

Auction House Scanner

  • Scan AH button on every tab — walks through whatever's relevant to that tab (your shopping list reagents, the cooldown reagents on screen, the missing recipe scrolls) and queries the AH for live listings, throttled at one item per 1.5s so it's rate-limit-safe
  • After the scan, an [AH] button shows up on every row whose item is actually for sale right now — click to jump the AH browse search to that item with no typing
  • Works on the [+] Transmute popup too: each transmute reagent gets its own [AH] button when listings exist, so multi-reagent transmutes like Arcanite (Thorium + Arcane Crystal) get one button per reagent
  • Toolbar button shows Scanning N/M progress while running; click during scan to cancel
  • Auto-clears scan results when the AH closes (listings go stale fast)
  • Supports Vanilla through Mists of Pandaria via the legacy AuctionFrame UI

TOGBankClassic Integration

When the optional TOGBankClassic addon is loaded, TOG Profession Master surfaces guild bank stock everywhere it matters:

  • [Bank] button next to every reagent in the recipe drilldown, cooldown panel, shopping-list expansion, and Reagent Tracker — visible only when the bank actually has stock of that reagent
  • Click [Bank] to open a request dialog, pick the banker, set quantity (capped by the configured maximum-percent), and send the request to TOGBankClassic
  • Auto-detects when TOGBankClassic data isn't loaded yet and refreshes bank buttons once it is

Crafter Online Alerts

  • When a guildmate who can craft something on your shopping list comes online, you get a chat alert with their name
  • Toggle alerts on/off; configure exclusions (login-burst suppression, stealth-mode opt-out)
  • Drives off real OnMemberOnline callbacks from GuildCache-1.0 — not WHO polling

Item Tooltips

  • Hover any item in your bags, the AH, a vendor, or a chat link, and TOG Profession Master appends a list of guild crafters who know how to make it
  • Includes profession, skill rank, and online status per crafter
  • BoP items skipped automatically

How It Works

v0.2.0 Sync Protocol (Hash-Then-Fetch)

Most guild profession addons broadcast their full data on a timer. With 50 active guildmates each broadcasting 30+ KB every 30 seconds, that's ~1.5 MB of guild-channel traffic per minute even when nothing has changed. TOG Profession Master's v0.2.0 sync protocol does this differently:

  1. L0 broadcast (every 10 minutes) — each peer sends a tiny ~600 B leaf-hash list on the guild channel. The list is differential: only leaves whose content has actually changed since the last broadcast are included. A settled guild generates near-zero traffic.
  2. Mismatch detection — peers compare incoming hashes against their local cache. When a hash differs, they whisper a small handshake to the broadcaster.
  3. Drill-down — for roll-up mismatches (e.g., guild:cooldowns), the broadcaster responds with per-character sub-hashes so the receiver can pinpoint exactly which characters have differing data.
  4. Per-leaf data response — the chosen sender broadcasts only the differing leaf's data on the guild channel (BULK priority). Every peer with stale data for the same leaf merges for free; no per-recipient whisper bottleneck.
  5. Content-aware merge — cooldowns merge with max(local, incoming) per spell, crafter sets union-add for relayed data, recipe metadata preserves richest non-nil per field. Receiving from any peer always converges to the same state, regardless of who sent the data.

Whispers carry only handshake control messages (offers, requests). All bulk data flows on the guild channel where AceCommQueue-1.0 handles throttling. The protocol scales smoothly to 300–500 character guilds with 50–100 concurrent users.

Recipe metadata is treated as immutable

Once any peer has scanned a recipe, its metadata (name, icon, reagents, item link) is hashed into a per-profession recipemeta:<profId> leaf. After initial guild bootstrap, this hash matches across every peer and never re-transfers — freeing all ongoing wire traffic for the dynamic part: who knows what (crafters:<profId>) and what's on cooldown (cooldown:<charKey>).

Multi-Version Support

All Classic versions share one codebase. Version detection via GetBuildInfo() at startup; per-expansion static tables for skills and cooldown IDs; compat shims for C_Container, C_AddOns.IsAddOnLoaded, and trade-skill APIs. Supported interface versions:

  • Classic Era / Anniversary (1.x)
  • The Burning Crusade Classic (2.5.x)
  • Wrath of the Lich King Classic (3.4.x)
  • Cataclysm Classic (4.4.x)
  • Mists of Pandaria Classic (5.5.x)

Slash Commands

  • /togpm — Open the main profession browser
  • /togpm reagents — Open the floating Reagent Tracker
  • /togpm minimap — Show the minimap button
  • /togpm sync — Force a fresh broadcast (bypasses the 10-min debounce)
  • /togpm status — Print sync / comm diagnostic info
  • /togpm versioncheck — Broadcast a version check across the guild and print responses
  • /togpm purge — Open the purge-data dialog (purge all or just one character)
  • /togpm debug — Toggle debug output
  • /togpm help — Show the full command list

Diagnostic commands for advanced users / bug reports:

  • /togpm dumphashes — Print the local L0 hash list for cross-peer comparison
  • /togpm dumpcooldowns [charKey] — Dump stored cooldown bucket for a character
  • /togpm dumprecipe <name> — Dump a recipe's stored fields and full reagent table
  • /togpm forcebroadcast — Force a full (non-differential) hash list broadcast immediately
  • /togpm backfill — Run the reagent itemId backfill pass
  • /togpm spellcache — Print the spellbook name→ID cache

Requirements

  • Ace3 (AceAddon-3.0, AceComm-3.0, AceDB-3.0, AceGUI-3.0, AceTimer-3.0, AceConsole-3.0, AceConfig-3.0, AceLocale-3.0, AceHook-3.0) — auto-installed by CurseForge
  • DeltaSync — data sync library (v2.0.3 / MINOR≥9 required for v0.2.0 protocol). Auto-installed by CurseForge; transitively pulls in AceCommQueue-1.0 and GuildCache-1.0
  • VersionCheck-1.0 — auto-installed by CurseForge
  • WoW Classic Era, TBC, Wrath, Cataclysm, or MoP — all versions supported via compatibility shims

Optional integrations:

  • TOGBankClassic — enables [Bank] buttons everywhere reagents appear
  • GreenWall — cooldown announcements relay to the confederate guild channel

Recent Updates

v0.3.5 (Latest — 2026-05-17) — Profession Browser scroll position no longer snaps to top during guild syncs

  • fix: the recipe list in the Profession Browser was snapping back to the top every few seconds while you scrolled — in any active guild, peers broadcast sync data every few seconds, and each one was triggering a full rebuild of the visible tab. The new scroll widget always starts at the top, so mid-scroll you'd get yanked back. The Cooldowns tab had been fixed the same way earlier; the Profession Browser was the holdout. Your scroll position now persists across syncs. Changing the profession filter or typing in the search box still jumps to the top — that's intentional, since the result set changed.

v0.3.3 (2026-05-04) — Shopping-list widget bleed fix + rank-book filter

  • fix: Missing Recipes tab was listing Expert / Artisan rank-up books even when the character was already past those ranks — First Aid, Cooking, and Fishing all advance via consumable rank books, and the addon had no way of knowing the player had already used them. Now the addon checks the character's skill cap: if you're already at 225, you've obviously used the Expert book; if you're at 300, you've used Artisan; and so on. Books only show as missing when your cap actually needs to go up.
  • fix: shopping-list rows bleeding into other Ace3 addons' UIs — the rows on the Profession Browser tab's shopping list weren't being properly detached when the section was released, so when WoW pooled the underlying widget for re-use by another addon, our rows came along with it and showed up where they shouldn't. Now they're cleanly detached on release.

v0.3.2 (2026-05-04) — Non-Vanilla load hotfix

  • fix: opening the Professions tab caused a Lua error on TBC / Wrath / Cata / MoP clients — the per-version TOC files for those clients were missing every new file added in v0.3.0 (Missing Recipes tab, Auction House scanner, shared widget factories, recipe data files), so loading the addon on those clients silently skipped half of v0.3.0 and crashed when the Browser tab tried to use the missing pieces. All four per-version TOC files now match the Vanilla file list.

v0.3.1 (2026-05-03) — Jewelcrafting / Inscription support + offline-peer chat-spam fix

  • fix: chat spammed with "No player named X is currently playing." whenever guildmates logged out — the addon was trying to whisper sync data to peers who'd just gone offline, and the server's rejection messages were piling up in chat. Now we check whether a peer is online before whispering them, and a chat filter swallows the leftover error messages when the offline check loses the race against the actual log-out. Same pattern TOGBankClassic already uses.
  • fix: Jewelcrafting and Inscription were missing from the Profession Browser dropdown on TBC, Wrath, Cata, and MoP clients — the dropdown was hardcoded to the 9 Vanilla professions. Jewelcrafting now appears on TBC and later; Inscription appears on Wrath and later. Cooldowns and Missing Recipes tabs got the same treatment.
  • improve: profession dropdowns are now version-aware — professions only show up on the client versions where they actually exist. Jewelcrafting hidden on Vanilla, Inscription hidden on Vanilla / TBC, Rogue Poisons hidden on Wrath+ (auto since 3.1). One central list of professions drives every dropdown so the three tabs can't drift out of sync.
  • note: Missing Recipes data for Jewelcrafting and Inscription is not yet curated — the dropdown will show those professions on the right client versions, but the scroll list will be empty until the recipe-scroll database for them is added in v0.3.2.

v0.3.0 (2026-05-03) — Big release: Missing Recipes tab, Auction House scanner, smoother windows

  • feat: new Missing Recipes tab, Auction House scanner with [AH] buttons everywhere reagents appear, per-tab window sizing (Cooldowns / Missing locked, Browser resizable), two-level cooldown filter (by profession then by specific cooldown), and helpful tooltips on dropdown labels and column headers. See the Core Features sections above for details.
  • fix: tooltips from this addon were sometimes appearing in OTHER addons' UIs — rare but real bug caused by how WoW recycles user-interface widgets between addons. The addon's hover handlers now clean up properly so they only fire in our own windows.
  • fix: cooldown tab "jumbled" rows mid-resize — dragging the window narrower made the cooldown rows visibly stack into 2 or 3 lines and snap back when you let go. Columns now stay put smoothly during resize.
  • fix: transmute popup was collapsing multi-reagent transmutes (e.g. Arcanite Bar) back to one row — now correctly shows one row per reagent.
  • fix: enchanting recipes showing as ? <number> in the recipe browser — enchant recipes broadcast from peers sometimes arrived without their spell info attached. The addon now resolves these correctly. Re-run with /togpm backfill if you still see any.
  • improve: Missing Recipes tab is fast — even when a profession has thousands of missing recipes, the list scrolls smoothly. Search keystrokes and filter changes don't lock up the client anymore.

Community

If you have any questions, comments, bug reports, or feature requests, please feel free to reach out on Discord or open an issue on GitHub!