ScriptPlayer+ — A lightweight, clean desktop funscript player for Handy,FunOSR

  • I have trouble with the “fill script gaps” feature. Enabled it in the settings and left minimum length at 4 seconds.
    It works for gaps at the beginning (and at the end), but it does not fill gaps in the middle of a script. That behaviour happens for all the funscripts I tried, ScriptPlayer+ 0.2.7.
    (for testing purposes I also tried the “skip gaps” feature, this one works both at the beginning and in the middle - so ScriptPlayer+ is able to identify the gaps in the scripts, it just doesn’t fill it in the middle somehow)
  • These ones are rather minor things I noticed:
    • There is a “Jump Lead-In” Setting for the skip gap feature, which is pretty useful. Would it make sense to also include a jump delay, which waits a bit after the last script action before doing the jump? Currently the jump happens rather abruptly
    • There is a message about black frames and video decoding. That makes sense when starting playback of the video and everything stays black. However, videos sometimes have scene changes that fade over black, which can trigger this warning as well (but ofc is a false positive). I think, if the video already played with non-black frames, the message should be suppressed (until the next video is played).

I love this player, however the thing that appears above the list of videos on the left side of the screen, I believe it is regarding like multiple scripts of the same video or something? please in setting have a way to hide it because If i have my display more % zoomed in than normal I literally can only see 3 videos ahead of me and I’d rather not have it if it means I can see more videos in my folder without having to scroll, Hope this made sense, Also, when a video has a fade toi black transition the videos like helper thing that appears in the top right does th e compatibility thing and that is a false positive.

Thank you for the detailed report.

The issue regarding filling empty sections in the middle was indeed a bug.

While empty sections at the beginning and end of the script are filled normally, some normal empty sections in the middle were not being filled due to additional conditions being applied.

This part is scheduled to be fixed in the next build.

We have also addressed the auto-skip issue you mentioned by adding a “Jump Delay” option that allows you to wait briefly before skipping immediately after the last script action, rather than jumping right away.

Regarding the black screen warning, as you mentioned, false positives could occur during scene transitions or fade-outs. Therefore, we have adjusted the settings so that this warning does not appear in videos where a normal screen has already been displayed once.

This will be included in the next version.

1 Like

Regarding the Script Variant panel, it is already collapsible in the current version, and the collapsed state should be remembered.

For the black screen warning you mentioned, we have seen quite a few false positives since adding that feature, especially with normal fade-to-black scene transitions. We are still working on improving the detection and reducing recurring false-positive patterns, and we’ll also take this specific case into account.

Will there be a sort by video length option?

Not currently, but yes, this is a reasonable feature.

I’ll look into adding a “sort by video length” option. It will need to be cached carefully so large folders or NAS libraries do not become slow.

1 Like

thanks mate, who would I get into contact with to give my frontend and backend, I used script player as my base, obv wouldn’t share it or sell it, I made a portable player that connects via ur local ip on a bowser so u can use it sort of like a media center, i only made handy connection however, also, I added a widescreen feature for ultrawide monitors that does stretch it out but barely at all, it is quite nice, I only made these added things for my own personal use as it is very niche but since it all works I would love to make a github or something ad send it to whoever’s way

That sounds interesting, but I should clarify one thing first.

ScriptPlayer+ itself is not licensed to be used as a base for forks, modified versions, or derivative projects. So if your project directly uses ScriptPlayer+ code, assets, or private builds as its base, please do not publish or redistribute it.

If it is your own separate implementation, or based on another project with a license that allows it, then that is a different matter. In that case, screenshots, a demo video, or implementation notes would be very useful.

For ScriptPlayer+, I probably would not merge external code directly, but I can look at the idea and recreate the parts that fit the app properly.

sure, I can send the coding parts and implementation, It is just for my use only, I would never publish or claim someone’s project or work as my own, Just some QOL features that I feel would be useful.

Thanks for updating and implementing the jump delay!
Unfortunately, the filling gap bug is still there for the 0.2.8 version.
I did some more testing on my end, and found the following behaviour:

  1. When the last script action before a break has position x, then there is a long break, and the next action also is position x, the filling function works (and jumping works too)
  2. When the last script action before a break has position x, then there is a long break, and the next action is a different position y, the filling gaps feature does not work. There is just a super slow movement from x to y, instead of being filled with actions. Though jumping also works in this case.

Not sure if I am just unlucky with my selection of funscripts, but basically all of them are written with gaps as in 2.

Here is a minimal example. Filling gaps works in the gap from 40s - 60s, but it does not work in the gap from 20s - 40s.
debug.funscript (315 Bytes)

Thanks, this was a really useful test case.

I found the issue. The gap fill logic was too conservative and only filled middle gaps when the position before and after the gap was almost identical.

So x -> gap -> x worked, but x -> gap -> y was skipped, which is exactly what your example shows.

I’ve changed the logic so middle gaps are now detected by duration instead of requiring the same boundary position. The original actions at both sides of the gap are still preserved.

This should be fixed in the next build. Thanks again for the minimal example.

A hotfix containing this fix has been re-released.

Please test it again, and I’d appreciate it if you could let me know the results.

1 Like

Thanks for the quick hotfix! I just opened a few funscripts in the latest version and Fill gaps feature is working now.

1 Like

I’m glad it’s been resolved. Thanks for your patience, and I hope you enjoy using it!

Does this player support OSR devices like FunSR Pro?

I am blind lol. Thanks for making this!

Since this was the first release post that only supported The Handy, you might not be able to see it. We officially support FunOSR devices. Please enjoy!

Is it possible to enable folder separation in new versions? I mean, if I select only one main folder, as before, and in the list on left it will show me what file comes from which subfolder. I dont really know why you removed this…

Thank you for pointing this out. Folder navigation was unintentionally lost when the library system was redesigned to support multiple local and NAS folders.

I’m working on restoring it for a future regular release. You’ll be able to switch between a flat “All Files” view and a “Folders” view, where selecting one main folder lets you browse its subfolders and see where each file belongs.