Complete Remake of the Modpack

This commit is contained in:
2025-05-16 00:38:39 -04:00
parent db58ebbefb
commit a57e637d5f
10423 changed files with 13308 additions and 2630183 deletions
+28
View File
@@ -0,0 +1,28 @@
[General]
gameName=spt
modid=0
version=d2025.5.14.0
newestVersion=
category="-1,"
nexusFileStatus=1
installationFile=MoxoPixel-TMS.zip
repository=Nexus
ignoredVersion=
comments=
notes=
nexusDescription=
url=
hasCustomURL=true
lastNexusQuery=
lastNexusUpdate=
nexusLastModified=2025-05-14T13:37:56Z
nexusCategory=0
converted=false
validated=false
color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0)
tracked=0
[installedFiles]
1\modid=0
1\fileid=0
size=1
@@ -0,0 +1,171 @@
{
"EnableCustomBotsHealth": true,
"//": "HEALTH FOR BOSSES",
"bossHealthMultiplier": 0.68,
"//": "HEALTH FOR BOSS FOLLOWERS",
"followerHealthMultiplier": 0.7,
"//": "HEALTH FOR BLOODHOUNDS, RAIDERS, CULTISTS, ROGUES",
"specialHealthMultiplier": 0.64,
"//": "HEALTH FOR PMC",
"pmcHealthMultiplier": 1.0,
"//": "HEALTH FOR SCAVS",
"scavHealthMultiplier": 0.7,
"//": "HEALTH FOR INFECTED (EVENT)",
"infectedHealthMultiplier": 0.45,
"EnableLostOnDeath": true,
"//": "SCABBARD = MELEE",
"LostOnDeath": {
"ArmBand": true,
"Headwear": true,
"Earpiece": true,
"FaceCover": true,
"ArmorVest": true,
"Eyewear": true,
"TacticalVest": true,
"Backpack": true,
"Holster": true,
"FirstPrimaryWeapon": false,
"SecondPrimaryWeapon": true,
"Scabbard": false,
"SpecialSlotItems": false,
"QuestItems": true,
"PocketItems": true
},
"FUInertia": true,
"HigherVaulting": true,
"MakeAllHeadsetsGood": true,
"//": "THE VALUES BELOW ARE A MIX BETWEEN MSA SORDIN AND PELTOR COMTAC VI HEADSET",
"HeadsetValues": {
"Distortion": 0.08,
"CompressorTreshold": -24,
"CompressorAttack": 35,
"CompressorRelease": 160,
"CompressorGain": 8,
"Resonance": 2.3,
"AmbientVolume": -30,
"DryVolume": -60,
"RolloffMultiplier": 1.135,
"HighpassFreq": 200,
"HighpassResonance": 2.2,
"LowpassFreq": 22000,
"EQBand1Frequency": 307,
"EQBand1Gain": 1.15,
"EQBand1Q": 1.2,
"EQBand2Frequency": 2500,
"EQBand2Gain": 1.2,
"EQBand2Q": 0.5,
"EQBand3Frequency": 4861,
"EQBand3Gain": 1.2,
"EQBand3Q": 0.6,
"EffectsReturnsCompressorSendLevel": -80,
"EffectsReturnsGroupVolume": -8,
"EnvCommonCompressorSendLevel": -8.5,
"EnvNatureCompressorSendLevel": -7,
"EnvTechnicalCompressorSendLevel": -15.5,
"GunsCompressorSendLevel": -7,
"HeadphonesMixerVolume": -7,
"AmbientCompressorSendLevel": -14,
"ClientPlayerCompressorSendLevel": -7
},
"MakeRepairKitLessOverpowered": true,
"WeaponRepairKitMaxResource": 500,
"ArmorRepairKitMaxResource": 600,
"//": "SET BACKGROUND COLORS FOR AMMOS PEN VALUE",
"ColouredAmmo": true,
"//": "AMMO WEIGHT ZERO",
"WeightlessAmmo": true,
"//": "DISABLE MAGAZINES PENALTIES FOR LOADING AMMO SPEED IN RAID",
"DisableMagazineAmmoLoadPenalty": true,
"//": "ADJUST BOTS GRENADE PRCISION",
"AdjustBotGrenades": true,
"//": "Grenade throw accuracy, less is more accurate. Around 0.1 is default",
"BotGrenadePrecision": 0.45,
"//": "Grenade throw level, less is more accurate. Around 0.15 is default",
"BotGrenadePerMeter": 0.25,
"//": "MAKE ALL FOREGRIPS HAVE SIMILAR STATS",
"MakeForegripsEqual": true,
"ForegripsErgo": 8,
"ForegripsRecoil": -3,
"//": "FIXES GRID PREVIEW FOR ITEMS THAT SHOULD NOT HAVE VERTICAL EXTRA SIZE, WHICH MAKES WEAPONS LOOK A BIT TOO BULKY IN STASH. THIS IS SAFE TO SET TRUE BUT SETTING FROM TRUE TO FALSE CAN MAKE YOU LOSE THE ITEM POSITION IN STASH IF TOO LITTLE SPACE IS GIVEN TO THE WEAPON AFFECTED.",
"//": "AFFECTED ITEMS: JP Enterprises Flat-Top 30mm ring scope mount, Nightforce Magmount 34mm ring scope mount with Ruggedized Accessory Platform, Recknagel Era-Tac 34mm ring scope mount, Recknagel Era-Tac 30mm ring scope mount, RPD 7.62x39 Buben 100-round box, PK 7.62x54R 100-round box",
"FixExtraSize": true,
"FixExtraSizeExtendedMags": true,
"//": "CONVERT EXTENDED MAGAZINES THAT HAVE 3x1 SIZE TO 2x1 SIZE, MAKING THEM SHORTER IN HEIGHT (YOU HAVE TO CLEAR CACHE IN LAUNCHER IF YOU WANT GOOD LOOKING THUMBNAILS IN STASH FOR THE ITEMS AFFECTED)",
"ExtendedMagsTwoSlotsHeight": false,
"//": "BOT CAPS CAN BE OVERWRITTEN BY MANY OTHER MODS. IF YOU WANT TO USE THIS, DISABLE OTHER MODS THAT CHANGE BOT CAPS. IF YOU USE OTHER MODS (SPAWN OR AI -MODS), DISABLE THIS",
"EnableCustomBotCaps": true,
"MaxBotCaps": {
"factory4_day": 15,
"factory4_night": 15,
"bigmap": 18,
"woods": 22,
"shoreline": 23,
"lighthouse": 23,
"rezervbase": 18,
"interchange": 20,
"laboratory": 18,
"tarkovstreets": 20,
"sandbox": 16,
"sandbox_high": 16,
"default": 18
},
"//": "ENABLE MORE LOOT ITEMS TO BE STORED IN SICC POUCH",
"EnableMoreItemsSicc": true,
"AddTheseToPouch": [
"573474f924597738002c6174",
"5734758f24597738025ee253",
"573478bc24597738002c6175",
"62a09cfe4f842e1bd12da3e4",
"59faf7ca86f7740dbe19f6c2",
"62a09cb7a04c0c5c6e0a84f8",
"590c651286f7741e566b6461",
"62a091170b9d3c46de5b6cf2",
"5bc9bdb8d4351e003562b8a1",
"590c645c86f77412b01304d9",
"5c1265fc86f7743f896a21c2",
"64f09c02b63b74469b6c149f",
"6389c8fb46b54c634724d847",
"590c37d286f77443be3d7827",
"590c392f86f77444754deb29",
"62a0a124de7ac81993580542",
"5bc9b720d4351e450201234b",
"61bf7c024770ee6f9c6b8b53",
"5c12613b86f7743bbe2c3f76",
"5e54f62086f774219b0f1937",
"655c652d60d0ac437100fed7",
"655c663a6689c676ce57af85",
"655c669103999d3c810c025b",
"655c66e40b2de553b618d4b8",
"655c673673a43e23e857aebd",
"655c67782a1356436041c9c5",
"655c67ab0d37ca5135388f4b",
"66572b8d80b1cd4b6a67847f",
"66572be36a723f7f005a066e",
"66572c82ad599021091c6118",
"66572cbdad599021091c611a",
"590de71386f774347051a052",
"672e2e75d78fe9e90c8cb393",
"62a09e974f842e1bd12da3f0",
"66b37eb4acff495a29492407",
"6638a5474e92f038531e210e",
"66b37ea4c5d72b0277488439",
"590c639286f774151567fa95"
],
"LegaMedalInsideMoneyCase": true
}
@@ -0,0 +1,26 @@
{
"name": "TMS",
"version": "1.0.8",
"main": "src/mod.js",
"license": "MIT",
"author": "MoxoPixel",
"sptVersion": "3.11.X",
"isBundleMod": false,
"scripts": {
"setup": "npm i",
"build": "node ./build.mjs",
"buildinfo": "node ./build.mjs --verbose"
},
"devDependencies": {
"@types/node": "20.11",
"@typescript-eslint/eslint-plugin": "7.2",
"@typescript-eslint/parser": "7.2",
"archiver": "^6.0",
"eslint": "8.57",
"fs-extra": "11.2",
"ignore": "^5.2",
"tsyringe": "4.8.0",
"typescript": "5.4",
"winston": "3.12"
}
}
@@ -0,0 +1,391 @@
import { DependencyContainer } from "tsyringe";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { IPreSptLoadMod } from "@spt/models/external/IPreSptLoadMod";
import { IPostDBLoadMod } from "@spt/models/external/IPostDBLoadMod";
import { DatabaseServer } from "@spt/servers/DatabaseServer";
import { ConfigServer } from "@spt/servers/ConfigServer";
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
import { BaseClasses } from "@spt/models/enums/BaseClasses";
import { ILostOnDeathConfig } from "@spt/models/spt/config/ILostOnDeathConfig";
import { IBotConfig } from "@spt/models/spt/config/IBotConfig";
import * as configData from "../config.json";
class TMS implements IPreSptLoadMod, IPostDBLoadMod {
private readonly loadingMessages = [
"Time to bend Tarkovs rules harder than a scav bends to loot",
"Reshaping Tarkov like a chad reshapes his meta M4",
"Modifying Tarkov faster than Mechanic modifies guns",
"Breaking Tarkovs rules like a hatchling breaks containers",
"Tweaking settings smoother than Reshalas golden TT",
"Configuring Tarkov harder than a PMC configures his M4",
"Optimizing Tarkov harder than a rat optimizes his stash",
"Adjusting settings faster than a chad adjusts his sights",
"Tweaking Tarkov harder than a PMC tweaks his gear"
];
private getRandomLoadingMessage(): string {
return this.loadingMessages[Math.floor(Math.random() * this.loadingMessages.length)];
}
public configServer: ConfigServer;
public container: DependencyContainer;
constructor() { }
public preSptLoad(container: DependencyContainer): void {
this.container = container;
this.configServer = container.resolve<ConfigServer>("ConfigServer");
}
public postDBLoad(container: DependencyContainer): void {
const logger = container.resolve<ILogger>("WinstonLogger");
const databaseServer = container.resolve<DatabaseServer>("DatabaseServer");
const globals = databaseServer.getTables().globals.config;
const tables = databaseServer.getTables();
const dbItems = tables.templates.items;
const enemyTypes = tables.bots.types;
if (configData.EnableLostOnDeath) {
const dbLODConfig = this.configServer.getConfig<ILostOnDeathConfig>(ConfigTypes.LOST_ON_DEATH);
dbLODConfig.questItems = configData.LostOnDeath.QuestItems;
dbLODConfig.specialSlotItems = configData.LostOnDeath.SpecialSlotItems;
dbLODConfig.equipment.ArmBand = configData.LostOnDeath.ArmBand;
dbLODConfig.equipment.Headwear = configData.LostOnDeath.Headwear;
dbLODConfig.equipment.Earpiece = configData.LostOnDeath.Earpiece;
dbLODConfig.equipment.FaceCover = configData.LostOnDeath.FaceCover;
dbLODConfig.equipment.ArmorVest = configData.LostOnDeath.ArmorVest;
dbLODConfig.equipment.Eyewear = configData.LostOnDeath.Eyewear;
dbLODConfig.equipment.TacticalVest = configData.LostOnDeath.TacticalVest;
dbLODConfig.equipment.Backpack = configData.LostOnDeath.Backpack;
dbLODConfig.equipment.Holster = configData.LostOnDeath.Holster;
dbLODConfig.equipment.Scabbard = configData.LostOnDeath.Scabbard;
dbLODConfig.equipment.FirstPrimaryWeapon = configData.LostOnDeath.FirstPrimaryWeapon;
dbLODConfig.equipment.SecondPrimaryWeapon = configData.LostOnDeath.SecondPrimaryWeapon;
dbLODConfig.equipment.PocketItems = configData.LostOnDeath.PocketItems;
}
if (configData.FUInertia) {
globals.Inertia.BaseJumpPenalty = 0.03;
globals.Inertia.ExitMovementStateSpeedThreshold.x = 0.001;
globals.Inertia.ExitMovementStateSpeedThreshold.y = 0.001;
globals.Inertia.InertiaLimitsStep = 0.1;
globals.Inertia.MaxTimeWithoutInput.x = 0.01;
globals.Inertia.MaxTimeWithoutInput.y = 0.03;
globals.Inertia.PreSprintAccelerationLimits.x = 8;
globals.Inertia.PreSprintAccelerationLimits.y = 4;
globals.Inertia.SprintAccelerationLimits.x = 15;
globals.Inertia.SprintBrakeInertia.y = 0;
globals.Inertia.SprintTransitionMotionPreservation.x = 0.006;
globals.Inertia.SprintTransitionMotionPreservation.y = 0.008;
globals.Inertia.WalkInertia.x = 0.002;
globals.Inertia.WalkInertia.y = 0.025;
}
if (configData.HigherVaulting) {
globals.VaultingSettings.MovesSettings.ClimbSettings.MoveRestrictions.MaxLength = 17;
globals.VaultingSettings.MovesSettings.ClimbSettings.MoveRestrictions.MaxHeight = 2.2;
}
if (configData.EnableCustomBotsHealth) {
const enemyTypes = tables.bots.types;
const bossHealthMultiplierValue = configData.bossHealthMultiplier;
const followerHealthMultiplierValue = configData.followerHealthMultiplier;
const specialHealthMultiplierValue = configData.specialHealthMultiplier;
const pmcHealthMultiplierValue = configData.pmcHealthMultiplier;
const scavHealthMultiplierValue = configData.scavHealthMultiplier;
const infectedHealthMultiplierValue = configData.infectedHealthMultiplier;
for (const key in enemyTypes) {
if (key.startsWith('boss')) {
const bossBot = enemyTypes[key];
const bodyParts = bossBot.health.BodyParts[0];
for (const bodyPart in bodyParts) {
if (bodyParts.hasOwnProperty(bodyPart)) {
const partData = bodyParts[bodyPart];
partData.min = partData.min * bossHealthMultiplierValue;
partData.max = partData.max * bossHealthMultiplierValue;
}
}
}
if (key.startsWith('follower')) {
const followerBot = enemyTypes[key];
const bodyParts = followerBot.health.BodyParts[0];
for (const bodyPart in bodyParts) {
if (bodyParts.hasOwnProperty(bodyPart)) {
const partData = bodyParts[bodyPart];
partData.min = partData.min * followerHealthMultiplierValue;
partData.max = partData.max * followerHealthMultiplierValue;
}
}
}
if (key.startsWith('arenafighter') || key.startsWith('sectant') || key.startsWith('exusec') || key.startsWith('pmcbot')) {
const specialBot = enemyTypes[key];
const bodyParts = specialBot.health.BodyParts[0];
for (const bodyPart in bodyParts) {
if (bodyParts.hasOwnProperty(bodyPart)) {
const partData = bodyParts[bodyPart];
partData.min = partData.min * specialHealthMultiplierValue;
partData.max = partData.max * specialHealthMultiplierValue;
}
}
}
if (key.startsWith('usec') || key.startsWith('bear') || key.startsWith('pmc') || key.startsWith('peacemaker') || key.startsWith('skier')) {
const pmcBot = enemyTypes[key];
const bodyParts = pmcBot.health.BodyParts[0];
for (const bodyPart in bodyParts) {
if (bodyParts.hasOwnProperty(bodyPart)) {
const partData = bodyParts[bodyPart];
partData.min = partData.min * pmcHealthMultiplierValue;
partData.max = partData.max * pmcHealthMultiplierValue;
}
}
}
if (key.startsWith('assault') || key.startsWith('cursedassault') || key.startsWith('crazyassaultevent')) {
const scavBot = enemyTypes[key];
const bodyParts = scavBot.health.BodyParts[0];
for (const bodyPart in bodyParts) {
if (bodyParts.hasOwnProperty(bodyPart)) {
const partData = bodyParts[bodyPart];
partData.min = partData.min * scavHealthMultiplierValue;
partData.max = partData.max * scavHealthMultiplierValue;
}
}
}
if (key.startsWith('infected')) {
const infectedBot = enemyTypes[key];
const bodyParts = infectedBot.health.BodyParts[0];
for (const bodyPart in bodyParts) {
if (bodyParts.hasOwnProperty(bodyPart)) {
const partData = bodyParts[bodyPart];
partData.min = partData.min * infectedHealthMultiplierValue;
partData.max = partData.max * infectedHealthMultiplierValue;
}
}
}
}
}
if (configData.MakeAllHeadsetsGood) {
const headsetValues = configData.HeadsetValues;
for (const item in dbItems) {
if (dbItems[item]._parent === BaseClasses.HEADPHONES) {
const itemProps = dbItems[item]._props;
itemProps.Distortion = headsetValues.Distortion;
itemProps.CompressorTreshold = headsetValues.CompressorTreshold;
itemProps.CompressorAttack = headsetValues.CompressorAttack;
itemProps.CompressorRelease = headsetValues.CompressorRelease;
itemProps.CompressorGain = headsetValues.CompressorGain;
itemProps.Resonance = headsetValues.Resonance;
itemProps.AmbientVolume = headsetValues.AmbientVolume;
itemProps.DryVolume = headsetValues.DryVolume;
itemProps.RolloffMultiplier = headsetValues.RolloffMultiplier;
itemProps.HighpassFreq = headsetValues.HighpassFreq;
itemProps.HighpassResonance = headsetValues.HighpassResonance;
itemProps.LowpassFreq = headsetValues.LowpassFreq;
itemProps.EQBand1Frequency = headsetValues.EQBand1Frequency;
itemProps.EQBand1Gain = headsetValues.EQBand1Gain;
itemProps.EQBand1Q = headsetValues.EQBand1Q;
itemProps.EQBand2Frequency = headsetValues.EQBand2Frequency;
itemProps.EQBand2Gain = headsetValues.EQBand2Gain;
itemProps.EQBand2Q = headsetValues.EQBand2Q;
itemProps.EQBand3Frequency = headsetValues.EQBand3Frequency;
itemProps.EQBand3Gain = headsetValues.EQBand3Gain;
itemProps.EQBand3Q = headsetValues.EQBand3Q;
itemProps.EffectsReturnsCompressorSendLevel = headsetValues.EffectsReturnsCompressorSendLevel;
itemProps.EffectsReturnsGroupVolume = headsetValues.EffectsReturnsGroupVolume;
itemProps.EnvCommonCompressorSendLevel = headsetValues.EnvCommonCompressorSendLevel;
itemProps.EnvNatureCompressorSendLevel = headsetValues.EnvNatureCompressorSendLevel;
itemProps.EnvTechnicalCompressorSendLevel = headsetValues.EnvTechnicalCompressorSendLevel;
itemProps.GunsCompressorSendLevel = headsetValues.GunsCompressorSendLevel;
itemProps.HeadphonesMixerVolume = headsetValues.HeadphonesMixerVolume;
itemProps.AmbientCompressorSendLevel = headsetValues.AmbientCompressorSendLevel;
itemProps.ClientPlayerCompressorSendLevel = headsetValues.ClientPlayerCompressorSendLevel;
}
}
}
if (configData.MakeRepairKitLessOverpowered) {
const ArmorRepairKit = "591094e086f7747caa7bb2ef";
const ArmorRepair = dbItems[ArmorRepairKit];
ArmorRepair._props.MaxRepairResource = configData.ArmorRepairKitMaxResource;
const WeaponRepairKit = "5910968f86f77425cf569c32";
const WeaponRepair = dbItems[WeaponRepairKit];
WeaponRepair._props.MaxRepairResource = configData.WeaponRepairKitMaxResource;
}
if (configData.ColouredAmmo) {
for (const item in dbItems) {
if (dbItems[item]._parent === BaseClasses.AMMO) {
const itemProps = dbItems[item]._props;
const pen = itemProps.PenetrationPower;
let colour = '';
if (pen > 60) {
colour = 'red'; // SuperPen
} else if (pen > 50) {
colour = 'yellow'; // HighPen
} else if (pen > 40) {
colour = 'violet'; // MedHighPen
} else if (pen > 30) {
colour = 'blue'; // MedPen
} else if (pen > 20) {
colour = 'green'; // LowMedPen
} else {
colour = 'grey'; // LowPen
}
itemProps.BackgroundColor = colour;
}
}
}
if (configData.WeightlessAmmo) {
for (const item in dbItems) {
if (dbItems[item]._parent === BaseClasses.AMMO) {
const itemProps = dbItems[item]._props;
itemProps.Weight = 0;
}
}
}
if (configData.DisableMagazineAmmoLoadPenalty) {
for (const item in dbItems) {
if (dbItems[item]._parent === BaseClasses.MAGAZINE) {
const itemProps = dbItems[item]._props;
itemProps.LoadUnloadModifier = 0;
}
}
}
if (configData.AdjustBotGrenades) {
const botGrenadePrecisionValue = Math.max(0, configData.BotGrenadePrecision);
const botGrenadePerMeterValue = Math.max(0, configData.BotGrenadePerMeter);
try {
for (const key in enemyTypes) {
if (!enemyTypes.hasOwnProperty(key)) continue;
const bot = enemyTypes[key];
const difficulties = bot?.difficulty;
if (difficulties) {
['easy', 'normal', 'hard', 'impossible'].forEach(level => {
if (difficulties[level]?.Grenade) {
difficulties[level].Grenade.GrenadePrecision = botGrenadePrecisionValue;
difficulties[level].Grenade.GrenadePerMeter = botGrenadePerMeterValue;
}
});
}
}
} catch (error) {
logger.error(`Error adjusting bot grenades: ${error.message}`);
}
}
if (configData.MakeForegripsEqual) {
const ForegripsErgo = configData.ForegripsErgo;
const ForegripsRecoil = configData.ForegripsRecoil;
try {
for (const item in dbItems) {
if (!dbItems.hasOwnProperty(item)) continue;
const currentItem = dbItems[item];
if (!currentItem?._props) continue;
if (currentItem._parent === BaseClasses.FOREGRIP) {
currentItem._props.Ergonomics = ForegripsErgo;
currentItem._props.Recoil = ForegripsRecoil;
}
}
} catch (error) {
logger.error(`Error adjusting foregrips: ${error.message}`);
}
}
if (configData.FixExtraSize) {
for (const item in dbItems) {
if (dbItems[item]._parent === BaseClasses.MAGAZINE) {
const itemProps = dbItems[item]._props;
if (dbItems[item]._id == "6513f0a194c72326990a3868") {
itemProps.ExtraSizeDown = 0;
}
if (dbItems[item]._id == "646372518610c40fc20204e8") {
itemProps.ExtraSizeDown = 1;
}
}
if (dbItems[item]._parent === BaseClasses.MOUNT) {
const itemProps = dbItems[item]._props;
if (dbItems[item]._id == "5a37ca54c4a282000d72296a") {
itemProps.ExtraSizeUp = 0;
}
if (dbItems[item]._id == "5aa66c72e5b5b00016327c93") {
itemProps.ExtraSizeUp = 0;
}
if (dbItems[item]._id == "61713cc4d8e3106d9806c109") {
itemProps.ExtraSizeUp = 0;
}
if (dbItems[item]._id == "6171407e50224f204c1da3c5") {
itemProps.ExtraSizeUp = 0;
}
}
}
}
if (configData.FixExtraSizeExtendedMags) {
for (const item in dbItems) {
if (dbItems[item]._parent === BaseClasses.MAGAZINE) {
const itemProps = dbItems[item]._props;
if (itemProps.Height === 3 && itemProps.Width === 1) {
itemProps.ExtraSizeDown = 1;
if (configData.ExtendedMagsTwoSlotsHeight) {
itemProps.Height = 2;
}
}
}
}
}
if (configData.EnableCustomBotCaps) {
const dbBotConfig = this.configServer.getConfig<IBotConfig>(ConfigTypes.BOT);
dbBotConfig.maxBotCap.factory4_day = configData.MaxBotCaps.factory4_day;
dbBotConfig.maxBotCap.factory4_night = configData.MaxBotCaps.factory4_night;
dbBotConfig.maxBotCap.bigmap = configData.MaxBotCaps.bigmap;
dbBotConfig.maxBotCap.woods = configData.MaxBotCaps.woods;
dbBotConfig.maxBotCap.shoreline = configData.MaxBotCaps.shoreline;
dbBotConfig.maxBotCap.lighthouse = configData.MaxBotCaps.lighthouse;
dbBotConfig.maxBotCap.rezervbase = configData.MaxBotCaps.rezervbase;
dbBotConfig.maxBotCap.interchange = configData.MaxBotCaps.interchange;
dbBotConfig.maxBotCap.laboratory = configData.MaxBotCaps.laboratory;
dbBotConfig.maxBotCap.tarkovstreets = configData.MaxBotCaps.tarkovstreets;
dbBotConfig.maxBotCap.sandbox = configData.MaxBotCaps.sandbox;
dbBotConfig.maxBotCap.sandbox_high = configData.MaxBotCaps.sandbox_high;
dbBotConfig.maxBotCap.default = configData.MaxBotCaps.default;
}
if (configData.EnableMoreItemsSicc) {
const SICC = tables.templates.items["5d235bb686f77443f4331278"];
const filterArray = SICC["_props"]["Grids"][0]["_props"]["filters"][0]["Filter"];
const newValuesToAdd = configData.AddTheseToPouch;
filterArray.push(...newValuesToAdd);
}
if (configData.LegaMedalInsideMoneyCase) {
const MONEYCASE = tables.templates.items["59fb016586f7746d0d4b423a"];
const filterArray = MONEYCASE["_props"]["Grids"][0]["_props"]["filters"][0]["Filter"];
filterArray.push("6656560053eaaa7a23349c86");
}
logger.info("---------------------------------------------------");
logger.info(`TMS Loaded - ${this.getRandomLoadingMessage()}`);
logger.info("---------------------------------------------------");
}
}
module.exports = { mod: new TMS() };