ScriptCompiler v2

ScriptCompiler - Web-Based Funscript Editor for Desktop & Mobile

scriptcompiler responsiveness


Companion app users: Please manually download v1.1.1 from the git release page – a bug in earlier versions prevented the auto-updater from working, which is now fixed going forward.


I’ve built a fully web-based funscript editor that actually works on mobile - not “technically runs but unusable,” but properly designed for any screen size. No installation needed, just open it in your browser.

Check it out at https://scriptcompiler.com


Screenshots

Desktop:

Mobile Timeline:

Mobile Video Playback:


What’s New in v1.24.1

VR Video Player (Beta)
VR video playback is now available in beta. It hasn’t been thoroughly tested yet, and ScriptSniper won’t work with VR videos at this point.

Unified Settings
All settings are now in one place for easier access (except Emulator and Euphoria Sync settings).

Restructured Timeline
The timeline now has a cleaner layout with flat buttons that are easier to use.

Unified File Dialog
File opening is now centralized in one location instead of scattered across the app.

Enhanced Script Overview
Script overview now has two visualization modes:

Line chart:

Heat map:

Other Recent Improvements

  • Faster thumbnails when ScriptCompiler-Bridge is available
  • Improved drag and drop: Drop a video or funscript anywhere in the app
  • Drawing tool can now be toggled on/off
  • Selective script execution (thanks to @ronko for the suggestion)
  • Timeline rendering up to 8x faster with large sets of action points
  • Improved The Handy sync with better latency offsets
  • Various UI and responsiveness fixes

Core Features

ScriptSniper - Automatic Point Generation

A point-tracking algorithm that automatically creates funscript points as you track the action. Just follow the movement and it generates points on the timeline automatically.

For even better accuracy, use ScriptCompiler-Bridge (see below) which utilizes native OpenCV instead of OpenCV-Web for significantly improved tracking performance.

Quick Point Placement & I/O Cursors

Add points directly on the timeline as you watch the video. Hit Key A to add a point at position 50. Points can be added at the estimated peaks of the strokes, then use the Alternate tool to automatically position them at alternating peaks.

Use the Thumbnail Preview Player window to precisely position the points on the timeline.

You can also use In/Out cursors to fine-tune scripts for a specific section of video. Press Key I to add the starting cursor on the timeline and Key O (not zero, the letter O!) to add the ending cursor. The video playback will loop within that region, allowing you to use Thumbnail Preview Player or reduce video speed to fine-tune point positioning.

This video shows a script drafted by ScriptSniper, with a subset of points selected by I/O cursors and optimized using TPP (Thumbnail Preview Player):

Chapter-Based Point Selection

When chapters are available in your funscript metadata, you can double-click on any point in a chapter to select all points within that chapter. Use the context menu (right-click on timeline) and click “Clear In/Out Points” to deselect the chapter.

Align Tool & Speed Control

Get script points synced precisely with video timing. Control video speed to slow things down for frame-by-frame scripting of detailed moments.

Device Connectivity (Free)

Connect your Kiiroo KEON or The Handy directly through the browser and test scripts in real-time. Works via Web Bluetooth on Chrome/Edge, including mobile Chrome.

Device Emulators

Built-in emulators for The Handy and Kiiroo KEON with optional physics simulation that respects the physical constraints of each device. Physics parameters based on community research by @handyAlexander and @kinetics.

Distribution Tools & Pattern Repeater

Equally distribute points based on time or position. Create a pattern once and repeat it as many times as needed.

Position Tools (Free)

  • Position Cursors - Adjust scripts or remove idle sections with no action
  • Position Inverter - Flip positions
  • Position Multiplier - Adjust intensity by a factor

Thumbnail Preview & Point-Thumbnail Player (Desktop)

Hover over action points to see thumbnail previews. The Point-Thumbnail Player is one of the most powerful tools for validating and improving script quality with minimal effort - use arrow keys to move between points, UP/DOWN to adjust position values.

Library Management

Keep all your scripts and videos organized in one place. You can also import your Stash library directly into the app - just make sure the app is reachable from the system you’re running ScriptCompiler on.

ScriptCompiler-Bridge (Desktop)

A native desktop companion app that enhances ScriptCompiler with system-level capabilities:

  • Better ScriptSniper accuracy using native OpenCV instead of OpenCV-Web
  • Direct filesystem access to your video and funscript folders
  • Automatic scene detection that saves as chapters in funscript metadata
  • Faster thumbnail generation compared to browser-based processing

Scene detection with Bridge:

ScriptCompiler-Bridge is open source and can be downloaded from:

Note: The Mac version hasn’t been tested yet.

Music Scripter

Automatically generate scripts from music with multiple modes to match different vibes. Currently free for everyone (no account required) - will be gated behind Pro plan in the future.

Modes:


Keyboard Shortcuts

Shortcut Action
Space Play/Pause
Arrow Keys Video/Timeline seeking
A Add point at position 50
I Set In cursor (loop start)
O Set Out cursor (loop end)
Alt + UP Select all points above a position value
Alt + DOWN Select all points below a position value
Alt + B Select points between a position range

Pricing

Free tier includes limited video duration and script point count. Position cursors and device connectivity remain free - you should be able to test your work and do basic edits without paying.

Paid plans unlock all advanced tools, higher video duration limits, and more script points.


Browser Compatibility

Browser Support
Chrome (Desktop & Mobile) :white_check_mark: Full support including Web Bluetooth
Edge :white_check_mark: Full support including Web Bluetooth
iPhone/Safari :warning: Limited - device connectivity may not work (Apple’s Web Bluetooth restrictions)

Important Notes

  • Auto-backup: Timeline points are backed up every 10 seconds
  • Multiple instances: Running multiple instances in the same browser will cause conflicts (they share local storage). Use a different browser if you need multiple instances.

