Intelligent UI visibility management for World of Warcraft 3.3.5a
Your UI appears when you need it, vanishes when you don't. Zero configuration.
Why ZenHUD? • Features • Installation • Usage • Configuration • Architecture
Problem: The default WoW UI clutters your screen during exploration, obscuring the beautiful world Blizzard created.
Solution: ZenHUD serves as an intelligent display driver. It automatically hides your action bars, unit frames, and buffs when they are irrelevant, and instantly restores them when combat starts, you target an entity, or mouse over the UI area.
| Feature | ZenHUD | Manual Hiding | Other Addons |
|---|---|---|---|
| Zero Configuration | ✅ | ❌ | |
| Combat Safety | ✅ Instant (0ms) | ❌ | |
| ElvUI Detection | ✅ Native | N/A | ❌ |
| Performance | ✅ Event-Driven | N/A |
- Combat: UI appears instantly (0ms latency) via
PLAYER_REGEN_DISABLEDevent. - Targeting: UI shows automatically when you select a valid, living target.
- Hover Hotspots: Main maintains invisible "Hotspot" frames over UI areas. When your mouse enters these empty spaces, the UI fades in. No CPU polling required.
- Zone Awareness: Automatically keeps UI shown in Dungeons, Raids, Arenas, and Battlegrounds (Configurable).
- Zero-Polling: Unlike other addons that check
MouseIsOver()60 times a second, ZenHUD usesOnEnter/OnLeavescripts on invisible frames. - FadeOnly Mode: Detects ElvUI and switches to Alpha-channel manipulation to prevent "Action Blocked" taint errors.
- Debounced Zone Checks: Zone changes are debounced (0.6s) to prevent script thrashing during loading screens.
- Download the latest release from the Releases Page.
- Extract to
<WoW Root>/Interface/AddOns/ZenHUD/. - Verify you see
ZenHUD.tocandConfig.lua.
Tip
Action Required: Replace this placeholder with a GIF or Screencast showing ZenHUD in action (e.g., entering combat, targeting a mob).
<img src="https://via.placeholder.com/600x400.png?text=Place+Demo+GIF+Here" alt="ZenHUD Demo" width="100%">
| Command | Arguments | Description |
|---|---|---|
/ZenHUD |
Show help menu | |
/ZenHUD options |
Open GUI settings | |
/ZenHUD toggle |
Enable/disable addon | |
/ZenHUD fade |
<seconds> |
Set animation duration |
/ZenHUD grace |
<type> <sec> |
Set grace period (combat, target, mouseover) |
/ZenHUD character |
Toggle Per-Character settings mode | |
/ZenHUD profile |
save/load <name> |
Manage setting profiles |
/ZenHUD minimap |
Toggle minimap button | |
/ZenHUD status |
Show debug status |
Settings can be managed via /ZenHUD options or Config.lua.
| Option | Default | Description |
|---|---|---|
| fadeTime | 0.8 |
Animation duration in seconds. |
| fadedAlpha | 0.0 |
Opacity when hidden (0.0 = invisible, 0.2 = dim). |
| showOnTarget | true |
Show UI when you have a target. |
By default, ZenHUD keeps the UI always visible in dangerous instances:
- Dungeons
- Raids
- Arenas
- Battlegrounds
ZenHUD manages visibility for the following groups:
View Frame List
| Group | Frames |
|---|---|
| Action Bars | MainMenuBar, MultiBarBottomLeft/Right, MultiBarLeft/Right, PetActionBar, ShapeshiftBar, VehicleMenuBar |
| Unit Frames | PlayerFrame, PetFrame, TargetFrameToT |
| Chat | ChatFrameMenuButton, ChatFrame1 buttons |
| Quest | WatchFrame, QuestWatchFrame, QuestTimerFrame |
| Misc | Minimap, BuffFrame, XPBar, ReputationBar, Bags |
ZenHUD uses a State Machine pattern coupled with Event-Driven inputs.
graph TD;
Events[WoW Events] -->|PLAYER_REGEN| EventHandler;
Events -->|PLAYER_TARGET| EventHandler;
Hotspots[Invisible Hotspots] -->|OnEnter/Leave| EventHandler;
EventHandler -->|Update| State{StateManager};
State -->|Check State| Logic[Visibility Logic];
Logic -- Combat/Target? --> Show;
Logic -- Resting/Grace? --> Show;
Logic -- Else --> Hide;
Show -->|Goal: 100%| FrameController;
Hide -->|Goal: 0%| FrameController;
FrameController -->|Fade Animation| UI[Blizzard / ElvUI Frames];
See CONTRIBUTING.md for development setup and Lua style guides.
MIT License. See LICENSE.