v1.3.0-forever
What's new
Doud's UI
v1.3.0 (2026-10-15)
Full Changelog Previous Releases
- Loot rolls: red icon for unusable items, crisp slot border, roll value on won toasts; journal keeps its saved data when both addons load
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - LFG: keep Blizzard's Listing tab
The first open of a session lands on the Listing page (Blizzard's selectedTab 1) and switching to Browse
from our code would taint the browse dropdowns, so that page keeps its own tab; Browse and Who stay
chained under it.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Character sheet: fade Blizzard's level line, title and 3D model under the sheet
The level line sits in HIGH strata and the model scene drew through: alpha 0 while the sheet shows,
back to 1 when it hides.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Tooltips, nameplates, unit frames, raid frames on shared helpers
FT.Safe/IsSecret/Usable/ClassColor/Money/InitDB/Check/Slider; old migrations and the UnitFrameTweaksBorder
debug global removed; nameplates share one NpcID and CVar pin/restore helper.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Action bars, minimap, character sheet, loot, click-cast on shared helpers
FT.Safe/IsSecret/InitDB/ClassColor/Money/Check/Slider; dead self-ADDON_LOADED wiring and old
migrations removed; one name-list parser; durability summed once; shadowed locals renamed.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - General, Databar, chat, damage meter, Navigation, WorldMap, QuestLog on shared helpers
InitDB, Print, Money, IsSecret/Usable, IsLoaded, ClassColor, Check/Slider; dead self-ADDON_LOADED
handlers and the spellbook one-shot flip removed; General's three dropdown copies merged.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - ReadyUp, LFG, CraftingPanel, QuestItems, UnlearnedSpells, Professions on shared helpers
Shared Safe/IsSecret/Usable/Print/Money/InitDB/Check/Slider; dead code removed (ReadyUp pending,
OnStatus, target-bag path; UnlearnedSpells say; LFG duplicate role atlas table); ns.ScanBags exported.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Split the journal's UI.lua (at Lua's 200-local limit) into 6 files
Widgets, Quests, QuestPage, WorldPins, Dev, plus minimap button and option setters into Options.lua;
UI.lua 195 KB -> 124 KB with ~46 locals free. Tutorial uses the shared drawing helpers. Removed the
DB.macro/DB.ui/v leftovers.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Shared helpers in Core/Panel; drop FontsDB; restore PosKey line
FT.Safe (per-message error reports with stack), FT.IsSecret, FT.Usable, FT.IsLoaded, FT.Print,
FT.Money, FT.ClassColor, FT.InitDB, FT.Check, FT.Slider, with tests. FontsDB migration removed.
Puts back the CharacterSheet lookup in General's PosKey that c48011f dropped by mistake.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Journal map tiles as DXT5 BLP
437 tiles converted from raw 256x256 TGA (111 MB) to DXT5 BLP (30 MB); paths have no extension so the
code is unchanged. Generator: ForeverJournal-tools/allinst/wmoart.py now writes BLP via blp.py.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Review batch 3e: character sheet no longer taints CharacterFrame
Blizzard owns visibility again: no PaperDollFrame.hidden write, no ToggleCharacter post-hook, no
Show/HideUIPanel from hooks, no resizing or reskinning of CharacterFrame, no mode-tab reparenting.
The sheet is a child of CharacterFrame shown with PaperDollFrame; Blizzard's tabs and close button
are moved onto its edge while it shows. Inspect frame sized once at load.
Visible change: Reputation/Currency/other tabs now show Blizzard's own frame look and size.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Review batch 3d: unit frames and tooltips taint fixes
No more calls to Blizzard's PlayerFrame_UpdateStatus / UnitFrameManaBar_UpdateType (we restore the
saved look); target layout restore only after it was anchored; threat line dropped via a UnitThreat
pre-call; short stats, tint and objective indent drawn in the item-line pre-call instead of rewriting
drawn lines; error wrappers report each distinct error once.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Review batch 3c: LFG, crafting panel, quest items taint fixes
LFG filter runs in our own column fill and never writes Blizzard's results; row OnEnter left to Blizzard;
tooltip internals checked once. Crafting panel's skill sort uses its own flat data provider, absolute
width, retail-only parts guarded, click hook per OnClick. Quest item icon follows the cursor in combat
instead of the protected nameplate.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Review batch 3b: action bars, loot, databar, General taint fixes
Action bar colours painted by us instead of re-running Blizzard's UpdateUsable; end caps only moved out
of combat with secret checks and Edit Mode's raw methods; Edit Mode checkbox strip parented to UIParent;
micro menu/bag bar shown via ShowBase; loot frame never parked in Edit Mode; group loot container
restored on reset and only moved out of combat; Databar applies deferred in combat; General guards each
merchant hook and runs each apply step on its own.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Review batch 3a: map providers leave the map in combat, quest tracker fixes
Journal and Navigation world-map providers detach on combat start and re-attach after (no double add
after a combat reload); entrance lookup retries instead of caching a failure; tracker only restores
lines it hid, both tracker hooks install when the campaign tracker is missing; backing texture path
from the addon folder.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Review batch 2e: nameplates, unit frames, tooltips performance
Nameplates: minimal updates per event, one quest-log snapshot, no per-call closures, combo orbs only on
combo changes, title cache per NPC. Unit frames: PlayerFrame hooks coalesced, model reload only when
needed, health re-colour only on tier change. Tooltips: footer search and shift-compare cached, one
Show per item tooltip build.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Review batch 2d: action bars, minimap, inspect, loot, click-cast performance
Totem-only usable re-check on mana ticks, cached quest XP, cooldown poll off when unused, bloom feed
coalesced, targeted slider applies; minimap node runner only with Find Herbs/Minerals on and only on
change, coords only while hovered; inspect filters item-info events; one quest-log walk per loot row,
one bag scan per swap; rez spells checked directly.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Review batch 2c: core, General, Databar, ReadyUp, QuestItems, CraftingPanel, chat performance
Rep lookups cache misses, Databar coalesces XP updates and caches memory, General vendor/aura/XP-bar/
spam/swing/share work only when needed, ReadyUp scans bags only after bag changes, quest item driver
idles, crafting rows cache output quality, chat background moves only geometry per message, settings
search reuses highlights.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Review batch 2b: journal, world map and quest log performance
Map zoom only re-places pins, one journal refresh per quest-log burst, map pins skip while the map is
closed, MapCells cached per floor, fog art only re-applied on change, loot-line and size-grip work only
when needed, world map label throttled and off when unused, quest log rebuilds coalesced.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Review batch 2a: RaidFrames performance
Early return for units without a button, aura scan skipped when nothing is tracked, one health
and one power event, power events only with power bars on, roster bursts coalesced, class colour cached.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Review batch 1: bug fixes
Export skips alt gold and window positions; import rejects wrong types; quest log keeps the user's
auto-track choice and hand-tracked ready quests; exact quest-item name matches; spellbook rescan loop;
ReadyUp reports errors; secret-value and nil guards in tooltips, unit frames, nameplates, action bars;
loot quest-starter uses item:ID; minimap node offset and zone width; click-cast rank binds; character
sheet fills uncached items; licence lists ReadyUp (MIT) and correct font paths.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Tests run under luajit (Lua 5.1 like the game)
Syntax check with luajit + goto grep instead of luac 5.5; fix a 5.3-only // in WorldMap_test,
an order-dependent row pick in Professions_test, and give the Professions table sort an id tiebreak.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Checkpoint: work since 1.2.0 (new modules, journal maps code, backlog features)
Map tiles left out until they are compressed.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include
This mod has no related projects

