Shadowed Unit Frames

SUF focuses on a simple configuration while maintaining the flexibility that most users will care about, preventing unnecessary bloating of the addon that sacrifices performance. While you aren't going to be able to set the health bar to be exactly 3.14 pixels outside of the unit frames, you can change options you actually care about such as bar height, ordering, frame height and so on. To speed up configuration, you can configure multiple units at the same time through the global configuration. For example, if you want to set the height of the Player, Target, Focus and Party frames to 50 then the height of Target's Target, Target's Target of Target, Focus Target to 30 you can easily do this by changing two options instead of having to do it seven times.

However, should you need a little bit of extra configuration do not despair! An advanced option is included that will unlock additional configuration giving finer control over the configuration.

Slash commands: /shadoweduf (/suf)

Donations
Donations are not required, but are appreciated!

Anchoring
Are you driven crazy by your party frames not aligning up exactly with your player frames, even if it's only half a pixel off? The anchoring system will let you solve all alignment issues, by allowing you to anchor a frame to another and set a simple offset from the frame it is anchored to, or by manually setting the X/Y position of the frame.

Using the screen shot as an example, if you drag the player frame the other frames will move with the player frame preserving the alignment and spacing. Each frame can still be manually positioned wherever you want, but this gives you a way of easily anchoring and moving frames around without having to use a ruler.

Zone configuration (Disabling options/units by zone type)
Units and modules can be enabled or disabled based on the type of zone you are in. For example, if you want to see party targets and party pets while you are in an arena but nowhere else then you can use the visibility options to enable it only while inside an arena. Modules can also be disabled by zone type, if you want to see party auras while in a raid instance but nowhere else you can disable the module in raid instances only.

Auras: Can be set to only show auras you casted, or can cast on others. Can enlarge auras that you casted, and hide the cooldown ring on the timers of auras you didn't cast as well to make it more obvious which ones you casted and which ones you didn't

Aura Timers: You will need a mod such as OmniCC to show timers on buffs and debuffs

Aura Indicators: Display colored squares or icons for certain auras on any unit

Fader: Fades frames when out of combat and inactive (100% mana/no target)

Class Power (Eclipse, Holy Power, etc): Supports all of the class power features from Eclipse to Burning Embers.

Highlighting: Border highlighting of frames based on mousing over them, curable debuffs, aggro or you are targeting/focusing them

Range Checking: Fades frames out that are out of range of you

Exportable Layouts: If you have a layout, or your friend has a layout you want to try out you can export/import SUF layouts by going to /suf -> Layout Manager

Profiles: You can change from any profile to another one without reloading your UI, should you want to use a completely different layout based on zone you can easily switch profiles without hassle

Pretty much all the general unit frame settings are in, health bars, cast bars, power bars, portraits, indicators and so on.

Modules
Basic module support is included, should you be interested in building a module see the documentation on github for more information.

Hendrik Leppkes:
- Add missing tag name entries
- Add sec:curpp/abscurpp/curmaxpp/absolutepp tags, a generic version of the druid:* tags
- Force a power update on PLAYER_UNGHOST to catch resurrecting after a corpse run
- Fix deleting the last aura from a group
- Add safety checks to ensure aura config is setup properly

Tag as v4.1.5

--------------------

Hendrik Leppkes:
- Add a smart hostfile/friendly aura filter
- Use RegisterUnitEvent for UNIT_AURA
- Added a new option to change the color of the healthbar if the unit has a curable debuff
- Update power statusbar and tags after repopping at a spirit healer
This uses the deprecated UNIT_MANA event, since its the only one that
actually fires in that instance and seems vaguely related.
- incheal: fix framelevel in a few cases and simplify frame level handling
- incheal: Always check the maxHealth and bail out early if its not set
- Remove more remnants of obsolete power types

Hendrik Leppkes:
- Report proper maximum power values for all power types
- Set a proper default for new powers
- Disable Mage Arcane Charges Aura Points mode, its handled as a full power now
- Remove Anticipation from Aura Points
The spell was changed and no longer does what it once did.
- Fix curable debuff types for Monks and Paladins
- Bail out early with zero combo points

Hendrik Leppkes:
- Remove innervate aura, the spell no longer exists
- Remove unregister of UNIT_NAME_UPDATE in split group headers as well
- Don't unregister UNIT_NAME_UPDATE on group headers anymore.
This fixed an issue in WoW 3.x which does not exist anymore, and has
in fact caused issues with raid members not being displayed reliably
after joining a group since MoP.

