Details

Addon ID: 26171
Addon Version: 0.4.8
Expansion: 1.60
Upload date: Oct 06, 2026
Last Updated: Oct 06, 2026
Downloads: Less than 100
Website: Source Link

Expansion



Developers

looterz
looterz Creator

Loot's UI

Hide and show interface frames with macro conditionals, on every flavor of World of Warcraft.

Give a frame a rule like [mod:ctrl][combat] show; hide and Loot's UI keeps it out of the way until you want it. Action bars, unit frames, the minimap, bags, the objective tracker, the cooldown manager, the damage meter and more, each with its own rule. On top of the game's own conditionals, LootsUI adds a few of its own, so a rule can react to things the macro system has no idea about.

LootsUI was heavily inspired by DinksUI, which showed how well macro conditionals work for driving what your interface shows. It was built to take that idea further, with a set of custom conditions of its own and support for every flavor of the game.

Getting started

  1. Type /loots to open the options.
  2. Pick a preset from the Presets tab to see it working, or go straight to a tab and write your own rules.
  3. Frames with an empty box are left alone.

Presets overwrite the rules in the active profile, and ask before doing it. See the Profiles section below for keeping settings per character and backing them up.

Commands

CommandResult
/lootsOpens the options
/loots showReveals everything without losing your rules
/loots hidePuts your rules back in charge
/loots toggleFlips between the two, handy in a macro
/loots statusPrints the rule in effect for each frame
/loots debugPrints what LootsUI thinks is true right now

/lootsui works the same as /loots.

Writing rules

A rule is a list of conditions and what to do when they match.

[condition] show; hide
[condition] hide; show

Several bracket groups in a row mean or, so [mod:ctrl][combat] show; hide matches if either is true. Commas inside one group mean and, so [combat,damaged] needs both. The last part of a rule with no brackets is the fallback, which is why show; hide reads as "show when something above matched, otherwise hide".

Your rule is handed to the game's own macro parser, so anything valid in a macro is valid here, including [mod:alt], [flying], [group:raid], [form:1] and [@target,exists]. The full reference is the macro conditionals documentation, with more background in the macro documentation.

LootsUI conditions

These are added by LootsUI. Mix them with the game's own conditionals freely, use them inside the same brackets, and put no in front of any of them to invert it.

Combat

ConditionTrue when
[lastcombat]You are in combat, or left it fewer than eight seconds ago
[lastcombat:15]You are in combat, or left it fewer than the given seconds ago
[recentcombat]The same as [lastcombat:8], for rules that read better without a number

The game's own [combat] cuts off the instant a fight ends. These keep a frame around for a moment afterwards, so the cast bar, cooldowns or a damage meter do not vanish while you are still looking at them. Use [nolastcombat:30] to mean "well out of combat".

Health

ConditionTrue when
[damaged]Your health is below maximum
[damaged:70]Your health is below 70 percent

Retail and World of Warcraft: Forever sometimes keep health and resource numbers back from addons, in PvP matches for instance. While they do, [damaged] and the resource conditions read as false rather than guessing, and /loots debug says the value is hidden by the game. On Forever the numbers are hidden most of the time, so build rules there on [recentcombat] and the game's own conditionals instead.

Resources

ConditionTrue when
[resource]Your resource is below maximum
[resource:90]Your resource is below the percent you give
[noresource]Your resource is completely empty
[fullresource]Your resource is full

Resource means whatever your character is running on at that moment, mana, rage, energy, focus or runic power, so one rule covers every class. It follows a druid through its forms, reading energy in cat and mana in caster.

Target

ConditionTrue when
[hastarget]You have something targeted
[notarget]You have nothing targeted

Location

ConditionTrue when
[instance]You are in an instance
[instance:raid]You are in an instance of that type, such as party, raid, pvp or arena

Some things you might expect here are already in the game and need nothing from LootsUI: [stealth], [resting], [mounted], [flying], [indoors], [group:raid] and [form:1] all work as written. For death, [dead] reads your target, so use [@player,dead] for yourself and [@player,nodead] for alive. Prefer these where they exist, since the game evaluates them itself and can hide frames outright.

The Help tab in game lists the same set, generated from what is actually installed, so it is never out of date.

Examples

RuleEffect
[combat][mod:alt] show; hideAction bars during a fight, or whenever you hold alt
[recentcombat][mod:alt] show; hideThe same, but they linger eight seconds after the fight
[lastcombat:20] show; hideDamage meter during a fight and for twenty seconds after
[mod:ctrl][combat][damaged] show; hidePlayer frame when it matters, gone when it does not
[hastarget] show; hideTarget frame only when you actually have a target
[combat][resource:35] show; hideResource bar in combat or when you are running dry
[stealth,nocombat] hide; showA clean screen while you are sneaking around
[resting,nomod] hide; showQuiet interface in town, back with a modifier
[instance:raid] show; hideRaid frames only inside raids

