DeathRoll Enhancer

Transform DeathRolls in WoW with an intuitive UI. Start games effortlessly, track results, and add a touch of fun with emote reactions. Elevate your DeathRolling experience!

File Details

v2.3.6

  • R
  • Mar 9, 2026
  • 109.16 KB
  • 13
  • 12.0.1+6
  • Retail + 3

File Name

DeathRollEnhancer-v2.3.6.zip

Supported Versions

  • 12.0.1
  • 12.0.0
  • 5.5.3
  • 4.4.2
  • 3.4.3
  • 2.5.5
  • 1.15.8

DeathRoll Enhancer - Changelog

Version 2.3.6 - Stats and History Cleanup

New Features

  • /dr dedupe command - Added a one-shot duplicate cleanup command to remove repeated game entries across history and recalculate totals/streaks.

Improvements

  • Merge dedupe and reporting - /dr merge now deduplicates merged history and reports how many duplicate rows were removed.
  • History dropdown refresh - History dropdown now refreshes immediately after merge and dedupe operations to avoid stale old-name entries.
  • Fun stats stability rework - Improved sample thresholds, tie-breaking, and contradictory-stat suppression so stats are less repetitive and less misleading.

Version 2.3.5 - Merge Hotfix

Bug Fixes

  • /dr merge runtime fix (WoW Lua compatibility) - Replaced os.time usage in date parsing with WoW-safe time(...) to prevent attempt to index global 'os' (a nil value) errors during history merge sorting.

Version 2.3.3 - Anti-Cheat and Stats Update

New Features

  • Wrong-roll range detection - Active games now validate strict roll ranges and flag invalid opponent rolls as potential cheats
  • Suspicious roll tracking - Added persistent suspicious-roll tracking with /dr suspicious and /dr cheaters summaries
  • Rename merge command - Added /dr merge <oldName> <newName> to merge history and suspicious data after player renames
  • New fun stat - Added Most Likely to Cheat based on tracked invalid roll-range flags

Quality of Life

  • Track Gold cleanup - Removed the old Track Gold toggle to keep gold tracking behavior consistent
  • Statistics coverage improvements - Wired new fun stats into both Statistics and Settings tabs

Version 2.3.2 - SKEM Edition

UI Improvements

  • Main tabs stretched to fit the window - DeathRoll, Statistics, History, and Settings now use the available width more evenly
  • New in-window Settings tab - Added a full settings surface directly in the addon window for common gameplay, challenge, interface, data, and fun stats controls
  • Embedded roll history panel - The DeathRoll tab now keeps the full roll log inside the main window with mouse-wheel scrolling and no visible scrollbar instead of truncating after three entries
  • History tab scrollbar refresh fix - Switching to players with longer histories now triggers the scrollbar immediately without requiring a window resize
  • Scale-aware layout refresh - Changing UI scale now forces a full relayout so tabs, text, and content boxes stay aligned
  • DeathRoll layout cleanup - Roll and wager controls were compacted, the history panel sizing was tightened, and the default window size is now 400x311

Quality of Life

  • Use My Gold button - Replaced the old Auto-Roll from Money toggle with a button beside the roll input for explicit one-click use
  • Trade-based wager tracking - Added a saved setting to record wagers from completed gold trades instead of manual wager entry
  • Manual wager auto-hide in trade mode - The Gold/Silver/Copper inputs are hidden on the DeathRoll tab when trade-based wager tracking is enabled
  • Perspective-based roll odds - Roll history now describes the immediate odds from your perspective, showing your chance of winning after your roll and your chance of losing after your opponent's roll
  • Roll history tab-leak fix - Fixed the embedded roll history text appearing on non-DeathRoll tabs after tab switches
  • Edition label refresh - Updated visible version labeling to SKEM Edition

Commands And Data Integrity

  • New slash commands - /dr accept, /dr decline, and /dr size now support pending challenges and window diagnostics
  • Timestamped game records - New saved game records now include numeric timestamps, and recent-record lookups fall back cleanly for older entries

Version 2.3.1 - TOC Compatibility Update

Compatibility Fixes

  • Added Mists of Pandaria Classic support - Added interface version 50503 to support MoP Classic (5.5.3)
  • Removed outdated retail interface - Removed interface 110207 (old retail version)
  • Changed Dependencies to OptionalDeps - Fixed "out of date" cascade failures from Ace3/LibSharedMedia/LibDBIcon
    • Prevents addon from being marked outdated when dependency libraries haven't updated their TOCs
    • Libraries still load in correct order and function identically
    • Common pattern used by major addons like DBM and WeakAuras

