Customisable unit frames for WoW Forever. Make your health bars, portraits and cast bars look the way you want, with built-in previews to help you see each change.
- Style your player, pet, target, target's target, focus and focus target separately, or copy your player style to another frame.
- Choose fonts, colours, borders, bar sizes and portraits.
- Show health, power, absorb shields, cast bars, buffs and debuffs.
- Light the end of a health bar while incoming heals go past full health (Overheal), using Blizzard's shield overflow glow.
- See how much damage your DoTs will still deal on your target or focus (DoT damage): one coloured marker per DoT inside the health bar, and a targeting-frame skull in the decoration stack (or a red tint) once they will finish it. DoT damage settings include icon placement and separate stripe opacity. Estimates use a build-pinned spell catalogue and learn your real tick sizes as you fight, independently of your client language. Base estimates exclude gear and talent adjustments until real ticks are learned.
- See your latency or spell queue window at the end of your casts, and an optional global cooldown strip on the player cast bar.
- Add a standalone player castbar with optional main-hand, off-hand and ranged swing timer rows, positioned independently in Edit Mode.
- Show rogue and druid combo points on the target frame, or on the player frame.
- Add a cropped buff/debuff icon row, alongside or instead of external icons.
- Make dispellable debuffs stand out with an optional glow in their debuff type colour (Debuff glow): a soft halo, or the animated proc flash from Blizzard's action buttons.
- Filter buffs and debuffs by crowd control, big or external defensives, important buffs, or your own heals and shields.
- Hide Blizzard's own player buff and debuff sections, each on its own toggle. Changes wait until combat ends.
- Show crowd control and defensives over the portrait or on a frame edge, with crowd control on top.
- Add raid markers, PvP flags, elite and rare icons, the resting zZz, and ready check indicators.
- Fade frames when someone is out of range.
- See your threat on your target or focus (Threat glow): a soft, optionally rounded halo in green, yellow, orange and red as your threat % climbs (or by threat status for tanks), from the stage you choose. A Threat % text, on its own or in a custom text, can take the same colours.
- Move your frames in the game's Edit Mode, with snapping to help line them up.
- Keep several profiles, and share your style with others as a text string.
Type /uf wb in chat to open the settings window, called the Workbench.
Use /uf or /uf help for the command list. The addon prints a short
hint when it loads; developer performance commands are under /uf perf help.
The minimap icon opens the Workbench too. Right-click it to hide it, or
switch it under Global Settings > General. /uf minimap brings it back.
The setting applies to every character on the account. Titan Panel and other
broker displays show the same launcher.
Choose a frame under Unit frames, then adjust its appearance. The preview lets you try things like low health, shields, buffs and ready checks without waiting for them to happen in game. Use Static for a still preview or Animated to see changes over time. Appearance changes also update your actual frames.
Use the search field to find settings across all frames, or select a feature page and its local section. Search opens and highlights the matching control. The scope header shows which frames an edit affects; source labels explain inheritance. Preview controls live under Preview only, and the preview can be collapsed to give settings more room.
Use Global Settings to adjust inherited defaults. Development builds also include a Developer tools component gallery for testing; those demonstrations do not change your unit settings.
New to the addon? Getting started (/uf welcome, or the button at the
top of the Workbench) lets you pick one of four preset looks with live
previews, adjust font, textures, border, colours, portraits and size, and
switch on castbars and timers. It saves the result as a new profile, so your
previous look stays one switch away.
To move frames, open the game's Edit Mode. If you want matching frames, start with your player and use Copy player style under Layout & border on the others. You can still customise each one afterward.
Under Profiles, you can create, copy, switch, delete or reset profiles, export your style as a text string, and import a string someone shared with you.
See the settings guide for individual options and examples.
ClickGrid adds a party and raid panel where you can cast spells by clicking group members. Choose your spells and mouse buttons, including combinations with Shift, Ctrl and Alt.
It includes member targets, buffs and debuffs, role icons and ready checks. You assign the healing spells yourself; if you use Clique, Clique handles the clicks instead.
/ufcg— open ClickGrid settings./ufcg bindings— choose your click spells./ufcg onor/ufcg off— enable or disable the panel.
The panel normally appears when you are in a group. Turn on Show when solo in its settings to try it on your own. Move it through Edit Mode.
ClickGrid is experimental. Its Hide Blizzard party and raid frames setting optionally hides the native group frames while ClickGrid is enabled. See the ClickGrid guide for more details.
Download the UnitFrames-….zip attachment from the Releases page. Release ZIPs include the supporting libraries and fonts; you do not need to download those separately. If no release is listed yet, the first bundle has not been published.
Extract the ZIP into your Forever client's Interface/AddOns folder. It
contains five addon folders: UnitFrames, UnitFrames_Workbench,
UnitFrames_Media, UnitFrames_ClickGrid and UnitFrames_Onboarding. Keep
the first two for frames and settings. The extra fonts, ClickGrid healing
panel and the Getting started guide are optional.
Restart the game and enable the addons on the character selection screen.
On your first login, Getting started walks you through picking a preset
look, the options that matter most and the extras you want. Afterwards,
/uf wb opens all settings and /uf welcome reopens the guide.
Use the attached UnitFrames-….zip, rather than GitHub's Source code archives or Download ZIP button, which contain source without dependencies.
This addon is being developed for WoW Forever. Other WoW versions have not been verified.
See DEVELOPMENT.md for setup, tests, the code map and implementation notes.
For optional performance diagnostics, /uf perf reports loaded addon memory
and profiler metrics. /uf perf watch 60 observes a bounded window;
/uf perf combat arms a report for the next complete combat, including counter
and profiler threshold deltas; /uf perf cancel stops either observation.
Reports use session peaks and recent averages, not combat-only CPU timings.
Outside combat, /uf perf measure units actively
measures a unit refresh; clickgrid, preview and schema are also supported.
/uf perf measure auras isolates native aura container/button creation and
dispel border registration. Like measure create (a ClickGrid preview), it
retains engine widgets until reload; use fresh reloads for comparable runs.
Diagnostics do not load Workbench and stay off until requested.
For an automatic out-of-combat baseline, run /uf perf suite baseline with
the native addon profiler enabled. It measures schema resolution and unit
refreshes, plus ClickGrid refreshes if that addon is already prepared. Each
operation gets two discarded warmups and ten recorded calls, spaced across
frames at least 0.1 seconds apart. Keep your settings, targets and preview
state stable during the run. Combat, roster changes, settings edits and
profiler deactivation stop the suite; /uf perf cancel also stops it.
/uf perf suite report shows the latest suite result, including its completion
status, median/slowest timings, allocation summaries and total call counts.
The bounded structured report in UnitFramesDB.global.perfSuiteReport also
contains individual samples, exclusive phase costs, deallocations, client and
addon version/commit metadata, loaded addons, profile/settings, group size,
Workbench state, and before/after profiler snapshots. /reload writes it to
the normal UnitFrames.lua SavedVariables file; each suite attempt replaces
the previous report, including cancelled or failed attempts. Development
copies may have an unspecified commit in their TOC metadata.
Compare runs with the same client, profile, unit/group and preview conditions.
These are synchronous refresh costs; deferred rendering and real combat work
need separate observations with /uf perf combat. Creation tests (auras
and create) remain separate because their engine widgets survive release
until reload. The suite does not create synthetic combat or load extra addons.
/uf logs shows the last 10 addon-owned errors and 20 general diagnostic
entries, retained across reloads in UnitFramesLogs with Unix timestamps.
/uf logs clear clears them. Caught aura restyle failures and active measurement
results/failures are recorded; this does not replace a global Lua error reporter.
/uf dots echoes the DoT damage tracker's decisions (casts, ticks, drops) to
chat, to check its estimates in play; /uf dots reset forgets the tick sizes
it has learned.
Original UnitFrames code and documentation are source-available under the PolyForm Noncommercial License 1.0.0. You may use, share, modify and reuse them for noncommercial purposes, retaining the license and attribution. Uses outside the license's permitted purposes require separate written permission from the author. See NOTICE.txt for attribution, license scope and the additional permission for LGPL compatibility.
Bundled libraries and Roboto fonts retain their own licenses. Blizzard artwork is supplied by the game client. See third-party notices for credits, license locations and release packaging requirements.