Get an Epic Experience with Premium

UnitFramesImproved

Unit Frames Login to Add Favorites
  • 18 Likes
  • World of Warcraft
  • 5,169 Monthly Downloads
  • Supports: 6.0.2
  • 70,602 Total Downloads
  • Updated 10/14/2014
  • Created 10/20/2010
  • 139 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: Public Domain
  • Newest File: 1.4.13
or

About UnitFramesImproved

UnitFramesImproved

This addon aims to improve upon the standard blizzard unitframes without going beyond the boundaries set by them. Due to this, the addons memory usage is very small as all the hard work to get the unitframes to work is already done by Blizzard, I just improve upon them.

Main Featues

The Blizzard UnitFrames are extended with the following:

  • Taller healthbar
  • Proper class coloring of the healthbar accoring to player class
  • Better output of text on the statusbars
    • Formats "12.4k/45.3k" or "12.4k (20%)" depending on option
  • Fully integrated with rune-bar, shard-bar etc from the standard interface
  • Scalable Player/Target/TargetOfTarget/BossFrames frames

Works for Player, Target, FocusTarget. Uses the standard Pet, TargetOfTarget frames. Is even better when combined with the new Blizzard CompactRaidFrames (also CompactPartyFrames)

Notes

Please note that the traditional PVP icons for the factions is used to show which faction the targeted player is in, even if the player is not flagged for PVP. The PVP Free-For-All icon is used to show hostile opposite faction players currently.

System Requirements

Total memory usage in normal operation: 17KB

Configuration

Uses the Blizzard options for Player frames. UnitFramesImproved now also supports some basic slash-commands.

Available slash-commands

/unitframesimproved help Shows a help text
/unitframesimproved scale factor Scales the player and target frame using factor (0.0 - 10.0)
/unitframesimproved reset Resets the scaling of the player and target frames

You can also use the shortform /ufi instead of /unitframesimproved.

Movable PlayerFrames

This functionality is now included as part of WoW, and has as such been removed from UnitFramesImproved.

Scalable PlayerFrames

The portraits are linked and the scale factor will be applied to both PlayerFrame, TargetFrame, and also FocusFrame. The factor is 1.0 for normal size. 2.0 is 200% of normal size. 1.2 would be 20% larger than normal. The distance between PlayerFrame and Target frame is relative to scale of the frames. Scaling now also affects the BossFrames, at 90% scale of the factor used.

NOTE! By default the Player and Target frame positions are linked. This link can be cut by choosing to make the TargetFrame user-placed.

Future Improvements

  • Better support for healers that like to target->cast instead of using a click-to-cast addon like clique. (show deficit health etc)
  • Make some options available (like having a dps or healer focus on friendly frames)

Wishlist

  • Raid-icons shown for target-of-target and focus-target
  • Always show target-of-target and focus-target

Design Philosophy

I have a short list of design philosophies:

  • How I like it, is how the addon will be
    • I design this addon 100% after how I want it. Don't get me wrong, feedback is much appreciated as it may give me ideas that I had not yet thought about, and want for myself after that.
  • It just works (tm)
    • I like this one the best. I try to design all software I create around this principle. You shouldn't need to configure 54 options to get something that works. Things should work right out of the box, and execute it's task perfectly according to the requirement. If options upon options is what you want, there are other addons that do this. I got tired of them and created this.

Demonstration Videos

Known bugs

  • StatusBar Texts sometimes not showing properly until the value changes or the user mouseovers them.
  • Rogue Combo Points appearing a bit detached from the target unit-frame.
  • Added basic support for 6.0.
  • Removed incorrectly added MaxValue for status style "Both"

Comments

