promotional bannermobile promotional banner

PlayerTracker

Tracks grouped players over time: loot seen/received, Need/Greed/Pass behavior, deaths, dungeon & raid clears, and session history. Know exactly who you've run with, what they won, and how they play — across every session.
Screenshot 2026-06-08 192642.png

Screenshot 2026-06-08 192642.png

Screenshot 2026-06-08 192604.png

Screenshot 2026-06-08 192604.png

Screenshot 2026-06-08 192730.png

Screenshot 2026-06-08 192730.png

Screenshot 2026-05-16 222151.png

Screenshot 2026-05-16 222151.png

Screenshot 2026-05-16 222207.png

Screenshot 2026-05-16 222207.png

Screenshot 2026-05-16 222217.png

Screenshot 2026-05-16 222217.png

Screenshot 2026-05-16 222231.png

Screenshot 2026-05-16 222231.png

Description

PlayerTracker

v2.01h — 2026-07 · nutnhoney @ Dreamscythe · Interface: 20506 (TBC Classic 2.5.6) + 11509 (Classic Era / Hardcore 1.15.9)

Slash commands: /pt · /ptr · /playertracker

What Is It?

PlayerTracker is a passive, private observation addon — now for both TBC Classic and Classic Era (including Hardcore) from a single unified addon — that silently builds a persistent cross-session profile on every player you group with. Requires nothing from other players — no opt-in, no shared database, no configuration. Runs in the background and accumulates data forever, account-wide across all your characters.

Over time it answers questions no other addon tracks: Have I grouped with this person before? Do they roll Need on everything? How often do they die per run? How often do people die around them? Do they actually bring consumables? Have we ever cleared Black Temple together? The next time that person appears in your LFG channel, you know at a glance whether they're worth inviting — or worth avoiding.

For guild officers vetting PUG applicants it provides hard evidence: actual clears, actual roll behaviour, consume compliance, and disconnect history across dozens of runs. For casual players farming Heroics — or Hardcore players deciding who to trust with their one life — it turns every stranger into a data point that compounds the longer you play.

As of v1.2, PT can optionally share data with peers you trust through an opt-in subscription system. Your ratings and notes blend with subscribed peers into a Community Trust Score; your private data stays local.

As of v1.27, PT keeps a per-run log of every instance you complete — a sortable Run History with deaths, drops, boss progress, and a per-run "impact" breakdown — tied to the server lockout so re-entering the same raid lock never fragments your stats.

As of v1.33, one addon serves both game flavors, with a window, columns, and metrics tuned to each.

As of v2.01, PT integrates directly with Gargul: when your raid distributes loot through Gargul, PT records the awards from Gargul's own events instead of scraping chat.

