Description
# Hunter's Mark Alert
One job: if you target an attackable enemy in content you've enabled and Hunter's Mark
isn't on it, a warning flashes in the center of your screen until the Mark goes up or you
switch targets. Hunters only. The addon is inert on every other class.
Built for Midnight 12.1.0, Curse of Ula'tek (Interface 120100), and still supported on
12.0.7. The TOC declares both, so it loads without the out-of-date flag on either.
## Why
The Mark is free damage for the whole group and the easiest button in the game to forget.
This addon does nothing until you forget, then makes sure you notice.
## Features
- Centered, high-visibility alert you won't miss mid-pull
- Raids and active Mythic+ keystones on by default. Mythic 0, heroic, normal, and follower
dungeons each toggle on their own.
- Counts any hunter's Mark, not just yours, so you aren't warned about a Mark that's
already up. The group-wide scan only runs when another hunter is actually with you.
- Optional sound on alert, four choices, with a preview button
- Drag the alert anywhere on screen, then lock it
- Font, outline, size, color, and pulse all adjustable
- Expressway support through LibSharedMedia, with sensible fallbacks
- Settings apply live, persist account-wide, and survive an upgrade
## Options panel
Type `/hma`. Nothing needs a `/reload`. Settings save to `HuntersMarkAlertDB`.
- **Active in**: raids, keystones, Mythic 0, heroic, normal, follower dungeons
- **Detection**: whether another hunter's Mark counts, and what to do when the game hides
aura data
- **Appearance**: font, outline, size, color, pulse. Changing any of them flashes the alert
so you can see the result.
- **Position**: Unlock, drag, Lock. Reset puts it back above center.
- **Sound**: off by default. Raid Warning, Ready Check, Alarm Clock, or Boss Whisper.
The alert text itself is set with `/run HuntersMarkAlertDB.text = "YOUR TEXT"` followed by
`/reload`.
## What triggers the alert
All of these have to be true:
- The zone type is enabled in the panel
- You're alive and have a living, attackable target
- No Hunter's Mark (spell 257284) is on it, from you or anyone else
## Secret Values, honestly
Patch 12.0 let the game hide other players' auras from addons in instanced combat. 12.1
goes further. Reading auras by index, slot, or instance ID now throws a Lua error outright
whenever auras are secret, which covers combat, encounters, keystones, and PvP, every
situation this addon exists for. Lookups by spell ID and spell name are the exemption, so
that's all this addon uses. It doesn't walk the debuff list at all anymore.
Whether those lookups can actually see Hunter's Mark comes down to whether Blizzard flags
the Mark as never-secret. The client will tell you. `C_Secrets.ShouldSpellAuraBeSecret(257284)`
answers it directly, the addon asks once per session, and detection follows the answer.
- **Not secret.** The lookup works everywhere, so a missing Mark is conclusively missing and
the alert fires on the first pull.
- **Secret.** The lookup comes back empty in restricted combat whether or not a Mark is up.
The addon won't claim an absence it can't prove, so the "Alert even when aura data is
hidden" checkbox decides whether to warn anyway. It's off by default, so a fresh login
stays quiet rather than nagging.
Seeing beats being told. If the Mark ever does read while auras are secret, that
observation overrides the flag for the rest of the session. On a build with no `C_Secrets`
namespace the observation is the only signal there is, and the addon runs on it alone.
On 12.0.7 the older picture still holds: your own auras are readable, so your own Mark is
detected exactly, and only the group-wide "any hunter's Mark" check runs into hidden data.
The addon probes per filter, so a hidden group-wide view never casts doubt on your own Mark.
Run `/hma debug` on a marked target inside a real keystone or raid pull to see which case
you're in.
## Slash commands
- `/hma` opens the options panel
- `/hma test` flashes the alert for 3 seconds
- `/hma world` alerts everywhere, for training dummies
- `/hma debug` prints zone state, hunter count, the aura lookup in use, what the client says
about Mark secrecy, and the scan verdict
- `/hma on` and `/hma off` enable or disable the addon
## Font
The alert prefers Expressway and looks for it in this order:
1. LibSharedMedia. If you run ElvUI, SharedMedia, or anything else that registers Expressway,
it's picked up automatically with zero setup. Every other SharedMedia font shows up in the
font dropdown too.
2. A manual copy at `HuntersMarkAlert\Media\Expressway.ttf`. New font files need a full client
restart, not just a `/reload`.
3. The default game font, with a one-time chat notice so you know it fell back.
## Troubleshooting
- **No alert at a training dummy.** Dummies sit outside instanced content. Turn on `/hma world`
first.
- **No alert in a keystone.** Run `/hma debug` on a marked target. If it reports the Mark as
secret, the addon is staying quiet on purpose because it can't prove the Mark is missing.
Enable "Alert even when aura data is hidden" if you'd rather be warned anyway.
- **Wrong font.** Confirm the file is named exactly `Expressway.ttf`, lives in the Media folder,
and that you fully restarted the client.
- **Spell ID changes in a future patch.** Update `MARK_SPELL_ID` near the top of the Lua file.
Name matching keeps the addon working in the meantime.
## Known limits
- Whether the Mark is exempt from Secret Values is Blizzard's call and can change from build to
build. The addon reads the current answer instead of assuming one, but if the Mark isn't
exempt it can only warn on the unverifiable setting rather than on proven absence.
- The 12.1 detection path is covered by offline tests and checked against the shipped API, but
hasn't been confirmed on a live 12.1 client yet.
- If Blizzard fully hides hostile aura data in some future content type, the addon fails quiet
by design instead of guessing.

