Housing Decor Guide

All 1,690 housing decorations in one addon. Browse every acquirable item, plan vendor shopping routes with built-in waypoints, queue crafting recipes with material tracking, and monitor profit margins — all with account-wide alt awareness.

File Details

Housing Decor Guide v2.38.0

  • R
  • Apr 30, 2026
  • 1.78 MB
  • 11.5K
  • 12.0.5+2
  • Retail

File Name

HousingDecorGuide-2.38.0.zip

Supported Versions

  • 12.0.5
  • 12.0.1
  • 12.0.0

* New: Decorator Profile composite widget — folds the old XPHero +
  DecoratorTitle + TrophyShelf hero band into one full-width card built
  around Blizzard's exact Housing Dashboard level ring (laurel wreath +
  radial XP sweep + leading-edge sparkle flipbook). Verbatim XML port of
  CurrentLevelFrame at native atlas sizes (256×158 host, 130×130 cooldown
  sweep at offset 8/-8, six leaf textures at native useAtlasSize positions
  — DO NOT scale, the radial fill and frame line up pixel-perfect at exact
  Blizzard dimensions). Sweep animates from empty → current XP over 1s
  with InOutQuartic easing on each tab open, replays on Show.
* New: Sticky header strip pinned to TOP of the House tab, above the
  scroll viewport — `Level N · X / Y XP · Slots O / M · Lumber count ·
  +collectible XP` always visible regardless of scroll position. Refreshes
  on the same Aggregator broadcast as the dashboard cards.
* New: Daily bestowed title rotation — 50 squirrel-given titles + Vamoose
  quips ("Twilight Court Architect — Sleeps with one eye open. The other
  is admiring the moonlight." etc.). Deterministic per-day so all alts
  see the same title; rolls at server reset. Persisted via
  HDG_DB.daily.bestowed = {date, index} for downstream rollover detection.
  Disconnected from collection stats — pure date-based rotation.
* New: `/hdg costtest` slash command — validates HDG_VendorDB against
  `entryInfo.sourceText` from C_HousingCatalog.GetCatalogEntryInfoByItem.
  Parses gold (`Cost: 50g`) and currency hyperlinks (`|Hcurrency:NNNN|h`)
  from sourceText, matches against our DB per (itemID, vendor, cid),
  reports per-currency totals (DB-uncoll vs API-uncoll, OK/!! markers)
  plus per-item mismatches and missing-in-DB lines. Output goes to a
  scrollable copy-paste dialog. Discovery: vendor cost lives in sourceText
  as parseable text, NOT as a structured field — Bliz API IS authoritative
  for most current items but UNDER-reports for older WoD-era items
  (sometimes drops AC component, sometimes shows wrong gold). Treat as
  "investigate" not "fix automatically."
* New: `/hdg decordump` (alias for `/hdg dump`) — restored layout-dump
  copy dialog after the v2.38a TestWindow surface retired.
  HDG_HT_LayoutDump module replaces HDG_HT_TestWindow.lua (fewer parallel
  renderers; one render path).
* Fix: HDG_VendorDB validation pass via /hdg costtest. 119 cost mismatches
  resolved across Voidlight Marl (~80 systematic 750→250 / 2500→500 /
  1500→150 drops on Khaz Algar housing vendors), Khaz Algar gold pricing
  (High Tides Ren / Xiao Dan / Len Splinthoof / Founder's Point pricing
  reshuffled). 7 vendor entries with missing currCost fields patched
  (Crafty Palu, Gabbun ×4, The Last Architect, Void Researcher Aemely).
* Fix: VendorDB data integrity — 3 Sin'dorei items (245284 Silvermoon
  Wooden Chair, 245330 Enchanted Blood Elven Candelabra, 251997 Sin'dorei
  Winged Chaise) were misassigned to Materialist Ophinell at Twilight
  Highlands with the wrong currency (Twilight's Blade Insignia 3319).
  Items moved to NEW vendor Dethelin (npcID 250982, Silvermoon City,
  Midnight) at correct Resonance Crystal prices (3000/3000/5000).
* Fix: VendorDB — Second Chair Pawdo (252312) retagged from Orgrimmar
  Classic Horde → Dornogal The War Within Neutral. Nightborne Lantern
  (247908) cost added at this vendor (30g + 50 Order Resources).
* Fix: VendorDB — 11 Apexis Crystal entries normalized from item-token
  format `{{"i",823,X}}` to currency format `{{"c",823,X}}` (Apexis
  Crystal is uniquely both itemID 823 AND currencyID 823; functionally
  equivalent but the validation tooling counts only the "c" form).
* Change: House tab source widgets retired — XPHero, DecoratorTitle, and
  the standalone TrophyShelf widget folded into Decorator Profile (style
  affinity remains as its own slim full-width card). HDG_HT_TestWindow.lua
  also retired (its parallel renderer was a v2.38a debug surface no longer
  needed). Old `/hdg dashboard` and `/hdg dump` slash handlers removed
  from /hdg surface (decordump and dump still work as aliases).
* Change: Design Mode no longer supports drag-to-reorder — reorder via
  the up/down arrows in the Customize picker instead. Resize handles
  (right-edge width snap, bottom-edge height) and the dimension-slider
  gear popover stay. Popover gains a "Reset" button per widget that
  clears that widget's saved overrides only. Font keys (titleFont,
  subFont, etc.) are hidden from the slider list — they are intentionally
  hardcoded for visual consistency and the sliders had no effect.
