I had it resolved, it seems to be technical issues on my side, the template was great.
Game Title/Link: [Live2D / Fully Voiced] CyberBondage ~Caged Bird~ [PC Ver.]
Game Version: V1.0
Plugin Version: V2.6
Status:
Working
Notes: Tested and confirmed to work in SR6.
Template File:
CyberBondage - All Templates.cubilinkpack.json (14.6 KB)
Game Title/Link: PISTON
Game Version: V1.0
Plugin Version: V2.6
Status:
Working
Notes: Tested and confirmed to work in SR6.
Template File:
Piston - All Templates.cubilinkpack.json (30.5 KB)
@ZeroScripts @akiyama
Thank you for the amazing work, I have created a tool that can add multiple parameters towards each axis, for example L0 can bind with param1 and param2.
-Setting priority
For example if param1 has priority of 10 and param2 has priority of 5, and they are all bound to L0:
a. When param1 is moving but param2 is not, L0 will move based on param1
b. When param2 is moving but param1 is not, L0 will move based on param2
c. When param1 and param2 are moving, L0 will follow highest priority which is param1
Tips:
After editing the parameters to be bound with, make sure on the cubilink, you bound with the highest priority parameter
@ZeroScripts
Again thank you for the work, if possible would it be okay to include this feature on your next update, that:
-
It allows us to highlight the text of the parameter, so we can just copy and paste to the cubilinkmulti.
-
Sometimes there are BeplnEx plug in that runs auto translation, for those ones, after I dragged cubilink to the plugin folder, the cubilink interface didn’t pop up.
-
Would be great if it also allows CG cut scenes scripting, where there is no parameters but still being able to script based on the scene entry code playing funscript along.
Thank you for reading this reply and happy scripting !
Game Title/Link: お姉ちゃんは弟くんに襲われたい!~おさわりアニメーションクリッカーゲーム~
Game Version: V1.1
Plugin Version: V2.6
Status:
Working
Notes: Tested and confirmed to work in SR6.
Template File:
お姉ちゃんは弟くんに襲われたい!~Live2Dおさわりクリッカーゲーム~ - All Templates.cubilinkpack.json (24.8 KB)
First of all, thank you very much for creating such a wonderful mod.
I’d like to express my appreciation for your effort and hard work.
I’ve done a quick round of testing, and I feel that this mod would benefit from a few additional features, so I’d like to share some feedback and suggestions.
I believe it’s necessary to be able to configure the parameter min/max values and whether Invert is applied directly within Multi-Bind.
It might be difficult to support function inputs, but if possible, it would be preferable to also allow setting Multiplier and Offset.
As for a more complex request regarding Priority: the parameter used for determining priority does not always match the one you actually want to drive the motion.
So I think having the ability to configure these separately would allow for much more flexible use cases.
Thank you for the feedback, I did consider those to be very important when developing the 1.0 version but I haven’t come across using those settings yet. Here is the v1.1 version with the detailed settings added.
Let me know if anything needs improvement.
I haven’t gone through the thread yet but I wonder if we finally get RJ01178251 Doris - Lady of the Night with this.
EDIT: Oh just remembered it’s not Unity. ![]()
I was trying this one with F95’s version (since it has an uncensor) and it’s erroring out with “Operation is not supported on this platform” for multiple things but looking at things not sure game version matters. Using The Handy FW4 (not latest but it’s working fine on other games).
Steps to reproduce are simply having Intiface running but with no device, starting the game and trying to load template (will give the first error of not being able to import template), then connecting to Intiface works fine but as soon as you scan and the device is connected and you return to the game the plugin box will go blank with no text (also last message in the log is spammed over and over).
Oh, and exporting and import a template I made also gives errors.
[Message: BepInEx] BepInEx 5.4.23.5 - NatsuiroLesson (04/06/2025 07:16:16)
[Info : BepInEx] Running under Unity v2020.3.34.10112156
[Info : BepInEx] CLR runtime version: 4.0.30319.17020
[Info : BepInEx] Supports SRE: False
[Info : BepInEx] System platform: Bits64, Windows
[Message: BepInEx] Preloader started
[Info : BepInEx] Loaded 1 patcher method from [BepInEx.Preloader 5.4.23.5]
[Info : BepInEx] 1 patcher plugin loaded
[Info : BepInEx] Patching [UnityEngine.CoreModule] with [BepInEx.Chainloader]
[Message: BepInEx] Preloader finished
[Message: BepInEx] Chainloader ready
[Message: BepInEx] Chainloader started
[Info : BepInEx] 4 plugins to load
[Info : BepInEx] Loading [CubiLink 2.6.3]
[Info : CubiLink] v2.6.3 Initialization successful!
[Warning: CubiLink] Local config migration failed: Operation is not supported on this platform.
[Info : CubiLink] Cubism detected. Parameter assembly='Assembly-CSharp', Renderer assembly='Assembly-CSharp'.
[Info : CubiLink] CubiLink runtime initialized (runtime).
[Info : CubiLink] CubiLink runtime ensured: bootstrap-awake
[Info : BepInEx] Loading [SW_Decensor 0.7.2.1]
[Info : BepInEx] Loading [XUnity Auto Translator 5.1.0]
[Warning: HarmonyX] AccessTools.Method: Could not find method for type TMPro.TMP_Text and name SetCharArray and parameters (int[], int, int)
[Warning: HarmonyX] AccessTools.Method: Could not find method for type Utage.AdvEngine and name JumpScenario and parameters (string)
[Warning: HarmonyX] AccessTools.Method: Could not find method for type Live2D.Cubism.Rendering.CubismRenderer and name TryInitialize and parameters ()
[Info : BepInEx] Loading [XUnity Resource Redirector 2.0.0]
[Message: BepInEx] Chainloader startup complete
[Info : CubiLink] CubiLink runtime ensured: active-scene:Title
[Info : CubiLink] CubiLink runtime ensured: scene-loaded:Title
[Info : CubiLink] CubiLink runtime ensured: bootstrap-start
[Error : CubiLink] Template import failed: Operation is not supported on this platform.
[Error : CubiLink] Intiface connection failed: Intiface connection failed: Operation is not supported on this platform.
[Warning: CubiLink] Primary Intiface transport is unsupported on this runtime. Falling back to websocket-sharp Intiface transport.
[Info : CubiLink] Legacy Intiface ServerInfo received. MessageVersion=3, ProtocolVersionMajor=n/a, ProtocolVersionMinor=n/a, MaxPingTime=0ms
[Info : CubiLink] Legacy Intiface DeviceList received. Devices=0
[Warning: CubiLink] Connected to Intiface, but no device is currently available. Start scanning/connect the device in Intiface Central first.
[Info : CubiLink] Legacy Intiface device added: The Handy (FW4+) (Index 0)
[Error : CubiLink] Intiface legacy websocket protocol error: {"ButtplugDeviceError":{"MessageNotSupported":"RotateCmd"}}
I was able to get a bunch of other games working so thanks everyone for sharing!
I have also created a plug in that allow auto switching template regarding to the scene the game is playing.
Step 1: Drag the CubiLinkSceneAutoLoad.dll into the game plug in folder along with the cubilink
Step 2: Open the CubiLink_Mapping_Editor.exe
Step 3 Capture the scene name with the logoutput
Step 4: Open the CubiLink_Mapping_Editor.exe and type the scene name with the corresponding template name
In the following link I have included the CubiLinkMultiBind v1.1 (allows you to link multiple parameter to each axis with choice to edit the mutiplier, offset, and others) and the CubiLink Auto Mapping (allows you to auto switch templates to corresponding scenes).
Game Title/Link: おっぱい癒しパイズリ
Game Version: V1.0
Plugin Version: V2.61
Status:
Working
Notes: Tested and confirmed to work in SR6.
Template File:
おっぱい癒しパイズリ - All Templates.cubilinkpack.json (3.0 KB)
Thank you very much for your prompt response!
I’ll try a few things on my end and let you know if I have any feedback.
Thank you very much for creating such a wonderful mod.
I once considered trying to create an EDI myself, but I also got stuck at that time because I couldn’t figure out how to handle log output, and ended up giving up.
I’m very sorry to trouble you, but would it be possible for you to explain how to perform log output?
Thanks for sharing your tools.
I’m currently working on a bigger update that expands CubiLink to support Spine and Unity Transform animations as well, which should greatly increase compatibility across more games.
I’ll also take a closer look at integrating features like Multi-Bind and automatic template switching directly into the plugin, since those are useful additions that were also requested before.
Haven’t been able to reproduce the issue. Plugin loads fine on my end with the provided copy.
Are you sure you’re using the latest version of the plugin?
Yes, the log also says it’s 2.6.3, although the plugin says 2.6.2 like your screenshot. Did you successfully load the template? For me it adds this “Default template (2)” along with the error message. I just took this screenshot with Intiface turned off too, then the second screenshot is if I press connect with Intiface, and maybe it’s normal to crash with it turned off but this is what I’m seeing when I have The Handy connected (and working fine for other games but not this one).
I wasn’t really considering but I can spend some more time testing, could it be related to the Windows version? I’m still on 10. Or related to Japanese locale and so on, these games tend to be picky about it, although the game itself is completely fine, not sure how mods could break in relation to that.
Could also be an issue with BepInEx but if you tried and it’s working with the download I provided then probably not that either…
No worries, here are the steps that helped me.
- Open the game folder and go to
BepInEx > config. - Open
BepInEx.cfgwith Notepad. - Search for
[Logging.Console]. - Change
Enabled = falsetoEnabled = true. - Save the file. Now, the console will open automatically every time you start the game.
@ZeroScripts Given the
[Warning: CubiLink] Local config migration failed: Operation is not supported on this platform.
message, I tried to track it down in the code and ended up on this being the most likely culprit
private void SaveLocalConfigFile()
{
SR6Plugin.LocalConfigFileModel localConfigFileModel = this._localConfig ?? new SR6Plugin.LocalConfigFileModel();
this.NormalizeLocalConfig(localConfigFileModel);
localConfigFileModel.PluginVersion = ((this.Info != null && this.Info.Metadata != null && this.Info.Metadata.Version != null) ? this.Info.Metadata.Version.ToString() : "CubiLink v2.6.2");
string localConfigFilePath = this.GetLocalConfigFilePath();
string directoryName = Path.GetDirectoryName(localConfigFilePath);
if (!string.IsNullOrEmpty(directoryName))
{
Directory.CreateDirectory(directoryName);
}
string contents = JsonConvert.SerializeObject(localConfigFileModel, Formatting.Indented);
string text = localConfigFilePath + ".tmp";
File.WriteAllText(text, contents, Encoding.UTF8);
if (File.Exists(localConfigFilePath))
{
File.Delete(localConfigFilePath);
}
File.Move(text, localConfigFilePath);
}
After some back and forward with ChatGPT it thinks that it’s related to the
[Info : BepInEx] Supports SRE: False
appearing in the BepInEx/LogOutput.log log at startup, which is indeed unique to this game, on others it’s shown as True. This seems to be causing issues on Newtonsoft.Json but I really can’t make head or tails about what that to do with anything and why I’d be the only experiencing the issue. ![]()
Looking at the code, since JsonConvert is also used in SaveLocalConfigFile, I realized saving the config (not the template) caused this exception (since it’s not caught it can be seen in full), which confirms it’s an issue on Newtonsoft.Json.
[Error : Unity Log] PlatformNotSupportedException: Operation is not supported on this platform.
Stack trace:
Newtonsoft.Json.Utilities.DynamicReflectionDelegateFactory.CreateDynamicMethod (System.String name, System.Type returnType, System.Type[] parameterTypes, System.Type owner) (at <c04b81d152d14338ae6330058a51434d>:0)
Newtonsoft.Json.Utilities.DynamicReflectionDelegateFactory.CreateDefaultConstructor[T] (System.Type type) (at <c04b81d152d14338ae6330058a51434d>:0)
Newtonsoft.Json.Serialization.DefaultContractResolver.GetDefaultCreator (System.Type createdType) (at <c04b81d152d14338ae6330058a51434d>:0)
Newtonsoft.Json.Serialization.DefaultContractResolver.InitializeContract (Newtonsoft.Json.Serialization.JsonContract contract) (at <c04b81d152d14338ae6330058a51434d>:0)
Newtonsoft.Json.Serialization.DefaultContractResolver.CreateObjectContract (System.Type objectType) (at <c04b81d152d14338ae6330058a51434d>:0)
Newtonsoft.Json.Serialization.DefaultContractResolver.CreateContract (System.Type objectType) (at <c04b81d152d14338ae6330058a51434d>:0)
System.Collections.Concurrent.ConcurrentDictionary`2[TKey,TValue].GetOrAdd (TKey key, System.Func`2[T,TResult] valueFactory) (at <a1e9f114a6e64f4eacb529fc802ec93d>:0)
Newtonsoft.Json.Utilities.ThreadSafeStore`2[TKey,TValue].Get (TKey key) (at <c04b81d152d14338ae6330058a51434d>:0)
Newtonsoft.Json.Serialization.DefaultContractResolver.ResolveContract (System.Type type) (at <c04b81d152d14338ae6330058a51434d>:0)
Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.GetContract (System.Object value) (at <c04b81d152d14338ae6330058a51434d>:0)
Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.GetContractSafe (System.Object value) (at <c04b81d152d14338ae6330058a51434d>:0)
Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize (Newtonsoft.Json.JsonWriter jsonWriter, System.Object value, System.Type objectType) (at <c04b81d152d14338ae6330058a51434d>:0)
Newtonsoft.Json.JsonSerializer.SerializeInternal (Newtonsoft.Json.JsonWriter jsonWriter, System.Object value, System.Type objectType) (at <c04b81d152d14338ae6330058a51434d>:0)
Newtonsoft.Json.JsonSerializer.Serialize (Newtonsoft.Json.JsonWriter jsonWriter, System.Object value, System.Type objectType) (at <c04b81d152d14338ae6330058a51434d>:0)
Newtonsoft.Json.JsonConvert.SerializeObjectInternal (System.Object value, System.Type type, Newtonsoft.Json.JsonSerializer jsonSerializer) (at <c04b81d152d14338ae6330058a51434d>:0)
Newtonsoft.Json.JsonConvert.SerializeObject (System.Object value, System.Type type, Newtonsoft.Json.Formatting formatting, Newtonsoft.Json.JsonSerializerSettings settings) (at <c04b81d152d14338ae6330058a51434d>:0)
Newtonsoft.Json.JsonConvert.SerializeObject (System.Object value, Newtonsoft.Json.Formatting formatting, Newtonsoft.Json.JsonSerializerSettings settings) (at <c04b81d152d14338ae6330058a51434d>:0)
Newtonsoft.Json.JsonConvert.SerializeObject (System.Object value, Newtonsoft.Json.Formatting formatting) (at <c04b81d152d14338ae6330058a51434d>:0)
CubiLinkPlugin.SR6Plugin.SaveLocalConfigFile () (at <c04b81d152d14338ae6330058a51434d>:0)
CubiLinkPlugin.SR6Plugin.SaveTemplateList () (at <c04b81d152d14338ae6330058a51434d>:0)
CubiLinkPlugin.SR6Plugin.DrawSaveConfigurationButton () (at <c04b81d152d14338ae6330058a51434d>:0)
CubiLinkPlugin.SR6Plugin.DrawWindow (System.Int32 windowId) (at <c04b81d152d14338ae6330058a51434d>:0)
UnityEngine.GUI.CallWindowDelegate (UnityEngine.GUI+WindowFunction func, System.Int32 id, System.Int32 instanceID, UnityEngine.GUISkin _skin, System.Int32 forceRect, System.Single width, System.Single height, UnityEngine.GUIStyle style) (at <f184e192941c48fca4d4b84811b60ad2>:0)
But, seems like it still comes down to SRE: False which I can’t figure out why I’d have it as False and most likely you have it as True, assuming you’re using the F95 version I shared.
So… it had nothing to do with me but rather the game version, I grabbed the latest game version and voila, it’s working fine, now it’s saying [Info : BepInEx] Supports SRE: True and I can load the template. The game updated the Unity version on its latest version and that seems to have been it, before it was using a version from 2020, other games on versions from 2022 were fine, and now this one is on v6000.
Yeah, looks like it was working on my end because I was using my local plugin build, which is a newer version I’ve been working on.
I’ve already fixed a few compatibility issues that some games have with older Newtonsoft setups and also improved the saving/loading logic, so that’s probably why it worked fine for me even with the version you shared.
Glad it’s working for you now. With the upcoming version, even older Unity builds and a lot more games should work without these kinds of issues.







