Description
PI Manager v1.10.1
Power Infusion manager for Priests of all specializations. Fully compatible with WoW 12.0.7 (Midnight). Optimized for parties and raids up to 40 players.
Install
Copy the PIManager folder to:
World of Warcraft/_retail_/Interface/AddOns/PIManager/
Then /reload or restart the game. On login the addon prints a confirmation, and it creates the PIManager macro once you've fully entered the world.
How it works
PI Manager builds and maintains a normal Blizzard macro named PIManager in your macro book. Open /macro, drag it to any action bar slot, and bind that slot to whatever key you like. The addon keeps the macro body up to date automatically — you never edit it by hand.
The macro uses live target conditionals, so the actual recipient is resolved by the game at the moment you press it:
/cast [@<assigned>,help,nodead] Power Infusion (plain cast if no one is assigned)
/cast [@player] Power Infusion
/use 13 (if Trinket 13 enabled and equipped)
/use 14 (if Trinket 14 enabled and equipped)
/use <bag> <slot> (if a combat potion is enabled and found)
Cast behavior: if you've assigned someone and they're castable, Power Infusion lands on them. Otherwise — no assignment, or the assigned player is dead/gone/out of range — the cast falls through and the Priest talent Twins of the Sun Priestess distributes it to a nearby ally, preferring damage dealers. After each cast the addon prints who Power Infusion landed on.
Requires the Twins of the Sun Priestess talent for the automatic "pick a damage dealer" behavior. Without it, an unassigned or failed cast follows default WoW targeting (your current friendly target, or nothing) instead.
Features
- Main GUI window —
/pito toggle, or left-click the minimap button - Two launch points: a LibDBIcon minimap button (tooltip shows the current assignment) and an entry in Blizzard's AddonCompartment menu
- Status line in the window showing Power Infusion's cooldown (Ready / CD seconds) and who the next cast will target
- Player list with class colors and faction tags ([A] Alliance / [H] Horde)
- Rescan button (and
/pi rescan) to force-rebuild the list from the current roster if it ever looks stale or incomplete - Auto-maintained Blizzard macro — drag from
/macroto any action bar slot, bind however you like - Cast confirmation: after each cast, prints who Power Infusion landed on (assigned / Twins-distributed / self)
- Trinket slot 13 / 14 toggles (only fire if the slot is equipped)
- Combat potion toggle, with a custom potion set by drag-and-drop or by item ID / name
- Debug + diagnostics output for troubleshooting
Slash commands
| Command | Action |
|---|---|
/pi |
Toggle the window |
/pi hide |
Close the window |
/pi assign <name> |
Assign PI to a player |
/pi clear |
Clear the assignment |
/pi trinket1 [on|off] |
Toggle/set Trinket slot 13 usage |
/pi trinket2 [on|off] |
Toggle/set Trinket slot 14 usage |
/pi potion [on|off] |
Toggle/set combat potion usage |
/pi setpotion <id|name> |
Set custom potion by item ID or exact name |
/pi clearpotion |
Clear custom potion (revert to default list) |
/pi rescan |
Force-refresh the player list from the current roster |
/pi macro |
Create/update the Blizzard macro for action bars |
/pi fix |
Re-attach the minimap button if it stopped responding |
/pi diag |
Print full diagnostic info |
/pi debug [on|off] |
Toggle/set debug logging |
/pi reset |
Wipe all saved settings |
/pi help |
Show the command list |
Raid-safety design
Built to be quiet in 40-player raid content:
- No
OnUpdatepolling. Status line and target resolution refresh only on game events (roster changes, equipment changes, combat boundaries). - Pre-allocated scratch tables.
FindCastTargetreuses the same tables across calls — zero allocations per raid scan. - Single-pass O(n) raid scan. One walk through the roster categorizes each member inline.
- Row pool. Player list rows are created once and reused; no
CreateFramechurn during raid events. - No
SPELL_UPDATE_COOLDOWN. That high-frequency event is never registered. - Combat-safe macro updates.
EditMacro/CreateMacroare gated byInCombatLockdown; updates that hit during combat defer toPLAYER_REGEN_ENABLED. - Change-detected macro writes. The macro body is only rewritten when its content actually changes.
- Duplicate-safe macro creation. The addon scans all macros before creating one, so it never spawns duplicate
PIManagermacros, and warns you if extras already exist.
Files
PIManager/
├── PIManager.toc Addon manifest (Interface 120007)
├── PIManager.lua All addon code
├── README.md This file
├── IRONCLAD_RULES.md Development/design rules
└── libs/
├── LibStub/
├── CallbackHandler-1.0/
├── LibDataBroker-1.1/
└── LibDBIcon-1.0/ For the minimap button
Notes
A previous version included whisper/say/party "notify on cast" options. These were removed because the WoW server blocks/throttles addon-automated whispers (an anti-spam measure), so they could not be made reliable. See IRONCLAD_RULES.md for details.
Coding disclosure
This project was entirely vibe coded using Claude Opus 4.8. The addon — including its target resolution, auto-maintained Blizzard macro, minimap button, player list UI, and documentation — was developed iteratively in conversation with the model rather than hand-written line by line.


