Changelog

Patch notes

What changed in each EbonholdHub release — newest updates first.

v2.0.3

Latest

Auto-Pick Log now has its own minimap button and control panel — no slash commands needed. Save, clear, or inspect picks in two clicks.

New

  • Auto-Pick Log panel — a new sub-addon EbonholdHubPickLog adds a minimap button that opens a small panel showing how many offers were recorded this session, with buttons to save the log, clear it, or print the last 5 picks to chat
  • Save log from minimap — left-click the minimap button to open the panel; right-click to save and reload instantly without any slash commands
  • Full save path shown — after saving, the chat and panel footer display the exact file path (WTF/Account/.../SavedVariables/EbonholdHubPickLog.lua) so you can locate the log file easily
  • Included in addon ZIP — EbonholdHubPickLog is now bundled inside the downloadable archive alongside the main addon; no separate install needed

v2.0.2

Bundle import fix — bundles are no longer lost when pasting an export code from the website.

Fixed

  • Bundle import from website — bundles were lost when copying an export from the website into the addon; Build.NewObject was not copying the echoBundles field, causing all bundles to be silently dropped on every import

v2.0.0

Rank VI affixes are here — pick picker now shows all six ranks. Completely redesigned affix window, live catalog from game data, and two echo pool stability fixes.

Affix Rank VI

  • All 25 ranked affixes now support Rank VI — Iron Will VI, Ironhide VI, Arcane Mind VI, and the rest
  • The rank picker shows buttons I through VI and grays out ranks the affix doesn't have, so you never pick a rank that doesn't exist
  • All 41 weapon affixes now have correct spell IDs so their icons load on first login without needing the extraction panel open

Live affix catalog

  • The addon now builds the affix list directly from game data on login — new affixes and new ranks appear automatically without waiting for an addon update
  • The static catalog is kept as a fallback in case game data isn't available yet

Affix picker redesign

  • Completely reworked window to match the site design: accent header, stylized search bar, icon rows with rank range labels, weapon affix badge
  • Rank buttons now highlight the rank you've selected and gray out ranks the affix doesn't have
  • Custom close button replacing the default WoW × button

Bug fixes

  • Fixed "memory allocation: block too big" crash that could happen when opening the Echoes tab with a large echo pool
  • Removed the 120-icon cap from the unassigned echo pool — all echoes now display regardless of how large the pool is

v1.9.9

Echo Bundles — define combo groups in your tier list. When the main echo drops, every echo in the bundle becomes the highest-priority pick for Auto Pick, so you can build the combo without thinking about it.

Echo Bundles — what they are

  • A bundle is a group of 1–4 echoes that work better together than they do apart. You pick one as the main echo and the rest as support echoes.
  • Example: you want both Sentries and Exposed Heart in every run. Create a bundle with Sentries as main and Exposed Heart as support — if Sentries drops, Auto Pick will treat Exposed Heart as your top-priority echo until you have it.
  • Bundles live in the Echoes tab of your build. Look for the Bundles section under the tier rows.
  • Add a bundle with the + New Bundle button. Drag an echo from any tier row into the main slot, then drag support echoes into the 2–4 support slots.
  • Bundle strips are fixed-width (4 icons wide). Drag them left or right to change priority — the leftmost strip fires first.

How the priority boost works

  • When your main echo drops for the first time, Auto Pick treats every support echo in that bundle as if it were in the bundle's tier (S-bundle or A-bundle), even if you put those echoes in B or left them unassigned.
  • The boost is above every regular S-tier echo — bundle echoes become the single highest-priority target until you have them all.
  • The main echo itself also gets a boost so Auto Pick picks it eagerly the moment it appears, which triggers the whole combo.
  • If the main echo hasn't dropped yet, nothing happens — the support echoes score normally.
  • Once you pick a support echo, the boost for that specific echo stops. Other support echoes in the same bundle still get the boost.

Quality-specific bundle slots

  • By default, a bundle slot matches any quality of the echo — Common, Uncommon, Rare, or Epic all count.
  • If you want only a specific quality to trigger or receive the boost, drag a quality-coloured icon into the slot. The icon border shows which quality is required — no extra indicator needed.
  • Example: you want Rare Hardened Resolve as the main. Drag the Rare version into the main slot. The bundle will only activate when a Rare Hardened Resolve drops — Common and Uncommon versions are ignored.

