DynamicPlugin Icon
DynamicPlugin

Extensible Plugin SDK

Core API Hook: Assembly Load / Dynamic Instantiation Reflection

Load and run third-party actions compiled into dynamic .NET assemblies conforming to the IActionPlugin interface.

Configuration Parameters

Parameter Type Description
PluginId string Unique identifier matching custom compiled plugin DLL file name registered on local path.
Arguments string Serialized JSON string payload passed directly to the plugin execution hook.

config.json Mapping

{
  "Type": "DynamicPlugin",
  "Name": "Run OBS Socket Event",
  "PluginId": "MyCustomAutomationPlugin",
  "Arguments": "{\"command\": \"fade_to_black\"}"
}

Save inside database layout actions configuration map.

Native Execution Hook

// DynamicPlugin execution logic
var dllPath = Path.Combine("Actions", $"{action.PluginId}.dll");
var assembly = Assembly.LoadFrom(dllPath);
foreach (var type in assembly.GetTypes())
{
    if (typeof(IDynamicActionPlugin).IsAssignableFrom(type) && !type.IsInterface)
    {
        var instance = (IDynamicActionPlugin)Activator.CreateInstance(type);
        instance.Execute(action, InputManager.Instance, vk, chainDepth);
    }
}

Executed within IsoCore remapping runtime loop.

← Back to Actions Directory IsoKey Module: DynamicPlugin