From 646aa9fc7ebfae5e73d90b8791ab87fb76b79c13 Mon Sep 17 00:00:00 2001 From: Fritz Date: Fri, 29 May 2026 12:58:15 +1000 Subject: [PATCH] =?UTF-8?q?fix(obs-plugin):=20fix=20inspector=E2=86=92plug?= =?UTF-8?q?in=20message=20routing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two bugs prevented the OBS inspector from ever receiving OBS data: 1. App.jsx forwarded sdpi:sendToPlugin with event name 'sendToPropertyInspector' — the plugin only handles 'sendToPlugin'. Fixed the event name to 'sendToPlugin'. 2. plugin.cjs read msg.payload for the sendToPlugin handler, but main.cjs packs the payload into msg.settings. Fixed to msg.settings. Combined effect: inspector sent getScenes/getInputs/etc. → messages silently dropped → inspector never received OBS data → status stuck on 'Connecting to OBS…' indefinitely despite WebSocket being up. Fixes: OBS Scene (and all other OBS actions) now populate dropdowns and show 'OBS connected' status correctly. --- obs-plugin/com.obs.streamdeck.sdPlugin/bin/plugin.cjs | 2 +- src/App.jsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/obs-plugin/com.obs.streamdeck.sdPlugin/bin/plugin.cjs b/obs-plugin/com.obs.streamdeck.sdPlugin/bin/plugin.cjs index 8619510..76f063e 100644 --- a/obs-plugin/com.obs.streamdeck.sdPlugin/bin/plugin.cjs +++ b/obs-plugin/com.obs.streamdeck.sdPlugin/bin/plugin.cjs @@ -328,7 +328,7 @@ process.on('message', (msg) => { // keyUp has no OBS actions that require hold-release, so nothing to do if (msg.event === 'sendToPlugin') { - handleSendToPlugin(msg.actionUUID || '', msg.payload || {}) + handleSendToPlugin(msg.actionUUID || '', msg.settings || {}) } }) diff --git a/src/App.jsx b/src/App.jsx index e4e6cf6..18cea3d 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1415,7 +1415,7 @@ function PluginInspector({ action, onChange, pluginManifests = [] }) { '*' ) } else if (e.data.type === 'sdpi:sendToPlugin') { - window.streamDeck?.sendToPlugin?.(pluginUUID, actionUUID, 'sendToPropertyInspector', e.data.payload, null) + window.streamDeck?.sendToPlugin?.(pluginUUID, actionUUID, 'sendToPlugin', e.data.payload, null) } } const piHandler = e => {