Recommended setup

The Presets tab has a Retail preset and a Forever preset, the setup LootsUI is built around. Action bars and the player and target frames are there while you fight and for eight seconds after, everything else appears while you hold alt, and the objective tracker steps aside during a fight. Forever is the same with the beta's report button kept hidden. The Forever setup as an import string, for the Profiles tab:

LootsUI:1
fade.mode=fade
fade.inDuration=0.1
fade.outDuration=0.1
rule.actionBar1=[combat][lastcombat][mod:alt][stealth][hastarget] show; hide
rule.actionBar2=[combat][lastcombat][mod:alt][hastarget] show; hide
rule.actionBar3=[mod:alt] show; hide
rule.stanceBar=[mod:alt] show; hide
rule.playerFrame=[combat][lastcombat][mod:alt][resource] show; hide
rule.targetFrame=[combat][lastcombat][mod:alt][hastarget] show; hide
rule.objectiveTracker=[combat] hide; show
rule.microMenu=[mod:alt] show; hide
rule.bags=[mod:alt] show; hide
rule.experienceBar=[mod:alt] show; hide
rule.reputationBar=[mod:alt] show; hide
rule.issueReporter=hide

Drop the last line for Retail, or leave it, since a line for a frame the client does not have is skipped. The same goes for the Classic clients.

Fading

Frames can snap or fade. Fading is the default, a tenth of a second each way. The Fading tab changes that and the timings, and any frame can be set to its own Instant or Fade regardless of the default.

One thing to know: most frames go transparent rather than fully hidden, so they can still catch a mouse click in the space they occupied. Only protected frames, the action bars and unit frames the game guards during combat, are hidden outright, and only when their rule is built from the game's own conditionals with fading off.

That split is not a preference, it is what the game allows. A protected frame can only be hidden in combat by the game itself, which is why those go through a rule the game evaluates. Every other frame is left exactly where the game put it and faded, because moving it under an addon frame taints the game's own code on modern clients and breaks things like the damage meter.

Fades interrupt cleanly, so a frame caught half way through fading out reverses from where it is rather than starting over.

Profiles

Every character starts on the shared Default profile, so a change made there follows all of them. To give one character its own settings, open the Profiles tab and branch: the new profile starts as a copy of what you have and only shows up for that character, so the rest stay on Default.

The same tab has the rest of the toolbox: create a profile with a name of your own, duplicate the active one, rename it, reset it, or delete one you no longer want. Copy settings from pulls another profile's setup into the active one, including another character's, handy when two characters share similar UI needs. Exports turn the active profile into plain text you can save anywhere or send to a friend, and imports load one back in. Anything destructive asks first: importing, copying over, resetting, renaming, deleting and applying a preset all confirm before touching your rules.

Keybinding

Binding a key means hovering the button you want to bind, which is impossible if the bar is hidden. So while the game's Quick Keybind Mode is open, LootsUI reveals everything, and hands control back to your rules the moment you leave it. Nothing to turn on.

This follows the mode itself rather than any particular addon, so it works whether you got there from the Key Bindings panel or with QuickKeybindMode's /kb.

Supported clients

ClientTOCInterface
RetailLootsUI.toc120100
World of Warcraft: ForeverLootsUI_Camelot.toc16001
Classic Era, Season of Discovery, HardcoreLootsUI_Vanilla.toc11509
Anniversary (Burning Crusade)LootsUI_TBC.toc20506
Wrath Titan ReforgedLootsUI_Wrath.toc38001
Classic (Mists of Pandaria)LootsUI_Mists.toc50504

A frame that does not exist in the client you are playing is greyed out in the options rather than causing errors.

World of Warcraft: Forever runs the modern interface, so everything Retail has is there to hide, including the Cooldown Manager and the Damage Meter. While it is in beta the game also loads Blizzard's Issue Reporter, a report button parked on screen with no option to move or hide it. It has a rule of its own under Interface, so hide alone puts it away and [mod:ctrl] show; hide brings it back when you actually want to file something.

If Questie is installed, its tracker is covered by the Objective Tracker rule alongside the game's own, so one rule handles both.

Credits

Heavily inspired by DinksUI by Duenke, which is where the idea of driving frame visibility with macro conditionals comes from. LootsUI exists to carry that further: custom conditions such as [recentcombat], [damaged], [resource:90], [hastarget] and [instance] that the macro system has no equivalent for, and one addon that runs on Classic Era, Anniversary, Wrath Titan Reforged, Mists Classic, World of Warcraft: Forever and retail alike.

You must be logged in to leave a comment.

Comments (0)