Max picks on bundle slots

  • Every slot in a bundle has a max-picks badge in the bottom-right corner, same as regular tier icons.
  • Click the badge to cycle: x1 → x2 → x3 → x* (unlimited).
  • x1 means Auto Pick stops boosting that echo after you pick it once, even if you'd technically want a second copy.
  • x* (unlimited, the default) means it always boosts, useful for echoes you'd stack multiple times.

One echo, multiple bundles

  • The same echo can appear in several bundles at the same time. For example, Sentries can be the main of Bundle 1 and a support in Bundle 2.
  • If multiple bundles are active at once, the leftmost bundle card wins — its echoes score higher than the echoes of cards to its right.
  • Drag bundle cards left and right to set which combo the addon should try to complete first.

Viewing bundles in build overview

  • The read-only build viewer (My Build tab and public catalog) now shows a Bundles section in the Echoes tab.
  • Each bundle card shows the main echo and its support echoes with ownership highlighting — echoes you already own this run glow normally; ones you still need are dimmed.

Export / import

  • Bundle data is fully included in your build export code. Share a build with bundles to the catalog or via the website and everything comes across.
  • Import a build from the catalog, from the website, or by pasting a code — bundles are restored automatically.

Bug fixes

  • Fixed: bundle main echo was sometimes rerolled instead of picked when it appeared early in the run.
  • Fixed: Auto Pick could prefer a negative-scoring echo over a positive-scoring repeat echo. Now it only takes the desired echo if its score is actually positive.
  • Fixed: ClearAll (reset build) did not clear bundle data — bundles from the old build could bleed into a freshly reset build.
  • Fixed: importing a build from the catalog did not copy bundle data — newly imported builds lost their bundles.
  • Fixed: syncing from a public catalog build did not update bundle data on the local build.

v1.9.8

Right-click context menu on echo icons in the tier list, and a new Owned filter in the echo pool that matches your Echo Journal.

Right-click menu on echo icons

  • Right-click any echo icon in the Unassigned pool to open a context menu — no more dragging one by one
  • "Send to F tier" — moves just that quality variant to F
  • "Trash all unassigned" — sends every quality of that echo that isn't already in a tier straight to F. Any quality you've already dragged to S/A/B is left alone
  • Right-click an echo already in a tier row (S/A/B/C/F) to get "Trash all unassigned" and "Remove from tier"
  • Menu closes on any click outside it

Owned filter in echo pool

  • New "Owned" checkbox in the Unassigned Echoes window, next to My Class
  • Shows only echoes you have a learned tome for — mirrors the Echo Journal "Known tomes only" filter exactly
  • Backed by PerkService.GetDiscoveredEchoes() — the same data source the Echo Journal uses
  • Works together with the quality buttons, My Class checkbox, and search

v1.9.7

Improved echo pick logic, performance optimisations, and a handful of bug fixes.

Pick logic improvements

  • Echo scoring is more consistent — the same echo in the same situation now always produces the same result regardless of order
  • C-tier decisions are faster and more decisive — the advisor brain runs cleaner comparisons when all three offers land in C
  • Synergy scoring better accounts for echoes that have overlapping tags — fewer borderline calls

Performance

  • Reduced memory allocations during Auto Pick evaluation — less garbage collection pressure mid-run
  • Description parsing results are now fully cached — the game no longer re-scans spell tooltips on every pick window
  • Echo tag lookups are batched per window instead of computed per echo individually

Bug fixes

  • Fixed a case where reroll budget could drop to zero unexpectedly on the first pick window of a run
  • Fixed echo names with special characters not matching their manual tags in certain locales
  • Fixed Auto Pick occasionally skipping the evaluation step after a rapid banish sequence

v1.9.6

The biggest update yet — complete UI overhaul to match the website design, a full 500+ echo intelligence rewrite, smarter Auto Pick, and a critical stability fix that stopped the game from freezing after death.

Complete interface redesign

  • Every tab in the build editor now matches the website — same card layout, same fonts, same colors. Looks like one product, not two
  • Build editor (Overview, Affixes, Talents, Gear, Echoes, Auto Pick, Advisor) — all rebuilt from scratch visually while keeping every button, slider, and drag-drop working exactly as before
  • My Build viewer updated to match: class gradient header, stat grid, tabbed echo tier list, cleaner affix list
  • Description moved to its own tab in both the viewer and editor — no longer buried in the sidebar
  • Auto Pick style selector redesigned as visual cards with descriptions — you can actually tell what each mode does without guessing
  • New Lucide icons throughout: sidebar, nav bar, toolbar buttons, toast notification
  • Toast notification redesigned — lives in the corner, shows tier labels (S / A / Banish / Reroll) with charge bars, auto-dismisses cleanly