Highlights

  • Runs on TBC Classic and Classic Era/Hardcore from one addon — the correct flavor loads automatically; no separate downloads
  • Entirely passive — no opt-in from other players, no broadcasts without explicit action
  • Cross-session, account-wide persistence across all your characters
  • Trust Score (0–100, color-coded) built from death rate, rolls, completion, content experience, consumes, time-together, and quest help. Always blended toward neutral on thin sample sizes
  • Guild Score and Community Trust Score sit alongside personal score when subscription data is available
  • Risk metric (Classic/Hardcore) — how often groupmates die around this player, tiered Low / Med / High once enough runs are observed
  • Trend column (Classic/Hardcore) — whether a player's Trust Score has been rising or falling across stored score snapshots
  • Hardcore-aware death tracking — permanent deaths are recorded distinctly (diedHC), with feign-death correctly excluded, and the flag survives data imports
  • Consume Score from passive buff scans at boss-pull time. No other addon or cooperation required
  • Context-weighted deaths — raid deaths count 2.5×, heroic 1.5× vs. normal
  • Run History — every completed instance logged as its own row: duration, members, deaths, drops, boss progress, cleared status, net score change
  • Run Impact — after a run, see exactly how each member's Trust Score moved and why
  • Lockout-aware run tracking — runs key off the server raid/instance lockout and (since v1.33) the instance's map ID + difficulty, so same-name instances and re-entries never fragment or wrongly merge
  • Gargul integration — with Gargul present, loot awards are recorded from Gargul's structured award events on every raid member's client: offspec flags captured, mis-awards un-counted, reassignments moved. Without Gargul, the classic chat-based detection runs unchanged
  • Form Group (TBC only) — an LFG recruiting dialog with role slots, zone picker, live roster tracking, and candidate role-check whispers
  • Unified search engine — multi-term AND search, negation, quoted phrases, across the main window, Run History, and Loot views
  • Player Detail window — dedicated draggable window per player with tabbed Activity / History / Loot / Played / Share To views
  • /pt postsummary — post end-of-run stats (loot, deaths, elapsed) to party/raid chat. Survives /reload
  • !ptwho in chat — group/raid/guild members can query a player's stats (now opt-in via the Enable !ptwho checkbox)
  • Subscription sharing — opt-in peer-to-peer data exchange. No central server. Delta-sync, push-on-change, addon-presence detection — and since v2.00, fully offline-friendly: requests to offline players queue and auto-retry until you're both online, silently
  • Stealth Mode — pause all PT addon traffic without cancelling subscriptions
  • Peer discovery — /pt scan finds other PT users in guild/raid/party
  • Right-click intelligence — rate, note, subscribe, block, send-stats from the player context menu (modern menu API where available, with an Alt-click chat-link fallback)
  • Tooltip integration — hover any tracked player anywhere; their PT profile appends to the standard tooltip
  • Self-testing & repair — DB invariants checked on every login; one-command Check DB / Fix DB with detailed reporting
  • Seamless migration from PlayerTrackerClassic — the old standalone Classic addon hands its data over automatically (see Migrating, below)

What It Tracks

Grouping — total sessions, total minutes, first/last grouped dates. Sessions survive disconnects and reloads.

Instance activity — entries and clears split across Normal / Heroic / Raid / BG / Arena, backed by an audited final-boss table covering every Classic and TBC dungeon and raid through Sunwell. On Classic Era, content is filtered to what actually exists in that era.

Per-run history — each instance you complete is logged as a standalone run: instance + difficulty, owner character, duration, members present, deaths, drops, bosses killed (e.g. 7/12), cleared status, and the net Trust-Score change for the group. Tied to the server lockout and stamped with the instance's map ID + difficulty so distinct instances that share a name can never merge, and the same lock never splits.

Consume compliance — flasks, battle/guardian elixirs, food, oil/sharpening stone, scrolls. Captured at boss pull, committed only on a confirmed kill (wipes excluded). Builds per-player percentage rates.

Loot economy — every blue+ item dropped while grouped (Seen), every item received (Got), color-coded ratio. Per-item history with item links, roll method, time-ago. Optional DE filter covers the full canonical material list. With Gargul active, received items additionally carry who awarded them and whether the award was offspec.

Roll behaviour — Need / Greed / Pass counts and percentages, captured from in-game roll messages. Ninja looters reveal themselves across dozens of runs.

Deaths — per-player death count, including your own character, captured reliably even on a full-health one-shot and across a 25-man raid. Resurrection and battle-rez are handled so deaths keep counting correctly. Per-group ratio, color-coded, broken down by content type. On Hardcore, permanent deaths are flagged distinctly and feign death is never miscounted as one.

Groupmate deaths (Risk) — for every player, how many deaths occurred among their groupmates while you observed them, and across how many observations. Once at least 5 groups are observed, this yields the Risk tier shown in the Classic window: Low, Med, or High — people around whom others keep dying.

Score history (Trend) — Trust-Score snapshots are stored over time; the Classic window's Trend column shows the delta between the oldest and newest snapshot: green +N rising, red −N falling, = steady.

