Removed Potential Mod Corrupting Game

This commit is contained in:
Rage 2025-01-15 21:33:26 -05:00
parent 5d24318a39
commit 3ebaed3777
46 changed files with 2 additions and 9619 deletions

View File

@ -1,28 +0,0 @@
[General]
gameName=spt
modid=0
version=d2025.1.15.0
newestVersion=
category="1,"
nexusFileStatus=1
installationFile=Black Clothing Pack.zip
repository=Nexus
ignoredVersion=
comments=
notes=
nexusDescription=
url=
hasCustomURL=false
lastNexusQuery=
lastNexusUpdate=
nexusLastModified=2025-01-16T01:59:06Z
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

View File

@ -1,143 +0,0 @@
{
"manifest": [
{
"key": "tshirt_bear_blackblack.bundle",
"dependencyKeys": [
"cubemaps",
"shaders"
]
},
{
"key": "hands_tshirt_bear_blackblack.skin.bundle",
"dependencyKeys": [
"assets/content/hands/bear/bear_hands_watch_texture.bundles",
"assets/content/hands/bear/bear_watch.bundle",
"cubemaps",
"shaders"
]
},
{
"key": "doorkickerblack.bundle",
"dependencyKeys": [
"assets/commonassets/physics/physicsmaterials.bundle",
"cubemaps",
"shaders"
]
},
{
"key": "doorkickerundersnake.bundle",
"dependencyKeys": [
"assets/commonassets/physics/physicsmaterials.bundle",
"cubemaps",
"shaders"
]
},
{
"key": "pants_bear_spnablack.bundle",
"dependencyKeys": [
"cubemaps",
"shaders"
]
},
{
"key": "pants_usec_beltstaffblack.bundle",
"dependencyKeys": [
"cubemaps",
"shaders"
]
},
{
"key": "pants_usec_cryeacblack.bundle",
"dependencyKeys": [
"cubemaps",
"shaders"
]
},
{
"key": "pants_usec_cryeprecisionblack.bundle",
"dependencyKeys": [
"cubemaps",
"shaders"
]
},
{
"key": "hands_usec_velocityblack.skin.bundle",
"dependencyKeys": [
"cubemaps",
"shaders"
]
},
{
"key": "tshirt_usec_velocityblack.bundle",
"dependencyKeys": [
"cubemaps",
"shaders"
]
},
{
"key": "usec_hands_skinblack.bundle",
"dependencyKeys": [
"cubemaps",
"assets/content/hands/bear/bear_hands_watch_texture.bundles",
"assets/content/hands/bear/bear_watch.bundle",
"assets/content/hands/usec/materials/watch_usec_textures",
"shaders"
]
},
{
"key": "tshirt_usec_cryeacblack.bundle",
"dependencyKeys": [
"cubemaps",
"shaders"
]
},
{
"key": "top_usec_nightpatrolblack.bundle",
"dependencyKeys": [
"cubemaps",
"shaders"
]
},
{
"key": "hands_usec_nightpatrolblack.bundle",
"dependencyKeys": [
"assets/content/hands/bear/bear_hands_watch_texture.bundles",
"assets/content/hands/bear/bear_watch.bundle",
"assets/content/hands/hands_usec_nightpatrol/hands_usec_nightpatrol.skin.bundle",
"assets/content/hands/usec/materials/watch_usec_textures",
"cubemaps",
"shaders"
]
},
{
"key": "top_bear_ops_windshirtblack.bundle",
"dependencyKeys": [
"cubemaps",
"shaders"
]
},
{
"key": "hands_bear_ops_windshirtblack.skin.bundle",
"dependencyKeys": [
"cubemaps",
"shaders"
]
},
{
"key": "top_bear_zaslonblack.bundle",
"dependencyKeys": [
"cubemaps",
"shaders"
]
},
{
"key": "hands_bear_zaslonblack.skin.bundle",
"dependencyKeys": [
"assets/content/hands/bear/bear_hands_watch_texture.bundles",
"assets/content/hands/bear/bear_watch.bundle",
"cubemaps",
"shaders"
]
}
]
}

View File

@ -1,174 +0,0 @@
[
{
"type": "top",
"suiteId": "66d38ddddfbba58228026603",
"outfitId": "6787bab744fe079262113071",
"topId": "66d38ddddfbba58228026601",
"handsId": "66d38ddddfbba58228026602",
"locales": {
"en": "Black T-shirt Contractor"
},
"topBundlePath": "tshirt_bear_blackblack.bundle",
"handsBundlePath": "hands_tshirt_bear_blackblack.skin.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 50000
},
{
"type": "top",
"suiteId": "66d38ddddfbba58228026606",
"outfitId": "6787bab744fe079262113072",
"topId": "66d38ddddfbba58228026604",
"handsId": "66d38ddddfbba58228026605",
"locales": {
"en": "Black Ops MGS"
},
"topBundlePath": "top_bear_ops_windshirtblack.bundle",
"handsBundlePath": "hands_bear_ops_windshirtblack.skin.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 50000
},
{
"type": "top",
"suiteId": "66d38ddddfbba58228026609",
"outfitId": "6787bab744fe079262113073",
"topId": "66d38ddddfbba58228026607",
"handsId": "66d38ddddfbba58228026608",
"locales": {
"en": "Black Boss Delta"
},
"topBundlePath": "tshirt_usec_velocityblack.bundle",
"handsBundlePath": "hands_usec_velocityblack.skin.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 50000
},
{
"type": "top",
"suiteId": "66d38ddddfbba58228026612",
"outfitId": "6787bab744fe079262113074",
"topId": "66d38ddddfbba58228026610",
"handsId": "66d38ddddfbba58228026611",
"locales": {
"en": "Black Zaslon"
},
"topBundlePath": "top_bear_zaslonblack.bundle",
"handsBundlePath": "hands_bear_zaslonblack.skin.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 50000
},
{
"type": "top",
"suiteId": "66d38ddddfbba58228026615",
"outfitId": "6787bab744fe079262113075",
"topId": "66d38ddddfbba58228026613",
"handsId": "66d38ddddfbba58228026614",
"locales": {
"en": "Black UBACS"
},
"topBundlePath": "tshirt_usec_cryeacblack.bundle",
"handsBundlePath": "usec_hands_skinblackbundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 50000
},
{
"type": "top",
"suiteId": "66d38ddddfbba58228026618",
"outfitId": "6787bab744fe079262113076",
"topId": "66f3b4bd9543debfdf9bf917",
"handsId": "66d38ddddfbba58228026616",
"locales": {
"en": "Black Night Patrol"
},
"topBundlePath": "top_usec_nightpatrolblack.bundle",
"handsBundlePath": "hands_usec_nightpatrolblack.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 50000
},
{
"type": "bottom",
"suiteId": "6787bdb46282b342303a8131",
"outfitId": "66d38ddddfbba58228026621",
"bottomId": "66d38ddddfbba58228026620",
"locales": {
"en": "Black SPN"
},
"bottomBundlePath": "pants_bear_spnablack.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 40000
},
{
"type": "bottom",
"suiteId": "6787c1b8040844fd1e8a00f4",
"outfitId": "6787c1b33bda40ac1e092522",
"bottomId": "6787c1b33bda40ac1e092521",
"locales": {
"en": "Black Sage Warrior"
},
"bottomBundlePath": "pants_usec_beltstaffblack.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 40000
},
{
"type": "bottom",
"suiteId": "6787bdb46282b342303a8133",
"outfitId": "66d38ddddfbba58228026624",
"bottomId": "66d38ddddfbba58228026623",
"locales": {
"en": "Black Crye Precision"
},
"bottomBundlePath": "pants_usec_cryeacblack.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 40000
},
{
"type": "bottom",
"suiteId": "6787bdb46282b342303a8134",
"outfitId": "66d38ddddfbba58228026626",
"bottomId": "66d38ddddfbba58228026625",
"locales": {
"en": "Black Infiltrator Pants"
},
"bottomBundlePath": "pants_usec_cryeprecisionblack.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 40000
}
]

View File

@ -1,31 +0,0 @@
{
"name": "Black Clothing Pack",
"version": "1.0.2",
"sptVersion": "3.10.X",
"loadBefore": [],
"loadAfter": [],
"incompatibilities": [],
"isBundleMod": true,
"main": "src/mod.js",
"scripts": {
"setup": "npm i",
"build": "node ./build.mjs",
"buildinfo": "node ./build.mjs --verbose",
"buildcopy": "node ./buildcopy.mjs"
},
"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"
},
"author": "K0pat1ch",
"contributors": "",
"license": "CC BY-NC-ND 4.0,"
}

View File

