GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - Mapkov2/MidnightSimpleUnitFrames: Custom unit, party and raid frames for World of Warcraft: WoW Forever, WoW Midnight (Retail), Classic Era, The Burning Crusade Classic Anniversary, and Mists of Pandaria Classic.

BranchesTags
Open more actions menu

Latest commit

 

History

2,826 Commits
2,826 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
MidnightSimpleUnitFrames
MidnightSimpleUnitFrames
 
 
MidnightSimpleUnitFrames_Options
MidnightSimpleUnitFrames_Options
 
 
tools
tools
 
 
.gitignore
.gitignore
 
 
CHANGELOG.md
CHANGELOG.md
 
 
CHANGELOG_6.5_DRAFT.md
CHANGELOG_6.5_DRAFT.md
 
 
CLASSIC_PROTOTYPE.md
CLASSIC_PROTOTYPE.md
 
 
MSUF_6.0_FULL_CHANGELOG.md
MSUF_6.0_FULL_CHANGELOG.md
 
 
README.md
README.md
 
 
VERSION
VERSION
 
 

Repository files navigation

Midnight Simple Unit Frames logo

Midnight Simple Unit Frames (MSUF)

A customizable unit frame addon for all five supported World of Warcraft clients: WoW Forever, WoW Midnight (Retail), Classic Era, The Burning Crusade Classic Anniversary, and Mists of Pandaria Classic.

Download MSUF on CurseForge Download MSUF on Wago Addons Join the MSUF Discord

MSUF version 6.5 World of Warcraft Midnight, WoW Forever and Classic Latest GitHub commit

Supported WoW versions

WoW client Interface versions Frame availability
WoW Forever 16001 Unit, party and raid frames
WoW Midnight (Retail) 12.0.7, 12.1.0, 12.1.5 Unit, party, raid, Mythic Raid and arena frames
WoW Classic Era (Vanilla) 1.15.9 Unit, party and raid frames. Focus and boss frames are unavailable.
The Burning Crusade Classic Anniversary 2.5.6 Unit, party, raid and arena frames. Boss frames are unavailable.
Mists of Pandaria Classic 5.5.4 Unit, party, raid and arena frames

One MSUF package covers all five clients. Player, Target, Pet, Pet Target, Party and Raid frames are available on each. Download MSUF on CurseForge or Wago Addons. For a manual installation, download the packaged ZIP from GitHub Releases. Type /msuf in game to set up your frames.

What is MSUF?

Midnight Simple Unit Frames (MSUF) replaces Blizzard's unit and group frames with layouts you can customize. Set up your player, target, pet, party and raid frames, then adjust their castbars, auras, health bars, colors and fonts. Focus, boss, arena and Mythic Raid frames depend on your WoW client.

MSUF is made for players who want clear combat information, extensive visual control and a lightweight event-driven runtime. The full configuration UI loads only when requested.

Signature per-frame Fill Direction: MSUF lets each Unit Frame fill its Health and Power bars horizontally from left to right or right to left, or vertically from bottom to top or top to bottom. You can mirror your Player and Target frames or give each frame a different layout.

Basic features

  • Dedicated Pet and Pet Target frames on all five clients
  • Custom Player, Target, Focus, Focus Target, Pet, Pet Target, Target-of-Target, Boss and Arena frames
  • Party, Raid and Mythic Raid group frames
  • Configurable health, power, absorb and heal-absorb displays
  • Per-frame horizontal and vertical Health/Power fill directions in all four directions
  • Player, Target, Focus, Boss and Arena castbars
  • Buffs, debuffs, defensive auras, private auras and spell indicators
  • 2D and class-icon portraits with multiple shapes and placements
  • Custom name, health, power, status and castbar text
  • Class colors, reaction colors, custom colors, gradients, fonts and textures
  • Aggro, dispel, purge, range, role, leader, raid-marker and status indicators
  • Class Power displays for class resources
  • Full Edit Mode positioning, previews, snapping and layer controls
  • Profiles, specialization switching and profile import/export
  • Searchable options, guided setup and recovery tools
  • Optional LibSharedMedia and Clique integration

Feature highlights

Arena Frames are available on Midnight (3 opponents), TBC Anniversary and Mists Classic (5 opponents). Classic Era and WoW Forever have no arena frames. Pet and Pet Target are supported across all five clients.

Area Highlights
Unit Frames Player, Target, Focus, Focus Target, Pet, Pet Target, Target-of-Target, Boss and Arena frames with configurable health, power, text, portraits, colors, textures, layers and status indicators. Every frame can fill its Health and Power bars horizontally or vertically in either direction.
Group Frames Party, Raid and Mythic Raid layouts with role/status indicators, range fading, spell indicators, healer tools and native private-aura support.
Auras 3 Blizzard-native 12.1 aura containers on Mainline and a scan-based aura backend on the Classic flavors, custom spell matching, per-lane filters, icon shapes, cooldown text, growth/layout controls and portrait tracking.
Castbars Player, Target, Focus, Boss and Arena castbars with interrupt feedback, channel support, configurable text/icons, rounded styling and secret-safe timing paths.
Edit Mode Live frame positioning, draggable elements, previews, snapping, layer controls and direct navigation to the matching setting.
Profiles Specialization-aware profiles, copy tools and robust import/export including migration from legacy 5.x profiles.

More included

  • Configurable Class Power displays, including an optional Guardian Druid Ironfur tracker
  • SharedMedia textures and fonts and Clique compatibility
  • Searchable, load-on-demand options with guided setup and recovery tools
  • Twelve included locales: English, German, French, Spanish, Italian, Portuguese, Russian, Korean and Simplified/Traditional Chinese
  • Performance-oriented event routing designed to stay quiet when features are disabled

