diff --git a/package-lock.json b/package-lock.json
index 1e9cbf3f9..542117e7f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "firebotv5",
- "version": "5.66.1",
+ "version": "5.66.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "firebotv5",
- "version": "5.66.1",
+ "version": "5.66.2",
"license": "GPL-3.0",
"dependencies": {
"@aws-sdk/client-polly": "^3.26.0",
@@ -88,7 +88,7 @@
"@types/escape-html": "^1.0.4",
"@types/express": "^5.0.5",
"@types/luxon": "^3.7.1",
- "@types/node": "^22.18.0",
+ "@types/node": "^24.1.0",
"@types/roll": "^1.2.3",
"@types/sprintf-js": "^1.1.4",
"@types/unzipper": "^0.10.11",
@@ -3085,14 +3085,20 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "22.18.0",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.0.tgz",
- "integrity": "sha512-m5ObIqwsUp6BZzyiy4RdZpzWGub9bqLJMvZDD0QMXhxjqMHMENlj+SqF5QxoUwaQNFe+8kz8XM8ZQhqkQPTgMQ==",
+ "version": "24.1.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz",
+ "integrity": "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==",
"license": "MIT",
"dependencies": {
- "undici-types": "~6.21.0"
+ "undici-types": "~7.8.0"
}
},
+ "node_modules/@types/node/node_modules/undici-types": {
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz",
+ "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==",
+ "license": "MIT"
+ },
"node_modules/@types/qs": {
"version": "6.14.0",
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz",
diff --git a/package.json b/package.json
index a23311a6f..c30da2cdd 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "firebotv5",
- "version": "5.66.1",
+ "version": "5.66.2",
"description": "Powerful all-in-one bot for Twitch streamers.",
"main": "build/main.js",
"scripts": {
@@ -29,7 +29,7 @@
"@types/escape-html": "^1.0.4",
"@types/express": "^5.0.5",
"@types/luxon": "^3.7.1",
- "@types/node": "^22.18.0",
+ "@types/node": "^24.1.0",
"@types/roll": "^1.2.3",
"@types/sprintf-js": "^1.1.4",
"@types/unzipper": "^0.10.11",
diff --git a/src/backend/common/effect-run-mode-handler.ts b/src/backend/common/effect-run-mode-handler.ts
index 5fa042c45..cfe926fba 100644
--- a/src/backend/common/effect-run-mode-handler.ts
+++ b/src/backend/common/effect-run-mode-handler.ts
@@ -30,7 +30,7 @@ function getEntryFromCache(effectListId: string, effectIds: string[], cache: Eff
if (!cacheEntry) {
// we don't have a preexisting queue in the cache, create a new one
cacheEntry = {
- queue: shuffleArray(effectIds),
+ queue: shuffle ? shuffleArray(effectIds) : effectIds,
currentEffectIds: effectIds
};
@@ -174,4 +174,3 @@ export function resolveEffectsForExecution(effectList: EffectList): EffectInstan
}
return [];
}
-
diff --git a/src/backend/variables/builtin/utility/files-in-directory.ts b/src/backend/variables/builtin/utility/files-in-directory.ts
index 7dcc4f314..34354cb88 100644
--- a/src/backend/variables/builtin/utility/files-in-directory.ts
+++ b/src/backend/variables/builtin/utility/files-in-directory.ts
@@ -31,13 +31,13 @@ const model : ReplaceVariable = {
if (typeof filter !== 'string') {
return fileList
- .map(dirent => resolve(join(dirent.path, sep, dirent.name)));
+ .map(dirent => resolve(join(dirent.parentPath, sep, dirent.name)));
}
const regexFilter = new RegExp(filter, flags);
return fileList
.filter(dirent => regexFilter.test(dirent.name))
- .map(dirent => resolve(join(dirent.path, sep, dirent.name)));
+ .map(dirent => resolve(join(dirent.parentPath, sep, dirent.name)));
} catch {}
return [];
diff --git a/src/gui/app/controllers/power-ups-and-rewards.controller.js b/src/gui/app/controllers/power-ups-and-rewards.controller.js
index 832bbcc3b..1d86e9413 100644
--- a/src/gui/app/controllers/power-ups-and-rewards.controller.js
+++ b/src/gui/app/controllers/power-ups-and-rewards.controller.js
@@ -8,11 +8,14 @@
channelRewardsService,
powerUpsService,
utilityService,
- accountAccess
+ accountAccess,
+ settingsService
) {
$scope.channelRewardsService = channelRewardsService;
$scope.powerUpsService = powerUpsService;
+ $scope.activeTab = settingsService.getSetting("DefaultRewardTab");
+
$scope.canUseChannelRewards = () => accountAccess.accounts["streamer"].loggedIn
&& (channelRewardsService.userIsEligible);
diff --git a/src/gui/app/directives/settings/categories/general-settings.js b/src/gui/app/directives/settings/categories/general-settings.js
index 9d45ed871..fd81d6a3c 100644
--- a/src/gui/app/directives/settings/categories/general-settings.js
+++ b/src/gui/app/directives/settings/categories/general-settings.js
@@ -192,6 +192,20 @@
accessibility-label="(settings.getSetting('OpenStreamPreviewOnLaunch') ? 'Enabled' : 'Disabled') + ' Stream Preview on Launch'"
/>
+
+
+
+
`,
controller: function ($rootScope, $scope, soundService, settingsService, $q) {
diff --git a/src/gui/app/templates/_power-ups-and-rewards.html b/src/gui/app/templates/_power-ups-and-rewards.html
index 076d1e973..b26c55cf6 100644
--- a/src/gui/app/templates/_power-ups-and-rewards.html
+++ b/src/gui/app/templates/_power-ups-and-rewards.html
@@ -1,7 +1,6 @@
diff --git a/src/types/settings.ts b/src/types/settings.ts
index f58cf573a..ff28483f8 100644
--- a/src/types/settings.ts
+++ b/src/types/settings.ts
@@ -65,6 +65,7 @@ export type FirebotSettingsTypes = {
DebugMode: boolean;
DefaultEffectLabelsEnabled: boolean;
DefaultModerationUser: "streamer" | "bot";
+ DefaultRewardTab: "powerups" | "rewards" | "queue";
DefaultToAdvancedCommandMode: boolean;
DefaultTtsVoiceId: string;
DeleteProfile: string;
@@ -202,6 +203,7 @@ export const FirebotSettingsDefaults: FirebotSettingsTypes = {
DebugMode: false,
DefaultEffectLabelsEnabled: true,
DefaultModerationUser: "streamer",
+ DefaultRewardTab: "powerups",
DefaultToAdvancedCommandMode: false,
DefaultTtsVoiceId: undefined,
DeleteProfile: undefined,