

A BepInEx plugin for Resonite that improves IME composition handling for input methods such as Japanese.
This mod keeps IME composition text synchronized while editing UIX text, including:
Related issue: Yellow-Dog-Man/Resonite-Issues#745
Resonite runs the Unity renderer and the main engine in separate processes, so this mod is split into two plugins:
ResoniteBetterIMESupport.Renderer/ResoniteBetterIMESupport.Renderer.csproj
net472ResoniteBetterIMESupport.Engine/ResoniteBetterIMESupport.Engine.csproj
net10.0ITextResoniteBetterIMESupport.Shared/ImePipe.cs
Directory.Build.props
Both plugin sides are required. Installing only one side will not provide working IME composition support.
Install BepisLoader for Resonite.
Download the latest release ZIP from the Releases page and extract it into your BepInEx/BepisLoader profile.
For the Gale default profile, the files should be placed like this:
%APPDATA%\com.kesomannen.gale\resonite\profiles\Default\BepInEx\plugins\blhsrwznrghfzpr-ResoniteBetterIMESupport\ResoniteBetterIMESupport.Engine.dll%APPDATA%\com.kesomannen.gale\resonite\profiles\Default\Renderer\BepInEx\plugins\blhsrwznrghfzpr-ResoniteBetterIMESupport\ResoniteBetterIMESupport.Renderer.dllAfter installation, restart Resonite.
To confirm both sides loaded, check the logs:
%APPDATA%\com.kesomannen.gale\resonite\profiles\Default\BepInEx\LogOutput.logResoniteBetterIMESupport.Engine loaded.%APPDATA%\com.kesomannen.gale\resonite\profiles\Default\Renderer\BepInEx\LogOutput.logResoniteBetterIMESupport.Renderer loaded.The project expects the Resonite game files and BepisLoader profile at these default paths:
GamePath: %LOCALAPPDATA%\RESO Launcher\profiles\01bepis\GameBepisLoaderProfilePath: %APPDATA%\com.kesomannen.gale\resonite\profiles\DefaultGamePath is also auto-detected from common Steam install paths. You can set ResonitePath as a shorthand for GamePath.
Build both plugins:
dotnet build ResoniteBetterIMESupport.sln
Build and copy both plugins into the Gale default profile:
dotnet build ResoniteBetterIMESupport.sln -p:CopyToPlugins=true
This copies:
ResoniteBetterIMESupport.Renderer.dll to $(BepisLoaderProfilePath)\Renderer\BepInEx\plugins\blhsrwznrghfzpr-ResoniteBetterIMESupportResoniteBetterIMESupport.Engine.dll to $(BepisLoaderProfilePath)\BepInEx\plugins\blhsrwznrghfzpr-ResoniteBetterIMESupportYou can override paths when building:
dotnet build ResoniteBetterIMESupport.sln -p:GamePath="C:\Path\To\Game" -p:BepisLoaderProfilePath="C:\Path\To\Profile"
or:
dotnet build ResoniteBetterIMESupport.sln -p:ResonitePath="C:\Path\To\Game"
If Resonite is running, the engine-side DLL may be locked. Close Resonite and run the copy build again.
Thunderstore packaging is configured by thunderstore.toml.
The package contains both plugin sides:
Renderer/BepInEx/plugins/blhsrwznrghfzpr-ResoniteBetterIMESupport/ResoniteBetterIMESupport.Renderer.dllplugins/blhsrwznrghfzpr-ResoniteBetterIMESupport/ResoniteBetterIMESupport.Engine.dllBuild release binaries before packaging:
dotnet build ResoniteBetterIMESupport.sln -c Release
Then build the Thunderstore package with the configured tooling.
This is a Resonite-focused fork maintained by blhsrwznrghfzpr.
Original project: hantabaru1014/NeosBetterIMESupport