Track everything. Visualize anything. Own your data.
Features β’ Installation β’ Usage β’ Data Export β’ WhoDASH
WhoDAT (Who's Doing All This?) is a World of Warcraft addon that captures every meaningful event in your character's journey. From gold fluctuations and quest completions to combat statistics and auction house activity, WhoDAT provides a comprehensive, event-sourced data layer for your WoW experience.
Unlike traditional addons that only show current state, WhoDAT maintains complete historical records of your character's progression, enabling powerful analytics through the companion WhoDASH web dashboard.
Graphs![]() |
Settings![]() |
Widget Mode![]() |
- Real-time monitoring of experience, rested XP, and level progression
- Combat statistics including power, defense, armor, attack power, spell power
- Character attributes with full stat breakdowns (Stamina, Strength, Agility, Intellect, Spirit)
- Resistances across all schools of magic
- Talent tracking with snapshot support
- Guild membership and progression
- Gold tracking with session-based trend analysis
- Money flow from looting, questing, vendoring, and auction house
- Per-character and account-wide wealth aggregation
- Historical snapshots to track economic decisions
- Quest log monitoring with progress tracking
- Quest completion events with reward details
- Achievement unlocks with timestamps
- Quest chain visualization ready data
- Death tracking with killer information, location, and durability loss
- Combat event logging (damage dealt, healing, crowd control)
- Buff/debuff snapshots at combat start and end
- Instance and raid participation tracking
- Market price tracking with time-series data
- Your auction outcomes (posted, sold, expired, cancelled)
- Historical market trends for all items
- Bidding and buyout behavior analysis
- Container snapshots (bags, bank, keyring, mailbox)
- Item lifecycle events (obtained, equipped, sold, destroyed)
- Equipment changes with before/after states
- Durability tracking across all gear slots
- Raid and dungeon lockout tracking
- Boss kill progression per instance
- Reset timers and extended lockout support
- Friend list changes
- Ignore list tracking
- Guild roster updates
- Party and raid composition logging
- Sparkline graphs for gold, XP, rested, honor, power, and defense
- Session-scoped data (show only last N sessions)
- Customizable graph visibility and smoothing
- Lightweight rendering optimized for Wrath client
- Dual modes: Full docked window or minimal floating widget
- ElvUI integration with automatic skinning support
- Theme options: WhoCHAT-style dark theme or classic WoW chrome
- Drag-to-resize and position saving
- Tab-based navigation for different data views
- Chunked export for large datasets (prevents disconnects)
- Metadata tracking with hash-based change detection
- Export progress UI with cancel support
- JSON output optimized for WhoDASH import
- Selective export (only changed chunks)
- Download the latest release from Releases
- Extract the
WhoDATfolder to your WoW addons directory:World of Warcraft/Interface/AddOns/WhoDAT/ - Restart WoW
cd "World of Warcraft/Interface/AddOns/"
git clone https://github.com/Xanthey/whodat.git/whodat - Toggle main window
/whodat show - Show main window
/whodat hide - Hide main window
/whodat widget - Toggle widget overlay mode
/whodat export - Export all data to JSON
/whodat export mini - Export minimal dataset
/whodat reset - Reset window position and size
/whodat lock - Lock widget in place
/whodat unlock - Unlock widget for repositioning
-
Launch WoW and log in to your character
-
Type
/whodatto open the main interface -
Explore the tabs:
- π Graphs - View real-time progression charts
- π― Stats - Detailed character statistics
- π° Economy - Gold and wealth tracking
- πͺ Auction - Market activity and history
- βοΈ Config - Customize behavior and appearance
-
Configure graph visibility in the Config tab to show only the metrics you care about
For a minimal, unobtrusive experience:
- Type
/whodat widgetto enable widget mode - Drag the title to reposition
- Customize display in Config β Widget Settings
- Type
/whodat lockwhen positioned
WhoDAT's export system generates JSON files containing your complete character data.
/reload the game, exit the game, or any other event that causes the game to refresh it's local data or:
/whodat export
This creates timestamped JSON files in your WTF/Account/<Account>/Server/Character/SavedVariables/ directory.
{
"metadata": {
"version": "3.0.0",
"schema_version": 3,
"export_format": "v3",
"generated_at": 1704067200,
"character": {
"name": "YourName",
"realm": "YourRealm",
"class": "Warrior",
"faction": "Alliance",
"level": 80
}
},
"chunks": {
"identity": { /* Character identity */ },
"series_money": { /* Gold over time */ },
"series_xp": { /* Experience progression */ },
"events_items": { /* Item lifecycle events */ },
"events_quests": { /* Quest completions */ },
"snapshots_equipment": { /* Gear changes */ },
"catalogs_items": { /* Item database */ }
}
}For large datasets, WhoDAT uses chunked exports to prevent disconnections:
- Each logical data domain is a separate chunk
- Chunks are hashed to detect changes
- Export only sends modified chunks
- Progress UI shows real-time status (rarely, when applicable)
WhoDASH is the companion web dashboard for visualizing WhoDAT data. Check out the WhoDASH repository for installation and usage instructions.
- π Interactive charts for all tracked metrics
- π° Wealth analytics with income/expense breakdown
- π― Quest progression timelines
- πͺ Auction house market intelligence
- βοΈ Combat statistics and death analysis
- π Multi-character comparison views
- Export your data with
/whodat export - Navigate to the WhoDASH web interface
- Upload your exported JSON file
- Explore your data with interactive visualizations
Note: WhoDASH repository and deployment instructions coming soon!
WhoDAT is built on a modular, event-driven architecture:
WhoDAT/
βββ config.lua # Feature flags, defaults, schema versioning
βββ core.lua # Event bus, initialization, slash commands
βββ utils.lua # Logging, throttling, color helpers
βββ events.lua # Global event routing
β
βββ tracker_stats.lua # Character stats & progression
βββ tracker_containers.lua # Bags, bank, keyring, mailbox
βββ tracker_loot.lua # Loot events and sources
βββ tracker_quests.lua # Quest log and completions
βββ tracker_achievements.lua# Achievement unlocks
βββ tracker_auction.lua # Auction house activity
βββ tracker_combat.lua # Combat events and damage
βββ tracker_deaths.lua # Death tracking with context
βββ tracker_social.lua # Friends, guild, ignore lists
βββ tracker_lockouts.lua # Instance and raid lockouts
β
βββ graphs.lua # Sparkline visualization engine
βββ ui_main.lua # Main windowed interface
βββ ui_widgetmode.lua # Minimal overlay widget
βββ widget_background_ui.lua# Widget theming
β
βββ export.lua # Data serialization
βββ chunked_export.lua # Large dataset handling
βββ export_metadata.lua # Hash-based change tracking
βββ export_progress_ui.lua # Export progress interface
β
βββ memory_management.lua # Performance optimization
- β Event sourcing: Append-only event logs
- β Snapshots: Point-in-time state captures
- β Catalogs: Normalized item/quest/achievement databases
- β Feature flags: Toggle modules without code changes
- β Throttling: Prevent performance issues
- β
Idempotent initialization: Safe across
/reload
Enable or disable tracking modules in config.lua:
WhoDAT_Config.features = {
items = true, -- Item lifecycle tracking
inventory = true, -- Container snapshots
stats = true, -- Character stats
quests = true, -- Quest tracking
auction = true, -- Auction house
achievements = true, -- Achievement tracking
ui_main = true, -- Main interface
ui_widget = true, -- Widget overlay
export = true, -- Data export
}Adjust throttling and limits:
WhoDAT_Config.sampling = {
tick_series = 10, -- Seconds between series updates
mailbox = 5, -- Throttle mailbox scans
containers = 3, -- Throttle bag scans
}
WhoDAT_Config.ui.graphs = {
max_points_per_series = 300, -- Graph data point limit
session_window_size = 3, -- Only show last N sessions
enable_smoothing = true, -- Smooth graph lines
}Contributions are welcome! Here's how you can help:
- Check Issues for existing reports
- Create a new issue with:
- WoW version and client language
- WhoDAT version
- Steps to reproduce
- Error messages (if any)
- Conflicting addons (if known)
Have an idea? Open an issue with the enhancement label and describe:
- The feature you'd like to see
- Your use case
- How it would improve WhoDAT
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Test thoroughly in-game
- Commit with clear messages
- Push to your fork
- Open a pull request
- β¨ Complete rewrite with modular architecture
- β¨ Chunked export system for large datasets
- β¨ Power and Defense composite stats
- β¨ Session-scoped graph filtering
- β¨ Export progress UI with cancellation
- β¨ WhoCHAT theme integration (more on this at another time)
- π Fixed graph rendering performance
- π Resolved export timeout issues
- Legacy versions (deprecated)
WhoDAT is developed by Belmont Labs
- LibStub and LibSharedMedia for library management
- ElvUI for skinning API inspiration
- World of Warcraft private server community for just being the literal best.
This project is licensed under the MIT License - see the LICENSE file for details.
- GitHub: github.com/xanthey/whodat
- Issues: Report a bug or request a feature
- WhoDASH: Dashboard repository
- Discord: Join our community
Made with β€οΈ for the WoW Classic community
β Star this repo if WhoDAT helps you track your journey! β



