Skip to content

sioaeko/scriptplayer-plus

Repository files navigation

ScriptPlayer+ icon

ScriptPlayer+

A modern desktop player for local funscript playback, with a cleaner playback UI, The Handy sync, Intiface / Buttplug multi-axis routing, FunOSR serial support, in-app EroScripts browsing, and a media library that is actually pleasant to use.

Latest Release Downloads Platforms License

Download Latest Release · Watch Overview Demo · 한국어 · 日本語 · 中文


ScriptPlayer+ overview demo

Click the hero image or the demo cards below to open the short product videos.

Why ScriptPlayer+

ScriptPlayer+ is for people who already have local media and scripts, but want a player that feels current instead of patched together. The point is straightforward: cleaner playback, cleaner device control, and a 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.

Product Tour

Overview demo Video preview demo Random stroke demo
Overview Demo
Open the main player walkthrough and see the current playback surface, layout, and device flow.
Video Preview Demo
See how file-list hover preview works without leaving the browser or opening the file first.
Random Stroke Demo
Check the fallback stroke generation workflow for media that does not ship with a script.

Inside The App

Device settings Keyboard shortcuts
Device routing and mapping
Configure Handy, Buttplug, and serial behavior in one place instead of splitting setup across multiple tools.
Keyboard-first control
Playback, seeking, fullscreen, and navigation are all available from configurable shortcuts.

Highlights

Playback And Library

  • Plays local video files: MP4, MKV, AVI, WebM, MOV, WMV
  • Plays local audio files: MP3, WAV, FLAC, M4A, AAC, OGG, OPUS, WMA
  • Detects matching bundled funscripts and supports separate script folders
  • 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, or last modified time
  • Supports sequential playback, shuffle playback, and adjustable playback rate
  • Supports drag and drop for opening media directly
  • Automatically picks matching cover art for audio playback when available

Script Visualization And Control

  • Real-time scrolling timeline with configurable window size and height
  • Full-media heatmap with speed-based color visualization
  • Quick STR stroke controls in the playback bar
  • Stroke range min / max controls and inverse stroke toggle
  • Optional random fallback stroke generation for media without scripts
  • Automatic skipping for long empty script gaps in sparse scripts
  • Multi-axis funscript bundle loading and routing

Devices And Script Sources

  • The Handy sync with upload, setup, and time offset handling
  • Intiface / Buttplug multi-axis mapping for linear, rotate, and scalar features
  • FunOSR serial / COM output with adjustable update rate
  • In-app EroScripts login, browsing, searching, and downloading
  • Session persistence for EroScripts login on the local machine

What's New In v0.1.7

  • Fullscreen FIT behavior was refreshed so playback can fill the screen more naturally
  • Fullscreen controls were reworked for better readability and cleaner overlay behavior
  • Funscript inverted metadata is now respected more reliably for Intiface / Buttplug playback
  • Release assets are now published for Windows, macOS, and Linux from GitHub Actions

Download

Platform Package Notes
Windows x64 Latest release Portable build, extract and run ScriptPlayerPlus.exe
macOS x64 / arm64 Latest release ZIP package, move ScriptPlayerPlus.app to Applications
Linux x64 Latest release AppImage build is published with each tagged release

Supported Files

Type Formats
Media mp4, mkv, avi, webm, mov, wmv, mp3, wav, flac, m4a, aac, ogg, opus, wma
Scripts .funscript, .json
External subtitles .srt, .vtt, .txt

Current Notes

  • Embedded subtitle tracks inside video containers are not parsed yet. Use external subtitle files for now.
  • Linux release output currently targets x64 AppImage.
  • The localized READMEs under docs/ have not been refreshed to the same level as this main README yet.

Build From Source

Use Node.js 20.x. The project pins 20.20.2 in .nvmrc.

git clone https://github.com/sioaeko/scriptplayer-plus.git
cd scriptplayer-plus
npm install

Run the app in development:

npm run electron:dev

Build for Windows:

npm run build:win

Build for macOS:

npm run build:mac

Build for Linux:

npm run build:linux

Keyboard Shortcuts

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

Tech Stack

  • Electron
  • React
  • TypeScript
  • Tailwind CSS
  • Vite

License

PolyForm-Noncommercial-1.0.0

This project is source-available for noncommercial use. Commercial use requires separate permission from the copyright holder.

About

ScriptPlayer+ — The most powerful funscript video player, featuring Handy/funosr integration, EroScripts support, and a multi-language UI

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors

Languages