diff --git a/UI/frontend-plugins/frontend-tools/data/scripts/pause-scene.lua b/UI/frontend-plugins/frontend-tools/data/scripts/pause-scene.lua new file mode 100644 index 000000000..4563cdf2f --- /dev/null +++ b/UI/frontend-plugins/frontend-tools/data/scripts/pause-scene.lua @@ -0,0 +1,44 @@ +obs = obslua +pause_scene = "" + +function on_event(event) + if event == obs.OBS_FRONTEND_EVENT_SCENE_CHANGED then + local scene = obs.obs_frontend_get_current_scene() + local scene_name = obs.obs_source_get_name(scene) + if pause_scene == scene_name then + obs.obs_frontend_recording_pause(true) + else + obs.obs_frontend_recording_pause(false) + end + + obs.obs_source_release(scene); + end +end + +function script_properties() + local props = obs.obs_properties_create() + + local p = obs.obs_properties_add_list(props, "pause_scene", "Pause Scene", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) + local scenes = obs.obs_frontend_get_scenes() + if scenes ~= nil then + for _, scene in ipairs(scenes) do + local name = obs.obs_source_get_name(scene); + obs.obs_property_list_add_string(p, name, name) + end + end + obs.source_list_release(scenes) + + return props +end + +function script_description() + return "Adds the ability to pause recording when switching to a specific scene" +end + +function script_update(settings) + pause_scene = obs.obs_data_get_string(settings, "pause_scene") +end + +function script_load(settings) + obs.obs_frontend_add_event_callback(on_event) +end