Skip to content

G-Mein/procAlert

Repository files navigation

Proc Alert

Visual Alert Editor — WoW Midnight (Interface 12.0.7 / 12.1.0 PTR)

Proc Alert lets you build fully customizable on-screen alerts that fire whenever a set of game conditions is met. Alerts are displayed as pulsing text, static text, spell icon glows, full-screen flashes, or sounds — across up to ten freely repositionable output frames (4 by default).

Status: Stable (v1.2.2)

v1.1 adds rule snapshots, vertical resource bars, and the optional debug tab.

v1.2.0 focuses on TTS reliability and in-combat/microlag performance: fixed TTS silence/stutter, decoupled pulse animations and the main tick from render FPS, pooled UI rows, memoized redundant cooldown lookups, and fixed a profiler memory leak behind recurring ~1s freezes.


Installation

  1. Copy the procAlert folder to World of Warcraft/_retail_/Interface/AddOns/
  2. Start WoW or type /reload
  3. Click the minimap button or type /pa

Slash Commands

Command Description
/pa or /pa editor Open the rule editor
/pa settings Open the settings & debug panel (Interface → AddOns → Proc Alert)
/pa fm Toggle Frame Edit Mode — drag output frames to reposition
/pa reset Reset all output frame positions to default
/pa testmode Toggle test mode — force all alerts visible for positioning
/pa debug Print ready state, profile key, rule count
/pa debugauras List current player buffs with spell IDs
/pa debugcd List tracked cooldowns and their ready state
/pa debugres Dump the active spec's resource values

The minimap button also accepts left-click (editor) and right-click (settings). Diagnostics are also available in the Settings → Debug tab without using chat.


Creating a Rule

  1. Click + New Rule in the editor
  2. Set a name and priority (1 = highest; lower number wins when two rules target the same frame)
  3. Add Conditions — see the condition type reference below
  4. Choose condition logic: ALL (AND) or ANY (OR)
  5. Add Outputs — see output type reference below
  6. Click Save

Condition Types

Type Description
Buff active Player currently has the buff
Buff stacks Buff stack count matches operator + value
Buff missing Player does not have the buff
Debuff active Player currently has the debuff
Cooldown ready Fires when the spell's cooldown is up
Cooldown NOT ready Fires while the spell is still on cooldown
Stance / Form active Fires in a given stance/form (e.g. Metamorphosis)
Custom Lua Advanced expression (see Custom Lua section)

Buff, debuff, and cooldown conditions use the spell picker to select spells by name or ID.

Buff conditions also expose a Live Auras button so you can pick from your currently active buffs instead of typing IDs manually.

Note: Resource-value conditions (Mana, Fury, Soul Fragments, …) are intentionally not available: WoW 12.0 hides those numbers from addons in combat, so a reliable comparison is impossible. Use the color-coded resource bars for visual tracking instead.


Output Types

Type Description
Text (center) Static text on the assigned output frame
Text + pulse Text with a repeating pulse animation
Icon glow Spell icon with a pulsing glow effect
Icon display Plain spell icon, no glow
Sound Plays a built-in game sound
Custom sound Plays a sound from a file path
Text to Speech Speaks text out loud
Screen flash Brief full-screen flash
Resource bar color Recolors a resource bar while the rule is active

Each output is assigned to a Frame (1–10). Higher-priority rules win per frame.


Output Frames

  • Up to 10 independent, freely positionable frames (4 by default; adjust the count in Settings)
  • Toggle reposition mode: /pa fm or Frame Edit Mode button in the editor
  • Drag the blue boxes to the desired position; saved automatically
  • /pa reset returns all frames to their default positions

Resource Bars

Proc Alert shows color-coded resource bars for your active spec (primary plus secondary resources where available), with a health bar at the end. Bars update several times per second and on relevant game events.

