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
- 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
- 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
- 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
- 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
- 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
- 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
- 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