Supported WoW Versions

  • 120001, 120000 - Retail (The War Within 11.0.7 / Midnight)
  • 11508 - Classic Era (1.15.8)
  • 20505 - TBC Classic Anniversary (2.5.5)
  • 30403 - Wrath Classic (3.4.3)
  • 40402 - Cataclysm Classic (4.4.2)
  • 50503 - Mists of Pandaria Classic (5.5.3)

Version 2.3.0 - Challenge System Update

New Features

  • Whisper-Based Challenge System - Seamless challenge notifications between addon users
    • Automatic whisper sent when you start a challenge (toggleable in settings)
    • Popup dialog appears when another addon user challenges you
    • Shows challenger name, roll value, and wager amount in clean WoW-style popup
    • Accept button opens UI and pre-fills challenge values
    • Decline button politely declines the challenge
    • 30-second auto-timeout on challenge popups
    • Works alongside manual challenges for players without the addon

Challenge System Settings

  • Enable Challenge Popups - Toggle receiving challenge popups (default: ON)
  • Send Challenge Whispers - Toggle auto-whisper when you challenge (default: ON)
  • Minimum Roll Threshold - Set minimum roll value to show popups (default: 100, range: 2-10,000)
    • Prevents spam from low-value test rolls
    • Configurable to match your preferred gameplay style

UI Improvements

  • Fun Statistics Organization - Fun Stats now organized in sections
    • "Player Relationships" section (Most Played With, Wins/Losses, Nemesis, Victim)
    • "Gold & Money" section (Gold Mine, Money Sink, Biggest Win/Loss, High Roller, Cheapskate)
    • "Luck & Streaks" section (Lucky/Unlucky Players, Daredevil, Conservative)
    • Matches the exact order and grouping from settings tab
    • Cleaner, more intuitive stats display

Bug Fixes

  • Starting Roll Field Display - Fixed starting roll showing 0 for all values in edit game records
    • Unified field name to initialRoll across all save/edit/display operations
    • Historical data compatibility maintained

Version 2.2.1 - Statistics Fix Hotfix

Statistics Bug Fixes

  • Fun Statistics Win Rate Display - Fixed incorrect 0% and 100% win rate displays
    • Changed initialization for nemesis/luckyPlayer from 0 to -1 (allows 0% to be selected)
    • Changed initialization for victim/unluckyPlayer from 1 to 2 (allows 100% to be selected)
    • Now correctly displays all win rate percentages including edge cases (0% and 100%)
  • Streak Calculation Bug - Fixed incorrect current streak values
    • Added RecalculateStreaks() function to recalculate streaks from complete game history
    • Integrated streak recalculation into /dr fixgold command
    • Streaks now replay entire game history in chronological order for accuracy
    • Fixes cases where streak showed incorrect values (e.g., showing loss streak when recent games were wins)
  • Starting Roll Field Inconsistency - Fixed initialRoll not displaying in edit game records
    • Unified field name to initialRoll across all save/edit/display operations
    • Fixed Fun Stats daredevil/conservative calculations to use correct field name
    • Starting rolls now display correctly in edit game records dialog

Improvements

  • Enhanced /dr fixgold Command - Now recalculates both gold totals AND streaks
    • Use this command to fix any statistics inconsistencies
    • Automatically replays entire game history to ensure accuracy

Version 2.2.0 - TBC Compatibility & Bug Fix Edition

TBC Compatibility

  • Full TBC Classic Support - Added C_Timer shim for TBC/Classic compatibility
    • Implements C_Timer.After() fallback using frame OnUpdate pattern
    • Zero performance impact on retail (uses native C_Timer when available)
    • Works seamlessly across all WoW versions (Classic Era, TBC, Wrath, Cata, Retail)

Critical Bug Fixes

  • Race Condition in Roll Detection - Fixed duplicate roll processing
    • Implemented roll deduplication system with unique roll IDs
    • Added 5-second expiry cache for processed rolls
    • Prevents same roll from being handled multiple times by different event handlers
    • Fixed pattern matching to use anchored regex (prevents partial matches)
  • Game State Validation - Fixed crashes from invalid game states
    • Added comprehensive validation in HandleGameRoll()
    • Validates game state existence and required fields before processing
    • Added player name validation and parameter checking
    • Prevents nil reference errors during game execution
  • Concurrent Game Prevention - Fixed ability to start multiple games
    • Added active game check at start of StartDeathRoll()
    • Returns error message if game already in progress
    • Prevents overlapping game state corruption

