MultiFunPlayer v1.32.0 - Multi axis funscript player - Now with SLR script streaming

You’ve touched on this topic quite a few times, so my apologies if you’re repeating something that comes up often. please bare with me

Setup:
Im using stash
stash helper has allowed me to kick out the video to vlc
VLC web interface is turned on, lua password given. MFP sees VLC.

All info on this was here. Which you have posted before, thank you for that btw.

Problem:
stash scripts are showing up as empty.

Localhost/Scene/Scene#
File: stream

my current solution
map media path file, find file, link it. go about my day.

This is the correct way to do this at this time since the dlna is not sending the file name correct?

No, if you are using dlna from stash then it should not require manually loading scripts.

Did you enable and configure stash repository in MFP?
If you did I need you to change log level to trace in the app settings at the top of the window, play some file hosted by stash dlna, and post latest log file.

Thank you for the quick response.

Here it is! if I need to format this differently let me know!

latest.txt (439.3 KB)

Ignoring "http://localhost:9999/scene/2702/stream" resource because it does not point to "http://0.0.5.58:1338/"

Your stash endpoint in MFP is set to 0.0.5.58:1338 for some reason, it should be set to localhost:9999 or 127.0.0.1:9999

Sorry about that part I was messing with something earlier and I typed in localhost and when I went to look at it again that was in the box.

Fixed that but my issue is unfortunately not resolved.

new log
latest.txt (762.4 KB)

Received Stash api response ""

The response from stash is empty, not sure what to do with that tbh, maybe you have to set the stash api key in MFP?

edit:
Oh wait, that will be in v1.30.0, you have to use this build: nightly.link | Repository Yoooi0/MultiFunPlayer | Run #8840721452

1 Like

Oh that worked wonderfully! IT WORKS NOW. Thank you so much! You are greatly appreciated!

Is there anyway I can help log this process for others once the build is live?

1 Like

What do you mean by log the process?

like create a guide for troubleshooting or for few you to add to a F.A.Q.

I mean sure go ahead if you want, tho there is no official FAQ. There will be one when I finish writing documentation, or if I finish.

1 Like

MultiFunPlayer v1.30.2:

Download: Release MultiFunPlayer v1.30.2 · Yoooi0/MultiFunPlayer · GitHub
Patreon build: https://www.patreon.com/posts/106378846

1.30.2:

  • Fix crash when creating XInput axis gestures at min/max position

1.30.1:

  • Fix RawInput settings not getting saved
  • Fix crash when creating XInput axis gestures
  • Fix custom curve motion provider overflowing when tiling linear curve

1.30.0:

Additional patreon only changelog:

  • Add support for DeoVR haptics buttons (Return to base, Pause script, Manual mode, Edging mode) to be used with shortcuts