Feedback & Support

Found a bug? Have a feature request? Reply to this thread or use the Feedback feature in the app. I’m actively developing this and your input helps.

Full documentation available at https://docs.scriptcompiler.com

Tip: Click on any module in the app and the Help button will update with a direct link to that module’s documentation.
help-section


Payment Notice: A small number of users experienced an issue where activating the Pro subscription required two attempts, resulting in duplicate payments. Our system automatically checks for duplicates every 72 hours, but if this happened to you, please send me a private message or submit feedback from within the app for an immediate refund.

29 Likes

Looks very promising!
Being a WebOFS user, this seems like a massive leap forward.

Is there a simulator function I’m missing, like in OFS? Is it a paid feature too?

1 Like

I really like what you’re doing with this so far! Is there support for VR content? The ScriptSniper looks like it also has a ton of promise but my only concern is accuracy and the addition of multiple actions for what should be a 2 action result.

1 Like

Thanks. VR support will be coming in the next few weeks. There is an “Optimizer” toggle that you can enable. It optimizes the script automatically after every 100 points are added. It helps keeping the script clean.

2 Likes

There is no simulator at the moment. You can use real device on it though (The Handy and Kiiroo KEON works great).
But simulator is actually a great idea. I will consider adding this feature in both free and paid plans.
Thanks for the input.

2 Likes

Thanks to you for the release!

Yeah, the simulator would be great for visualising the motion without the need to connect the device.

Also:

  1. Is it possible to select the actual object/set of pixels to track with the sniper or is it deeper than just motion tracking?
  2. I see that you select an ¨area¨ - I presume the smaller the area, the more accurate the result? Or doesnt matter?
1 Like

Thanks for the response. Another thought (and maybe you already mentioned this) but are working scripts hosted online (via cloud storage)? If so, this would be a huge help when jumping from different platforms (desktop to laptop to mobile, etc).

When you click inside the bounding-box on a point to track, the system finds “good features” (high contrast areas that are easy for tracking). Currently I track 15 good-features around the clicked point to overcome camera movements. The median of those 15 points is considered as the point of interest. It’s more like OpticalFlow but with modification to consider visual features like high-contrast, edges, and corners pixels.
The bounding box size does not affect the tracking accuracy. It is a constraint for the point-of-interest to convert the motion to action points (If point-of-interest goes above or below the max/min levels then the tracking does not fail/stop). There a refresh job that tries to detect the last known 5 best features and tries to find them in the bounding box when the tracking point is lost. It is quiet easy to search for the “lost” POI in the entire frame but that is performance heavy and I am moving carefully with this since I am considering mobile phones as well.
I don’t aim to use anything more than OpenCV for this because it adds extra dependencies for no reasonable outcome.
I am working on a bridge app for desktop users to support scene detection that gives pointers on timeline.

1 Like

It is already in place. the ScriptCompiler uses CDN to host your videos and scripts. You can manage the library at https://funscripted.com
This is not very well documented but I will post an update here when I have time.

1 Like

Hello everyone,
I’ve added the emulator component. It currently has only The Handy. You can use the “Physics Simulation” toggle to enable the physical constraint of the device during simulation.
The physical constraint were obtained from @handyAlexander comment on a post and @kinetics post https://discuss.eroscripts.com/t/the-handy-working-at-slow-speeds-a-scientific-video-study/109466. Please let me know if there is any inaccuracy and I’ll adjust the parameters.
Here are the videos on both desktop and mobile screen

Is there a way to zoom in on the video panel? And can we pop out the video screen to another window?

This is currently not supported. However both of your points make sense. I’ll consider adding these features in the next release.
Thanks for your input.

1 Like

If possible maybe add custom bindings, feels weird not playing/pausing video with space. And if arrow keys could traverse the video (i know ctrl+arrows go to each point, but just for going through the video without clicking. I like to go back and forth between frames (or different lengths of video).

Feature updates:

Space key for play/pause
Arrow keys for video/timeline seeking
Thumbnail preview on action point hover (Desktop only)
Action point-thumbnail player (Desktop only)

Here is a preview of point-thumbnail

And here is the point-thumbnail player. This tool is one of the most powerful tool to validate and improve the quality of any script with very little effort.
You can use arrow keys to move between points. The UP/DOWN arrows changes the position of the focused point.

Here is a preview

2 Likes

@ruffryder93 I’ve added the request key bindings. Adding video-zooming support will have conflicts with ScriptSniper because it uses fixed video boundaries to track the features. Zooming video will cause recalculation of the bounds. While theoretically not a very complex task, it requires lots of testing for edge cases like panning out of boundaries, rotating the bounding-box of ScriptSniper while panning and so on. I’ll certainly put this in TODO.

Makes sense, thanks for the updates! I am using VR video so that is the reason I was asking, it is difficult to see some stuff when the screen is split in the middle too.

1 Like

I am working on a VR compatible video player though. I’ll release it in the next few days.

After using it for about a day after payment, I think it’s good for editing, but it seems very inconvenient to use for production. The ScriptSniper function has a lot of poor focus accuracy, and the bottom 10 percent or so cannot be adjusted.Is there a separate user manual?

Thanks for your feedback and for being on the Pro plan. The ScriptSniper module certainly needs more improvements. It is sensitive to contrast changes because I’ve limited the surrounding feature tracking to 15. This is good for performance but comes at the cost of accuracy. This will improve in future releases.
The bounding box dragging limit is a bug - thanks for reporting it. I’ll release a hotfix for this ASAP.
As for the manuals, I’m working on some interactive guides as well.
I’ll post the updates here.

1 Like

Hi everyone,
I am deploying some emergency fixes. Expect minor disruptions for the next 2 hours.
Apologies for the short notice.