diff --git a/UI/frontend-plugins/frontend-tools/forms/scripts.ui b/UI/frontend-plugins/frontend-tools/forms/scripts.ui
index 0ac1576be..4625044b5 100644
--- a/UI/frontend-plugins/frontend-tools/forms/scripts.ui
+++ b/UI/frontend-plugins/frontend-tools/forms/scripts.ui
@@ -136,6 +136,13 @@
+ -
+
+
+ Defaults
+
+
+
-
diff --git a/UI/frontend-plugins/frontend-tools/scripts.cpp b/UI/frontend-plugins/frontend-tools/scripts.cpp
index ede1fa42e..f8c3b9e46 100644
--- a/UI/frontend-plugins/frontend-tools/scripts.cpp
+++ b/UI/frontend-plugins/frontend-tools/scripts.cpp
@@ -255,6 +255,22 @@ void ScriptsTool::RefreshLists()
}
}
+void ScriptsTool::SetScriptDefaults(const char *path)
+{
+ for (OBSScript &script : scriptData->scripts) {
+ const char *script_path = obs_script_get_path(script);
+ if (strcmp(script_path, path) == 0) {
+ obs_data_t *settings = obs_script_get_settings(script);
+ obs_data_clear(settings);
+ obs_data_release(settings);
+
+ obs_script_update(script, nullptr);
+ on_reloadScripts_clicked();
+ break;
+ }
+ }
+}
+
void ScriptsTool::on_close_clicked()
{
close();
@@ -433,6 +449,16 @@ void ScriptsTool::on_scripts_currentRowChanged(int row)
ui->description->setText(obs_script_get_description(script));
}
+void ScriptsTool::on_defaults_clicked()
+{
+ QListWidgetItem *item = ui->scripts->currentItem();
+ if (!item)
+ return;
+
+ SetScriptDefaults(
+ item->data(Qt::UserRole).toString().toUtf8().constData());
+}
+
/* ----------------------------------------------------------------- */
extern "C" void FreeScripts()
diff --git a/UI/frontend-plugins/frontend-tools/scripts.hpp b/UI/frontend-plugins/frontend-tools/scripts.hpp
index e6e5560b3..dd7d18b27 100644
--- a/UI/frontend-plugins/frontend-tools/scripts.hpp
+++ b/UI/frontend-plugins/frontend-tools/scripts.hpp
@@ -37,6 +37,7 @@ public:
void RemoveScript(const char *path);
void ReloadScript(const char *path);
void RefreshLists();
+ void SetScriptDefaults(const char *path);
public slots:
void on_close_clicked();
@@ -45,6 +46,7 @@ public slots:
void on_removeScripts_clicked();
void on_reloadScripts_clicked();
void on_scriptLog_clicked();
+ void on_defaults_clicked();
void on_scripts_currentRowChanged(int row);