i will send you a dm
I have the same setup, I assumed it was because the solace pro is not supported? it would be cool if it was supported though.
as long as a device is supported in intiface and is able to do linear motion it was supposed to work.
i need to investigate that with you as i do not own a solace
a workaround could be using the MFP integration through the api
ok what do you need me to do?
please set your app to debug level in the settings and send me the logfiles via an dm here
Would it be possible to fetch metadata for series (here example Hentai) like Jellyfin does? Maybe a page dedicated for series with Posters.
That would be a gamechanger as i can ditch jellyfin and go full on FunLibrary
i will check whats needed for that
I started the investigation on the solace problem, could take some time
Oh btw, this was the database i gained the metadata from:
Jellyfin/Emby or other Multimedia systems have plugins which can collect metadata from this page
Edit:
This is the inside of a series when clicked:
found the problem, solace is registered as “oscilator” not as “linear” this was also hitting some other devices which should now work as well
fix will be in the next release
I already have all of my videos organized and linked with scripts in XBVR. Can I use this just as a way to browse and play vids from my XBVR server?
No, FLM is not able to act as an frontend for XBVR.
I’m prepairing the new release, should be out this weekend.
Release is live, links have been updated.
Version 0.9.14 - Key Features & Changes
New Features
Watch Later
- Mark videos to watch later with dedicated UI and filtering
- Watch Later toggle button in filter sidebar with clock icon
- Watch Later column in table view (clickable clock icon)
- Watch Later button on grid cards (top-right)
- Filter videos by Watch Later status (All / Watch Later only)
- HereSphere integration: Watch Later as category with tag-based toggle
Metadata Enrichment Widget
- New widget for automatic category suggestions
- Multi-source analysis: Funscript metadata, filename patterns, TPDB API
- Tag types: Categories, Performers (
prefix), Studios (
prefix) - Streaming results with live UI updates during scan
- Paginated queue with configurable items per page
- Diagnose dialog for videos without suggestions
Filename Pattern Matching
- 30+ regex patterns for common naming conventions
- VR studio formats (StudioVR - Performer - Title)
- JAV codes (KAVR-332, 3DSVR-0570, etc.)
- Game character formats (ZZZ-Character-Creator)
- Performer name formats (Firstname Lastname - Title)
Funscript Metadata Parsing
- Extract tags, performers, studio from funscript JSON metadata
TPDB Integration
- Optional ThePornDB API lookup for scene metadata
Oscillator Device Support (Lovense Solace, etc.)
- Support for two device types via Buttplug/Intiface:
- Linear devices (LinearCmd): The Handy, OSR2/SR6, Kiiroo Keon/TITAN, Launch
- Oscillator devices (ScalarCmd/Oscillate): Lovense Solace/Solace Pro
- Automatic device type detection
- Position-to-speed conversion for oscillators (funscript movements → oscillation speed)
- Improved device capability logging for debugging
Buttplug Backend Enhancements
- Sync offset support: Timing adjustment in milliseconds (same as Handy API)
- Stroke range control: Positions scaled to fit configured range (0-100%)
- Multiple capability detection methods for better device compatibility
- Detailed error messages when devices are not compatible
Funscript Tooltip Stats: ScriptAxis-style statistics in library tooltips
- Shows Max Speed, Average Speed, Action Count
- EroScripts-style waveform layout with right-aligned metrics
Player
- Axis Funscript Filtering: Secondary axis funscripts (L1, L2, R0-R2, V0-V2) are filtered from player dropdown
- Main stroke (L0) always shown, axis scripts hidden unless explicitly needed
- Average Speed Display: Funscript tooltips and player dropdown now show average speed
Bug Fixes
- various bugfixes and performance enhancements
If you still have problems with the Intiface connection, pleaase send me a DM with full debug logs.
Unfortunately i do not own a solace or similar, so testing is not so easy for that devices.
Can you explain how to watch VR content? I’m supposed to copy the url link and what’s next?
Just a user here, but I connected it to Multifunplayer via the XBVR connection using the IP address FunLibrary Manager gives in the readme file.
When you enable the api, there is a popup that explains the connection.
Basically you open up Heresphere, click on Web Browser on the left side,
enter the url.
Then klick on the “grid-play” icon directly left of the url field.
If your devices are in the same network, all good, if you have wifi with multiple accesspoints it could be that you need to enforce both devices to be associated to the same acces-point (edge case)
New release, links have been updated!
New Features since 0.9.14
Library Widget
- Custom Thumbnails: Automatic detection of image files with same base name as video (e.g., video.jpg next to video.mp4) - no manual action needed
- Filterable Combo Boxes: Searchable dropdowns with live filtering in dialogs
Funscript Doctor
Layout:
- Two-panel design with horizontal splitter (60% results, 40% detail)
Toolbar:
- Folder menu with library paths, database subfolders, “Scan all” option
- Browse for custom folder
- Scan/Cancel buttons
Results Table:
- Columns: Filename, Actions, Max Speed, Device compatibility columns
- Device columns toggleable via header context menu
- Compatibility indicators: ✓ (OK),
(Warning), ✗ (Bad) with tooltips
Filtering:
- Text search for filename/path
- Filter dropdown: All / Issues / OK
- Result count display
Detail Panel:
- Heatmap visualization
- Statistics: Actions, Duration, Max/Avg Speed (color-coded)
- Device compatibility with percentage of too-fast actions
- Issues list grouped by severity
- Action buttons: Compress, Optimize, Sync, Speed/Intensity Transform, Explorer
Context Menu:
- Compress funscript (with backup)
- Optimize for device (presets + custom)
- Transform → Speed / Intensity
- Sync with video
- Show in explorer
- Bulk compression for multiple selection
Funscript Sync Dialog
Left Column - Video:
- VLC player with play/pause, seek, time display
- Frame-by-frame navigation
- Auto-detection of matching video
- Video marker button
Right Column - Controls:
- Shiftable timeline with heatmap
- Offset slider with undo/redo (50 steps)
- Script marker button (also via right-click on timeline)
- Auto-calculate offset from markers
- Device visualizer showing interpolated position (0-100)
- Multi-axis support (auto-detects related .pitch, .roll etc.)
Save Options:
- Filename suggestions
- Backup option
- Shift all axes together option
Funscript Optimizer Dialog
- Speed/Intensity transform with live preview
- Original vs. transformed heatmap comparison
- Device preset optimization
- Compression with backup
Enrichment Widget
- StashDB Enricher: Metadata from StashDB via GraphQL API with OShash/Phash fingerprinting
- Tri-State Toggles: Neutral (undecided) / Selected (accept) / Rejected (lock) states for suggestions
Device Manager
- Device-Specific Settings: Stroke range (min/max), sync offset
- Intiface Processing Modes: Smooth (speed-limited) vs. Raw (unchanged commands)
- Acsen V0/V1 Vibration Axis Support: Full support for vibration axes in funscripts
Database
- Purge Unlisted Folders: Remove entries for folders no longer in library paths
- Duplicate Path Cleanup: Remove duplicate database entries
Bugfixes
- Various stability improvements and minor bug fixes
For those who want to update to Intiface 3
Intiface changed the api format and the python library i was using is not capable of connecting to the new version.
I had to implement a fix by using a different package:
link updated:
A new release will come soon.