Disconnects — count of online→offline transitions mid-instance, per-run ratio. (WoW can't distinguish /logout from a real DC.)

Roles (TBC) — Tank / Healer / DPS counts captured automatically. What someone actually plays, not what they claim.

Relationships — for each player, the full set of players you've grouped with alongside them, plus shared quest completions.

Ratings & notes — rate Positive / Neutral / Negative with a freetext note. Notes auto-stamp with (YYYYMMDD) when saved. Idempotent.

Peer data (subscribed only) — for every active subscription, PT stores that peer's view of every player you both know. Purged when the subscription ends.

PT presence cache — every PT user you've exchanged addon traffic with is cached with version and timestamp. Drives the cyan + indicator. Auto-pruned after 60 days.

Trust Score

Every tracked player gets a 0–100 score, color-coded green / yellow / red.

Range Meaning
80–100 Reliable, safe invite
60–79 Generally good, minor concerns
40–59 Neutral or insufficient data
20–39 Caution — some red flags
0–19 Avoid — consistent problem behaviour

Built from seven weighted components:

Component Max Measures
Death rate 25 Deaths per group, content-weighted
Roll behaviour 20 Need-roll % (requires 3+ rolls)
Completion rate 20 Clears / entries
Content experience 15 Heroic runs + boss kills combined
Consumes 10 Scaled from Consume Score
Time together 5 Total hours grouped (capped at 5)
Quest help 5 Shared quests × 0.5 (capped at 5)

Thin-sample blending — a player you've grouped with once is blended toward 50 so a single data point can't dominate. Confidence ramps to full by 10 groups.

Rating modifier — Positive adds 20, Negative subtracts 35. Clamped to 0–100. Your direct judgement overrides the algorithm.

Guild Score & Community Trust Score

Guild Score — weighted average Trust Score of every player you've grouped with in that guild. Gated on at least 3 members with groupCount ≥ 1 AND total groupCount ≥ 10 across those members. Each member contributes with weight min(groupCount, 10). Shows as g92 in the Scores column.

Community Trust Score — average of your local score for a player plus each subscribed peer's reported score for them. Only shown when at least one non-local contributor exists. Shows as c75 in the Scores column.

All three can appear together: 87 (p87 g92 c75).

The /pt Window

Open with /pt, /ptr, or /playertracker. Sortable table of every tracked player. Currently grouped float to the top with a green [*] indicator. The window title shows the current version.

Columns differ per flavor (every column header sorts):

  • TBC: Rating · Name · Scores · Role · Groups · Norm · Heroic · Raid · RIP/g · Rolls · Since
  • Classic Era / Hardcore: Rating · Name · Scores · Groups · RIP/gp (own deaths / groupmate deaths) · Risk (groupmate-death tier) · DC (disconnects, ratio-colored) · Clr% (dungeon runs + clear rate) · Trend (score direction) · Loot (seen/got with roll percentages) · Since

Indicators next to each name:

Marker Meaning
*Alice subscribed to Alice
+Bob Bob has PT (cached)
*+Charlie both
(me) / (alt) your own characters

Right-click any name for the context menu: quick rate, edit note, send stats, subscribe, whisper, invite, /who. On clients without the modern menu API this hooks the standard unit popup; Alt-clicking a PT chat link is the always-available fallback.

Left-click expands a row inline; left-click a name opens the Player Detail window.

Header checkboxes

Checkbox Default What it does
Ignore PVP ON No BG/arena contamination
Ignore DE OFF Exclude disenchanting mats from loot history
Log All Groups OFF Track outside instances
Warn Players ON Private warning on negative-rated player join
Announce PT ON Brief party/raid banner on zone-in
Log All Loot OFF Track greens too
Hide Unawarded Loot ON Filter out drops nobody got from Loot views
Ignore ML Loot ON Don't credit ML-distributed items to recipient (Gargul awards are unaffected — they're explicit)
Enable !ptwho OFF Allow others to query you via !ptwho in chat
Auto-show Run Impact OFF Pop the Run Impact window after a clear

Plus an Opacity slider (25–100%) applied to all PT windows.

Search bar syntax

