diff --git a/package-lock.json b/package-lock.json
index 1f751b2e0..7b57e3fdf 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -97,6 +97,7 @@
"@types/fs-extra": "^11.0.4",
"@types/luxon": "^3.1.0",
"@types/node": "^18.18.2",
+ "@types/uuid": "^10.0.0",
"@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.62.0",
"electron": "^28.2.3",
@@ -2545,6 +2546,12 @@
"resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.8.tgz",
"integrity": "sha512-7axfYN8SW9pWg78NgenHasSproWQee5rzyPVLC9HpaQSDgNArsnKJD88EaMfi4Pl48AyciO3agYCFqpHS1gLpg=="
},
+ "node_modules/@types/uuid": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz",
+ "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==",
+ "dev": true
+ },
"node_modules/@types/ws": {
"version": "8.5.10",
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz",
diff --git a/package.json b/package.json
index 363b43eee..0c3e2b043 100644
--- a/package.json
+++ b/package.json
@@ -25,6 +25,7 @@
"@types/fs-extra": "^11.0.4",
"@types/luxon": "^3.1.0",
"@types/node": "^18.18.2",
+ "@types/uuid": "^10.0.0",
"@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.62.0",
"electron": "^28.2.3",
diff --git a/src/backend/effects/builtin-effect-loader.js b/src/backend/effects/builtin-effect-loader.js
index 2a430d70f..8e75c39ae 100644
--- a/src/backend/effects/builtin-effect-loader.js
+++ b/src/backend/effects/builtin-effect-loader.js
@@ -5,6 +5,7 @@ const effectManager = require("./effectManager");
exports.loadEffects = () => {
[
'active-user-lists',
+ 'activity-feed-alert',
'add-quote',
'api',
'block-unblock',
diff --git a/src/backend/effects/builtin/activity-feed-alert.ts b/src/backend/effects/builtin/activity-feed-alert.ts
new file mode 100644
index 000000000..142105c27
--- /dev/null
+++ b/src/backend/effects/builtin/activity-feed-alert.ts
@@ -0,0 +1,76 @@
+import { EffectType } from "../../../types/effects";
+import { EffectCategory } from "../../../shared/effect-constants";
+import { handleTriggeredEvent } from "../../events/activity-feed-manager";
+
+const effect: EffectType<{
+ message: string;
+ icon: string;
+}> = {
+ definition: {
+ id: "firebot:activity-feed-alert",
+ name: "Activity Feed Alert",
+ description: "Display an alert in Firebot's activity feed",
+ icon: "fad fa-comment-exclamation",
+ categories: [EffectCategory.FUN],
+ dependencies: []
+ },
+ optionsTemplate: `
+ Use this effect to send yourself alerts in Firebot's activity feed.