A cross-platform video and audio player built for local funscript playback, with The Handy, FunOSR, and Intiface / Buttplug device support, multi-axis tools, an organized media library, and experimental compatibility playback options.
Download Latest Release · Watch Overview Demo · 한국어 · 日本語 · 中文
Click the hero image or the demo cards below to open the short product videos.
ScriptPlayer+ is for people who already have local media and scripts and want a player that feels current. The focus is straightforward: clean playback, clean device control, and an efficient library workflow that does not waste time.
|
Playback-first UI Fullscreen playback, timeline and heatmap overlays, subtitle support, audio artwork mode, and quick stroke controls without burying everything in menus. |
Device support that scales Use The Handy, Intiface / Buttplug devices, or direct FunOSR serial output from the same app, with per-device routing and multi-axis support. |
Library workflow that wastes less time Folder browsing, script and subtitle detection, hover video preview, sorting, EroScripts search, and manual override tools are all built in. |
- Plays local video files:
MP4,MKV,AVI,WebM,MOV,WMV - Plays local audio files:
MP3,WAV,FLAC,M4A,AAC,OGG,OPUS,WMA - Offers a visual library workspace alongside the collapsible classic file panel
- Detects matching bundled funscripts, supports separate script folders, and can auto-pick unique fallback matches
- Shows a quick script variant panel when multiple matching script bundles are available
- Detects matching external subtitle files and lets you load subtitles manually
- Shows hover video preview inside the file list
- Sorts the library by path, file name, rating, duration, or last modified time
- Separates repeat-current-media,
Auto Next Play, shuffle playback, and adjustable playback rate - Supports drag and drop for opening media directly
- Searches audio metadata and work folders for matching cover art and subtitles
- Includes optional volume boost up to
150%for quiet audio
- Real-time scrolling timeline with selectable multi-axis tracks and configurable height
- Full-media heatmap with speed-based color visualization
- Quick
STRstroke controls in the playback bar - Range Extender controls with per-media stroke range storage and inverse stroke toggle
- Per-media script offset from
-60sto+60s, with direct decimal-second entry and fine-step buttons - Optional random fallback stroke generation for media without scripts
- Gap filling, delayed automatic skipping, and sparse-script controls
- Multi-axis bundles using
axes[]orchannels{}plus separate per-axis funscript files
The HandyAPI v2 sync with upload, setup, time offset handling, network diagnostics, and a compatibility mode for slower legacy hardwareIntiface / Buttplugmulti-axis mapping for linear, rotate, and scalar featuresFunOSRserial and Bluetooth COM profiles, adjustable update rate, axis mapping, reconnect handling, and motion smoothing- Dedicated accessory pairing, automatic reconnect, key mapping, and direct flasher access
- Experimental external viewer launch support for
JAVPlayer,JAVPlayerEZ,mpv,PotPlayer,VLC, and custom executables - Experimental FFmpeg fallback playback for video that Electron cannot decode directly
- In-app
EroScriptslogin, browsing, searching, and downloading - Session persistence for EroScripts login on the local machine
- Reworked the application around a unified navigation layout and a visual library workspace, while keeping the classic file panel available and collapsible
- Expanded multi-axis parsing and visualization, including bundled
axes[]/channels{}scripts, selectable simultaneous axis tracks, and adjustable timeline height - Added Range Extender workflows, per-media output ranges, motion smoothing controls, and direct script-offset input up to
±60s - Improved Handy upload / HSSP recovery, added legacy Handy compatibility settings, and introduced Handy network latency diagnostics
- Improved FunOSR serial and Bluetooth COM behavior with device profiles, reconnect-safe output, pause / home options, and smoother motion presets
- Added experimental External Viewer Mode for JAVPlayer, JAVPlayerEZ, mpv, PotPlayer, VLC, and custom players
- Added an experimental FFmpeg compatibility engine for media that Chromium cannot decode directly
- Improved audio cover-art and subtitle discovery, added optional
150%volume boost, and reduced heavy startup work - Added dedicated accessory automatic reconnect and improved pairing / flasher access
- Added same-version hotfix detection, in-app hotfix notes, and installer handoff
- Fixed playlist script rematching and several script-folder indexing, gap-fill, black-frame warning, and media metadata regressions
| Platform | Package | Notes |
|---|---|---|
| Windows x64 | Latest release | Installer and portable ZIP |
| macOS x64 / arm64 | Latest release | DMG and ZIP packages |
| Linux x64 | Latest release | AppImage, DEB, and archive packages when available |
| Type | Formats |
|---|---|
| Media | mp4, mkv, avi, webm, mov, wmv, mp3, wav, flac, m4a, aac, ogg, opus, wma |
| Scripts | .funscript, .json, .csv |
| External subtitles | .srt, .vtt, .txt |
- Embedded subtitle tracks inside video containers are not parsed yet. Use external subtitle files for now.
- External Viewer Mode launches every supported target, but transport control and synchronization depth vary by player.
- FFmpeg compatibility playback is experimental and requires a working FFmpeg executable to be installed or selected in settings.
- Device output currently uses one active provider at a time; simultaneous Handy + Intiface / FunOSR output is not supported yet.
ScriptPlayer+ is currently distributed as signed or packaged desktop binaries under its EULA. The public repository is used for releases, update metadata, documentation, and issue tracking; the full application source is not publicly distributed.
| Key | Action |
|---|---|
Space / K |
Play / Pause |
Left / Right |
Seek -5s / +5s |
Shift + Left / Right |
Seek -10s / +10s |
Up / Down |
Volume +5% / -5% |
F |
Toggle fullscreen |
M |
Toggle mute |
Ctrl + , |
Open settings |
- Electron
- React
- TypeScript
- Tailwind CSS
- Vite
FunOSR serial device hardware provided by FunOSR (manufacturer).
Thank you for supplying test equipment used during development.
ScriptPlayer+ End User License Agreement
ScriptPlayer+ is proprietary software distributed under the terms in LICENSE.
Commercial use, redistribution, modification, and reuse of project media require separate written permission from the copyright holder.



