# Changelog All notable changes to Peril Dice will be documented in this file. ## [2.4.0] - 2025-08-08 ### ๐Ÿ“ Position Management System - **Master-Follower Architecture**: Complete position synchronization system for all game components - **Position Controller Script**: Main controller object manages movement of scoreboard, leaderboard, and displays - **Follower Script Template**: Generic follower script that reads position settings from config notecard - **Config-Based Positioning**: Position offsets and rotations defined in "config" notecard for easy customization - **Automatic Movement Sync**: When controller moves, all linked objects maintain relative positions - **Position Reset Tools**: Built-in recalibration system for repositioning knocked-out components - **Multi-Object Coordination**: Seamless movement of entire game system as single unit ### ๐Ÿงน Production Code Cleanup - **Debug Code Removal**: Complete removal of all debug logging statements and test messages - Removed `llOwnerSay("DEBUG: ...)` calls throughout Main.lsl (lines 147, 161, 479, 517, 523, 527, 874, 1163) - Eliminated development-time diagnostic messages and empty debug blocks - Cleaner, more professional game experience without debug clutter - **Syntax Error Fixes**: - Fixed critical missing closing brace on line 835 in Main.lsl causing compilation failure - Resolved LSL syntax errors that prevented script execution - All scripts now compile cleanly without warnings or errors ### ๐Ÿ› ๏ธ Development Quality Improvements - **Production Readiness**: Scripts optimized for live deployment without development artifacts - **Performance Enhancement**: Eliminated unnecessary debug output reducing execution overhead - **Memory Optimization**: Reduced script memory footprint by removing debug string operations - **Code Maintainability**: Cleaner codebase structure for future development - **Professional Polish**: Game system ready for production deployment ### ๐Ÿ”ง Technical Improvements - **LSL Compliance**: All scripts pass Second Life LSL compilation standards - **Execution Efficiency**: Faster script performance without debug processing overhead - **Position Synchronization**: Robust communication system for coordinated object movement - **Config System**: Flexible notecard-based configuration for easy position adjustments - **Error Resolution**: Fixed all syntax issues preventing proper game operation ### ๐Ÿ“š Documentation Updates - **Position System Guide**: Comprehensive instructions for setting up position management - **Reset Tools Documentation**: Step-by-step guide for recalibrating positions - **Version Tracking**: Updated to semantic versioning 2.4.0 - **Change History**: Detailed tracking of all modifications and improvements ## [2.3.0] - 2025-08-05 ### ๐Ÿ† Visual Scoreboard System - **Dynamic Player Grid**: Real-time visual scoreboard displaying all players with profile pictures and heart count - **Profile Picture Integration**: Automatic fetching of Second Life avatar profile pictures via HTTP requests - **Heart Texture Display**: Visual life representation using custom heart textures (3, 2, 1, 0 hearts) - **Bot Profile Support**: Special profile texture for TestBot players - **Immediate Updates**: Hearts update instantly when lives change, before any dialogs appear ### ๐ŸŽญ Enhanced Status Display System - **Visual Status Actions**: Large action prim displaying current game status with custom textures - **Specific Status Messages**: - **Direct Hit**: When peril player picks their own rolled number - **No Shield**: When nobody picks the rolled number - **Plot Twist**: When peril switches to a new player - **Elimination**: When a player is eliminated - **Victory**: When someone wins the game - **Peril Selected**: When a new peril player is chosen - **Title**: Default/idle state ### โšก Perfect Status Timing - **Protected Display Time**: Each status shows for 8 seconds with automatic clearing - **Strategic Delays**: 2-second delays after status messages prevent overwriting - **Sequential Flow**: Elimination โ†’ 6.4s delay โ†’ Victory โ†’ 9s delay โ†’ Reset - **Immediate Visual Feedback**: Hearts and status update instantly, delays protect display time ### ๐ŸŽฏ Comprehensive Leaderboard - **Persistent Win Tracking**: Player victories saved across game sessions - **XyzzyText Integration**: Three-prim text display system for leaderboard - **Automatic Sorting**: Top players by win count with formatted display - **Separate Reset Options**: Game reset vs. leaderboard reset vs. complete reset ### ๐ŸŽฎ Enhanced User Interface - **Categorized Owner Menus**: Organized into Game Control, Player Management, Reset Options, etc. - **Dialog Recovery**: Players can recover lost dialogs by touching the controller - **Admin Menu Access**: Owner can access admin functions during gameplay - **Improved Menu Flow**: Streamlined navigation with clear categorization ### ๐Ÿ”ง Technical Improvements - **Multi-Object Architecture**: Scoreboard and leaderboard as separate linked objects - **HTTP Profile Fetching**: Robust system for retrieving avatar profile pictures - **Texture Caching**: Profile pictures cached to avoid repeated HTTP requests - **Region-Based Communication**: Cross-object messaging using `llRegionSay` - **Elimination Sequence**: Visual 0-hearts display before player removal ### ๐Ÿ› Critical Fixes - **Heart Update Timing**: Fixed hearts not updating until after next-turn dialog - **Victory Overwriting Elimination**: Added proper delay between elimination and victory status - **Status Message Conflicts**: All status messages now have protective delays - **Profile Picture Fallbacks**: Proper handling of failed HTTP requests - **Scoreboard Reset**: Fixed scoreboard not clearing when game resets ## [2.2.0] - 2025-08-04 ### ๐ŸŽญ Major UX/Presentation Improvements - **Dramatic Messaging System**: Complete overhaul of game messages with thematic styling - **Public Announcements**: Key game events now visible to all players in public chat - **Context-Rich Roll Messages**: Dice rolls now show both dice type and result - **Split Hit Messages**: Different messages for "picked own doom" vs "no shield" scenarios ### ๐ŸŽฎ Enhanced Player Experience - **Player Join Messages**: `๐Ÿ’€ PlayerName has entered the deadly game! Welcome to your potential doom! ๐Ÿ’€` - **Ready State Messages**: - `๐Ÿ‘‘ PlayerName steps forward as the game master - automatically ready for the deadly challenge! ๐Ÿ‘‘` - `โš”๏ธ PlayerName steels themselves for the deadly challenge ahead! โš”๏ธ` - `๐Ÿƒ PlayerName loses their nerve and backs away from the challenge! ๐Ÿƒ` - **Pick Announcements**: `๐ŸŽฏ PlayerName stakes their life on numbers: 1, 2, 3 ๐ŸŽฒ` - **Game Start**: `โšก ALL PARTICIPANTS READY! THE DEADLY PERIL DICE GAME BEGINS! โšก` ### ๐ŸŽฒ Improved Roll Messages - **Main Roll**: `๐ŸŽฒ THE D6 OF FATE! PlayerName rolled a 5 on the 6-sided die! ๐ŸŽฒ` - **Plot Twist**: `โšก PLOT TWIST! PlayerName picked 5 (rolled on d6) and is now in ULTIMATE PERIL! โšก` - **Direct Hit**: `๐Ÿฉธ DIRECT HIT! PlayerName picked their own doom - the d6 landed on 5! ๐Ÿฉธ` - **No Shield**: `๐Ÿฉธ NO SHIELD! Nobody picked 5 - PlayerName takes the hit from the d6! ๐Ÿฉธ` ### ๐Ÿ”ง Critical Bug Fixes - **StatFloat Duplication**: Fixed bug where new StatFloat objects were created on every life loss instead of updating existing ones - **Duplicate Message Handling**: Removed duplicate `HUMAN_PICKED` handlers that caused double processing - **Malformed Entry Warnings**: Fixed LSL parsing issues with empty picks entries - **Cleanup Optimization**: Reduced excessive StatFloat cleanup messages during reset ### ๐Ÿ› ๏ธ Technical Improvements - **Debug Message Cleanup**: Removed excessive debug output while preserving essential error reporting - **Message Handler Optimization**: Streamlined communication between scripts - **LSL Parsing Fixes**: Better handling of trailing empty elements in data parsing - **Memory Management**: Improved StatFloat lifecycle management ## [2.1.0] - 2025-08-03 ### โœจ Major Features Added - **Ready State System**: Players must mark themselves ready before games can start - **Game Protection**: Prevents players from joining games in progress - **Performance Optimization**: Reduced lag by limiting confetti to wins only - **Enhanced Bot Intelligence**: Improved bot behavior and duplicate number avoidance ### ๐Ÿ”ง Core Fixes - **Complete Game Flow**: Fixed end-to-end gameplay from start to finish - **Elimination Logic**: Proper handling of player elimination and game continuation - **Win Condition**: Fixed victory detection and game ending - **Data Synchronization**: Resolved corruption in pick data between scripts - **Peril Player Assignment**: Fixed race conditions in peril player transitions ### ๐ŸŽฎ Gameplay Improvements - **Dynamic Picking**: Number of picks now properly based on peril player's lives - **Duplicate Prevention**: Enhanced system to prevent duplicate number selection - **Dialog Pagination**: Improved number selection interface for d30 dice - **Floater Updates**: Real-time HUD updates throughout gameplay - **Bot Continuation**: Bots now properly continue games when humans are eliminated ### ๐Ÿ› ๏ธ Technical Enhancements - **Modular Communication**: Improved inter-script messaging system - **Error Handling**: Comprehensive validation and error recovery - **Memory Management**: Better floater cleanup and channel tracking - **Data Encoding**: Fixed CSV conflicts with semicolon encoding system - **State Management**: Robust game state synchronization across modules ### ๐Ÿ› Bug Fixes - Fixed missing pick dialogs after game events - Resolved duplicate message issues between scripts - Fixed lives reset problems between rounds - Corrected floater display inconsistencies - Fixed bot confusion during player elimination - Resolved pick data corruption issues - Fixed peril player variable sync problems ### โšก Performance - Removed confetti from life loss (keeping only victory confetti) - Optimized debug output to reduce lag - Improved floater management efficiency - Enhanced bot processing speed ## [2.0.0] - 2024-12-XX ### ๐ŸŽ‰ Initial Modular Release - **Modular Architecture**: Separated functionality into specialized scripts - **Bot System**: Added AI players for testing and gameplay variety - **Floating HUD**: Real-time player statistics display - **Dynamic Dice**: Automatic dice sizing based on player count - **Player Management**: Runtime player joining and leaving - **Owner Controls**: Administrative functions for game management ### ๐ŸŽฒ Core Game Features - **Pick System**: Number selection with validation - **Rolling Mechanism**: Automated dice rolling with visual effects - **Life Management**: 3-life system with elimination - **Peril Tracking**: Dynamic peril player assignment - **Victory Conditions**: Last player standing wins ### ๐Ÿ—๏ธ Architecture - **Main Controller**: Central game logic and state management - **Dialog Handlers**: User interface and input processing - **Roll Module**: Dice mechanics and particle effects - **Bot Manager**: AI player behavior and automation - **Floater Manager**: HUD display coordination - **Game Helpers**: Utility functions and calculations ## [1.0.0] - 2025-XX-XX ### ๐ŸŒŸ Original Release - Basic Peril Dice game implementation - Manual gameplay mechanics - Simple player tracking - Basic dice rolling functionality --- ## Development Notes ### Known Issues - **Debug Output**: Extended games may experience minor lag from comprehensive logging ### Recent Fixes (2025-01-08) - **Bot Race Condition**: Fixed critical bug where duplicate message handlers prevented proper `globalPickedNumbers` updates - **Enhanced Bot Logging**: Added detailed pick tracking and duplicate detection in Bot Manager - **Message Handler Separation**: Separated bot and human pick handling to prevent conflicts ### Future Enhancements - Configurable debug levels - Additional game modes and variants - Enhanced visual effects and animations ### Credits - **Original Game Design**: Noose the Bunny (djmusica28) - Second Life - **Automation & Development**: Enhanced for automated gameplay - **Architecture**: Modular LSL system for scalability and maintainability