@ -1,323 +0,0 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CustomClothingService = void 0;
const configConsts_1 = require("./references/configConsts");
const node_fs_1 = __importDefault(require("node:fs"));
const node_path_1 = __importDefault(require("node:path"));
class CustomClothingService {
instanceManager;
preSptLoad(instanceManager) {
this.instanceManager = instanceManager;
}
postDBLoad() {
const clothingJsonsPath = node_path_1.default.join(__dirname, "../db/clothing");
if (this.instanceManager.debug) {
console.log(`Scanning directory for clothing JSON files: ${clothingJsonsPath}`);
}
const jsonFiles = node_fs_1.default.readdirSync(clothingJsonsPath).filter(file => file.endsWith(".json"));
if (this.instanceManager.debug) {
console.log(`Found ${jsonFiles.length} JSON file(s) in ${clothingJsonsPath}`);
}
for (const jsonFile of jsonFiles) {
const filePath = node_path_1.default.join(clothingJsonsPath, jsonFile);
if (this.instanceManager.debug) {
console.log(`Processing file: ${jsonFile} at path: ${filePath}`);
}
try {
// Read and parse the JSON file
const clothingConfigs = this.readJsonFile(filePath);
if (this.instanceManager.debug) {
console.log(`Parsed JSON content from ${jsonFile}:`, clothingConfigs);
}
// Process the parsed content
for (const clothingConfig of clothingConfigs) {
if (this.instanceManager.debug) {
console.log("Processing clothing config:", clothingConfig);
}
try {
this.processClothingConfig(clothingConfig);
if (this.instanceManager.debug) {
console.log("Successfully processed clothing config:", clothingConfig);
}
}
catch (error) {
console.error(`Error processing config in ${jsonFile}:`, error);
}
}
if (this.instanceManager.debug) {
console.log(`Successfully processed all configs in ${jsonFile}.`);
}
}
catch (error) {
console.error(`Error reading or parsing ${jsonFile}:`, error);
}
}
}
processClothingConfig(clothingConfig) {
if (this.instanceManager.debug) {
console.log(`Processing config of type: ${clothingConfig.type}`);
}
if (clothingConfig.type === "top") {
this.addTop(clothingConfig);
}
else if (clothingConfig.type === "bottom") {
this.addBottom(clothingConfig);
}
else {
console.error("Unknown config type:", clothingConfig.type);
}
}
addSuiteToTrader(traderId, outfitId, suiteId, loyaltyLevel, profileLevel, standing, currencyId, price) {
const traderIdFromEnum = configConsts_1.traderIDs[traderId] || traderId;
const currencyIdFromEnum = configConsts_1.currencyIDs[currencyId] || currencyId;
this.instanceManager.database.traders[traderIdFromEnum].base.customization_seller = true;
if (!this.instanceManager.database.traders[traderIdFromEnum].suits) {
this.instanceManager.database.traders[traderIdFromEnum].suits = [];
}
const newTraderOutfit = {
"_id": outfitId,
"tid": traderIdFromEnum,
"suiteId": suiteId,
"isActive": true,
"isHiddenInPVE": false,
"externalObtain": false,
"internalObtain": true,
"requirements": {
"loyaltyLevel": loyaltyLevel,
"profileLevel": profileLevel,
"standing": standing,
"skillRequirements": [],
"questRequirements": [],
"achievementRequirements": [],
"itemRequirements": [
{
"count": price,
"_tpl": currencyIdFromEnum,
"onlyFunctional": true
}
],
"requiredTid": traderIdFromEnum
}
};
if (this.instanceManager.debug) {
console.log("Adding new trader outfit:", newTraderOutfit);
}
this.instanceManager.database.traders[traderIdFromEnum].suits.push(newTraderOutfit);
}
addTop(clothingConfig) {
const { side, suiteId, topId, handsId, outfitId, topBundlePath, handsBundlePath, traderId, loyaltyLevel, profileLevel, standing, currencyId, price, watchPrefab, watchPosition, watchRotation } = clothingConfig;
try {
if (this.instanceManager.debug) {
console.log("Adding top");
}
const DefaultWatchPrefab = {
"path": "",
"rcid": ""
};
const DefaultWatchPosition = {
"x": 0,
"y": 0,
"z": 0
};
const DefaultWatchRotation = {
"x": 0,
"y": 0,
"z": 0
};
const newTop = {
"_id": topId,
"_name": `${topId}_name`,
"_parent": "5cc0868e14c02e000c6bea68",
"_type": "Item",
"_props": {
"Description": `${topId}_desc`,
"Name": `${topId}_name`,
"ShortName": `${topId}_shortName`,
"Side": [
"Usec"
],
"BodyPart": "Body",
"IntegratedArmorVest": false,
"Prefab": {
"path": topBundlePath,
"rcid": ""
},
"WatchPosition": watchPosition ?? DefaultWatchPosition,
"WatchPrefab": watchPrefab ?? DefaultWatchPrefab,
"WatchRotation": watchRotation ?? DefaultWatchRotation
},
"_proto": "5cde95d97d6c8b647a3769b0"
};
if (this.instanceManager.debug) {
console.log(`Added top for ${topId}:`, newTop);
}
this.instanceManager.database.templates.customization[topId] = newTop;
// add hands
if (this.instanceManager.debug) {
console.log(`Adding hands for topId: ${topId}`);
}
const newHands = {
"_id": handsId,
"_name": `${handsId}_name`,
"_parent": "5cc086a314c02e000c6bea69",
"_type": "Item",
"_props": {
"Description": `${handsId}_desc`,
"Name": `${handsId}_name`,
"ShortName": `${handsId}_shortName`,
"Side": [
"Usec"
],
"BodyPart": "Hands",
"IntegratedArmorVest": false,
"Prefab": {
"path": handsBundlePath,
"rcid": ""
},
"WatchPosition": watchPosition ?? DefaultWatchPosition,
"WatchPrefab": watchPrefab ?? DefaultWatchPrefab,
"WatchRotation": watchRotation ?? DefaultWatchRotation
},
"_proto": "5cde95fa7d6c8b04737c2d13"
};
this.instanceManager.database.templates.customization[handsId] = newHands;
if (this.instanceManager.debug) {
console.log(`Added hands for ${handsId}:`, newHands);
}
const newSuite = {
"_id": suiteId,
"_name": `${suiteId}_name`,
"_parent": "5cd944ca1388ce03a44dc2a4",
"_type": "Item",
"_props": {
"Description": "DefaultUsecUpperSuite",
"Name": "DefaultUsecUpperSuite",
"ShortName": "DefaultUsecUpperSuite",
"Side": side ?? ["Usec", "Bear", "Savage"],
"AvailableAsDefault": false,
"Game": [
"eft",
"arena"
],
"Body": topId,
"Hands": handsId
},
"_proto": "5cde9ec17d6c8b04723cf479"
};
this.instanceManager.database.templates.customization[suiteId] = newSuite;
if (this.instanceManager.debug) {
console.log(`Added suite for ${suiteId}`, newSuite);
}
this.handleLocale(clothingConfig, suiteId);
this.addSuiteToTrader(traderId, outfitId, suiteId, loyaltyLevel, profileLevel, standing, currencyId, price);
}
catch (error) {
console.error(`Error adding top for outfitId: ${outfitId}:`, error);
}
}
addBottom(clothingConfig) {
const { side, bottomId, suiteId, outfitId, bottomBundlePath, traderId, loyaltyLevel, profileLevel, standing, currencyId, price } = clothingConfig;
// add Bottom
const newBottom = {
"_id": bottomId,
"_name": `${bottomId}_name`,
"_parent": "5cc0869814c02e000a4cad94",
"_type": "Item",
"_props": {
"Description": `${bottomId}_desc`,
"Name": `${bottomId}_name`,
"ShortName": `${bottomId}_shortName`,
"Side": side ?? ["Usec", "Bear", "Savage"],
"BodyPart": "Feet",
"IntegratedArmorVest": false,
"Prefab": {
"path": bottomBundlePath,
"rcid": ""
},
"WatchPosition": {
"x": 0,
"y": 0,
"z": 0
},
"WatchPrefab": {
"path": "",
"rcid": ""
},
"WatchRotation": {
"x": 0,
"y": 0,
"z": 0
}
},
"_proto": "5cdea3c47d6c8b0475341734"
};
this.instanceManager.database.templates.customization[bottomId] = newBottom;
const newSuite = {
"_id": suiteId,
"_name": `${suiteId}_name`,
"_parent": "5cd944d01388ce000a659df9",
"_type": "Item",
"_props": {
"Description": `${suiteId}_desc`,
"Name": `${suiteId}_name`,
"ShortName": `${suiteId}_shortName`,
"Side": side ?? ["Usec", "Bear", "Savage"],
"AvailableAsDefault": false,
"Game": [
"eft",
"arena"
],
"Feet": bottomId
},
"_proto": "5cd946231388ce000d572fe3"
};
// add suite
this.instanceManager.database.templates.customization[suiteId] = newSuite;
if (this.instanceManager.debug) {
console.log(`Added suite for ${suiteId}`, newSuite);
}
this.handleLocale(clothingConfig, suiteId);
this.addSuiteToTrader(traderId, outfitId, suiteId, loyaltyLevel, profileLevel, standing, currencyId, price);
}
handleLocale(clothingConfig, clothingId) {
for (const localeID in this.instanceManager.database.locales.global) {
if (this.instanceManager.debug) {
console.log("Processing localeID:", localeID);
}
try {
const itemName = `${clothingId} Name`;
const shortName = `${clothingId} shortName`;
const itemDescription = `${clothingId} description`;
// Check if the locale exists, else fallback to 'en'
const localeValue = clothingConfig.locales[localeID] || clothingConfig.locales["en"];
if (localeValue && this.instanceManager.database.locales.global[localeID]) {
this.instanceManager.database.locales.global[localeID][itemName] = localeValue;
this.instanceManager.database.locales.global[localeID][itemDescription] = localeValue;
this.instanceManager.database.locales.global[localeID][shortName] = localeValue;
}
}
catch (error) {
console.error(`Error handling locale for ${localeID}: ${error}`);
}
}
}
readJsonFile(filePath) {
const content = node_fs_1.default.readFileSync(filePath, "utf-8");
try {
const parsedContent = JSON.parse(content);
if (this.instanceManager.debug) {
console.log("Custom Clothing Service: Parsed JSON Content:", parsedContent); // Logging the parsed JSON content
}
return parsedContent;
}
catch (error) {
console.error("Error parsing JSON content:", error);
return null;
}
}
}
exports.CustomClothingService = CustomClothingService;
//# sourceMappingURL=CustomClothingService.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,393 +0,0 @@
/* eslint-disable @typescript-eslint/naming-convention */
import type { ICustomizationItem } from "@spt/models/eft/common/tables/ICustomizationItem";
import { traderIDs, currencyIDs } from "./references/configConsts";
import type { ClothingConfig } from "./references/configConsts";
import type { WTTInstanceManager } from "./WTTInstanceManager";
import fs from "node:fs";
import path from "node:path";
export class CustomClothingService {
private instanceManager: WTTInstanceManager;
public preSptLoad(instanceManager: WTTInstanceManager): void {
this.instanceManager = instanceManager;
}
public postDBLoad(): void {
const clothingJsonsPath = path.join(__dirname, "../db/clothing");
if (this.instanceManager.debug) {
console.log(`Scanning directory for clothing JSON files: ${clothingJsonsPath}`);
}
const jsonFiles = fs.readdirSync(clothingJsonsPath).filter(file => file.endsWith(".json"));
if (this.instanceManager.debug) {
console.log(`Found ${jsonFiles.length} JSON file(s) in ${clothingJsonsPath}`);
}
for (const jsonFile of jsonFiles) {
const filePath = path.join(clothingJsonsPath, jsonFile);
if (this.instanceManager.debug) {
console.log(`Processing file: ${jsonFile} at path: ${filePath}`);
}
try {
// Read and parse the JSON file
const clothingConfigs: ClothingConfig[] = this.readJsonFile(filePath);
if (this.instanceManager.debug) {
console.log(`Parsed JSON content from ${jsonFile}:`, clothingConfigs);
}
// Process the parsed content
for (const clothingConfig of clothingConfigs) {
if (this.instanceManager.debug) {
console.log("Processing clothing config:", clothingConfig);
}
try {
this.processClothingConfig(clothingConfig);
if (this.instanceManager.debug) {
console.log("Successfully processed clothing config:", clothingConfig);
}
} catch (error) {
console.error(`Error processing config in ${jsonFile}:`, error);
}
}
if (this.instanceManager.debug) {
console.log(`Successfully processed all configs in ${jsonFile}.`);
}
} catch (error) {
console.error(`Error reading or parsing ${jsonFile}:`, error);
}
}
}
private processClothingConfig(clothingConfig: ClothingConfig): void {
if (this.instanceManager.debug) {
console.log(`Processing config of type: ${clothingConfig.type}`);
}
if (clothingConfig.type === "top") {
this.addTop(clothingConfig);
}
else if (clothingConfig.type === "bottom") {
this.addBottom(clothingConfig);
}
else {
console.error("Unknown config type:", clothingConfig.type);
}
}
private addSuiteToTrader(
traderId: string,
outfitId: string,
suiteId: string,
loyaltyLevel: number,
profileLevel: number,
standing: number,
currencyId: string,
price: number
): void {
const traderIdFromEnum = traderIDs[traderId as keyof typeof traderIDs] || traderId;
const currencyIdFromEnum = currencyIDs[currencyId as keyof typeof currencyIDs] || currencyId;
this.instanceManager.database.traders[traderIdFromEnum].base.customization_seller = true;
if (!this.instanceManager.database.traders[traderIdFromEnum].suits) {
this.instanceManager.database.traders[traderIdFromEnum].suits = [];
}
const newTraderOutfit = {
"_id": outfitId,
"tid": traderIdFromEnum,
"suiteId": suiteId,
"isActive": true,
"isHiddenInPVE": false,
"externalObtain": false,
"internalObtain": true,
"requirements": {
"loyaltyLevel": loyaltyLevel,
"profileLevel": profileLevel,
"standing": standing,
"skillRequirements": [],
"questRequirements": [],
"achievementRequirements": [],
"itemRequirements": [
{
"count": price,
"_tpl": currencyIdFromEnum,
"onlyFunctional": true
}
],
"requiredTid": traderIdFromEnum
}
}
if (this.instanceManager.debug) {
console.log("Adding new trader outfit:", newTraderOutfit);
}
this.instanceManager.database.traders[traderIdFromEnum].suits.push(newTraderOutfit);
}
private addTop(clothingConfig: ClothingConfig): void {
const {side, suiteId, topId, handsId, outfitId, topBundlePath, handsBundlePath, traderId, loyaltyLevel, profileLevel, standing, currencyId, price, watchPrefab, watchPosition, watchRotation } = clothingConfig;
try {
if (this.instanceManager.debug) {
console.log("Adding top");
}
const DefaultWatchPrefab = {
"path": "",
"rcid": ""
};
const DefaultWatchPosition = {
"x": 0,
"y": 0,
"z": 0
};
const DefaultWatchRotation = {
"x": 0,
"y": 0,
"z": 0
};
const newTop = {
"_id": topId,
"_name": `${topId}_name`,
"_parent": "5cc0868e14c02e000c6bea68",
"_type": "Item",
"_props": {
"Description": `${topId}_desc`,
"Name": `${topId}_name`,
"ShortName": `${topId}_shortName`,
"Side": [
"Usec"
],
"BodyPart": "Body",
"IntegratedArmorVest": false,
"Prefab": {
"path": topBundlePath,
"rcid": ""
},
"WatchPosition": watchPosition ?? DefaultWatchPosition,
"WatchPrefab": watchPrefab ?? DefaultWatchPrefab,
"WatchRotation": watchRotation ?? DefaultWatchRotation
},
"_proto": "5cde95d97d6c8b647a3769b0"
} as ICustomizationItem;
if (this.instanceManager.debug) {
console.log(`Added top for ${topId}:`, newTop);
}
this.instanceManager.database.templates.customization[topId] = newTop;
// add hands
if (this.instanceManager.debug) {
console.log(`Adding hands for topId: ${topId}`);
}
const newHands = {
"_id": handsId,
"_name": `${handsId}_name`,
"_parent": "5cc086a314c02e000c6bea69",
"_type": "Item",
"_props": {
"Description": `${handsId}_desc`,
"Name": `${handsId}_name`,
"ShortName": `${handsId}_shortName`,
"Side": [
"Usec"
],
"BodyPart": "Hands",
"IntegratedArmorVest": false,
"Prefab": {
"path": handsBundlePath,
"rcid": ""
},
"WatchPosition": watchPosition ?? DefaultWatchPosition,
"WatchPrefab": watchPrefab ?? DefaultWatchPrefab,
"WatchRotation": watchRotation ?? DefaultWatchRotation
},
"_proto": "5cde95fa7d6c8b04737c2d13"
} as ICustomizationItem;
this.instanceManager.database.templates.customization[handsId] = newHands;
if (this.instanceManager.debug) {
console.log(`Added hands for ${handsId}:`, newHands);
}
const newSuite = {
"_id": suiteId,
"_name": `${suiteId}_name`,
"_parent": "5cd944ca1388ce03a44dc2a4",
"_type": "Item",
"_props": {
"Description": "DefaultUsecUpperSuite",
"Name": "DefaultUsecUpperSuite",
"ShortName": "DefaultUsecUpperSuite",
"Side": side ?? ["Usec", "Bear", "Savage"],
"AvailableAsDefault": false,
"Game": [
"eft",
"arena"
],
"Body": topId,
"Hands": handsId
},
"_proto": "5cde9ec17d6c8b04723cf479"
} as ICustomizationItem;
this.instanceManager.database.templates.customization[suiteId] = newSuite;
if (this.instanceManager.debug) {
console.log(`Added suite for ${suiteId}`, newSuite);
}
this.handleLocale(clothingConfig, suiteId);
this.addSuiteToTrader(
traderId,
outfitId,
suiteId,
loyaltyLevel,
profileLevel,
standing,
currencyId,
price
);
}
catch (error) {
console.error(`Error adding top for outfitId: ${outfitId}:`, error);
}
}
private addBottom(clothingConfig: ClothingConfig): void {
const { side, bottomId, suiteId, outfitId, bottomBundlePath, traderId, loyaltyLevel, profileLevel, standing, currencyId, price } = clothingConfig;
// add Bottom
const newBottom = {
"_id": bottomId,
"_name": `${bottomId}_name`,
"_parent": "5cc0869814c02e000a4cad94",
"_type": "Item",
"_props": {
"Description": `${bottomId}_desc`,
"Name": `${bottomId}_name`,
"ShortName": `${bottomId}_shortName`,
"Side": side ?? ["Usec", "Bear", "Savage"],
"BodyPart": "Feet",
"IntegratedArmorVest": false,
"Prefab": {
"path": bottomBundlePath,
"rcid": ""
},
"WatchPosition": {
"x": 0,
"y": 0,
"z": 0
},
"WatchPrefab": {
"path": "",
"rcid": ""
},
"WatchRotation": {
"x": 0,
"y": 0,
"z": 0
}
},
"_proto": "5cdea3c47d6c8b0475341734"
} as ICustomizationItem;
this.instanceManager.database.templates.customization[bottomId] = newBottom;
const newSuite = {
"_id": suiteId,
"_name": `${suiteId}_name`,
"_parent": "5cd944d01388ce000a659df9",
"_type": "Item",
"_props": {
"Description": `${suiteId}_desc`,
"Name": `${suiteId}_name`,
"ShortName": `${suiteId}_shortName`,
"Side": side ?? ["Usec", "Bear", "Savage"],
"AvailableAsDefault": false,
"Game": [
"eft",
"arena"
],
"Feet": bottomId
},
"_proto": "5cd946231388ce000d572fe3"
} as ICustomizationItem;
// add suite
this.instanceManager.database.templates.customization[suiteId] = newSuite;
if (this.instanceManager.debug) {
console.log(`Added suite for ${suiteId}`, newSuite);
}
this.handleLocale(clothingConfig, suiteId);
this.addSuiteToTrader(
traderId,
outfitId,
suiteId,
loyaltyLevel,
profileLevel,
standing,
currencyId,
price,
);
}
private handleLocale(clothingConfig: ClothingConfig, clothingId: string): void
{
for (const localeID in this.instanceManager.database.locales.global)
{
if (this.instanceManager.debug)
{
console.log("Processing localeID:", localeID);
}
try
{
const itemName = `${clothingId} Name`;
const shortName = `${clothingId} shortName`;
const itemDescription = `${clothingId} description`;
// Check if the locale exists, else fallback to 'en'
const localeValue = clothingConfig.locales[localeID] || clothingConfig.locales["en"];
if (localeValue && this.instanceManager.database.locales.global[localeID])
{
this.instanceManager.database.locales.global[localeID][itemName] = localeValue;
this.instanceManager.database.locales.global[localeID][itemDescription] = localeValue;
this.instanceManager.database.locales.global[localeID][shortName] = localeValue;
}
}
catch (error)
{
console.error(`Error handling locale for ${localeID}: ${error}`);
}
}
}
private readJsonFile(filePath: string): any {
const content = fs.readFileSync(filePath, "utf-8");
try {
const parsedContent = JSON.parse(content);
if (this.instanceManager.debug) {
console.log("Custom Clothing Service: Parsed JSON Content:", parsedContent); // Logging the parsed JSON content
}
return parsedContent;
}
catch (error) {
console.error("Error parsing JSON content:", error);
return null;
}
}
}

