pause-scene.lua 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. obs = obslua
  2. pause_scene = ""
  3. function on_event(event)
  4. if event == obs.OBS_FRONTEND_EVENT_SCENE_CHANGED then
  5. local scene = obs.obs_frontend_get_current_scene()
  6. local scene_name = obs.obs_source_get_name(scene)
  7. if pause_scene == scene_name then
  8. obs.obs_frontend_recording_pause(true)
  9. else
  10. obs.obs_frontend_recording_pause(false)
  11. end
  12. obs.obs_source_release(scene);
  13. end
  14. end
  15. function script_properties()
  16. local props = obs.obs_properties_create()
  17. local p = obs.obs_properties_add_list(props, "pause_scene", "Pause Scene", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING)
  18. local scenes = obs.obs_frontend_get_scenes()
  19. if scenes ~= nil then
  20. for _, scene in ipairs(scenes) do
  21. local name = obs.obs_source_get_name(scene);
  22. obs.obs_property_list_add_string(p, name, name)
  23. end
  24. end
  25. obs.source_list_release(scenes)
  26. return props
  27. end
  28. function script_description()
  29. return "Adds the ability to pause recording when switching to a specific scene"
  30. end
  31. function script_update(settings)
  32. pause_scene = obs.obs_data_get_string(settings, "pause_scene")
  33. end
  34. function script_load(settings)
  35. obs.obs_frontend_add_event_callback(on_event)
  36. end