UltGrantTargeting (1.3.0)
UltGrantTargeting
This is a diagnostic/research addon, not intended for general use.
UltGrantTargeting is a testing tool designed to gather data about how ultimate-granting set effects select their targets. Specifically, it investigates:
How do Arkasis’ Genius, Colovian Highlands General, and Cryptcannon Vestments choose which group members receive ultimate?
Is target selection based on proximity, lowest ultimate, group index, or random?
When a group member cannot gain ultimate (e.g., during Magma Armor or Bone Goliath Transformation), does the set skip them and pick someone else, or does it waste a target slot on them?
The addon logs every ultimate energize event (ACTION_RESULT_POWER_ENERGIZE with COMBAT_MECHANIC_FLAGS_ULTIMATE) along with a full group state snapshot each member’s ultimate level, position, distance from the caster, combat state, alive/dead/online status, and whether they’re under an ability that blocks ultimate gain. All data is saved to SavedVariables for offline analysis.
Source on GitHub
Setup
Required dependency: LibGroupCombatStats
LibGroupCombatStats has its own requirements that you’ll also need to install:
LibCombat
LibGroupBroadcast
Optional (but recommended):
LibDebugLogger
Slash Commands
/ugt status Show current ult, group state, active ult-blocking abilities, LGCS connection, verbose/discovery mode, and session stats
/ugt verbose Toggle verbose mode (show events in chat; off by default)
/ugt snapshot Print a group state snapshot to chat (positions, ult, combat status)
/ugt scan Dump all buffs on self or group members, highlighting ult-blocking abilities
/ugt discover Toggle discovery mode (log all power energize events to find unknown ability IDs)
/ugt note Insert an annotated snapshot into the log as a test boundary marker
/ugt procs Show recent tracked set proc events
/ugt recent Show all recent ultimate energize events
/ugt limit View or set savedvar size limits (sessions, procs, log entries)
/ugt clear Clear the current session log
/ugt help List all commands
Data
All events are saved to the UltGrantTargeting saved variable file. Each tracked set proc includes:
The triggering ability (source, target, ability ID, ult amount)
Additional targets that received ult from the same proc (within a 150ms debounce window)
A full group snapshot at the time of the proc (ult values, positions, combat/dead/online status, ult-blocking state)
A human-readable summary cross-referencing targets against the snapshot (identifies blocked, dead, or skipped members)
To keep the saved variable file from growing unbounded, all storage is capped with configurable limits:
Sessions: max 10 retained (oldest pruned on login)
Procs: max 500 per session (oldest removed when exceeded)
Log entries: max 2000 per session (ring buffer overwrites oldest entries in place, no table resizing)
All three limits can be viewed and adjusted in-game with /ugt limit. The current session can also be wiped at any time with /ugt clear.
You can then later review UltGrantTargeting.lua in your SavedVariables folder.
Tracked Sets
Arkasis’ Genius ability ID 142660 (grants +44 ult to you and 3 group members on potion use)
Colovian Highlands General ability ID 202843 (grants +15 ult/stack to you and up to 5 group members within 28m on player kill)
Cryptcannon Vestments (Crypt Transfer) ability ID 195031 (consumes your ult and distributes it to nearby group members)

