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 anonymous Lua function which returns true or false.
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"])
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 ((select(2,GetSpellCooldown("Prayer of Mending")) == 0) and ((VUHDO_unitInfo["health"] / VUHDO_unitInfo["healthmax"]) < 0.9)) and true or false;
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_getUnitCustomDebuffs()[VUHDO_unitInfo["unit"]] and VUHDO_getUnitCustomDebuffs()[VUHDO_unitInfo["unit"]]["Penetrating Cold"] and true or false;
One more example which returns true only if the unit has an active HoT Icon tracking 'Atonement':
return VUHDO_MY_HOTS and VUHDO_MY_HOTS[VUHDO_unitInfo["unit"]] and VUHDO_MY_HOTS[VUHDO_unitInfo["unit"]]["Atonement"] and true or false;
More example bouquets using custom flags of various kinds can be found on wago.io.
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 | |
| 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 | |
| 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 |
| 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 |