Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
VuhDo VuhDo
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 277
    • Issues 277
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 3
    • Merge requests 3
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • VuhDo
  • VuhDoVuhDo
  • Wiki
  • VuhDo Custom Flag Bouquet Validators

Last edited by Ivaria Feb 24, 2025
Page history

VuhDo Custom Flag Bouquet Validators

Custom flags are bouquet validators which accept a user defined anonymous function that returns a boolean value. This allows for any custom condition to be used as part of the evaluation of a bouquet's chain of validators. These custom flag validators can be any valid Lua snippet which returns true or false.

Table of Contents

  • Table of Contents
  • Accessing Unit Information
    • Example 1
  • Checking for a Debuff Icon
    • Example 2
  • Checking for a HoT Icon
    • Example 3
  • More Examples
  • Unit Information Table Schema

Accessing Unit Information

The VUHDO_unitInfo table provides the relevant cached information on the subject unit to the anonymous function.

The simple example below returns true if the unit is named 'Ivaria':

return ("Ivaria" == VUHDO_unitInfo["name"])

Full details on the unit information available in the VUHDO_unitInfo table can be found below.

Example 1

The follow is a more complicated example which returns true only if the player's spell 'Prayer of Mending' is off cooldown and the unit is below 90% health:

return  ((VUHDO_getSpellCooldown("Prayer of Mending") == 0) and ((VUHDO_unitInfo["health"] / VUHDO_unitInfo["healthmax"]) < 0.9)) and true or false;

Checking for a Debuff Icon

As of VuhDo v3.168, there is a new API that must be used to determine whether a unit has an active Debuff Icon:

VUHDO_hasUnitDebuff(<unit ID>, <spell name|spell ID>)

Example 2

Another example which returns true only if the unit is currently marked with a raid icon of 'Green Triangle' and also has a custom debuff active called 'Penetrating Cold':

return VUHDO_unitInfo["raidIcon"] == 4 and VUHDO_hasUnitDebuff(VUHDO_unitInfo["unit"], "Penetrating Cold") or false;

Checking for a HoT Icon

As of VuhDo v3.173, there is a new API that must be used to determine whether a unit has an active HoT Icon:

VUHDO_hasUnitHot(<unit ID>, <spell name|spell ID>[, VUHDO_UNIT_HOT_TYPE_<MINE|OTHERS|BOTH|OTHERSHOTS>])

The third optional argument to VUHDO_hasUnitHot specifies the unit type who must be the source of the HoT aura:

  • VUHDO_UNIT_HOT_TYPE_MINE - HoTs cast by the player.
  • VUHDO_UNIT_HOT_TYPE_OTHERS - HoTs cast by other players.
  • VUHDO_UNIT_HOT_TYPE_BOTH - HoTs cast by either the player or other players.
  • VUHDO_UNIT_HOT_TYPE_OTHERSHOT - HoTs tracked via the special built-in Other player's HoTs bouquet.

When omitted, the third argument defaults to VUHDO_UNIT_HOT_TYPE_MINE.

Example 3

One more example which returns true only if the unit has an active HoT Icon tracking 'Atonement' cast by the player:

return VUHDO_hasUnitHot(VUHDO_unitInfo["unit"], "Atonement");

More Examples

More example bouquets using custom flags of various kinds can be found via Ivaria's profile on wago.io. Note that not all of these have been updated to use the new Debuff and HoT Icon APIs.

Unit Information Table Schema

Unit information (VUHDO_unitInfo table):

key type / value value description
afk boolean true if unit is AFK
aggro boolean true if unit has aggro
charmed boolean true if unit is charmed
class string the unit's class name
classId number the unit's class ID
20 warrior
21 rogue
22 hunter
23 paladin
24 mage
25 warlock
26 shaman
27 druid
28 priest
29 death knight
30 monk
31 demon hunter
32 evoker
className string the unit's class name prettified
connected boolean true if unit is connected
dead boolean true if unit is dead
debuff number the unit's last active debuff type
0 no active debuff
1 poison
2 disease
3 magic
4 curse
6 custom debuff
7 missing Buff Watch aura
8 bleed
debuffName string the most recent debuff on the unit
fullName string the full name of the unit
group number the group the unit is in
health number the unit's current health
healthmax number the unit's maximum health
isAltPower boolean true if unit has an alt power active
isPet boolean true if unit is a pet
isVehicle boolean true if unit is in a vehicle
name string the name of the unit
ownerUnit string unit's owner if pet or vehicle
petUnit string the unit's pet unit ID
power number the unit's current power
powermax number the unit's maximum power
powertype number the type of power (see: https://warcraft.wiki.gg/wiki/Enum.PowerType)
0 mana
1 rage
2 focus
3 energy
4 happiness
5 runes
raidIcon number the raid icon if unit is marked
1 yellow 4-point Star
2 orange circle
3 purple diamond
4 green triangle
5 white crescent moon
6 blue square
7 red "X" cross
8 white skull
range boolean true if unit is in range
role number the unit's combat role
60 melee tank
61 melee damage
62 ranged damage
63 ranged heal
targetUnit string the unit's target
threat number the unit's threat status
0 not tanking, lower threat than tank
1 not tanking, higher threat than tank
2 insecurely tanking, another unit has higher threat
3 securely tanking, highest threat
threatPerc number the unit's threat percentage
unit string the unit ID
visible boolean true if the unit is visible
Clone repository
  • VuhDo Classic FAQ
  • VuhDo Custom Flag Bouquet Validators
  • Home