ResoniteBetterIMESupport

v3.0.6·Updated 2026-06-09

Fixes IME composition display issues in Resonite with complex input methods such as Japanese

About this mod Author’s original text

ResoniteBetterIMESupport

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:

  • displaying unconfirmed text while typing with an IME
  • suppressing Resonite's F8 VR/Screen mode toggle while an IME composition is unconfirmed

Related issue: Yellow-Dog-Man/Resonite-Issues#745, Yellow-Dog-Man/Resonite-Issues#2825

Project Layout

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
  • Renderer-side plugin
  • Targets net472
  • Hooks Unity InputSystem IME composition events
  • Sends every OnIMECompositionChange composition string to the engine plugin
  • ResoniteBetterIMESupport.Engine/ResoniteBetterIMESupport.Engine.csproj
  • Engine-side plugin
  • Targets net10.0
  • Patches FrooxEngine text editing and text rendering
  • Replaces the active IText composition range with each renderer composition update
  • Displays composition through the active TextEditor selection/caret
  • ResoniteBetterIMESupport.Shared/ImeInterprocessMessage.cs
  • Shared named-pipe IPC layer used by both plugins
  • Directory.Build.props
  • Shared build metadata and default Resonite/BepisLoader paths

Both plugin sides are required. Installing only one side will not provide working IME composition support.

Installation

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:

  • Engine plugin:
  • %APPDATA%\com.kesomannen.gale\resonite\profiles\Default\BepInEx\plugins\blhsrwznrghfzpr-ResoniteBetterIMESupport\blhsrwznrghfzpr-ResoniteBetterIMESupport\ResoniteBetterIMESupport.Engine.dll
  • Renderer plugin:
  • %APPDATA%\com.kesomannen.gale\resonite\profiles\Default\Renderer\BepInEx\plugins\blhsrwznrghfzpr-ResoniteBetterIMESupport\blhsrwznrghfzpr-ResoniteBetterIMESupport\ResoniteBetterIMESupport.Renderer.dll

After installation, restart Resonite.

To confirm both sides loaded, check the logs:

  • Engine log:
  • %APPDATA%\com.kesomannen.gale\resonite\profiles\Default\BepInEx\LogOutput.log
  • Look for ResoniteBetterIMESupport.Engine loaded.
  • Renderer log:
  • %APPDATA%\com.kesomannen.gale\resonite\profiles\Default\Renderer\BepInEx\LogOutput.log
  • Look for ResoniteBetterIMESupport.Renderer loaded.

Development

The project expects the Resonite game files and BepisLoader profile at these default paths:

  • GamePath: %LOCALAPPDATA%\RESO Launcher\profiles\01bepis\Game
  • BepisLoaderProfilePath: %APPDATA%\com.kesomannen.gale\resonite\profiles\develop

GamePath 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 development profile:

dotnet build ResoniteBetterIMESupport.sln -p:CopyToPlugins=true

This copies:

  • ResoniteBetterIMESupport.Renderer.dll to $(BepisLoaderProfilePath)\Renderer\BepInEx\plugins\blhsrwznrghfzpr-ResoniteBetterIMESupport\blhsrwznrghfzpr-ResoniteBetterIMESupport
  • ResoniteBetterIMESupport.Engine.dll to $(BepisLoaderProfilePath)\BepInEx\plugins\blhsrwznrghfzpr-ResoniteBetterIMESupport\blhsrwznrghfzpr-ResoniteBetterIMESupport

You 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.

Packaging

packaging is configured by.toml.

The package contains both plugin sides:

  • Renderer/BepInEx/plugins

Install & use Install: follow the bundled instructions

  1. Unzip the archive from playbuff and read the bundled readme / instructions first.
  2. Most mods rely on the game's mod loader — the usual route is a community mod manager (such as r2modman): pick this game, install, and it handles the loader and dependencies.
  3. For a manual install, put the mod files into the matching Mod / plugins folder inside the game directory.
  4. Launch the game to confirm it loaded; mods with listed dependencies need those installed as well.

Install locations vary a lot between mods — the bundled readme is the most reliable guide.

Dependencies

Install these first, or the mod will not work:

ResoniteModding-BepisLoaderResoniteModding-BepisResoniteWrapperNytra-InterprocessLib

File & checksum

Filename
ResoniteBetterIMESupport-3.0.6.zip
File size
73.8 KiB