View File

@ -1,94 +0,0 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.WTTInstanceManager = void 0;
const node_path_1 = __importDefault(require("node:path"));
class WTTInstanceManager {
//#region Accessible in or after preSptLoad
modName;
debug;
// Useful Paths
profilePath = node_path_1.default.join(process.cwd(), "\\user\\profiles");
modPath;
dbPath;
// Instances
container;
PreSptModLoader;
configServer;
saveServer;
itemHelper;
logger;
staticRouter;
dynamicRouter;
profileController;
profileCallbacks;
//#endregion
//#region Acceessible in or after postDBLoad
database;
customItem;
imageRouter;
jsonUtil;
profileHelper;
eventOutputHolder;
ragfairPriceService;
importerUtil;
traderAssortService;
applicationContext;
vfs;
//#endregion
// Call at the start of the mods postDBLoad method
preSptLoad(container, mod) {
this.modName = mod;
this.modPath = node_path_1.default.join(process.cwd(), `\\user\\mods\\${mod}\\`);
this.dbPath = node_path_1.default.join(process.cwd(), `\\user\\mods\\${mod}\\db`);
this.container = container;
this.PreSptModLoader = container.resolve("PreSptModLoader");
this.imageRouter = container.resolve("ImageRouter");
this.configServer = container.resolve("ConfigServer");
this.saveServer = container.resolve("SaveServer");
this.itemHelper = container.resolve("ItemHelper");
this.eventOutputHolder = container.resolve("EventOutputHolder");
this.profileController = container.resolve("ProfileController");
this.profileCallbacks = container.resolve("ProfileCallbacks");
this.logger = container.resolve("WinstonLogger");
this.staticRouter = container.resolve("StaticRouterModService");
this.dynamicRouter = container.resolve("DynamicRouterModService");
this.traderAssortService = container.resolve("TraderAssortService");
this.vfs = container.resolve("VFS");
}
postDBLoad(container) {
this.database = container.resolve("DatabaseServer").getTables();
this.customItem = container.resolve("CustomItemService");
this.jsonUtil = container.resolve("JsonUtil");
this.profileHelper = container.resolve("ProfileHelper");
this.ragfairPriceService = container.resolve("RagfairPriceService");
this.importerUtil = container.resolve("ImporterUtil");
this.applicationContext = container.resolve("ApplicationContext");
}
colorLog(message, color) {
const colorCodes = {
red: "\x1b[31m",
green: "\x1b[32m",
yellow: "\x1b[33m",
blue: "\x1b[34m",
magenta: "\x1b[35m",
cyan: "\x1b[36m",
white: "\x1b[37m",
gray: "\x1b[90m",
brightRed: "\x1b[91m",
brightGreen: "\x1b[92m",
brightYellow: "\x1b[93m",
brightBlue: "\x1b[94m",
brightMagenta: "\x1b[95m",
brightCyan: "\x1b[96m",
brightWhite: "\x1b[97m"
};
const resetCode = "\x1b[0m";
const colorCode = colorCodes[color] || "\x1b[37m"; // Default to white if color is invalid.
console.log(`${colorCode}${message}${resetCode}`); // Log the colored message here
}
}
exports.WTTInstanceManager = WTTInstanceManager;
//# sourceMappingURL=WTTInstanceManager.js.map

View File

@ -1 +0,0 @@
{"version":3,"file":"WTTInstanceManager.js","sourceRoot":"","sources":["WTTInstanceManager.ts"],"names":[],"mappings":"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"}

View File

