Commit graph

129 commits

Author SHA1 Message Date
322548af5d v3.2.6 DOCS: Finalized public documentation (Marketplace, Notecards, README) for Hybrid HUD release 2026-04-05 10:55:17 -06:00
404dba66a5 v3.2.6 FINAL: Hybrid HUD Production Release - Verified Direct-Target Detach and Production Constants 2026-04-05 10:48:44 -06:00
8b1dc9dd88 v3.2.4: Direct-Target HUD Fix - Switched to llRegionSayTo for cleanup and restored Goldilocks scale 2026-04-05 10:24:30 -06:00
e7b77397c9 v3.2.3: HUD Auto-Detach Diagnostic - Added cleanup logging and signal padding for simulator reliability 2026-04-05 10:15:09 -06:00
a8dcf17b27 v3.2.2: Hybrid HUD Upgrade - Personal HUD for humans (ATTACH_HUD_CENTER_2) and in-world floaters for bots 2026-04-05 10:07:55 -06:00
afc2fda6b9 v3.2.1: Documentation refinement - Replaced legacy XyzzyText references with FURWARE Text Mesh 2026-04-05 09:38:53 -06:00
824824c32d v3.2.0: The 'Sync Sanctity' Update - Unified life sync, virtualized scoreboard, and documentation finalization 2026-04-05 09:31:37 -06:00
a225244241 added memmory toggle in peril_constants.lsl, added new memory macro script in constants, added macro to all files, optimised scoreboard manager, bug fixes in mulitible scripts 2026-04-04 18:16:01 -06:00
915c079a7a chore: v3.1.0 Peril Dice - Linkset Stability Update & FURWARE Text Mesh Migration 2026-04-04 03:38:41 -06:00
8931c88c35 updated changelog and readme and marketplace discription 2026-03-25 04:59:25 -06:00
5c3eb15c16 updated to useing preprocesser in firestorm, saveing space in memory, changed to new experience database 2026-03-24 16:46:07 -06:00
991b478e01 updated the scoreboard to be global useing my new experence i created, updated version number on updater 2026-03-23 13:30:23 -06:00
5d83283be3 updated lsl scripts to be preprocessed 2026-03-23 09:48:00 -06:00
38aa4f2ba8 optimiseing 2026-02-02 09:52:44 -07:00
bc15d84b55 fix bug 2025-12-14 15:45:29 -07:00
abb4fe34c7 fix: Critical timer bug preventing script installation continuation
PROBLEM: Timer was immediately turned off after each script installation
- Line 328: llSetTimerEvent(0.0) killed timer after every installation
- Only first script would install, then process would stop

SOLUTION:
- Only turn off timer when NOT updating
- Let installNextScript() manage its own timing
- Properly stop timer in completeUpdate() and handleUpdateError()
- Now all 18 scripts should install sequentially

This fixes the '1 script installs then stops' bug
2025-10-02 19:13:46 -05:00
eb9dc566e9 fix: Move Update_Receiver to end of installation order
- Update_Receiver now installs LAST to prevent interrupting update process
- Avoids scenario where controlling script gets replaced mid-update
- All other scripts install first, then Update_Receiver replaces itself
- Critical fix for reliable automatic updates
2025-10-02 15:35:42 -05:00
ce953629cf version: Update Update_Receiver to v2.8.8
- Match current release version
- Game will now report correct v2.8.8 version
- Ready for update testing with Traditional_Updater
2025-10-02 15:32:48 -05:00
9047375b16 feat: Add StatFloat object support to Traditional_Updater
- Add REQUIRED_OBJECTS list for non-script inventory items
- Update inventory checking to show both scripts and objects
- Add transferObjects() function using llGiveInventory()
- Transfer objects first, then install scripts during update
- Support for updating StatFloat floater objects
- Enhanced progress reporting for scripts vs objects
2025-10-02 15:14:39 -05:00
b7171ddb81 feat: Add link-aware script placement to Traditional_Updater
- Map each script to its correct link number
- installScriptToLink() handles single and multi-link installations
- Special handling for xyzzy_Master_script (links 35-82, 48 copies)
- Uses start_param in llRemoteLoadScriptPin to target specific links
- Inventory check shows script → link mapping
- Progress tracking for complex multi-link installations
2025-10-02 13:51:35 -05:00
e90be2ca57 feat: Add traditional inventory-based updater system
- Traditional_Updater.lsl copies scripts from its own inventory
- Uses llRemoteLoadScriptPin with script names (not content)
- Follows proven Second Life updater patterns
- Includes inventory verification system
- Lists all 17 required Peril Dice scripts
- Should work reliably unlike HTTP-based approach
2025-10-02 13:41:52 -05:00
1a9414b21c feat: Add llRemoteLoadScriptPin debug test system
- Add Test_Updater.lsl for testing llRemoteLoadScriptPin with tiny script
- Add '/1 test' command to Update_Receiver for PIN testing
- Simple test script (77 chars) to verify basic functionality
- Will help identify if issue is with PIN system, permissions, or script size
- Safe testing - only adds small test script, never deletes anything
2025-10-02 13:27:27 -05:00
066680bc55 EMERGENCY FIX: Remove dangerous script deletion
- Remove llRemoveInventory() calls that delete user scripts
- Switch to safe mode: only ADD new scripts, never delete
- User can manually copy content from new auto-generated scripts
- Prevents data loss from failed automatic replacement
2025-10-02 13:08:33 -05:00
79040c66f3 feat: Implement commercial-style updater with script removal/replacement
- Add REMOVE_SCRIPT command to delete old scripts before update
- Add RENAME_SCRIPT command for future script name management
- Use 3-step process: remove old → install new → rename
- Update_Receiver now handles script inventory management
- Follows commercial SL updater patterns with remove-then-replace
2025-10-02 13:02:09 -05:00
3987b970ba debug: Add better debugging output to llRemoteLoadScriptPin
- Show target object key and PIN for debugging
- Display script content size
- Simplify approach to focus on core llRemoteLoadScriptPin functionality
- This will help identify why script installation is failing
2025-10-02 12:58:17 -05:00
c9f1d55393 fix: Remove .lsl extensions from script names for Second Life inventory compatibility
- Update script format to URL|link|scriptname
- Second Life inventory stores scripts without .lsl extension
- llRemoteLoadScriptPin needs script name without extension
- Fixes 'Missing inventory item' errors during automatic updates
2025-10-02 12:52:47 -05:00
342943eaf0 feat: v2.8.8 - GitHub Integration & External Updater System
- 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
2025-10-02 12:43:21 -05:00
e96fb38f3e fix: Implement manual JSON parsing for LSL 2048-char limit
LSL truncates HTTP responses at 2048 characters, breaking JSON parser.
Implemented manual string parsing to extract:
- tag_name (version)
- html_url (release page)
- published_at (release date)

This works around LSL's HTTP response limitation and provides
reliable GitHub release detection.
2025-10-02 11:35:53 -05:00
baca2893a5 debug: Add comprehensive JSON parsing debugging
- Show response length and manual tag_name search
- Try to isolate whether it's LSL JSON parser or response format
- Add fallback manual extraction if JSON parsing fails
- Detailed logging to identify exact parsing issue
2025-10-02 11:29:28 -05:00
0a4ca49a49 fix: Improve JSON parsing robustness in Update_Checker
- 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.
2025-10-02 11:24:53 -05:00
6b867aaf77 chore: Add __pycache__/ to .gitignore
Prevents Python cache files from showing as uncommitted changes
2025-10-02 11:17:41 -05:00
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