promotional bannermobile promotional banner

Nem: Pet Alerts

Never miss critical pet problems again. Large on-screen alerts for dead, missing, CC’d, low health, or taunting in groups.

File Details

v12.0.24

  • R
  • May 9, 2026
  • 4.84 MB
  • 1.3K
  • 12.0.5
  • Retail

File Name

v12.0.24.zip

Supported Versions

  • 12.0.5

v12.0.24 — May 9, 2026

All Warlock Specs — "Summon Demon" / "Demon Died" False Alerts In Combat

The "SUMMON DEMON" and "DEMON DIED" alerts no longer fire incorrectly during combat when you are talented into Grimoire of Sacrifice. Previously both alerts could lock on for the rest of the fight in Mythic+, battlegrounds, arenas, or open-world combat — even though the Sacrifice buff was active. The "DEMON DIED" alert specifically fired every time you sacrificed your demon mid-pull, since the brief dead-state during sacrifice was being treated as a real pet death.

Both alerts now stay silent during combat, and for 1.5 seconds afterward to give the buff state time to settle. The alert state then re-evaluates automatically at 1.5s and 2.5s after combat ends without polling anything in between.

The "Sacrifice Demon" alert (the one telling you to sacrifice when you have the talent but no buff yet) is unaffected and still fires the same way out of combat.

What changed under the hood: in restricted execution contexts (M+ combat, rated PvP, and certain open-world combat scenarios) the WoW engine masks the Sacrifice buff's spell ID as a secret value, making the buff invisible to addons regardless of which aura API they use — the index walk and C_UnitAuras.GetPlayerAuraBySpellID both return as if the buff weren't there. Since direct buff inspection cannot work in those contexts, the talent branches in each Warlock spec's GetHighestPriorityAlert (both the no-pet path and the dead-pet path) and the sacSuppressed check in PreEvaluate now treat any active combat as "buff present" for a Grimoire-of-Sacrifice warlock. A new state.sacGraceUntil field, set to GetTime() + 1.5 on PLAYER_REGEN_ENABLED (only when the talent is taken), extends that suppression for 1.5 seconds after combat ends; two C_Timer.After one-shots at 1.5s and 2.5s force re-evaluation once the engine has uncovered the aura, so the alert state catches up promptly without any polling. As a small secondary win, the buff scan now tries GetPlayerAuraBySpellID as a fast path before falling back to the 40-aura index walk in unrestricted contexts. Applied identically to Affliction, Demonology, and Destruction.

Options Panel — Brought Up To Suite Standards

The options panel has been rebuilt to match the canonical Nem: Alerts suite layout. Most of these changes are layout polish, but one — the removal of the Alert Text Scale slider — will be visible if you customized it.

  • Alert Text Scale slider removed. The Display section now controls alert text sizing with the Font Size slider alone, matching the rest of the suite. If you previously had Alert Text Scale set to anything other than the default (1.0), your alert text will appear at a different size on first login after this update — adjust Font Size up or down to compensate. Your saved scale value is cleared automatically.
  • Alert Font dropdown moved. The font selector now lives in the Display section (right column, beneath the Font Size slider) instead of in Alert Options. Same dropdown, same fonts — just a more sensible home.
  • Sounds section alignment. The sound dropdown next to each row was sitting 40px too far right. It now lines up with the dropdowns in the other Nem: Alerts addons.
  • Alerts grid spacing. The alert checkboxes were a few pixels off in column position and a few pixels tight in row spacing. Both now match the suite standard, so the section feels less cramped.
  • Heal Pet Threshold reformatting. The input is now labeled "Heal Pet Threshold (%)" with the percent baked into the label — the separate "%" suffix is gone. Functionality is unchanged.
  • Alert Options spacing. Closed the oversized gap between the Heal Pet Threshold row and the eight alert text edit boxes underneath it. The block now sits at the same tightness as the equivalent section in Nem: Healer Alerts.
  • Class-colored text inputs. Every text input on the options panel — the Heal Pet Threshold field and all eight alert text override boxes in Alert Options — now renders its text in your active spec's class color, matching the slider value field, section borders, and scrollbar thumb. Switching specs retints them automatically.
  • Pixel-level alignment polish. The Font Size slider and Alert Font dropdown in the Display section nudged a few pixels right so they sit directly above the right column of alert checkboxes. The alert text override boxes in Alert Options shifted similarly so each box's left edge lines up with the checkbox icon directly above it. Nothing functional — the panel just looks cleaner now.
  • Scrollbar bottom flush with Alert Options. When scrolled all the way down, the bottom of the Alert Options section box now lines up exactly with the bottom of the scrollbar track — the previous ~16px of empty padding below the box is gone. Top edge alignment is unchanged.

What changed under the hood: the panel now exposes the canonical specHelpers contract (MakeCheckbox, MakeCheckboxAt, MakeCheckboxRow, MakeCheckboxWithNumeric, MakeNumericInput, Spacer) and calls mod:BuildAlertOptions(box, db, specHelpers) on the active module, matching the rest of the Nem: Alerts suite. Each pet spec now declares its own BuildAlertOptions block that registers the heal pet threshold via helpers:MakeNumericInput. The Alert Font dropdown is created once at panel-init time (parented to displayBox so hide/show propagates) instead of being rebuilt on every spec change. Saved variables bumped to ver=3; one-shot migration scrubs the stale db.scale field.