Echo intelligence — 500+ abilities analysed

  • Every echo in the game now has tags describing what it actually does: damage school, stat bonuses, mechanics (DoT, proc, channel, pet, AoE), and whether it requires melee, ranged, or spell casts
  • Tags come from two sources — hand-tuned entries for important echoes and automatic parsing of spell descriptions. Both are now in sync
  • Shadow Priests won't get Holy Brand. Arcane Mages won't get Frost Brand. Enhancement Shamans won't get caster-only echoes. The system now understands which abilities make zero sense for your spec
  • School Brand echoes (Holy, Shadow, Frost, Fire, Arcane, Nature) each have a correct class and spec allowlist — non-matching specs get them blacklisted immediately
  • New hazard echoes (Blighted, Battlefield, Hunting, Sanctified Hazard) correctly gated to the classes that have the abilities they boost
  • Arcane Bond analysed: boosts pet Spell Power — useful for Warlock, Frost Mage, Shadow Priest, Elemental Shaman. Blacklisted for specs with no SP-scaling pet
  • Fixed ~18 echoes with apostrophes in their names (Archmage's Mark, etc.) that were silently losing their manual tags due to a character encoding mismatch
  • Fixed class-variant echoes (e.g. Death Knight - Arcane Bombardment) now correctly inherit their base echo's tags
  • Removed 25 duplicate echo entries that were overwriting each other and causing wrong scores
  • Spellweave fixed: was incorrectly picked for Shadow Priests. Now correctly tagged as a healing-caster echo and blacklisted for pure DPS

Auto Pick — smarter rerolls and better C-tier decisions

  • Auto Pick no longer blows all your rerolls in the first few levels. Smart mode now saves roughly ⅓ of remaining rerolls for later when good echoes are more likely to appear
  • C-tier Common echoes are always rerolled when you have rerolls — quality matters. The system no longer saves a Common C just because it marginally fits your class
  • Quality-aware synergy override: Rare and Epic C-tier echoes with strong synergy (score 14+) are worth keeping — Common ones are not. The threshold scales automatically by quality
  • Fixed: Auto Pick could get stuck after a banish, requiring a /reload to resume. No longer happens
  • Fixed: after dying and starting a new run, the pick state now fully resets — no leftover choices or stuck evaluation from the previous run
  • Logbook refreshes correctly when a new run starts — no more seeing the previous run's picks after death

Stability — no more freezes after death

  • Found and fixed the root cause of client freezes and disconnects after accepting death in Project Ebonhold
  • The addon was making dozens of expensive spellbook scans per frame immediately after death due to an event that fires 20–30 times in that moment — all batched and debounced now
  • Removed a dangerous hook on the server's death-acceptance API that could interfere with the run-end flow and cause disconnects
  • Prevented the Auto Pick timer from trying to query the server for echo offers 2 seconds after a run ended — that call against a finished run was causing disconnects
  • Two internal APIs replaced: WotLK does not have C_Timer.After — all delayed calls now use the correct WotLK-compatible frame method

v1.9.5

Bug reports on the website — submit from the addon or the site after logging in.

Bug reports (website)

  • New /report-bug page — title, description, addon version, Discord username, optional Lua error
  • Reports notify our Discord channel and appear in the admin panel
  • You must be logged in on the website to submit

Report bug (addon)

  • Report bug button on the welcome screen and in the left sidebar
  • Opens the website form in your browser (via ebonhold.dll when available)
  • Addon version is pre-filled in the URL

v1.9.4

Six locked echo slots after the Project Ebonhold patch, Echo Journal loadout import, and Auto Pick toast fixes.

Six locked echo slots

  • Locked slot count is now 6 (was 5) — read from PerkService / Perks.maximumPermanentEchoes, fallback 6
  • Existing builds with 5 slots migrate automatically on load
  • Export/import, scoring, catalog, build form/overview, and the website stay in sync at X/6
  • Build list sidebar is wider and locked icons are more compact so all six fit

Echo Journal loadout import (EBH1:…)

  • Import Build accepts Echo Journal export strings (EBH1:…), not just full export codes
  • Paste from Echo Journal is intercepted — loadout imports into a new build without manual copy into Hub
  • Imported echoes show correct tier/quality via loadoutEchoSpellIds
  • Catalog and preview understand both export formats

Auto Pick toast fixes

  • Toast no longer gets stuck after the echo pick window closes
  • Auto-dismiss ~2s after choices disappear (max 45s), even when the toast was pinned
  • Fixed hover on child frames (parent OnLeave firing too early)
  • Pin pauses the timer during an active pick window; toast still closes once the window ends

Browser links (ebonhold.dll)

  • Open on website and Echo Map links try EbonholdOpenURL via ebonhold.dll first
  • If the DLL is unavailable, copy-link behavior is unchanged

Other

  • Session History — debounce and cached best-by-name, less lag on refresh
  • Build Overview — correct quality/spellId display for imported loadout echoes

v1.9.3

Auto Pick now thinks like a real player — and Smart mode is the new default. Switch your builds to Smart for the best results.

Important — switch to Smart mode

  • Open your build → Auto Pick tab → set Auto Pick Style to 4 — Smart (Best)
  • New builds already start on Smart. Older builds may still be on Normal — change it once and you're set
  • Smart is the mode we tuned with real playtesting: reroll bad offers first, save banishes for later, don't waste freezes on mediocre picks

Auto Pick — plays like you, not like a calculator

  • When three echoes appear, the addon follows the same order a good player would: locked echo first → banish F-tier trash → reroll weak rolls → banish duplicates only when rerolls are gone → freeze a strong runner-up → pick the best left
  • Early in the run it spends rerolls freely to fish for better offers. Later it gets stingy with banishes and saves them for duplicate echoes you already have
  • It won't chain-banish weak C-tier echoes while rerolls are still available — that was the #1 complaint from testers, and it's fixed
  • Freezes are reserved for real decisions: runner-up must be A or S tier, not random B-tier filler

C-tier picks — it finally thinks like you

  • Before: when all three echoes were unassigned (C-tier), Auto Pick simply grabbed the highest quality — purple beat green, even if the echo was useless for your class
  • Now: every echo is tagged — damage schools, stats, mechanics, class fit. Rogues want Agility and poison, warriors want Strength and physical, mages want spell schools — each class has its own DNA
  • When three C-tier echoes land, the addon runs the same brain as Echo Advisor: reads your class, spec, stat priorities, and build synergies, then scores each offer like a player would
  • Wrong-class junk gets penalized hard. A Nature Brand on a rogue? Filtered out. Strength Training on an agility class? Loses to Agility Boost. Quality only breaks ties when two echoes are equally good fits
  • The result feels human: it picks what you would pick if you actually read the three options — not whatever glows purple

How tiers work (simple version)

  • S — must-have echoes you always want. Auto Pick treats these as jackpot picks
  • A / B — strong and nice-to-have. Smart mode rerolls if the best offer is below B
  • C — unassigned echoes. This is where the new intelligence kicks in — see above
  • F — never pick. Auto Pick banishes these immediately when they show up

Echo Advisor & smarter picks

  • Advisor class and spec now come from your build Overview — change them once on the main page, Advisor follows automatically
  • Stat booster echoes (Strength Training, Agility Boost, etc.) pick the right stat for your class — no more Strength on rogues
  • School Brand echoes (Nature Brand, Frost Brand, etc.) are filtered by class — rogues won't be offered nature-only brands anymore
  • Default stat priorities are pre-filled per class and spec; customize in Advisor if you want

Under the hood

  • Hundreds of echoes carry hand-tuned tags plus auto-parsing from names and descriptions — the filter knows what each ability actually does
  • Class blacklists cut school-specific brands, wrong resources, and role mismatches before scoring even starts
  • C-tier scoring shares one engine with the Echo Advisor tab — change stat priorities in Advisor and Auto Pick follows
  • Per-window reroll budget (~4 on Smart) so it doesn't reroll forever on one bad roll
  • Toast notifications update live during rapid rerolls and banishes

v1.9.2

Performance fix — Auto Pick debugger off by default; settings moved to Auto Pick tab.

Performance

  • Auto Pick debugger is now disabled by default — it was logging every pick to SavedVariables and causing lag
  • Use /ebh debug only when you need to troubleshoot auto pick

Auto Pick settings

  • Global timing controls (action delay, toast duration, opacity) moved into the Auto Pick settings tab
  • Removed the separate About popup

v1.9.1

Welcome screen polish, custom branding, and sidebar fixes.

What's new

  • Redesigned the in-game home screen with a cleaner layout
  • Added custom addon and minimap icons
  • Fixed sidebar button sizing and spacing
  • Compact quick actions and getting-started steps

v1.9.0

Echo Advisor, affix tracking, cleaner build view, and smarter Auto Pick.

Affix tracking

  • Recommended Affixes now shows what you already have vs what you still need — learned, in bags, or on gear
  • Counter format: 2 need, 5 have — 7 / 12 slots

Cleaner build view

  • Removed the old Stats and Missing tabs — they duplicated info and added clutter
  • New Echoes tab: full tier list (S / A / B / F) with Have / Need for each echo
  • Simpler layout overall — less jumping between tabs

Smarter Auto Pick

  • Auto Pick respects your tier list more reliably
  • Quality matters within tiers, F-tier echoes get banished, repeat handling is cleaner

Echo Advisor

  • New Advisor tab when editing a build — ranked echo recommendations for your class and spec
  • Open a build → Advisor tab → Echo Recommendations window on the side
  • Each echo is scored by class & spec, description tags (fire, crit, strength, etc.), and synergies with echoes in your S/A tiers
  • Drag stats (Strength, Haste, Crit, etc.) into priority tiers on the left — higher = more important
  • Click Apply Tiers to auto-fill the Echoes tab with a ranked S/A/B/F list (Epic first, then by score)
  • Tweak anything you disagree with on the Echoes tab — Advisor is a starting point, not a lock-in
  • ~S / ~A on a badge = estimated tier (not manually set yet)
  • Hover any row for a tooltip explaining why it was recommended
  • F tier in Advisor = echoes you probably don't want — Have still reflects your collection, not pick priority

v1.8.0

What's new

  • Loot Tracker — pops up when a BiS item drops in group loot. Shows item icon, who rolled what, highest roll, and who wins. Stays open until loot is resolved. Multiple BiS drops = one card each
  • Auto-Need — button next to Auto Pick in your build tab. Automatically rolls Need on your BiS items when they drop

Fixes

  • Echoes tab header now shows the full description text as a proper info panel
  • Unassigned Echoes window: filter buttons no longer overlap the search field
  • Symbols like ×1 / ×2 / ×∞ on echo badges and close buttons no longer show as ?

v1.7.0

Added

  • Quality-aware echo tiering — assign Common, Uncommon, and Rare versions of the same echo to different tiers (e.g. Ember Spark Common → C, Ember Spark Rare → B). Auto Pick uses the right tier for the quality that drops
  • Full affix list — all affixes now available in the affix planner

Fixed

  • Critical: opening a build to edit could wipe all echo tiers and save an empty list. Tiers are now always preserved when you open a build for editing

v1.6.0

Auto Pick completely reworked — tier list replaces the old 0–100 weight system.

How tier pick works

  • S — best echoes, picked first
  • A — good, picked if no S available
  • B — decent, picked if no A available
  • F — never picked (always banished when offered)
  • C — everything else, picked as last resort
  • Position within a tier matters — higher in the list = higher priority when scores are equal

What's new

  • Max picks per echo — click any icon and choose ×1 ×2 ×3 ×∞ (e.g. Adaptive Power ×1 = never picked again once taken)
  • Aggression slider (1–5) on Auto Pick tab: Conservative → Aggressive control over banish/reroll spending
  • Smart freeze — S+A+B offered → freezes A, picks S (C tier is never frozen)
  • Logbook — change an echo's tier from run history by clicking its icon
  • Toast shows S / A / B / Skip / Repeat instead of numbers
  • Quality in C tier — yellow beats green, but C never outscores B
  • My Class Only filter in the echo pool now works correctly

v1.4.2

Auto Pick — smarter echo rolls

  • Skip repeats — echoes you already took this run are skipped (great for Adaptive Power)
  • Weight 0 — never preferred; banished when possible
  • Freeze runner-up — e.g. scores 90 / 60 / 0 → freezes 60, picks 90
  • Saves charges — won't burn banish/reroll when a good pick is already on the board
  • Toast shows Skip / Owned instead of penalty numbers
  • Run tracking fixed — new run no longer treats old account echoes as already picked

v1.4.0

Best Gear — multiple loadout sets

  • Up to 8 gear sets per build (Main, Set 2, …)
  • Switch sets from the chip bar under Best Gear
  • Edit mode: RMB rename · + add empty set · Shift+RMB delete
  • Export/import keeps all sets

Current release: v2.0.3

Download v2.0.3