{"version":"2.1.267","anchor":"hooksjson-can-now-declare-a-surface-module","canonical_anchor":"hooksjson-can-now-declare-a-surface-module","heading":"hooks.json can now declare a surface module","tier":"use","area":"Plugins","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.267\/e\/hooksjson-can-now-declare-a-surface-module","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.267","markdown":"### hooks.json can now declare a `surface` module\n\nhooks.json can now declare a separate 'surface' module for drawing a hook module's UI elements\n\n**What**\n\nA plugin's `hooks.json` configuration file can now include an optional `surface` field, naming a module (a code file separate from the main hooks module) whose job is to render the hooks module's `Client` UI elements onto a display surface. This field requires the `modules` field to also be present, and its format is checked by a new validation rule: it must be a path relative to the `hooks.json` file and cannot start with `$`.\n\n**Why**\n\nThis gives plugin authors a way to separate the code that renders UI elements from the main hooks logic, which is useful for plugins that need to show their own interface elements.\n\n- Area: Plugins\n- Names: `surface`\n- Tier: Use it now\n- Useful: 3\/5\n- Signal: 3\/5"}