@ -1,119 +0,0 @@
import path from "node:path";
import type { ILogger } from "@spt/models/spt/utils/ILogger";
import type { ProfileController } from "@spt/controllers/ProfileController";
import type { ProfileCallbacks } from "@spt/callbacks/ProfileCallbacks";
import type { EventOutputHolder } from "@spt/routers/EventOutputHolder";
import type { DatabaseServer } from "@spt/servers/DatabaseServer";
import type { IDatabaseTables } from "@spt/models/spt/server/IDatabaseTables";
import type { StaticRouterModService } from "@spt/services/mod/staticRouter/StaticRouterModService";
import type { DynamicRouterModService } from "@spt/services/mod/dynamicRouter/DynamicRouterModService";
import type { TraderAssortService } from "@spt/services/TraderAssortService";
import type { DependencyContainer } from "tsyringe";
import type { CustomItemService } from "@spt/services/mod/CustomItemService";
import type { ImageRouter } from "@spt/routers/ImageRouter";
import type { PreSptModLoader } from "@spt/loaders/PreSptModLoader";
import type { ConfigServer } from "@spt/servers/ConfigServer";
import type { JsonUtil } from "@spt/utils/JsonUtil";
import type { ProfileHelper } from "@spt/helpers/ProfileHelper";
import type { RagfairPriceService } from "@spt/services/RagfairPriceService";
import type { ImporterUtil } from "@spt/utils/ImporterUtil";
import type { SaveServer } from "@spt/servers/SaveServer";
import type { ItemHelper } from "@spt/helpers/ItemHelper";
import type { ApplicationContext } from "@spt/context/ApplicationContext";
import type { VFS } from "@spt/utils/VFS";
export class WTTInstanceManager
{
//#region Accessible in or after preSptLoad
public modName: string;
public debug: boolean;
// Useful Paths
public profilePath: string = path.join(process.cwd(), "\\user\\profiles");
public modPath: string;
public dbPath: string;
// Instances
public container: DependencyContainer;
public PreSptModLoader: PreSptModLoader;
public configServer: ConfigServer;
public saveServer: SaveServer;
public itemHelper: ItemHelper;
public logger: ILogger;
public staticRouter: StaticRouterModService;
public dynamicRouter: DynamicRouterModService;
public profileController: ProfileController;
public profileCallbacks: ProfileCallbacks;
//#endregion
//#region Acceessible in or after postDBLoad
public database: IDatabaseTables;
public customItem: CustomItemService;
public imageRouter: ImageRouter;
public jsonUtil: JsonUtil;
public profileHelper: ProfileHelper;
public eventOutputHolder: EventOutputHolder;
public ragfairPriceService: RagfairPriceService;
public importerUtil: ImporterUtil;
public traderAssortService: TraderAssortService;
public applicationContext: ApplicationContext;
public vfs: VFS;
//#endregion
// Call at the start of the mods postDBLoad method
public preSptLoad(container: DependencyContainer, mod: string): void
{
this.modName = mod;
this.modPath = path.join(process.cwd(), `\\user\\mods\\${mod}\\`);
this.dbPath = path.join(process.cwd(), `\\user\\mods\\${mod}\\db`);
this.container = container;
this.PreSptModLoader = container.resolve<PreSptModLoader>("PreSptModLoader");
this.imageRouter = container.resolve<ImageRouter>("ImageRouter");
this.configServer = container.resolve<ConfigServer>("ConfigServer");
this.saveServer = container.resolve<SaveServer>("SaveServer");
this.itemHelper = container.resolve<ItemHelper>("ItemHelper");
this.eventOutputHolder = container.resolve<EventOutputHolder>("EventOutputHolder");
this.profileController = container.resolve<ProfileController>("ProfileController");
this.profileCallbacks = container.resolve<ProfileCallbacks>("ProfileCallbacks");
this.logger = container.resolve<ILogger>("WinstonLogger");
this.staticRouter = container.resolve<StaticRouterModService>("StaticRouterModService");
this.dynamicRouter = container.resolve<DynamicRouterModService>("DynamicRouterModService");
this.traderAssortService = container.resolve<TraderAssortService>("TraderAssortService");
this.vfs = container.resolve<VFS>("VFS");
}
public postDBLoad(container: DependencyContainer): void
{
this.database = container.resolve<DatabaseServer>("DatabaseServer").getTables();
this.customItem = container.resolve<CustomItemService>("CustomItemService");
this.jsonUtil = container.resolve<JsonUtil>("JsonUtil");
this.profileHelper = container.resolve<ProfileHelper>("ProfileHelper");
this.ragfairPriceService = container.resolve<RagfairPriceService>("RagfairPriceService");
this.importerUtil = container.resolve<ImporterUtil>("ImporterUtil");
this.applicationContext = container.resolve<ApplicationContext>("ApplicationContext");
}
public colorLog(message: string, color: string) {
const colorCodes = {
red: "\x1b[31m",
green: "\x1b[32m",
yellow: "\x1b[33m",
blue: "\x1b[34m",
magenta: "\x1b[35m",
cyan: "\x1b[36m",
white: "\x1b[37m",
gray: "\x1b[90m",
brightRed: "\x1b[91m",
brightGreen: "\x1b[92m",
brightYellow: "\x1b[93m",
brightBlue: "\x1b[94m",
brightMagenta: "\x1b[95m",
brightCyan: "\x1b[96m",
brightWhite: "\x1b[97m"
};
const resetCode = "\x1b[0m";
const colorCode = colorCodes[color as keyof typeof colorCodes] || "\x1b[37m"; // Default to white if color is invalid.
console.log(`${colorCode}${message}${resetCode}`); // Log the colored message here
}
}

View File

@ -1,33 +0,0 @@
"use strict";
/* eslint-disable @typescript-eslint/naming-convention */
Object.defineProperty(exports, "__esModule", { value: true });
const LogTextColor_1 = require("C:/snapshot/project/obj/models/spt/logging/LogTextColor");
// WTT imports
const WTTInstanceManager_1 = require("./WTTInstanceManager");
const CustomClothingService_1 = require("./CustomClothingService");
class Kopat1ch {
instanceManager = new WTTInstanceManager_1.WTTInstanceManager();
version;
modName = "Black Clothing Pack";
customClothingService = new CustomClothingService_1.CustomClothingService();
debug = false;
preSptLoad(container) {
this.instanceManager.preSptLoad(container, this.modName);
this.instanceManager.debug = this.debug;
this.customClothingService.preSptLoad(this.instanceManager);
this.displayCreditBanner();
}
postDBLoad(container) {
this.instanceManager.postDBLoad(container);
this.customClothingService.postDBLoad();
if (this.instanceManager.debug) {
this.instanceManager.logger.log(`[${this.modName}] Database: Loading complete.`, LogTextColor_1.LogTextColor.GREEN);
}
}
displayCreditBanner() {
this.instanceManager.colorLog(`[${this.modName}] Black Clothing Pack is Loaded`, "green");
this.instanceManager.colorLog;
}
}
module.exports = { mod: new Kopat1ch() };
//# sourceMappingURL=mod.js.map

View File

@ -1 +0,0 @@
{"version":3,"file":"mod.js","sourceRoot":"","sources":["mod.ts"],"names":[],"mappings":";AAAA,yDAAyD;;AAOzD,0FAAuF;AASvF,cAAc;AACd,6DAA0D;AAC1D,mEAAgE;AAGhE,MAAM,QAAQ;IAEF,eAAe,GAAuB,IAAI,uCAAkB,EAAE,CAAC;IAC/D,OAAO,CAAS;IAChB,OAAO,GAAG,qBAAqB,CAAC;IAChC,qBAAqB,GAA0B,IAAI,6CAAqB,EAAE,CAAC;IACnF,KAAK,GAAG,KAAK,CAAC;IAEP,UAAU,CAAC,SAA8B;QAC5C,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxC,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAE/B,CAAC;IAEM,UAAU,CAAC,SAA8B;QAC5C,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAC9B,CAAC;YACG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAC3B,IAAI,IAAI,CAAC,OAAO,+BAA+B,EAC/C,2BAAY,CAAC,KAAK,CACrB,CAAC;QACN,CAAC;IACL,CAAC;IAEO,mBAAmB;QAEvB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAC5B,IAAI,IAAI,CAAC,OAAO,iCAAiC,EAAE,OAAO,CAAC,CAAC;QAC7D,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAA;IACjC,CAAC;CAEJ;AAED,MAAM,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,IAAI,QAAQ,EAAE,EAAE,CAAC"}

View File

@ -1,59 +0,0 @@
/* eslint-disable @typescript-eslint/naming-convention */
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
import type { DependencyContainer } from "tsyringe";
import type { ILostOnDeathConfig } from "@spt/models/spt/config/ILostOnDeathConfig";
import type { IPostDBLoadMod } from "@spt/models/external/IPostDBLoadMod";
import type { IPreSptLoadMod } from "@spt/models/external/IPreSptLoadMod";
import { LogTextColor } from "@spt/models/spt/logging/LogTextColor";
import type { GameController } from "@spt/controllers/GameController";
import type { IEmptyRequestData } from "@spt/models/eft/common/IEmptyRequestData";
import { InRaidHelper } from "@spt/helpers/InRaidHelper";
import type { IPmcData } from "@spt/models/eft/common/IPmcData";
import type { IItem } from "@spt/models/eft/common/tables/IItem";
import config from "../config/config.json";
// WTT imports
import { WTTInstanceManager } from "./WTTInstanceManager";
import { CustomClothingService } from "./CustomClothingService";
class Kopat1ch
implements IPreSptLoadMod, IPostDBLoadMod {
private instanceManager: WTTInstanceManager = new WTTInstanceManager();
private version: string;
private modName = "Black Clothing Pack";
private customClothingService: CustomClothingService = new CustomClothingService();
debug = false;
public preSptLoad(container: DependencyContainer): void {
this.instanceManager.preSptLoad(container, this.modName);
this.instanceManager.debug = this.debug;
this.customClothingService.preSptLoad(this.instanceManager);
this.displayCreditBanner();
}
public postDBLoad(container: DependencyContainer): void {
this.instanceManager.postDBLoad(container);
this.customClothingService.postDBLoad();
if (this.instanceManager.debug)
{
this.instanceManager.logger.log(
`[${this.modName}] Database: Loading complete.`,
LogTextColor.GREEN
);
}
}
private displayCreditBanner(): void
{
this.instanceManager.colorLog
(`[${this.modName}] Black Clothing Pack is Loaded`, "green");
this.instanceManager.colorLog
}
}
module.exports = { mod: new Kopat1ch() };

View File