Tagging as release v4.0.10

--------------------

Shadowed:
- Strip out MoP indicators to make nevcairiel happy
- Don't update runes if cooled is nil
- Dropped cooldown wheel alpha hack as it was apparently fixed
- Updated auras with Hellfire Citadel (Thanks MysticalOS)
Hendrik Leppkes:
- Update TOC for 6.2
- Fix first group in split raid frames being hidden after reload in a raid
Shadowed:
- Make sure we register UNIT_COMBO_POINTS for target CPs now
- Bypass combo point unit filter for non-events
- Combo Points can be shown on the target unit again too
- Ensure indicators always have a priority
- Make sure we kill combo points on target

Tagging as release v4.0.9

--------------------

Shadowed:
- One last Combo Points bug fix
- Fixed an error on Chi points
- Typo
- Redo the Eclipse Bar to add a highlight based on where you are, and fixed the arrow going outside of the unit frame
- Redo the combo points module, should fix random bugs when using Chi, Holy Power, Shadow Orbs, Soul Shards, Aura Points and Combo Points
- Debug code is bad
- Only hide pet frames if we have a vehicle UI (Tries to fix Mount-in-Training not showing)
- Yet another attempt at fixing Blizzards insane crash bug
- Stripped out split frame group hiding as it doesn't work
- Fixed split headers not hiding when toggling them off
- Fixed split raid frames being scattered on UI Reload
- Make sure we default x/y for combo points too
- Trying a fix for the combo point crash bug
- Fixed combo point config due to target -> player move
- Trying a fix for Holy Power
- Added default aura indicators
- Hide Arena prep frames when arena frames are hidden

Tagging as release v4.0.8

--------------------

Shadowed:
- Variable scoping is hard
- Typo
- Should properly fix zone units showing up in the wrong zone
- Revert the majority of the range checker changes to get it stable
- Fixed error when using a fishing lure
- fixed MONOCHROME font crashing SUF
- hide the split raid frames when not in a raid
- Fixed bugs with zone enabled units not actually being restricted to zones
- Fixed range timer start/stop bugs
- Disable dismissable totem bars if we only have one "totem"
- Fixed bar block combo points error if we had more than expected
- Bump frame strata to fix raid manager/work order visual issues
- Cleaned up Chi code

Shadowed:
- Fixed enlarge curable debuffs not working
- Redid the range check module and spells, now uses interact distance and you can specify an alt spell too
- Fixed cooldown wheels not being alphaed when using the range checker
- Redid config a little, range check spells has its own tab and profile config is now on the left menu
- Updated spellID for Mage Arcane Charges
- Updated a few of the range checker spells
- Fixed an error when using a fishing pole temporary enchant
- Fixed error when unlocking frames as a Shadow Priest
- Combo points have been moved to the Player unit
- One more CP related error
- Fixed a combo points error when using SoulShards/ShadowOrbs/HolyPower/Chi
- Properly add localcheck.rb to not be packaged
- Strip out any WoD specific code
- Redo combo point modules to dynamically create indicators as needed and not rely on the max flag
- TOC update

Does the Cast Bar support indicating uninterruptible casts? It doesn't seem to, but I may be missing something. And it turns out I was. Sorry! I didn't even see the option to change the color oddly (if there is one).

I know you answered this for me before, but I got confused lol. How or can you set the empty bar text to left/right?

And for some reason there is a gap from the portrait to the rune bar on the player frame.

Is there a way to make the buffs automatically wrap when it reaches the edge of the frame the buffs are on? And is there a way to make my debuffs and other peoples debuffs not share the same size? Besides the enlarge your debuffs option, it just doesn't enlarge them enough. I would just like to be able to make my debuffs bigger without changing all the others.

I know you probably want to keep SUF as simple as possible, which I agree with. I love SUF and that's why I'm putting in my two cents because I don't want to go back to Xperl lol. I just think Xperl did some things right that SUF currently cant do.

Hello, I'm having some issues with this addon since 3.3:
The Main Tanks Target frames have strange behaviours: it doesn't update (meaning that if I've no target it shows that I still have, or doesn't show that I have one if I have), shows them one on top of each others (i see my target frame on top of the first tank in the list's one).

