Changelog - Version 5.3 (2025-03-14)
Version Information
- Updated version from 5.2 to 5.3
- Added system identifier
- Improved version control functionality:
- Dynamic file naming based on system type (STABLE/BETA/ALPHA)
- Automatic directory creation if not present
- Enhanced error handling and logging
- Better file management with proper cleanup
New Features
Lottery System
- Implemented a complete lottery system with the following functionality:
- New command:
!startlotto
(moderator-only) to begin a lottery - New command:
!drawlotto
(moderator-only) to draw lottery winners - Added backend structures to track lottery numbers:
lotto_numbers
- Dictionary to track winning numbersuser_lotto_numbers
- Dictionary to track user lottery entries
- Integration with channel points for participation
- New command:
Points System
- Added new
!addpoints
command to add points to users - Added new
!removepoints
command to remove points from users - Enhanced the slots command with points integration:
- Win/loss processing for points transactions
- Points are deducted when playing and awarded on wins
- Dynamic point multipliers based on slot results
- Enhanced roulette command with point penalties:
- Points deduction for losses as “hospital bills”
- Adds risk/reward element to the game
- Makes gameplay more consequential
User Interaction
- Added
!highfive
command similar to the existing hug/kiss commands - Enhanced participation options through lottery system
- Added “return_the_action_back” functionality:
- Bot now automatically reciprocates when tagged in interaction commands
- Works with
!kiss
,!hug
, and!highfive
commands - Creates more interactive and personalized chat experience
Technical Improvements
Logging System Overhaul
- Replaced standard file logging with RotatingFileHandler:
- 10MB file size limit with 5 backup files
- Prevents log files from growing indefinitely
- More efficient log management
Error Handling & Stability
- Added signal handling for graceful shutdown:
- SIGTERM handling
- SIGINT handling (Ctrl+C)
- Enhanced error handling throughout the codebase
- Better boolean checking for USE_BACKUP_SYSTEM
- More consistent API request patterns
- Improved sanitization of sensitive information in logs
- Updated StreamElements and StreamLabs “process_message” functions for better handling of information and errors
- Updated Twitch Event handlers for “channel.poll.begin” & “channel.poll.end” to better process information and handle events
- Improved enable/disable commands to properly detect and handle built-in versus custom commands
Code Organization
- More structured command organization
- Better function naming for clarity (e.g.,
twitch_receive_messages
) - More detailed startup logging
- Optimized imports for better code readability
- Added globals to all commands to ensure consistent access to shared resources and uniform behavior across the application
- Updated checkupdate command to be more dynamic, allowing use of the new system variable tag to get the correct version file based on the running system
Stream Management Improvements
- Revamped ad break handling using TwitchIO Routines:
- Automated timing for ad break messages
- Scheduled “welcome back” messages after ad completion
- More precise timing control using iterations and wait parameters
- Better separation of concerns with dedicated routine functions
- Enhanced WALKON functionality with support for both Audio and Video formats
- Video WALKON support added (feature coming soon)
- More flexible user greeting options
Websocket Enhancements
- Added “TWITCH_CHANNELPOINTS” to websocket server communications
- Enables real-time notification of all Twitch Channel Points activities
- Allows for external applications to respond to channel point redemptions
- Added VIDEO_ALERT support for videos through Specter Overlays
- Enables custom video alerts in stream overlays
- Enhanced visual engagement for stream events
Custom Commands Enhancements
- Added support for “(customapi.json.” syntax in custom commands to process JSON data from API endpoints
Bug Fixes
- Fixed various minor issues in code flow and logic
- Corrected log handler initialization to prevent duplication
- Fixed an issue with the bot not adding new users into the database
- Fixed and implemented fully functional timed messages system
Backend Structure Updates
- Added new data structures for lottery functionality
- More consistent code patterns throughout
I Want Your Feedback!
As always, your feedback is incredibly valuable to me. Let me know what you think of these changes, any issues you encounter, and any suggestions you have for improvement. You can share your thoughts in the #get-support channel on our discord server.