StashApp/Stash-Vr Enhancements - StashInteractiveTools

Ahhh I’m seeing a log issue saying python was not found. I’ll need to install it later.

Got it working, I needed python installed via the Microsoft store and then to use pip to install stash api

Question. How does the Sync feature work with the Server offset in the stash Interface settings? Does it still take effect or does the individual script Sync override it?

Short answer, yes the settings in the plugin should overwrite what you have in the Stash Settings.

Long version

  • It will take the value from stash if you havn’t changed it within the plugin
  • plugin will retain its own instance of its config once you make a change
  • going back and changing the stash settings will NOT overwrite the plugin version

Let me know if its not working as expected.

Ok that is what I suspected. I really appreciate the Server offset feature with its automatic sync depending on current server latency (visible when connected, not in my screenshot). I missed this feature so much I deactivated and stopped using your plugin.

Would be great if they could work together so I can get the automatic server offset sync but still be able to tweak the sync of individual scripts.

@blackx69 Really useful plugin - thanks for contributing!

I’ve experienced the same issue as reported here with the sliders being partly obscured:

I am using Stash v0.28.1, 2560x1440 screen resolution, and Chrome 135.0.7049.114 if that helps. I have a few other stash plugins installed, but the issue is still present when all of them are disabled. Apart from this, it works perfectly!

New Version: 1.0.0-next.7
@kinetics
Added the feature you requested. Give it a try when you get a chance
image

@guest197031
Adjusted the styling a bit , let me know if the new version fixes your issue

1 Like

Thanks for the update. For some reason stash isn’t detecting a new available version of the plugin - does the .yml file need to be updated before that will work?

Figured it out - I had to update the plugin source from

https://raw.githubusercontent.com/blackx69/StashInteractiveTools/refs/heads/next/stash.yml

to

https://raw.githubusercontent.com/blackx69/StashInteractiveTools/refs/heads/next/stash-next.yml

and then the new version installed ok. Will test and report back.

Doh , I caught that locally and thought I pushed the changes up before I logged off last night.

The change was to get ready for prod vs development builds for feature testing. I’ll get that fixed so it will still work under stash.yml until I fully setup the 2 version splitting.

I am having some trouble trying to set this up. I don’t see a way to download the custom build you link on the readme of the github, so I am using the latest version. when I try to set up the PythonToolsInstaller plugin, I also get a number of errors.

Can you please provide a set up guide from a fresh install?

You say that a development build is required to be able to run the software, then you link to this commit from stash. I don’t see any executables in that commit so I am not sure how to run stash if I were to pull from that commit specifically. Is that what I need docker for?

So the start of this thread had a more manual process to installed. Over time I updated the steps and this should help you install

  1. Use the add plugin source in settings
  2. Add
    https://raw.githubusercontent.com/blackx69/StashInteractiveTools/refs/heads/next/stash.yml
  3. Install plugin (screenshot in OP)

Have you tried this method yet? This should I stall the most latest version as well as the dependency. One other requirement that some people have ran into is that they needed to have Python 3.12 installed. So if you don’t have it installed (I think v3.10+ should work but haven’t check in a while).

1 Like

I am able to install it with this method, but the plugin does not work. When I try to run the tasks associated with the plugin on the ‘Tasks’ tab, I get the following errors:

025-06-01 01:05:54Error [Plugin / Stash Interactive Tools] e
2025-06-01 01:05:54Error [Plugin / Stash Interactive Tools] TypeError: run() takes 0 positional arguments but 1 was given
2025-06-01 01:05:54Error [Plugin / Stash Interactive Tools] ~~~~~~~~^^^^^^^^
2025-06-01 01:05:54Error [Plugin / Stash Interactive Tools] task.run(config)
2025-06-01 01:05:54Error [Plugin / Stash Interactive Tools] File “P:\plugins\StashInteractiveTools/StashInteractiveTools.py”, line 14, in main
2025-06-01 01:05:54Error [Plugin / Stash Interactive Tools] Traceback (most recent call last):
2025-06-01 01:05:54Error [Plugin / Stash Interactive Tools] Task module ‘install’ not found.

Just released an update (1.0.0-next.9) . This should fix the issue.

I was able to get it to work! thank you for the help!

