Plugin Configuration
All plugins must include a mobro_plugin_config.json
file, which defines essential metadata for proper functionality.
This configuration file must be placed in the root directory of the plugin when publishing it as a .zip
file.
If this file is missing, the plugin is considered invalid and cannot be installed in MoBro.
Fields
The following table describes the fields of the mobro_plugin_config.json
file:
Field | Default | Restrictions | Description |
---|---|---|---|
name | - | Required Length: 3 - 128 Pattern: ^[\w-]+$ | A globally unique name (ID) for the plugin. |
displayName | name | - | A human-readable, visible name for the plugin. |
author | Unknown | - | The author's name for the plugin. |
description | - | - | A short textual description of the plugin. |
assembly | Plugin.dll | - | The published .dll file to load. |
localization | - | - | The relative path to the folder containing localization files. |
executionMode | AdminBackground | UserSession OR AdminBackground | Determines the context in which the plugin process will run. |
settings | - | - | The plugin's configuration settings. |
executionMode
Field
By default, a plugin runs in AdminBackground
mode. In this mode, the plugin process is executed by the MoBro
background service, granting it administrative privileges. This is useful for tasks such as accessing system sensors.
However, plugins running in this mode do not have access to the user session due to Windows permission restrictions.
On the other hand, a plugin running in UserSession
mode will start only when the MoBro application is running. The
plugin is executed by the MoBro application itself, providing it access to the user session. This is required in cases
where metrics, interactions, or specific actions depend on user session access.
Example Configuration
Below is an example of a mobro_plugin_config.json
file from
the MoBroHardwareMonitor plugin.
This configuration demonstrates how to define the required fields, such as a unique plugin name, a custom assembly name,
and the localization directory.
Settings have been omitted for brevity; refer to In-depth: Settings for more details.
{
"name": "modbros_mobrohardwaremonitor",
"displayName": "MoBro Hardware Monitor",
"author": "ModBros",
"description": null,
"assembly": "Plugin.MoBroHardwareMonitor.dll",
"localization": "Resources/Localization",
"settings": []
}