Changelog:

  • Add input processor settings (#153)
    MultiFunPlayer_NnD6SV6QxP
  • Add ability to show errors in a snackbar instead of dialog (#168)
    MultiFunPlayer_EVy657zFOb
  • Add ability to load additional scripts with the same base name in internal source
    MultiFunPlayer_rsfr22GI2F
  • Add ability to lock a script to an axis
    MultiFunPlayer_vhQDk0BRMA
  • Match funscripts in order of configured funscript names, “Load unnamed script” is replaced with “*”
  • Allow enabling/disabling device axes on default devices without having to clone a device
    MultiFunPlayer_5x698rsXaT
  • Automatically tile looping custom curve motion provider curve
    MultiFunPlayer_EEfmQRhlQN
  • Add DecodeMediaPathModifier
    MultiFunPlayer_qGmOlfWQVd
  • Add support for async shortcut actions (#158), long running actions like connecting an output will fully complete before executing the next action
  • Add api key support to stash repository (#162)
  • Remove raw from L0 funscript names
  • Show a dialog when starting mpv source with no executable set for easier mpv download on inital setup
  • Only match to currently playing video file when using XBVR repository instead all files attached to the scene
  • Only match to primary media file when using Stash repository instead all files attached to the scene
  • Use all media path modifiers when processing media resource path instead of only the first matching
  • When possible try to read custom device names from Jellyfin/Emby media source
  • Improve behaviour of media source/output target auto-connect
  • Check if MFP has permissions to save files in current directory on startup to prevent settings loss
  • Disable packet buffering in Tcp output target
  • Auto stop buttplug.io device scan
  • Show which axis preview is selected in heatmap tooltip
  • Try to find existing mpv executable in known paths without having to manually set it
  • Fix XBVR repository not working with HereSphere (requires XBVR v0.4.27 or later)
  • Fix possible crash when receiving data from UDP or Serial output target
  • Fix some settings not getting saved when set to null (#166)
  • Fix axis matching scripts ending in funscript name without a dot
  • Fix parsing of media uri with file scheme
  • Fix possibility of auto-connect retrying with no delay after disconnecting output target or media source
  • Fix disabled mpv auto-start setting having no effect
  • Fix sudden unwanted motion when media changes while auto-homing
  • Fix possible crash when trying to manually load a script with a file dialog
4 Likes

This is one of the bigger updates so I’m trying the timed patreon exclusive thing and the public release will be probably in a couple/few weeks.

Crashes after any controller (xbox) input. Seems like some great features being added, hopefully gets sorted out soon.
AMD 6950xt
13th Gen Intel(R) Core™ i5-13600K
Windows 11

I would need the log file with the crash, there were no changes to xbox input system.

2024-06-17 21:24:12.8269|DEBUG|MultiFunPlayer|Bootstrapper Configure
2024-06-17 21:24:12.8578|INFO|MultiFunPlayer.Settings.SettingsHelper|Reading settings from “MultiFunPlayer.config.json”
2024-06-17 21:24:12.9287|INFO|MultiFunPlayer|Environment [OSVersion: Microsoft Windows NT 10.0.22631.0, CLRVersion: 8.0.6]
2024-06-17 21:24:12.9287|INFO|MultiFunPlayer|Assembly [Version: 1.30.0-patreon-master.1+98.Branch.patreon-master.Sha.df4211d35dc495f815d16e4203975c9f2eb570f5]
2024-06-17 21:24:12.9287|INFO|MultiFunPlayer|Config [Version: 41]
2024-06-17 21:24:12.9287|INFO|MultiFunPlayer|Timer [IsHighResolution: True, Frequency: 10000000]
2024-06-17 21:24:12.9287|INFO|MultiFunPlayer|Set working directory to “C:\Users\cpazo\OneDrive\Pictures\MultiFunPlayer”
2024-06-17 21:24:12.9952|INFO|MultiFunPlayer.Settings.SettingsHelper|Reading settings from “MultiFunPlayer.config.json”
2024-06-17 21:24:21.6536|FATAL|MultiFunPlayer|System.ArgumentException: ‘1’ cannot be greater than 0.
at System.Math.ThrowMinMaxException[T](T min, T max)
at MultiFunPlayer.Input.XInput.XInputProcessor.g__CreateAxisGestureShort|9_0(Int16 last, Int16 current, Double deadZone, GamepadAxis axis, <>c__DisplayClass9_0&)
at MultiFunPlayer.Input.XInput.XInputProcessor.ParseStateGestures(Int32 userIndex, Gamepad& last, Gamepad& current, Double elapsed)
at MultiFunPlayer.Input.XInput.XInputProcessor.Update(CancellationToken token)
at MultiFunPlayer.Input.XInput.XInputProcessor.<.ctor>b__6_0()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
— End of stack trace from previous location —
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)

Well, love me some typo errors when trying to make the code look nicer.
Fixed, will be in 1.30.1, ill release it tomorrow most likely.
Thanks for reporting.

1 Like

Keep up the great work! Looking forward to the fix.

1 Like

If I understand correctly this should mean then that as a result it should be possible to load in two different versions of a video and not have the scripts unload if they are locked in? E.g. load video “railing someone clothed” → loads scripts → lock them → load video “railing someone naked” → scripts don’t unload.

I don’t think I understand what this means unless your referring to say slow and fast versions of the L0 script? (unless that’s what the matching funscripts is for?)

Additional script is mostly different name like “with fillers” so those can be loaded to the movie? If yes, would love to have those loaded automatically. The exact match and then the scripts where the first 20 characters match or so. Would be great without fiddling without file system.

Feature request I asked you on discord but presenting to public is option to skip parts without motion within the movie. Just the same option you have at the beginning of the movie. Would skip all anatomical examination without motion.

Yoooi now has annual patreon with discount, just saying. Get it and drop it and you are patreon for a year without the never ending loop.

That should work yea.
If an axis is locked and has no script loaded it will allow the next one to load.
If an axis is locked and has a script loaded it will not allow other scripts to load until unlocked.

No, so internal source always loads the single script you want to play to L0, so even if you want to play “test.pitch.funscript” it will load to it L0.
With that option checked it will try to load all other scripts with the same base name, so for example “test.funscript”, “test.roll.funscript” etc., and load them all to their corresponding axis.
So its basically a multi axis script support for internal source.

Loading different versions of scripts is technically in todo, but that is a different thing.

Not sure what you mean exactly.

Its in todo, will probably be in 1.31.0, 1.30.0 was getting too big.

2 Likes