From d44e6d31f5eddf08a647c89ae60b2ee1ec06bc9e Mon Sep 17 00:00:00 2001 From: nutty Date: Thu, 27 Aug 2026 14:51:57 +1000 Subject: [PATCH] Added "Skip Fourthwall Free Orders" setting --- horizontal-chat/script.js | 5 +++++ horizontal-chat/settings/settings.json | 9 +++++++++ multichat-overlay/script.js | 5 +++++ multichat-overlay/settings/settings.json | 9 +++++++++ multistream-alerts/script.js | 5 +++++ multistream-alerts/settings/settings.json | 9 +++++++++ 6 files changed, 42 insertions(+) diff --git a/horizontal-chat/script.js b/horizontal-chat/script.js index c2730a5..23ef007 100644 --- a/horizontal-chat/script.js +++ b/horizontal-chat/script.js @@ -75,6 +75,7 @@ const showPatreonMemberships = GetBooleanParam("showPatreonMemberships", true); const showKofiDonations = GetBooleanParam("showKofiDonations", true); const showTipeeeStreamDonations = GetBooleanParam("showTipeeeStreamDonations", true); const showFourthwallAlerts = GetBooleanParam("showFourthwallAlerts", true); +const skipFourthwallFreeOrders = GetBooleanParam("skipFourthwallFreeOrders", true); const furryMode = GetBooleanParam("furryMode", false); @@ -1198,6 +1199,10 @@ function FourthwallOrderPlaced(data) { const item = data.variants[0].name; const itemsOrdered = data.variants.length; + // Skip free orders if the user has chosen to do so + if (skipFourthwallFreeOrders && orderTotal == 0) + return; + let message = ""; // If there user did not provide a username, just say "Someone" diff --git a/horizontal-chat/settings/settings.json b/horizontal-chat/settings/settings.json index 7ecd4b6..a99b145 100644 --- a/horizontal-chat/settings/settings.json +++ b/horizontal-chat/settings/settings.json @@ -379,6 +379,15 @@ "defaultValue": true, "group": "Which donation messages do you want to see?" }, + { + "id": "skipFourthwallFreeOrders", + "label": "Skip Free Orders", + "description": "If enabled, free orders from Fourthwall will be skipped.", + "type": "checkbox", + "defaultValue": true, + "showIf": "showFourthwallAlerts", + "group": "Which donation messages do you want to see?" + }, { "id": "furryMode", "label": "Furry Mode", diff --git a/multichat-overlay/script.js b/multichat-overlay/script.js index 37f267d..b731db9 100644 --- a/multichat-overlay/script.js +++ b/multichat-overlay/script.js @@ -82,6 +82,7 @@ const showPatreonMemberships = GetBooleanParam("showPatreonMemberships", true); const showKofiDonations = GetBooleanParam("showKofiDonations", true); const showTipeeeStreamDonations = GetBooleanParam("showTipeeeStreamDonations", true); const showFourthwallAlerts = GetBooleanParam("showFourthwallAlerts", true); +const skipFourthwallFreeOrders = GetBooleanParam("skipFourthwallFreeOrders", true); const furryMode = GetBooleanParam("furryMode", false); @@ -2045,6 +2046,10 @@ function FourthwallOrderPlaced(data) { const itemImageUrl = data.variants[0].image; const fourthwallProductImage = ``; + // Skip free orders if the user has chosen to do so + if (skipFourthwallFreeOrders && orderTotal == 0) + return; + avatarDiv.innerHTML = fourthwallProductImage; let contents = ""; diff --git a/multichat-overlay/settings/settings.json b/multichat-overlay/settings/settings.json index 3c73b97..fee2d12 100644 --- a/multichat-overlay/settings/settings.json +++ b/multichat-overlay/settings/settings.json @@ -517,6 +517,15 @@ "defaultValue": true, "group": "Which donation messages do you want to see?" }, + { + "id": "skipFourthwallFreeOrders", + "label": "Skip Free Orders", + "description": "If enabled, free orders from Fourthwall will be skipped.", + "type": "checkbox", + "defaultValue": true, + "showIf": "showFourthwallAlerts", + "group": "Which donation messages do you want to see?" + }, { "id": "furryMode", "label": "Furry Mode", diff --git a/multistream-alerts/script.js b/multistream-alerts/script.js index 4d92bae..7638a4a 100644 --- a/multistream-alerts/script.js +++ b/multistream-alerts/script.js @@ -112,6 +112,7 @@ const showTipeeeStreamDonations = GetBooleanParam("showTipeeeStreamDonations", f const tipeeestreamDonationAction = urlParams.get("tipeeestreamDonationAction") || ""; const showFourthwallAlerts = GetBooleanParam("showFourthwallAlerts", false); const fourthwallAlertAction = urlParams.get("fourthwallAlertAction") || ""; +const skipFourthwallFreeOrders = GetBooleanParam("skipFourthwallFreeOrders", true); //////////////////// // HIDDEN OPTIONS // @@ -1124,6 +1125,10 @@ function FourthwallOrderPlaced(data) { const message = DecodeHTMLString(data.statmessageus); const itemImageUrl = data.variants[0].image; + // Skip free orders if the user has chosen to do so + if (skipFourthwallFreeOrders && orderTotal == 0) + return; + // If there user did not provide a username, just say "Someone" if (user == undefined) user = "Someone"; diff --git a/multistream-alerts/settings/settings.json b/multistream-alerts/settings/settings.json index 49bd7f9..ec19143 100644 --- a/multistream-alerts/settings/settings.json +++ b/multistream-alerts/settings/settings.json @@ -628,6 +628,15 @@ "showIf": "showFourthwallAlerts", "group": "Which donation alerts do you want to see?" }, + { + "id": "skipFourthwallFreeOrders", + "label": "Skip Free Orders", + "description": "If enabled, free orders from Fourthwall will be skipped.", + "type": "checkbox", + "defaultValue": true, + "showIf": "showFourthwallAlerts", + "group": "Which donation alerts do you want to see?" + }, { "id": "address", "label": "IP Address",