From c83a3f6f506bb12216dca038701100fdad105419 Mon Sep 17 00:00:00 2001
From: Dev <dev@dev.sp-tarkov.com>
Date: Sat, 17 Aug 2024 21:00:27 +0100
Subject: [PATCH] 3.6.9

---
 README.md                                                 | 2 +-
 TypeScript/10ScopesAndTypes/types/di/Serializer.d.ts      | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 TypeScript/10ScopesAndTypes/types/helpers/ItemHelper.d.ts | 8 +++++++-
 .../10ScopesAndTypes/types/helpers/ProfileHelper.d.ts     | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 TypeScript/10ScopesAndTypes/types/routers/HttpRouter.d.ts | 1 -
 .../10ScopesAndTypes/types/routers/ImageRouter.d.ts       | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 TypeScript/10ScopesAndTypes/types/servers/HttpServer.d.ts | 1 -
 .../10ScopesAndTypes/types/servers/WebSocketServer.d.ts   | 1 -
 .../types/servers/http/IHttpListener.d.ts                 | 1 -
 .../types/servers/http/SptHttpListener.d.ts               | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../10ScopesAndTypes/types/services/InsuranceService.d.ts | 4 +++-
 .../types/services/RagfairTaxService.d.ts                 | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 TypeScript/10ScopesAndTypes/types/utils/HashUtil.d.ts     | 2 --
 TypeScript/10ScopesAndTypes/types/utils/HttpFileUtil.d.ts | 1 -
 TypeScript/10ScopesAndTypes/types/utils/ObjectId.d.ts     | 1 -
 TypeScript/10ScopesAndTypes/types/utils/VFS.d.ts          | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 TypeScript/11BundleLoadingSample/types/di/Serializer.d.ts | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 .../11BundleLoadingSample/types/helpers/ItemHelper.d.ts   | 8 +++++++-
 .../types/helpers/ProfileHelper.d.ts                      | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 .../11BundleLoadingSample/types/routers/HttpRouter.d.ts   | 1 -
 .../11BundleLoadingSample/types/routers/ImageRouter.d.ts  | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 .../11BundleLoadingSample/types/servers/HttpServer.d.ts   | 1 -
 .../types/servers/WebSocketServer.d.ts                    | 1 -
 .../types/servers/http/IHttpListener.d.ts                 | 1 -
 .../types/servers/http/SptHttpListener.d.ts               | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../types/services/InsuranceService.d.ts                  | 4 +++-
 .../types/services/RagfairTaxService.d.ts                 | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 .../11BundleLoadingSample/types/utils/HashUtil.d.ts       | 2 --
 .../11BundleLoadingSample/types/utils/HttpFileUtil.d.ts   | 1 -
 .../11BundleLoadingSample/types/utils/ObjectId.d.ts       | 1 -
 TypeScript/11BundleLoadingSample/types/utils/VFS.d.ts     | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 .../12ClassExtensionOverride/types/di/Serializer.d.ts     | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 .../types/helpers/ItemHelper.d.ts                         | 8 +++++++-
 .../types/helpers/ProfileHelper.d.ts                      | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 .../types/routers/HttpRouter.d.ts                         | 1 -
 .../types/routers/ImageRouter.d.ts                        | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 .../types/servers/HttpServer.d.ts                         | 1 -
 .../types/servers/WebSocketServer.d.ts                    | 1 -
 .../types/servers/http/IHttpListener.d.ts                 | 1 -
 .../types/servers/http/SptHttpListener.d.ts               | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../types/services/InsuranceService.d.ts                  | 4 +++-
 .../types/services/RagfairTaxService.d.ts                 | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 .../12ClassExtensionOverride/types/utils/HashUtil.d.ts    | 2 --
 .../types/utils/HttpFileUtil.d.ts                         | 1 -
 .../12ClassExtensionOverride/types/utils/ObjectId.d.ts    | 1 -
 TypeScript/12ClassExtensionOverride/types/utils/VFS.d.ts  | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 .../13.1AddTraderWithAssortJSON/types/di/Serializer.d.ts  | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 .../types/helpers/ItemHelper.d.ts                         | 8 +++++++-
 .../types/helpers/ProfileHelper.d.ts                      | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 .../types/routers/HttpRouter.d.ts                         | 1 -
 .../types/routers/ImageRouter.d.ts                        | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 .../types/servers/HttpServer.d.ts                         | 1 -
 .../types/servers/WebSocketServer.d.ts                    | 1 -
 .../types/servers/http/IHttpListener.d.ts                 | 1 -
 .../types/servers/http/SptHttpListener.d.ts               | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../types/services/InsuranceService.d.ts                  | 4 +++-
 .../types/services/RagfairTaxService.d.ts                 | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 .../13.1AddTraderWithAssortJSON/types/utils/HashUtil.d.ts | 2 --
 .../types/utils/HttpFileUtil.d.ts                         | 1 -
 .../13.1AddTraderWithAssortJSON/types/utils/ObjectId.d.ts | 1 -
 .../13.1AddTraderWithAssortJSON/types/utils/VFS.d.ts      | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 TypeScript/13AddTrader/types/di/Serializer.d.ts           | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 TypeScript/13AddTrader/types/helpers/ItemHelper.d.ts      | 8 +++++++-
 TypeScript/13AddTrader/types/helpers/ProfileHelper.d.ts   | 8 ++++++++
 .../13AddTrader/types/models/external/HttpFramework.d.ts  | 5 +++--
 TypeScript/13AddTrader/types/routers/HttpRouter.d.ts      | 1 -
 TypeScript/13AddTrader/types/routers/ImageRouter.d.ts     | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 TypeScript/13AddTrader/types/servers/HttpServer.d.ts      | 1 -
 TypeScript/13AddTrader/types/servers/WebSocketServer.d.ts | 1 -
 .../13AddTrader/types/servers/http/IHttpListener.d.ts     | 1 -
 .../13AddTrader/types/servers/http/SptHttpListener.d.ts   | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../13AddTrader/types/services/InsuranceService.d.ts      | 4 +++-
 .../13AddTrader/types/services/RagfairTaxService.d.ts     | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 TypeScript/13AddTrader/types/utils/HashUtil.d.ts          | 2 --
 TypeScript/13AddTrader/types/utils/HttpFileUtil.d.ts      | 1 -
 TypeScript/13AddTrader/types/utils/ObjectId.d.ts          | 1 -
 TypeScript/13AddTrader/types/utils/VFS.d.ts               | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 TypeScript/14AfterDBLoadHook/types/di/Serializer.d.ts     | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 .../14AfterDBLoadHook/types/helpers/ItemHelper.d.ts       | 8 +++++++-
 .../14AfterDBLoadHook/types/helpers/ProfileHelper.d.ts    | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 .../14AfterDBLoadHook/types/routers/HttpRouter.d.ts       | 1 -
 .../14AfterDBLoadHook/types/routers/ImageRouter.d.ts      | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 .../14AfterDBLoadHook/types/servers/HttpServer.d.ts       | 1 -
 .../14AfterDBLoadHook/types/servers/WebSocketServer.d.ts  | 1 -
 .../types/servers/http/IHttpListener.d.ts                 | 1 -
 .../types/servers/http/SptHttpListener.d.ts               | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../types/services/InsuranceService.d.ts                  | 4 +++-
 .../types/services/RagfairTaxService.d.ts                 | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 TypeScript/14AfterDBLoadHook/types/utils/HashUtil.d.ts    | 2 --
 .../14AfterDBLoadHook/types/utils/HttpFileUtil.d.ts       | 1 -
 TypeScript/14AfterDBLoadHook/types/utils/ObjectId.d.ts    | 1 -
 TypeScript/14AfterDBLoadHook/types/utils/VFS.d.ts         | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 TypeScript/15HttpListenerExample/types/di/Serializer.d.ts | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 .../15HttpListenerExample/types/helpers/ItemHelper.d.ts   | 8 +++++++-
 .../types/helpers/ProfileHelper.d.ts                      | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 .../15HttpListenerExample/types/routers/HttpRouter.d.ts   | 1 -
 .../15HttpListenerExample/types/routers/ImageRouter.d.ts  | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 .../15HttpListenerExample/types/servers/HttpServer.d.ts   | 1 -
 .../types/servers/WebSocketServer.d.ts                    | 1 -
 .../types/servers/http/IHttpListener.d.ts                 | 1 -
 .../types/servers/http/SptHttpListener.d.ts               | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../types/services/InsuranceService.d.ts                  | 4 +++-
 .../types/services/RagfairTaxService.d.ts                 | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 .../15HttpListenerExample/types/utils/HashUtil.d.ts       | 2 --
 .../15HttpListenerExample/types/utils/HttpFileUtil.d.ts   | 1 -
 .../15HttpListenerExample/types/utils/ObjectId.d.ts       | 1 -
 TypeScript/15HttpListenerExample/types/utils/VFS.d.ts     | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 TypeScript/16ImporterUtil/types/di/Serializer.d.ts        | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 TypeScript/16ImporterUtil/types/helpers/ItemHelper.d.ts   | 8 +++++++-
 .../16ImporterUtil/types/helpers/ProfileHelper.d.ts       | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 TypeScript/16ImporterUtil/types/routers/HttpRouter.d.ts   | 1 -
 TypeScript/16ImporterUtil/types/routers/ImageRouter.d.ts  | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 TypeScript/16ImporterUtil/types/servers/HttpServer.d.ts   | 1 -
 .../16ImporterUtil/types/servers/WebSocketServer.d.ts     | 1 -
 .../16ImporterUtil/types/servers/http/IHttpListener.d.ts  | 1 -
 .../types/servers/http/SptHttpListener.d.ts               | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../16ImporterUtil/types/services/InsuranceService.d.ts   | 4 +++-
 .../16ImporterUtil/types/services/RagfairTaxService.d.ts  | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 TypeScript/16ImporterUtil/types/utils/HashUtil.d.ts       | 2 --
 TypeScript/16ImporterUtil/types/utils/HttpFileUtil.d.ts   | 1 -
 TypeScript/16ImporterUtil/types/utils/ObjectId.d.ts       | 1 -
 TypeScript/16ImporterUtil/types/utils/VFS.d.ts            | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 .../types/di/Serializer.d.ts                              | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 .../types/helpers/ItemHelper.d.ts                         | 8 +++++++-
 .../types/helpers/ProfileHelper.d.ts                      | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 .../types/routers/HttpRouter.d.ts                         | 1 -
 .../types/routers/ImageRouter.d.ts                        | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 .../types/servers/HttpServer.d.ts                         | 1 -
 .../types/servers/WebSocketServer.d.ts                    | 1 -
 .../types/servers/http/IHttpListener.d.ts                 | 1 -
 .../types/servers/http/SptHttpListener.d.ts               | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../types/services/InsuranceService.d.ts                  | 4 +++-
 .../types/services/RagfairTaxService.d.ts                 | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 .../types/utils/HashUtil.d.ts                             | 2 --
 .../types/utils/HttpFileUtil.d.ts                         | 1 -
 .../types/utils/ObjectId.d.ts                             | 1 -
 .../17AsyncImporterWithDependency1/types/utils/VFS.d.ts   | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 .../types/di/Serializer.d.ts                              | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 .../types/helpers/ItemHelper.d.ts                         | 8 +++++++-
 .../types/helpers/ProfileHelper.d.ts                      | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 .../types/routers/HttpRouter.d.ts                         | 1 -
 .../types/routers/ImageRouter.d.ts                        | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 .../types/servers/HttpServer.d.ts                         | 1 -
 .../types/servers/WebSocketServer.d.ts                    | 1 -
 .../types/servers/http/IHttpListener.d.ts                 | 1 -
 .../types/servers/http/SptHttpListener.d.ts               | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../types/services/InsuranceService.d.ts                  | 4 +++-
 .../types/services/RagfairTaxService.d.ts                 | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 .../types/utils/HashUtil.d.ts                             | 2 --
 .../types/utils/HttpFileUtil.d.ts                         | 1 -
 .../types/utils/ObjectId.d.ts                             | 1 -
 .../17AsyncImporterWithDependency2/types/utils/VFS.d.ts   | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 .../18.1CustomItemServiceLootBox/types/di/Serializer.d.ts | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 .../types/helpers/ItemHelper.d.ts                         | 8 +++++++-
 .../types/helpers/ProfileHelper.d.ts                      | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 .../types/routers/HttpRouter.d.ts                         | 1 -
 .../types/routers/ImageRouter.d.ts                        | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 .../types/servers/HttpServer.d.ts                         | 1 -
 .../types/servers/WebSocketServer.d.ts                    | 1 -
 .../types/servers/http/IHttpListener.d.ts                 | 1 -
 .../types/servers/http/SptHttpListener.d.ts               | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../types/services/InsuranceService.d.ts                  | 4 +++-
 .../types/services/RagfairTaxService.d.ts                 | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 .../types/utils/HashUtil.d.ts                             | 2 --
 .../types/utils/HttpFileUtil.d.ts                         | 1 -
 .../types/utils/ObjectId.d.ts                             | 1 -
 .../18.1CustomItemServiceLootBox/types/utils/VFS.d.ts     | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 TypeScript/18CustomItemService/types/di/Serializer.d.ts   | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 .../18CustomItemService/types/helpers/ItemHelper.d.ts     | 8 +++++++-
 .../18CustomItemService/types/helpers/ProfileHelper.d.ts  | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 .../18CustomItemService/types/routers/HttpRouter.d.ts     | 1 -
 .../18CustomItemService/types/routers/ImageRouter.d.ts    | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 .../18CustomItemService/types/servers/HttpServer.d.ts     | 1 -
 .../types/servers/WebSocketServer.d.ts                    | 1 -
 .../types/servers/http/IHttpListener.d.ts                 | 1 -
 .../types/servers/http/SptHttpListener.d.ts               | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../types/services/InsuranceService.d.ts                  | 4 +++-
 .../types/services/RagfairTaxService.d.ts                 | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 TypeScript/18CustomItemService/types/utils/HashUtil.d.ts  | 2 --
 .../18CustomItemService/types/utils/HttpFileUtil.d.ts     | 1 -
 TypeScript/18CustomItemService/types/utils/ObjectId.d.ts  | 1 -
 TypeScript/18CustomItemService/types/utils/VFS.d.ts       | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 .../19UseExternalLibraries/types/di/Serializer.d.ts       | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 .../19UseExternalLibraries/types/helpers/ItemHelper.d.ts  | 8 +++++++-
 .../types/helpers/ProfileHelper.d.ts                      | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 .../19UseExternalLibraries/types/routers/HttpRouter.d.ts  | 1 -
 .../19UseExternalLibraries/types/routers/ImageRouter.d.ts | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 .../19UseExternalLibraries/types/servers/HttpServer.d.ts  | 1 -
 .../types/servers/WebSocketServer.d.ts                    | 1 -
 .../types/servers/http/IHttpListener.d.ts                 | 1 -
 .../types/servers/http/SptHttpListener.d.ts               | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../types/services/InsuranceService.d.ts                  | 4 +++-
 .../types/services/RagfairTaxService.d.ts                 | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 .../19UseExternalLibraries/types/utils/HashUtil.d.ts      | 2 --
 .../19UseExternalLibraries/types/utils/HttpFileUtil.d.ts  | 1 -
 .../19UseExternalLibraries/types/utils/ObjectId.d.ts      | 1 -
 TypeScript/19UseExternalLibraries/types/utils/VFS.d.ts    | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 TypeScript/1LogToConsole/types/di/Serializer.d.ts         | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 TypeScript/1LogToConsole/types/helpers/ItemHelper.d.ts    | 8 +++++++-
 TypeScript/1LogToConsole/types/helpers/ProfileHelper.d.ts | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 TypeScript/1LogToConsole/types/routers/HttpRouter.d.ts    | 1 -
 TypeScript/1LogToConsole/types/routers/ImageRouter.d.ts   | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 TypeScript/1LogToConsole/types/servers/HttpServer.d.ts    | 1 -
 .../1LogToConsole/types/servers/WebSocketServer.d.ts      | 1 -
 .../1LogToConsole/types/servers/http/IHttpListener.d.ts   | 1 -
 .../1LogToConsole/types/servers/http/SptHttpListener.d.ts | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../1LogToConsole/types/services/InsuranceService.d.ts    | 4 +++-
 .../1LogToConsole/types/services/RagfairTaxService.d.ts   | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 TypeScript/1LogToConsole/types/utils/HashUtil.d.ts        | 2 --
 TypeScript/1LogToConsole/types/utils/HttpFileUtil.d.ts    | 1 -
 TypeScript/1LogToConsole/types/utils/ObjectId.d.ts        | 1 -
 TypeScript/1LogToConsole/types/utils/VFS.d.ts             | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 TypeScript/20CustomChatBot/types/di/Serializer.d.ts       | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 TypeScript/20CustomChatBot/types/helpers/ItemHelper.d.ts  | 8 +++++++-
 .../20CustomChatBot/types/helpers/ProfileHelper.d.ts      | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 TypeScript/20CustomChatBot/types/routers/HttpRouter.d.ts  | 1 -
 TypeScript/20CustomChatBot/types/routers/ImageRouter.d.ts | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 TypeScript/20CustomChatBot/types/servers/HttpServer.d.ts  | 1 -
 .../20CustomChatBot/types/servers/WebSocketServer.d.ts    | 1 -
 .../20CustomChatBot/types/servers/http/IHttpListener.d.ts | 1 -
 .../types/servers/http/SptHttpListener.d.ts               | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../20CustomChatBot/types/services/InsuranceService.d.ts  | 4 +++-
 .../20CustomChatBot/types/services/RagfairTaxService.d.ts | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 TypeScript/20CustomChatBot/types/utils/HashUtil.d.ts      | 2 --
 TypeScript/20CustomChatBot/types/utils/HttpFileUtil.d.ts  | 1 -
 TypeScript/20CustomChatBot/types/utils/ObjectId.d.ts      | 1 -
 TypeScript/20CustomChatBot/types/utils/VFS.d.ts           | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 .../21CustomCommandoCommand/types/di/Serializer.d.ts      | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 .../21CustomCommandoCommand/types/helpers/ItemHelper.d.ts | 8 +++++++-
 .../types/helpers/ProfileHelper.d.ts                      | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 .../21CustomCommandoCommand/types/routers/HttpRouter.d.ts | 1 -
 .../types/routers/ImageRouter.d.ts                        | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 .../21CustomCommandoCommand/types/servers/HttpServer.d.ts | 1 -
 .../types/servers/WebSocketServer.d.ts                    | 1 -
 .../types/servers/http/IHttpListener.d.ts                 | 1 -
 .../types/servers/http/SptHttpListener.d.ts               | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../types/services/InsuranceService.d.ts                  | 4 +++-
 .../types/services/RagfairTaxService.d.ts                 | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 .../21CustomCommandoCommand/types/utils/HashUtil.d.ts     | 2 --
 .../21CustomCommandoCommand/types/utils/HttpFileUtil.d.ts | 1 -
 .../21CustomCommandoCommand/types/utils/ObjectId.d.ts     | 1 -
 TypeScript/21CustomCommandoCommand/types/utils/VFS.d.ts   | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 TypeScript/22CustomSptCommand/types/di/Serializer.d.ts    | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 .../22CustomSptCommand/types/helpers/ItemHelper.d.ts      | 8 +++++++-
 .../22CustomSptCommand/types/helpers/ProfileHelper.d.ts   | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 .../22CustomSptCommand/types/routers/HttpRouter.d.ts      | 1 -
 .../22CustomSptCommand/types/routers/ImageRouter.d.ts     | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 .../22CustomSptCommand/types/servers/HttpServer.d.ts      | 1 -
 .../22CustomSptCommand/types/servers/WebSocketServer.d.ts | 1 -
 .../types/servers/http/IHttpListener.d.ts                 | 1 -
 .../types/servers/http/SptHttpListener.d.ts               | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../types/services/InsuranceService.d.ts                  | 4 +++-
 .../types/services/RagfairTaxService.d.ts                 | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 TypeScript/22CustomSptCommand/types/utils/HashUtil.d.ts   | 2 --
 .../22CustomSptCommand/types/utils/HttpFileUtil.d.ts      | 1 -
 TypeScript/22CustomSptCommand/types/utils/ObjectId.d.ts   | 1 -
 TypeScript/22CustomSptCommand/types/utils/VFS.d.ts        | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 .../23CustomAbstractChatBot/types/di/Serializer.d.ts      | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 .../23CustomAbstractChatBot/types/helpers/ItemHelper.d.ts | 8 +++++++-
 .../types/helpers/ProfileHelper.d.ts                      | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 .../23CustomAbstractChatBot/types/routers/HttpRouter.d.ts | 1 -
 .../types/routers/ImageRouter.d.ts                        | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 .../23CustomAbstractChatBot/types/servers/HttpServer.d.ts | 1 -
 .../types/servers/WebSocketServer.d.ts                    | 1 -
 .../types/servers/http/IHttpListener.d.ts                 | 1 -
 .../types/servers/http/SptHttpListener.d.ts               | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../types/services/InsuranceService.d.ts                  | 4 +++-
 .../types/services/RagfairTaxService.d.ts                 | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 .../23CustomAbstractChatBot/types/utils/HashUtil.d.ts     | 2 --
 .../23CustomAbstractChatBot/types/utils/HttpFileUtil.d.ts | 1 -
 .../23CustomAbstractChatBot/types/utils/ObjectId.d.ts     | 1 -
 TypeScript/23CustomAbstractChatBot/types/utils/VFS.d.ts   | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 TypeScript/24WebSocket/types/di/Serializer.d.ts           | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 TypeScript/24WebSocket/types/helpers/ItemHelper.d.ts      | 8 +++++++-
 TypeScript/24WebSocket/types/helpers/ProfileHelper.d.ts   | 8 ++++++++
 .../24WebSocket/types/models/external/HttpFramework.d.ts  | 5 +++--
 TypeScript/24WebSocket/types/routers/HttpRouter.d.ts      | 1 -
 TypeScript/24WebSocket/types/routers/ImageRouter.d.ts     | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 TypeScript/24WebSocket/types/servers/HttpServer.d.ts      | 1 -
 TypeScript/24WebSocket/types/servers/WebSocketServer.d.ts | 1 -
 .../24WebSocket/types/servers/http/IHttpListener.d.ts     | 1 -
 .../24WebSocket/types/servers/http/SptHttpListener.d.ts   | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../24WebSocket/types/services/InsuranceService.d.ts      | 4 +++-
 .../24WebSocket/types/services/RagfairTaxService.d.ts     | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 TypeScript/24WebSocket/types/utils/HashUtil.d.ts          | 2 --
 TypeScript/24WebSocket/types/utils/HttpFileUtil.d.ts      | 1 -
 TypeScript/24WebSocket/types/utils/ObjectId.d.ts          | 1 -
 TypeScript/24WebSocket/types/utils/VFS.d.ts               | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 TypeScript/2EditDatabase/types/di/Serializer.d.ts         | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 TypeScript/2EditDatabase/types/helpers/ItemHelper.d.ts    | 8 +++++++-
 TypeScript/2EditDatabase/types/helpers/ProfileHelper.d.ts | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 TypeScript/2EditDatabase/types/routers/HttpRouter.d.ts    | 1 -
 TypeScript/2EditDatabase/types/routers/ImageRouter.d.ts   | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 TypeScript/2EditDatabase/types/servers/HttpServer.d.ts    | 1 -
 .../2EditDatabase/types/servers/WebSocketServer.d.ts      | 1 -
 .../2EditDatabase/types/servers/http/IHttpListener.d.ts   | 1 -
 .../2EditDatabase/types/servers/http/SptHttpListener.d.ts | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../2EditDatabase/types/services/InsuranceService.d.ts    | 4 +++-
 .../2EditDatabase/types/services/RagfairTaxService.d.ts   | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 TypeScript/2EditDatabase/types/utils/HashUtil.d.ts        | 2 --
 TypeScript/2EditDatabase/types/utils/HttpFileUtil.d.ts    | 1 -
 TypeScript/2EditDatabase/types/utils/ObjectId.d.ts        | 1 -
 TypeScript/2EditDatabase/types/utils/VFS.d.ts             | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 TypeScript/3GetSptConfigFile/types/di/Serializer.d.ts     | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 .../3GetSptConfigFile/types/helpers/ItemHelper.d.ts       | 8 +++++++-
 .../3GetSptConfigFile/types/helpers/ProfileHelper.d.ts    | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 .../3GetSptConfigFile/types/routers/HttpRouter.d.ts       | 1 -
 .../3GetSptConfigFile/types/routers/ImageRouter.d.ts      | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 .../3GetSptConfigFile/types/servers/HttpServer.d.ts       | 1 -
 .../3GetSptConfigFile/types/servers/WebSocketServer.d.ts  | 1 -
 .../types/servers/http/IHttpListener.d.ts                 | 1 -
 .../types/servers/http/SptHttpListener.d.ts               | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../types/services/InsuranceService.d.ts                  | 4 +++-
 .../types/services/RagfairTaxService.d.ts                 | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 TypeScript/3GetSptConfigFile/types/utils/HashUtil.d.ts    | 2 --
 .../3GetSptConfigFile/types/utils/HttpFileUtil.d.ts       | 1 -
 TypeScript/3GetSptConfigFile/types/utils/ObjectId.d.ts    | 1 -
 TypeScript/3GetSptConfigFile/types/utils/VFS.d.ts         | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 .../types/di/Serializer.d.ts                              | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 .../types/helpers/ItemHelper.d.ts                         | 8 +++++++-
 .../types/helpers/ProfileHelper.d.ts                      | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 .../types/routers/HttpRouter.d.ts                         | 1 -
 .../types/routers/ImageRouter.d.ts                        | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 .../types/servers/HttpServer.d.ts                         | 1 -
 .../types/servers/WebSocketServer.d.ts                    | 1 -
 .../types/servers/http/IHttpListener.d.ts                 | 1 -
 .../types/servers/http/SptHttpListener.d.ts               | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../types/services/InsuranceService.d.ts                  | 4 +++-
 .../types/services/RagfairTaxService.d.ts                 | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 .../types/utils/HashUtil.d.ts                             | 2 --
 .../types/utils/HttpFileUtil.d.ts                         | 1 -
 .../types/utils/ObjectId.d.ts                             | 1 -
 .../types/utils/VFS.d.ts                                  | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 TypeScript/4UseACustomConfigFile/types/di/Serializer.d.ts | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 .../4UseACustomConfigFile/types/helpers/ItemHelper.d.ts   | 8 +++++++-
 .../types/helpers/ProfileHelper.d.ts                      | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 .../4UseACustomConfigFile/types/routers/HttpRouter.d.ts   | 1 -
 .../4UseACustomConfigFile/types/routers/ImageRouter.d.ts  | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 .../4UseACustomConfigFile/types/servers/HttpServer.d.ts   | 1 -
 .../types/servers/WebSocketServer.d.ts                    | 1 -
 .../types/servers/http/IHttpListener.d.ts                 | 1 -
 .../types/servers/http/SptHttpListener.d.ts               | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../types/services/InsuranceService.d.ts                  | 4 +++-
 .../types/services/RagfairTaxService.d.ts                 | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 .../4UseACustomConfigFile/types/utils/HashUtil.d.ts       | 2 --
 .../4UseACustomConfigFile/types/utils/HttpFileUtil.d.ts   | 1 -
 .../4UseACustomConfigFile/types/utils/ObjectId.d.ts       | 1 -
 TypeScript/4UseACustomConfigFile/types/utils/VFS.d.ts     | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 TypeScript/5ReplaceMethod/types/di/Serializer.d.ts        | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 TypeScript/5ReplaceMethod/types/helpers/ItemHelper.d.ts   | 8 +++++++-
 .../5ReplaceMethod/types/helpers/ProfileHelper.d.ts       | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 TypeScript/5ReplaceMethod/types/routers/HttpRouter.d.ts   | 1 -
 TypeScript/5ReplaceMethod/types/routers/ImageRouter.d.ts  | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 TypeScript/5ReplaceMethod/types/servers/HttpServer.d.ts   | 1 -
 .../5ReplaceMethod/types/servers/WebSocketServer.d.ts     | 1 -
 .../5ReplaceMethod/types/servers/http/IHttpListener.d.ts  | 1 -
 .../types/servers/http/SptHttpListener.d.ts               | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../5ReplaceMethod/types/services/InsuranceService.d.ts   | 4 +++-
 .../5ReplaceMethod/types/services/RagfairTaxService.d.ts  | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 TypeScript/5ReplaceMethod/types/utils/HashUtil.d.ts       | 2 --
 TypeScript/5ReplaceMethod/types/utils/HttpFileUtil.d.ts   | 1 -
 TypeScript/5ReplaceMethod/types/utils/ObjectId.d.ts       | 1 -
 TypeScript/5ReplaceMethod/types/utils/VFS.d.ts            | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 .../6ReferenceAnotherClass/types/di/Serializer.d.ts       | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 .../6ReferenceAnotherClass/types/helpers/ItemHelper.d.ts  | 8 +++++++-
 .../types/helpers/ProfileHelper.d.ts                      | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 .../6ReferenceAnotherClass/types/routers/HttpRouter.d.ts  | 1 -
 .../6ReferenceAnotherClass/types/routers/ImageRouter.d.ts | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 .../6ReferenceAnotherClass/types/servers/HttpServer.d.ts  | 1 -
 .../types/servers/WebSocketServer.d.ts                    | 1 -
 .../types/servers/http/IHttpListener.d.ts                 | 1 -
 .../types/servers/http/SptHttpListener.d.ts               | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../types/services/InsuranceService.d.ts                  | 4 +++-
 .../types/services/RagfairTaxService.d.ts                 | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 .../6ReferenceAnotherClass/types/utils/HashUtil.d.ts      | 2 --
 .../6ReferenceAnotherClass/types/utils/HttpFileUtil.d.ts  | 1 -
 .../6ReferenceAnotherClass/types/utils/ObjectId.d.ts      | 1 -
 TypeScript/6ReferenceAnotherClass/types/utils/VFS.d.ts    | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 TypeScript/7OnLoadHook/types/di/Serializer.d.ts           | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 TypeScript/7OnLoadHook/types/helpers/ItemHelper.d.ts      | 8 +++++++-
 TypeScript/7OnLoadHook/types/helpers/ProfileHelper.d.ts   | 8 ++++++++
 .../7OnLoadHook/types/models/external/HttpFramework.d.ts  | 5 +++--
 TypeScript/7OnLoadHook/types/routers/HttpRouter.d.ts      | 1 -
 TypeScript/7OnLoadHook/types/routers/ImageRouter.d.ts     | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 TypeScript/7OnLoadHook/types/servers/HttpServer.d.ts      | 1 -
 TypeScript/7OnLoadHook/types/servers/WebSocketServer.d.ts | 1 -
 .../7OnLoadHook/types/servers/http/IHttpListener.d.ts     | 1 -
 .../7OnLoadHook/types/servers/http/SptHttpListener.d.ts   | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../7OnLoadHook/types/services/InsuranceService.d.ts      | 4 +++-
 .../7OnLoadHook/types/services/RagfairTaxService.d.ts     | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 TypeScript/7OnLoadHook/types/utils/HashUtil.d.ts          | 2 --
 TypeScript/7OnLoadHook/types/utils/HttpFileUtil.d.ts      | 1 -
 TypeScript/7OnLoadHook/types/utils/ObjectId.d.ts          | 1 -
 TypeScript/7OnLoadHook/types/utils/VFS.d.ts               | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 TypeScript/8OnUpdateHook/types/di/Serializer.d.ts         | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 TypeScript/8OnUpdateHook/types/helpers/ItemHelper.d.ts    | 8 +++++++-
 TypeScript/8OnUpdateHook/types/helpers/ProfileHelper.d.ts | 8 ++++++++
 .../types/models/external/HttpFramework.d.ts              | 5 +++--
 TypeScript/8OnUpdateHook/types/routers/HttpRouter.d.ts    | 1 -
 TypeScript/8OnUpdateHook/types/routers/ImageRouter.d.ts   | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 TypeScript/8OnUpdateHook/types/servers/HttpServer.d.ts    | 1 -
 .../8OnUpdateHook/types/servers/WebSocketServer.d.ts      | 1 -
 .../8OnUpdateHook/types/servers/http/IHttpListener.d.ts   | 1 -
 .../8OnUpdateHook/types/servers/http/SptHttpListener.d.ts | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../8OnUpdateHook/types/services/InsuranceService.d.ts    | 4 +++-
 .../8OnUpdateHook/types/services/RagfairTaxService.d.ts   | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 TypeScript/8OnUpdateHook/types/utils/HashUtil.d.ts        | 2 --
 TypeScript/8OnUpdateHook/types/utils/HttpFileUtil.d.ts    | 1 -
 TypeScript/8OnUpdateHook/types/utils/ObjectId.d.ts        | 1 -
 TypeScript/8OnUpdateHook/types/utils/VFS.d.ts             | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 TypeScript/9RouterHooks/types/di/Serializer.d.ts          | 1 -
 .../types/generators/BotEquipmentModGenerator.d.ts        | 8 ++++++++
 .../types/generators/RepeatableQuestGenerator.d.ts        | 1 +
 TypeScript/9RouterHooks/types/helpers/ItemHelper.d.ts     | 8 +++++++-
 TypeScript/9RouterHooks/types/helpers/ProfileHelper.d.ts  | 8 ++++++++
 .../9RouterHooks/types/models/external/HttpFramework.d.ts | 5 +++--
 TypeScript/9RouterHooks/types/routers/HttpRouter.d.ts     | 1 -
 TypeScript/9RouterHooks/types/routers/ImageRouter.d.ts    | 1 -
 .../types/routers/serializers/BundleSerializer.d.ts       | 1 -
 .../types/routers/serializers/ImageSerializer.d.ts        | 1 -
 .../types/routers/serializers/NotifySerializer.d.ts       | 1 -
 TypeScript/9RouterHooks/types/servers/HttpServer.d.ts     | 1 -
 .../9RouterHooks/types/servers/WebSocketServer.d.ts       | 1 -
 .../9RouterHooks/types/servers/http/IHttpListener.d.ts    | 1 -
 .../9RouterHooks/types/servers/http/SptHttpListener.d.ts  | 2 --
 .../types/servers/ws/IWebSocketConnectionHandler.d.ts     | 1 -
 .../types/servers/ws/SptWebSocketConnectionHandler.d.ts   | 2 --
 .../9RouterHooks/types/services/InsuranceService.d.ts     | 4 +++-
 .../9RouterHooks/types/services/RagfairTaxService.d.ts    | 4 +++-
 .../types/services/mod/httpListener/HttpListenerMod.d.ts  | 1 -
 .../services/mod/httpListener/HttpListenerModService.d.ts | 1 -
 TypeScript/9RouterHooks/types/utils/HashUtil.d.ts         | 2 --
 TypeScript/9RouterHooks/types/utils/HttpFileUtil.d.ts     | 1 -
 TypeScript/9RouterHooks/types/utils/ObjectId.d.ts         | 1 -
 TypeScript/9RouterHooks/types/utils/VFS.d.ts              | 2 --
 .../types/utils/logging/AbstractWinstonLogger.d.ts        | 1 -
 729 files changed, 925 insertions(+), 785 deletions(-)