UI & Safety Fixes

  • UI Safety Guards - Comprehensive nil checks throughout UI code
    • Added validation in UpdateChallengeButtonText() before UI access
    • Added pcall() wrapper in AddRollToHistory() for safe text updates
    • Fixed potential crashes when UI closed during active operations
    • All UI components validated before access
  • Timer Race Condition - Fixed roll detection timeout
    • Changed timeout from 3.0s to 3.2s to account for 0.1s roll delay
    • Prevents false positive timeout detections
  • UI Scale Desync - Fixed double-scaling and flickering
    • Scale now applied correctly before AceGUI restoration
    • Added comparison check to prevent redundant scale operations
    • Eliminated scale flickering on window open
  • Target Change During Game - Fixed UI confusion
    • Added active game check in PLAYER_TARGET_CHANGED handler
    • Prevents button updates during active games

Database & Validation Fixes

  • Database Counter Corruption - Fixed negative counter values
    • Changed initialization pattern from (value or 1) to (value or 0)
    • Applied math.max(0, ...) before subtraction operations
    • Prevents negative win/loss/gold counters in all scenarios
  • Date Parsing Validation - Fixed crashes from malformed dates
    • Added complete date validation with parseDateToNumber()
    • Validates year (2000-2100), month (1-12), day (1-31), hour/minute ranges
    • Strict regex matching for date format (YYYY-MM-DD HH:MM)
    • Prevents crashes from corrupted date strings
  • Input Sanitization - Fixed database corruption from invalid input
    • Added validation for gold (0-999,999), silver (0-99), copper (0-99)
    • Added validation for starting roll (0-999,999)
    • Prevents invalid currency values in edit dialog
  • Player Name Validation - Improved validation logic
    • Added check for pure whitespace/symbol names
    • Prevents names like "---" or " " from passing validation
    • Enforces reasonable character requirements

Memory & Performance Fixes

  • Memory Leak Prevention - Fixed recent rolls memory leak
    • Added ClearRecentRollsForPlayer() function
    • Automatic cleanup when games start/end
    • Prevents unbounded growth of recent rolls array
  • Infinite Loop Protection - Added iteration limits
    • Bounds checking in StoreRecentRoll() with max iteration counter
    • Safety fallback if maxRecentRolls becomes negative
    • Debug warnings if iteration limits reached

Cleanup & Error Handling

  • Proper State Cleanup - Enhanced OnDisable() cleanup
    • Clears active game state on logout/disable
    • Cleans up spicy duel state
    • Clears UI references to prevent memory leaks
  • Enhanced Debug Logging - Improved error visibility
    • Added debug messages for all error conditions
    • More descriptive error messages throughout
    • Better troubleshooting information

Files Modified

  • Core.lua - 13 major changes (TBC compat, validation, safety)
  • UI.lua - 4 major changes (timer fix, validation, scale management)
  • Database.lua - 3 major changes (counter fixes, date validation)

Version 2.1.6 - Bintes Edition

Bug Fixes

  • [Add your changes here]

New Features

  • [Add your changes here]

Version 2.1.5 - Gold Tracking Fix Edition

Bug Fixes

  • Critical Gold Tracking Synchronization Bug - Fixed desynchronization between individual player gold totals and global gold tracking
    • DeleteGameRecord() now properly updates global goldTracking.totalWon and goldTracking.totalLost
    • EditGameRecord() now properly synchronizes global tracking for both result changes and gold amount modifications
    • Prevents data corruption when deleting or editing games through the settings menu
  • Data Recovery Function - Added RecalculateGoldTracking() to repair existing corrupted data
    • Recalculates global totals from individual player data
    • Accessible via new /dr fixgold command
    • One-time fix for users affected by the synchronization bug
  • Negative Net Profit Display - Fixed FormatGold() function to properly display negative amounts
    • Net Profit now correctly shows negative values (e.g., "-15g 50s") when you have a net loss
    • Applies to all gold displays throughout the addon (main stats, minimap tooltip, player history)
  • Average Wager Decimal Fix - Rounded down average wager calculations to remove decimal places
    • High Roller and Cheapskate stats now show clean copper amounts without decimals
    • Changed from "1g 66s 55.5555555555c avg wager" to "1g 66s 55c avg wager"