@ -1,137 +0,0 @@
"use strict";
/* eslint-disable @typescript-eslint/naming-convention */
Object.defineProperty(exports, "__esModule", { value: true });
exports.Stashes = exports.inventorySlots = exports.allBotTypes = exports.currencyIDs = exports.traderIDs = void 0;
;
var traderIDs;
(function (traderIDs) {
traderIDs["MECHANIC"] = "5a7c2eca46aef81a7ca2145d";
traderIDs["SKIER"] = "58330581ace78e27b8b10cee";
traderIDs["PEACEKEEPER"] = "5935c25fb3acc3127c3d8cd9";
traderIDs["THERAPIST"] = "54cb57776803fa99248b456e";
traderIDs["PRAPOR"] = "54cb50c76803fa8b248b4571";
traderIDs["JAEGAR"] = "5c0647fdd443bc2504c2d371";
traderIDs["RAGMAN"] = "5ac3b934156ae10c4430e83c";
traderIDs["FENCE"] = "579dc571d53a0658a154fbec";
traderIDs["ARTEM"] = "66bf757f27d0b097db0acea5";
traderIDs["BADGER"] = "bd3a8b28356d9c6509966546";
})(traderIDs || (exports.traderIDs = traderIDs = {}));
var currencyIDs;
(function (currencyIDs) {
currencyIDs["ROUBLES"] = "5449016a4bdc2d6f028b456f";
currencyIDs["EUROS"] = "569668774bdc2da2298b4568";
currencyIDs["DOLLARS"] = "5696686a4bdc2da3298b456a";
})(currencyIDs || (exports.currencyIDs = currencyIDs = {}));
var allBotTypes;
(function (allBotTypes) {
// Arena Fighters
allBotTypes["ARENAFIGHTER"] = "arenafighter";
allBotTypes["ARENAFIGHTEREVENT"] = "arenafighterevent";
// Scavs
allBotTypes["ASSAULT"] = "assault";
allBotTypes["ASSAULTGROUP"] = "assaultgroup";
allBotTypes["MARKSMAN"] = "marksman";
allBotTypes["CRAZYASSAULTEVENT"] = "crazyassaultevent";
allBotTypes["CURSEDASSAULT"] = "cursedassault";
// PMC's
allBotTypes["BEAR"] = "bear";
allBotTypes["USEC"] = "usec";
allBotTypes["PMCBEAR"] = "pmcbear";
allBotTypes["PMCUSEC"] = "pmcusec";
allBotTypes["PMC"] = "pmcbot";
// ExUsec
allBotTypes["EXUSEC"] = "exusec";
// Cultists
allBotTypes["CULTISTPRIEST"] = "sectantpriest";
allBotTypes["CULTISTWARRIOR"] = "sectantwarrior";
allBotTypes["CULTISTONI"] = "sectantoni";
allBotTypes["CULTISTPRIESTEVENT"] = "sectantpriestevent";
allBotTypes["CULTISTPREDVESTNIK"] = "sectantpredvestnik";
allBotTypes["CULTISTPRIZRAK"] = "sectantprizrak";
// BTR
allBotTypes["BTR"] = "btrshooter";
// Spirits
allBotTypes["SPIRITSPRING"] = "spiritspring";
allBotTypes["SPIRITWINTER"] = "spiritwinter";
// Zombies
allBotTypes["INFECTEDASSAULT"] = "infectedassault";
allBotTypes["INFECTEDCIVIL"] = "infectedcivil";
allBotTypes["INFECTEDLABORANT"] = "infectedlaborant";
allBotTypes["INFECTEDPMC"] = "infectedpmc";
allBotTypes["INFECTEDTAGILLA"] = "infectedtagilla";
// Santa
allBotTypes["GIFTER"] = "gifter";
// Bosses & Followers
// Kaban
allBotTypes["KABAN"] = "bossboar";
allBotTypes["KABANSNIPER"] = "bossboarsniper";
allBotTypes["FOLLOWERBOAR"] = "followerboar";
allBotTypes["FOLLOWERBOARCLOSE1"] = "followerboarclose1";
allBotTypes["FOLLOWERBOARCLOSE2"] = "followerboarclose2";
// Killa
allBotTypes["KILLA"] = "bosskilla";
// Kolontay
allBotTypes["KOLONTAY"] = "bosskolontay";
allBotTypes["FOLLOWERKOLONTAYASSAULT"] = "followerkolontayassault";
allBotTypes["FOLLOWERKOLONTAYSECURITY"] = "followerkolontaysecurity";
// Partisan
allBotTypes["PARTISAN"] = "bosspartisan";
// Reshala
allBotTypes["RESHALA"] = "bossbully";
allBotTypes["FOLLOWERRESHALA"] = "followerbully";
// Gluhar
allBotTypes["GLUHAR"] = "bossgluhar";
allBotTypes["FOLLOWERGLUHARASSAULT"] = "followergluharassault";
allBotTypes["FOLLOWERGLUHARSCOUT"] = "followergluharscout";
allBotTypes["FOLLOWERGLUHARSECURITY"] = "followergluharsecurity";
allBotTypes["FOLLOWERGLUHARSNIPER"] = "followergluharsnipe";
// Goons
allBotTypes["KNIGHT"] = "bossknight";
allBotTypes["FOLLOWERBIGPIPE"] = "followerbigpipe";
allBotTypes["FOLLOWERBIRDEYE"] = "followerbirdeye";
// Shturman
allBotTypes["SHTURMAN"] = "bosskojaniy";
allBotTypes["FOLLOWERSHTURMAN"] = "followerkojaniy";
// Sanitar
allBotTypes["SANITAR"] = "bosssanitar";
allBotTypes["FOLLOWERSANITAR"] = "followersanitar";
// Tagilla
allBotTypes["TAGILLA"] = "bosstagilla";
allBotTypes["FOLLOWERTAGILLA"] = "followertagilla";
// Zryachiy
allBotTypes["ZRYACHIY"] = "bosszryachiy";
allBotTypes["FOLLOWERZRYACHIY"] = "followerzryachiy";
allBotTypes["PEACEFULZRYACHIYEVENT"] = "peacefulzryachiyevent";
allBotTypes["RAVANGEZRYACHIYEVENT"] = "ravengezryachiyevent";
// Traders
// Peacemaker
allBotTypes["PEACEMAKER"] = "peacemaker";
// Skier
allBotTypes["SKIER"] = "skier";
})(allBotTypes || (exports.allBotTypes = allBotTypes = {}));
var inventorySlots;
(function (inventorySlots) {
inventorySlots["FirstPrimaryWeapon"] = "55d729c64bdc2d89028b4570";
inventorySlots["SecondPrimaryWeapon"] = "55d729d14bdc2d86028b456e";
inventorySlots["Holster"] = "55d729d84bdc2de3098b456b";
inventorySlots["Scabbard"] = "55d729e34bdc2d1b198b456d";
inventorySlots["FaceCover"] = "55d729e84bdc2d8a028b4569";
inventorySlots["Headwear"] = "55d729ef4bdc2d3a168b456c";
inventorySlots["TacticalVest"] = "55d729f74bdc2d87028b456e";
inventorySlots["SecuredContainer"] = "55d72a054bdc2d88028b456e";
inventorySlots["Backpack"] = "55d72a104bdc2d89028b4571";
inventorySlots["ArmorVest"] = "55d72a194bdc2d86028b456f";
inventorySlots["Pockets"] = "55d72a274bdc2de3098b456c";
inventorySlots["Earpiece"] = "5665b7164bdc2d144c8b4570";
inventorySlots["Dogtag"] = "59f0be1e86f77453be490939";
inventorySlots["Eyewear"] = "5a0ad9313f1241000e072755";
inventorySlots["ArmBand"] = "5b3f583786f77411d552fb2b";
})(inventorySlots || (exports.inventorySlots = inventorySlots = {}));
var Stashes;
(function (Stashes) {
Stashes["LEVEL1"] = "566abbc34bdc2d92178b4576";
Stashes["LEVEL2"] = "5811ce572459770cba1a34ea";
Stashes["LEVEL3"] = "5811ce662459770f6f490f32";
Stashes["LEVEL4"] = "5811ce772459770e9e5f9532";
})(Stashes || (exports.Stashes = Stashes = {}));
//# sourceMappingURL=configConsts.js.map

View File

@ -1 +0,0 @@
{"version":3,"file":"configConsts.js","sourceRoot":"","sources":["configConsts.ts"],"names":[],"mappings":"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"}

View File

@ -1,297 +0,0 @@
/* eslint-disable @typescript-eslint/naming-convention */
import type { IPreset } from "@spt/models/eft/common/IGlobals";
import type { Ixyz } from "@spt/models/eft/common/Ixyz";
import type { IPrefab } from "@spt/models/eft/common/tables/ICustomizationItem";
export interface ConfigItem
{
[itemId: string]: {
itemTplToClone: string;
overrideProperties: {
Prefab: {
path: string;
rcid: string;
};
ReverbVolume: number;
};
parentId: string;
fleaPriceRoubles: number;
handbookPriceRoubles: number;
handbookParentId: string;
locales: {
[locale: string]: {
name: string;
shortName: string;
description: string;
};
};
clearClonedProps: boolean;
addtoInventorySlots: string[];
addtoModSlots: boolean;
modSlot: string[];
ModdableItemWhitelist: string;
ModdableItemBlacklist: string;
addtoTraders: boolean;
traderId: traderIDs;
traderItems: {
unlimitedCount: boolean;
stackObjectsCount: number;
}[];
barterScheme: {
count: number;
_tpl: string;
}[];
loyallevelitems: number;
addtoBots: boolean;
addtoStaticLootContainers: boolean;
StaticLootContainers: string;
Probability: number;
masteries: boolean;
masterySections: {
Name: string;
Templates: string[];
Level2: number;
Level3: number;
};
addweaponpreset: boolean;
weaponpresets: IPreset[];
addtoHallOfFame: boolean;
addtoSpecialSlots: boolean;
};
};
export interface HeadConfig {
path: string;
addHeadToPlayer: boolean;
side: string[];
locales: {
[key: string]: string; // This allows dynamic locale keys, such as "en", "ru", etc.
};
}
export interface VoiceConfig
{
[voiceId: string]: {
locales: {
[key: string]: string; // This allows dynamic locale keys, such as "en", "ru", etc.
};
name: string;
addVoiceToPlayer: boolean;
sideSpecificVoice: string;
addToBotTypes: Record<string, number>;
};
}
export interface ClothingConfig {
type: string; // The type of clothing item, e.g., "bottom"
suiteId: string; // ID of the clothing item's suite
outfitId: string; // Unique identifier for the outfit
bottomId?: string; // ID of the clothing item's bottom
locales: {
[key: string]: string; // This allows dynamic locale keys, such as "en", "ru", etc.
};
topId?: string; // ID of the clothing item's top
handsId?: string; // ID of the clothing item's hands
side: string[]; // Side of the clothing item, e.g., ["usec", "bear"]
bottomBundlePath?: string; // Path to the clothing item's asset bundle
topBundlePath?: string; // Path to the clothing item's top asset bundle
handsBundlePath?: string; // Path to the clothing item's hands asset bundle
watchPrefab?: IPrefab; // Path to the watch prefab asset bundle
watchPosition?: Ixyz; // Position of the watch on the clothing item
watchRotation?: Ixyz; // Rotation of the watch on the clothing item
handsBaseID?: string; // ID of the clothing item's hands base
traderId: string; // Trader who sells this item, e.g., "RAGMAN"
loyaltyLevel: number; // Loyalty level required to purchase the item
profileLevel: number; // Player profile level required to purchase the item
standing: number; // Minimum standing required with the trader
currencyId: string; // Currency type for the item's price, e.g., "ROUBLES"
price: number; // Cost of the clothing item in the specified currency
}
export enum traderIDs
{
MECHANIC = "5a7c2eca46aef81a7ca2145d",
SKIER = "58330581ace78e27b8b10cee",
PEACEKEEPER = "5935c25fb3acc3127c3d8cd9",
THERAPIST = "54cb57776803fa99248b456e",
PRAPOR = "54cb50c76803fa8b248b4571",
JAEGAR = "5c0647fdd443bc2504c2d371",
RAGMAN = "5ac3b934156ae10c4430e83c",
FENCE = "579dc571d53a0658a154fbec",
ARTEM = "66bf757f27d0b097db0acea5",
BADGER = "bd3a8b28356d9c6509966546"
}
export enum currencyIDs
{
ROUBLES = "5449016a4bdc2d6f028b456f",
EUROS = "569668774bdc2da2298b4568",
DOLLARS = "5696686a4bdc2da3298b456a"
}
export enum allBotTypes
{
// Arena Fighters
ARENAFIGHTER = "arenafighter",
ARENAFIGHTEREVENT = "arenafighterevent",
// Scavs
ASSAULT = "assault",
ASSAULTGROUP = "assaultgroup",
MARKSMAN = "marksman",
CRAZYASSAULTEVENT = "crazyassaultevent",
CURSEDASSAULT = "cursedassault",
// PMC's
BEAR = "bear",
USEC = "usec",
PMCBEAR = "pmcbear",
PMCUSEC = "pmcusec",
PMC = "pmcbot",
// ExUsec
EXUSEC = "exusec",
// Cultists
CULTISTPRIEST = "sectantpriest",
CULTISTWARRIOR = "sectantwarrior",
CULTISTONI = "sectantoni",
CULTISTPRIESTEVENT = "sectantpriestevent",
CULTISTPREDVESTNIK = "sectantpredvestnik",
CULTISTPRIZRAK = "sectantprizrak",
// BTR
BTR = "btrshooter",
// Spirits
SPIRITSPRING = "spiritspring",
SPIRITWINTER = "spiritwinter",
// Zombies
INFECTEDASSAULT = "infectedassault",
INFECTEDCIVIL = "infectedcivil",
INFECTEDLABORANT = "infectedlaborant",
INFECTEDPMC = "infectedpmc",
INFECTEDTAGILLA = "infectedtagilla",
// Santa
GIFTER = "gifter",
// Bosses & Followers
// Kaban
KABAN = "bossboar",
KABANSNIPER = "bossboarsniper",
FOLLOWERBOAR = "followerboar",
FOLLOWERBOARCLOSE1 = "followerboarclose1",
FOLLOWERBOARCLOSE2 = "followerboarclose2",
// Killa
KILLA = "bosskilla",
// Kolontay
KOLONTAY = "bosskolontay",
FOLLOWERKOLONTAYASSAULT = "followerkolontayassault",
FOLLOWERKOLONTAYSECURITY = "followerkolontaysecurity",
// Partisan
PARTISAN = "bosspartisan",
// Reshala
RESHALA = "bossbully",
FOLLOWERRESHALA = "followerbully",
// Gluhar
GLUHAR = "bossgluhar",
FOLLOWERGLUHARASSAULT = "followergluharassault",
FOLLOWERGLUHARSCOUT = "followergluharscout",
FOLLOWERGLUHARSECURITY = "followergluharsecurity",
FOLLOWERGLUHARSNIPER = "followergluharsnipe",
// Goons
KNIGHT = "bossknight",
FOLLOWERBIGPIPE = "followerbigpipe",
FOLLOWERBIRDEYE = "followerbirdeye",
// Shturman
SHTURMAN = "bosskojaniy",
FOLLOWERSHTURMAN = "followerkojaniy",
// Sanitar
SANITAR = "bosssanitar",
FOLLOWERSANITAR = "followersanitar",
// Tagilla
TAGILLA = "bosstagilla",
FOLLOWERTAGILLA = "followertagilla",
// Zryachiy
ZRYACHIY = "bosszryachiy",
FOLLOWERZRYACHIY = "followerzryachiy",
PEACEFULZRYACHIYEVENT = "peacefulzryachiyevent",
RAVANGEZRYACHIYEVENT = "ravengezryachiyevent",
// Traders
// Peacemaker
PEACEMAKER = "peacemaker",
// Skier
SKIER = "skier",
}
export enum inventorySlots
{
FirstPrimaryWeapon = "55d729c64bdc2d89028b4570",
SecondPrimaryWeapon = "55d729d14bdc2d86028b456e",
Holster = "55d729d84bdc2de3098b456b",
Scabbard = "55d729e34bdc2d1b198b456d",
FaceCover = "55d729e84bdc2d8a028b4569",
Headwear = "55d729ef4bdc2d3a168b456c",
TacticalVest = "55d729f74bdc2d87028b456e",
SecuredContainer = "55d72a054bdc2d88028b456e",
Backpack = "55d72a104bdc2d89028b4571",
ArmorVest = "55d72a194bdc2d86028b456f",
Pockets = "55d72a274bdc2de3098b456c",
Earpiece = "5665b7164bdc2d144c8b4570",
Dogtag = "59f0be1e86f77453be490939",
Eyewear = "5a0ad9313f1241000e072755",
ArmBand = "5b3f583786f77411d552fb2b"
}
export enum Stashes
{
LEVEL1 = "566abbc34bdc2d92178b4576",
LEVEL2 = "5811ce572459770cba1a34ea",
LEVEL3 = "5811ce662459770f6f490f32",
LEVEL4 = "5811ce772459770e9e5f9532"
}
export interface QuestZone
{
ZoneId: string;
ZoneName: string;
ZoneType: string;
FlareType?: string;
ZoneLocation: string;
Position: {
X: string;
Y: string;
Z: string;
};
Rotation: {
X: string;
Y: string;
Z: string;
};
Scale: {
X: string;
Y: string;
Z: string;
};
}