* Change: TrophyShelf gains optional `showHeader = false` dim — when
  hosted inside the composite, hides the "Trophy shelf X/Y" header.
  Also gains `iconDrop` dim controlling how far icons sit into the wood
  plank (used by composite to place trophies lower on the shelf).
* New: Top $/Lumber widget on House tab — third-width panel, top-5 craftable
  decor by gold-per-lumber, lumber-expansion-coloured names with $/lum chip,
  click row → Goblin tab. Pulls from HDG_GoblinTab profit data via a public
  `GetTopByLumberValue(n)` getter (lazy-computes on first use).
* New: Favorites system — right-click any row in Preview to toggle a star
  (auctionhouse-icon-favorite atlas, layered above row chrome), persists in
  `HDG_DB.favorites` keyed by itemID (survives catalog cache rebuilds).
  "Favorites" filter chip added to the All sub-tag row, after All Decor.
  Scrollable Favorites widget on House tab (mouse-wheel only, no scroll bar)
  — left-click row → Preview tab Favorites filter, right-click → unfavorite.
* Fix: Resolver and Customize picker now auto-append widgets that were added
  AFTER you last saved a layout order, so brand-new widgets appear in both
  the cockpit and the customise panel even when your SavedVar order predates
  them. New widgets land at the end of the list — use the up/down arrows or
  Reset to default to slot them naturally.
* Fix: Decor Currencies panel now colours Midnight currencies (Voidlight
  Marl, Brimming Arcana, Angler Pearls, Illusionary Coin, etc.) in the
  Midnight expansion colour. Earlier the heuristic picked the earliest
  vendor.exp seen, so any currency accepted by a Stormwind/Orgrimmar
  capital-city vendor got bucketed Classic. Explicit currency→expansion
  override added in HDG_ExpansionData for the 33xx Midnight block.
* Fix: HDG_VendorResolver pcall-hardened against 12.0.5 secret-string taint
  when resolving vendor/NPC names via C_TooltipInfo.GetHyperlink. The fault
  is on read/comparison of `tooltipData.lines[i].leftText`, not the call
  itself, so the entire probe is wrapped — falls back cleanly to cached DB
  names instead of cascading the error up through Preview tab tooltips.

* New widgets bound through Aggregator + Registry: A1 Capacity (with B4 Rooms
  sub-line), A2 NextRewards (async), A3 MultiHouse (with secure teleport
  buttons cribbed from VN), B1 HotPicks, C1 CraftableNow, C2 RecentActivity
  (driven by HDG_Settings.craftingHistory), C3 ThemedSets (top closest-to-
  complete from HDG_CollectionDefinitions), C4a LumberWallet + C4b
  DecorCurrency (split, currency IDs auto-extracted from HDG_VendorDB), D1
  persona line (folded into DecoratorTitle), D2 Records + DailyXPTracker
  (default-off until logs are dense enough), A4 Refund footer