It looks like there needs to be at least one script with no parenthesis used if you want the scripts to show in the ui. Is there a setting to disable this?

For example, these files would not be recognized in the tagging process:
Abzero [Bastati].mp4
Abzero [Bastati] (Thillea).funscript
Abzero [Bastati] (Juirrl).funscript

If I changed the files to be the following, then it would work:
Abzero [Bastati].mp4
Abzero [Bastati].funscript
Abzero [Bastati] (Juirrl).funscript

If I have multiple scripts, I usually don’t have a “default” script. I want to be able to name all of them.

EDIT:
It looks actually like this is an issue with stash and not this codebase. Stash will only mark scenes as ‘interactive’ if they have the exact same filename with the .funscript extension. The code that you have only checks scenes with ‘interactive’ marked. Is there any way to manually mark a video as interactive?

EDIT 2:
Figured out a workaround. There needs to be at least one funscript file which matches the name of the video file exactly for any amount of integration to happen. So my workaround was to make copies of every file I had which did not match the name of the video exactly, where the name of the copy was the exact video title. Here is an example.

Before:
Abzero [Bastati].mp4
Abzero [Bastati] (Thillea).funscript
Abzero [Bastati] (Juirrl).funscript

After:
Abzero [Bastati].mp4
Abzero [Bastati].funscript
Abzero [Bastati] (Thillea).funscript
Abzero [Bastati] (Juirrl).funscript

(the second funscript file is just a copy of either of the other files I had)

Yeah unfortunately that’s the standard for funscripts works. So even if I did add the ability to say map to another file stash code only looks for the file name setup.

One idea tho is if I ever do to get out to this UI matching/organizing view is that I could create a symlink to follow stash convention for one of the files. This is to allow stash to flag the video as Interactive..This is the stash code as you can see it very dumb and just appends the funscript extension on the file name. Tried to submit a PR for changes to this but Stash didn’t like all this interactive logic within the core and recommended to go the plugin route.

Now the good news… Most of not all of this can be fixed just requires some hacks to flag the video and generate the heatmap .. one day maybe. Will add it to my backlog.

1 Like

I had 2 questions.

  1. Is there a known issue with stash where some scripts just don’t load and just show “Error connecting to Handy” when you attempt to load them? Confirmed that other scripts load fine, but a couple just won’t load (ex: BBC PMV - Need to Know) They are slightly bigger files, but I have bigger scripts that load.
  2. Related to that, the multi-script selection seems to have a similar issue. I can see the various scripts loaded into the drop down, but while default loads fine, as soon as I select one it errors out and requires a refresh of the page to even get the default to load again.
    I assume I probably have an install issue or the scripts are just odd, but the rest seems to work fine. I am on Stash 28.1 with 1.0.0-next.9 StashInteractiveTools running on a NAS docker image.

Unrelated, the git readme mentions that a custom Stash install is required still, but I believe that is outdated. Also, how hard would it be to add a switch into either fileinfo tab or just on the script page to turn interactive off/on?

Thanks

  1. Yeah the handy v3 api has a file size limit and would need to upgrade to v4 api. I have an open PR that would allow me to switch out how scripts are handling for stash. Its suppose to be approved for the 0.29 release but that has been on pause for some time due to the main developer being sick. I look at the script and the size doesn’t look like it would cause errors. I’ll try to run some tests against that script and see if I can reproduce it.
  2. I wouldn’t be surprised that due to the script loading error that the plugin is throwing a silent error behind the scenes. If you could open up the chrome/firefox dev panel and navigate to the “Console” section . Once you do that reload the page and execute the same steps and let me know if any errors are shown.

You are correct the custom stash install is outdated, I’ll get around to updating the README. As for your request, you arn’t the first to ask and I tried to implement it in the current stash versions but due to how their whole interactive logic is setup I didn’t have the correct hooks to do so. So this is something that would have to wait till they merge in my PR

3 Likes

hi, i saw this about connecting intiface to stash “right now stash only supports intiface” would you be able to explain how i can do that, i tried to look into into more to connect intiface to stash but i can’t find anything that works with it, thank you !

It’s not possible currently with in stash. You can connect outside that with say buttplug.io. hopefully once my current stash changes are accepted this may be a thing within stash.