Releases: edger477/funscript-tools
v2.0.5
2.0.5 - external config loading improvement:
1. Fixed event definitions loading to check exe directory first before bundled resources
2. Users can now edit config.event_definitions.yml next to the exe to add custom events without rebuilding
3. Added get_resource_path() helper function for proper PyInstaller resource resolution
What This Enables
For End Users:
- Place config.event_definitions.yml next to the .exe file
- Edit to add custom events
- Restart app → custom events available immediately ✅
- No rebuilding required!
Next Steps:
- Next build will include this fix
- The bundled config serves as a fallback if external file is missing
v2.0.4
v2.0.3
2.0.3 - custom events system improvements and bugfixes:
1. Auto-create empty .events.yml template next to source .funscript files during processing
2. Auto-load .events.yml file when opening Custom Event Builder after processing
3. Fixed Custom Event Builder saving modified files to wrong directory in central folder mode
4. Fixed .events.yml files to always stay in local/source directory (not moved to central folder)
5. Fixed critical overwrite mode ramp bug: ramps now blend from/to current values instead of dropping to 0
6. Added dirty flag tracking with "Save and Apply Effects" button text when changes are unsaved
v2.0.2
What's Changed
2.0.2 - improvements and bugfixes:
1. Added comprehensive metadata to all generated funscript files (generator, version, algorithms, parameters)
2. Added rest level ramp-up feature with centered transition window for smooth volume recovery
3. Fixed file overwrite issue in central folder mode (files now properly updated when backups disabled)
4. Replaced automatic linked axes with explicit comma-separated axis targeting (e.g., "volume,volume-prostate")
5. Removed volume-stereostim file generation and related parameters
6. Added validation warning for modulation frequencies >30 Hz (potential undersampling)
Full Changelog: v2.0.1...v2.0.2
v2.0.1
What's Changed
- Bugfixes by @edger477 in #2
2.0.1 - bugfixes:
1. Direction change probability saved/loaded correctly
2. Convert to 2D button working in Motion Axis tab
3. Auto-generate option replaced with overwrite option
4. Smart overwrite behavior implemented
5. Prostate generation checkbox working correctly
Full Changelog: v2.0.0...v2.0.1
v2.0.0
What's Changed
Full Changelog: v1.0.8...v2.0.0
The new dialog for editing multiple funscripts via yaml file using predefined events - the library with some of them is already available in config.event_definitions.yml - it is possible to edit this file and introduce new custom events. Use Fundamental operations document to get idea of how to do that.

Restim Funscript Processor v1.0.8
feat: Add restim original (0-360) algorithm with dynamic parameter control
- Add original restim algorithm from diglet48's repository
- New Direction Change Probability slider (0.0-1.0) with value display
- Dynamic UI disables irrelevant parameters per algorithm selection
- Implements stroke-relative circular motion with random direction changes
v1.0.7
v1.0.6
Redesign alpha/beta generation with global center algorithm and percentage-based speed threshold
- Change speed threshold from Hz to percentage (0-100%, default 50%)
- Redesign circular and oscillating algorithms to use global center (0.5, 0.5)
- Enable alpha/beta to reach full 0-100 range at maximum speed
- Use speed.funscript values for radius scaling instead of calculating on-the-fly
- Generate speed.funscript before alpha/beta in processing pipeline
- Add config.json to release package
- Update UI: Hz slider → percentage slider with IntVar
Full Changelog: v1.0.5...v1.0.6
v1.0.5
Add batch processing and zip packaging features
Features:
-
Batch processing: Select and process multiple .funscript files in sequence
- File dialog now supports multi-select (Ctrl/Shift)
- Display shows "X files selected" for multiple files
- Sequential processing with per-file progress tracking
- Batch completion summary shows successful/failed/total counts
- Works for both "Process All Files" and "Process Motion Files"
-
Zip packaging: Optional archive creation for output files
- New checkbox in Advanced tab: "Pack Output Files to Zip Archive"
- Creates {sourceFile}.zip containing all output .funscript files
- Includes motion axis files (e1-e4) when present
- Uses ZIP_DEFLATED compression
- Config parameter: advanced.pack_output_to_zip (default: false)
Implementation:
- ui/main_window.py: Batch file selection and processing loops
- ui/parameter_tabs.py: Zip packaging checkbox in Advanced tab
- processor.py: Zip creation method with output file collection
- config.json: Added pack_output_to_zip parameter
🤖 Generated with Claude Code (https://claude.com/claude-code)
Co-Authored-By: Claude noreply@anthropic.com
Full Changelog: v1.0.4...v1.0.5