InterprocessLib
Library for mods to send data to the renderer and back.
About this mod Author’s original text
InterprocessLib
A library for Resonite that allows mods to send data to other processes such as the Unity renderer.
The library only depends on Renderite.Shared.
BepisLoader, BepInEx, RML and Standalone example projects are included in the Tests folder.
Usage
After including the library in your project, all you have to do is create your own instance of the Messenger class. You can do this at any time, even before Resonite starts.!!! Make sure both processes register with the same name!!!
var messenger = new Messenger("PluginName");
From here you can use the messenger to send data or receive data.
messenger.SendValue("TestValue", 637);
messenger.ReceiveValue("TestValue", (val) =>
{
Log($"TestValue: {val}");
});
For BepisLoader, BepInEx and RML, if you have a config entry in both processes with the same type and name, you can sync them like this:
messenger.SyncConfigEntry(MyConfigEntry);
You can also work with lists:
var list = new List();
list.Add(2f);
list.Add(7f);
list.Add(21f);
messenger.SendValueCollection, float>("TestValueList", list);
messenger.ReceiveValueCollection, float>("TestValueList", (list) =>
{
Log($"TestValueList: {string.Join(",", list!)}");
});
You can send any class or struct that has the IMemoryPackable interface:
var cmd = new TestCommand();
cmd.Value = 2932;
cmd.Text = "Hello world";
cmd.Time = DateTime.Now;
messenger.SendObject("TestCustomRendererCommand", cmd);
messenger.ReceiveObject("TestCustomRendererCommand", (recvCmd) =>
{
Log($"TestCustomRendererCommand: {recvCmd?.Value}, {recvCmd?.Text}, {recvCmd?.Time}");
});
For more examples, you can check the tests files:
Installation (BepisLoader/BepInEx) (Manual)
- Install BepisLoader and BepInExRenderer and RenderiteHook for Resonite.
- Download the latest release ZIP file (e.g., Nytra-InterprocessLib-1.0.0.zip) from the Releases page.
- Extract the ZIP and copy the plugins folder to your BepInEx folder in your Resonite installation directory and the renderer directory:
- Default location: C:\Program Files (x86)\Steam\steamapps\common\Resonite\BepInEx\
- Renderer default location: C:\Program Files (x86)\Steam\steamapps\common\Resonite\Renderer\BepInEx\
- Start the game. If you want to verify that the mod is working you can check your BepInEx logs.
Installation (RML) (Manual)
- Install ResoniteModLoader for Resonite.
- Download the latest release file InterprocessLib.FrooxEngine.dll and optionally the RML extensions InterprocessLib.RML_Extensions.dll from the Releases page.
- Put those downloaded files into your 'rml_libs' folder in your Resonite installation directory:
- Default location: C:\Program Files (x86)\Steam\steamapps\common\Resonite\rml_libs\
- Start the game. If you want to verify that the mod is working you can check your Resonite logs.
Install & use Install: follow the bundled instructions
- Unzip the archive from playbuff and read the bundled readme / instructions first.
- 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.
- For a manual install, put the mod files into the matching Mod / plugins folder inside the game directory.
- 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.
Install these first, or the mod will not work: