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-05-16 222140.png

Screenshot 2026-05-16 222140.png

Screenshot 2026-05-16 222159.png

Screenshot 2026-05-16 222159.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

v1.25i — 2026-05-17 · nutnhoney @ Dreamscythe · Interface: 20505 (TBC Classic 2.5.5)

Slash commands: /pt · /ptr · /playertracker


What Is It?

PlayerTracker is a passive, private observation addon for TBC Classic 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? 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, 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.


Highlights

  • 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
  • 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
  • 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 — anyone in your group/raid/guild can query a player's stats
  • Subscription sharing — opt-in peer-to-peer data exchange. No central server. Delta-sync, push-on-change, addon-presence detection with friendly invite
  • Stealth Mode — pause all PT addon traffic without cancelling subscriptions
  • Peer discovery/pt scan finds other PT users in guild/raid/party with their version
  • Right-click intelligence — rate, note, subscribe, block, send-stats from a single menu
  • Tooltip integration — hover any tracked player anywhere; their PT profile appends to the standard tooltip
  • Self-testing — DB invariants checked on every login; one-command repair available

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 372-entry final-boss table covering every Classic and TBC dungeon and raid through Sunwell.

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 over time.

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.

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 via UNIT_HEALTH. Works at range across a 25-man raid. Per-group ratio, color-coded red for chronic offenders, broken down by content type.

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

Roles — 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 — re-saving updates the date but doesn't duplicate.

Peer data (subscribed only) — for every active subscription, PT stores that peer's view of every player you both know. Per-player under pd.peers[peerKey], purged when subscription ends.

PT presence cache — every PT user you've exchanged any addon traffic with is cached in PlayerTrackerDB.knownPTUsers with version and timestamp. Drives the cyan + indicator in the main list. 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) so one heavy-exposure player can't solo-determine the score. 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 (otherwise it'd just duplicate the personal score). Shows as c75 in the Scores column.

All three columns can appear together: 87 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.

Columns: Rating · Name · Scores (personal + g + c) · Role · Groups · Norm · Heroic · Raid · Loot · Since · Community Rating

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 a single-pane menu: quick rate, edit note, send stats to any channel, subscribe, whisper, invite, /who.

Left-click expands a row inline; left-click a name opens the Player Detail window (see next section).

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
Hide Unawarded Loot ON Filter out drops nobody got from the Loot view
Announce PT ON Brief party/raid banner on zone-in
Log All Loot OFF Track greens too
Mini Tooltip ON Tooltips show only score + note
Ignore ML Loot OFF Don't credit ML-distributed items to recipient

Search bar syntax

class:druid · role:tank · rating:+/~/- · score:60 · norm:5 · hero:5 · raid:3 · item:nether · item:"Scryer's Bloodgem" · dc:N

Bottom bar (left → right)

Button What it does
Party Report Post individual stat lines for current party / 5-man subgroup
Group Summary Group-level summary to party/raid/guild
Announce Refresh and post a summary
Utilities ▼ Sharing, Prune 90d, Import CharacterNotes
Sharing… Quick-access subscription dialog
About Version, authors, credits, donations link

Player Detail Window

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

Title bar shows: Name (Level) [Score] <Guild>

Below the title: a rate-and-note panel — Rate Positive / Neutral / Negative buttons with hover tooltips explaining each rating's behaviour, plus a 2-line note edit with Share checkbox.

Five tabs

Each has a hover tooltip describing its content.

Activity — your complete observation: groups, normal/heroic/raid runs/clears, deaths, role, disconnects, loot, rolls, raid clears. Below your stats is a tabular Community grid showing one row per observer:

                Score  Grps  R/B/C %         Deaths (/g)   Loot d/r
[You] sees       66+    5    14/34/9 (64%)   21 (4.20/g)   35/3
[Frostbornetv]   56     8    8/26/7  (87%)   31 (3.88/g)   70/10
[Buzzcap]        44     2    1/4/0   (0%)    10 (5.00/g)   27/0

All six columns line up across rows so peer observations can be compared at a glance. Peer notes appear as wrapped wide rows below the grid.

History — per-instance dungeon and raid history with run count, clear count + completion %, and last-clear date. Click any row to filter the main /pt window.

Loot — items this player has seen drop and received. Per-item: seen, got, roll history (Need / Greed / ML), last-seen date. Affected by the "Hide Unawarded Loot" toggle on the main window.

Played — other tracked players this person has been in groups with, by name + score + guild at the time. Useful for finding people who run with negatively-rated players.

Share To — manage what data PlayerTracker shares with this player (when they're a subscribed peer). Includes mutually-sharing status.

Combat-close — entering combat closes ALL PT windows (main, detail, sharing, about, note edit, users list) so they don't 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.

Example:

[PT] Karazhan (Heroic) · 1h42m · 8 deaths · 12 drops
Loot: Sugarpuffz 4 (3N/1G) · Bonzeye 2 (2N) · Lynine 2 (1N/1G) · Shamanistix 1 (1G)
Deaths: Sugarpuffz 3 · Bonzeye 1 · and 6 others died once

Behaviour:

  • Loot column shows count + Need/Greed breakdown per recipient
  • Death list tiers: players with 2+ deaths shown individually; 1-deaths collapsed into a trailing count
  • Quality filter — healthstones, conjured food/water, low-tier potions, mana biscuits are skipped (they fire CHAT_MSG_LOOT but aren't real drops). Excluded-items list (badges, ZG bijous, AQ scarabs) also skipped
  • Persists across /reload — run stats survive any number of reloads mid-instance via PlayerTrackerDB.currentRun
  • Privacy — only your own observed data leaves your client. No ratings, scores, peer-shared data, or notes ever reach chat
  • Clean run? Line 3 reads Deaths: Clean run — nobody died.

Consume Score

Separate 0-100 score measuring buff compliance at boss pulls. Captured passively via buff scan at pull-start, committed only on successful boss 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) so new data isn't penalised. The Consume Score feeds into the Trust Score as the Consume component (10 max).

Shown in the expanded Activity panel as: Consumes: 26 Fl:29 Fd:70


Sharing & Subscriptions

Optional peer-to-peer data exchange. No central server, no third-party hosting. All traffic over WoW's CHAT_MSG_ADDON between two characters who've each accepted a subscription. Bidirectional — once accepted, both sides share on equal footing.

Subscription states:

State Meaning
pending_outgoing You sent the request
pending_incoming They sent, awaiting your accept
active Bidirectional sync running
ended You unsubscribed; peer data purged
stale They dropped you; Re-request button shown

Three sync paths keep peers up to date:

  • Push-on-change — rate or edit a note → single-record update to every active subscriber immediately
  • Login auto-sync — 30s after login, delta SYNC_REQ to every active subscription (skipping any synced in the last 5 minutes)
  • Manual/pt netsync

Addon-presence detection — initiating a subscription also probes for PT presence. If no response in 12s, the target gets a one-line whisper with the Curseforge download link. If they already have PT, they get the subscription-request popup instead — no whisper.

The Sharing dialog (Sharing… button or /pt sharing) has three tabs: Subscriptions, Pending Requests, Block List. Includes a "Block ALL incoming requests" master switch.

When you unsubscribe, that peer's contributions are surgically removed via PTPurgePeerData — your own data is unaffected.


Peer Discovery

/pt scan guild | raid | party — broadcasts a single VER_REQ to that channel, collects responses for 8 seconds, prints results. Results cached in knownPTUsers for 60 days. The cyan + indicator in the main /pt window shows every cached PT user; refreshed by any subsequent inbound addon traffic.

/pt users opens a windowed cached-presence list with a one-button "Re-scan group/guild" action.


Stealth Mode

/pt stealth on|off|status — global pause on all PT addon traffic.

While stealthed: outbound silenced (no SUB_REQ, no SUB_PING, no RECORD, no SYNC_REQ); inbound dropped (no popups, no traffic). [STEALTH] badge on the /pt window title. Subscriptions stay intact — they just pause.

On disable: a SyncAll automatically fires to every active subscription. Subscribers only receive records that actually changed during the stealth window (pd.lastUpdated is stamped during stealth even though nothing went on the wire).


!ptwho in chat

Any guild / party / raid member can type !ptwho Playername in chat and PT responds in the same channel with a full stat line:

[PT] [+] Sugarpuffz [95] | N:30(47%) H:25(60%) R:4(100%) | RIP:0.74 N:0.03 H:0.32 R:1.50 dc:1 (3%) | Consume:78 Flask:89% Food:72% | Loot:46/193(24%)

3-second per-name throttle. Case-insensitive. Plain text — safe for all channels.


About Window

About button on the main /pt window's bottom bar. Shows version, compile date, authors (nutnhoney @ Dreamscythe, sugarpuffz @ Doomhowl), special thanks, and a click-to-copy Curseforge URL for sharing with others.

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


CharacterNotes Import

/pt importcn (or Utilities ▼ → Import Character Notes) migrates everything from the CharacterNotes addon in one pass:

  • All text notes (skips players where you already have a PT note)
  • Ratings (CN positive/negative → PT positive/negative, only on neutral/unset PT ratings)
  • Creates records for players you've never grouped with so your existing reputation is preserved

Idempotent — safe to run multiple times. Reports a summary like: CN import: 47 notes 3 skipped 12 ratings


Privacy

Your PlayerTracker database is local. It lives in WTF/Account/<account>/SavedVariables/PlayerTracker.lua and is never transmitted anywhere except via:

  • Explicit subscriptions you've accepted (full bidirectional sync with that peer only)
  • Scan responses to /pt scan from other PT users in your channels (just your version, nothing else; silenced by Stealth)
  • Explicit user-driven posts!ptwho, Send Stats, Party Report, /pt postsummary
  • Announce PT (default ON) — brief banner on zone-in; turn off if you'd rather stay silent

That's the entire surface. Your ratings, notes, and raw data are otherwise private.


Commands (essentials)

Command Description
/pt Toggle the PlayerTracker window
/pt help Full command list
/pt ver Print version
/pt postsummary Post end-of-run stats to party/raid (aliases: runend, runstats)
/pt sharing Open the Sharing dialog
/pt scan party/raid/guild Scan for PT users
/pt stealth on/off Toggle Stealth Mode
/pt importcn Import CharacterNotes
/pt selftest Run DB invariant checks
/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

Run /pt help for the full list including diagnostic, subscription management, and admin commands.

Aliases: /ptr · /playertracker

The PlayerTracker Team

profile avatar
  • 1
    Projects
  • 1.2K
    Downloads