-
-
Notifications
You must be signed in to change notification settings - Fork 318
Editing Aura Regions
"Region" is a general term in the WoW UI for a type of frame that can hold content. On this page, however, "Region" will refer specifically to the base frame of any Aura. For the most part WeakAuras provides settings in its config for changes you might want to make to Aura regions or their child frames, but advanced users can tweak additional settings or change things dynamically through custom code. It should be noted that doing so is moving out of "supported" uses of WeakAuras, so there can be no guarantee that changes made in future development won't affect work you do.
Aura base regions can be accessed from within the Aura with aura_env.region
(which will return the specific clone region if called from code within a clone) or from outside with WeakAuras.GetRegion(id, cloneId)
.
Note: Editing Aura regions in code can be very useful but should always be viewed as a last resort. Most properties that you might adjust in code can be adjusted via the Conditions tab and that should always be the method used if at all possible.
Note2: You may see some auras which access WeakAuras.regions
. This is a internal data structure of WeakAuras and is subject to change without prior warnings. Use GetRegion
as a mildly safer alternative.
-- Set the width
aura_env.region:SetRegionWidth(100)
-- Set the height
aura_env.region:SetRegionHeight(150)
All used with aura_env.region:FunctionName()
-
Color(r,g,b,a)
- Main colour output of the aura. Icon colour for Icons, bar colour for Progress Bars, etc.
SetAnchor(anchorPoint, relativeTo, relativePoint)
SetOffset(x,y)
SetOffsetRelative(x,y)
SetOffsetAnim(x,y)
SetDesaturated(bool)
-
SetDurationInfo(duration, expirationTime, static, inverse)
- Overrides the current cooldown/progress information of the aura. See here for more.
SetGlow(bool)
-
SetIcon(iconID|iconPath)
- Used with Icons and the small Icon in Progress Bars. Overrides the
icon
Dynamic Info.SetTexture()
for Texture auras.
- Used with Icons and the small Icon in Progress Bars. Overrides the
-
SetInverse(bool)
- Reverses the cooldown/progress direction.
-
SetName(string)
- Overrides the
name
dynamic info
- Overrides the
SetStacks(number)
-
SetOrientation("HORIZONTAL"|"HORIZONTAL_INVERSE"|"VERTICAL"|"VERTICAL_INVERSE")
- Progress Bar orientation.
The functions listed above are all specific to WeakAuras and it's outputs. A full list of the methods inherited by a basic frame can be found here.
local region = aura_env.region
region:Color(1,0,0,0.5)
-- Sets the aura to red and half opacity
region:SetAnchor("BOTTOMLEFT", WeakAuras.GetRegion("Other Aura"), "TOPRIGHT")
-- Anchors the aura to another aura.
region:SetOffset(0, 10)
-- Sets aura's anchored offset to the coordinate at 0, 10.
region:SetOffsetRelative(0, 10)
-- Changes the aura's anchored offset relative to its normal offset. Up by 10 pixels.
region:SetDesaturated(true)
-- Makes the icon/texture greyscale
region:SetDurationInfo(5, GetTime()+5)
-- Gives the aura new duration info to last 5 seconds from when this code is run
region:SetDurationInfo(UnitHealth("player"), UnitHealthMax("player"), true, true)
-- Sets the aura's progress to be static, not timed, using the players health as the current value and their max health as the max value. This example is also inverts the progress bar so it grows the opposite way.
region:SetGlow(true)
-- Makes the aura glow
region:SetIcon(132089)
-- Sets the aura's icon to the Rogue's Stealth icon. https://www.wowhead.com/icons can help find icon IDs.
region:SetInverse(true)
-- Inverts the progress direction
region:SetName(UnitName("player"))
-- Sets the aura's `name` dynamic info to be the player's character name
region:SetStacks(UnitPower("player", 4))
-- Sets the aura's `stacks` dynamic info to be the player's current Combo Points
region:SetOrientation("VERTICAL")
-- Changes the progress bar's orientation to be vertical.
Additional frames can be added to the base Aura in the display tab via the "Sub-elements" section. These can be reordered to control how these frames layer
-
subtext
(text frame) -
subborder
(border frame) -
subbarmodel
(model frame)
If you really need to, these may be accessed in code via aura_env.region.subRegions
. But there are very few good reasons to do this, so ensure that what you want really can't be done with basic Conditions before looking to use code.
The subRegions
table is an array containing all of the elements listed in the Display tab of an aura. The order of the elements in the array reflects the order in Display tab, but to serve as a quick example of using the subRegions table, you could find a text element like so:
for i, subregion in ipairs(aura_env.region.subRegions) do
if subregion.type == "subtext" then
-- do stuff
end
end
aura_env.region
will give the "current" region in a "cloning Aura" when used within the clone's functions (custom text, animations, Actions, etc.) "Cloning Auras" being those that use auto-clone
options in their triggers (aura-group/multitrigger, some event triggers etc.) or custom triggers that use the Trigger State Updater to create multiple outputs. If you ever need to acquire clone regions and aura_env.region
isn't an option then you can use:
WeakAuras.GetRegion("Aura name/ID", "Aura clone ID")
- Home
- API Documentation
- Getting Involved
- Setting up a Lua Dev Environment
- Deprecations
- Useful Snippets
- Aura Types
- Trigger Types
- Triggers and Untriggers
- Aura Activation
- Dynamic Information
- Text Replacements