- 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
4 KiB
4 KiB
Peril Dice External Updater System
Architecture Overview
Components Needed:
1. Updater Box (Peril_Dice_Updater.lsl)
- Standalone object that users rez temporarily
- Downloads scripts from GitHub when activated
- Installs scripts into target Peril Dice game via remote loading
- Self-contained - includes all update logic
2. Update Receiver (in main game)
- Modified
Update_Checker.lsl→Update_Receiver.lsl - Scans for nearby updater boxes
- Requests updates when available
- Manages the script replacement process
3. Script Manifest (GitHub hosted)
- JSON file listing all scripts and their GitHub URLs
- Version tracking for incremental updates
- Deployment instructions for updater
Technical Implementation
Update Process Flow:
1. User rezzes "Peril Dice Updater v2.8.7" box
2. User touches their Peril Dice game → "Check for Updates"
3. Game scans for nearby updater boxes (llSensor)
4. Game requests update from updater box
5. Updater downloads scripts from GitHub
6. Game sets script access pin (llSetRemoteScriptAccessPin)
7. Updater installs scripts via llRemoteLoadScriptPin()
8. Game validates installation and reports success
9. User deletes updater box
Key LSL Functions:
llSensor()- Find nearby updater boxesllSetRemoteScriptAccessPin()- Allow updater accessllRemoteLoadScriptPin()- Install new scriptsllHTTPRequest()- Download scripts from GitHubllGetInventoryName()- Validate installed scripts
User Experience
For Players:
- Receive "Peril Dice Updater v2.8.7" from creator
- Rez updater near their game
- Touch game → Admin Menu → "Check for Updates"
- See "Update Available: v2.8.6 → v2.8.7"
- Click "Install Update"
- Watch progress: "Installing script 3 of 17..."
- See "✅ Update Complete! Game is now v2.8.7"
- Delete updater box
For Creator (You):
- Build new scripts and test them
- Commit to GitHub with version bump
- Create updater box with new version number
- Distribute updater to users via marketplace/group notices
- Users get automatic professional updates
Advantages Over Manual Updates
✅ Professional Experience:
- One-click updates like commercial software
- Progress indicators and status messages
- Automatic validation of successful installation
- No copy/paste errors or missed scripts
✅ Version Control:
- Updater knows exactly which scripts need updating
- Can do incremental updates (only changed files)
- Prevents version mismatches between scripts
- Tracks what was updated when
✅ User Friendly:
- No technical knowledge required
- Clear instructions and feedback
- Impossible to mess up the installation
- Works the same way every time
Files to Create
1. Peril_Dice_Updater.lsl
- Main updater script for the external box
- GitHub API integration for script downloads
- Remote script installation logic
- Progress reporting and error handling
2. Update_Receiver.lsl
- Replace existing Update_Checker.lsl
- Scan for nearby updater boxes
- Coordinate with updater for script replacement
- Validate successful updates
3. updater-manifest.json (GitHub)
- List of all scripts with GitHub URLs
- Version requirements and dependencies
- Installation order and link assignments
4. Instructions for packaging updater boxes
- How to create updater objects for distribution
- Testing procedures for new versions
- Distribution methods (marketplace, group, etc.)
Implementation Priority
Phase 1: Core Updater System
- Create basic updater box with GitHub integration
- Modify existing Update_Checker to work with updater
- Test with simple single-script updates
Phase 2: Full Integration
- Complete manifest system for all 17 scripts
- Add progress indicators and error handling
- Test complete game updates
Phase 3: Polish & Distribution
- Create professional updater box object
- Write user documentation
- Set up distribution system
This system would provide a truly professional update experience matching commercial Second Life products!