Commit graph

98 commits

Author SHA1 Message Date
23153cb5db feat: Add MCP (Model Context Protocol) development tools
🔧 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.
2025-10-02 11:16:14 -05:00
381ac0d9d8 feat: Add GitHub Update System & Linkset Analysis Tools (v2.8.7)
🔄 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
2025-10-02 11:10:16 -05:00
e9a006434d fix: resolve all 115 LSL validation errors
- Fixed duplicate global variable declarations across all LSL scripts
- Renamed conflicting variables to be function-specific (i->loadI, idx->removeIdx, etc.)
- Resolved variable scope conflicts in major files:
  - Game_Manager.lsl: Fixed rollRequest variable conflicts
  - Game_Scoreboard_Manager_Linkset.lsl: Fixed 38+ variable redeclaration errors
  - Controller_MessageHandler.lsl: Fixed message parsing variable conflicts
  - Bot_Manager.lsl, Floater_Manager.lsl, Game_Calculator.lsl: Fixed loop variable conflicts
- Jenkins CI/CD pipeline should now pass with 0 validation errors
- Maintained all original functionality while ensuring unique variable names per scope
2025-09-18 13:10:38 -05:00
6aa5a4a3c9 Fix Controller_MessageHandler.lsl variable name conflicts (18 errors)
Fixed all 18 variable conflicts by renaming variables in different functions:
- parts -> pickParts, actionParts, leaveParts, syncParts, ownerParts, publicParts, regionParts, dialogParts
- i -> j, k, m in different loops
- idx -> lifeIdx, removeIdx, leaveIdx
- action -> pickAction, leaveAction
- playerName -> syncPlayerName, ownerPlayerName, leavePlayerName
- msgType -> ownerMsgType, publicMsgType, regionMsgType
- playerKey -> regionPlayerKey, dialogPlayerKey
- entry -> syncEntry

Progress: 115 → 57 total errors (-58 total, -18 this fix)
9 files now completely error-free! 50% error reduction achieved!
2025-09-18 12:50:02 -05:00
713af5f26e Fix xyzzy_Master_script.lsl variable name conflicts (16 errors)
Fixed all 16 variable conflicts:
- Col/Row -> offsetCol/offsetRow
- GridPos1-5 -> EffectsPos1-5, ExtendedPos1-5
- j -> k in loops
- Parsed -> RemapParsed, CellParsed
- i -> m in loops

Progress: 115 → 75 total errors (-40 total, -16 this fix)
8 files now completely error-free!
2025-09-18 12:42:41 -05:00
15318d8292 Fix LSL validation errors in Game_Calculator, Leaderboard_Communication_Linkset, and Player_DialogHandler
- Game_Calculator.lsl: Fixed 6 variable name conflicts (i, idx, testName, parts)
- Leaderboard_Communication_Linkset.lsl: Fixed 3 variable name conflicts (lines, i, linkNum)
- Player_DialogHandler.lsl: Fixed 8 variable name conflicts (options, i, displayName, menuText)
- Progress: 115 → 91 total errors (-24 total, -8 this batch)
2025-09-18 12:32:13 -05:00
7e8de1cc01 Fix LSL validation errors in Bot_Manager, Controller_Memory, Player_RegistrationManager, and Floater_Manager
- Bot_Manager.lsl: Fixed 3 variable name conflicts (response, botIdx, botLives)
- Controller_Memory.lsl: Fixed 2 variable name conflicts (usedMemory, memoryPercentage)
- Player_RegistrationManager.lsl: Fixed 1 variable name conflict (i)
- Floater_Manager.lsl: Fixed 1 variable name conflict (i)
- Progress: 115 → 108 total errors (-7)
2025-09-18 12:26:14 -05:00
4b3adf32a2 Debug Jenkins LSL tools environment and add fallback to local validator 2025-09-18 12:18:21 -05:00
2e8494afe8 ## [2.8.6] - 2025-09-16 2025-09-18 12:08:55 -05:00
fdd8c761da Fix leaderboard sorting bug - numerical sorting instead of alphabetical
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.
2025-09-16 14:13:52 -05:00
6f2a0cd920 Fix markdown table formatting in README.md
Remove extra pipe characters that were breaking the v2.8.6 Before/After comparison table on GitHub
2025-09-16 13:31:23 -05:00
03c5d81bb0 v2.8.6: Winner Glow Celebration System
- 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!
2025-09-16 13:10:41 -05:00
dd03bd8eef v2.8.5 - Memory Optimization & Architecture Cleanup
🧠 MEMORY OPTIMIZATION & DEAD CODE CLEANUP:
- Removed vestigial UpdateHelper.lsl (204 lines, ~41KB memory waste)
- Main Controller memory improved from 83.8% to 81.4% (2.4% reduction)
- Simplified Verbose_Logger from 149 to 80 lines (47% reduction)
- Eliminated unused buffering systems and timer overhead

