Hey everyone,
I’m sharing my forked version of Gohyrt’s Live2D-to-SR6-Motion plugin.
This release is based on the original plugin, but adds a UI overhaul and a few extra features I initially made for myself, but figured others might also find useful.
Since the original EroScripts post seems to have been deleted by OP for some reason, I’m posting this build in a new topic it remains available to anyone interested.
The creator said that they wanted to keep their version simple and lightweight, so rather than treating this as an update to the original project, I’m releasing it separately as a more feature-rich fork.
Current additions in this version
- Parameter highlighter to quickly identify which model element a parameter affects
- Live parameter graph / scope to visualize value changes over time and help find the right parameters
- Additional output modes, including UDP and Intiface support
- Dynamic Live2D/Cubism detection for much broader game compatibility
- UI overhaul
- Enable/disable individual axes
- Collapsible sections for better organization
- Improved preview bar
- More flexible input fields
- Scalable UI size
- Improved transparency handling
- Show unsaved changes
- Profile / template import & export
Easily share mappings between games and scenes
(Default:\BepInEx\config\CubiLink)- Stable local config file (
CubiLink.cfg) instead of registry - Better cross-game compatibility
- Stable local config file (
- Recording support
Exports each individual axis movement as funscripts
(Default:\BepInEx\config\CubiLink\Recordings) - Expression-based inputs
Use formulas and cross-parameter references to dynamically control axis behavior - Global axis output range control
Adjust per-axis output limits independent from templates - Better runtime stability
- Reduced error spam in unsupported environments
- Safer initialization across different Unity runtimes
Example: Griffith’s Paizuri Simulator
Notes
- I haven’t been able to fully test device-side output myself yet.
- The plugin currently only supports Mono Unity games using the standard Live2D Cubism SDK.
How to use
-
Install BepInEx for the game you want to use this with.
Usually this means extracting BepInEx into the game folder where the.exeis located. -
Start the game once after installing BepInEx.
This should create the requiredBepInEx\..folders and config structure. -
Copy the plugin
.dllfile into:BepInEx\plugins -
The plugin UI should now show up on game start.
-
In the Options section, select the output mode you want and Connect:
- Serial: COM port, for example
COM4 - UDP: host and port
- Intiface: websocket address, for example
ws://127.0.0.1:12345
-
Create a new template or use the default one.
Templates let you save different mappings for games, characters, or scenes.
You can also import/export templates shared by other user.
Default location\BepInEx\config\CubiLink
-
In the Axis Mapping section, click the parameter button for an axis you want to bind.
-
A parameter picker will open. From there you can:
- search for parameters by name
- freeze sorting if the list changes too fast
- hover over parameters to highlight likely matching model parts
- use the live values / graph to see how a parameter behaves
- right click a parameter to open its trace graph
- left click a parameter to bind it
- After binding a parameter, adjust:
- Min / Max
- Multiplier
- Offset
- Invert if needed
- You can temporarily disable individual axes (On/Off button), which will also exclude them from funscript recording.
- Use Range Lock depending on what you want:
- Range Locked = keeps your range settings fixed
- Range Learning = automatically records motion range while the model is moving
-
Adjust Global Smoothing and Target Hz to your preference.
-
Save Current Configuration when you are happy with the setup.
Changelog
- 16.04.2026 - v2.6.2 UI fix
- Fixed UI preview bars not matching actual T-Code output (D4 range)
- Fixed UI preview bars not matching actual T-Code output (D4 range)
- 12.04.2026 - v2.6.1 UI & Perf
- Improved UI behavior across templates
- Template UI now acts as a baseline instead of resetting layout on every switch
- Prevents window position/scale from jumping between templates
- Improved performance
- Reduced unnecessary scene rescans
- Lower overhead while menu is open
- Faster reaction on scene changes
- Added unsaved changes indicator
- Shows when current configuration differs from saved state
- Save button now highlights pending changes
- Per-axis output range control
- Adjust final movement range (0–100%) independently from templates
- Adjust final movement range (0–100%) independently from templates
- Improved UI behavior across templates
- 10.04.2026 - v2.6 SavePoint
- Improved stability of saved configurations (registry / PlayerPrefs)
- Added sanitizing and size limits for saved expressions/functions
- Prevented corrupted saved data from breaking startup
- Reduced unnecessary save operations to avoid slowdowns over time
- Moved config storage from registry (PlayerPrefs) to local file (
BepInEx\config\CubiLink.cfg)
- Improved expression handling
- Missing parameters now default to 0 instead of causing errors
- Improves compatibility of templates across different games
- Fixed UI configuration saving
- “Save Current Configuration” now correctly stores window position, size, and layout
- Resolved issue where outdated values were saved due to GUI timing
- Improved stability during scene initialization
- Reduced error spam and unnecessary re-evaluation loops
- Minor internal improvements and cleanup
- More reliable runtime behavior across different titles
- More reliable runtime behavior across different titles
- Improved stability of saved configurations (registry / PlayerPrefs)
- 09.04.2026 - v2.5.4 Bug fix
- Fixed template export/import not preserving Multiplier and Offset expressions
- Templates now correctly retain formula-based values instead of only exporting evaluated numbers
- Switched T-Code axis output from 0–999 (D3) to proper 0–9999 (D4) range
- Fixed final output scaling so normalized values map correctly to full T-Code range
- Updated Intiface T-Code parsing to match 4-digit (0–9999) values
- Fixed template export/import not preserving Multiplier and Offset expressions
- 05.04.2026 - v2.5.2 UI fix
- Templates section is now collapsible + list has a fixed height / is scrollable.
- Minor layout and readability improvements
- 04.04.2026 - v2.5.1 Serial Improv
- Improved Serial Communication
- Fixed SerialPort compatibility issues in certain Unity runtimes
- Added Win32 fallback for systems where System.IO.Ports is unsupported
- Improved error logging for Serial connections
- Improved Serial Communication
- 03.04.2026 - v2.5 Calculus
- Expression support for Min / Max / Multiplier / Offset
- Adds option to dynamically tune and adjust parameters/axis
- Supports operators:
+ - * / ( ) < > <= >= == != - Cross-parameter reference via
p_ParameterName [value]syntax to set range boarders (e.g.[0])
- Expression support for Min / Max / Multiplier / Offset
- 29.03.2026 - v2.4 Compatibility Fix
- Fixed plugin being unloaded immediately in certain Unity games
- Refactored initialization: runtime now loads on a persistent
DontDestroyOnLoadobject instead of the BepInEx plugin instance - Improved compatibility with games that rebuild or clean up objects during startup
- 28.03.2026 - v2.3.3 Bugfix.
- Fixed reduced movement range during manual animation movement
- Implemented adaptive smoothing
- Fixed issue with some template export on some games
- 28.03.2026 - v2.3.2 Bugfix.
- Fixed recording export issue on some Unity runtimes by replacing unsupported JSON/file write calls with a compatible manual export
- Fixed manual parameter control not reaching full range during playback
- Caused by output being sent before GUI-driven parameter updates were applied
- Adjusted sampling order so manual (input-driven) changes are correctly reflected in device output
- Some more code-cleanup
- 27.03.2026 - v2.3 Rec.
- Added recording functionality to capture motion and export each enabled axis as a separate funscript file.
Note: I tried to build a video recorder into the plugin, but that caused significant performance issues, which were also reflected in the recordings.
For now, it is recommended to use an external screen recorder if a video is needed alongside the scripts.
- Added recording functionality to capture motion and export each enabled axis as a separate funscript file.
- 25.03.2026 - v2.2 Share & Sync
- Added template import/export for sharing mappings between users
- Can be done per scene or as a full game bundle
- Added collapsible UI sections for better layout
- Improved window opacity handling
- Added option to enable/disable each axis
- Added template import/export for sharing mappings between users
- 24.03.2026 - v2.1 Small Improvements
- Improved asset highlighter to better identify which model part a parameter affects
- Added option to freeze the sorting list in the parameter picker
- Minor Code Improvements
- 22.03.2026 - v2.0 Refactored
- Improved Intiface compatibility across different Unity game runtimes
- Added fallback Intiface websocket transport for games where the normal Buttplug websocket path is unsupported
- Fixed
Newtonsoft.Json/ Buttplug dependency conflicts by merging dependencies into the plugin DLL - Cleaned up and simplified the code structure for easier maintenance.
- 22.03.2026 - v1.5 Universal Live2D
- Added dynamic Cubism discovery and fallback parameter reading for better compatibility across Live2D titles
- Reworked UI layout with scaling support, better scrolling, and improved panel sizing
- Cleaned up transport handling, template loading/saving, and general UI behavior
- 21.03.2026 - v1.4 Comm Patch
- Added safer Intiface connection handling
- Improved disconnect flow to avoid freeze-prone stop handling and added live connection status in UI
- Added support for stroker-devices like the Handy
- 21.03.2026 - v1.2 Initial Release








