Hey everyone. OFS hasn’t had an update since 3.2, and I mostly script to music, so I picked it up and kept going. This is OFS-SE (Sashimi Edition). Everything you’re used to in OFS is still there, plus scripting to music, multi-axis tools, device playback and a 3D simulator.
Download
OFS-SE v1.0.2 for Windows (64-bit)
Unzip it wherever you like and run OFS-SE.exe. Newer versions will always be on the releases page. If you’re on Linux, you can build it from source; the steps are on GitHub.
Source and issues: GitHub - shadowsashimi/ofs-se: A tool to create funscripts · GitHub
What’s new
Scripting to music
Music is the main reason I started this fork. In the original OFS, the audio waveform kept shifting around whenever you panned or zoomed the timeline, so you couldn’t trust it to line up with the beat. That’s fixed, and the waveform now stays locked in place at any zoom level.
You can also open an audio file and script straight to it, no video needed.
- Script to audio - mp3, m4a, aac, ogg, opus, flac, wav, wma and aiff all work, and the waveform shows up as soon as the file opens
- Tempo detection - gets the BPM per chapter, splits a mix into tracks where the music changes, and finds the downbeat. If it gets a chapter wrong, you can double it, halve it or just type the tempo in
- Tempo grid - follows whichever chapter you’re in, and points snap to it when you place them with the mouse
- Beat fill - fills a chapter or a whole mix with strokes on the beat. Use a plain stroke, or save a passage you like as a pattern and stamp it at any tempo
- Depth from loudness - scales your strokes by how loud the audio is, so the quiet verse stays shallow and the drop hits harder
- Beat ticks and a bass waveform - shows where each hit lands, and you can filter it down to just the low end, where the beat usually is
- Chapters - mark out the song by hand or let it find them, then rename them all based on where they fall and their tempo
Editing
- Multi-lane timeline - every loaded script gets its own lane. Tick a lane to edit it alongside the active script, or hit the eye to hide it
- Multi-axis generator - makes twist, roll and pitch from your stroke points, and shows you a preview before applying anything
- Script check - finds the strokes a device can’t keep up with, slows them down, and exports a copy that stays within your limits
- Right-click menu on the timeline with the edits that make sense for your selection
- Better selections - drag a selection around as one piece, and extend, simplify and invert keep it selected afterwards
- No video needed - start a script on a blank timeline of whatever length you want
- Funscript 2.0 and 1.1 - reads and writes both
- Fixed points getting silently lost while dragging, and Simplify carrying spacing over from one selection to the next
Devices
- OSR2 and SR6 over serial, wifi or Bluetooth. All six axes run from their own scripts, and each axis gets its own travel limits, speed cap and auto-home
- Intiface Central - plays your script on anything Intiface supports
- Safety note on first connect - device playback hasn’t been tested on every device, firmware or connection yet, so the first time you hit Connect, you’ll get a short note on trying it safely before anything moves
Heads up if you connect a device: device playback is new and hasn’t been tested on every device, firmware or connection type, so the motion might not always be what you expect. Before using it on yourself, try it with nobody attached. Start with a low speed cap and narrow travel limits, and keep the power switch, or the Stop the devices button in the Devices panel, within reach. Use it at your own risk, and please let me know if anything moves the wrong way.
3D simulator
- A 3D stroker that moves with every loaded axis at once (stroke, surge, sway, twist, roll and pitch), the same way a TCode machine would
- Cutaway view, a camera you can turn, fit to video, and a toggle back to the old 2D bars
- Axes are picked up from the file names, so
name.roll.funscriptis roll. Video names with extra dots in them, likeSite.com - clip.mp4, work fine now. Thanks to @zeroscripts for reporting that one
Other changes
Interface
- Sashimi theme - grey with pink highlights, and it’s the default now. The stock Dark and Light themes are still under Options → Preferences → Application
- Heatmap colours now match the ones here on EroScripts
- A new toolbar for the things you change most while scripting, playback controls on the time bar, and a Preferences window with a sidebar
- Menus show each item’s shortcut and close with Escape. The keys window is now a proper table, and rebinding works again
Reliability
- There’s a crash handler that writes out a stack trace, and a watchdog that dumps one if the app hangs. If it crashes on you, please attach that file when you report it
Feedback
This is the first public release, so I’m sure there’s stuff I’ve missed. Bug reports and feature requests are welcome here or on GitHub Issues.
Big thanks to the original OpenFunscripter author and contributors, since none of this would exist without their work. It’s GPLv3, same as OFS.
Thanks as well to @Yoooi for MultiFunPlayer. The TCode device output is ported from it (MIT licensed), including the command format, the send rate and the per-axis safety limits.