View File

@ -1,83 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ItemBaseClassMap = void 0;
exports.ItemBaseClassMap = {
"AMMO": "5485a8684bdc2da71d8b4567",
"AMMO_CONTAINER": "543be5cb4bdc2deb348b4568",
"ARMORED_EQUIPMENT": "57bef4c42459772e8d35a53b",
"ARMBAND": "5b3f15d486f77432d0509248",
"ARMOR": "5448e54d4bdc2dcc718b4568",
"ARMORPLATE": "644120aa86ffbe10ee032b6f",
"ASSAULT_CARBINE": "5447b5fc4bdc2d87278b4567",
"ASSAULT_RIFLE": "5447b5f14bdc2d61278b4567",
"ASSAULT_SCOPE": "55818add4bdc2d5b648b456f",
"BACKPACK": "5448e53e4bdc2d60728b4567",
"BARREL": "555ef6e44bdc2de9068b457e",
"BATTERY": "57864ee62459775490116fc1",
"BIPOD": "55818afb4bdc2dde698b456d",
"BUILDING_MATERIAL": "57864ada245977548638de91",
"CHARGING_HANDLE": "55818a6f4bdc2db9688b456b",
"CHEST_RIG": "5448e5284bdc2dcb718b4567",
"COMMON_CONTAINER": "5795f317245977243854e041",
"COMPACT_REFLEX_SIGHT": "55818acf4bdc2dde698b456b",
"COMPASS": "5f4fbaaca5573a5ac31db429",
"DRINK": "5448e8d64bdc2dce718b4568",
"DRUG": "5448f3a14bdc2d27728b4569",
"ELECTRONICS": "57864a66245977548f04a81f",
"FACECOVER": "5a341c4686f77469e155819e",
"FLASHLIGHT": "55818b084bdc2d5b648b4571",
"FLASHHIDER": "550aa4bf4bdc2dd6348b456b",
"FOOD": "5448e8d04bdc2ddf718b4569",
"FOREGRIP": "55818af64bdc2d5b648b4570",
"FUEL": "5d650c3e815116009f6201d2",
"GAS_BLOCK": "56ea9461d2720b67698b456f",
"GRENADE_LAUNCHER": "5447bedf4bdc2d87278b4568",
"HANDGUN": "5447b5cf4bdc2d65278b4567",
"HANDGUARD": "55818a104bdc2db9688b4569",
"HEADPHONES": "5645bcb74bdc2ded0b8b4578",
"HEADWEAR": "5a341c4086f77401f2541505",
"INFO": "5448ecbe4bdc2d60728b4568",
"INVENTORY": "55d720f24bdc2d88028b456d",
"IRON_SIGHT": "55818ac54bdc2d5b648b456e",
"KEYCARD": "5c164d2286f774194c5e69fa",
"KEYMECHANICAL": "5c99f98d86f7745c314214b3",
"KEY_CARD": "5c164d2286f774194c5e69fa",
"KNIFE": "5447e1d04bdc2dff2f8b4567",
"LOCKING_CONTAINER": "5671435f4bdc2d96058b4569",
"LOOT_CONTAINER": "566965d44bdc2d814c8b4571",
"LUBRICANT": "57864e4c24597754843f8723",
"MACHINEGUN": "5447bed64bdc2d97278b4568",
"MAGAZINE": "5448bc234bdc2d3c308b4569",
"MAP": "567849dd4bdc2d150f8b456e",
"MARKSMAN_RIFLE": "5447b6194bdc2d67278b4567",
"MEDICAL_ITEM": "5448f3ac4bdc2dce718b4569",
"MEDICAL_SUPPLIES": "57864c8c245977548867e7f1",
"MEDITKIT": "5448f39d4bdc2d0a728b4568",
"MONEY": "543be5dd4bdc2deb348b4569",
"MUZZLECOMBO": "550aa4dd4bdc2dc9348b4569",
"MOUNT": "55818b224bdc2dde698b456f",
"NIGHTVISION": "5a2c3a9486f774688b05e574",
"OTHER": "590c745b86f7743cc433c5f2",
"PISTOLGRIP": "55818a684bdc2ddd698b456d",
"POCKETS": "557596e64bdc2dc2118b4571",
"PORTABLE_RANGEFINDER": "61605ddea09d851a0a0c1bbc",
"RANDOMLOOTCONTAINER": "62f109593b54472778797866",
"RECEIVER": "55818a304bdc2db5418b457d",
"REFLEX_SIGHT": "55818ad54bdc2ddc698b4569",
"REPAIRKITS": "616eb7aea207f41933308f46",
"SCOPE": "55818ae44bdc2dde698b456c",
"SHOTGUN": "5447b6094bdc2dc3278b4567",
"SILENCER": "550aa4cd4bdc2dd8348b456c",
"SNIPER_RIFLE": "5447b6254bdc2dc3278b4568",
"SPECIAL_ITEM": "5447e0e74bdc2d3c308b4567",
"STASH": "566abbb64bdc2d144c8b457d",
"STATIONARY_CONT.": "567583764bdc2d98058b456e",
"STIMULANT": "5448f3a64bdc2d60728b456a",
"STOCK": "55818a594bdc2db9688b456a",
"THROWABLE_WEAPON": "543be6564bdc2df4348b4568",
"THERMALVISION": "5d21f59b6dbe99052b54ef83",
"TOOL": "57864bb7245977548b3b66c2",
"UBGL": "55818b014bdc2ddc698b456b",
"VIS_OBSERV_DEVICE": "5448e5724bdc2ddf718b4568",
};
//# sourceMappingURL=itemBaseClasses.js.map

View File