🎨 BOT PROFILE PICTURE FIX:
- Fixed bot avatars randomly turning into gray boxes mid-game
- Modified refreshPlayerDisplay() to preserve active player textures
- Enhanced bot caching to prevent HTTP requests
- Stable bot visuals throughout entire game

🏗️ ARCHITECTURE OPTIMIZATION:
- Updated link numbers: Scoreboard (2→12), Leaderboard (25→35), Dice (73→83)
- Enhanced prim structure with dedicated overlay prims (links 2-11)
- Updated 11 scripts with new mappings and prim ranges
- More organized and scalable linkset structure

🔧 ENHANCED GAME LOGIC & BUG FIXES:
- Improved number picker parsing for CSV and semicolon formats
- Enhanced bot round detection and fair play mechanics
- Better communication handling and player feedback
- Whitespace handling for consistent number parsing

📊 PERFORMANCE IMPACT:
- Measurable memory reduction across multiple scripts
- Eliminated profile picture flickering and display issues
- Reduced unnecessary inter-script message traffic
- Cleaner, more maintainable codebase

Files changed: 11 modified scripts, 4 updated documentation files
Total: 838 insertions, 776 deletions representing significant optimization
2025-09-14 20:44:52 -05:00
2d2a67dfc5 fix: CRITICAL player registration memory fix for Stack-Heap on join
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.
2025-09-14 10:06:53 -05:00
7124089015 fix: EMERGENCY memory relief for Main Controller Stack-Heap Collision
CRITICAL MEMORY REDUCTION in Main_Controller_Linkset.lsl:

REPLACED HEAVY STRING CONCATENATIONS:
- Emergency cleanup debug messages -> delegated ownerMsg()
- Status message debug -> simple debugMsg()
- Victory sequence debug -> simple ownerMsg()
- Heavy debug loops in updateHelpers() -> single debugMsg()
- Multi-line sync message debug -> simple debugMsg()

MEMORY SAVINGS:
- Eliminated 5+ complex string concatenation operations
- Reduced debug message processing overhead
- Delegated memory-heavy operations to MessageHandler
- Simplified all owner message output

This should immediately reduce Main Controller memory pressure
and resolve the Stack-Heap Collision issue.
2025-09-14 10:04:10 -05:00
e6a6f76863 restore: add back all emojis to Controller_MessageHandler
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.
2025-09-14 09:57:38 -05:00
5646cb52c3 fix: resolve syntax error by renaming variable on line 324
- 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
2025-09-14 09:55:30 -05:00
7f13a85274 fix: replace unicode characters causing syntax error in Controller_MessageHandler
- Fixed syntax error on line 324,19 caused by unicode emoji characters
- Replaced all emoji characters with plain text equivalents:
  - 🎮 -> [GAME]
  - 👋 -> [JOIN]/[LEAVE]
  - ⚠️ -> [ERROR]
  - ✅ -> [SUCCESS]
  - 🔧 -> [DEBUG]
  - 🔄 -> [WELCOME]

