WoW noUI addon Dragonflight/Wrath of the Lich King Classic 2023
wow addon noUI


Game Version: 1.13.2
Total Downloads: 2,099
Updated: Sep 13, 2019
Created: Aug 20, 2019
download noUIDownload Earlier Versions

Earlier Versions

Name Size Uploaded Game Version Downloads
10.0 release 17.30 KB Sep 13, 2019 1.13.2 751 download noUI 10.0 releaseDownload



Share this:

TL;DR; Hides interface elements when they are not needed. For WoW Classic


No interface is best interface

The standard World of Warcraft user interface is by no means bad, but some players think it could be a bit more understated, a little less in-your-face. And whereas nothing is as minimal, as clean & as out-of-your-face as no UI at all, having no UI is clearly not very usable. And so players install addons that thoughtfully & carefully minimalize their UI, replacing standard UI elements with custom ones that have less visual impact.

This addon takes a different approach to achieve interface Nirvana: Instead of changing how your UI looks, it changes when your UI is visible. The general idea goes like this: Interface elements that can be hidden don't need a minimal look, and if those interface elements are visible seldom enough, then the standard user interface is Good Enough™.

If you end up liking noUI, you can support me on Patreon, which is a big encouragement for me!


1) This addon hides your character portrait unless:

– You have a target
– You are in combat
– Your health or mana/energy is not full
– You have a UI panel open (like the character panel, or your bags, etc.)
– You mouse over your character portrait

2) This addon hides your action bar unless:

– You have a target (except friendly, trivial NPCs)
– You are in combat
– Your health or mana/energy is not full
– You have a UI panel open (like the character panel, or your bags, etc.)
– You are dragging an item or spell (to put on the action bar)
– Your action bar is not on page 1
– You mouse over any part of the action bar

3) This addon also tweaks the following, to compliment your new, nearly UI-free experience:

– Chat: Buttons fade away together with chat background
– Minimap: Small cosmetic change to zone text (see screenshot)
– Minimap: Zoom buttons hidden, since you can now instead use the mousewheel to zoom
– Minimap: Have options to hide minimap as well (see options.lua)
– Raid manager: Is hidden until you need it


You may be familiar with a popular addon that achieve these same things, but with a fantastic UI to boot:

King Kong Frame Fader

For a long time I used Kong to achieve my close-to-perfect UI (following the ideas explained above), but even with a couple manual config file hacks, eventually edge cases cropped up where Kong wasn't enough for me any more. Specifically I wanted fade-out to occur after a small delay instead of immediately after mousing out of the region (a feature that has already been acknowledged by Kong's maintainer), and I wanted two conditions that didn't exist: 1) the presence/absence of other UI panels and 2) dragging an item or spell with the mouse.

Instead of outright imitating Kong–which, again, has just a fantastic UI for in-game configuration–I've instead created "the programmer's Kong".

Since noUI is plugged straight into the WoW API, you can hide/show frames from anywhere in code in any manner possible–with delays, fades, timings, etc., whatever you can code. You are not limited to what a GUI can configure–no interface is best interface–but to make changes to the defaults you will of course need to know a thing or two about addons.


This mod is two different things:

1) Out-of-the-box: If you like the pre-configured features as listed above, then just use noUI as-is. Chances are high you'll like it!
2) Some assembly required: But if you have some ideas of your own, then read on to learn how to use this mod's extremely simple framework to do anything you want:

Well, let me tell you: This mod is barely a mod. The core of it is just a simple framework for keeping track of some lists.

The first list is a list of frames. Frames that are added to this list may be hidden:

ObservedFrames: {
    1) PlayerFrame
    2) MainMenuBar

^ Here the frames PlayerFrame & MainMenuBar has been added to the ObservedFrames list.

In addition, each frame added to this list gets its own list in turn:

ObservedFrames {
    PlayerFrame {
        1) "LowHP"
        2) "LowMana"
    MainMenuBar {
        1) "Mouseover"

^ Here the strings "LowHP" & "LowMana" has been added to the PlayerFrame list, and the string "Mouseover" has been added to the MainMenuBar list.

The list that each frame gets could be called that frame's visibility list. Only if a frame's visibility list is empty will that frame be hidden.

The visiblity list consists of arbitrary strings, like "LowHP", "Mouseover" and "BagsOpen". Each string element in the visibility list is unique, so even if you add several "LowHP" strings to a frame's visibility list, there will only be one "LowHP" element in that frame's visibility list.

And that's pretty much it!

Wherever you want–in any event, function hook, etc.–you just add a string to any frame's visibility list when that frame has a reason to be visible, and then remove that same string again when that reason is no longer actual. For example:

On event PLAYER_REGEN_DISABLED,   add "InCombat"   to PlayerFrame

Now the PlayerFrame's visiblity list is not empty when regen is disabled, which means the PlayerFrame will be visible when in combat.

On event PLAYER_REGEN_ENABLED, remove "InCombat" from PlayerFrame

Then, after removing the "InCombat" string when regen resumes, the PlayerFrame's visibility list may or may not be empty, depending on whether other conditions (strings) has been added to its visibility list elsewhere.



Add a comment