EroScripts is a community for scripts that sync up interactive sex toys with porn. Learn more.

To discover, download, and help choose what gets scripted, create an account.


OpenFunscripter - another scripting tool - 1.1.9 release

@sentinel Yeah you won’t find a C++ programmer who doesn’t hate C++ :wink:
I’m just a hobbyist C++ programmer so for me it’s a love hate relationship.


Is it just me or is anyone else just not able to load videos or anything? (Using the precompiled beta 1.0)

Have tried going the file → open video/script route and dragging and dropping both .mp4 and .m4v files.
The program has also been opened as Admin and regular, both the files are located on the same partition.

1 Like

@gagax123 I haven’t come around to try this out for real scripting yet, but I will try it soon. I only script VR.

  • One thing that I would like to have is a markerin the simulator where the next point is, i.e. if the next point will be at 70% then I want some kind of marker at 70, e.g. a thin red line, so that I know that when the moving simulator marker reach it it will change direction. I belive that would help me because I often find myself trying to look at the action, the simulator and the points graph at the same time. As I said, I don’t really know if it will help and to know I must be able to test it.
  • It would be good to have different presets for the simulator statistics depending on the device you use since the devices have different capabilities regarding speed, stroke length etc.
  • I use shift + arrow keys a lot to move the closest point in JFS. That is something that I really miss.
  • I like that points are being added in the center.
  • Undo seems to be a nice feature.
  • I use delete to delete the closest point a lot in JFS and I really miss that feature.
  • Can you add a timer somewhere telling me how long it has been since I saved the last time? It is very easy to forget the time when you script and you really don’t want to loose a lot of work due to forgetting to save regularly.
  • Can you make it possible to zoom in a even more in the points graph? Even when I zoom in at max the frames/points are too close. I’m having a hard time seeing if there are 3 or 4 frames between two points without actually counting the steps using the arrow keys. When I have max zoom in I still would like to have the distance about 4 times further apart.

I will probably find more features that I miss later. As I said earlier, I like open source project initiatives and this is a very good start.


@forc any errors? you might be missing codecs. I’m not quite sure but installing Download K-Lite Codec Pack Mega may help.

Thanks for all the suggestions.
I’ll be sure to put most of those things in the next release.
I’m probably going to rewrite the simulator so that’s something I’m going to do try in a later release.
Can you go a little more in depth what you mean with device specific presets for the statistics?
So far I have kept the statistics deliberately generic.

Also heads up to everybody @Husky5383 alerted me that the keybinding system is broken in the beta release.


I don’t have all the specs, but the Launch has a shorter max stroke length compared to The Handy. The Handy is limited to a max speed of 400mm/s if I remember correctly. I don’t know if the Launch has the same or another value. Some values are calculated so to be correct I assume that some of them requires the specs of the device to be accurate. The speed will be a function based on a percentage of stroke length (y-axis) and time (x-axis) for two points and this should be different values since the absolute distance for y-axis in mm depends on the device. When to warn for exceeding speed also depends on the max speed for the selected device. It is of course an option to use values for the device with the lowest specs (assume that is the Launch). However, at some point people might decide that it is not worth bothering about the Launch because most are broken and people have bought The Handy, a possible Launch 2 or the OSR. Then we want another device to be the lowest spec. A minimum distance between points on y-axis would also be good to have a warning about since the device usually start to behave erratic or a player might “solve it” for you, but you don’t know what happens as a scripter.

Sorry for the wall of text :slight_smile:

1 Like


I like this approach to an open source script creator tool.
I once asked in the JFS thread, if something like this is possible:

Is this something, that could be added? I don’t know, if this is something, that would be in great demand by others though.

Thank you very much for creating and sharing this tool.

1 Like

@sentinel That should be possible.
I’m going to have to think some more about this.
For now my goal is a bug free 1.0 release.

@Slibowitz Bookmarks are planned in fact I’ve seen your post before :wink:
I’ll have implement a way to save / load script specific settings (like bookmarks) first though.


I fully understand that it will take time to implement things and you are right in your priorities.

1 Like

Thank you very much for your response. I am looking forward to it :slight_smile:

Take your time. I wish I could help, but I don’t know how to program, so I am not very useful here. But I will test every version you’ll release, I promise :slight_smile:

1 Like

You can save them in the funscript itself like JoyFunScripter does:


I think, you could also add “bookmark1”, “bookmark2”, … and something like “bookmark1name”:“bj start” …

Or like this:
“bookmarkPresets”:[{“name”:“bj start”,“position”:8776109434},{“name”:“bj end”,“position”:8776200000}]

1 Like

I’ve uploaded a new version. :raised_hands:

@HeelsLover69 In order not to collide with JFS stuff I’ll probably create a new node in the json like
“OpenFunscripter”: { … } and save everything releated to OpenFunscripter there.


@gagax123 Nice and speedy update :slight_smile: I will test the new version and get back, but probably not before the weekend.

1 Like

I used the OFS today for about half an hour on a script I am working on. Some things I noticed:

One thing I noticed right away are the colors. I love the colors. They have an extra punch to them. I often struggle to see, if it’s orange or red, green or yellow due to colorblindness. But these colors are way easier to see for me, cause of the extra punch to them. I can see if it’s red or orange, or green or yellow. They have so much clarity.

I like that I can change size of the UI-elements. I can make everything how I want and optimize it to my needs.

It is so smooth, when holding arrow keys right and left. The video plays totally normal and doesn’t stutter. Really good to get an overview of a part and to see the movements clearly.

What I like to see:

How much time is left in the video. So I know how much I have to script. It could just be there, where the current timestamp of the video is.

Problem I found:

The simulator doesn’t always move in real time. When I want to check, if a part is good or not, I hold right arrow key, to one point to the next point. I want to check, if everything is precise enough and if the movement fits my script. The simulator stays at the number I started on and doesn’t move slowly forward to the next point.
It’s not always like that though. It seems to occur, when the part is “freshly scripted”. On the older parts, the simulator moves in real time.
Ugh, I hope you get what I mean here. I don’t really know, how to explain it any different. If not, I try to explain better.


All credit goes to ImGui it’s just their default dark theme. It’s an amazing library which enables all these things without me having to do anything :sweat_smile:
There’s also a Light mode. If anybody cares about that I could make my custom widgets (the script position bar and the heatmap timeline ) also be affected by the style and add it to the options.

Yes that’s missing. I assume you mean that it’s supposed to display the total duration next to the elapsed duration.

I think I found and fixed the issue.


This looks great and thank you for all your work!

I have one idea/suggestion that might be quite a bit of work if you chose to implement it, but I think multi-track support (such as with audio editing/mixing software) would be an incredible feature.

  1. Being able to script a sequence twice and then splice or merge the two tracks would let us try out multiple approaches and compare/improve them simply without destroying work or creating many redundant files.

  2. Having multiple “tracks” within one script file would simplify things when scripters release multiple versions such as with/without filler strokes or simplified scripts intended for the launch. (obviously this would also require a player that can select between tracks as well)

  3. I suspect multi-axis scripting is eventually on its way, so having multiple tracks that could account for x, y, z, rotation axes, etc. will likely be useful (eventually). Even if you only had a single-axis device you could switch things up for variety. (Again, we would need a player that cooperated with this. Could even have the player set up so you can assign any track to any axis and do live “mixing”)

There are probably other uses too, but those are the ones that come to mind for now. I don’t really think there is any urgent need to develop this since multi-axis devices are far from ubiquitous and even the simpler features would require adjustments to funscript players. Just some food for thought as a “maybe someday” project if you are ever interested.

Thanks again and good luck with your development!

1 Like

This is annoying to me.

Here’s why (so it’s not just complaining)
The archive is only 25MB, when I have 87GB of videos with funscripts to match.
I appreciate that you’re concerned about saving me an additional 25MB, but it’s at the cost of making me go find, download and install a secondary component, without a link included to go get it in, like, three clicks. (you know, like when you have to go fetch your own copy of LAME encoder for MP3, because the encoder isn’t licensed for redistribution - at least there, LAME is linked so you can easily get it yourself and meet the licensing limitations. :smiley:

Yep. Definitely Irritating. :smiley:


@AcademicInside Alright I will put it back in next time. I hope I can get rid of the dependency at some point.

@Hydra Not gonna lie I don’t see myself implementing any of those things.
Don’t get me wrong if this was a trivial addition I would do it but this very major stuff.
It has more to do with creating the custom GUI than the programming of the functionality.
Sadly nobody seems to have made an ImGui extension for multi-track editing yet. :pensive:



Hey bud, trying to open the program but I’m getting a blank screen, see image below, and a terminal is opening up and i get the following message. “Cannot load nvcuda.dll
DEBUG: Funscript changed!” Any idea as to what’s causing this issue?

1 Like

@gagax123 Haha, I completely understand and I fully admit to not having enough knowledge about this to even know the difficulty level of what I am asking for. Thanks for taking the time to read my suggestion!

1 Like

@poet145x libmpv ( the video player ) is trying to load a hardware decoder which doesn’t exist on your system. What gpu do you have?
I might have to add a switch to enable software decoding.

1 Like