The v1.33 unified search engine works across the main window, and (with its own keys) Run History and the Loot tab:

  • Multiple terms are ANDed: druid rating:+ finds positively-rated druids
  • Negation with a leading dash: -rating:- (exclude negatives), -note: also works on set-membership keys
  • Quoted phrases: item:"Scryer's Bloodgem", inst:"Karazhan"
  • Main-window keys include: class: role: rating:+/~/- score: norm: hero: raid: item: dc: inst: note: guild: and more
  • Run History keys: owner: member: cleared: mem: — plain text matches instance, note, or member names
  • The Loot tab search is a plain text filter over item names

Hover the search box for the full syntax tooltip.

Bottom bar (left → right)

Button What it does
Form Group (TBC only) Open the LFG recruiting dialog
Party Report Post individual stat lines for the current party/subgroup
Announce Refresh and post a summary
Utilities ▼ Check DB, Fix DB, Sharing, Prune 90d, Import CharacterNotes
Sharing… Quick-access subscription dialog
About Version, authors, credits, donations, Contact/Discord

On Classic the bar recenters without the Form Group slot. The Run History button sits at the list's lower right.

Form Group (TBC Only)

The Form Group dialog (button on the bottom bar, or /pt lfg) is a recruiting assistant for building dungeon and raid groups:

  • Pick the target instance from a zone list (Classic-era instances carry era tags and are filtered to your client's era)
  • Track needed roles (tank / healer / DPS) against a live roster of your current group
  • Whisper role-check messages to candidates and track their replies
  • Announcements are election-coordinated so multiple PT users in the same group don't spam duplicate broadcasts

Form Group is deliberately absent on Classic Era/Hardcore — its role-oriented recruiting flow is TBC-era design.

Gargul Integration (v2.01)

If you run Gargul for loot distribution, PT plugs into Gargul's own developer event bus:

  • Awards are recorded from structured events, not chat scraping — including on every raid member's client, not just the master looter's
  • Offspec awards are flagged, and the awarder is recorded
  • Mis-awards get un-counted and reassignments move the credit — corrections chat parsing could never see
  • Disenchant awards are ignored, and your quality/exclusion filters apply identically to both detection paths
  • Duplicate delivery is neutralized by Gargul's own award checksums, and the physical loot/trade message for an already-counted award is suppressed from double-counting (even when the trade happens minutes later)
  • Awards are only accepted from your own party/raid — Gargul's guild-chat announcements are never an attribution source

Everything is feature-detected: without Gargul installed, the classic chat-based loot detection runs exactly as before. A future Gargul API change can cost the integration, but can never break PT.

Run History & Run Impact

PlayerTracker logs every instance you complete as its own run, tied to the server's raid/instance lockout and stamped with map ID + difficulty. Dying and running back — or coming back hours later to the same lock — stays a single run.

Run History (/pt history, alias /pt runs, or the button)

A sortable, resizable window listing recent runs. Each row shows: Date, Duration, Instance (with difficulty), Owner (which of your characters ran it), Mem, Clr, Dth, Drops, Boss progress, and Score Δ. The search box supports the unified syntax with owner: member: cleared: mem: keys. Click a run to filter the main window to that instance.

Run Impact (/pt impact, or auto-show after a clear)

Breaks down how each member's Trust Score changed on that run and why. /pt impact last reopens it for the previous run.

Player Detail Window

Click any player to open a dedicated, draggable, resizable window. Position, size, and opacity persist across sessions.

Title bar: Name (Level) [Score] <Guild>. Below it, the rate-and-note panel — Rate Positive / Neutral / Negative with explanatory tooltips, and a 2-line note edit with Share checkbox.

Five tabs — Activity (your complete observation plus the aligned Community grid of every observer's view, with peer notes below), History (per-instance run/clear history with last-clear dates — click-to-filter), Loot (per-item seen/got/roll history; live-updates during loot events; honors Hide Unawarded Loot), Played (who this person runs with, with scores), Share To (what you share with this peer).

Combat-close — entering combat closes ALL PT windows so they never obstruct the playing field.

/pt postsummary

End-of-run stats posted to party / raid chat in three lines. Auto-detects RAID vs PARTY (or prints locally if solo). Aliases: /pt runend, /pt runstats. Quality filter skips conjured items/consumable noise; the excluded-items list (badges, bijous, scarabs) is also skipped. Persists across /reload. Clean run? Line 3 reads Deaths: Clean run — nobody died.

Consume Score

Separate 0–100 score measuring buff compliance at boss pulls. Captured passively at pull-start, committed only on a successful kill.

Component Max Threshold
Flask or double-elixir 40 Flask, or both battle + guardian
Single elixir 20 One elixir (half credit)
Food buff 20 Any food buff active
Weapon oil / sharpening 20 Active at pull
Scrolls 20 Any stat scroll active

Untested components default to 50 (neutral). Feeds the Trust Score's Consume component.

Sharing & Subscriptions

Optional peer-to-peer data exchange. No central server. All traffic over WoW's addon channel between two characters who've each accepted a subscription. Bidirectional.

Subscription states: pending_outgoing, pending_incoming, active, ended, stale (Re-request offered).

Three sync paths: push-on-change, login auto-sync (delta), and manual /pt netsync.

Offline-friendly since v2.00 — the whole flow now works when the other person isn't online:

  • Requesting a subscription to an offline player queues the request (visible in both the Subscriptions and Pending tabs, with a status and a Remove button) and auto-retries — shortly after login and every 10 minutes — until you're both online and it lands. /pt retry forces one.
  • The client's yellow "No player named X is currently playing." spam from PT's own background sends is silenced — only for PT's traffic; your own /w errors are untouched.
  • The courtesy "download PT" whisper to a player without the addon is only ever sent when they're actually online, at most once per day — detected via the same not-found signal, so nothing is ever whispered into the void.

The Sharing dialog (Sharing… button, /pt sharing) has three tabs: Subscriptions, Pending Requests (incoming and your outgoing), Block List — including a "Block ALL incoming requests" master switch. /pt subscribe <name> subscribes directly from the command line; /pt subs prints the raw subscription table for diagnostics.

Unsubscribing surgically removes that peer's contributions via PTPurgePeerData — your own data is unaffected.

Peer Discovery, Stealth Mode, !ptwho

/pt scan guild | raid | party — one version-request broadcast, responses collected and cached 60 days. /pt users opens the cached presence list with a Re-scan button.

/pt stealth on|off|status — global pause on all PT addon traffic. Inbound dropped, outbound silenced, [STEALTH] badge on the title. Subscriptions stay intact; disabling fires a delta sync of everything that changed while quiet.

!ptwho Playername in guild/party/raid chat — PT answers with a full stat line. Now opt-in: the Enable !ptwho checkbox (default OFF) must be on for your client to respond. 3-second per-name throttle, case-insensitive, plain text.

Saving Your Data

The database is written to disk by WoW on a clean logout, disconnect, /reload, or quit. Completed runs are recorded the instant the final boss dies. /pt save forces a flush now (via UI reload; won't run in combat).

Self-Test & Repair (Check DB / Fix DB)

A quiet DB invariant check runs on every login. On demand: Utilities ▼ → Check DB / Fix DB, or /pt selftest / /pt selffix.

  • Check DB is read-only; reports violations by code — orphaned counters, completed-without-entered, clears exceeding runs, invalid disconnect counts, and split-lockout runs that should merge.
  • Fix DB repairs what Check DB finds — notably folding split runs into one (members, loot, deaths, bosses, cleared status combined). Since v1.33, merge decisions are additionally guarded by map ID + difficulty, so two different instances that share a display name can never be wrongly merged.

Fix DB only rewrites history when you explicitly run it.

Migrating from PlayerTrackerClassic

The old standalone Classic addon has been retired into this unified one. Your data migrates automatically, whichever path you take:

  • You update the old addon: its final release is a small handoff stub. On login it hands your data to the new addon (whichever dataset is larger wins — normally your old one), shows a popup with a copyable CurseForge link if the new addon isn't installed yet, then disables itself and invites you to delete the folder. Until the new addon is installed, the old /pt command and a minimap icon route you to the install popup rather than failing silently.
  • You install the new addon while the old one is still present: the new addon detects the legacy copy at login, arbitrates the data the same way, disables the old addon, and offers a one-click Reload to finish. Nothing to do manually.

Either way, delete the old PlayerTrackerClassic folder whenever convenient — your data lives in the new addon's own file from the first logout onward.

About Window & Contact

The About button shows version, compile date, authors (nutnhoney @ Dreamscythe, sugarpuffz @ Doomhowl), special thanks, a click-to-copy download URL, and Donations.

If you like PT, the best donation is recommending it to a friend.

CharacterNotes Import

/pt importcn (or Utilities ▼) migrates everything from the CharacterNotes addon in one pass — notes, ratings, and records for players you've never grouped with. Idempotent.

Privacy

Your database is local (WTF/Account/<account>/SavedVariables/PlayerTracker.lua) and is never transmitted except via: explicit subscriptions you've accepted; scan responses (version only; silenced by Stealth); explicit user-driven posts (!ptwho — which is additionally opt-in now — Send Stats, Party Report, /pt postsummary); and the Announce PT zone-in banner (default ON; turn off to stay silent). That's the entire surface.

Commands (essentials)

Command Description
/pt Toggle the PlayerTracker window
/pt help Full command list
/pt ver Print version
/pt history Open Run History (alias: runs)
/pt impact Run Impact for the current run (/pt impact last for previous)
/pt postsummary Post end-of-run stats (aliases: runend, runstats)
/pt save Force the database to disk now (UI reload)
/pt sharing Open the Sharing dialog
/pt subscribe <name> Subscribe to a player directly (queues + retries if they're offline)
/pt retry Re-send pending subscription requests now
/pt subs Print the subscription table (diagnostics)
/pt lfg Open Form Group (TBC)
/pt scan party/raid/guild Scan for PT users
/pt stealth on/off Toggle Stealth Mode
/pt dbexport / /pt dbimport Full-database export / import (backup, migration between accounts/machines)
/pt importcn Import CharacterNotes
/pt selftest Run DB invariant checks (Check DB)
/pt selffix Repair DB issues, incl. merging split runs (Fix DB)
/ptwho <name> Print a player's stats locally
/ptwho <name> @<target> Whisper a player's stats to someone
!ptwho <name> In group chat — anyone can query (requires your Enable !ptwho)

Run /pt help for the full list. Aliases: /ptr · /playertracker


Changed since v1.27w (summary)

  • One addon for both flavors (v1.33): TBC Classic + Classic Era/HC, flavor detected automatically; era-appropriate window columns, metrics (Risk, Trend, DC, Clr%, Loot), Hardcore death tracking, era-filtered content lists
  • Gargul loot integration (v2.01) with correction-aware award recording, group-scope enforced
  • Form Group LFG recruiting dialog (TBC), with announce election
  • Unified search with AND terms, negation, quoted phrases; Run History and Loot search
  • Offline-friendly subscriptions: queued requests with auto-retry, visible/removable in the Pending tab, silenced system spam, online-gated courtesy whispers
  • Run identity hardening: map ID + difficulty stamped on runs and used as merge guards; the raid duplicate-run bug class fixed at the root
  • Right-click menus rebuilt on the supported menu APIs (with Alt-click fallback) instead of fragile dropdown injection
  • !ptwho is now opt-in (default OFF)
  • Ignore ML Loot now defaults ON
  • Bottom bar: Group Summary retired; Form Group added (TBC); Run History moved beside the list; About gained the Contact/Discord section
  • Full-DB export/import with scoped payloads (backup / sharables / ratings) and merge semantics
  • PlayerTrackerClassic retirement: automatic data handoff via the stub or the built-in coexistence guard
  • Internals: the addon is now 14 modular files instead of one 23,000-line file, with an offline test battery guarding search, merges, codecs, the Gargul flow, and UI rendering

The PlayerTracker Team

profile avatar
  • 1
    Projects
  • 2.2K
    Downloads