Install and open

  1. Install MSUF through CurseForge or Wago Addons.
  2. For a manual installation, keep both packaged folders together in the client's Interface/AddOns folder. One package serves every supported client; WoW picks the matching TOC:
    • MidnightSimpleUnitFrames
    • MidnightSimpleUnitFrames_Options
  3. Reload the game and type /msuf to open the configuration menu.

The Core addon runs normally without opening Options; the Options companion is loaded on demand. The in-game Assistant was retired in 6.5: if an older build left a MidnightSimpleUnitFrames_Assistant folder in Interface/AddOns, delete it (an app update removes it for you).

Compatibility

WoW clients See Supported WoW versions and the client matrix.
Version 6.5, shared by all supported clients
Main command /msuf
Optional integrations LibSharedMedia, Clique and WagoAnalytics

Developer APIs

Only APIs documented in this section are stable integration contracts. Arbitrary MSUF_* globals, frame registries, runtime namespaces and saved variables are implementation details.

MSUF.API.Nicknames V1 lets another addon provide display names for MSUF unit and group frames without frame hooks. It is event-driven: there is no polling, ticker or idle OnUpdate; providers and nickname refreshes never run in combat. Changes reported in combat are coalesced and applied once after PLAYER_REGEN_ENABLED.

local OWNER = "YourAddon"
local PRIORITY = 50
local MSUF = _G.MSUF
local API = MSUF and MSUF.API and MSUF.API.Nicknames

local function ResolveNickname(unit, nativeName, fullName)
    local nickname = YourAddon:GetNickname(unit)
    return nickname ~= nativeName and nickname or nil
end

local function SetNicknameProviderEnabled(enabled)
    if not (API and API.GetVersion() >= 1) then return end
    if enabled then
        API.RegisterProvider(OWNER, ResolveNickname, PRIORITY)
    else
        API.UnregisterProvider(OWNER)
    end
end

local function NotifyNicknamesChanged(unit)
    if API and API.IsProviderRegistered(OWNER) then
        API.NotifyChanged(OWNER, unit)
    end
end

Add ## OptionalDeps: MidnightSimpleUnitFrames when MSUF should load before the provider. RegisterProvider(owner, resolver, priority) accepts an optional numeric priority; higher priorities run first. Use UnregisterProvider(owner) when the integration is disabled. Call the enable function once after loading the provider's persisted state, and call the change notification with the changed unit token. Omit the unit only for bulk database changes or enabled-state changes that affect every displayed name.

Edit Mode provider integration

MSUF_EditModeAPI V1 lets another addon expose its own movable frames inside MSUF Edit Mode. The provider keeps ownership of frame creation, saved positions, profiles, anchors and protected-frame operations; MSUF supplies the mover, selection, grid/snap, arrow nudge, Undo/Redo and Save/Discard shell.

Feature-detect and register after adding the same optional dependency:

local EditMode = _G.MSUF_EditModeAPI
if not EditMode or EditMode.GetVersion() < 1 then return end

local ok, reason = EditMode.RegisterElements("YourAddon", {
    {
        id = "main",
        label = "Your Addon Frames",
        group = "Your Addon",
        order = 100,

        getFrame = function()
            return YourAddon.GetMovableContainer()
        end,

        getPosition = function()
            local point, relativeToName, relativePoint, x, y = YourAddon.GetPosition()
            return {
                point = point,
                relativeToName = relativeToName,
                relativePoint = relativePoint,
                offsetX = x,
                offsetY = y,
            }
        end,

        setPosition = function(position, changeReason)
            return YourAddon.SetPosition(position, changeReason)
        end,

        -- Optional links/actions shown by the MSUF-owned popup.
        openSettings = YourAddon.OpenSettings,
        resetPosition = YourAddon.ResetPosition,
    },
})

if not ok then
    print("YourAddon: MSUF Edit Mode registration failed: " .. tostring(reason))
end

Each id is stable within its owner and represents one independently movable frame or container. A provider may instead implement the advanced transaction callbacks captureState, restoreState, and movePosition when a simple position table is insufficient.

Notify MSUF only after an event changes availability or geometry:

MSUF_EditModeAPI.RefreshElement("YourAddon", "main")
-- or refresh every registered element owned by the addon:
MSUF_EditModeAPI.RefreshOwner("YourAddon")

These are cold event notifications, not per-frame APIs. Registration installs no polling, ticker, global hook, or idle OnUpdate. Configuration writes are rejected during combat, and providers must enforce their own protected-frame rules inside callbacks. Dynamic teardown uses UnregisterElement("YourAddon", "main") or UnregisterOwner("YourAddon").

Support development

If MSUF improves your UI, you can support continued development through any of the links below. These are the same official links shown inside the MSUF Dashboard.

Support MSUF on Patreon    Support MSUF with PayPal    Support MSUF on Ko-fi

Patreon · PayPal · Ko-fi

Community and feedback

Join the MSUF Discord    View the MSUF source on GitHub

  • Ask questions, share profiles and report gameplay issues on the MSUF Discord.
  • Report reproducible bugs through GitHub Issues.
  • Browse and share community profiles through Wago.

When reporting a bug, please include your MSUF version, WoW client version, affected frame and exact reproduction steps.


Made for players who want powerful frames without a heavy runtime.

About

Custom unit, party and raid frames for World of Warcraft: WoW Forever, WoW Midnight (Retail), Classic Era, The Burning Crusade Classic Anniversary, and Mists of Pandaria Classic.

mapkov2.github.io/MidnightSimpleUnitFrames/

Topics

raid-framesunit-framesworld-of-warcraftwow-addonwow-classicwow-foreverwow-midnight

Resources

Readme
Activity

Stars

11 stars

Watchers

0 watching

Forks

9 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.