EarlyPull tells you who pulled the boss and how far off the pull timer they were — then quietly tracks every pull across your raid night so you can name names later.
A standalone Midnight (12.0+) port of the Early Pull WeakAura, rebuilt from the ground up because Midnight's Restricted Addons system silently disables COMBAT_LOG_EVENT_UNFILTERED inside raid encounters and the original WA stopped working as a result.
At engage: a center-screen banner fires immediately with the timing and the puller's name, e.g. "Boss pulled 0.42 seconds early by Stoley." Tanks get an exemption — they're supposed to pull, so the early flag is suppressed for them. The on-time window is a forgiving 0.25s by default.
Across the night: every pull is recorded into a session bucket (one per raid instance per ~3 hour window). Open the report with /earlypull stats to see a per-puller leaderboard ("Itsamemonk: 8 pulls — 5 early, 2 on time, 1 late") and a chronological list of each pull. Buttons let you post a session summary to RAID or PARTY chat between pulls.
How attribution works under Midnight restrictions: the addon resolves the puller from three layered sources, whichever lands first — the boss's current target (most reliable, identifies the tank), Blizzard's DAMAGE_METER_COMBAT_SESSION_UPDATED event, and polling C_DamageMeter.GetCombatSessionFromType for the first 7 seconds. If nothing resolves, the banner fires with "by [Unknown]" so the timing info isn't lost.
Limitations: display is local-only by design (Midnight blocks addon-initiated chat in raid combat) — each user running EarlyPull sees their own banner. The damage-meter heuristic can occasionally mis-attribute burst-DPS classes when the boss-target signal isn't available; tank pulls resolved via boss target are reliable.
Slash commands: /earlypull settings, /earlypull test simulate a banner, /earlypull stats open the report window, /earlypull reset wipe history.
Source code, issue tracker, and release notes: github.com/danvernon/early-pull