* Extracted with v2.37 fidelity preserved: XP Hero (level + decor count +
  collectible-XP callout), DecoratorTitle (title + tier ladder), TrophyShelf
  (alpha-sorted uniques then prey, two-tone header, accent bar), CloseCards
  (smooth bars, yellow titles, "X / Y - N to go (P%)" stat format), Featured
  (now full-width with 4 weekly-rotated mini-features), Source/Expansion
  donuts (Source: % headline + count/total sub; Expansion: count + label;
  Expansion sort uses HDG_ExpansionData.EXPANSION_ORDER)
* New: Aggregator computes `housingNeed[currID]` — per-currency cost to buy
  every uncollected vendor decor, derived from HDG_VendorByItem index +
  VendorDB cost field. DecorCurrency chips render `have / needed` with green
  tint + ReadyCheck-Ready icon when sufficient
* New: chrome modes ("card" / "section" / "none") — the hero band renders
  flat with section dividers, donut/capacity/etc. keep card chrome. Cards
  paint at scheme.panel × 0.6 / scheme.border × 0.3 for v2.37-matching
  layered look. Cyan accent bars (2px) left of every section title.
* New: theme propagation across every cockpit widget — every fontstring goes
  through Theme.ApplyFont (user font + scale), every color reads scheme.text
  / accent / text_dim / success. Hardcoded RGB triplets eliminated except in
  Editor/Placeholder (debug surfaces).
* New: StyleAffinity collapsed to single inline horizontal row in the hero
  band with v2.37 tag-namespace filter (skipTagIDs from
  C_HousingCatalog.GetAllFilterTagGroups drops Expansion/Size groups so
  faction/style tags surface as the dominant aesthetic)
* New: SegmentedBar themed defaults (lit = scheme.success, unlit =
  scheme.border × 0.7), GaugeBar tier colors via scheme.success/warning/error
* New: `/hdg dump` slash command + copy dialog — multiline editbox with
  auto-select for layout dumps. Captures user picker reorderings as
  sequential integer `order` values for round-trip into source.
* New: 2-column Customize panel (was 1-column, 19 widgets fit cleanly now)
* New: `defaultEnabled` field on widget specs — three-state visibility so
  data-light widgets (Records) ship off by default
* New: `/hdg order` + `/run HDG_PrintOrder()` for quick order inspection
* House tab body NOT yet replaced — cockpit still lives only in
  `/hdg dashboard`. Real House tab integration arrives in next commit.

### v2.38a foundations (folded into 2.38.0)

* New: `/hdg dashboard` slash command opens a standalone layout test window
* New: full data-driven layout system (`HDG_HT_LayoutConfig`) with 17 placeholder
  widgets — single source of truth for all dashboard dimensions
* New: pure-math 3-column bin-packer (`HDG_HT_Layout`) with three discrete
  card widths (1/3, 2/3, Full); pixel-clean column math at 270/552/834
* New: Resolver (`HDG_HT_Resolver`) merges config defaults with SavedVar overrides
* New: slide-down customisation picker — toggle widgets on/off, change widths,
  reorder via ↑↓; state persists in `HDG_DB.houseTab.{enabled, order, width}`
* New: visual layout editor (Design Mode toggle) — drag-reorder cards, resize
  handles snap widths, gear-icon dimension popovers with live-preview sliders
* New: `/hdg layout dump` echoes the current effective LAYOUT_CONFIG to chat
  for graduating runtime tweaks back into the source file
* New: `HDG_HT_SegmentedBar` primitive (10-segment fillbar with `solid` and
  `blizzPip` styles) — built but not yet consumed; ready for v2.38b widgets
* Note: the real House tab remains unchanged in this release. v2.38b will
  introduce internal layout patterns and migrate widget rendering into the
  new system.