New Features

  • Gold Tracking Repair Command - /dr fixgold command to fix corrupted global gold totals
    • Automatically recalculates totalWon and totalLost from individual player records
    • Provides feedback showing old vs new corrected values
    • Essential for users who experienced the synchronization bug

Version 2.1.4 - Bintes EDITion

New Features

  • Edit Game Records - Complete game record editing functionality
    • Modify win/loss results for any previous game
    • Edit gold amounts (separate gold/silver/copper inputs)
    • Change starting roll values for recorded games
    • Access via /dr edit command or settings menu
  • Delete Game Records - Remove unwanted game entries
    • Safe deletion with confirmation dialog
    • Automatic statistics recalculation after deletion
    • Maintains data integrity by updating win/loss counters
  • Enhanced Game Management Interface
    • Professional AceGUI dialog with dropdown game selection
    • Real-time dropdown refresh after deletions
    • Improved date sorting (newest games first)
    • Clear game identification with player, result, gold, and date

Technical Improvements

  • WoW-Compatible Date Sorting - Fixed os.time() compatibility issue with WoW's restricted Lua environment
  • Database Functions - Added GetRecentGamesForEditing(), EditGameRecord(), and DeleteGameRecord()
  • UI State Management - Proper dialog cleanup and refresh after record modifications
  • Statistics Integrity - Automatic counter updates when records are modified or deleted

User Experience

  • Slash Command - /dr edit for quick access to game editing
  • Settings Integration - "Edit Game Records" button in Data Management section
  • Debug Output - Optional debug information showing game order and timestamps
  • Error Handling - Comprehensive validation and user-friendly error messages

Version 2.1.3 - Database Fix Edition

Critical Fix

  • Added missing Database.lua file - This critical file was accidentally excluded from the addon distribution
    • Contains essential database management functions required for saving game history and statistics
    • Previous downloads from CurseForge were missing this file, causing silent failures in data persistence
    • All database functionality now works correctly (game history, statistics, gold tracking, etc.)
    • Users who experienced issues with data not saving should now have full functionality

Technical Details

  • Database.lua contains helper functions for player history management, statistics calculation, and data export
  • The file was incorrectly excluded due to confusion with user data files
  • SavedVariables system now functions properly for persistent data storage across game sessions

Version 2.1.2 - Bintes Edition

Bug Fixes

  • Fixed post-game challenge button displaying opponent's last roll after game completion
  • Challenge button now properly returns to normal state when games end
  • Improved game state cleanup to prevent UI confusion after duels

Technical Improvements

  • Fixed addon loading order issues that caused AddGameToHistory method not found errors
  • Updated all module files to use proper Ace3 addon registration instead of global namespace access
  • Enhanced game end cleanup to clear opponent roll data from recent rolls array

Version 2.1.1 - Bintes Edition

Bug Fixes

  • Fixed challenge acceptance display to show actual roll value and original range (e.g., "PlayerName rolled 56 from 1000 - Accept challenge!" instead of "PlayerName challenges you to DeathRoll 1-56!")
  • Roll input field now correctly populated with the challenger's actual roll value (56) rather than the range maximum (1000)

UI Improvements

  • Updated status bar to display "V2.1.1 - Bintes Edition"
  • Enhanced challenge notification clarity by showing both rolled value and original maximum

Version 2.0.0 - Complete Rewrite

Major Changes

  • Complete rewrite using Ace3 libraries for stability and performance
  • Professional AceGUI interface with modern styling
  • Advanced AceConfig options panel with font selection
  • Comprehensive data management and export tools
  • Enhanced statistics tracking and display
  • LibSharedMedia integration for consistent theming

Features

  • Intuitive AceGUI-based interface for starting games
  • Detailed win/loss history tracking per player
  • Advanced gold tracking with streaks and statistics
  • Smart minimap integration with LibDBIcon
  • Automatic emote reactions on wins/losses
  • Cross-version compatibility (Classic Era, TBC, Wrath, Cata, Retail)
  • Professional options panel with Blizzard integration
  • Data export/import functionality

Commands

  • /dr or /deathroll - Open the main DeathRoll window
  • /dr config - Open configuration options
  • /drh [player] - View history with specific player