First Previous Page 1 of 14 Next Last
  • #206

    also having the issue where you cannot hide status text. I tried to go through and fix it myself but I had no idea what I was looking for

  • #207

    So was I, it is very annoying.

    Edit:

     

    I guess it should be anywhere in the function UnitFramesImproved_TextStatusBar_UpdateTextStringWithValues ...

     

     

    Edit 2:

    if you exchange the Lines after

    local textDisplay = GetCVar("statusTextDisplay");

    with

    textString:SetText("");

    all the Texts are gone. There will be a better way to do so, but it is a solution for now.

    Last edited by ToxynaAndros on 10/20/2014 2:30:41 AM
  • #208

    I have replaced the function UnitFramesImproved_TextStatusBar_UpdateTextStringWithValues() (lines 246 - 300) with:

    local FramesWithValues = {
        PlayerFrameHealthBar = 0,
        FocusFrameHealthBar = 0,
        TargetFrameHealthBar = 1
    }

    function UnitFramesImproved_TextStatusBar_UpdateTextStringWithValues(statusFrame, textString, value, valueMin, valueMax)
        if( statusFrame.LeftText and statusFrame.RightText ) then
            statusFrame.LeftText:SetText("");
            statusFrame.RightText:SetText("");
            statusFrame.LeftText:Hide();
            statusFrame.RightText:Hide();
            textString:Show();
        end
        
        if ( ( tonumber(valueMax) ~= valueMax or valueMax > 0 ) and not ( statusFrame.pauseUpdates ) ) then
            local valueDisplay = value;
            local valueMaxDisplay = valueMax;
            if ( statusFrame.capNumericDisplay ) then
                valueDisplay = UnitFramesImproved_AbbreviateLargeNumbers(value);
                valueMaxDisplay = UnitFramesImproved_AbbreviateLargeNumbers(valueMax);
            else
                valueDisplay = BreakUpLargeNumbers(value);
                valueMaxDisplay = BreakUpLargeNumbers(valueMax);
            end

            local textDisplay = GetCVar("statusTextDisplay");
            --if ("TargetFrameHealthBar" == statusFrame.GetName()) then
            if (FramesWithValues[statusFrame:GetName()] == 1) then
                if ( value and valueMax > 0 and ( textDisplay ~= "NUMERIC" or statusFrame.showPercentage ) and not statusFrame.showNumeric) then
                    -- if ( value == 0 and statusFrame.zeroText ) then
                        -- textString:SetText(statusFrame.zeroText);
                        -- statusFrame.isZero = 1;
                        -- textString:Show();
                        -- return;
                    -- end
                    
                    percent = math.ceil((value / valueMax) * 100) .. "%";
                    if ( textDisplay == "BOTH" and not statusFrame.showPercentage) then
                        valueDisplay = valueDisplay .. " (" .. percent .. ")";
                        textString:SetText(valueDisplay);
                    else
                        valueDisplay = percent;
                        if ( statusFrame.prefix and (statusFrame.alwaysPrefix or not (statusFrame.cvar and GetCVar(statusFrame.cvar) == "1" and statusFrame.textLockable) ) ) then
                            textString:SetText(statusFrame.prefix .. " " .. valueDisplay);
                        else
                            textString:SetText(valueDisplay);
                        end
                    end
                elseif ( value == 0 and statusFrame.zeroText ) then
                    -- textString:SetText(statusFrame.zeroText);
                    -- statusFrame.isZero = 1;
                    -- textString:Show();
                    return;
                else
                    statusFrame.isZero = nil;
                    if ( statusFrame.prefix and (statusFrame.alwaysPrefix or not (statusFrame.cvar and GetCVar(statusFrame.cvar) == "1" and statusFrame.textLockable) ) ) then
                        textString:SetText(statusFrame.prefix.." "..valueDisplay.."/"..valueMaxDisplay);
                    else
                        textString:SetText(valueDisplay.."/"..valueMaxDisplay);
                    end
                end
            else
                textString:SetText("");
                --[[
                Alternativ mal probieren, was passiert, wenn man diese Funktion
                ganz weglässt, beziehungsweise darin gar nichts macht.
                ]]
            end
        end
    end

    And now it does, what I think it should do for me.

     

    Last edited by ToxynaAndros on 10/20/2014 11:25:11 AM
  • #205

    Hi,

     

    I have the problem, that this addon displays numbers / other Strings on the Unit Frames of the Charakter and Party members, if I am in a party.

     

    I only could solve this issue by deinstalling UnitFramesImproved.

     

    I would like to use this addon further more, if this issue could be fixed.

  • #204

    Hey great Addon I use it a long time ago.

    The Addon 6.0.2 shows a new Problem: I can NOT disable the Text for health, Erengy and Mana. In 5.4.8 i had beatiful unitframes WITHOUT the text (Player)!

  • #200

    nice addon. but it doesnt work for party

    Last edited by Hondo83 on 9/12/2014 10:50:50 AM
  • #202

    Please make sure to use Raid Frames in standard options instead of classic party frames. This addon is not meant to support "classic" party frames as the modern RaidFrames style takes care of this.

  • #199

    This looks great.

    Keeps the good (imo) visuals of the default frames.

    Would be even better if we could increase the length of the bars.

  • #203

    Sadly, this is not something I will add as it requires too major changes to the basic Unitframe graphics. This would be too time consuming for me to do.

  • #198

    This is excellent.  Can you make an improved pet frame too?

  • #197

    HELP!

    Everytime I enable the addon, it gives a massive FPS drop to under 10 frames per second!

    I worked fine for me in patch 5.3

  • #196

    3x [ADDON_ACTION_BLOCKED] AddOn "UnitFramesImproved" tried to call the protected function "Boss5TargetFrame:Hide()".
    !BugGrabber-r198-release\BugGrabber.lua:552: in function <!BugGrabber\BugGrabber.lua:552>
    <in C code>
    FrameXML\TargetFrame.lua:103: in function <FrameXML\TargetFrame.lua:99>
    <in C code>
    <in C code>
    FrameXML\TargetFrame.lua:169: in function "OnEvent"
    FrameXML\UnitFrame.lua:663: in function <FrameXML\UnitFrame.lua:661>

    Locals:
    nil

    Not a fatal error but it's giving me the "too many errors in your UI QQ" message on every boss fight that uses the boss frame/s on the right... which is most/all fights nowadays :)

  • #195

    from all versions for me the most normal 40100
    Stolny version
    1) does not work
    2) after the reload disappear (100%)

    in this version I use is not a big mistake (which greatly angers me)
    Health perevklyuchaetsya long format with 23769/23769 23k in size (100%)
    Can you fix it?

    and tell me please
    Which script is responsible for the health?
    I just do not like your unit

    Last edited by Langepac on 10/25/2013 2:18:19 AM
  • #194

    First of all, thanks for making the best unit frames addon out there.
    For me there is only one thing that could make it even better.
    Please make profiles available, so that i can save the frames at a specific position on the screen and load that on my other chars, that would make my life so much easier. TIA

  • #193

    help please
    How to change the format of "12.4k (20%)"
    only health

    Last edited by Langepac on 10/15/2013 7:34:58 AM
  • To post a comment, please login or register a new account.
Login to Curse

Don't have an account? Create One.

Get an epic experience with Curse Premium
  • Faster addon downloads
  • Premium-Only Beta Giveaways
  • Ad-Free Curse experience
  • Premium Curse Client
  • and many More Features
  • Learn More »

VIP trip to SMITE World Championship