- Replace Update_Checker.lsl with enhanced Update_Receiver.lsl
- Add Peril_Dice_Updater.lsl external updater box
- Integrate 'Check for Updates' into Admin Menu → Troubleshooting
- Professional dialog system with Install Update button
- Automatic updater box detection within 96m range
- Secure PIN-based script installation via llRemoteLoadScriptPin
- Manual JSON parsing for LSL 2048-character limit workaround
- Maintain backward compatibility with chat commands
- Update manifest to v2.8.8 with Update_Receiver.lsl entry
New Features:
- One-click automatic update installation
- Professional user experience matching commercial SL products
- External updater architecture for easy distribution
- Enhanced GitHub API integration with better error handling
- Add error handling for malformed release notes
- Parse critical fields first (tag_name, html_url)
- Gracefully handle JSON parsing failures in release body
- Add verbose logging for debugging API responses
This fixes parsing errors when GitHub releases contain special characters.
🔧 MCP Development Infrastructure:
- lsl_mcp_server.py (414 lines): Complete MCP server for LSL validation
• LSL file listing and validation capabilities
• Memory usage analysis and reporting
• Git status integration
• Architecture analysis tools
📋 Testing & Documentation:
- test_lslint_mcp.py: MCP server testing framework
- test_mcp_server.py: Server functionality tests
- test_validate_lsl.py: LSL validation testing
- debug_mcp.py: MCP debugging utilities
- MCP_README.md: Complete documentation and setup guide
- mcp_config.json: MCP server configuration
🎯 Development Benefits:
- Enhanced LSL development workflow
- Automated validation and analysis
- Professional debugging capabilities
- Integration with existing LSL validator
- Support for AI-assisted development
These tools were used during development of the GitHub Update System
and provide foundation for future LSL development automation.
🔄 NEW FEATURES:
- Update_Checker.lsl: Revolutionary in-world GitHub integration
• Direct connection to GitHub Releases API
• Smart file filtering (essential vs development files)
• Precise deployment instructions verified by linkset scan
• Owner menu integration + chat commands (/1 check, /1 download)
• Memory optimized to replace eliminated UpdateHelper.lsl
🔍 ENHANCED TOOLS:
- Enhanced_LinkScanner.lsl: Complete 84-prim linkset analysis
• Real-time structure validation and prim mapping
• Script placement verification for all 17 LSL scripts
• XyzzyText system analysis (48 leaderboard prims)
• Update deployment guide generation
📊 SYSTEM IMPROVEMENTS:
- Zero-infrastructure updates via existing GitHub + Jenkins pipeline
- Professional error handling and user feedback
- Smart file classification with link-specific instructions
- Multi-instance safe operation for multiple game tables
📋 VERIFIED LINKSET STRUCTURE:
- Link 1: 13+ root prim scripts + Update_Checker.lsl
- Link 12: scoreboard manager cube
- Link 35: leaderboard bridge + XyzzyText start
- Links 35-82: 48 XyzzyText prims (4 banks × 12 rows)
- Link 83: dice display bridge
🎯 END USER BENEFITS:
- Automatic update detection and download
- No more guessing which scripts go where
- Clean separation of game files vs development files
- One-click access via /1 check or admin menu
ISSUE: Rebecca Nod with 12 wins was ranked below Bot1 with 7 wins
ROOT CAUSE: String sorting treats '7' > '12' alphabetically
FIX: Zero-pad wins to 4 digits ('0007' vs '0012') for proper numerical string sorting
RESULT: Leaderboard now correctly sorts by actual win count (12 > 7)
Players with higher win counts will now properly rank higher on the leaderboard.
- Winner Glow Effects: Bright green glow on both scoreboard and floaters for winners
- Extended Victory Display: 24-second celebration timer before game reset
- Enhanced Visual Feedback: Color-coded glow system (green/yellow/red)
- Victory Text Display: Winner floaters show 'ULTIMATE VICTORY!' and 'ULTIMATE SURVIVOR'
- Timer System Optimization: Dedicated victory timer mode, removed unused timeout system
- Memory Efficiency: Cleaned up unused components for better performance
- Synchronized Celebration: Both scoreboard and floater systems celebrate winner simultaneously
- Visual Priority: Winner glow overrides peril glow during victory celebration
Professional winner recognition system makes victory feel rewarding and celebrated!
EMERGENCY OPTIMIZATION for player registration causing Stack-Heap Collision:
REPLACED ALL HEAVY STRING OPERATIONS IN PLAYER REGISTRATION:
- Game start rejection message -> delegated ownerMsg() + regionMsg()
- Bot join announcement -> delegated publicMsg()
- Human starter announcement -> delegated publicMsg()
- Human join announcement -> delegated publicMsg()
- Player added confirmation -> delegated ownerMsg()
ELIMINATED MEMORY HOTSPOTS:
- Complex emoji string concatenations during player join
- Multi-string concatenation operations in registration flow
- Heavy llSay() operations with complex formatting
- Memory-intensive llOwnerSay() with player name concatenation
This targets the exact operation that triggers Stack-Heap Collision
when players join the game.
Since emojis were not the cause of the syntax error, restoring all visual indicators:
- 👋 for JOIN/LEAVE messages
- ⚠️ for ERROR messages
- ✅ for SUCCESS messages
- 🔧 for DEBUG messages
- 🎮 for GAME messages
- 🔄 for WELCOME messages
- 📨 for script ready message
- 🔊 for verbose logging toggle
- 🔍 for debug logging
Maintains visual consistency with other game scripts while keeping the syntax fix.
- Changed variable name from 'state' to 'stateVal' on line 324
- Updated corresponding reference on line 325
- Eliminates potential reserved word conflict or invisible character issues
- Should resolve LSL syntax error at 324,19
CRITICAL MEMORY FIX: Reduce Main Controller memory usage by delegating string operations
CONTROLLER_MESSAGEHANDLER ENHANCEMENTS:
- Added MSG_OWNER_MESSAGE, MSG_PUBLIC_MESSAGE, MSG_REGION_MESSAGE handlers
- New handleOwnerMessage(), handlePublicMessage(), handleRegionMessage() functions
- Memory-efficient message formatting with type-based templates
- Moved all heavy string concatenation operations out of Main Controller
MAIN CONTROLLER CHANGES:
- Added ownerMsg(), publicMsg(), regionMsg() helper functions
- Replaced memory-heavy llOwnerSay() calls with delegated message functions
- Reduced string concatenation operations in critical paths
- Kept simple direct calls for essential messages only
This architectural change should significantly reduce Main Controller memory pressure
and resolve the persistent Stack-Heap Collision errors.
- Fixed syntax error on line 113,0 in Verbose_Logger.lsl
- Moved function definitions before state block (LSL requirement)
- Removed duplicate function definitions at end of file
- Functions flushMessageBuffer() and reportMemoryStatus() now properly defined
Script should now compile correctly in LSL.
CRITICAL ARCHITECTURE CHANGE to resolve memory crashes:
NEW FILE: Verbose_Logger.lsl
- Dedicated script for all debug output to free up memory in Main Controller
- Handles verbose logging toggle and message buffering
- Script ID system for organized log prefixes
- Memory-safe batched output system
MAIN CONTROLLER CHANGES:
- Removed all verbose logging code and variables
- Redirected debug calls to dedicated Verbose_Logger script
- Simplified verbose logging toggle to forward to logger
- Removed memory-heavy string operations
This architectural split should immediately resolve the Stack-Heap Collision
by moving all debug-related memory usage out of the Main Controller.
CRITICAL FIX: Main Controller experiencing Stack-Heap Collision from verbose logging
- Added emergency memory monitoring to auto-disable verbose logging when memory low
- Replaced heavy string concatenation debug calls with lightweight versions
- Added memory checks before debug output to prevent crashes
- Simplified verbose logging toggle messages to reduce memory usage
- Emergency threshold: auto-disable at <1000 bytes free memory
- Safety checks: only output debug if >500 bytes available
This should immediately resolve the Stack-Heap Collision error.
- Added proper attribution: 'Feature suggested by Pawkaf (pawkaf.lutrova)'
- Credits Pawkaf for the innovative red X overlay idea for eliminated players
- Updates all documentation files with appropriate recognition
- Updates: CHANGELOG.md, README.md, CHANGELOG_Notecard.txt, README_Notecard.txt
- Added 'Enhanced Elimination Visual Feedback' section to all documentation files
- Documents the red X overlay that appears on eliminated players' profile pictures
- Explains immediate visual feedback when players reach 0 lives
- Notes persistent display until game reset for historical reference
- Improves user experience by making elimination status clearly visible
- Updates: CHANGELOG.md, README.md, CHANGELOG_Notecard.txt, README_Notecard.txt
- Added critical 'Number Detection & Shield Logic Fixes' section to all documentation files
- Documents the fix for system not recognizing numbers players had picked
- Explains the root cause (pick data sync issues) and solution (enhanced validation)
- Ensures complete coverage of v2.8.4 improvements including shield mechanics restoration
- Updates: CHANGELOG.md, README.md, CHANGELOG_Notecard.txt, README_Notecard.txt
- Fixed technical rules section to show 2-minute timeout instead of 10-minute
- Matches current code implementation in Main_Controller_Linkset.lsl
- Added context note about improved faster gameplay
- Updated version info from 2.6.0 to 2.8.1 (August 14, 2025)
- Added new v2.8.0 security features (Game Lockout, Kick Player)
- Added new v2.8.1 display improvements (Real-time status, enhanced elimination)
- Updated owner menu section with new Lock/Unlock and Kick Player options
- Added comprehensive Game Security and Enhanced Display System sections
- Updated technical rules to reflect automatic reset and single linkset architecture
- Maintained all original core gameplay rules and strategies
- Now clears entire workspace except .git directory before checkout
- Ensures absolutely clean state for every build
- Uses safe find command with error suppression
- Guarantees no leftover files from previous builds can interfere
- Cleanup now runs right after checkout, before validation
- Removes conditional 'when' clause so cleanup runs on all branches
- This ensures validation only processes clean original files
- Much more efficient - no more validating hundreds of processed files
- Replace bash [[ ]] with POSIX [ ] syntax
- Use parameter expansion for prefix checking
- Eliminates "[[: not found" errors in Jenkins logs
- Maintains same functionality with better shell compatibility
- Added 'Clean Workspace' stage to remove all processed_*.lsl files before preprocessing
- Fixed documentation generation to only process original source files
- This will clean up the hundreds of recursive processed files from Jenkins workspace
- Pipeline now starts with a clean slate on each build
- Only process original source files, not already-processed ones
- Add .gitignore to exclude processed files and build artifacts
- Prevents exponential explosion of processed_processed_processed... files