process.on('message', async (msg) => { if (msg.event === 'zoom-in-trigger') { console.log(`[OBSBOT Process] Reward event acknowledged! Starting sequence...`); if (zoomTimeoutToken) { clearTimeout(zoomTimeoutToken); zoomTimeoutToken = null; } selectCam(2); await delay(1000); client.send('/OBSBOT/WebCam/General/SetZoom', 100, (err) => { if (err) { console.error('[OBSBOT Process] OSC Zoom In Error:', err); return; } console.log('[OBSBOT Process] Zoomed In. Starting 10-second countdown...'); }); let currentSequenceActive = true; zoomTimeoutToken = setTimeout(() => { currentSequenceActive = false; console.log(`[OBSBOT Process] 10 seconds elapsed. Resetting zoom to 0...`); client.send('/OBSBOT/WebCam/General/SetZoom', 0, (err) => { if (err) { console.error('[OBSBOT Process] OSC Zoom Out Error:', err); } else { console.log('[OBSBOT Process] Zoom reset successfully.'); } }); zoomTimeoutToken = null; }, 10000); }, if (msg.event === 'look-away-trigger') { console.log(`[OBSBOT Process] Reward event acknowledged! Starting sequence...`); if (lookawayTimeoutToken) { clearTimeout(lookawayTimeoutToken); lookawayTimeoutToken = null; } selectCam(2); await delay(1000); client.send('/OBSBOT/WebCam/General/TriggerPreset', 2, (err) => { if (err) { console.error('[OBSBOT Process] Preset change error:', err); return; } console.log('[OBSBOT Process] Changed Preset to 2'); }); let currentSequenceActive = true; lookawayTimeoutToken = setTimeout(() => { currentSequenceActive = false; console.log(`[OBSBOT Process] 10 seconds elapsed. Resetting Preset to 0...`); client.send('/OBSBOT/WebCam/General/TriggerPreset', 0, (err) => { if (err) { console.error('[OBSBOT Process] Preset change error:', err); } else { console.log('[OBSBOT Process] Changed preset successfully.'); } }); lookawayTimeoutToken = null; }, 10000); } });