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 dedupecommand - Added a one-shot duplicate cleanup command to remove repeated game entries across history and recalculate totals/streaks.
Improvements
- Merge dedupe and reporting -
/dr mergenow 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 mergeruntime fix (WoW Lua compatibility) - Replacedos.timeusage in date parsing with WoW-safetime(...)to preventattempt 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 suspiciousand/dr cheaterssummaries - 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 sizenow 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
initialRollacross all save/edit/display operations - Historical data compatibility maintained
- Unified field name to
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 fixgoldcommand - 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)
- Added
- Starting Roll Field Inconsistency - Fixed initialRoll not displaying in edit game records
- Unified field name to
initialRollacross 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
- Unified field name to
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)
- Implements
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
- Added comprehensive validation in
- 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
- Added active game check at start of
UI & Safety Fixes
- UI Safety Guards - Comprehensive nil checks throughout UI code
- Added validation in
UpdateChallengeButtonText()before UI access - Added
pcall()wrapper inAddRollToHistory()for safe text updates - Fixed potential crashes when UI closed during active operations
- All UI components validated before access
- Added validation in
- 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_CHANGEDhandler - Prevents button updates during active games
- Added active game check in
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
- Changed initialization pattern from
- 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
- Added complete date validation with
- 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
- Added
- Infinite Loop Protection - Added iteration limits
- Bounds checking in
StoreRecentRoll()with max iteration counter - Safety fallback if
maxRecentRollsbecomes negative - Debug warnings if iteration limits reached
- Bounds checking in
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 globalgoldTracking.totalWonandgoldTracking.totalLostEditGameRecord()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 fixgoldcommand - 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 fixgoldcommand to fix corrupted global gold totals- Automatically recalculates
totalWonandtotalLostfrom individual player records - Provides feedback showing old vs new corrected values
- Essential for users who experienced the synchronization bug
- Automatically recalculates
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 editcommand 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(), andDeleteGameRecord() - 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 editfor 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
AddGameToHistorymethod 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
/dror/deathroll- Open the main DeathRoll window/dr config- Open configuration options/drh [player]- View history with specific player