I tried the boss frame while doing the Gunship Battle encounter (only there), the blizzard frames are showing on top of each SUF boss frame, I can see there are the names of the enemys on the blizzard's only, both blizzard and suf's frames are not updating (health/power values).

If it helps, I'm not having any Lua errors.

I'm trying to set the raid frames to show like horizontal groups, growing toward the bottom but I don't get how to do this.
Example: [x-y] it's a member of the raid, x is the group, y is the position in the party/name
[1-1][1-2][1-3][1-4][1-5]
[2-1][2-2][2-3][2-4][2-5]
Am I missing something?

Acca85 : type /suf enable raid in unit config. Then click on raid to the list on the left. once there click the tab on the top that says raid. Set Max columns to 5 and units per column to 8. Then above that you will see row growth and column growth. Change Row growth to Right and column growth to down.

Pixol: I just double checked and I can't even come close to duplicating this. There is no spike in CPU usage, in fact SUF doesn't use a single milisecond of CPU in relation to spamming the macros on a target dummy and I tried all variations including one with //cast.

Weird I happened to be testing different addons today with SUF off, and pitbull was acting up, I turned SUF back on and SUF doesn't take up cpu randomly anymore, just pitbull now. Guess it might have something to do with one Ace library from one of the many addons it randomly picks and uses up the cpu when I press macros

Originally posted by Shadowed ... that's quite mind boggling, I'll have to think up something that could be causing it.

So I was thinking about this and it struck me that it used to work when I was running oUF. So thought, "hey, let me see if I can tell what's different!". After peeking through the vehicle.lua code in oUF I noticed there was a call for PlayerFrame.unit = self.unit and BuffFrame_Update() - which looks identical to what happens in the Blizzard code when jumping into a vehicle.

So I tried adding this to SUF, in units.lua in the function CheckVehicleStatus(frame, event, unit), but with appropriate variables, so it would look like this: (added comments where I added stuff)

Code:

-- Check if a unit entered a vehicle
function Units:CheckVehicleStatus(frame, event, unit)
if( event and frame.unitOwner ~= unit ) then return end
-- Not in a vehicle yet, and they entered one that has a UI or they were in a vehicle but the GUID changed (vehicle -> vehicle)
if( ( not frame.inVehicle or frame.unitGUID ~= UnitGUID(frame.vehicleUnit) ) and UnitHasVehicleUI(frame.unitOwner) and not ShadowUF.db.profile.units[frame.unitType].disableVehicle ) then
-- Keep track of what the players current unit is supposed to be, so things like auras can figure out what unit to filter
if( frame.unitOwner == "player" ) then ShadowUF.playerUnit = frame.unit end
frame.inVehicle = true
frame.unit = frame.vehicleUnit
-- added these 2 lines..
PlayerFrame.unit = frame.unit
BuffFrame_Update()
if( not UnitIsConnected(frame.unit) or UnitHealthMax(frame.unit) == 0 ) then
frame.timeElapsed = 0
frame.dataAttempts = 0
frame:SetScript("OnUpdate", checkVehicleData)
else
frame.unitGUID = UnitGUID(frame.unit)
frame:FullUpdate()
end
-- Was in a vehicle, no longer has a UI
elseif( frame.inVehicle and ( not UnitHasVehicleUI(frame.unitOwner) or ShadowUF.db.profile.units[frame.unitType].disableVehicle ) ) then
if( frame.unitOwner == "player" ) then ShadowUF.playerUnit = frame.unitOwner end
-- .. as well as these 2, since without these it never switches the buffs back
PlayerFrame.unit = frame.unitOwner
BuffFrame_Update()
frame.inVehicle = false
frame.unit = frame.unitOwner
frame.unitGUID = UnitGUID(frame.unit)
frame:FullUpdate()
end
end

Apologies for the huge chunk of code there. However, when I then tried the same quest I've mentioned earlier, this change made the bufframe switch when hopping into the vehicle and back again when jumping out again. I'm also happy to say that the stacks corresponded.

I've only tested this briefly and I don't know what other problems (if any) this could bring, but maybe it sheds some light as to why I was experiencing the bug.

Support AddOn Development!

You have just downloaded by the author . If you like this AddOn why not consider supporting the author? This author has set up a donation account. Donations ensure that authors can continue to develop useful tools for everyone.