@ -1 +0,0 @@
{"version":3,"file":"itemBaseClasses.js","sourceRoot":"","sources":["itemBaseClasses.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAmC;IAC9D,MAAM,EAAE,0BAA0B;IAClC,gBAAgB,EAAE,0BAA0B;IAC5C,mBAAmB,EAAE,0BAA0B;IAC/C,SAAS,EAAE,0BAA0B;IACrC,OAAO,EAAE,0BAA0B;IACnC,YAAY,EAAE,0BAA0B;IACxC,iBAAiB,EAAE,0BAA0B;IAC7C,eAAe,EAAE,0BAA0B;IAC3C,eAAe,EAAE,0BAA0B;IAC3C,UAAU,EAAE,0BAA0B;IACtC,QAAQ,EAAE,0BAA0B;IACpC,SAAS,EAAE,0BAA0B;IACrC,OAAO,EAAE,0BAA0B;IACnC,mBAAmB,EAAE,0BAA0B;IAC/C,iBAAiB,EAAE,0BAA0B;IAC7C,WAAW,EAAE,0BAA0B;IACvC,kBAAkB,EAAE,0BAA0B;IAC9C,sBAAsB,EAAE,0BAA0B;IAClD,SAAS,EAAE,0BAA0B;IACrC,OAAO,EAAE,0BAA0B;IACnC,MAAM,EAAE,0BAA0B;IAClC,aAAa,EAAE,0BAA0B;IACzC,WAAW,EAAE,0BAA0B;IACvC,YAAY,EAAE,0BAA0B;IACxC,YAAY,EAAE,0BAA0B;IACxC,MAAM,EAAE,0BAA0B;IAClC,UAAU,EAAE,0BAA0B;IACtC,MAAM,EAAE,0BAA0B;IAClC,WAAW,EAAE,0BAA0B;IACvC,kBAAkB,EAAE,0BAA0B;IAC9C,SAAS,EAAE,0BAA0B;IACrC,WAAW,EAAE,0BAA0B;IACvC,YAAY,EAAE,0BAA0B;IACxC,UAAU,EAAE,0BAA0B;IACtC,MAAM,EAAE,0BAA0B;IAClC,WAAW,EAAE,0BAA0B;IACvC,YAAY,EAAE,0BAA0B;IACxC,SAAS,EAAE,0BAA0B;IACrC,eAAe,EAAE,0BAA0B;IAC3C,UAAU,EAAE,0BAA0B;IACtC,OAAO,EAAE,0BAA0B;IACnC,mBAAmB,EAAE,0BAA0B;IAC/C,gBAAgB,EAAE,0BAA0B;IAC5C,WAAW,EAAE,0BAA0B;IACvC,YAAY,EAAE,0BAA0B;IACxC,UAAU,EAAE,0BAA0B;IACtC,KAAK,EAAE,0BAA0B;IACjC,gBAAgB,EAAE,0BAA0B;IAC5C,cAAc,EAAE,0BAA0B;IAC1C,kBAAkB,EAAE,0BAA0B;IAC9C,UAAU,EAAE,0BAA0B;IACtC,OAAO,EAAE,0BAA0B;IACnC,aAAa,EAAE,0BAA0B;IACzC,OAAO,EAAE,0BAA0B;IACnC,aAAa,EAAE,0BAA0B;IACzC,OAAO,EAAE,0BAA0B;IACnC,YAAY,EAAE,0BAA0B;IACxC,SAAS,EAAE,0BAA0B;IACrC,sBAAsB,EAAE,0BAA0B;IAClD,qBAAqB,EAAE,0BAA0B;IACjD,UAAU,EAAE,0BAA0B;IACtC,cAAc,EAAE,0BAA0B;IAC1C,YAAY,EAAE,0BAA0B;IACxC,OAAO,EAAE,0BAA0B;IACnC,SAAS,EAAE,0BAA0B;IACrC,UAAU,EAAE,0BAA0B;IACtC,cAAc,EAAE,0BAA0B;IAC1C,cAAc,EAAE,0BAA0B;IAC1C,OAAO,EAAE,0BAA0B;IACnC,kBAAkB,EAAE,0BAA0B;IAC9C,WAAW,EAAE,0BAA0B;IACvC,OAAO,EAAE,0BAA0B;IACnC,kBAAkB,EAAE,0BAA0B;IAC9C,eAAe,EAAE,0BAA0B;IAC3C,MAAM,EAAE,0BAA0B;IAClC,MAAM,EAAE,0BAA0B;IAClC,mBAAmB,EAAE,0BAA0B;CAChD,CAAC"}

View File

@ -1,79 +0,0 @@
export const ItemBaseClassMap: { [itemName: string]: string } = {
"AMMO": "5485a8684bdc2da71d8b4567",
"AMMO_CONTAINER": "543be5cb4bdc2deb348b4568",
"ARMORED_EQUIPMENT": "57bef4c42459772e8d35a53b",
"ARMBAND": "5b3f15d486f77432d0509248",
"ARMOR": "5448e54d4bdc2dcc718b4568",
"ARMORPLATE": "644120aa86ffbe10ee032b6f",
"ASSAULT_CARBINE": "5447b5fc4bdc2d87278b4567",
"ASSAULT_RIFLE": "5447b5f14bdc2d61278b4567",
"ASSAULT_SCOPE": "55818add4bdc2d5b648b456f",
"BACKPACK": "5448e53e4bdc2d60728b4567",
"BARREL": "555ef6e44bdc2de9068b457e",
"BATTERY": "57864ee62459775490116fc1",
"BIPOD": "55818afb4bdc2dde698b456d",
"BUILDING_MATERIAL": "57864ada245977548638de91",
"CHARGING_HANDLE": "55818a6f4bdc2db9688b456b",
"CHEST_RIG": "5448e5284bdc2dcb718b4567",
"COMMON_CONTAINER": "5795f317245977243854e041",
"COMPACT_REFLEX_SIGHT": "55818acf4bdc2dde698b456b",
"COMPASS": "5f4fbaaca5573a5ac31db429",
"DRINK": "5448e8d64bdc2dce718b4568",
"DRUG": "5448f3a14bdc2d27728b4569",
"ELECTRONICS": "57864a66245977548f04a81f",
"FACECOVER": "5a341c4686f77469e155819e",
"FLASHLIGHT": "55818b084bdc2d5b648b4571",
"FLASHHIDER": "550aa4bf4bdc2dd6348b456b",
"FOOD": "5448e8d04bdc2ddf718b4569",
"FOREGRIP": "55818af64bdc2d5b648b4570",
"FUEL": "5d650c3e815116009f6201d2",
"GAS_BLOCK": "56ea9461d2720b67698b456f",
"GRENADE_LAUNCHER": "5447bedf4bdc2d87278b4568",
"HANDGUN": "5447b5cf4bdc2d65278b4567",
"HANDGUARD": "55818a104bdc2db9688b4569",
"HEADPHONES": "5645bcb74bdc2ded0b8b4578",
"HEADWEAR": "5a341c4086f77401f2541505",
"INFO": "5448ecbe4bdc2d60728b4568",
"INVENTORY": "55d720f24bdc2d88028b456d",
"IRON_SIGHT": "55818ac54bdc2d5b648b456e",
"KEYCARD": "5c164d2286f774194c5e69fa",
"KEYMECHANICAL": "5c99f98d86f7745c314214b3",
"KEY_CARD": "5c164d2286f774194c5e69fa",
"KNIFE": "5447e1d04bdc2dff2f8b4567",
"LOCKING_CONTAINER": "5671435f4bdc2d96058b4569",
"LOOT_CONTAINER": "566965d44bdc2d814c8b4571",
"LUBRICANT": "57864e4c24597754843f8723",
"MACHINEGUN": "5447bed64bdc2d97278b4568",
"MAGAZINE": "5448bc234bdc2d3c308b4569",
"MAP": "567849dd4bdc2d150f8b456e",
"MARKSMAN_RIFLE": "5447b6194bdc2d67278b4567",
"MEDICAL_ITEM": "5448f3ac4bdc2dce718b4569",
"MEDICAL_SUPPLIES": "57864c8c245977548867e7f1",
"MEDITKIT": "5448f39d4bdc2d0a728b4568",
"MONEY": "543be5dd4bdc2deb348b4569",
"MUZZLECOMBO": "550aa4dd4bdc2dc9348b4569",
"MOUNT": "55818b224bdc2dde698b456f",
"NIGHTVISION": "5a2c3a9486f774688b05e574",
"OTHER": "590c745b86f7743cc433c5f2",
"PISTOLGRIP": "55818a684bdc2ddd698b456d",
"POCKETS": "557596e64bdc2dc2118b4571",
"PORTABLE_RANGEFINDER": "61605ddea09d851a0a0c1bbc",
"RANDOMLOOTCONTAINER": "62f109593b54472778797866",
"RECEIVER": "55818a304bdc2db5418b457d",
"REFLEX_SIGHT": "55818ad54bdc2ddc698b4569",
"REPAIRKITS": "616eb7aea207f41933308f46",
"SCOPE": "55818ae44bdc2dde698b456c",
"SHOTGUN": "5447b6094bdc2dc3278b4567",
"SILENCER": "550aa4cd4bdc2dd8348b456c",
"SNIPER_RIFLE": "5447b6254bdc2dc3278b4568",
"SPECIAL_ITEM": "5447e0e74bdc2d3c308b4567",
"STASH": "566abbb64bdc2d144c8b457d",
"STATIONARY_CONT.": "567583764bdc2d98058b456e",
"STIMULANT": "5448f3a64bdc2d60728b456a",
"STOCK": "55818a594bdc2db9688b456a",
"THROWABLE_WEAPON": "543be6564bdc2df4348b4568",
"THERMALVISION": "5d21f59b6dbe99052b54ef83",
"TOOL": "57864bb7245977548b3b66c2",
"UBGL": "55818b014bdc2ddc698b456b",
"VIS_OBSERV_DEVICE": "5448e5724bdc2ddf718b4568",
};

View File

@ -1,85 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ItemHandbookCategoryMap = void 0;
exports.ItemHandbookCategoryMap = {
"AMMO": "5b47574386f77428ca22b346",
"AMMO_BOXES": "5b47574386f77428ca22b33c",
"AMMO_ROUNDS": "5b47574386f77428ca22b33b",
"BARTER": "5b47574386f77428ca22b33e",
"BARTER_BUILDING": "5b47574386f77428ca22b2ee",
"BARTER_ELECTRONICS": "5b47574386f77428ca22b2ef",
"BARTER_ENERGY": "5b47574386f77428ca22b2ed",
"BARTER_FLAMMABLE": "5b47574386f77428ca22b2f2",
"BARTER_HOUSEHOLD": "5b47574386f77428ca22b2f0",
"BARTER_MEDICAL": "5b47574386f77428ca22b2f3",
"BARTER_OTHERS": "5b47574386f77428ca22b2f4",
"BARTER_TOOLS": "5b47574386f77428ca22b2f6",
"BARTER_VALUABLES": "5b47574386f77428ca22b2f1",
"GEAR": "5b47574386f77428ca22b33f",
"GEAR_ARMOR": "5b5f701386f774093f2ecf0f",
"GEAR_BACKPACKS": "5b5f6f6c86f774093f2ecf0b",
"GEAR_CASES": "5b5f6fa186f77409407a7eb7",
"GEAR_COMPONENTS": "5b5f704686f77447ec5d76d7",
"GEAR_FACECOVERS": "5b47574386f77428ca22b32f",
"GEAR_HEADSETS": "5b5f6f3c86f774094242ef87",
"GEAR_HEADWEAR": "5b47574386f77428ca22b330",
"GEAR_RIGS": "5b5f6f8786f77447ed563642",
"GEAR_SECURED": "5b5f6fd286f774093f2ecf0d",
"GEAR_VISORS": "5b47574386f77428ca22b331",
"INFO": "5b47574386f77428ca22b341",
"KEYS": "5b47574386f77428ca22b342",
"KEYS_ELECTRONIC": "5c518ed586f774119a772aee",
"KEYS_MECHANIC": "5c518ec986f7743b68682ce2",
"MAPS": "5b47574386f77428ca22b343",
"MEDICAL": "5b47574386f77428ca22b344",
"MEDICAL_INJECTORS": "5b47574386f77428ca22b33a",
"MEDICAL_INJURY": "5b47574386f77428ca22b339",
"MEDICAL_MEDKITS": "5b47574386f77428ca22b338",
"MEDICAL_PILLS": "5b47574386f77428ca22b337",
"MODS": "5b5f71a686f77447ed5636ab",
"MODS_FUNCTIONAL": "5b5f71b386f774093f2ecf11",
"MODS_GEAR": "5b5f750686f774093e6cb503",
"MODS_VITAL": "5b5f75b986f77447ec5d7710",
"MOD_ASSAULT_SCOPE": "5b5f740a86f77447ec5d7706",
"MOD_AUX": "5b5f74cc86f77447ec5d770a",
"MOD_BARREL": "5b5f75c686f774094242f19f",
"MOD_BIPOD": "5b5f71c186f77409407a7ec0",
"MOD_CHARGE": "5b5f751486f77447ec5d770c",
"MOD_FLASHHIDER": "5b5f724c86f774093f2ecf15",
"MOD_FOREGRIP": "5b5f71de86f774093f2ecf13",
"MOD_GASBLOCK": "5b5f760586f774093e6cb509",
"MOD_HANDGUARD": "5b5f75e486f77447ec5d7712",
"MOD_IRON_SIGHT": "5b5f746686f77447ec5d7708",
"MOD_LAUNCHER": "5b5f752e86f774093e6cb505",
"MOD_LIGHTLASER": "5b5f736886f774094242f193",
"MOD_MAGAZINE": "5b5f754a86f774094242f19b",
"MOD_MOUNT": "5b5f755f86f77447ec5d770e",
"MOD_MICRO_DOT": "5b5f744786f774094242f197",
"MOD_MUZZLE": "5b5f724186f77447ed5636ad",
"MOD_OPTIC": "5b5f748386f774093e6cb501",
"MOD_PISTOLGRIP": "5b5f761f86f774094242f1a1",
"MOD_RECEIVER": "5b5f764186f77447ec5d7714",
"MOD_SIGHT": "5b5f73ec86f774093e6cb4fd",
"MOD_STOCK": "5b5f757486f774093e6cb507",
"MOD_SUPPRESSOR": "5b5f731a86f774093e6cb4f9",
"MONEY": "5b5f78b786f77447ed5636af",
"PROVISIONS": "5b47574386f77428ca22b340",
"PROVISIONS_DRINKS": "5b47574386f77428ca22b335",
"PROVISIONS_FOOD": "5b47574386f77428ca22b336",
"QUEST": "5b619f1a86f77450a702a6f3",
"SPEC": "5b47574386f77428ca22b345",
"WEAPONS": "5b5f78dc86f77409407a7f8e",
"WEAPONS_ASSAULTRIFLES": "5b5f78fc86f77409407a7f90",
"WEAPONS_BOLTACTION": "5b5f798886f77447ed5636b5",
"WEAPONS_CARBINES": "5b5f78e986f77447ed5636b1",
"WEAPONS_DMR": "5b5f791486f774093f2ed3be",
"WEAPONS_GL": "5b5f79d186f774093f2ed3c2",
"WEAPONS_MG": "5b5f79a486f77409407a7f94",
"WEAPONS_MELEE": "5b5f7a0886f77409407a7f96",
"WEAPONS_PISTOLS": "5b5f792486f77447ed5636b3",
"WEAPONS_SHOTGUNS": "5b5f794b86f77409407a7f92",
"WEAPONS_SMG": "5b5f796a86f774093f2ed3c0",
"WEAPONS_SPECIAL": "5b5f79eb86f77447ed5636b7",
"WEAPONS_THROW": "5b5f7a2386f774093f2ed3c4",
};
//# sourceMappingURL=itemHandbookCategories.js.map

View File

@ -1 +0,0 @@
{"version":3,"file":"itemHandbookCategories.js","sourceRoot":"","sources":["itemHandbookCategories.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAmC;IACrE,MAAM,EAAE,0BAA0B;IAClC,YAAY,EAAE,0BAA0B;IACxC,aAAa,EAAE,0BAA0B;IACzC,QAAQ,EAAE,0BAA0B;IACpC,iBAAiB,EAAE,0BAA0B;IAC7C,oBAAoB,EAAE,0BAA0B;IAChD,eAAe,EAAE,0BAA0B;IAC3C,kBAAkB,EAAE,0BAA0B;IAC9C,kBAAkB,EAAE,0BAA0B;IAC9C,gBAAgB,EAAE,0BAA0B;IAC5C,eAAe,EAAE,0BAA0B;IAC3C,cAAc,EAAE,0BAA0B;IAC1C,kBAAkB,EAAE,0BAA0B;IAC9C,MAAM,EAAE,0BAA0B;IAClC,YAAY,EAAE,0BAA0B;IACxC,gBAAgB,EAAE,0BAA0B;IAC5C,YAAY,EAAE,0BAA0B;IACxC,iBAAiB,EAAE,0BAA0B;IAC7C,iBAAiB,EAAE,0BAA0B;IAC7C,eAAe,EAAE,0BAA0B;IAC3C,eAAe,EAAE,0BAA0B;IAC3C,WAAW,EAAE,0BAA0B;IACvC,cAAc,EAAE,0BAA0B;IAC1C,aAAa,EAAE,0BAA0B;IACzC,MAAM,EAAE,0BAA0B;IAClC,MAAM,EAAE,0BAA0B;IAClC,iBAAiB,EAAE,0BAA0B;IAC7C,eAAe,EAAE,0BAA0B;IAC3C,MAAM,EAAE,0BAA0B;IAClC,SAAS,EAAE,0BAA0B;IACrC,mBAAmB,EAAE,0BAA0B;IAC/C,gBAAgB,EAAE,0BAA0B;IAC5C,iBAAiB,EAAE,0BAA0B;IAC7C,eAAe,EAAE,0BAA0B;IAC3C,MAAM,EAAE,0BAA0B;IAClC,iBAAiB,EAAE,0BAA0B;IAC7C,WAAW,EAAE,0BAA0B;IACvC,YAAY,EAAE,0BAA0B;IACxC,mBAAmB,EAAE,0BAA0B;IAC/C,SAAS,EAAE,0BAA0B;IACrC,YAAY,EAAE,0BAA0B;IACxC,WAAW,EAAE,0BAA0B;IACvC,YAAY,EAAE,0BAA0B;IACxC,gBAAgB,EAAE,0BAA0B;IAC5C,cAAc,EAAE,0BAA0B;IAC1C,cAAc,EAAE,0BAA0B;IAC1C,eAAe,EAAE,0BAA0B;IAC3C,gBAAgB,EAAE,0BAA0B;IAC5C,cAAc,EAAE,0BAA0B;IAC1C,gBAAgB,EAAE,0BAA0B;IAC5C,cAAc,EAAE,0BAA0B;IAC1C,WAAW,EAAE,0BAA0B;IACvC,eAAe,EAAE,0BAA0B;IAC3C,YAAY,EAAE,0BAA0B;IACxC,WAAW,EAAE,0BAA0B;IACvC,gBAAgB,EAAE,0BAA0B;IAC5C,cAAc,EAAE,0BAA0B;IAC1C,WAAW,EAAE,0BAA0B;IACvC,WAAW,EAAE,0BAA0B;IACvC,gBAAgB,EAAE,0BAA0B;IAC5C,OAAO,EAAE,0BAA0B;IACnC,YAAY,EAAE,0BAA0B;IACxC,mBAAmB,EAAE,0BAA0B;IAC/C,iBAAiB,EAAE,0BAA0B;IAC7C,OAAO,EAAE,0BAA0B;IACnC,MAAM,EAAE,0BAA0B;IAClC,SAAS,EAAE,0BAA0B;IACrC,uBAAuB,EAAE,0BAA0B;IACnD,oBAAoB,EAAE,0BAA0B;IAChD,kBAAkB,EAAE,0BAA0B;IAC9C,aAAa,EAAE,0BAA0B;IACzC,YAAY,EAAE,0BAA0B;IACxC,YAAY,EAAE,0BAA0B;IACxC,eAAe,EAAE,0BAA0B;IAC3C,iBAAiB,EAAE,0BAA0B;IAC7C,kBAAkB,EAAE,0BAA0B;IAC9C,aAAa,EAAE,0BAA0B;IACzC,iBAAiB,EAAE,0BAA0B;IAC7C,eAAe,EAAE,0BAA0B;CAC5C,CAAC"}

View File

@ -1,81 +0,0 @@
export const ItemHandbookCategoryMap: { [itemName: string]: string } = {
"AMMO": "5b47574386f77428ca22b346",
"AMMO_BOXES": "5b47574386f77428ca22b33c",
"AMMO_ROUNDS": "5b47574386f77428ca22b33b",
"BARTER": "5b47574386f77428ca22b33e",
"BARTER_BUILDING": "5b47574386f77428ca22b2ee",
"BARTER_ELECTRONICS": "5b47574386f77428ca22b2ef",
"BARTER_ENERGY": "5b47574386f77428ca22b2ed",
"BARTER_FLAMMABLE": "5b47574386f77428ca22b2f2",
"BARTER_HOUSEHOLD": "5b47574386f77428ca22b2f0",
"BARTER_MEDICAL": "5b47574386f77428ca22b2f3",
"BARTER_OTHERS": "5b47574386f77428ca22b2f4",
"BARTER_TOOLS": "5b47574386f77428ca22b2f6",
"BARTER_VALUABLES": "5b47574386f77428ca22b2f1",
"GEAR": "5b47574386f77428ca22b33f",
"GEAR_ARMOR": "5b5f701386f774093f2ecf0f",
"GEAR_BACKPACKS": "5b5f6f6c86f774093f2ecf0b",
"GEAR_CASES": "5b5f6fa186f77409407a7eb7",
"GEAR_COMPONENTS": "5b5f704686f77447ec5d76d7",
"GEAR_FACECOVERS": "5b47574386f77428ca22b32f",
"GEAR_HEADSETS": "5b5f6f3c86f774094242ef87",
"GEAR_HEADWEAR": "5b47574386f77428ca22b330",
"GEAR_RIGS": "5b5f6f8786f77447ed563642",
"GEAR_SECURED": "5b5f6fd286f774093f2ecf0d",
"GEAR_VISORS": "5b47574386f77428ca22b331",
"INFO": "5b47574386f77428ca22b341",
"KEYS": "5b47574386f77428ca22b342",
"KEYS_ELECTRONIC": "5c518ed586f774119a772aee",
"KEYS_MECHANIC": "5c518ec986f7743b68682ce2",
"MAPS": "5b47574386f77428ca22b343",
"MEDICAL": "5b47574386f77428ca22b344",
"MEDICAL_INJECTORS": "5b47574386f77428ca22b33a",
"MEDICAL_INJURY": "5b47574386f77428ca22b339",
"MEDICAL_MEDKITS": "5b47574386f77428ca22b338",
"MEDICAL_PILLS": "5b47574386f77428ca22b337",
"MODS": "5b5f71a686f77447ed5636ab",
"MODS_FUNCTIONAL": "5b5f71b386f774093f2ecf11",
"MODS_GEAR": "5b5f750686f774093e6cb503",
"MODS_VITAL": "5b5f75b986f77447ec5d7710",
"MOD_ASSAULT_SCOPE": "5b5f740a86f77447ec5d7706",
"MOD_AUX": "5b5f74cc86f77447ec5d770a",
"MOD_BARREL": "5b5f75c686f774094242f19f",
"MOD_BIPOD": "5b5f71c186f77409407a7ec0",
"MOD_CHARGE": "5b5f751486f77447ec5d770c",
"MOD_FLASHHIDER": "5b5f724c86f774093f2ecf15",
"MOD_FOREGRIP": "5b5f71de86f774093f2ecf13",
"MOD_GASBLOCK": "5b5f760586f774093e6cb509",
"MOD_HANDGUARD": "5b5f75e486f77447ec5d7712",
"MOD_IRON_SIGHT": "5b5f746686f77447ec5d7708",
"MOD_LAUNCHER": "5b5f752e86f774093e6cb505",
"MOD_LIGHTLASER": "5b5f736886f774094242f193",
"MOD_MAGAZINE": "5b5f754a86f774094242f19b",
"MOD_MOUNT": "5b5f755f86f77447ec5d770e",
"MOD_MICRO_DOT": "5b5f744786f774094242f197",
"MOD_MUZZLE": "5b5f724186f77447ed5636ad",
"MOD_OPTIC": "5b5f748386f774093e6cb501",
"MOD_PISTOLGRIP": "5b5f761f86f774094242f1a1",
"MOD_RECEIVER": "5b5f764186f77447ec5d7714",
"MOD_SIGHT": "5b5f73ec86f774093e6cb4fd",
"MOD_STOCK": "5b5f757486f774093e6cb507",
"MOD_SUPPRESSOR": "5b5f731a86f774093e6cb4f9",
"MONEY": "5b5f78b786f77447ed5636af",
"PROVISIONS": "5b47574386f77428ca22b340",
"PROVISIONS_DRINKS": "5b47574386f77428ca22b335",
"PROVISIONS_FOOD": "5b47574386f77428ca22b336",
"QUEST": "5b619f1a86f77450a702a6f3",
"SPEC": "5b47574386f77428ca22b345",
"WEAPONS": "5b5f78dc86f77409407a7f8e",
"WEAPONS_ASSAULTRIFLES": "5b5f78fc86f77409407a7f90",
"WEAPONS_BOLTACTION": "5b5f798886f77447ed5636b5",
"WEAPONS_CARBINES": "5b5f78e986f77447ed5636b1",
"WEAPONS_DMR": "5b5f791486f774093f2ed3be",
"WEAPONS_GL": "5b5f79d186f774093f2ed3c2",
"WEAPONS_MG": "5b5f79a486f77409407a7f94",
"WEAPONS_MELEE": "5b5f7a0886f77409407a7f96",
"WEAPONS_PISTOLS": "5b5f792486f77447ed5636b3",
"WEAPONS_SHOTGUNS": "5b5f794b86f77409407a7f92",
"WEAPONS_SMG": "5b5f796a86f774093f2ed3c0",
"WEAPONS_SPECIAL": "5b5f79eb86f77447ed5636b7",
"WEAPONS_THROW": "5b5f7a2386f774093f2ed3c4",
};

File diff suppressed because one or more lines are too long

View File

@ -195,13 +195,13 @@ PmcWaveDistribution = 0.8
# Setting type: Double
# Default value: 1
# Acceptable value range: From 0 to 10
ScavWaveQuantity = 1
ScavWaveQuantity = 0.6
## Multiplies wave counts seen in the server's mapConfig.json by this number
# Setting type: Double
# Default value: 1
# Acceptable value range: From 0 to 10
PmcWaveQuantity = 1
PmcWaveQuantity = 0.6
[3.Debug]

View File

@ -35,7 +35,6 @@
+Kel-Tec KSG-12
+China Lake
+Peacemaker
+Black Clothing Pack
+Black Core
+Additional Clothing BEAR
+Additional Clothing USEC

View File

@ -1,4 +1,3 @@
# This file was automatically generated by Mod Organizer.
+Unsorted_separator
-Version 1.35.2_separator
-WTT - Menu Overhaul
@ -35,7 +34,6 @@
+Kel-Tec KSG-12
+China Lake
+Peacemaker
+Black Clothing Pack
+Black Core
+Additional Clothing BEAR
+Additional Clothing USEC