This resolves LSL compilation issues while maintaining functionality.
2025-09-14 09:52:35 -05:00
00ad7453bd fix: delegate memory-heavy string operations to Controller_MessageHandler
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.
2025-09-14 09:49:50 -05:00
b613452db1 fix: correct LSL syntax error in Verbose_Logger.lsl
- 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.
2025-09-14 09:45:37 -05:00
e5f093e0f6 fix: split verbose logging into dedicated script to resolve Stack-Heap Collision
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.
2025-09-14 09:42:09 -05:00
bb06bf74dd fix: emergency memory optimization to prevent Stack-Heap Collision
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.
2025-09-14 09:39:06 -05:00
56c74a03f5 docs: add credit to Pawkaf for red X elimination visual feature
- 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
2025-09-14 08:39:33 -05:00
d051a2deaf docs: add red X elimination visual feedback to v2.8.4 documentation
- 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
2025-09-14 08:37:03 -05:00
8f95e792e2 fix: replace ternary operators with conditional statements for LSL compatibility
- Fixed LSL syntax errors caused by unsupported ternary operator (condition ? value1 : value2)
- Replaced all ternary operators with proper if/else statements in verbose logging toggles
- Ensures 'ENABLED'/'DISABLED' messages display correctly without compilation errors
- Updated files: Bot_Manager.lsl, Controller_Memory.lsl, Controller_MessageHandler.lsl,
  Floater_Manager.lsl, Game_Calculator.lsl, Game_Manager.lsl, Game_Scoreboard_Manager_Linkset.lsl,
  Leaderboard_Communication_Linkset.lsl, Main_Controller_Linkset.lsl, NumberPicker_DialogHandler.lsl,
  Player_DialogHandler.lsl, Roll_ConfettiModule.lsl, System_Debugger.lsl, XyzzyText_Dice_Bridge_Linkset.lsl
- Updated WARP.md with latest v2.8.4 release information and fixes documentation
2025-09-14 08:29:56 -05:00
c2341d0a93 docs: add missing number detection fix to v2.8.4 documentation
- 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
2025-09-14 08:29:23 -05:00
7cb9366291 Fix LSL script bugs: indentation error in Bot_Manager, TestBot prefix consistency, and typo in calculator emoji 2025-09-03 18:58:27 -05:00
fd2c0beaa3 ## [2.8.3] - 2025-09-01 2025-09-01 13:01:45 -05:00
0ddbbb0e65 marketplace description 2025-08-21 12:31:59 -05:00
fa8a0c9ca4 ## [2.8.2] - 2025-08-21 2025-08-20 21:22:16 -05:00
d1cc376f2a # 🎲 **PERIL DICE GAME - OFFICIAL RULES** 2025-08-14 08:29:28 -05:00
0f63246d63 Update GAME_RULES.md to reflect correct 2-minute dialog timeout
- 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
2025-08-14 01:07:32 -05:00
fb78223973 Update GAME_RULES.md to version 2.8.1 with latest features
- 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
2025-08-14 01:03:51 -05:00
152d638b3f Add complete workspace cleanup before checkout
- 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
2025-08-14 00:49:33 -05:00
6696ec9ca1 Move cleanup stage to run immediately after checkout
- 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
2025-08-14 00:46:59 -05:00
9c73a60f89 Fix Jenkins shell compatibility for POSIX sh
- 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
2025-08-14 00:45:51 -05:00
f693450455 Add workspace cleanup stage to Jenkins pipeline
- 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
2025-08-14 00:42:28 -05:00
6a06a4199c Fix Jenkins preprocessor recursive processing
- 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
2025-08-14 00:40:29 -05:00
56dbdd9f9f ## [2.8.1] - 2025-08-14 2025-08-14 00:35:02 -05:00
b28970ea8e some floater and scoreboard fixes 2025-08-13 14:32:26 -05:00
f06108d99a fixed readme 2025-08-12 12:10:10 -05:00
4857f4f436 fix shell compatibility and clean up jenkins pipeline 2025-08-12 06:50:33 -05:00
b85cd4cba0 fix jenkins conditional stages using GIT_BRANCH environment variable 2025-08-12 06:46:24 -05:00
c7bb6dae6d add branch debugging to jenkins pipeline 2025-08-12 06:41:45 -05:00
46d4c66dbc fix jenkins branch detection for conditional stages 2025-08-12 06:36:48 -05:00
00c849c208 removing files that are not needed anymore 2025-08-12 06:28:53 -05:00
571e324dc7 on-rez added for reet, itwas missing when it should of been thre 2025-08-12 06:14:23 -05:00
f60d53c78e ## [2.8.0] - 2025-08-12 2025-08-12 02:25:32 -05:00
23d02080ca dice fix 2025-08-10 21:00:24 -05:00
11a4888566 Make Discord webhook optional to avoid credential errors
- Comment out NOTIFICATION_WEBHOOK credential until configured
- Pipeline should now run without credential errors
- Notifications can be added later when webhook is set up
2025-08-10 09:25:46 -05:00