diff --git a/README.md b/README.md
index 2c7e2e5..f93a1e9 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Mod examples for v3.9.5
+# Mod examples for v3.9.6
 
 A collection of example mods that perform typical actions in SPT
 
diff --git a/TypeScript/10ScopesAndTypes/types/di/Serializer.d.ts b/TypeScript/10ScopesAndTypes/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/10ScopesAndTypes/types/di/Serializer.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/10ScopesAndTypes/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/10ScopesAndTypes/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/10ScopesAndTypes/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/10ScopesAndTypes/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/10ScopesAndTypes/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/10ScopesAndTypes/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/10ScopesAndTypes/types/helpers/ItemHelper.d.ts b/TypeScript/10ScopesAndTypes/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/10ScopesAndTypes/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/10ScopesAndTypes/types/helpers/ProfileHelper.d.ts b/TypeScript/10ScopesAndTypes/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/10ScopesAndTypes/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/10ScopesAndTypes/types/models/external/HttpFramework.d.ts b/TypeScript/10ScopesAndTypes/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/10ScopesAndTypes/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/10ScopesAndTypes/types/routers/HttpRouter.d.ts b/TypeScript/10ScopesAndTypes/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/10ScopesAndTypes/types/routers/HttpRouter.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/10ScopesAndTypes/types/routers/ImageRouter.d.ts b/TypeScript/10ScopesAndTypes/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/10ScopesAndTypes/types/routers/ImageRouter.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/10ScopesAndTypes/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/10ScopesAndTypes/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/10ScopesAndTypes/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/10ScopesAndTypes/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/10ScopesAndTypes/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/10ScopesAndTypes/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/10ScopesAndTypes/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/10ScopesAndTypes/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/10ScopesAndTypes/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/10ScopesAndTypes/types/servers/HttpServer.d.ts b/TypeScript/10ScopesAndTypes/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/10ScopesAndTypes/types/servers/HttpServer.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/10ScopesAndTypes/types/servers/WebSocketServer.d.ts b/TypeScript/10ScopesAndTypes/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/10ScopesAndTypes/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/10ScopesAndTypes/types/servers/http/IHttpListener.d.ts b/TypeScript/10ScopesAndTypes/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/10ScopesAndTypes/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/10ScopesAndTypes/types/servers/http/SptHttpListener.d.ts b/TypeScript/10ScopesAndTypes/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/10ScopesAndTypes/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/10ScopesAndTypes/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/10ScopesAndTypes/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/10ScopesAndTypes/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/10ScopesAndTypes/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/10ScopesAndTypes/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/10ScopesAndTypes/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/10ScopesAndTypes/types/services/InsuranceService.d.ts b/TypeScript/10ScopesAndTypes/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/10ScopesAndTypes/types/services/InsuranceService.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/10ScopesAndTypes/types/services/RagfairTaxService.d.ts b/TypeScript/10ScopesAndTypes/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/10ScopesAndTypes/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/10ScopesAndTypes/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/10ScopesAndTypes/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/10ScopesAndTypes/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/10ScopesAndTypes/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/10ScopesAndTypes/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/10ScopesAndTypes/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/10ScopesAndTypes/types/utils/HashUtil.d.ts b/TypeScript/10ScopesAndTypes/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/10ScopesAndTypes/types/utils/HashUtil.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/10ScopesAndTypes/types/utils/HttpFileUtil.d.ts b/TypeScript/10ScopesAndTypes/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/10ScopesAndTypes/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/10ScopesAndTypes/types/utils/ObjectId.d.ts b/TypeScript/10ScopesAndTypes/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/10ScopesAndTypes/types/utils/ObjectId.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/10ScopesAndTypes/types/utils/VFS.d.ts b/TypeScript/10ScopesAndTypes/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/10ScopesAndTypes/types/utils/VFS.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/10ScopesAndTypes/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/10ScopesAndTypes/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/10ScopesAndTypes/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/10ScopesAndTypes/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/11BundleLoadingSample/types/di/Serializer.d.ts b/TypeScript/11BundleLoadingSample/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/11BundleLoadingSample/types/di/Serializer.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/11BundleLoadingSample/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/11BundleLoadingSample/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/11BundleLoadingSample/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/11BundleLoadingSample/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/11BundleLoadingSample/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/11BundleLoadingSample/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/11BundleLoadingSample/types/helpers/ItemHelper.d.ts b/TypeScript/11BundleLoadingSample/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/11BundleLoadingSample/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/11BundleLoadingSample/types/helpers/ProfileHelper.d.ts b/TypeScript/11BundleLoadingSample/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/11BundleLoadingSample/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/11BundleLoadingSample/types/models/external/HttpFramework.d.ts b/TypeScript/11BundleLoadingSample/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/11BundleLoadingSample/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/11BundleLoadingSample/types/routers/HttpRouter.d.ts b/TypeScript/11BundleLoadingSample/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/11BundleLoadingSample/types/routers/HttpRouter.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/11BundleLoadingSample/types/routers/ImageRouter.d.ts b/TypeScript/11BundleLoadingSample/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/11BundleLoadingSample/types/routers/ImageRouter.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/11BundleLoadingSample/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/11BundleLoadingSample/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/11BundleLoadingSample/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/11BundleLoadingSample/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/11BundleLoadingSample/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/11BundleLoadingSample/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/11BundleLoadingSample/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/11BundleLoadingSample/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/11BundleLoadingSample/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/11BundleLoadingSample/types/servers/HttpServer.d.ts b/TypeScript/11BundleLoadingSample/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/11BundleLoadingSample/types/servers/HttpServer.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/11BundleLoadingSample/types/servers/WebSocketServer.d.ts b/TypeScript/11BundleLoadingSample/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/11BundleLoadingSample/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/11BundleLoadingSample/types/servers/http/IHttpListener.d.ts b/TypeScript/11BundleLoadingSample/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/11BundleLoadingSample/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/11BundleLoadingSample/types/servers/http/SptHttpListener.d.ts b/TypeScript/11BundleLoadingSample/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/11BundleLoadingSample/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/11BundleLoadingSample/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/11BundleLoadingSample/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/11BundleLoadingSample/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/11BundleLoadingSample/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/11BundleLoadingSample/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/11BundleLoadingSample/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/11BundleLoadingSample/types/services/InsuranceService.d.ts b/TypeScript/11BundleLoadingSample/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/11BundleLoadingSample/types/services/InsuranceService.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/11BundleLoadingSample/types/services/RagfairTaxService.d.ts b/TypeScript/11BundleLoadingSample/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/11BundleLoadingSample/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/11BundleLoadingSample/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/11BundleLoadingSample/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/11BundleLoadingSample/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/11BundleLoadingSample/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/11BundleLoadingSample/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/11BundleLoadingSample/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/11BundleLoadingSample/types/utils/HashUtil.d.ts b/TypeScript/11BundleLoadingSample/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/11BundleLoadingSample/types/utils/HashUtil.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/11BundleLoadingSample/types/utils/HttpFileUtil.d.ts b/TypeScript/11BundleLoadingSample/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/11BundleLoadingSample/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/11BundleLoadingSample/types/utils/ObjectId.d.ts b/TypeScript/11BundleLoadingSample/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/11BundleLoadingSample/types/utils/ObjectId.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/11BundleLoadingSample/types/utils/VFS.d.ts b/TypeScript/11BundleLoadingSample/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/11BundleLoadingSample/types/utils/VFS.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/11BundleLoadingSample/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/11BundleLoadingSample/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/11BundleLoadingSample/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/11BundleLoadingSample/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/12ClassExtensionOverride/types/di/Serializer.d.ts b/TypeScript/12ClassExtensionOverride/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/12ClassExtensionOverride/types/di/Serializer.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/12ClassExtensionOverride/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/12ClassExtensionOverride/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/12ClassExtensionOverride/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/12ClassExtensionOverride/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/12ClassExtensionOverride/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/12ClassExtensionOverride/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/12ClassExtensionOverride/types/helpers/ItemHelper.d.ts b/TypeScript/12ClassExtensionOverride/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/12ClassExtensionOverride/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/12ClassExtensionOverride/types/helpers/ProfileHelper.d.ts b/TypeScript/12ClassExtensionOverride/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/12ClassExtensionOverride/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/12ClassExtensionOverride/types/models/external/HttpFramework.d.ts b/TypeScript/12ClassExtensionOverride/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/12ClassExtensionOverride/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/12ClassExtensionOverride/types/routers/HttpRouter.d.ts b/TypeScript/12ClassExtensionOverride/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/12ClassExtensionOverride/types/routers/HttpRouter.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/12ClassExtensionOverride/types/routers/ImageRouter.d.ts b/TypeScript/12ClassExtensionOverride/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/12ClassExtensionOverride/types/routers/ImageRouter.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/12ClassExtensionOverride/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/12ClassExtensionOverride/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/12ClassExtensionOverride/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/12ClassExtensionOverride/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/12ClassExtensionOverride/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/12ClassExtensionOverride/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/12ClassExtensionOverride/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/12ClassExtensionOverride/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/12ClassExtensionOverride/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/12ClassExtensionOverride/types/servers/HttpServer.d.ts b/TypeScript/12ClassExtensionOverride/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/12ClassExtensionOverride/types/servers/HttpServer.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/12ClassExtensionOverride/types/servers/WebSocketServer.d.ts b/TypeScript/12ClassExtensionOverride/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/12ClassExtensionOverride/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/12ClassExtensionOverride/types/servers/http/IHttpListener.d.ts b/TypeScript/12ClassExtensionOverride/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/12ClassExtensionOverride/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/12ClassExtensionOverride/types/servers/http/SptHttpListener.d.ts b/TypeScript/12ClassExtensionOverride/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/12ClassExtensionOverride/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/12ClassExtensionOverride/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/12ClassExtensionOverride/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/12ClassExtensionOverride/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/12ClassExtensionOverride/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/12ClassExtensionOverride/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/12ClassExtensionOverride/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/12ClassExtensionOverride/types/services/InsuranceService.d.ts b/TypeScript/12ClassExtensionOverride/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/12ClassExtensionOverride/types/services/InsuranceService.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/12ClassExtensionOverride/types/services/RagfairTaxService.d.ts b/TypeScript/12ClassExtensionOverride/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/12ClassExtensionOverride/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/12ClassExtensionOverride/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/12ClassExtensionOverride/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/12ClassExtensionOverride/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/12ClassExtensionOverride/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/12ClassExtensionOverride/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/12ClassExtensionOverride/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/12ClassExtensionOverride/types/utils/HashUtil.d.ts b/TypeScript/12ClassExtensionOverride/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/12ClassExtensionOverride/types/utils/HashUtil.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/12ClassExtensionOverride/types/utils/HttpFileUtil.d.ts b/TypeScript/12ClassExtensionOverride/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/12ClassExtensionOverride/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/12ClassExtensionOverride/types/utils/ObjectId.d.ts b/TypeScript/12ClassExtensionOverride/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/12ClassExtensionOverride/types/utils/ObjectId.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/12ClassExtensionOverride/types/utils/VFS.d.ts b/TypeScript/12ClassExtensionOverride/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/12ClassExtensionOverride/types/utils/VFS.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/12ClassExtensionOverride/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/12ClassExtensionOverride/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/12ClassExtensionOverride/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/12ClassExtensionOverride/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/di/Serializer.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/di/Serializer.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/helpers/ItemHelper.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/helpers/ProfileHelper.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/models/external/HttpFramework.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/routers/HttpRouter.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/routers/HttpRouter.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/routers/ImageRouter.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/routers/ImageRouter.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/servers/HttpServer.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/servers/HttpServer.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/servers/WebSocketServer.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/servers/http/IHttpListener.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/servers/http/SptHttpListener.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/services/InsuranceService.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/services/InsuranceService.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/services/RagfairTaxService.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/utils/HashUtil.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/utils/HashUtil.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/utils/HttpFileUtil.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/utils/ObjectId.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/utils/ObjectId.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/utils/VFS.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/utils/VFS.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/13.1AddTraderWithAssortJSON/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/13.1AddTraderWithAssortJSON/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/13.1AddTraderWithAssortJSON/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/13.1AddTraderWithAssortJSON/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/13AddTrader/types/di/Serializer.d.ts b/TypeScript/13AddTrader/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/13AddTrader/types/di/Serializer.d.ts
+++ b/TypeScript/13AddTrader/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/13AddTrader/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/13AddTrader/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/13AddTrader/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/13AddTrader/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/13AddTrader/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/13AddTrader/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/13AddTrader/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/13AddTrader/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/13AddTrader/types/helpers/ItemHelper.d.ts b/TypeScript/13AddTrader/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/13AddTrader/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/13AddTrader/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/13AddTrader/types/helpers/ProfileHelper.d.ts b/TypeScript/13AddTrader/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/13AddTrader/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/13AddTrader/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/13AddTrader/types/models/external/HttpFramework.d.ts b/TypeScript/13AddTrader/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/13AddTrader/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/13AddTrader/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/13AddTrader/types/routers/HttpRouter.d.ts b/TypeScript/13AddTrader/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/13AddTrader/types/routers/HttpRouter.d.ts
+++ b/TypeScript/13AddTrader/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/13AddTrader/types/routers/ImageRouter.d.ts b/TypeScript/13AddTrader/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/13AddTrader/types/routers/ImageRouter.d.ts
+++ b/TypeScript/13AddTrader/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/13AddTrader/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/13AddTrader/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/13AddTrader/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/13AddTrader/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/13AddTrader/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/13AddTrader/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/13AddTrader/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/13AddTrader/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/13AddTrader/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/13AddTrader/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/13AddTrader/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/13AddTrader/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/13AddTrader/types/servers/HttpServer.d.ts b/TypeScript/13AddTrader/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/13AddTrader/types/servers/HttpServer.d.ts
+++ b/TypeScript/13AddTrader/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/13AddTrader/types/servers/WebSocketServer.d.ts b/TypeScript/13AddTrader/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/13AddTrader/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/13AddTrader/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/13AddTrader/types/servers/http/IHttpListener.d.ts b/TypeScript/13AddTrader/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/13AddTrader/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/13AddTrader/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/13AddTrader/types/servers/http/SptHttpListener.d.ts b/TypeScript/13AddTrader/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/13AddTrader/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/13AddTrader/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/13AddTrader/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/13AddTrader/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/13AddTrader/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/13AddTrader/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/13AddTrader/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/13AddTrader/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/13AddTrader/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/13AddTrader/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/13AddTrader/types/services/InsuranceService.d.ts b/TypeScript/13AddTrader/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/13AddTrader/types/services/InsuranceService.d.ts
+++ b/TypeScript/13AddTrader/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/13AddTrader/types/services/RagfairTaxService.d.ts b/TypeScript/13AddTrader/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/13AddTrader/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/13AddTrader/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/13AddTrader/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/13AddTrader/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/13AddTrader/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/13AddTrader/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/13AddTrader/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/13AddTrader/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/13AddTrader/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/13AddTrader/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/13AddTrader/types/utils/HashUtil.d.ts b/TypeScript/13AddTrader/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/13AddTrader/types/utils/HashUtil.d.ts
+++ b/TypeScript/13AddTrader/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/13AddTrader/types/utils/HttpFileUtil.d.ts b/TypeScript/13AddTrader/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/13AddTrader/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/13AddTrader/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/13AddTrader/types/utils/ObjectId.d.ts b/TypeScript/13AddTrader/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/13AddTrader/types/utils/ObjectId.d.ts
+++ b/TypeScript/13AddTrader/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/13AddTrader/types/utils/VFS.d.ts b/TypeScript/13AddTrader/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/13AddTrader/types/utils/VFS.d.ts
+++ b/TypeScript/13AddTrader/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/13AddTrader/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/13AddTrader/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/13AddTrader/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/13AddTrader/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/14AfterDBLoadHook/types/di/Serializer.d.ts b/TypeScript/14AfterDBLoadHook/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/14AfterDBLoadHook/types/di/Serializer.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/14AfterDBLoadHook/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/14AfterDBLoadHook/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/14AfterDBLoadHook/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/14AfterDBLoadHook/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/14AfterDBLoadHook/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/14AfterDBLoadHook/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/ItemHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/14AfterDBLoadHook/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/ProfileHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/14AfterDBLoadHook/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/14AfterDBLoadHook/types/models/external/HttpFramework.d.ts b/TypeScript/14AfterDBLoadHook/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/14AfterDBLoadHook/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/14AfterDBLoadHook/types/routers/HttpRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/14AfterDBLoadHook/types/routers/HttpRouter.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/14AfterDBLoadHook/types/routers/ImageRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/14AfterDBLoadHook/types/routers/ImageRouter.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/14AfterDBLoadHook/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/14AfterDBLoadHook/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/14AfterDBLoadHook/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/14AfterDBLoadHook/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/14AfterDBLoadHook/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/14AfterDBLoadHook/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/14AfterDBLoadHook/types/servers/HttpServer.d.ts b/TypeScript/14AfterDBLoadHook/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/14AfterDBLoadHook/types/servers/HttpServer.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/14AfterDBLoadHook/types/servers/WebSocketServer.d.ts b/TypeScript/14AfterDBLoadHook/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/14AfterDBLoadHook/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/14AfterDBLoadHook/types/servers/http/IHttpListener.d.ts b/TypeScript/14AfterDBLoadHook/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/14AfterDBLoadHook/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/14AfterDBLoadHook/types/servers/http/SptHttpListener.d.ts b/TypeScript/14AfterDBLoadHook/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/14AfterDBLoadHook/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/14AfterDBLoadHook/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/14AfterDBLoadHook/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/14AfterDBLoadHook/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/14AfterDBLoadHook/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/14AfterDBLoadHook/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/14AfterDBLoadHook/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/14AfterDBLoadHook/types/services/InsuranceService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/14AfterDBLoadHook/types/services/InsuranceService.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/14AfterDBLoadHook/types/services/RagfairTaxService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/14AfterDBLoadHook/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/14AfterDBLoadHook/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/14AfterDBLoadHook/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/14AfterDBLoadHook/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/14AfterDBLoadHook/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/14AfterDBLoadHook/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/14AfterDBLoadHook/types/utils/HashUtil.d.ts b/TypeScript/14AfterDBLoadHook/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/14AfterDBLoadHook/types/utils/HashUtil.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/14AfterDBLoadHook/types/utils/HttpFileUtil.d.ts b/TypeScript/14AfterDBLoadHook/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/14AfterDBLoadHook/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/14AfterDBLoadHook/types/utils/ObjectId.d.ts b/TypeScript/14AfterDBLoadHook/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/14AfterDBLoadHook/types/utils/ObjectId.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/14AfterDBLoadHook/types/utils/VFS.d.ts b/TypeScript/14AfterDBLoadHook/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/14AfterDBLoadHook/types/utils/VFS.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/14AfterDBLoadHook/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/14AfterDBLoadHook/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/14AfterDBLoadHook/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/14AfterDBLoadHook/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/15HttpListenerExample/types/di/Serializer.d.ts b/TypeScript/15HttpListenerExample/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/15HttpListenerExample/types/di/Serializer.d.ts
+++ b/TypeScript/15HttpListenerExample/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/15HttpListenerExample/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/15HttpListenerExample/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/15HttpListenerExample/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/15HttpListenerExample/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/15HttpListenerExample/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/15HttpListenerExample/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/15HttpListenerExample/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/15HttpListenerExample/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/15HttpListenerExample/types/helpers/ItemHelper.d.ts b/TypeScript/15HttpListenerExample/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/15HttpListenerExample/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/15HttpListenerExample/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/15HttpListenerExample/types/helpers/ProfileHelper.d.ts b/TypeScript/15HttpListenerExample/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/15HttpListenerExample/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/15HttpListenerExample/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/15HttpListenerExample/types/models/external/HttpFramework.d.ts b/TypeScript/15HttpListenerExample/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/15HttpListenerExample/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/15HttpListenerExample/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/15HttpListenerExample/types/routers/HttpRouter.d.ts b/TypeScript/15HttpListenerExample/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/15HttpListenerExample/types/routers/HttpRouter.d.ts
+++ b/TypeScript/15HttpListenerExample/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/15HttpListenerExample/types/routers/ImageRouter.d.ts b/TypeScript/15HttpListenerExample/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/15HttpListenerExample/types/routers/ImageRouter.d.ts
+++ b/TypeScript/15HttpListenerExample/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/15HttpListenerExample/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/15HttpListenerExample/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/15HttpListenerExample/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/15HttpListenerExample/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/15HttpListenerExample/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/15HttpListenerExample/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/15HttpListenerExample/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/15HttpListenerExample/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/15HttpListenerExample/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/15HttpListenerExample/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/15HttpListenerExample/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/15HttpListenerExample/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/15HttpListenerExample/types/servers/HttpServer.d.ts b/TypeScript/15HttpListenerExample/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/15HttpListenerExample/types/servers/HttpServer.d.ts
+++ b/TypeScript/15HttpListenerExample/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/15HttpListenerExample/types/servers/WebSocketServer.d.ts b/TypeScript/15HttpListenerExample/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/15HttpListenerExample/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/15HttpListenerExample/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/15HttpListenerExample/types/servers/http/IHttpListener.d.ts b/TypeScript/15HttpListenerExample/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/15HttpListenerExample/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/15HttpListenerExample/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/15HttpListenerExample/types/servers/http/SptHttpListener.d.ts b/TypeScript/15HttpListenerExample/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/15HttpListenerExample/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/15HttpListenerExample/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/15HttpListenerExample/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/15HttpListenerExample/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/15HttpListenerExample/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/15HttpListenerExample/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/15HttpListenerExample/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/15HttpListenerExample/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/15HttpListenerExample/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/15HttpListenerExample/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/15HttpListenerExample/types/services/InsuranceService.d.ts b/TypeScript/15HttpListenerExample/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/15HttpListenerExample/types/services/InsuranceService.d.ts
+++ b/TypeScript/15HttpListenerExample/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/15HttpListenerExample/types/services/RagfairTaxService.d.ts b/TypeScript/15HttpListenerExample/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/15HttpListenerExample/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/15HttpListenerExample/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/15HttpListenerExample/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/15HttpListenerExample/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/15HttpListenerExample/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/15HttpListenerExample/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/15HttpListenerExample/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/15HttpListenerExample/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/15HttpListenerExample/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/15HttpListenerExample/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/15HttpListenerExample/types/utils/HashUtil.d.ts b/TypeScript/15HttpListenerExample/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/15HttpListenerExample/types/utils/HashUtil.d.ts
+++ b/TypeScript/15HttpListenerExample/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/15HttpListenerExample/types/utils/HttpFileUtil.d.ts b/TypeScript/15HttpListenerExample/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/15HttpListenerExample/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/15HttpListenerExample/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/15HttpListenerExample/types/utils/ObjectId.d.ts b/TypeScript/15HttpListenerExample/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/15HttpListenerExample/types/utils/ObjectId.d.ts
+++ b/TypeScript/15HttpListenerExample/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/15HttpListenerExample/types/utils/VFS.d.ts b/TypeScript/15HttpListenerExample/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/15HttpListenerExample/types/utils/VFS.d.ts
+++ b/TypeScript/15HttpListenerExample/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/15HttpListenerExample/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/15HttpListenerExample/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/15HttpListenerExample/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/15HttpListenerExample/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/16ImporterUtil/types/di/Serializer.d.ts b/TypeScript/16ImporterUtil/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/16ImporterUtil/types/di/Serializer.d.ts
+++ b/TypeScript/16ImporterUtil/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/16ImporterUtil/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/16ImporterUtil/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/16ImporterUtil/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/16ImporterUtil/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/16ImporterUtil/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/16ImporterUtil/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/16ImporterUtil/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/16ImporterUtil/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/16ImporterUtil/types/helpers/ItemHelper.d.ts b/TypeScript/16ImporterUtil/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/16ImporterUtil/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/16ImporterUtil/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/16ImporterUtil/types/helpers/ProfileHelper.d.ts b/TypeScript/16ImporterUtil/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/16ImporterUtil/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/16ImporterUtil/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/16ImporterUtil/types/models/external/HttpFramework.d.ts b/TypeScript/16ImporterUtil/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/16ImporterUtil/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/16ImporterUtil/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/16ImporterUtil/types/routers/HttpRouter.d.ts b/TypeScript/16ImporterUtil/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/16ImporterUtil/types/routers/HttpRouter.d.ts
+++ b/TypeScript/16ImporterUtil/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/16ImporterUtil/types/routers/ImageRouter.d.ts b/TypeScript/16ImporterUtil/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/16ImporterUtil/types/routers/ImageRouter.d.ts
+++ b/TypeScript/16ImporterUtil/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/16ImporterUtil/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/16ImporterUtil/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/16ImporterUtil/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/16ImporterUtil/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/16ImporterUtil/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/16ImporterUtil/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/16ImporterUtil/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/16ImporterUtil/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/16ImporterUtil/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/16ImporterUtil/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/16ImporterUtil/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/16ImporterUtil/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/16ImporterUtil/types/servers/HttpServer.d.ts b/TypeScript/16ImporterUtil/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/16ImporterUtil/types/servers/HttpServer.d.ts
+++ b/TypeScript/16ImporterUtil/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/16ImporterUtil/types/servers/WebSocketServer.d.ts b/TypeScript/16ImporterUtil/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/16ImporterUtil/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/16ImporterUtil/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/16ImporterUtil/types/servers/http/IHttpListener.d.ts b/TypeScript/16ImporterUtil/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/16ImporterUtil/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/16ImporterUtil/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/16ImporterUtil/types/servers/http/SptHttpListener.d.ts b/TypeScript/16ImporterUtil/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/16ImporterUtil/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/16ImporterUtil/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/16ImporterUtil/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/16ImporterUtil/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/16ImporterUtil/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/16ImporterUtil/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/16ImporterUtil/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/16ImporterUtil/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/16ImporterUtil/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/16ImporterUtil/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/16ImporterUtil/types/services/InsuranceService.d.ts b/TypeScript/16ImporterUtil/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/16ImporterUtil/types/services/InsuranceService.d.ts
+++ b/TypeScript/16ImporterUtil/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/16ImporterUtil/types/services/RagfairTaxService.d.ts b/TypeScript/16ImporterUtil/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/16ImporterUtil/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/16ImporterUtil/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/16ImporterUtil/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/16ImporterUtil/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/16ImporterUtil/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/16ImporterUtil/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/16ImporterUtil/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/16ImporterUtil/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/16ImporterUtil/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/16ImporterUtil/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/16ImporterUtil/types/utils/HashUtil.d.ts b/TypeScript/16ImporterUtil/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/16ImporterUtil/types/utils/HashUtil.d.ts
+++ b/TypeScript/16ImporterUtil/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/16ImporterUtil/types/utils/HttpFileUtil.d.ts b/TypeScript/16ImporterUtil/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/16ImporterUtil/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/16ImporterUtil/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/16ImporterUtil/types/utils/ObjectId.d.ts b/TypeScript/16ImporterUtil/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/16ImporterUtil/types/utils/ObjectId.d.ts
+++ b/TypeScript/16ImporterUtil/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/16ImporterUtil/types/utils/VFS.d.ts b/TypeScript/16ImporterUtil/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/16ImporterUtil/types/utils/VFS.d.ts
+++ b/TypeScript/16ImporterUtil/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/16ImporterUtil/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/16ImporterUtil/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/16ImporterUtil/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/16ImporterUtil/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/di/Serializer.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/di/Serializer.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/helpers/ItemHelper.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/helpers/ProfileHelper.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/models/external/HttpFramework.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/routers/HttpRouter.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/routers/HttpRouter.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/routers/ImageRouter.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/routers/ImageRouter.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/servers/HttpServer.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/servers/HttpServer.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/servers/WebSocketServer.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/servers/http/IHttpListener.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/servers/http/SptHttpListener.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/services/InsuranceService.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/services/InsuranceService.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/services/RagfairTaxService.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/utils/HashUtil.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/utils/HashUtil.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/utils/HttpFileUtil.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/utils/ObjectId.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/utils/ObjectId.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/utils/VFS.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/utils/VFS.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/17AsyncImporterWithDependency1/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/17AsyncImporterWithDependency1/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency1/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/di/Serializer.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/di/Serializer.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/helpers/ItemHelper.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/helpers/ProfileHelper.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/models/external/HttpFramework.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/routers/HttpRouter.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/routers/HttpRouter.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/routers/ImageRouter.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/routers/ImageRouter.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/servers/HttpServer.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/servers/HttpServer.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/servers/WebSocketServer.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/servers/http/IHttpListener.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/servers/http/SptHttpListener.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/services/InsuranceService.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/services/InsuranceService.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/services/RagfairTaxService.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/utils/HashUtil.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/utils/HashUtil.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/utils/HttpFileUtil.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/utils/ObjectId.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/utils/ObjectId.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/utils/VFS.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/utils/VFS.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/17AsyncImporterWithDependency2/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/17AsyncImporterWithDependency2/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/17AsyncImporterWithDependency2/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/di/Serializer.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/di/Serializer.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/helpers/ItemHelper.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/helpers/ProfileHelper.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/models/external/HttpFramework.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/routers/HttpRouter.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/routers/HttpRouter.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/routers/ImageRouter.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/routers/ImageRouter.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/servers/HttpServer.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/servers/HttpServer.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/servers/WebSocketServer.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/servers/http/IHttpListener.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/servers/http/SptHttpListener.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/services/InsuranceService.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/services/InsuranceService.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/services/RagfairTaxService.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/utils/HashUtil.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/utils/HashUtil.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/utils/HttpFileUtil.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/utils/ObjectId.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/utils/ObjectId.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/utils/VFS.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/utils/VFS.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/18.1CustomItemServiceLootBox/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/18.1CustomItemServiceLootBox/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/18.1CustomItemServiceLootBox/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/18.1CustomItemServiceLootBox/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/18CustomItemService/types/di/Serializer.d.ts b/TypeScript/18CustomItemService/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/18CustomItemService/types/di/Serializer.d.ts
+++ b/TypeScript/18CustomItemService/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/18CustomItemService/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/18CustomItemService/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/18CustomItemService/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/18CustomItemService/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/18CustomItemService/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/18CustomItemService/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/18CustomItemService/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/18CustomItemService/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/18CustomItemService/types/helpers/ItemHelper.d.ts b/TypeScript/18CustomItemService/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/18CustomItemService/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/18CustomItemService/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/18CustomItemService/types/helpers/ProfileHelper.d.ts b/TypeScript/18CustomItemService/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/18CustomItemService/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/18CustomItemService/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/18CustomItemService/types/models/external/HttpFramework.d.ts b/TypeScript/18CustomItemService/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/18CustomItemService/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/18CustomItemService/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/18CustomItemService/types/routers/HttpRouter.d.ts b/TypeScript/18CustomItemService/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/18CustomItemService/types/routers/HttpRouter.d.ts
+++ b/TypeScript/18CustomItemService/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/18CustomItemService/types/routers/ImageRouter.d.ts b/TypeScript/18CustomItemService/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/18CustomItemService/types/routers/ImageRouter.d.ts
+++ b/TypeScript/18CustomItemService/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/18CustomItemService/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/18CustomItemService/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/18CustomItemService/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/18CustomItemService/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/18CustomItemService/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/18CustomItemService/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/18CustomItemService/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/18CustomItemService/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/18CustomItemService/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/18CustomItemService/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/18CustomItemService/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/18CustomItemService/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/18CustomItemService/types/servers/HttpServer.d.ts b/TypeScript/18CustomItemService/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/18CustomItemService/types/servers/HttpServer.d.ts
+++ b/TypeScript/18CustomItemService/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/18CustomItemService/types/servers/WebSocketServer.d.ts b/TypeScript/18CustomItemService/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/18CustomItemService/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/18CustomItemService/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/18CustomItemService/types/servers/http/IHttpListener.d.ts b/TypeScript/18CustomItemService/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/18CustomItemService/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/18CustomItemService/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/18CustomItemService/types/servers/http/SptHttpListener.d.ts b/TypeScript/18CustomItemService/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/18CustomItemService/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/18CustomItemService/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/18CustomItemService/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/18CustomItemService/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/18CustomItemService/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/18CustomItemService/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/18CustomItemService/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/18CustomItemService/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/18CustomItemService/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/18CustomItemService/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/18CustomItemService/types/services/InsuranceService.d.ts b/TypeScript/18CustomItemService/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/18CustomItemService/types/services/InsuranceService.d.ts
+++ b/TypeScript/18CustomItemService/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/18CustomItemService/types/services/RagfairTaxService.d.ts b/TypeScript/18CustomItemService/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/18CustomItemService/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/18CustomItemService/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/18CustomItemService/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/18CustomItemService/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/18CustomItemService/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/18CustomItemService/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/18CustomItemService/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/18CustomItemService/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/18CustomItemService/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/18CustomItemService/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/18CustomItemService/types/utils/HashUtil.d.ts b/TypeScript/18CustomItemService/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/18CustomItemService/types/utils/HashUtil.d.ts
+++ b/TypeScript/18CustomItemService/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/18CustomItemService/types/utils/HttpFileUtil.d.ts b/TypeScript/18CustomItemService/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/18CustomItemService/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/18CustomItemService/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/18CustomItemService/types/utils/ObjectId.d.ts b/TypeScript/18CustomItemService/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/18CustomItemService/types/utils/ObjectId.d.ts
+++ b/TypeScript/18CustomItemService/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/18CustomItemService/types/utils/VFS.d.ts b/TypeScript/18CustomItemService/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/18CustomItemService/types/utils/VFS.d.ts
+++ b/TypeScript/18CustomItemService/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/18CustomItemService/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/18CustomItemService/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/18CustomItemService/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/18CustomItemService/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/19UseExternalLibraries/types/di/Serializer.d.ts b/TypeScript/19UseExternalLibraries/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/19UseExternalLibraries/types/di/Serializer.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/19UseExternalLibraries/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/19UseExternalLibraries/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/19UseExternalLibraries/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/19UseExternalLibraries/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/19UseExternalLibraries/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/19UseExternalLibraries/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/19UseExternalLibraries/types/helpers/ItemHelper.d.ts b/TypeScript/19UseExternalLibraries/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/19UseExternalLibraries/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/19UseExternalLibraries/types/helpers/ProfileHelper.d.ts b/TypeScript/19UseExternalLibraries/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/19UseExternalLibraries/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/19UseExternalLibraries/types/models/external/HttpFramework.d.ts b/TypeScript/19UseExternalLibraries/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/19UseExternalLibraries/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/19UseExternalLibraries/types/routers/HttpRouter.d.ts b/TypeScript/19UseExternalLibraries/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/19UseExternalLibraries/types/routers/HttpRouter.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/19UseExternalLibraries/types/routers/ImageRouter.d.ts b/TypeScript/19UseExternalLibraries/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/19UseExternalLibraries/types/routers/ImageRouter.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/19UseExternalLibraries/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/19UseExternalLibraries/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/19UseExternalLibraries/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/19UseExternalLibraries/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/19UseExternalLibraries/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/19UseExternalLibraries/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/19UseExternalLibraries/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/19UseExternalLibraries/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/19UseExternalLibraries/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/19UseExternalLibraries/types/servers/HttpServer.d.ts b/TypeScript/19UseExternalLibraries/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/19UseExternalLibraries/types/servers/HttpServer.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/19UseExternalLibraries/types/servers/WebSocketServer.d.ts b/TypeScript/19UseExternalLibraries/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/19UseExternalLibraries/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/19UseExternalLibraries/types/servers/http/IHttpListener.d.ts b/TypeScript/19UseExternalLibraries/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/19UseExternalLibraries/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/19UseExternalLibraries/types/servers/http/SptHttpListener.d.ts b/TypeScript/19UseExternalLibraries/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/19UseExternalLibraries/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/19UseExternalLibraries/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/19UseExternalLibraries/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/19UseExternalLibraries/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/19UseExternalLibraries/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/19UseExternalLibraries/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/19UseExternalLibraries/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/19UseExternalLibraries/types/services/InsuranceService.d.ts b/TypeScript/19UseExternalLibraries/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/19UseExternalLibraries/types/services/InsuranceService.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/19UseExternalLibraries/types/services/RagfairTaxService.d.ts b/TypeScript/19UseExternalLibraries/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/19UseExternalLibraries/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/19UseExternalLibraries/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/19UseExternalLibraries/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/19UseExternalLibraries/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/19UseExternalLibraries/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/19UseExternalLibraries/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/19UseExternalLibraries/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/19UseExternalLibraries/types/utils/HashUtil.d.ts b/TypeScript/19UseExternalLibraries/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/19UseExternalLibraries/types/utils/HashUtil.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/19UseExternalLibraries/types/utils/HttpFileUtil.d.ts b/TypeScript/19UseExternalLibraries/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/19UseExternalLibraries/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/19UseExternalLibraries/types/utils/ObjectId.d.ts b/TypeScript/19UseExternalLibraries/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/19UseExternalLibraries/types/utils/ObjectId.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/19UseExternalLibraries/types/utils/VFS.d.ts b/TypeScript/19UseExternalLibraries/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/19UseExternalLibraries/types/utils/VFS.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/19UseExternalLibraries/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/19UseExternalLibraries/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/19UseExternalLibraries/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/19UseExternalLibraries/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/1LogToConsole/types/di/Serializer.d.ts b/TypeScript/1LogToConsole/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/1LogToConsole/types/di/Serializer.d.ts
+++ b/TypeScript/1LogToConsole/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/1LogToConsole/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/1LogToConsole/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/1LogToConsole/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/1LogToConsole/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/1LogToConsole/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/1LogToConsole/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/1LogToConsole/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/1LogToConsole/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/1LogToConsole/types/helpers/ItemHelper.d.ts b/TypeScript/1LogToConsole/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/1LogToConsole/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/1LogToConsole/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/1LogToConsole/types/helpers/ProfileHelper.d.ts b/TypeScript/1LogToConsole/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/1LogToConsole/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/1LogToConsole/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/1LogToConsole/types/models/external/HttpFramework.d.ts b/TypeScript/1LogToConsole/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/1LogToConsole/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/1LogToConsole/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/1LogToConsole/types/routers/HttpRouter.d.ts b/TypeScript/1LogToConsole/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/1LogToConsole/types/routers/HttpRouter.d.ts
+++ b/TypeScript/1LogToConsole/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/1LogToConsole/types/routers/ImageRouter.d.ts b/TypeScript/1LogToConsole/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/1LogToConsole/types/routers/ImageRouter.d.ts
+++ b/TypeScript/1LogToConsole/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/1LogToConsole/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/1LogToConsole/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/1LogToConsole/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/1LogToConsole/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/1LogToConsole/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/1LogToConsole/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/1LogToConsole/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/1LogToConsole/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/1LogToConsole/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/1LogToConsole/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/1LogToConsole/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/1LogToConsole/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/1LogToConsole/types/servers/HttpServer.d.ts b/TypeScript/1LogToConsole/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/1LogToConsole/types/servers/HttpServer.d.ts
+++ b/TypeScript/1LogToConsole/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/1LogToConsole/types/servers/WebSocketServer.d.ts b/TypeScript/1LogToConsole/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/1LogToConsole/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/1LogToConsole/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/1LogToConsole/types/servers/http/IHttpListener.d.ts b/TypeScript/1LogToConsole/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/1LogToConsole/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/1LogToConsole/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/1LogToConsole/types/servers/http/SptHttpListener.d.ts b/TypeScript/1LogToConsole/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/1LogToConsole/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/1LogToConsole/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/1LogToConsole/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/1LogToConsole/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/1LogToConsole/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/1LogToConsole/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/1LogToConsole/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/1LogToConsole/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/1LogToConsole/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/1LogToConsole/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/1LogToConsole/types/services/InsuranceService.d.ts b/TypeScript/1LogToConsole/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/1LogToConsole/types/services/InsuranceService.d.ts
+++ b/TypeScript/1LogToConsole/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/1LogToConsole/types/services/RagfairTaxService.d.ts b/TypeScript/1LogToConsole/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/1LogToConsole/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/1LogToConsole/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/1LogToConsole/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/1LogToConsole/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/1LogToConsole/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/1LogToConsole/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/1LogToConsole/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/1LogToConsole/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/1LogToConsole/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/1LogToConsole/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/1LogToConsole/types/utils/HashUtil.d.ts b/TypeScript/1LogToConsole/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/1LogToConsole/types/utils/HashUtil.d.ts
+++ b/TypeScript/1LogToConsole/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/1LogToConsole/types/utils/HttpFileUtil.d.ts b/TypeScript/1LogToConsole/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/1LogToConsole/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/1LogToConsole/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/1LogToConsole/types/utils/ObjectId.d.ts b/TypeScript/1LogToConsole/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/1LogToConsole/types/utils/ObjectId.d.ts
+++ b/TypeScript/1LogToConsole/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/1LogToConsole/types/utils/VFS.d.ts b/TypeScript/1LogToConsole/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/1LogToConsole/types/utils/VFS.d.ts
+++ b/TypeScript/1LogToConsole/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/1LogToConsole/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/1LogToConsole/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/1LogToConsole/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/1LogToConsole/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/20CustomChatBot/types/di/Serializer.d.ts b/TypeScript/20CustomChatBot/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/20CustomChatBot/types/di/Serializer.d.ts
+++ b/TypeScript/20CustomChatBot/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/20CustomChatBot/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/20CustomChatBot/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/20CustomChatBot/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/20CustomChatBot/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/20CustomChatBot/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/20CustomChatBot/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/20CustomChatBot/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/20CustomChatBot/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/20CustomChatBot/types/helpers/ItemHelper.d.ts b/TypeScript/20CustomChatBot/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/20CustomChatBot/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/20CustomChatBot/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/20CustomChatBot/types/helpers/ProfileHelper.d.ts b/TypeScript/20CustomChatBot/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/20CustomChatBot/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/20CustomChatBot/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/20CustomChatBot/types/models/external/HttpFramework.d.ts b/TypeScript/20CustomChatBot/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/20CustomChatBot/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/20CustomChatBot/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/20CustomChatBot/types/routers/HttpRouter.d.ts b/TypeScript/20CustomChatBot/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/20CustomChatBot/types/routers/HttpRouter.d.ts
+++ b/TypeScript/20CustomChatBot/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/20CustomChatBot/types/routers/ImageRouter.d.ts b/TypeScript/20CustomChatBot/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/20CustomChatBot/types/routers/ImageRouter.d.ts
+++ b/TypeScript/20CustomChatBot/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/20CustomChatBot/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/20CustomChatBot/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/20CustomChatBot/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/20CustomChatBot/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/20CustomChatBot/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/20CustomChatBot/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/20CustomChatBot/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/20CustomChatBot/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/20CustomChatBot/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/20CustomChatBot/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/20CustomChatBot/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/20CustomChatBot/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/20CustomChatBot/types/servers/HttpServer.d.ts b/TypeScript/20CustomChatBot/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/20CustomChatBot/types/servers/HttpServer.d.ts
+++ b/TypeScript/20CustomChatBot/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/20CustomChatBot/types/servers/WebSocketServer.d.ts b/TypeScript/20CustomChatBot/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/20CustomChatBot/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/20CustomChatBot/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/20CustomChatBot/types/servers/http/IHttpListener.d.ts b/TypeScript/20CustomChatBot/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/20CustomChatBot/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/20CustomChatBot/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/20CustomChatBot/types/servers/http/SptHttpListener.d.ts b/TypeScript/20CustomChatBot/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/20CustomChatBot/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/20CustomChatBot/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/20CustomChatBot/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/20CustomChatBot/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/20CustomChatBot/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/20CustomChatBot/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/20CustomChatBot/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/20CustomChatBot/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/20CustomChatBot/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/20CustomChatBot/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/20CustomChatBot/types/services/InsuranceService.d.ts b/TypeScript/20CustomChatBot/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/20CustomChatBot/types/services/InsuranceService.d.ts
+++ b/TypeScript/20CustomChatBot/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/20CustomChatBot/types/services/RagfairTaxService.d.ts b/TypeScript/20CustomChatBot/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/20CustomChatBot/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/20CustomChatBot/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/20CustomChatBot/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/20CustomChatBot/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/20CustomChatBot/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/20CustomChatBot/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/20CustomChatBot/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/20CustomChatBot/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/20CustomChatBot/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/20CustomChatBot/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/20CustomChatBot/types/utils/HashUtil.d.ts b/TypeScript/20CustomChatBot/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/20CustomChatBot/types/utils/HashUtil.d.ts
+++ b/TypeScript/20CustomChatBot/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/20CustomChatBot/types/utils/HttpFileUtil.d.ts b/TypeScript/20CustomChatBot/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/20CustomChatBot/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/20CustomChatBot/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/20CustomChatBot/types/utils/ObjectId.d.ts b/TypeScript/20CustomChatBot/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/20CustomChatBot/types/utils/ObjectId.d.ts
+++ b/TypeScript/20CustomChatBot/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/20CustomChatBot/types/utils/VFS.d.ts b/TypeScript/20CustomChatBot/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/20CustomChatBot/types/utils/VFS.d.ts
+++ b/TypeScript/20CustomChatBot/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/20CustomChatBot/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/20CustomChatBot/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/20CustomChatBot/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/20CustomChatBot/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/21CustomCommandoCommand/types/di/Serializer.d.ts b/TypeScript/21CustomCommandoCommand/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/21CustomCommandoCommand/types/di/Serializer.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/21CustomCommandoCommand/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/21CustomCommandoCommand/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/21CustomCommandoCommand/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/21CustomCommandoCommand/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/21CustomCommandoCommand/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/21CustomCommandoCommand/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/21CustomCommandoCommand/types/helpers/ItemHelper.d.ts b/TypeScript/21CustomCommandoCommand/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/21CustomCommandoCommand/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/21CustomCommandoCommand/types/helpers/ProfileHelper.d.ts b/TypeScript/21CustomCommandoCommand/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/21CustomCommandoCommand/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/21CustomCommandoCommand/types/models/external/HttpFramework.d.ts b/TypeScript/21CustomCommandoCommand/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/21CustomCommandoCommand/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/21CustomCommandoCommand/types/routers/HttpRouter.d.ts b/TypeScript/21CustomCommandoCommand/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/21CustomCommandoCommand/types/routers/HttpRouter.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/21CustomCommandoCommand/types/routers/ImageRouter.d.ts b/TypeScript/21CustomCommandoCommand/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/21CustomCommandoCommand/types/routers/ImageRouter.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/21CustomCommandoCommand/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/21CustomCommandoCommand/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/21CustomCommandoCommand/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/21CustomCommandoCommand/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/21CustomCommandoCommand/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/21CustomCommandoCommand/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/21CustomCommandoCommand/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/21CustomCommandoCommand/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/21CustomCommandoCommand/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/21CustomCommandoCommand/types/servers/HttpServer.d.ts b/TypeScript/21CustomCommandoCommand/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/21CustomCommandoCommand/types/servers/HttpServer.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/21CustomCommandoCommand/types/servers/WebSocketServer.d.ts b/TypeScript/21CustomCommandoCommand/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/21CustomCommandoCommand/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/21CustomCommandoCommand/types/servers/http/IHttpListener.d.ts b/TypeScript/21CustomCommandoCommand/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/21CustomCommandoCommand/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/21CustomCommandoCommand/types/servers/http/SptHttpListener.d.ts b/TypeScript/21CustomCommandoCommand/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/21CustomCommandoCommand/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/21CustomCommandoCommand/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/21CustomCommandoCommand/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/21CustomCommandoCommand/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/21CustomCommandoCommand/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/21CustomCommandoCommand/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/21CustomCommandoCommand/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/21CustomCommandoCommand/types/services/InsuranceService.d.ts b/TypeScript/21CustomCommandoCommand/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/21CustomCommandoCommand/types/services/InsuranceService.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/21CustomCommandoCommand/types/services/RagfairTaxService.d.ts b/TypeScript/21CustomCommandoCommand/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/21CustomCommandoCommand/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/21CustomCommandoCommand/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/21CustomCommandoCommand/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/21CustomCommandoCommand/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/21CustomCommandoCommand/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/21CustomCommandoCommand/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/21CustomCommandoCommand/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/21CustomCommandoCommand/types/utils/HashUtil.d.ts b/TypeScript/21CustomCommandoCommand/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/21CustomCommandoCommand/types/utils/HashUtil.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/21CustomCommandoCommand/types/utils/HttpFileUtil.d.ts b/TypeScript/21CustomCommandoCommand/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/21CustomCommandoCommand/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/21CustomCommandoCommand/types/utils/ObjectId.d.ts b/TypeScript/21CustomCommandoCommand/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/21CustomCommandoCommand/types/utils/ObjectId.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/21CustomCommandoCommand/types/utils/VFS.d.ts b/TypeScript/21CustomCommandoCommand/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/21CustomCommandoCommand/types/utils/VFS.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/21CustomCommandoCommand/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/21CustomCommandoCommand/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/21CustomCommandoCommand/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/21CustomCommandoCommand/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/22CustomSptCommand/types/di/Serializer.d.ts b/TypeScript/22CustomSptCommand/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/22CustomSptCommand/types/di/Serializer.d.ts
+++ b/TypeScript/22CustomSptCommand/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/22CustomSptCommand/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/22CustomSptCommand/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/22CustomSptCommand/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/22CustomSptCommand/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/22CustomSptCommand/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/22CustomSptCommand/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/22CustomSptCommand/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/22CustomSptCommand/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/22CustomSptCommand/types/helpers/ItemHelper.d.ts b/TypeScript/22CustomSptCommand/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/22CustomSptCommand/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/22CustomSptCommand/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/22CustomSptCommand/types/helpers/ProfileHelper.d.ts b/TypeScript/22CustomSptCommand/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/22CustomSptCommand/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/22CustomSptCommand/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/22CustomSptCommand/types/models/external/HttpFramework.d.ts b/TypeScript/22CustomSptCommand/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/22CustomSptCommand/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/22CustomSptCommand/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/22CustomSptCommand/types/routers/HttpRouter.d.ts b/TypeScript/22CustomSptCommand/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/22CustomSptCommand/types/routers/HttpRouter.d.ts
+++ b/TypeScript/22CustomSptCommand/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/22CustomSptCommand/types/routers/ImageRouter.d.ts b/TypeScript/22CustomSptCommand/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/22CustomSptCommand/types/routers/ImageRouter.d.ts
+++ b/TypeScript/22CustomSptCommand/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/22CustomSptCommand/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/22CustomSptCommand/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/22CustomSptCommand/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/22CustomSptCommand/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/22CustomSptCommand/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/22CustomSptCommand/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/22CustomSptCommand/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/22CustomSptCommand/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/22CustomSptCommand/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/22CustomSptCommand/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/22CustomSptCommand/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/22CustomSptCommand/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/22CustomSptCommand/types/servers/HttpServer.d.ts b/TypeScript/22CustomSptCommand/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/22CustomSptCommand/types/servers/HttpServer.d.ts
+++ b/TypeScript/22CustomSptCommand/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/22CustomSptCommand/types/servers/WebSocketServer.d.ts b/TypeScript/22CustomSptCommand/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/22CustomSptCommand/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/22CustomSptCommand/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/22CustomSptCommand/types/servers/http/IHttpListener.d.ts b/TypeScript/22CustomSptCommand/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/22CustomSptCommand/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/22CustomSptCommand/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/22CustomSptCommand/types/servers/http/SptHttpListener.d.ts b/TypeScript/22CustomSptCommand/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/22CustomSptCommand/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/22CustomSptCommand/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/22CustomSptCommand/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/22CustomSptCommand/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/22CustomSptCommand/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/22CustomSptCommand/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/22CustomSptCommand/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/22CustomSptCommand/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/22CustomSptCommand/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/22CustomSptCommand/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/22CustomSptCommand/types/services/InsuranceService.d.ts b/TypeScript/22CustomSptCommand/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/22CustomSptCommand/types/services/InsuranceService.d.ts
+++ b/TypeScript/22CustomSptCommand/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/22CustomSptCommand/types/services/RagfairTaxService.d.ts b/TypeScript/22CustomSptCommand/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/22CustomSptCommand/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/22CustomSptCommand/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/22CustomSptCommand/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/22CustomSptCommand/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/22CustomSptCommand/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/22CustomSptCommand/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/22CustomSptCommand/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/22CustomSptCommand/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/22CustomSptCommand/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/22CustomSptCommand/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/22CustomSptCommand/types/utils/HashUtil.d.ts b/TypeScript/22CustomSptCommand/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/22CustomSptCommand/types/utils/HashUtil.d.ts
+++ b/TypeScript/22CustomSptCommand/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/22CustomSptCommand/types/utils/HttpFileUtil.d.ts b/TypeScript/22CustomSptCommand/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/22CustomSptCommand/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/22CustomSptCommand/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/22CustomSptCommand/types/utils/ObjectId.d.ts b/TypeScript/22CustomSptCommand/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/22CustomSptCommand/types/utils/ObjectId.d.ts
+++ b/TypeScript/22CustomSptCommand/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/22CustomSptCommand/types/utils/VFS.d.ts b/TypeScript/22CustomSptCommand/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/22CustomSptCommand/types/utils/VFS.d.ts
+++ b/TypeScript/22CustomSptCommand/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/22CustomSptCommand/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/22CustomSptCommand/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/22CustomSptCommand/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/22CustomSptCommand/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/23CustomAbstractChatBot/types/di/Serializer.d.ts b/TypeScript/23CustomAbstractChatBot/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/23CustomAbstractChatBot/types/di/Serializer.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/23CustomAbstractChatBot/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/23CustomAbstractChatBot/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/23CustomAbstractChatBot/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/23CustomAbstractChatBot/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/23CustomAbstractChatBot/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/23CustomAbstractChatBot/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/23CustomAbstractChatBot/types/helpers/ItemHelper.d.ts b/TypeScript/23CustomAbstractChatBot/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/23CustomAbstractChatBot/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/23CustomAbstractChatBot/types/helpers/ProfileHelper.d.ts b/TypeScript/23CustomAbstractChatBot/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/23CustomAbstractChatBot/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/23CustomAbstractChatBot/types/models/external/HttpFramework.d.ts b/TypeScript/23CustomAbstractChatBot/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/23CustomAbstractChatBot/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/23CustomAbstractChatBot/types/routers/HttpRouter.d.ts b/TypeScript/23CustomAbstractChatBot/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/23CustomAbstractChatBot/types/routers/HttpRouter.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/23CustomAbstractChatBot/types/routers/ImageRouter.d.ts b/TypeScript/23CustomAbstractChatBot/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/23CustomAbstractChatBot/types/routers/ImageRouter.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/23CustomAbstractChatBot/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/23CustomAbstractChatBot/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/23CustomAbstractChatBot/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/23CustomAbstractChatBot/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/23CustomAbstractChatBot/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/23CustomAbstractChatBot/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/23CustomAbstractChatBot/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/23CustomAbstractChatBot/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/23CustomAbstractChatBot/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/23CustomAbstractChatBot/types/servers/HttpServer.d.ts b/TypeScript/23CustomAbstractChatBot/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/23CustomAbstractChatBot/types/servers/HttpServer.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/23CustomAbstractChatBot/types/servers/WebSocketServer.d.ts b/TypeScript/23CustomAbstractChatBot/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/23CustomAbstractChatBot/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/23CustomAbstractChatBot/types/servers/http/IHttpListener.d.ts b/TypeScript/23CustomAbstractChatBot/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/23CustomAbstractChatBot/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/23CustomAbstractChatBot/types/servers/http/SptHttpListener.d.ts b/TypeScript/23CustomAbstractChatBot/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/23CustomAbstractChatBot/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/23CustomAbstractChatBot/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/23CustomAbstractChatBot/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/23CustomAbstractChatBot/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/23CustomAbstractChatBot/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/23CustomAbstractChatBot/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/23CustomAbstractChatBot/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/23CustomAbstractChatBot/types/services/InsuranceService.d.ts b/TypeScript/23CustomAbstractChatBot/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/23CustomAbstractChatBot/types/services/InsuranceService.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/23CustomAbstractChatBot/types/services/RagfairTaxService.d.ts b/TypeScript/23CustomAbstractChatBot/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/23CustomAbstractChatBot/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/23CustomAbstractChatBot/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/23CustomAbstractChatBot/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/23CustomAbstractChatBot/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/23CustomAbstractChatBot/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/23CustomAbstractChatBot/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/23CustomAbstractChatBot/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/23CustomAbstractChatBot/types/utils/HashUtil.d.ts b/TypeScript/23CustomAbstractChatBot/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/23CustomAbstractChatBot/types/utils/HashUtil.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/23CustomAbstractChatBot/types/utils/HttpFileUtil.d.ts b/TypeScript/23CustomAbstractChatBot/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/23CustomAbstractChatBot/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/23CustomAbstractChatBot/types/utils/ObjectId.d.ts b/TypeScript/23CustomAbstractChatBot/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/23CustomAbstractChatBot/types/utils/ObjectId.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/23CustomAbstractChatBot/types/utils/VFS.d.ts b/TypeScript/23CustomAbstractChatBot/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/23CustomAbstractChatBot/types/utils/VFS.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/23CustomAbstractChatBot/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/23CustomAbstractChatBot/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/23CustomAbstractChatBot/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/23CustomAbstractChatBot/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/24WebSocket/types/di/Serializer.d.ts b/TypeScript/24WebSocket/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/24WebSocket/types/di/Serializer.d.ts
+++ b/TypeScript/24WebSocket/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/24WebSocket/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/24WebSocket/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/24WebSocket/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/24WebSocket/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/24WebSocket/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/24WebSocket/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/24WebSocket/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/24WebSocket/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/24WebSocket/types/helpers/ItemHelper.d.ts b/TypeScript/24WebSocket/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/24WebSocket/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/24WebSocket/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/24WebSocket/types/helpers/ProfileHelper.d.ts b/TypeScript/24WebSocket/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/24WebSocket/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/24WebSocket/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/24WebSocket/types/models/external/HttpFramework.d.ts b/TypeScript/24WebSocket/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/24WebSocket/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/24WebSocket/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/24WebSocket/types/routers/HttpRouter.d.ts b/TypeScript/24WebSocket/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/24WebSocket/types/routers/HttpRouter.d.ts
+++ b/TypeScript/24WebSocket/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/24WebSocket/types/routers/ImageRouter.d.ts b/TypeScript/24WebSocket/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/24WebSocket/types/routers/ImageRouter.d.ts
+++ b/TypeScript/24WebSocket/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/24WebSocket/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/24WebSocket/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/24WebSocket/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/24WebSocket/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/24WebSocket/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/24WebSocket/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/24WebSocket/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/24WebSocket/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/24WebSocket/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/24WebSocket/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/24WebSocket/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/24WebSocket/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/24WebSocket/types/servers/HttpServer.d.ts b/TypeScript/24WebSocket/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/24WebSocket/types/servers/HttpServer.d.ts
+++ b/TypeScript/24WebSocket/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/24WebSocket/types/servers/WebSocketServer.d.ts b/TypeScript/24WebSocket/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/24WebSocket/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/24WebSocket/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/24WebSocket/types/servers/http/IHttpListener.d.ts b/TypeScript/24WebSocket/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/24WebSocket/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/24WebSocket/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/24WebSocket/types/servers/http/SptHttpListener.d.ts b/TypeScript/24WebSocket/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/24WebSocket/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/24WebSocket/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/24WebSocket/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/24WebSocket/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/24WebSocket/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/24WebSocket/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/24WebSocket/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/24WebSocket/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/24WebSocket/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/24WebSocket/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/24WebSocket/types/services/InsuranceService.d.ts b/TypeScript/24WebSocket/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/24WebSocket/types/services/InsuranceService.d.ts
+++ b/TypeScript/24WebSocket/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/24WebSocket/types/services/RagfairTaxService.d.ts b/TypeScript/24WebSocket/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/24WebSocket/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/24WebSocket/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/24WebSocket/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/24WebSocket/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/24WebSocket/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/24WebSocket/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/24WebSocket/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/24WebSocket/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/24WebSocket/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/24WebSocket/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/24WebSocket/types/utils/HashUtil.d.ts b/TypeScript/24WebSocket/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/24WebSocket/types/utils/HashUtil.d.ts
+++ b/TypeScript/24WebSocket/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/24WebSocket/types/utils/HttpFileUtil.d.ts b/TypeScript/24WebSocket/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/24WebSocket/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/24WebSocket/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/24WebSocket/types/utils/ObjectId.d.ts b/TypeScript/24WebSocket/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/24WebSocket/types/utils/ObjectId.d.ts
+++ b/TypeScript/24WebSocket/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/24WebSocket/types/utils/VFS.d.ts b/TypeScript/24WebSocket/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/24WebSocket/types/utils/VFS.d.ts
+++ b/TypeScript/24WebSocket/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/24WebSocket/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/24WebSocket/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/24WebSocket/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/24WebSocket/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/2EditDatabase/types/di/Serializer.d.ts b/TypeScript/2EditDatabase/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/2EditDatabase/types/di/Serializer.d.ts
+++ b/TypeScript/2EditDatabase/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/2EditDatabase/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/2EditDatabase/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/2EditDatabase/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/2EditDatabase/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/2EditDatabase/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/2EditDatabase/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/2EditDatabase/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/2EditDatabase/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/2EditDatabase/types/helpers/ItemHelper.d.ts b/TypeScript/2EditDatabase/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/2EditDatabase/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/2EditDatabase/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/2EditDatabase/types/helpers/ProfileHelper.d.ts b/TypeScript/2EditDatabase/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/2EditDatabase/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/2EditDatabase/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/2EditDatabase/types/models/external/HttpFramework.d.ts b/TypeScript/2EditDatabase/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/2EditDatabase/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/2EditDatabase/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/2EditDatabase/types/routers/HttpRouter.d.ts b/TypeScript/2EditDatabase/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/2EditDatabase/types/routers/HttpRouter.d.ts
+++ b/TypeScript/2EditDatabase/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/2EditDatabase/types/routers/ImageRouter.d.ts b/TypeScript/2EditDatabase/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/2EditDatabase/types/routers/ImageRouter.d.ts
+++ b/TypeScript/2EditDatabase/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/2EditDatabase/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/2EditDatabase/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/2EditDatabase/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/2EditDatabase/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/2EditDatabase/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/2EditDatabase/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/2EditDatabase/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/2EditDatabase/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/2EditDatabase/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/2EditDatabase/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/2EditDatabase/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/2EditDatabase/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/2EditDatabase/types/servers/HttpServer.d.ts b/TypeScript/2EditDatabase/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/2EditDatabase/types/servers/HttpServer.d.ts
+++ b/TypeScript/2EditDatabase/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/2EditDatabase/types/servers/WebSocketServer.d.ts b/TypeScript/2EditDatabase/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/2EditDatabase/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/2EditDatabase/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/2EditDatabase/types/servers/http/IHttpListener.d.ts b/TypeScript/2EditDatabase/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/2EditDatabase/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/2EditDatabase/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/2EditDatabase/types/servers/http/SptHttpListener.d.ts b/TypeScript/2EditDatabase/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/2EditDatabase/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/2EditDatabase/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/2EditDatabase/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/2EditDatabase/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/2EditDatabase/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/2EditDatabase/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/2EditDatabase/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/2EditDatabase/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/2EditDatabase/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/2EditDatabase/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/2EditDatabase/types/services/InsuranceService.d.ts b/TypeScript/2EditDatabase/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/2EditDatabase/types/services/InsuranceService.d.ts
+++ b/TypeScript/2EditDatabase/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/2EditDatabase/types/services/RagfairTaxService.d.ts b/TypeScript/2EditDatabase/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/2EditDatabase/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/2EditDatabase/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/2EditDatabase/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/2EditDatabase/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/2EditDatabase/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/2EditDatabase/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/2EditDatabase/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/2EditDatabase/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/2EditDatabase/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/2EditDatabase/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/2EditDatabase/types/utils/HashUtil.d.ts b/TypeScript/2EditDatabase/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/2EditDatabase/types/utils/HashUtil.d.ts
+++ b/TypeScript/2EditDatabase/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/2EditDatabase/types/utils/HttpFileUtil.d.ts b/TypeScript/2EditDatabase/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/2EditDatabase/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/2EditDatabase/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/2EditDatabase/types/utils/ObjectId.d.ts b/TypeScript/2EditDatabase/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/2EditDatabase/types/utils/ObjectId.d.ts
+++ b/TypeScript/2EditDatabase/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/2EditDatabase/types/utils/VFS.d.ts b/TypeScript/2EditDatabase/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/2EditDatabase/types/utils/VFS.d.ts
+++ b/TypeScript/2EditDatabase/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/2EditDatabase/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/2EditDatabase/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/2EditDatabase/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/2EditDatabase/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/3GetSptConfigFile/types/di/Serializer.d.ts b/TypeScript/3GetSptConfigFile/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/3GetSptConfigFile/types/di/Serializer.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/3GetSptConfigFile/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/3GetSptConfigFile/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/3GetSptConfigFile/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/3GetSptConfigFile/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/3GetSptConfigFile/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/3GetSptConfigFile/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/3GetSptConfigFile/types/helpers/ItemHelper.d.ts b/TypeScript/3GetSptConfigFile/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/3GetSptConfigFile/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/3GetSptConfigFile/types/helpers/ProfileHelper.d.ts b/TypeScript/3GetSptConfigFile/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/3GetSptConfigFile/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/3GetSptConfigFile/types/models/external/HttpFramework.d.ts b/TypeScript/3GetSptConfigFile/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/3GetSptConfigFile/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/3GetSptConfigFile/types/routers/HttpRouter.d.ts b/TypeScript/3GetSptConfigFile/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/3GetSptConfigFile/types/routers/HttpRouter.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/3GetSptConfigFile/types/routers/ImageRouter.d.ts b/TypeScript/3GetSptConfigFile/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/3GetSptConfigFile/types/routers/ImageRouter.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/3GetSptConfigFile/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/3GetSptConfigFile/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/3GetSptConfigFile/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/3GetSptConfigFile/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/3GetSptConfigFile/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/3GetSptConfigFile/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/3GetSptConfigFile/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/3GetSptConfigFile/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/3GetSptConfigFile/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/3GetSptConfigFile/types/servers/HttpServer.d.ts b/TypeScript/3GetSptConfigFile/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/3GetSptConfigFile/types/servers/HttpServer.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/3GetSptConfigFile/types/servers/WebSocketServer.d.ts b/TypeScript/3GetSptConfigFile/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/3GetSptConfigFile/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/3GetSptConfigFile/types/servers/http/IHttpListener.d.ts b/TypeScript/3GetSptConfigFile/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/3GetSptConfigFile/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/3GetSptConfigFile/types/servers/http/SptHttpListener.d.ts b/TypeScript/3GetSptConfigFile/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/3GetSptConfigFile/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/3GetSptConfigFile/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/3GetSptConfigFile/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/3GetSptConfigFile/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/3GetSptConfigFile/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/3GetSptConfigFile/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/3GetSptConfigFile/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/3GetSptConfigFile/types/services/InsuranceService.d.ts b/TypeScript/3GetSptConfigFile/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/3GetSptConfigFile/types/services/InsuranceService.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/3GetSptConfigFile/types/services/RagfairTaxService.d.ts b/TypeScript/3GetSptConfigFile/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/3GetSptConfigFile/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/3GetSptConfigFile/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/3GetSptConfigFile/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/3GetSptConfigFile/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/3GetSptConfigFile/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/3GetSptConfigFile/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/3GetSptConfigFile/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/3GetSptConfigFile/types/utils/HashUtil.d.ts b/TypeScript/3GetSptConfigFile/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/3GetSptConfigFile/types/utils/HashUtil.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/3GetSptConfigFile/types/utils/HttpFileUtil.d.ts b/TypeScript/3GetSptConfigFile/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/3GetSptConfigFile/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/3GetSptConfigFile/types/utils/ObjectId.d.ts b/TypeScript/3GetSptConfigFile/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/3GetSptConfigFile/types/utils/ObjectId.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/3GetSptConfigFile/types/utils/VFS.d.ts b/TypeScript/3GetSptConfigFile/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/3GetSptConfigFile/types/utils/VFS.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/3GetSptConfigFile/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/3GetSptConfigFile/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/3GetSptConfigFile/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/3GetSptConfigFile/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/di/Serializer.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/di/Serializer.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/helpers/ItemHelper.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/helpers/ProfileHelper.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/models/external/HttpFramework.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/HttpRouter.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/HttpRouter.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/ImageRouter.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/ImageRouter.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/HttpServer.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/HttpServer.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/WebSocketServer.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/http/IHttpListener.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/http/SptHttpListener.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/services/InsuranceService.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/services/InsuranceService.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/services/RagfairTaxService.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/utils/HashUtil.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/utils/HashUtil.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/utils/HttpFileUtil.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/utils/ObjectId.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/utils/ObjectId.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/utils/VFS.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/utils/VFS.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/4UseACustomConfigFile/types/di/Serializer.d.ts b/TypeScript/4UseACustomConfigFile/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/4UseACustomConfigFile/types/di/Serializer.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/4UseACustomConfigFile/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/4UseACustomConfigFile/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/4UseACustomConfigFile/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/4UseACustomConfigFile/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/4UseACustomConfigFile/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/4UseACustomConfigFile/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/4UseACustomConfigFile/types/helpers/ItemHelper.d.ts b/TypeScript/4UseACustomConfigFile/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/4UseACustomConfigFile/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/4UseACustomConfigFile/types/helpers/ProfileHelper.d.ts b/TypeScript/4UseACustomConfigFile/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/4UseACustomConfigFile/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/4UseACustomConfigFile/types/models/external/HttpFramework.d.ts b/TypeScript/4UseACustomConfigFile/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/4UseACustomConfigFile/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/4UseACustomConfigFile/types/routers/HttpRouter.d.ts b/TypeScript/4UseACustomConfigFile/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/4UseACustomConfigFile/types/routers/HttpRouter.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/4UseACustomConfigFile/types/routers/ImageRouter.d.ts b/TypeScript/4UseACustomConfigFile/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/4UseACustomConfigFile/types/routers/ImageRouter.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/4UseACustomConfigFile/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/4UseACustomConfigFile/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/4UseACustomConfigFile/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/4UseACustomConfigFile/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/4UseACustomConfigFile/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/4UseACustomConfigFile/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/4UseACustomConfigFile/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/4UseACustomConfigFile/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/4UseACustomConfigFile/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/4UseACustomConfigFile/types/servers/HttpServer.d.ts b/TypeScript/4UseACustomConfigFile/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/4UseACustomConfigFile/types/servers/HttpServer.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/4UseACustomConfigFile/types/servers/WebSocketServer.d.ts b/TypeScript/4UseACustomConfigFile/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/4UseACustomConfigFile/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/4UseACustomConfigFile/types/servers/http/IHttpListener.d.ts b/TypeScript/4UseACustomConfigFile/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/4UseACustomConfigFile/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/4UseACustomConfigFile/types/servers/http/SptHttpListener.d.ts b/TypeScript/4UseACustomConfigFile/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/4UseACustomConfigFile/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/4UseACustomConfigFile/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/4UseACustomConfigFile/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/4UseACustomConfigFile/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/4UseACustomConfigFile/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/4UseACustomConfigFile/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/4UseACustomConfigFile/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/4UseACustomConfigFile/types/services/InsuranceService.d.ts b/TypeScript/4UseACustomConfigFile/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/4UseACustomConfigFile/types/services/InsuranceService.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/4UseACustomConfigFile/types/services/RagfairTaxService.d.ts b/TypeScript/4UseACustomConfigFile/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/4UseACustomConfigFile/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/4UseACustomConfigFile/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/4UseACustomConfigFile/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/4UseACustomConfigFile/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/4UseACustomConfigFile/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/4UseACustomConfigFile/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/4UseACustomConfigFile/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/4UseACustomConfigFile/types/utils/HashUtil.d.ts b/TypeScript/4UseACustomConfigFile/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/4UseACustomConfigFile/types/utils/HashUtil.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/4UseACustomConfigFile/types/utils/HttpFileUtil.d.ts b/TypeScript/4UseACustomConfigFile/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/4UseACustomConfigFile/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/4UseACustomConfigFile/types/utils/ObjectId.d.ts b/TypeScript/4UseACustomConfigFile/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/4UseACustomConfigFile/types/utils/ObjectId.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/4UseACustomConfigFile/types/utils/VFS.d.ts b/TypeScript/4UseACustomConfigFile/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/4UseACustomConfigFile/types/utils/VFS.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/4UseACustomConfigFile/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/4UseACustomConfigFile/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/4UseACustomConfigFile/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/4UseACustomConfigFile/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/5ReplaceMethod/types/di/Serializer.d.ts b/TypeScript/5ReplaceMethod/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/5ReplaceMethod/types/di/Serializer.d.ts
+++ b/TypeScript/5ReplaceMethod/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/5ReplaceMethod/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/5ReplaceMethod/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/5ReplaceMethod/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/5ReplaceMethod/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/5ReplaceMethod/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/5ReplaceMethod/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/5ReplaceMethod/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/5ReplaceMethod/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/5ReplaceMethod/types/helpers/ItemHelper.d.ts b/TypeScript/5ReplaceMethod/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/5ReplaceMethod/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/5ReplaceMethod/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/5ReplaceMethod/types/helpers/ProfileHelper.d.ts b/TypeScript/5ReplaceMethod/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/5ReplaceMethod/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/5ReplaceMethod/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/5ReplaceMethod/types/models/external/HttpFramework.d.ts b/TypeScript/5ReplaceMethod/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/5ReplaceMethod/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/5ReplaceMethod/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/5ReplaceMethod/types/routers/HttpRouter.d.ts b/TypeScript/5ReplaceMethod/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/5ReplaceMethod/types/routers/HttpRouter.d.ts
+++ b/TypeScript/5ReplaceMethod/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/5ReplaceMethod/types/routers/ImageRouter.d.ts b/TypeScript/5ReplaceMethod/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/5ReplaceMethod/types/routers/ImageRouter.d.ts
+++ b/TypeScript/5ReplaceMethod/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/5ReplaceMethod/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/5ReplaceMethod/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/5ReplaceMethod/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/5ReplaceMethod/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/5ReplaceMethod/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/5ReplaceMethod/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/5ReplaceMethod/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/5ReplaceMethod/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/5ReplaceMethod/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/5ReplaceMethod/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/5ReplaceMethod/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/5ReplaceMethod/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/5ReplaceMethod/types/servers/HttpServer.d.ts b/TypeScript/5ReplaceMethod/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/5ReplaceMethod/types/servers/HttpServer.d.ts
+++ b/TypeScript/5ReplaceMethod/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/5ReplaceMethod/types/servers/WebSocketServer.d.ts b/TypeScript/5ReplaceMethod/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/5ReplaceMethod/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/5ReplaceMethod/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/5ReplaceMethod/types/servers/http/IHttpListener.d.ts b/TypeScript/5ReplaceMethod/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/5ReplaceMethod/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/5ReplaceMethod/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/5ReplaceMethod/types/servers/http/SptHttpListener.d.ts b/TypeScript/5ReplaceMethod/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/5ReplaceMethod/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/5ReplaceMethod/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/5ReplaceMethod/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/5ReplaceMethod/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/5ReplaceMethod/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/5ReplaceMethod/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/5ReplaceMethod/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/5ReplaceMethod/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/5ReplaceMethod/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/5ReplaceMethod/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/5ReplaceMethod/types/services/InsuranceService.d.ts b/TypeScript/5ReplaceMethod/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/5ReplaceMethod/types/services/InsuranceService.d.ts
+++ b/TypeScript/5ReplaceMethod/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/5ReplaceMethod/types/services/RagfairTaxService.d.ts b/TypeScript/5ReplaceMethod/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/5ReplaceMethod/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/5ReplaceMethod/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/5ReplaceMethod/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/5ReplaceMethod/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/5ReplaceMethod/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/5ReplaceMethod/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/5ReplaceMethod/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/5ReplaceMethod/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/5ReplaceMethod/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/5ReplaceMethod/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/5ReplaceMethod/types/utils/HashUtil.d.ts b/TypeScript/5ReplaceMethod/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/5ReplaceMethod/types/utils/HashUtil.d.ts
+++ b/TypeScript/5ReplaceMethod/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/5ReplaceMethod/types/utils/HttpFileUtil.d.ts b/TypeScript/5ReplaceMethod/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/5ReplaceMethod/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/5ReplaceMethod/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/5ReplaceMethod/types/utils/ObjectId.d.ts b/TypeScript/5ReplaceMethod/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/5ReplaceMethod/types/utils/ObjectId.d.ts
+++ b/TypeScript/5ReplaceMethod/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/5ReplaceMethod/types/utils/VFS.d.ts b/TypeScript/5ReplaceMethod/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/5ReplaceMethod/types/utils/VFS.d.ts
+++ b/TypeScript/5ReplaceMethod/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/5ReplaceMethod/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/5ReplaceMethod/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/5ReplaceMethod/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/5ReplaceMethod/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/6ReferenceAnotherClass/types/di/Serializer.d.ts b/TypeScript/6ReferenceAnotherClass/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/6ReferenceAnotherClass/types/di/Serializer.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/6ReferenceAnotherClass/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/6ReferenceAnotherClass/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/6ReferenceAnotherClass/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/6ReferenceAnotherClass/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/6ReferenceAnotherClass/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/6ReferenceAnotherClass/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/6ReferenceAnotherClass/types/helpers/ItemHelper.d.ts b/TypeScript/6ReferenceAnotherClass/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/6ReferenceAnotherClass/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/6ReferenceAnotherClass/types/helpers/ProfileHelper.d.ts b/TypeScript/6ReferenceAnotherClass/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/6ReferenceAnotherClass/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/6ReferenceAnotherClass/types/models/external/HttpFramework.d.ts b/TypeScript/6ReferenceAnotherClass/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/6ReferenceAnotherClass/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/6ReferenceAnotherClass/types/routers/HttpRouter.d.ts b/TypeScript/6ReferenceAnotherClass/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/6ReferenceAnotherClass/types/routers/HttpRouter.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/6ReferenceAnotherClass/types/routers/ImageRouter.d.ts b/TypeScript/6ReferenceAnotherClass/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/6ReferenceAnotherClass/types/routers/ImageRouter.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/6ReferenceAnotherClass/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/6ReferenceAnotherClass/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/6ReferenceAnotherClass/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/6ReferenceAnotherClass/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/6ReferenceAnotherClass/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/6ReferenceAnotherClass/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/6ReferenceAnotherClass/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/6ReferenceAnotherClass/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/6ReferenceAnotherClass/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/6ReferenceAnotherClass/types/servers/HttpServer.d.ts b/TypeScript/6ReferenceAnotherClass/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/6ReferenceAnotherClass/types/servers/HttpServer.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/6ReferenceAnotherClass/types/servers/WebSocketServer.d.ts b/TypeScript/6ReferenceAnotherClass/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/6ReferenceAnotherClass/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/6ReferenceAnotherClass/types/servers/http/IHttpListener.d.ts b/TypeScript/6ReferenceAnotherClass/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/6ReferenceAnotherClass/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/6ReferenceAnotherClass/types/servers/http/SptHttpListener.d.ts b/TypeScript/6ReferenceAnotherClass/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/6ReferenceAnotherClass/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/6ReferenceAnotherClass/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/6ReferenceAnotherClass/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/6ReferenceAnotherClass/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/6ReferenceAnotherClass/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/6ReferenceAnotherClass/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/6ReferenceAnotherClass/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/6ReferenceAnotherClass/types/services/InsuranceService.d.ts b/TypeScript/6ReferenceAnotherClass/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/6ReferenceAnotherClass/types/services/InsuranceService.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/6ReferenceAnotherClass/types/services/RagfairTaxService.d.ts b/TypeScript/6ReferenceAnotherClass/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/6ReferenceAnotherClass/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/6ReferenceAnotherClass/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/6ReferenceAnotherClass/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/6ReferenceAnotherClass/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/6ReferenceAnotherClass/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/6ReferenceAnotherClass/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/6ReferenceAnotherClass/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/6ReferenceAnotherClass/types/utils/HashUtil.d.ts b/TypeScript/6ReferenceAnotherClass/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/6ReferenceAnotherClass/types/utils/HashUtil.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/6ReferenceAnotherClass/types/utils/HttpFileUtil.d.ts b/TypeScript/6ReferenceAnotherClass/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/6ReferenceAnotherClass/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/6ReferenceAnotherClass/types/utils/ObjectId.d.ts b/TypeScript/6ReferenceAnotherClass/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/6ReferenceAnotherClass/types/utils/ObjectId.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/6ReferenceAnotherClass/types/utils/VFS.d.ts b/TypeScript/6ReferenceAnotherClass/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/6ReferenceAnotherClass/types/utils/VFS.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/6ReferenceAnotherClass/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/6ReferenceAnotherClass/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/6ReferenceAnotherClass/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/6ReferenceAnotherClass/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/7OnLoadHook/types/di/Serializer.d.ts b/TypeScript/7OnLoadHook/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/7OnLoadHook/types/di/Serializer.d.ts
+++ b/TypeScript/7OnLoadHook/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/7OnLoadHook/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/7OnLoadHook/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/7OnLoadHook/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/7OnLoadHook/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/7OnLoadHook/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/7OnLoadHook/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/7OnLoadHook/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/7OnLoadHook/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/7OnLoadHook/types/helpers/ItemHelper.d.ts b/TypeScript/7OnLoadHook/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/7OnLoadHook/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/7OnLoadHook/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/7OnLoadHook/types/helpers/ProfileHelper.d.ts b/TypeScript/7OnLoadHook/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/7OnLoadHook/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/7OnLoadHook/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/7OnLoadHook/types/models/external/HttpFramework.d.ts b/TypeScript/7OnLoadHook/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/7OnLoadHook/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/7OnLoadHook/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/7OnLoadHook/types/routers/HttpRouter.d.ts b/TypeScript/7OnLoadHook/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/7OnLoadHook/types/routers/HttpRouter.d.ts
+++ b/TypeScript/7OnLoadHook/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/7OnLoadHook/types/routers/ImageRouter.d.ts b/TypeScript/7OnLoadHook/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/7OnLoadHook/types/routers/ImageRouter.d.ts
+++ b/TypeScript/7OnLoadHook/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/7OnLoadHook/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/7OnLoadHook/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/7OnLoadHook/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/7OnLoadHook/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/7OnLoadHook/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/7OnLoadHook/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/7OnLoadHook/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/7OnLoadHook/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/7OnLoadHook/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/7OnLoadHook/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/7OnLoadHook/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/7OnLoadHook/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/7OnLoadHook/types/servers/HttpServer.d.ts b/TypeScript/7OnLoadHook/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/7OnLoadHook/types/servers/HttpServer.d.ts
+++ b/TypeScript/7OnLoadHook/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/7OnLoadHook/types/servers/WebSocketServer.d.ts b/TypeScript/7OnLoadHook/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/7OnLoadHook/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/7OnLoadHook/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/7OnLoadHook/types/servers/http/IHttpListener.d.ts b/TypeScript/7OnLoadHook/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/7OnLoadHook/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/7OnLoadHook/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/7OnLoadHook/types/servers/http/SptHttpListener.d.ts b/TypeScript/7OnLoadHook/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/7OnLoadHook/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/7OnLoadHook/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/7OnLoadHook/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/7OnLoadHook/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/7OnLoadHook/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/7OnLoadHook/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/7OnLoadHook/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/7OnLoadHook/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/7OnLoadHook/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/7OnLoadHook/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/7OnLoadHook/types/services/InsuranceService.d.ts b/TypeScript/7OnLoadHook/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/7OnLoadHook/types/services/InsuranceService.d.ts
+++ b/TypeScript/7OnLoadHook/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/7OnLoadHook/types/services/RagfairTaxService.d.ts b/TypeScript/7OnLoadHook/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/7OnLoadHook/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/7OnLoadHook/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/7OnLoadHook/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/7OnLoadHook/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/7OnLoadHook/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/7OnLoadHook/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/7OnLoadHook/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/7OnLoadHook/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/7OnLoadHook/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/7OnLoadHook/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/7OnLoadHook/types/utils/HashUtil.d.ts b/TypeScript/7OnLoadHook/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/7OnLoadHook/types/utils/HashUtil.d.ts
+++ b/TypeScript/7OnLoadHook/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/7OnLoadHook/types/utils/HttpFileUtil.d.ts b/TypeScript/7OnLoadHook/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/7OnLoadHook/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/7OnLoadHook/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/7OnLoadHook/types/utils/ObjectId.d.ts b/TypeScript/7OnLoadHook/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/7OnLoadHook/types/utils/ObjectId.d.ts
+++ b/TypeScript/7OnLoadHook/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/7OnLoadHook/types/utils/VFS.d.ts b/TypeScript/7OnLoadHook/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/7OnLoadHook/types/utils/VFS.d.ts
+++ b/TypeScript/7OnLoadHook/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/7OnLoadHook/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/7OnLoadHook/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/7OnLoadHook/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/7OnLoadHook/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/8OnUpdateHook/types/di/Serializer.d.ts b/TypeScript/8OnUpdateHook/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/8OnUpdateHook/types/di/Serializer.d.ts
+++ b/TypeScript/8OnUpdateHook/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/8OnUpdateHook/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/8OnUpdateHook/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/8OnUpdateHook/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/8OnUpdateHook/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/8OnUpdateHook/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/8OnUpdateHook/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/8OnUpdateHook/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/8OnUpdateHook/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/8OnUpdateHook/types/helpers/ItemHelper.d.ts b/TypeScript/8OnUpdateHook/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/8OnUpdateHook/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/8OnUpdateHook/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/8OnUpdateHook/types/helpers/ProfileHelper.d.ts b/TypeScript/8OnUpdateHook/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/8OnUpdateHook/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/8OnUpdateHook/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/8OnUpdateHook/types/models/external/HttpFramework.d.ts b/TypeScript/8OnUpdateHook/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/8OnUpdateHook/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/8OnUpdateHook/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/8OnUpdateHook/types/routers/HttpRouter.d.ts b/TypeScript/8OnUpdateHook/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/8OnUpdateHook/types/routers/HttpRouter.d.ts
+++ b/TypeScript/8OnUpdateHook/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/8OnUpdateHook/types/routers/ImageRouter.d.ts b/TypeScript/8OnUpdateHook/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/8OnUpdateHook/types/routers/ImageRouter.d.ts
+++ b/TypeScript/8OnUpdateHook/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/8OnUpdateHook/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/8OnUpdateHook/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/8OnUpdateHook/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/8OnUpdateHook/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/8OnUpdateHook/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/8OnUpdateHook/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/8OnUpdateHook/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/8OnUpdateHook/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/8OnUpdateHook/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/8OnUpdateHook/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/8OnUpdateHook/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/8OnUpdateHook/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/8OnUpdateHook/types/servers/HttpServer.d.ts b/TypeScript/8OnUpdateHook/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/8OnUpdateHook/types/servers/HttpServer.d.ts
+++ b/TypeScript/8OnUpdateHook/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/8OnUpdateHook/types/servers/WebSocketServer.d.ts b/TypeScript/8OnUpdateHook/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/8OnUpdateHook/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/8OnUpdateHook/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/8OnUpdateHook/types/servers/http/IHttpListener.d.ts b/TypeScript/8OnUpdateHook/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/8OnUpdateHook/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/8OnUpdateHook/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/8OnUpdateHook/types/servers/http/SptHttpListener.d.ts b/TypeScript/8OnUpdateHook/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/8OnUpdateHook/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/8OnUpdateHook/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/8OnUpdateHook/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/8OnUpdateHook/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/8OnUpdateHook/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/8OnUpdateHook/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/8OnUpdateHook/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/8OnUpdateHook/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/8OnUpdateHook/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/8OnUpdateHook/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/8OnUpdateHook/types/services/InsuranceService.d.ts b/TypeScript/8OnUpdateHook/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/8OnUpdateHook/types/services/InsuranceService.d.ts
+++ b/TypeScript/8OnUpdateHook/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/8OnUpdateHook/types/services/RagfairTaxService.d.ts b/TypeScript/8OnUpdateHook/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/8OnUpdateHook/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/8OnUpdateHook/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/8OnUpdateHook/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/8OnUpdateHook/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/8OnUpdateHook/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/8OnUpdateHook/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/8OnUpdateHook/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/8OnUpdateHook/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/8OnUpdateHook/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/8OnUpdateHook/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/8OnUpdateHook/types/utils/HashUtil.d.ts b/TypeScript/8OnUpdateHook/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/8OnUpdateHook/types/utils/HashUtil.d.ts
+++ b/TypeScript/8OnUpdateHook/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/8OnUpdateHook/types/utils/HttpFileUtil.d.ts b/TypeScript/8OnUpdateHook/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/8OnUpdateHook/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/8OnUpdateHook/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/8OnUpdateHook/types/utils/ObjectId.d.ts b/TypeScript/8OnUpdateHook/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/8OnUpdateHook/types/utils/ObjectId.d.ts
+++ b/TypeScript/8OnUpdateHook/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/8OnUpdateHook/types/utils/VFS.d.ts b/TypeScript/8OnUpdateHook/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/8OnUpdateHook/types/utils/VFS.d.ts
+++ b/TypeScript/8OnUpdateHook/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/8OnUpdateHook/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/8OnUpdateHook/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/8OnUpdateHook/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/8OnUpdateHook/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
diff --git a/TypeScript/9RouterHooks/types/di/Serializer.d.ts b/TypeScript/9RouterHooks/types/di/Serializer.d.ts
index b760b8b..56db477 100644
--- a/TypeScript/9RouterHooks/types/di/Serializer.d.ts
+++ b/TypeScript/9RouterHooks/types/di/Serializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export declare class Serializer {
     serialize(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any): void;
diff --git a/TypeScript/9RouterHooks/types/generators/BotEquipmentModGenerator.d.ts b/TypeScript/9RouterHooks/types/generators/BotEquipmentModGenerator.d.ts
index 3952293..e25c7d2 100644
--- a/TypeScript/9RouterHooks/types/generators/BotEquipmentModGenerator.d.ts
+++ b/TypeScript/9RouterHooks/types/generators/BotEquipmentModGenerator.d.ts
@@ -76,6 +76,14 @@ export declare class BotEquipmentModGenerator {
      * @returns Weapon + mods array
      */
     generateModsForWeapon(sessionId: string, request: IGenerateWeaponRequest): Item[];
+    /**
+     * Should the provided bot have its stock chance values altered to 100%
+     * @param modSlot Slot to check
+     * @param botEquipConfig Bots equipment config/chance values
+     * @param modToAddTemplate Mod being added to bots weapon
+     * @returns True if it should
+     */
+    protected shouldForceSubStockSlots(modSlot: string, botEquipConfig: EquipmentFilters, modToAddTemplate: ITemplateItem): boolean;
     /**
      * Is this modslot a front or rear sight
      * @param modSlot Slot to check
diff --git a/TypeScript/9RouterHooks/types/generators/RepeatableQuestGenerator.d.ts b/TypeScript/9RouterHooks/types/generators/RepeatableQuestGenerator.d.ts
index 339f322..866c4ec 100644
--- a/TypeScript/9RouterHooks/types/generators/RepeatableQuestGenerator.d.ts
+++ b/TypeScript/9RouterHooks/types/generators/RepeatableQuestGenerator.d.ts
@@ -28,6 +28,7 @@ export declare class RepeatableQuestGenerator {
     protected configServer: ConfigServer;
     protected cloner: ICloner;
     protected questConfig: IQuestConfig;
+    protected maxRandomNumberAttempts: number;
     constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, objectId: ObjectId, repeatableQuestHelper: RepeatableQuestHelper, repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, configServer: ConfigServer, cloner: ICloner);
     /**
      * This method is called by /GetClientRepeatableQuests/ and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
diff --git a/TypeScript/9RouterHooks/types/helpers/ItemHelper.d.ts b/TypeScript/9RouterHooks/types/helpers/ItemHelper.d.ts
index c304cee..4afcda3 100644
--- a/TypeScript/9RouterHooks/types/helpers/ItemHelper.d.ts
+++ b/TypeScript/9RouterHooks/types/helpers/ItemHelper.d.ts
@@ -76,7 +76,13 @@ export declare class ItemHelper {
      */
     generateUpdForItem(itemTemplate: ITemplateItem): Upd;
     /**
-     * Checks if an id is a valid item. Valid meaning that it's an item that be stored in stash
+     * Checks if a tpl is a valid item. Valid meaning that it's an item that be stored in stash
+     * Valid means:
+     *  Not quest item
+     *  'Item' type
+     *  Not on the invalid base types array
+     *  Price above 0 roubles
+     *  Not on item config blacklist
      * @param    {string}  tpl  the template id / tpl
      * @returns                 boolean; true for items that may be in player possession and not quest items
      */
diff --git a/TypeScript/9RouterHooks/types/helpers/ProfileHelper.d.ts b/TypeScript/9RouterHooks/types/helpers/ProfileHelper.d.ts
index cdab870..45a73cd 100644
--- a/TypeScript/9RouterHooks/types/helpers/ProfileHelper.d.ts
+++ b/TypeScript/9RouterHooks/types/helpers/ProfileHelper.d.ts
@@ -3,6 +3,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Common, CounterKeyValue, Stats } from "@spt/models/eft/common/tables/IBotBase";
 import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
 import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
+import { BonusType } from "@spt/models/enums/BonusType";
 import { SkillTypes } from "@spt/models/enums/SkillTypes";
 import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
@@ -190,6 +191,13 @@ export declare class ProfileHelper {
      * @param rowsToAdd How many rows to give profile
      */
     addStashRowsBonusToProfile(sessionId: string, rowsToAdd: number): void;
+    /**
+     * Iterate over all bonuses and sum up all bonuses of desired type in provided profile
+     * @param pmcProfile Player profile
+     * @param desiredBonus Bonus to sum up
+     * @returns Summed bonus value or 0 if no bonus found
+     */
+    getBonusValueFromProfile(pmcProfile: IPmcData, desiredBonus: BonusType): number;
     playerIsFleaBanned(pmcProfile: IPmcData): boolean;
     /**
      * Add an achievement to player profile
diff --git a/TypeScript/9RouterHooks/types/models/external/HttpFramework.d.ts b/TypeScript/9RouterHooks/types/models/external/HttpFramework.d.ts
index fda8732..96fb4ed 100644
--- a/TypeScript/9RouterHooks/types/models/external/HttpFramework.d.ts
+++ b/TypeScript/9RouterHooks/types/models/external/HttpFramework.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) => void;
 /**
@@ -6,7 +5,9 @@ export type HandleFn = (_: string, req: IncomingMessage, resp: ServerResponse) =
  *  @param basePath The base path
  *  @returns The decorator that create the listener proxy
  */
-export declare const Listen: (basePath: string) => <T extends new (...args: any[]) => any>(Base: T) => T;
+export declare const Listen: (basePath: string) => <T extends {
+    new (...args: any[]): any;
+}>(Base: T) => T;
 /**
  *  HTTP DELETE decorator
  */
diff --git a/TypeScript/9RouterHooks/types/routers/HttpRouter.d.ts b/TypeScript/9RouterHooks/types/routers/HttpRouter.d.ts
index 3fdb53f..5eb9af3 100644
--- a/TypeScript/9RouterHooks/types/routers/HttpRouter.d.ts
+++ b/TypeScript/9RouterHooks/types/routers/HttpRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { DynamicRouter, Router, StaticRouter } from "@spt/di/Router";
 export declare class HttpRouter {
diff --git a/TypeScript/9RouterHooks/types/routers/ImageRouter.d.ts b/TypeScript/9RouterHooks/types/routers/ImageRouter.d.ts
index eb3697f..ca9afad 100644
--- a/TypeScript/9RouterHooks/types/routers/ImageRouter.d.ts
+++ b/TypeScript/9RouterHooks/types/routers/ImageRouter.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ImageRouteService } from "@spt/services/mod/image/ImageRouteService";
 import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
diff --git a/TypeScript/9RouterHooks/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/9RouterHooks/types/routers/serializers/BundleSerializer.d.ts
index dc71cd8..91332ff 100644
--- a/TypeScript/9RouterHooks/types/routers/serializers/BundleSerializer.d.ts
+++ b/TypeScript/9RouterHooks/types/routers/serializers/BundleSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { BundleLoader } from "@spt/loaders/BundleLoader";
diff --git a/TypeScript/9RouterHooks/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/9RouterHooks/types/routers/serializers/ImageSerializer.d.ts
index 5c77243..92f06e3 100644
--- a/TypeScript/9RouterHooks/types/routers/serializers/ImageSerializer.d.ts
+++ b/TypeScript/9RouterHooks/types/routers/serializers/ImageSerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ImageRouter } from "@spt/routers/ImageRouter";
diff --git a/TypeScript/9RouterHooks/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/9RouterHooks/types/routers/serializers/NotifySerializer.d.ts
index 8c07f81..4e1f28d 100644
--- a/TypeScript/9RouterHooks/types/routers/serializers/NotifySerializer.d.ts
+++ b/TypeScript/9RouterHooks/types/routers/serializers/NotifySerializer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { NotifierController } from "@spt/controllers/NotifierController";
 import { Serializer } from "@spt/di/Serializer";
diff --git a/TypeScript/9RouterHooks/types/servers/HttpServer.d.ts b/TypeScript/9RouterHooks/types/servers/HttpServer.d.ts
index 52c59da..e54d4a8 100644
--- a/TypeScript/9RouterHooks/types/servers/HttpServer.d.ts
+++ b/TypeScript/9RouterHooks/types/servers/HttpServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { ApplicationContext } from "@spt/context/ApplicationContext";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
diff --git a/TypeScript/9RouterHooks/types/servers/WebSocketServer.d.ts b/TypeScript/9RouterHooks/types/servers/WebSocketServer.d.ts
index 6121824..f936d0f 100644
--- a/TypeScript/9RouterHooks/types/servers/WebSocketServer.d.ts
+++ b/TypeScript/9RouterHooks/types/servers/WebSocketServer.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import http, { IncomingMessage } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/9RouterHooks/types/servers/http/IHttpListener.d.ts b/TypeScript/9RouterHooks/types/servers/http/IHttpListener.d.ts
index ff148d6..5010148 100644
--- a/TypeScript/9RouterHooks/types/servers/http/IHttpListener.d.ts
+++ b/TypeScript/9RouterHooks/types/servers/http/IHttpListener.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 export interface IHttpListener {
     canHandle(sessionId: string, req: IncomingMessage): boolean;
diff --git a/TypeScript/9RouterHooks/types/servers/http/SptHttpListener.d.ts b/TypeScript/9RouterHooks/types/servers/http/SptHttpListener.d.ts
index ef68143..54499bf 100644
--- a/TypeScript/9RouterHooks/types/servers/http/SptHttpListener.d.ts
+++ b/TypeScript/9RouterHooks/types/servers/http/SptHttpListener.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { Serializer } from "@spt/di/Serializer";
 import { ILogger } from "@spt/models/spt/utils/ILogger";
diff --git a/TypeScript/9RouterHooks/types/servers/ws/IWebSocketConnectionHandler.d.ts b/TypeScript/9RouterHooks/types/servers/ws/IWebSocketConnectionHandler.d.ts
index 920dad4..9045dca 100644
--- a/TypeScript/9RouterHooks/types/servers/ws/IWebSocketConnectionHandler.d.ts
+++ b/TypeScript/9RouterHooks/types/servers/ws/IWebSocketConnectionHandler.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage } from "node:http";
 import { WebSocket } from "ws";
 export interface IWebSocketConnectionHandler {
diff --git a/TypeScript/9RouterHooks/types/servers/ws/SptWebSocketConnectionHandler.d.ts b/TypeScript/9RouterHooks/types/servers/ws/SptWebSocketConnectionHandler.d.ts
index 70fc96a..098c550 100644
--- a/TypeScript/9RouterHooks/types/servers/ws/SptWebSocketConnectionHandler.d.ts
+++ b/TypeScript/9RouterHooks/types/servers/ws/SptWebSocketConnectionHandler.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import { IncomingMessage } from "http";
 import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
diff --git a/TypeScript/9RouterHooks/types/services/InsuranceService.d.ts b/TypeScript/9RouterHooks/types/services/InsuranceService.d.ts
index f799102..d22e4c5 100644
--- a/TypeScript/9RouterHooks/types/services/InsuranceService.d.ts
+++ b/TypeScript/9RouterHooks/types/services/InsuranceService.d.ts
@@ -22,6 +22,7 @@ import { HashUtil } from "@spt/utils/HashUtil";
 import { RandomUtil } from "@spt/utils/RandomUtil";
 import { TimeUtil } from "@spt/utils/TimeUtil";
 import { ICloner } from "@spt/utils/cloners/ICloner";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 export declare class InsuranceService {
     protected logger: ILogger;
     protected databaseService: DatabaseService;
@@ -39,10 +40,11 @@ export declare class InsuranceService {
     protected mailSendService: MailSendService;
     protected configServer: ConfigServer;
     protected cloner: ICloner;
+    protected profileHelper: ProfileHelper;
     protected insured: Record<string, Record<string, Item[]>>;
     protected insuranceConfig: IInsuranceConfig;
     protected lostOnDeathConfig: ILostOnDeathConfig;
-    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
+    constructor(logger: ILogger, databaseService: DatabaseService, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, itemHelper: ItemHelper, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, localeService: LocaleService, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner, profileHelper: ProfileHelper);
     /**
      * Does player have insurance array
      * @param sessionId Player id
diff --git a/TypeScript/9RouterHooks/types/services/RagfairTaxService.d.ts b/TypeScript/9RouterHooks/types/services/RagfairTaxService.d.ts
index effb9f0..75d7b79 100644
--- a/TypeScript/9RouterHooks/types/services/RagfairTaxService.d.ts
+++ b/TypeScript/9RouterHooks/types/services/RagfairTaxService.d.ts
@@ -1,4 +1,5 @@
 import { ItemHelper } from "@spt/helpers/ItemHelper";
+import { ProfileHelper } from "@spt/helpers/ProfileHelper";
 import { IPmcData } from "@spt/models/eft/common/IPmcData";
 import { Item } from "@spt/models/eft/common/tables/IItem";
 import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
@@ -11,8 +12,9 @@ export declare class RagfairTaxService {
     protected databaseService: DatabaseService;
     protected ragfairPriceService: RagfairPriceService;
     protected itemHelper: ItemHelper;
+    protected profileHelper: ProfileHelper;
     protected playerOfferTaxCache: Record<string, IStorePlayerOfferTaxAmountRequestData>;
-    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper);
+    constructor(logger: ILogger, databaseService: DatabaseService, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper, profileHelper: ProfileHelper);
     storeClientOfferTaxValue(sessionId: string, offer: IStorePlayerOfferTaxAmountRequestData): void;
     clearStoredOfferTaxById(offerIdToRemove: string): void;
     getStoredClientOfferTaxValueById(offerIdToGet: string): IStorePlayerOfferTaxAmountRequestData;
diff --git a/TypeScript/9RouterHooks/types/services/mod/httpListener/HttpListenerMod.d.ts b/TypeScript/9RouterHooks/types/services/mod/httpListener/HttpListenerMod.d.ts
index 75e42ee..84c46c3 100644
--- a/TypeScript/9RouterHooks/types/services/mod/httpListener/HttpListenerMod.d.ts
+++ b/TypeScript/9RouterHooks/types/services/mod/httpListener/HttpListenerMod.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { IHttpListener } from "@spt/servers/http/IHttpListener";
 export declare class HttpListenerMod implements IHttpListener {
diff --git a/TypeScript/9RouterHooks/types/services/mod/httpListener/HttpListenerModService.d.ts b/TypeScript/9RouterHooks/types/services/mod/httpListener/HttpListenerModService.d.ts
index 23abfbe..ba73afe 100644
--- a/TypeScript/9RouterHooks/types/services/mod/httpListener/HttpListenerModService.d.ts
+++ b/TypeScript/9RouterHooks/types/services/mod/httpListener/HttpListenerModService.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { IncomingMessage, ServerResponse } from "node:http";
 import { DependencyContainer } from "tsyringe";
 export declare class HttpListenerModService {
diff --git a/TypeScript/9RouterHooks/types/utils/HashUtil.d.ts b/TypeScript/9RouterHooks/types/utils/HashUtil.d.ts
index 427c186..195dcdb 100644
--- a/TypeScript/9RouterHooks/types/utils/HashUtil.d.ts
+++ b/TypeScript/9RouterHooks/types/utils/HashUtil.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import crypto from "node:crypto";
 import fs from "node:fs";
 import { TimeUtil } from "@spt/utils/TimeUtil";
diff --git a/TypeScript/9RouterHooks/types/utils/HttpFileUtil.d.ts b/TypeScript/9RouterHooks/types/utils/HttpFileUtil.d.ts
index cc0d9ef..57f21c8 100644
--- a/TypeScript/9RouterHooks/types/utils/HttpFileUtil.d.ts
+++ b/TypeScript/9RouterHooks/types/utils/HttpFileUtil.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { ServerResponse } from "node:http";
 import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
 export declare class HttpFileUtil {
diff --git a/TypeScript/9RouterHooks/types/utils/ObjectId.d.ts b/TypeScript/9RouterHooks/types/utils/ObjectId.d.ts
index 91f64d3..4f87344 100644
--- a/TypeScript/9RouterHooks/types/utils/ObjectId.d.ts
+++ b/TypeScript/9RouterHooks/types/utils/ObjectId.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import { TimeUtil } from "@spt/utils/TimeUtil";
 export declare class ObjectId {
     protected timeUtil: TimeUtil;
diff --git a/TypeScript/9RouterHooks/types/utils/VFS.d.ts b/TypeScript/9RouterHooks/types/utils/VFS.d.ts
index 6287a2f..9c4fcc2 100644
--- a/TypeScript/9RouterHooks/types/utils/VFS.d.ts
+++ b/TypeScript/9RouterHooks/types/utils/VFS.d.ts
@@ -1,5 +1,3 @@
-/// <reference types="node" />
-/// <reference types="node" />
 import "reflect-metadata";
 import fs from "node:fs";
 import { IAsyncQueue } from "@spt/models/spt/utils/IAsyncQueue";
diff --git a/TypeScript/9RouterHooks/types/utils/logging/AbstractWinstonLogger.d.ts b/TypeScript/9RouterHooks/types/utils/logging/AbstractWinstonLogger.d.ts
index ef54434..b850284 100644
--- a/TypeScript/9RouterHooks/types/utils/logging/AbstractWinstonLogger.d.ts
+++ b/TypeScript/9RouterHooks/types/utils/logging/AbstractWinstonLogger.d.ts
@@ -1,4 +1,3 @@
-/// <reference types="node" />
 import fs from "node:fs";
 import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
 import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";