Configurable in Settings → Resource Bars:

  • Bar style — pick a StatusBar texture (LibSharedMedia textures included when available)
  • Vertical bars — fill bottom-to-top instead of left-to-right
  • Per bar: enable/disable, set a custom label, and override width / height (this block sits above the threshold colours)
  • Global width / height still act as the fallback
  • Bar positions are stored per resource name, so Evoker spec swaps and other temporary bar-order changes do not shuffle saved positions
  • Old index-based bar positions are migrated automatically on login/profile switch
  • Threshold colors: each bar (including Health) has its own independent set of % → color thresholds, laid out in a 3-column grid

Note: In combat WoW hides the exact numbers for some resources (Fury, Insanity, Pain). The bars still fill and recolor correctly via secret-safe APIs.


Profile System

  • Each character + spec has its own saved profile — no more shared config between characters of the same class
  • Switching specs automatically loads the correct profile
  • All settings (rules, bar sizes/style/positions, thresholds, output frame count/positions, TTS) are stored per profile
  • If WoW briefly has no spec data after a scene/load, Proc Alert keeps using the last valid profile instead of creating a temporary empty one
  • Profile key format: Name-Realm_CLASSNAME_specID (e.g. Illidan-Area52_DEMONHUNTER_1480)
  • In Settings → Profiles you can rename a profile, switch to another profile, copy one profile's setup onto the current one, start a fresh New profile, or reset to the auto-detected one
  • Rule Snapshots: save the current rules + settings under a name (scoped per character & spec) and restore or delete them later — snapshots are separate from and additive to the profile system
  • Profiles can be exported as a string and imported on another character; rules-only imports keep your current bar/frame settings intact

The Debug settings tab is hidden by default. Enable it with the "Show Debug panel" checkbox under Settings → Advanced (toggling reloads the UI).


Custom Lua Conditions

The expression is evaluated in a safe sandbox. Available variables:

-- Universal (all classes)
inCombat              -- boolean: player is in combat
hasBuff(spellID)      -- boolean: player has the buff
hasDebuff(spellID)    -- boolean: player has the debuff
buffStacks(spellID)   -- number:  stack count (0 if not present)
stanceForm            -- number:  current stance/form index (0 = none)

-- Demon Hunter only
souls     -- number: Soul Fragment count
furyPct   -- number: Fury as 0–1 fraction (nil when hidden in combat)
inMeta    -- boolean: Metamorphosis / Void Metamorphosis is active

hasBuff, hasDebuff, buffStacks, inCombat, and stanceForm work for every class. souls, furyPct, and inMeta are nil for non-DH characters.

Only the variables above are available — game functions like UnitPower are not. Resource amounts (Mana, Holy Power, Combo Points, …) cannot be tested reliably in combat (WoW 12.0 hides them from addons), so use the visual resource bars for those instead.

Examples

Frost Mage

hasBuff(44544) and hasBuff(190446)   -- Fingers of Frost + Brain Freeze
buffStacks(44544) >= 2               -- 2x Fingers of Frost charges
hasBuff(12472)                       -- Icy Veins active

Shadow Priest

hasBuff(194249)   -- Voidform active
hasBuff(375981)   -- Shadowy Insight (free instant Mind Blast)
hasBuff(392511)   -- Deathspeaker (free Shadow Word: Death)

Retribution Paladin

hasBuff(255937)                       -- Empyrean Power proc
hasDebuff(343527) and hasBuff(406975)

Beast Mastery Hunter

hasBuff(19574) and hasDebuff(321530)   -- Bestial Wrath + Bloodshed
hasBuff(359844)                        -- Call of the Wild

Arms Warrior

hasBuff(52437)    -- Sudden Death proc (free Execute)
hasBuff(260708)   -- Sweeping Strikes
hasBuff(107574)   -- Avatar burst window

Demon Hunter (Devourer / Havoc)

souls >= 40 and souls < 50
furyPct and furyPct >= 0.9 and not inMeta
buffStacks(390173) >= 3
inMeta and souls >= 30 and hasBuff(391487)

Known Spell IDs (Devourer DH — verify before use)

Spell ID
Soul Fragments aura 1245577
Voidfall 390173
Moment of Craving 388114
Devourer's Bite 391487
Void Metamorphosis check wowhead.com

All spell IDs can be looked up at https://www.wowhead.com

About

WOW Midnight Addon to Manage priorizable Alerts

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages