OpenFunscripter - another scripting tool - 1.1.9 release

If you’ve been scripting for hours without saving and want an adrenaline rush.
russian_roulette.lua :bomb:

if math.random(1, 6) == 6 then
    print("bang!")
    os.exit()
else
    print("click")
end

There’s still a backup directory. It just doesn’t try create multiple backups instead there’s just a single backup every minute.
There’s a new naming scheme for this backup it goes like this

{Script name}-{time of backup}.funscript.backup

To use it you would just remove the “.backup” extension.

1 Like

I managed to fix linux.
But scripts in the snap package end up in a readonly file system which is awkward.
I’m going to change the script directory to the same place where the config.json is stored.

Has anybody ever had script just clear out while using OFS?

Throwing out an idea here to @gagax123
Sometimes I get bored scripting a section for a long time and want variation. Instead of switching to another script I would like to somehow mark a section as unscripted. I’m currently scripting VirtualTaboo-Dellai Twins, Zee Twins - Yes, This Is Real Double Twin Swap and right now I have a big unscripted gap with HJ+BJ, which require lots of focus since it is no rythm at all in the action.
VirtualTaboo-Dellai Twins, Zee Twins - Yes, This Is Real Double Twin Swap - 4K 180_3dh - 2048p_FAST_Heatmap
To get variation I’ve skipped forward to other sections. It is hard to see in the picture, but beside the big gap there are a few smaller gaps as well that don’t need additional scripting because there is no action.

My idea is to use bookmarks to avoid adding new stuff in the script file. Bookmarks are useful, but they are just a point in time, not an interval. Could it be possible to have some kind of marking between two bookmarks if they are named in a particular fashion, e.g. foo_start and foo_end? That way I can see any unscripted parts and not confuse them with parts where there are no action at all. A horizontal line between the bookmarks + the name of the interval would be nice. The name can be taken from e.g. foo_start and remove _start. Center the name between the bookmarks. Another alternative is to skip foo_end and just draw the interval to the next bookmark. That way you can create a sequence of intervals. I know some scripters use bookmarks to easily find where different scenes start in the video/script, e.g. BJ, cowgirl, doggy, … Showing intervals might make that even more clear.

Another situation when I would like to mark a section is if I feel that a section wasn’t good enough and needs re-iteration and refinement, but I don’t want to do it right now. Currently I have to write down stuff like this on paper. Those sections usually tend to be very short though and interval name might be a challenge to show clearly.

Rough draft. Bookmark labels should probably be hidden automatically to avoid clutter, but I show them just to demonstrate the idea of using the naming.
interval

I added this. AppVeyor
You can now type in a name end hit enter to add the bookmark.
Typing for example “unscripted_start” will remove the “_start” from the text but internally mark it as the start point. The same happens for “unscripted_end” it would remove the “_end” and mark it as an end point.

There’s one constraint that I want to keep and that is, you can’t have any other bookmarks in between these intervals or overlapping intervals.

I just realized “_end” shouldn’t get removed.
Because in the “Bookmarks”->“Go to…” you can’t tell which one is which. :man_facepalming:
They are always ordered chronological though.

Here’s a screenshot
intervals

I also wonder if I should just hide all bookmark stuff always unless the checkbox is checked or the bar is hovered. :thinking:

2 Likes

This is actually a really good idea. I do that on my own but it’s good to see that it’s now a feature. Thanks @sentinel for thinking of it and thanks @gagax123 for implementing it so quickly

It looks really good in the screenshot @gagax123!
Thanks for implementing this so fast! I will try it out later and give feedback, good or bad :slight_smile:

Make sure to pick the newest build from the AppVeyor history I might have already addressed some possible concerns.

In other news I fucked up the last two releases.
Basically I had controller support commented out… so if anybody wondered why their controller stopped working that’s why. :man_facepalming:
Also I accidentally built the last 1.1.2 linux snap with ubsan which is silly which is why deleted that one again.
The plan is for next release to resolve those issues… :sleepy:

Good news are the undo system received an upgrade and I’m now able to track and undo/redo modifcations which affect multiple scripts very easily.
Also the Lua scripting API is extended to include all loaded scripts.

@gagax123
Something fishy with the latest build from AppVeyor history compared to my last version I’ve been using. I’ve called it 1.1.1.a but I don’t remember if you named it that or if I did because it was a build after the 1.1.1 release. An auto incremented build number in the .exe would be nice to have if it is possible to automate. In C# it is a simple project file setting.

This is the heatmap in the latest version I’ve downloaded:
VirtualTaboo-Dellai Twins, Zee Twins - Yes, This Is Real Double Twin Swap - 4K 180_3dh - 2048p_FAST_Heatmap-lost part of script
This is how it looks in the version I’ve been using so far:


However, the script is there, it seems to only be the heatmap that doesn’t work properly.

I have no bookmarks in this script file.

Yes kinda aware of this one but thanks for reminding me I would’ve forgot :sob:.

Also another fuck up on my part I made a change to heatmap generation for 1.1.3 which I clearly didn’t test well enough. The point was to only let actions which change direction affect heatmap generation so that you don’t get a red heatmap when you use a bunch of actions for the same stroke.

Edit: it’s fixed now

Edit2: Forgot to address this

It should always say the version + commit id in the window title and in the “About” window.
My quick research concludes, writing it into the exe is very annoying since it’s platform specific.
Adding an icon to the exe was already hard enough. :sweat_smile:

Ah, missed that. So used to check the exe-file for version and code signing :slight_smile: Didn’t take platform independent code into account either. A habit since I only develop SW for Windows, but we will soon switch to .NET 5 or 6 to get some platform independence.

Been using 1.1.1a@a631e11

Which is best?
  • current.png
  • 3.png
  • 2.png
  • 1.png

0 voters

Pro tip: Right click open in new tab. :sweat_smile: nvm. you can also click to enlarge the image
current


3

2

1

Is it possible to remove the need to type _start on the first tag? Could the trigger be that _end is added to check if an interval shall be created?

Alternatively, don’t remove _start and only remove it visually in the label in the red interval.

I think that one of the alternatives would make this feature a bit more understandable for users.
I’m very satisfied with the feature otherwise. Thanks again!

Added this. Going to prepare another release now.

1 Like

I want to see people do cool stuff with Lua. :grin:
Here’s another use case I found it’s not something I will include in OFS though.
It’s a simple script which finds all places where the duration between two actions is below a configurable threshold ( default 100 ms ). Prints warnings but also sets your position to the first occurence it finds.

1 Like

One idea I had as a potential feature request is, I have one of those ultrawide monitors which is essentially two 24 inch monitors side by side. What would be flipping sweet, if possible, would be to add two extra frame panels. One for the frame before and one for the frame after so you can fully know if where you are is the correct place to add a plot point at a much faster speed. Theoretically this could really speed up the creation process.

I’ll look into it. no promises. :eyes:

I like this but this seems needlessly complicated. I’m thinking ahead for those that discover the program in the future and with this naming convention it might get lost to those who don’t frequent this thread often. Any chance you can keep the system but implement it in another way, maybe a dialog box asking when you create the first bookmark whether you want to create an interval? If other’s don’t agree then it might not be worth the change.

Also, as it currently stands you can only create an interval at the exact time you create the bookmark. Is there anyway to create the interval when you and the _end even if it’s not right away?

Please, no dialog boxes if it is possible to avoid that. Maybe the menu could get an additional alternative “Add bookmark interval end” or something instead. However, you still need something like _start and _end in the final bookmark name to be able to identify them in the list of bookmarks, especially when you want to delete them. Otherwise there is probably a need for a separate UI for intervals overall.

BTW, the only reason for suggesting _start _end to begin with was to avoid having to change the funscript-file format, which minimizes the amount of work need for implementation.