56 Commits
Author SHA1 Message Date
Rage c6a4c23e0d Disabled SWAG/DONUTS & Re-Enabled MOAR 2025-01-15 18:34:25 -05:00
Rage 9a9bde3445 Updated SWAG/DONUTS 2025-01-15 17:04:53 -05:00
Rage 7456838720 Updated SWAG/DONUTS Spawn Settings 2025-01-15 06:33:55 -05:00
Rage 69f3954bcb Disabled Visceral Combat & Graphics/Renders for Dedi 2025-01-15 05:52:58 -05:00
Rage 77d156762e Updated Visceral Combat; Enabled Graphics/Renderers for Dedi 2025-01-15 04:38:41 -05:00
Rage b026a328e4 Added Configs for Some Mods 2025-01-14 21:45:01 -05:00
Rage dded8a81d6 Updated Progressive Bot System 2025-01-14 21:41:14 -05:00
Rage fb99760b29 Updated SWAG/DONUTS 2025-01-14 21:05:12 -05:00
Rage 951d0201f9 Updated SWAG/DONUTS 2025-01-14 20:43:36 -05:00
Rage b292d36c21 Added New Mods; Removed Backups
- AUG Attachment Pack
- Plant Time Modifier
2025-01-14 20:14:52 -05:00
Rage 147c9bda00 Update README.md 2025-01-14 19:58:47 -05:00
Rage a67f0d8248 Update LICENSE.md 2025-01-14 19:57:06 -05:00
Rage 93d8f94c6b Added LICENSE 2025-01-14 04:57:11 -05:00
Rage 437ad4203d Updated Mod Configs
- Tweaked MOAR Custom & Default Settings
- Added Interactable Exfils API Config
2025-01-14 04:24:58 -05:00
Rage 7fee303436 Updated Progressive Bot System 2025-01-14 01:49:02 -05:00
Rage b7a439a282 Added Interactable Exfils API 2025-01-14 01:42:23 -05:00
Rage 15ddd52ac6 Tweaked AI Settings, Leveling and MOAR Spawning 2025-01-14 00:52:51 -05:00
Rage 6eecae59f6 Updated MOAR & Tweaked Config 2025-01-13 18:17:36 -05:00
Rage c99136d826 Disabling SWAG/DONUTS For Time Being
Arys has postponed providing support for Fika for now until it is more finalized for SPT specifically.

Deleted backups for mods as well.
2025-01-13 18:07:22 -05:00
Rage 8039e900f6 Updated Donuts.dll 2025-01-13 17:44:03 -05:00
Rage 5381ede0e2 Added Additional Clothing & Updated Menu Overhaul 2025-01-13 08:29:02 -05:00
Rage 4347242d3a Tweaked Bot Limits for DONUTS 2025-01-13 06:39:16 -05:00
Rage ccc7f1c7b6 BE Test - Reverted to PR Edit of Raid Handling 2025-01-13 01:05:49 -05:00
Rage 810312b097 BE Test - Updated Donuts.dll X2 2025-01-13 00:56:13 -05:00
Rage cbffa56551 BE Testing - Updated Donuts.dll 2025-01-13 00:51:05 -05:00
Rage 75c67cbaa0 Forgot to enable SWAG/DONUTS 2025-01-13 00:34:18 -05:00
Rage a60509ce4e Updated Donuts DLL 2025-01-13 00:26:38 -05:00
Rage f2b832fb77 Updated SWAG/DONUTS 2025-01-13 00:19:28 -05:00
Rage e787ecccb5 Disabled Swagnuts 2025-01-12 23:31:41 -05:00
Rage fa192acb29 Updated Version Number 2025-01-12 22:41:12 -05:00
Rage c02a35612e Updated Swagnuts & Some Mod Configs 2025-01-12 22:40:35 -05:00
Rage 73e3f57758 Disabled Swagnuts; Re-enabled & Tweaked MOAR 2025-01-12 18:27:43 -05:00
Rage 9e834694f2 Added Scope and Red Dot Sight Overhaul 2025-01-12 17:43:22 -05:00
Rage a7d2afe3b0 Updated SVM Config 2025-01-12 17:36:55 -05:00
Rage c2885757d3 Updated Borkels NVGs & SVM 2025-01-12 17:34:08 -05:00
Rage b697b687a7 Updated That's Lit & Tweaked Configs 2025-01-12 07:34:09 -05:00
Rage b9abacef3e Updated Version Number 2025-01-12 07:03:50 -05:00
Rage d990cf381f Added Borkel's Realistic Night Vision Goggles 2025-01-12 06:48:15 -05:00
Rage b8efad481d Some Config Updates 2025-01-12 06:42:16 -05:00
Rage 4c35579b73 Added a Separator for Version Tracking 2025-01-12 04:51:07 -05:00
Rage 7ccfda6d3d Updated Fika Dedicated & Update Rate for Config 2025-01-12 04:48:05 -05:00
Rage f44663aa2a Recreated Swagnuts Config 2025-01-12 03:41:40 -05:00
Rage df12331013 Updated Swagnuts 2025-01-12 03:14:20 -05:00
Rage 66964b26ef Updated Quick Throw Hotkey & Fika Config 2025-01-11 16:19:56 -05:00
Rage 887e7116b6 Disabled Custom Asset Importer 2025-01-11 16:05:23 -05:00
Rage e1905a5613 Added RPG-7 & Peacemaker Mods 2025-01-11 04:49:47 -05:00
Rage 4be51035f2 Tweaked Donuts Spawn Settigns 2025-01-11 00:10:29 -05:00
Rage 246e806005 Updated Server Modlist 2025-01-10 23:29:23 -05:00
Rage 2a85d05696 Generated & Tweaked Donuts Config 2025-01-10 23:24:34 -05:00
Rage fa2ec9073c Test For SWAG/DONUTS & SAIN Flashlight Dazzle Tweaks 2025-01-10 23:05:33 -05:00
Rage f907d8a2f6 Update for Unity Toolkit 2025-01-10 23:04:36 -05:00
Rage 564688df55 Enabled Reload Mags In-Place 2025-01-10 18:32:46 -05:00
Rage 2313694a50 Updated Fika Core 2025-01-10 18:31:08 -05:00
Rage 253835a6aa Added Hideout Flashing Mod Fix & Auto-Vault Fix Mods 2025-01-10 03:30:48 -05:00
Rage 966c30c738 Updated Quest Tracker 2025-01-09 06:13:22 -05:00
Rage ea4e25ccb3 Updated Load Order; Removed Backup of PBS & Tweaked Config 2025-01-08 23:15:32 -05:00
1239 changed files with 60447 additions and 592198 deletions
+3 -1
View File
@@ -1,4 +1,6 @@
mods/Config Files/BepInEx/config/com.mpstark.DynamicMaps.cfg mods/Config Files/BepInEx/config/com.mpstark.DynamicMaps.cfg
mods/Config Files/BepInEx/config/xyz.drakia.questtracker.cfg mods/Config Files/BepInEx/config/xyz.drakia.questtracker.cfg
mods/Dynamic Goons/user/mods/inory-dynamicgoons/src/db/rotationData.json mods/Dynamic Goons/user/mods/inory-dynamicgoons/src/db/rotationData.json
mods/Config Files/BepInEx/config/com.Amanda.Graphics.cfg mods/Config Files/BepInEx/config/com.Amanda.Graphics.cfg
mods/Config Files/BepInEx/config/com.mpstark.DynamicMaps.cfg
mods/Config Files/BepInEx/config/com.mpstark.DynamicMaps.cfg
+19
View File
@@ -0,0 +1,19 @@
Repository Name: Fika-Tarkov
Copyright © 2025 Rage
All Rights Reserved
License Grant: This repository and its contents, including but not limited to source code, documentation, images, and other materials, are protected by copyright law. Unless otherwise stated in a separate license agreement, all intellectual property rights are owned by the author(s) of this repository.
Restrictions: No part of this repository may be reproduced, distributed, or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage and retrieval system, without the prior written permission of the author(s).
Contact Information: Any inquiries are strictly forbidden unless directed to.
No Implied Licenses: Nothing in this license shall be deemed to grant any rights to any third parties or to imply any relationship between the author(s) and the recipients or users of this repository.
No Warranty: This repository is provided on an "as-is" basis, without any warranties or conditions, express or implied, including, but not limited to, warranties of merchantability, fitness for a particular purpose, or non-infringement.
Limitation of Liability: In no event shall the author(s) be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with this repository or the use or other dealings in this repository.
This license shall be governed by and construed in accordance with the laws of the United States, without regard to its conflicts of law provisions.
+21
View File
@@ -1,2 +1,23 @@
# Fika-Tarkov # Fika-Tarkov
This is a personal modpack for a group of friends and I, not to be redistributed, shared or publicized. This is open to view purely for the ability to clone the repository from the automated batch script.
## License
Repository Name: Fika-Tarkov
Copyright © 2025 Rage
All Rights Reserved
License Grant: This repository and its contents, including but not limited to source code, documentation, images, and other materials, are protected by copyright law. Unless otherwise stated in a separate license agreement, all intellectual property rights are owned by the author(s) of this repository.
Restrictions: No part of this repository may be reproduced, distributed, or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage and retrieval system, without the prior written permission of the author(s).
Contact Information: Any inquiries are strictly forbidden unless directed to.
No Implied Licenses: Nothing in this license shall be deemed to grant any rights to any third parties or to imply any relationship between the author(s) and the recipients or users of this repository.
No Warranty: This repository is provided on an "as-is" basis, without any warranties or conditions, express or implied, including, but not limited to, warranties of merchantability, fitness for a particular purpose, or non-infringement.
Limitation of Liability: In no event shall the author(s) be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with this repository or the use or other dealings in this repository.
This license shall be governed by and construed in accordance with the laws of the United States, without regard to its conflicts of law provisions.
@@ -1,11 +1,11 @@
[General] [General]
gameName=spt gameName=spt
modid=0 modid=0
version=d2025.1.7.0 version=d2025.1.14.0
newestVersion= newestVersion=
category="1," category="1,"
nexusFileStatus=1 nexusFileStatus=1
installationFile=acidphantasm-progressivebotsystem.zip installationFile=AUG_AttachmentPack.zip
repository= repository=
ignoredVersion= ignoredVersion=
comments= comments=
@@ -15,7 +15,7 @@ url=
hasCustomURL=false hasCustomURL=false
lastNexusQuery= lastNexusQuery=
lastNexusUpdate= lastNexusUpdate=
nexusLastModified=2024-12-16T07:04:24Z nexusLastModified=2025-01-15T01:12:37Z
nexusCategory=0 nexusCategory=0
converted=false converted=false
validated=false validated=false
@@ -0,0 +1,36 @@
{
"manifest": [
{
"key": "assets/content/items/mods/handguards/handguard_fb20.bundle",
"dependencyKeys": [
"assets/commonassets/physics/physicsmaterials.bundle",
"cubemaps",
"shaders"
]
},
{
"key": "assets/content/items/mods/handguards/handguard_guerilla.bundle",
"dependencyKeys": [
"assets/commonassets/physics/physicsmaterials.bundle",
"cubemaps",
"shaders"
]
},
{
"key": "assets/content/items/mods/handguards/handguard_turaco.bundle",
"dependencyKeys": [
"assets/commonassets/physics/physicsmaterials.bundle",
"cubemaps",
"shaders"
]
},
{
"key": "assets/content/items/mods/magazines/mag_aug_60.bundle",
"dependencyKeys": [
"assets/commonassets/physics/physicsmaterials.bundle",
"cubemaps",
"shaders"
]
}
]
}
@@ -0,0 +1,24 @@
{
"templates": {
"6786e03b67ad44fd9b0fabd0": {
"Name": "AUG RAS Handguard",
"ShortName": "AUG",
"Description": "ARMY Metal AUG RAS Handguard For AUG A3 AEG Bullpup Rifle"
},
"6786e03b67ad44fd9b0fabd1": {
"Name": "AUG Cantilever Handguard",
"ShortName": "AUG",
"Description": "The AUG Cantilever Forend combines a top rail, side rail, and M-LOK forend into a compact, light, and incredibly versatile package."
},
"6786e03b67ad44fd9b0fabd2": {
"Name": "AUG Turaco handguard",
"ShortName": "AUG",
"Description": "A CNC made handguard with an M-LOK interface."
},
"6786e03b67ad44fd9b0fabd3": {
"Name": "AUG A3 556x45 60-round drum magazine",
"ShortName": "AUG",
"Description": "A modified PMAG-D60 made to fit Steyr AUG A3"
}
}
}
@@ -0,0 +1,24 @@
{
"Items": [
{
"Id": "6786e03b67ad44fd9b0fabd0",
"ParentId": "5b5f75e486f77447ec5d7712",
"Price": 20000
},
{
"Id": "6786e03b67ad44fd9b0fabd1",
"ParentId": "5b5f75e486f77447ec5d7712",
"Price": 18000
},
{
"Id": "6786e03b67ad44fd9b0fabd2",
"ParentId": "5b5f75e486f77447ec5d7712",
"Price": 17000
},
{
"Id": "6786e03b67ad44fd9b0fabd3",
"ParentId": "5b5f754a86f774094242f19b",
"Price": 15000
}
]
}
@@ -0,0 +1,771 @@
{
"6786e03b67ad44fd9b0fabd0": {
"_id": "6786e03b67ad44fd9b0fabd0",
"_name": "handguard_fb20",
"_parent": "55818a104bdc2db9688b4569",
"_type": "Item",
"_props": {
"Name": "",
"ShortName": "",
"Description": "",
"Weight": 0.209,
"BackgroundColor": "blue",
"Width": 2,
"Height": 1,
"StackMaxSize": 1,
"ItemSound": "mod",
"Prefab": {
"path": "assets/content/items/mods/handguards/handguard_fb20.bundle",
"rcid": ""
},
"UsePrefab": {
"path": "",
"rcid": ""
},
"StackObjectsCount": 1,
"NotShownInSlot": false,
"ExaminedByDefault": true,
"ExamineTime": 1,
"IsUndiscardable": false,
"IsUnsaleable": false,
"IsUnbuyable": false,
"IsUngivable": false,
"IsLockedafterEquip": false,
"QuestItem": false,
"LootExperience": 10,
"ExamineExperience": 3,
"HideEntrails": false,
"RepairCost": 0,
"RepairSpeed": 0,
"ExtraSizeLeft": 1,
"ExtraSizeRight": 0,
"ExtraSizeUp": 0,
"ExtraSizeDown": 0,
"ExtraSizeForceAdd": false,
"MergesWithChildren": true,
"CanSellOnRagfair": true,
"CanRequireOnRagfair": false,
"ConflictingItems": [],
"Unlootable": false,
"UnlootableFromSlot": "FirstPrimaryWeapon",
"UnlootableFromSide": [],
"AnimationVariantsNumber": 0,
"DiscardingBlock": false,
"RagFairCommissionModifier": 1,
"IsAlwaysAvailableForInsurance": false,
"DiscardLimit": -1,
"DropSoundType": "None",
"InsuranceDisabled": false,
"QuestStashMaxCount": 0,
"IsSpecialSlotOnly": false,
"IsUnremovable": false,
"Grids": [],
"Slots": [
{
"_name": "mod_mount_000",
"_id": "5c6d5d8b2e221644fc630b3b",
"_parent": "5c6d5d8b2e221644fc630b39",
"_props": {
"filters": [
{
"Shift": 0,
"Filter": [
"5a800961159bd4315e3a1657",
"57fd23e32459772d0805bcf1",
"544909bb4bdc2d6f028b4577",
"5d10b49bd7ad1a1a560708b0",
"5c06595c0db834001a66af6c",
"5cc9c20cd7f00c001336c65d",
"5d2369418abbc306c62e0c80",
"5b07dd285acfc4001754240d",
"56def37dd2720bec348b456a",
"5a7b483fe899ef0016170d15",
"61605d88ffa6e502ac5e7eeb",
"5a5f1ce64f39f90b401987bc",
"560d657b4bdc2da74d8b4572",
"5b3a337e5acfc4704b4a19a0",
"5c5952732e2216398b5abda2",
"57d17e212459775a1179a0f5",
"6267c6396b642f77f56f5c1c",
"6272370ee4013c5d7e31f418",
"6272379924e29f06af4d5ecb",
"626becf9582c3e319310b837"
]
}
]
},
"_required": false,
"_mergeSlotWithChildren": false,
"_proto": "55d30c4c4bdc2db4468b457e"
},
{
"_name": "mod_mount_001",
"_id": "5c6d5d8b2e221644fc630b3c",
"_parent": "5c6d5d8b2e221644fc630b39",
"_props": {
"filters": [
{
"Shift": 0,
"Filter": [
"5a800961159bd4315e3a1657",
"57fd23e32459772d0805bcf1",
"544909bb4bdc2d6f028b4577",
"5d10b49bd7ad1a1a560708b0",
"5c06595c0db834001a66af6c",
"5cc9c20cd7f00c001336c65d",
"5d2369418abbc306c62e0c80",
"5b07dd285acfc4001754240d",
"56def37dd2720bec348b456a",
"5a7b483fe899ef0016170d15",
"61605d88ffa6e502ac5e7eeb",
"5a5f1ce64f39f90b401987bc",
"560d657b4bdc2da74d8b4572",
"5b3a337e5acfc4704b4a19a0",
"5c5952732e2216398b5abda2",
"57d17e212459775a1179a0f5",
"6267c6396b642f77f56f5c1c",
"6272370ee4013c5d7e31f418",
"6272379924e29f06af4d5ecb",
"626becf9582c3e319310b837"
]
}
]
},
"_required": false,
"_mergeSlotWithChildren": false,
"_proto": "55d30c4c4bdc2db4468b457e"
},
{
"_name": "mod_tactical",
"_id": "5c6d5d8b2e221644fc630b3e",
"_parent": "5c6d5d8b2e221644fc630b39",
"_props": {
"filters": [
{
"Shift": 0,
"Filter": [
"57fd23e32459772d0805bcf1",
"544909bb4bdc2d6f028b4577",
"5d10b49bd7ad1a1a560708b0",
"5c06595c0db834001a66af6c",
"5a7b483fe899ef0016170d15",
"61605d88ffa6e502ac5e7eeb",
"5c5952732e2216398b5abda2"
]
}
]
},
"_required": false,
"_mergeSlotWithChildren": false,
"_proto": "55d30c4c4bdc2db4468b457e"
},
{
"_name": "mod_foregrip",
"_id": "5c6d5d8b2e221644fc630b40",
"_parent": "5c6d5d8b2e221644fc630b39",
"_props": {
"filters": [
{
"Shift": 0,
"Filter": [
"5c7fc87d2e221644f31c0298",
"5cda9bcfd7f00c0c0b53e900",
"59f8a37386f7747af3328f06",
"619386379fb0c665d5490dbe",
"5c87ca002e221600114cb150",
"588226d124597767ad33f787",
"588226dd24597767ad33f789",
"588226e62459776e3e094af7",
"588226ef24597767af46e39c",
"59fc48e086f77463b1118392",
"5fce0cf655375d18a253eff0",
"5cf4fb76d7f00c065703d3ac",
"5b057b4f5acfc4771e1bd3e9",
"5c791e872e2216001219c40a",
"558032614bdc2de7118b4585",
"58c157be86f77403c74b2bb6",
"58c157c886f774032749fb06",
"5f6340d3ca442212f4047eb2",
"591af28e86f77414a27a9e1d",
"5c1cd46f2e22164bef5cfedb",
"5c1bc4812e22164bef5cfde7",
"5c1bc5612e221602b5429350",
"5c1bc5af2e221602b412949b",
"5c1bc5fb2e221602b1779b32",
"5c1bc7432e221602b412949d",
"5c1bc7752e221602b1779b34"
]
}
]
},
"_required": false,
"_mergeSlotWithChildren": false,
"_proto": "55d30c4c4bdc2db4468b457e"
}
],
"CanPutIntoDuringTheRaid": true,
"CantRemoveFromSlotsDuringRaid": [],
"Durability": 100,
"Accuracy": 0,
"Recoil": -1,
"Loudness": 0,
"EffectiveDistance": 0,
"Ergonomics": 8,
"Velocity": 0,
"RaidModdable": false,
"ToolModdable": true,
"BlocksFolding": false,
"BlocksCollapsible": false,
"IsAnimated": false,
"HasShoulderContact": false,
"SightingRange": 0,
"DoubleActionAccuracyPenaltyMult": 1,
"HeatFactor": 0.985,
"CoolFactor": 1.055
},
"_proto": "55d459824bdc2d892f8b4573"
},
"6786e03b67ad44fd9b0fabd1": {
"_id": "6786e03b67ad44fd9b0fabd1",
"_name": "handguard_guerilla",
"_parent": "55818a104bdc2db9688b4569",
"_type": "Item",
"_props": {
"Name": "",
"ShortName": "",
"Description": "",
"Weight": 0.209,
"BackgroundColor": "blue",
"Width": 2,
"Height": 1,
"StackMaxSize": 1,
"ItemSound": "mod",
"Prefab": {
"path": "assets/content/items/mods/handguards/handguard_guerilla.bundle",
"rcid": ""
},
"UsePrefab": {
"path": "",
"rcid": ""
},
"StackObjectsCount": 1,
"NotShownInSlot": false,
"ExaminedByDefault": true,
"ExamineTime": 1,
"IsUndiscardable": false,
"IsUnsaleable": false,
"IsUnbuyable": false,
"IsUngivable": false,
"IsLockedafterEquip": false,
"QuestItem": false,
"LootExperience": 10,
"ExamineExperience": 3,
"HideEntrails": false,
"RepairCost": 0,
"RepairSpeed": 0,
"ExtraSizeLeft": 1,
"ExtraSizeRight": 0,
"ExtraSizeUp": 0,
"ExtraSizeDown": 0,
"ExtraSizeForceAdd": false,
"MergesWithChildren": true,
"CanSellOnRagfair": true,
"CanRequireOnRagfair": false,
"ConflictingItems": [],
"Unlootable": false,
"UnlootableFromSlot": "FirstPrimaryWeapon",
"UnlootableFromSide": [],
"AnimationVariantsNumber": 0,
"DiscardingBlock": false,
"RagFairCommissionModifier": 1,
"IsAlwaysAvailableForInsurance": false,
"DiscardLimit": -1,
"DropSoundType": "None",
"InsuranceDisabled": false,
"QuestStashMaxCount": 0,
"IsSpecialSlotOnly": false,
"IsUnremovable": false,
"Grids": [],
"Slots": [
{
"_name": "mod_mount_001",
"_id": "5c6d5d8b2e221644fc630b3c",
"_parent": "5c6d5d8b2e221644fc630b39",
"_props": {
"filters": [
{
"Shift": 0,
"Filter": [
"5a800961159bd4315e3a1657",
"57fd23e32459772d0805bcf1",
"544909bb4bdc2d6f028b4577",
"5d10b49bd7ad1a1a560708b0",
"5c06595c0db834001a66af6c",
"5cc9c20cd7f00c001336c65d",
"5d2369418abbc306c62e0c80",
"5b07dd285acfc4001754240d",
"56def37dd2720bec348b456a",
"5a7b483fe899ef0016170d15",
"61605d88ffa6e502ac5e7eeb",
"5a5f1ce64f39f90b401987bc",
"560d657b4bdc2da74d8b4572",
"5b3a337e5acfc4704b4a19a0",
"5c5952732e2216398b5abda2",
"57d17e212459775a1179a0f5",
"6267c6396b642f77f56f5c1c",
"6272370ee4013c5d7e31f418",
"6272379924e29f06af4d5ecb",
"626becf9582c3e319310b837"
]
}
]
},
"_required": false,
"_mergeSlotWithChildren": false,
"_proto": "55d30c4c4bdc2db4468b457e"
},
{
"_name": "mod_foregrip",
"_id": "5c6d5d8b2e221644fc630b40",
"_parent": "5c6d5d8b2e221644fc630b39",
"_props": {
"filters": [
{
"Shift": 0,
"Filter": [
"5c7fc87d2e221644f31c0298",
"5cda9bcfd7f00c0c0b53e900",
"59f8a37386f7747af3328f06",
"619386379fb0c665d5490dbe",
"5c87ca002e221600114cb150",
"588226d124597767ad33f787",
"588226dd24597767ad33f789",
"588226e62459776e3e094af7",
"588226ef24597767af46e39c",
"59fc48e086f77463b1118392",
"5fce0cf655375d18a253eff0",
"5cf4fb76d7f00c065703d3ac",
"5b057b4f5acfc4771e1bd3e9",
"5c791e872e2216001219c40a",
"558032614bdc2de7118b4585",
"58c157be86f77403c74b2bb6",
"58c157c886f774032749fb06",
"5f6340d3ca442212f4047eb2",
"591af28e86f77414a27a9e1d",
"5c1cd46f2e22164bef5cfedb",
"5c1bc4812e22164bef5cfde7",
"5c1bc5612e221602b5429350",
"5c1bc5af2e221602b412949b",
"5c1bc5fb2e221602b1779b32",
"5c1bc7432e221602b412949d",
"5c1bc7752e221602b1779b34"
]
}
]
},
"_required": false,
"_mergeSlotWithChildren": false,
"_proto": "55d30c4c4bdc2db4468b457e"
},
{
"_name": "mod_tactical",
"_id": "5c6d5d8b2e221644fc630b3e",
"_parent": "5c6d5d8b2e221644fc630b39",
"_props": {
"filters": [
{
"Shift": 0,
"Filter": [
"57fd23e32459772d0805bcf1",
"544909bb4bdc2d6f028b4577",
"5d10b49bd7ad1a1a560708b0",
"5c06595c0db834001a66af6c",
"5a7b483fe899ef0016170d15",
"61605d88ffa6e502ac5e7eeb",
"5c5952732e2216398b5abda2"
]
}
]
},
"_required": false,
"_mergeSlotWithChildren": false,
"_proto": "55d30c4c4bdc2db4468b457e"
}
],
"CanPutIntoDuringTheRaid": true,
"CantRemoveFromSlotsDuringRaid": [],
"Durability": 100,
"Accuracy": 0,
"Recoil": -1,
"Loudness": 0,
"EffectiveDistance": 0,
"Ergonomics": 8,
"Velocity": 0,
"RaidModdable": false,
"ToolModdable": true,
"BlocksFolding": false,
"BlocksCollapsible": false,
"IsAnimated": false,
"HasShoulderContact": false,
"SightingRange": 0,
"DoubleActionAccuracyPenaltyMult": 1,
"HeatFactor": 0.985,
"CoolFactor": 1.055
},
"_proto": "55d459824bdc2d892f8b4573"
},
"6786e03b67ad44fd9b0fabd2": {
"_id": "6786e03b67ad44fd9b0fabd2",
"_name": "handguard_turaco",
"_parent": "55818a104bdc2db9688b4569",
"_type": "Item",
"_props": {
"Name": "",
"ShortName": "",
"Description": "",
"Weight": 0.209,
"BackgroundColor": "blue",
"Width": 2,
"Height": 1,
"StackMaxSize": 1,
"ItemSound": "mod",
"Prefab": {
"path": "assets/content/items/mods/handguards/handguard_turaco.bundle",
"rcid": ""
},
"UsePrefab": {
"path": "",
"rcid": ""
},
"StackObjectsCount": 1,
"NotShownInSlot": false,
"ExaminedByDefault": true,
"ExamineTime": 1,
"IsUndiscardable": false,
"IsUnsaleable": false,
"IsUnbuyable": false,
"IsUngivable": false,
"IsLockedafterEquip": false,
"QuestItem": false,
"LootExperience": 10,
"ExamineExperience": 3,
"HideEntrails": false,
"RepairCost": 0,
"RepairSpeed": 0,
"ExtraSizeLeft": 1,
"ExtraSizeRight": 0,
"ExtraSizeUp": 0,
"ExtraSizeDown": 0,
"ExtraSizeForceAdd": false,
"MergesWithChildren": true,
"CanSellOnRagfair": true,
"CanRequireOnRagfair": false,
"ConflictingItems": [],
"Unlootable": false,
"UnlootableFromSlot": "FirstPrimaryWeapon",
"UnlootableFromSide": [],
"AnimationVariantsNumber": 0,
"DiscardingBlock": false,
"RagFairCommissionModifier": 1,
"IsAlwaysAvailableForInsurance": false,
"DiscardLimit": -1,
"DropSoundType": "None",
"InsuranceDisabled": false,
"QuestStashMaxCount": 0,
"IsSpecialSlotOnly": false,
"IsUnremovable": false,
"Grids": [],
"Slots": [
{
"_name": "mod_mount_000",
"_id": "5c6d5d8b2e221644fc630b3b",
"_parent": "5c6d5d8b2e221644fc630b39",
"_props": {
"filters": [
{
"Shift": 0,
"Filter": [
"5a800961159bd4315e3a1657",
"57fd23e32459772d0805bcf1",
"544909bb4bdc2d6f028b4577",
"5d10b49bd7ad1a1a560708b0",
"5c06595c0db834001a66af6c",
"5cc9c20cd7f00c001336c65d",
"5d2369418abbc306c62e0c80",
"5b07dd285acfc4001754240d",
"56def37dd2720bec348b456a",
"5a7b483fe899ef0016170d15",
"61605d88ffa6e502ac5e7eeb",
"5a5f1ce64f39f90b401987bc",
"560d657b4bdc2da74d8b4572",
"5b3a337e5acfc4704b4a19a0",
"5c5952732e2216398b5abda2",
"57d17e212459775a1179a0f5",
"6267c6396b642f77f56f5c1c",
"6272370ee4013c5d7e31f418",
"6272379924e29f06af4d5ecb",
"626becf9582c3e319310b837"
]
}
]
},
"_required": false,
"_mergeSlotWithChildren": false,
"_proto": "55d30c4c4bdc2db4468b457e"
},
{
"_name": "mod_mount_001",
"_id": "5c6d5d8b2e221644fc630b3c",
"_parent": "5c6d5d8b2e221644fc630b39",
"_props": {
"filters": [
{
"Shift": 0,
"Filter": [
"5a800961159bd4315e3a1657",
"57fd23e32459772d0805bcf1",
"544909bb4bdc2d6f028b4577",
"5d10b49bd7ad1a1a560708b0",
"5c06595c0db834001a66af6c",
"5cc9c20cd7f00c001336c65d",
"5d2369418abbc306c62e0c80",
"5b07dd285acfc4001754240d",
"56def37dd2720bec348b456a",
"5a7b483fe899ef0016170d15",
"61605d88ffa6e502ac5e7eeb",
"5a5f1ce64f39f90b401987bc",
"560d657b4bdc2da74d8b4572",
"5b3a337e5acfc4704b4a19a0",
"5c5952732e2216398b5abda2",
"57d17e212459775a1179a0f5",
"6267c6396b642f77f56f5c1c",
"6272370ee4013c5d7e31f418",
"6272379924e29f06af4d5ecb",
"626becf9582c3e319310b837"
]
}
]
},
"_required": false,
"_mergeSlotWithChildren": false,
"_proto": "55d30c4c4bdc2db4468b457e"
},
{
"_name": "mod_tactical",
"_id": "5c6d5d8b2e221644fc630b3e",
"_parent": "5c6d5d8b2e221644fc630b39",
"_props": {
"filters": [
{
"Shift": 0,
"Filter": [
"57fd23e32459772d0805bcf1",
"544909bb4bdc2d6f028b4577",
"5d10b49bd7ad1a1a560708b0",
"5c06595c0db834001a66af6c",
"5a7b483fe899ef0016170d15",
"61605d88ffa6e502ac5e7eeb",
"5c5952732e2216398b5abda2"
]
}
]
},
"_required": false,
"_mergeSlotWithChildren": false,
"_proto": "55d30c4c4bdc2db4468b457e"
},
{
"_name": "mod_foregrip",
"_id": "5c6d5d8b2e221644fc630b40",
"_parent": "5c6d5d8b2e221644fc630b39",
"_props": {
"filters": [
{
"Shift": 0,
"Filter": [
"5c7fc87d2e221644f31c0298",
"5cda9bcfd7f00c0c0b53e900",
"59f8a37386f7747af3328f06",
"619386379fb0c665d5490dbe",
"5c87ca002e221600114cb150",
"588226d124597767ad33f787",
"588226dd24597767ad33f789",
"588226e62459776e3e094af7",
"588226ef24597767af46e39c",
"59fc48e086f77463b1118392",
"5fce0cf655375d18a253eff0",
"5cf4fb76d7f00c065703d3ac",
"5b057b4f5acfc4771e1bd3e9",
"5c791e872e2216001219c40a",
"558032614bdc2de7118b4585",
"58c157be86f77403c74b2bb6",
"58c157c886f774032749fb06",
"5f6340d3ca442212f4047eb2",
"591af28e86f77414a27a9e1d",
"5c1cd46f2e22164bef5cfedb",
"5c1bc4812e22164bef5cfde7",
"5c1bc5612e221602b5429350",
"5c1bc5af2e221602b412949b",
"5c1bc5fb2e221602b1779b32",
"5c1bc7432e221602b412949d",
"5c1bc7752e221602b1779b34",
"5a7dbfc1159bd40016548fde"
]
}
]
},
"_required": false,
"_mergeSlotWithChildren": false,
"_proto": "55d30c4c4bdc2db4468b457e"
}
],
"CanPutIntoDuringTheRaid": true,
"CantRemoveFromSlotsDuringRaid": [],
"Durability": 100,
"Accuracy": 0,
"Recoil": -1,
"Loudness": 0,
"EffectiveDistance": 0,
"Ergonomics": 8,
"Velocity": 0,
"RaidModdable": false,
"ToolModdable": true,
"BlocksFolding": false,
"BlocksCollapsible": false,
"IsAnimated": false,
"HasShoulderContact": false,
"SightingRange": 0,
"DoubleActionAccuracyPenaltyMult": 1,
"HeatFactor": 0.985,
"CoolFactor": 1.055
},
"_proto": "55d459824bdc2d892f8b4573"
},
"6786e03b67ad44fd9b0fabd3": {
"_id": "6786e03b67ad44fd9b0fabd3",
"_name": "mag_aug_60",
"_parent": "5448bc234bdc2d3c308b4569",
"_type": "Item",
"_props": {
"Name": "",
"ShortName": "",
"Description": "",
"Weight": 0.58,
"BackgroundColor": "yellow",
"Width": 1,
"Height": 2,
"StackMaxSize": 1,
"ItemSound": "mag_plastic",
"Prefab": {
"path": "assets/content/items/mods/magazines/mag_aug_60.bundle",
"rcid": ""
},
"UsePrefab": {
"path": "",
"rcid": ""
},
"StackObjectsCount": 1,
"NotShownInSlot": false,
"ExaminedByDefault": true,
"ExamineTime": 1,
"IsUndiscardable": false,
"IsUnsaleable": false,
"IsUnbuyable": false,
"IsUngivable": false,
"IsLockedafterEquip": false,
"QuestItem": false,
"LootExperience": 10,
"ExamineExperience": 2,
"HideEntrails": false,
"RepairCost": 0,
"RepairSpeed": 0,
"ExtraSizeLeft": 0,
"ExtraSizeRight": 0,
"ExtraSizeUp": 0,
"ExtraSizeDown": 1,
"ExtraSizeForceAdd": false,
"MergesWithChildren": true,
"CanSellOnRagfair": false,
"CanRequireOnRagfair": false,
"ConflictingItems": [],
"Unlootable": false,
"UnlootableFromSlot": "FirstPrimaryWeapon",
"UnlootableFromSide": [],
"AnimationVariantsNumber": 0,
"DiscardingBlock": false,
"RagFairCommissionModifier": 1,
"IsAlwaysAvailableForInsurance": false,
"DiscardLimit": -1,
"DropSoundType": "None",
"InsuranceDisabled": false,
"QuestStashMaxCount": 0,
"IsSpecialSlotOnly": false,
"IsUnremovable": false,
"Grids": [],
"Slots": [],
"CanPutIntoDuringTheRaid": true,
"CantRemoveFromSlotsDuringRaid": [],
"Durability": 100,
"Accuracy": 0,
"Recoil": 0,
"Loudness": 0,
"EffectiveDistance": 0,
"Ergonomics": -16,
"Velocity": 0,
"RaidModdable": true,
"ToolModdable": false,
"BlocksFolding": false,
"BlocksCollapsible": false,
"IsAnimated": false,
"HasShoulderContact": false,
"SightingRange": 0,
"DoubleActionAccuracyPenaltyMult": 1,
"magAnimationIndex": 5,
"Cartridges": [
{
"_name": "cartridges",
"_id": "59c1383d86f774290a37e0cb",
"_parent": "59c1383d86f774290a37e0ca",
"_max_count": 60,
"_props": {
"filters": [
{
"Filter": [
"59e6920f86f77411d82aa167",
"59e6927d86f77411da468256",
"54527a984bdc2d4e668b4567",
"54527ac44bdc2d36668b4567",
"59e68f6f86f7746c9f75e846",
"59e6906286f7746c9f75e847",
"59e690b686f7746c9f75e848",
"59e6918f86f7746c9f75e849",
"60194943740c5d77f6705eea",
"601949593ae8f707c4608daa",
"5c0d5ae286f7741e46554302",
"5fbe3ffdf8b6a877a729ea82",
"5fd20ff893a8961fc660a954",
"619636be6db0f2477964e710",
"6196364158ef8c428c287d9f",
"6196365d58ef8c428c287da1"
]
}
]
},
"_proto": "5748538b2459770af276a261"
}
],
"CanFast": true,
"CanHit": false,
"CanAdmin": false,
"LoadUnloadModifier": 60,
"CheckTimeModifier": 20,
"CheckOverride": 0,
"ReloadMagType": "ExternalMagazine",
"VisibleAmmoRangesString": "1-3",
"MalfunctionChance": 0.3,
"TagColor": 0,
"TagName": ""
},
"_proto": "55802d5f4bdc2dac148b458e"
}
}
@@ -0,0 +1,87 @@
{
"traderId":"5935c25fb3acc3127c3d8cd9",
"assorts":{
"items":[
{
"_id":"6786e03b67ad44fd9b0fabd0",
"_tpl":"6786e03b67ad44fd9b0fabd0",
"parentId":"hideout",
"slotId":"hideout",
"upd":{
"UnlimitedCount":true,
"StackObjectsCount":999999
}
},
{
"_id":"6786e03b67ad44fd9b0fabd1",
"_tpl":"6786e03b67ad44fd9b0fabd1",
"parentId":"hideout",
"slotId":"hideout",
"upd":{
"UnlimitedCount":true,
"StackObjectsCount":999999
}
},
{
"_id":"6786e03b67ad44fd9b0fabd2",
"_tpl":"6786e03b67ad44fd9b0fabd2",
"parentId":"hideout",
"slotId":"hideout",
"upd":{
"UnlimitedCount":true,
"StackObjectsCount":999999
}
},
{
"_id":"6786e03b67ad44fd9b0fabd3",
"_tpl":"6786e03b67ad44fd9b0fabd3",
"parentId":"hideout",
"slotId":"hideout",
"upd":{
"UnlimitedCount":true,
"StackObjectsCount":999999
}
}
],
"barter_scheme":{
"6786e03b67ad44fd9b0fabd0":[
[
{
"count":21000,
"_tpl":"5449016a4bdc2d6f028b456f"
}
]
],
"6786e03b67ad44fd9b0fabd1":[
[
{
"count":21000,
"_tpl":"5449016a4bdc2d6f028b456f"
}
]
],
"6786e03b67ad44fd9b0fabd2":[
[
{
"count":21000,
"_tpl":"5449016a4bdc2d6f028b456f"
}
]
],
"6786e03b67ad44fd9b0fabd3":[
[
{
"count":21000,
"_tpl":"5449016a4bdc2d6f028b456f"
}
]
]
},
"loyal_level_items":{
"6786e03b67ad44fd9b0fabd0":3,
"6786e03b67ad44fd9b0fabd1":3,
"6786e03b67ad44fd9b0fabd2":3,
"6786e03b67ad44fd9b0fabd3":3
}
}
}
@@ -0,0 +1,103 @@
"use strict";
let mydb;
class Mod {
postDBLoad(container) {
// Credit Banner
console.log(`
=======================================
| AUG Attachment Pack |
| Created by: KoKaZ93 |
| 3.10 Port made by: GMAK3R |
=======================================
`);
const modLoader = container.resolve("PreSptModLoader");
const importerUtil = container.resolve("ImporterUtil");
const db = container.resolve("DatabaseServer").getTables();
const locales = db.locales.global;
const items = db.templates.items;
const handbook = db.templates.handbook.Items;
const peacekeeper = db.traders["5935c25fb3acc3127c3d8cd9"];
mydb = importerUtil.loadRecursive(`${modLoader.getModPath("AUG_AttachmentPack")}database/`);
for (const item in mydb.templates.items) {
items[item] = mydb.templates.items[item];
}
for (const item of mydb.templates.handbook.Items) {
handbook.push(item);
}
for (const item of mydb.traders.assort.assorts.items) {
peacekeeper.assort.items.push(item);
}
for (const bc in mydb.traders.assort.assorts.barter_scheme) {
peacekeeper.assort.barter_scheme[bc] = mydb.traders.assort.assorts.barter_scheme[bc];
}
for (const level in mydb.traders.assort.assorts.loyal_level_items) {
peacekeeper.assort.loyal_level_items[level] = mydb.traders.assort.assorts.loyal_level_items[level];
}
for (const localeID in locales) {
if (localeID == "en") {
for (const [itemId, template] of Object.entries(mydb.locales.en.templates)) {
for (const [key, value] of Object.entries(template)) {
locales[localeID][`${itemId} ${key}`] = value;
}
}
}
}
Mod.addHandguardToFilters(db);
Mod.addMagazineToFilters(db);
}
static addHandguardToFilters(db) {
const isItemSlotsExist = (item) =>
item._props && item._props.Slots && item._props.Slots.length > 0;
const attachmentToAdd = ["6786e03b67ad44fd9b0fabd0", "6786e03b67ad44fd9b0fabd1", "6786e03b67ad44fd9b0fabd2"];
const attachmentItemId = "634e61b0767cb15c4601a877";
for (const item of Object.values(db.templates.items)) {
if (isItemSlotsExist(item)) {
for (const slot of item._props.Slots) {
if (slot._props.filters.some((filter) => filter.Filter.includes(attachmentItemId))) {
slot._props.filters.forEach((filter) => {
if (filter.Filter.includes(attachmentItemId)) {
filter.Filter.push(...attachmentToAdd);
}
});
}
}
}
}
}
static addMagazineToFilters(db) {
const isItemSlotsExist = (item) =>
item._props && item._props.Slots && item._props.Slots.length > 0;
const attachmentToAdd = "6786e03b67ad44fd9b0fabd3";
const attachmentItemId = "630e1adbbd357927e4007c09";
for (const item of Object.values(db.templates.items)) {
if (isItemSlotsExist(item)) {
for (const slot of item._props.Slots) {
if (slot._props.filters.some((filter) => filter.Filter.includes(attachmentItemId))) {
slot._props.filters.forEach((filter) => {
if (filter.Filter.includes(attachmentItemId)) {
filter.Filter.push(attachmentToAdd);
}
});
}
}
}
}
}
}
module.exports = { mod: new Mod() };
@@ -0,0 +1,9 @@
{
"name": "AUG Attachment Pack",
"author": "KoKaZ93",
"license": "CC BY-NC-SA 3.0",
"version": "1.0.4",
"sptVersion": "3.10.x",
"main": "mod.js",
"isBundleMod": true
}
+28
View File
@@ -0,0 +1,28 @@
[General]
gameName=spt
modid=0
version=d2025.1.13.0
newestVersion=
category="1,"
nexusFileStatus=1
installationFile=Additional Clothing BEAR 310.zip
repository=Nexus
ignoredVersion=
comments=
notes=
nexusDescription=
url=
hasCustomURL=false
lastNexusQuery=
lastNexusUpdate=
nexusLastModified=2025-01-13T13:28: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
@@ -0,0 +1,24 @@
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.
In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to <https://unlicense.org>
@@ -0,0 +1,423 @@
{
"manifest": [
{
"key": "Tops/Gorka4MC_Top.bundle",
"dependencyKeys": [
"cubemaps",
"shaders",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/Gorka4MC_Hands.bundle",
"dependencyKeys": [
"cubemaps",
"assets/content/hands/bear/bear_hands_watch_textures.bundle",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle",
"shaders"
]
},
{
"key": "Bottoms/EMR_voin.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Tops/EMR_SPN.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/EMR_SPN_Hands.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/hands/bear/bear_hands_watch_texture.bundles",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Tops/EMRAutumnSumrak.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/Sumrak_EMRAutumn_Hands.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/hands/usec/materials/watch_usec_textures",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Tops/EMRSumrak.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/Sumrak_EMR_Hands.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/hands/usec/materials/watch_usec_textures",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Bottoms/BEARTacticalEMR.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Bottoms/TIGR_SURPAT.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Bottoms/TIGR_EMR.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Tops/Top_SS_SPN.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/Hands_SS_SPN.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/hands/bear/bear_hands_watch_texture.bundles",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Tops/Top_Adaptive_SS.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/Hands_AdaptiveSS.bundle",
"dependencyKeys": [
"cubemaps",
"shaders",
"assets/content/hands/usec/materials/watch_usec_textures",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Bottoms/SRVV_SS.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/Hands_SURPAT_lynx.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/hands/usec/materials/watch_usec_textures",
"assets/content/hands/bear/bear_hands_watch_texture.bundles",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Tops/Top_SURPAT_lynx.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/Hands_MC_lynx.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/hands/usec/materials/watch_usec_textures",
"assets/content/hands/bear/bear_hands_watch_texture.bundles",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Tops/Top_MC_lynx.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Bottoms/MC_voin.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Bottoms/TIGR_MC.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/Hands_EMR_lynx.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/hands/usec/materials/watch_usec_textures",
"assets/content/hands/bear/bear_hands_watch_texture.bundles",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Tops/EMR_lynx.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Tops/Top_MC_SPN.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/Hands_MC_SPN.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/hands/bear/bear_hands_watch_texture.bundles",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Bottoms/SRVV_MC.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Bottoms/ReconMC.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Tops/Top_SURPAT_Polevoi.bundle",
"dependencyKeys": [
"cubemaps",
"shaders",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/Hands_SURPAT_Polevoi.bundle",
"dependencyKeys": [
"cubemaps",
"assets/content/hands/bear/bear_hands_watch_texture.bundles",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle",
"shaders"
]
},
{
"key": "Tops/Top_Gorka5EMRAutumn.bundle",
"dependencyKeys": [
"cubemaps",
"shaders",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/Hands_Gorka5EMRAutumn.bundle",
"dependencyKeys": [
"cubemaps",
"assets/content/hands/bear/bear_hands_watch_texture.bundles",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle",
"shaders"
]
},
{
"key": "Bottoms/ReconSURPAT.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Bottoms/BEARTacticalSS.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Bottoms/URON_SURPAT.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Bottoms/URON_SS.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Tops/Top_SummerFieldEMR.bundle",
"dependencyKeys": [
"cubemaps",
"shaders",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/Hands_SummerFieldEMR.bundle",
"dependencyKeys": [
"cubemaps",
"assets/content/hands/bear/bear_hands_watch_texture.bundles",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle",
"shaders"
]
},
{
"key": "Tops/Top_TigrEMR.bundle",
"dependencyKeys": [
"shaders",
"cubemaps"
]
},
{
"key": "Hands/Hands_TigrEMR.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/hands/bear/bear_hands_watch_texture.bundles",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Tops/Top_GhostEMR.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/Hands_GhostEMR.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/hands/bear/bear_hands_watch_texture.bundles",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Tops/Top_InfilEMR.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/Hands_InfilEMR.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/hands/usec/materials/watch_usec_textures",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Bottoms/Bottom_InfilEMR.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Bottoms/Bottom_GhostEMR.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Bottoms/Bottom_SummerFieldEMR.bundle",
"dependencyKeys": [
"cubemaps",
"shaders",
"assets/content/characters/character/skeleton.bundle"
]
}
]
}
@@ -0,0 +1,546 @@
[
{
"type": "top",
"suiteId": "6771d61a8d0bc58bd4ccb811",
"outfitId": "6771d61a8d0bc58bd4ccb812",
"topId": "6771d61a8d0bc58bd4ccb813",
"handsId": "6771d61a8d0bc58bd4ccb814",
"locales": {
"en": "Gorka 4 (Multicam)"
},
"topBundlePath": "Tops/Gorka4MC_Top.bundle",
"handsBundlePath": "Hands/Gorka4MC_Hands.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "top",
"suiteId": "66e4ad6f53dd23f43f224ea7",
"outfitId": "66e4ad6f53dd23f43f224ea8",
"topId": "66e4ad6f53dd23f43f224ea9",
"handsId": "66e4ad6f53dd23f43f224ea6",
"locales": {
"en": "SSO Lynx Fleece (EMR)"
},
"topBundlePath": "Tops/EMR_lynx.bundle",
"handsBundlePath": "Hands/Hands_EMR_lynx.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "top",
"suiteId": "66e4d25bbf73ebfd35c3e771",
"outfitId": "66e4d25bbf73ebfd35c3e772",
"topId": "66e4d25bbf73ebfd35c3e773",
"handsId": "66e4d25bbf73ebfd35c3e774",
"locales": {
"en": "SSO Lynx Fleece (Multicam)"
},
"topBundlePath": "Tops/Top_MC_lynx.bundle",
"handsBundlePath": "Hands/Hands_MC_lynx.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "top",
"suiteId": "66e4d342edfad85a79666024",
"outfitId": "66e4d342edfad85a79666025",
"topId": "66e4d342edfad85a79666026",
"handsId": "66e4d342edfad85a79666027",
"locales": {
"en": "SSO Lynx Fleece (SURPAT)"
},
"topBundlePath": "Tops/Top_SURPAT_lynx.bundle",
"handsBundlePath": "Hands/Hands_SURPAT_lynx.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "top",
"suiteId": "66e4af625799999e89eb2df0",
"outfitId": "66e4af625799999e89eb2df1",
"topId": "66e4af625799999e89eb2df2",
"handsId": "66e4af625799999e89eb2df3",
"locales": {
"en": "SPN (EMR)"
},
"topBundlePath": "Tops/EMR_SPN.bundle",
"handsBundlePath": "Hands/EMR_SPN_Hands.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "top",
"suiteId": "66e4d3ed52e082a3c17d1fc7",
"outfitId": "66e4d3ed52e082a3c17d1fc6",
"topId": "66e4d3ed52e082a3c17d1fc5",
"handsId": "66e4d3ed52e082a3c17d1fc4",
"locales": {
"en": "SPN (Multicam)"
},
"topBundlePath": "Tops/Top_MC_SPN.bundle",
"handsBundlePath": "Hands/Hands_MC_SPN.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "top",
"suiteId": "66e4d4ddbf48a499e2920ff2",
"outfitId": "66e4d4ddbf48a499e2920ff3",
"topId": "66e4d4ddbf48a499e2920ff4",
"handsId": "66e4d4ddbf48a499e2920ff5",
"locales": {
"en": "SPN (SURPAT Savanna)"
},
"topBundlePath": "Tops/Top_SS_SPN.bundle",
"handsBundlePath": "Hands/Hands_SS_SPN.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "top",
"suiteId": "66e4b26563c45b2ace969ed7",
"outfitId": "66e4b26563c45b2ace969ed6",
"topId": "66e4b26563c45b2ace969ed5",
"handsId": "66e4b26563c45b2ace969ed4",
"locales": {
"en": "Sumrak (EMR Autumn)"
},
"topBundlePath": "Tops/EMRAutumnSumrak.bundle",
"handsBundlePath": "Hands/Sumrak_EMRAutumn_Hands.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "top",
"suiteId": "66e4b44a15177064d80f9889",
"outfitId": "66e4b44a15177064d80f9888",
"topId": "66e4b44a15177064d80f9887",
"handsId": "66e4b44a15177064d80f9886",
"locales": {
"en": "Sumrak (EMR)"
},
"topBundlePath": "Tops/EMRSumrak.bundle",
"handsBundlePath": "Hands/Sumrak_EMR_Hands.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "top",
"suiteId": "66e4c27dae44eb8001be2420",
"outfitId": "66e4c27dae44eb8001be2421",
"topId": "66e4c27dae44eb8001be2422",
"handsId": "66e4c27dae44eb8001be2423",
"locales": {
"en": "BEAR BDU Top (SURPAT Savanna)"
},
"topBundlePath": "Tops/Top_Adaptive_SS.bundle",
"handsBundlePath": "Hands/Hands_AdaptiveSS.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "top",
"suiteId": "66e4c3c614e2d053ce6f4749",
"outfitId": "66e4c3c614e2d053ce6f4748",
"topId": "66e4c3c614e2d053ce6f4747",
"handsId": "66e4c3c614e2d053ce6f4746",
"locales": {
"en": "Ghost Marksman (EMR)"
},
"topBundlePath": "Tops/Top_GhostEMR.bundle",
"handsBundlePath": "Hands/Hands_GhostEMR.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "top",
"suiteId": "6771de297e873d83edcaa75e",
"outfitId": "6771de31b311b632322d664e",
"topId": "6771de39123660ae4a1dee1e",
"handsId": "6771de1ef569f7df6f281670",
"locales": {
"en": "Gorka 5 (EMR Autumn)"
},
"topBundlePath": "Tops/Top_Gorka5EMRAutumn.bundle",
"handsBundlePath": "Hands/Hands_Gorka5EMRAutumn.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "top",
"suiteId": "66e4c82bd9d2cc4f68db9048",
"outfitId": "66e4c82bd9d2cc4f68db9047",
"topId": "66e4c82bd9d2cc4f68db9046",
"handsId": "66e4c82bd9d2cc4f68db9045",
"locales": {
"en": "Gorka 5 (EMR)"
},
"topBundlePath": "Tops/Top_SummerFieldEMR.bundle",
"handsBundlePath": "Hands/Hands_SummerFieldEMR.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "top",
"suiteId": "66e4c92b1f9e848432250581",
"outfitId": "66e4c92b1f9e848432250582",
"topId": "66e4c92b1f9e848432250583",
"handsId": "66e4c92b1f9e848432250584",
"locales": {
"en": "Gorka 5 (SURPAT)"
},
"topBundlePath": "Tops/Top_SURPAT_Polevoi.bundle",
"handsBundlePath": "Hands/Hands_SURPAT_Polevoi.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "top",
"suiteId": "66e4ca3fd76a2019ea0a1365",
"outfitId": "66e4ca3fd76a2019ea0a1366",
"topId": "66e4ca3fd76a2019ea0a1367",
"handsId": "66e4ca3fd76a2019ea0a1368",
"locales": {
"en": "Infil Top (EMR)"
},
"topBundlePath": "Tops/Top_InfilEMR.bundle",
"handsBundlePath": "Hands/Hands_InfilEMR.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "top",
"suiteId": "66e4d029e00dc71709d52681",
"outfitId": "66e4d029e00dc71709d52682",
"topId": "66e4d029e00dc71709d52683",
"handsId": "66e4d029e00dc71709d52684",
"locales": {
"en": "TIGR (EMR)"
},
"topBundlePath": "Tops/Top_TigrEMR.bundle",
"handsBundlePath": "Hands/Hands_TigrEMR.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "bottom",
"suiteId": "66e4d7c5d1cbf7118d7c7a97",
"outfitId": "66e4d7c5d1cbf7118d7c7a96",
"bottomId": "66e4d7c5d1cbf7118d7c7a95",
"locales": {
"en": "BEAR Tactical (EMR)"
},
"bottomBundlePath": "Bottoms/BEARTacticalEMR.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "bottom",
"suiteId": "66e4d8a2b3e5a7996cbb2963",
"outfitId": "66e4d8a2b3e5a7996cbb2964",
"bottomId": "66e4d8a2b3e5a7996cbb2965",
"locales": {
"en": "BEAR Tactical (SURPAT Savanna)"
},
"bottomBundlePath": "Bottoms/BEARTacticalSS.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "bottom",
"suiteId": "66e4d9c9a6b75b54ba1cbb73",
"outfitId": "66e4d9c9a6b75b54ba1cbb74",
"bottomId": "66e4d9c9a6b75b54ba1cbb75",
"locales": {
"en": "URON (SURPAT Savanna)"
},
"bottomBundlePath": "Bottoms/URON_SS.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "bottom",
"suiteId": "66e4da8b7fdadb407a49d278",
"outfitId": "66e4da8b7fdadb407a49d277",
"bottomId": "66e4da8b7fdadb407a49d276",
"locales": {
"en": "URON (SURPAT)"
},
"bottomBundlePath": "Bottoms/URON_SURPAT.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "bottom",
"suiteId": "66e4db75ebaf79e16fde5a82",
"outfitId": "66e4db75ebaf79e16fde5a83",
"bottomId": "66e4db75ebaf79e16fde5a84",
"locales": {
"en": "TIGR (SURPAT)"
},
"bottomBundlePath": "Bottoms/TIGR_SURPAT.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "bottom",
"suiteId": "66e4e49cd46508acae924468",
"outfitId": "66e4e49cd46508acae924467",
"bottomId": "66e4e49cd46508acae924466",
"locales": {
"en": "TIGR (Multicam)"
},
"bottomBundlePath": "Bottoms/TIGR_MC.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "bottom",
"suiteId": "66e4e359c07b695a60671138",
"outfitId": "66e4e359c07b695a60671137",
"bottomId": "66e4e359c07b695a60671136",
"locales": {
"en": "TIGR (EMR)"
},
"bottomBundlePath": "Bottoms/TIGR_EMR.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "bottom",
"suiteId": "66e4e4010aeefeddc2fadd81",
"outfitId": "66e4e4010aeefeddc2fadd82",
"bottomId": "66e4e4010aeefeddc2fadd83",
"locales": {
"en": "SRVV (Multicam)"
},
"bottomBundlePath": "Bottoms/SRVV_MC.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "bottom",
"suiteId": "66e4e5d3ec824cdad648bda9",
"outfitId": "66e4e5d3ec824cdad648bda8",
"bottomId": "66e4e5d3ec824cdad648bda7",
"locales": {
"en": "SRVV (SURPAT Savanna)"
},
"bottomBundlePath": "Bottoms/SRVV_SS.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "bottom",
"suiteId": "66e4e6aaabd48e2279d36601",
"outfitId": "66e4e6aaabd48e2279d36602",
"bottomId": "66e4e6aaabd48e2279d36603",
"locales": {
"en": "BEAR Recon (Multicam)"
},
"bottomBundlePath": "Bottoms/ReconMC.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "bottom",
"suiteId": "66e4e7c370548c30ed3f6714",
"outfitId": "66e4e7c370548c30ed3f6715",
"bottomId": "66e4e7c370548c30ed3f6716",
"locales": {
"en": "BEAR Recon (SURPAT)"
},
"bottomBundlePath": "Bottoms/ReconSURPAT.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "bottom",
"suiteId": "66e4e8767379e0c40e906988",
"outfitId": "66e4e8767379e0c40e906987",
"bottomId": "66e4e8767379e0c40e906986",
"locales": {
"en": "VOIN (Multicam)"
},
"bottomBundlePath": "Bottoms/MC_voin.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "bottom",
"suiteId": "66e4e8f526bfc8238f707062",
"outfitId": "66e4e8f526bfc8238f707063",
"bottomId": "66e4e8f526bfc8238f707064",
"locales": {
"en": "VOIN (EMR)"
},
"bottomBundlePath": "Bottoms/EMR_voin.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "bottom",
"suiteId": "66e4e9cd5f6409352964a8e9",
"outfitId": "66e4e9cd5f6409352964a8e8",
"bottomId": "66e4e9cd5f6409352964a8e7",
"locales": {
"en": "Gorka 5 Lower (EMR)"
},
"bottomBundlePath": "Bottoms/Bottom_SummerFieldEMR.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "bottom",
"suiteId": "66e4eac38bddd59019002a43",
"outfitId": "66e4eac38bddd59019002a44",
"bottomId": "66e4eac38bddd59019002a45",
"locales": {
"en": "Infil Lower (EMR)"
},
"bottomBundlePath": "Bottoms/Bottom_InfilEMR.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
},
{
"type": "bottom",
"suiteId": "66e4ebb603f6a711eba72f29",
"outfitId": "66e4ebb603f6a711eba72f28",
"bottomId": "66e4ebb603f6a711eba72f27",
"locales": {
"en": "BEAR Gorka SSO (EMR)"
},
"bottomBundlePath": "Bottoms/Bottom_GhostEMR.bundle",
"traderId": "RAGMAN",
"loyaltyLevel": 1,
"profileLevel": 1,
"standing": 0,
"currencyId": "ROUBLES",
"price": 0
}
]
@@ -0,0 +1,31 @@
{
"name": "Additional Clothing BEAR",
"version": "3.0.0",
"sptVersion": "3.10.*",
"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": "Ashley Schaeffer BMW",
"contributors": "",
"license": "UNLICENSE"
}
@@ -0,0 +1,323 @@
"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
@@ -0,0 +1,393 @@
/* 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;
}
}
}
@@ -0,0 +1,94 @@
"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
@@ -0,0 +1 @@
{"version":3,"file":"WTTInstanceManager.js","sourceRoot":"","sources":["WTTInstanceManager.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA6B;AAwB7B,MAAa,kBAAkB;IAE3B,2CAA2C;IACpC,OAAO,CAAS;IAChB,KAAK,CAAU;IACtB,eAAe;IACR,WAAW,GAAW,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,CAAC;IACnE,OAAO,CAAS;IAChB,MAAM,CAAS;IAEtB,YAAY;IACL,SAAS,CAAsB;IAC/B,eAAe,CAAkB;IACjC,YAAY,CAAe;IAC3B,UAAU,CAAa;IACvB,UAAU,CAAa;IACvB,MAAM,CAAU;IAChB,YAAY,CAAyB;IACrC,aAAa,CAA0B;IACvC,iBAAiB,CAAoB;IACrC,gBAAgB,CAAmB;IAC1C,YAAY;IAEZ,4CAA4C;IACrC,QAAQ,CAAkB;IAC1B,UAAU,CAAoB;IAC9B,WAAW,CAAc;IACzB,QAAQ,CAAW;IACnB,aAAa,CAAgB;IAC7B,iBAAiB,CAAoB;IACrC,mBAAmB,CAAsB;IACzC,YAAY,CAAe;IAC3B,mBAAmB,CAAsB;IACzC,kBAAkB,CAAqB;IACvC,GAAG,CAAM;IAChB,YAAY;IAEZ,kDAAkD;IAC3C,UAAU,CAAC,SAA8B,EAAE,GAAW;QAEzD,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,GAAG,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,GAAG,MAAM,CAAC,CAAC;QAEnE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,OAAO,CAAkB,iBAAiB,CAAC,CAAC;QAC7E,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO,CAAc,aAAa,CAAC,CAAC;QACjE,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,OAAO,CAAe,cAAc,CAAC,CAAC;QACpE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,OAAO,CAAa,YAAY,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,OAAO,CAAa,YAAY,CAAC,CAAC;QAC9D,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,OAAO,CAAoB,mBAAmB,CAAC,CAAC;QACnF,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,OAAO,CAAoB,mBAAmB,CAAC,CAAC;QACnF,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAmB,kBAAkB,CAAC,CAAC;QAChF,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,OAAO,CAAU,eAAe,CAAC,CAAC;QAC1D,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,OAAO,CAAyB,wBAAwB,CAAC,CAAC;QACxF,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,OAAO,CAA0B,yBAAyB,CAAC,CAAC;QAC3F,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC,OAAO,CAAsB,qBAAqB,CAAC,CAAC;QACzF,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,OAAO,CAAM,KAAK,CAAC,CAAC;IAC7C,CAAC;IAEM,UAAU,CAAC,SAA8B;QAE5C,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAiB,gBAAgB,CAAC,CAAC,SAAS,EAAE,CAAC;QAChF,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,OAAO,CAAoB,mBAAmB,CAAC,CAAC;QAC5E,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAW,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,OAAO,CAAgB,eAAe,CAAC,CAAC;QACvE,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC,OAAO,CAAsB,qBAAqB,CAAC,CAAC;QACzF,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,OAAO,CAAe,cAAc,CAAC,CAAC;QACpE,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,OAAO,CAAqB,oBAAoB,CAAC,CAAC;IAC1F,CAAC;IAEM,QAAQ,CAAC,OAAe,EAAE,KAAa;QAC1C,MAAM,UAAU,GAAG;YACf,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,UAAU;YACnB,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE,UAAU;YACrB,WAAW,EAAE,UAAU;YACvB,YAAY,EAAE,UAAU;YACxB,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,UAAU;YACzB,UAAU,EAAE,UAAU;YACtB,WAAW,EAAE,UAAU;SAC1B,CAAC;QAEF,MAAM,SAAS,GAAG,SAAS,CAAC;QAC5B,MAAM,SAAS,GAAG,UAAU,CAAC,KAAgC,CAAC,IAAI,UAAU,CAAC,CAAC,wCAAwC;QACtH,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,+BAA+B;IACtF,CAAC;CACJ;AA9FD,gDA8FC"}
@@ -0,0 +1,119 @@
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
}
}
@@ -0,0 +1,35 @@
"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 = "Additional Clothing BEAR";
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}] 3.10.x Release build`, "green");
this.instanceManager.colorLog(`[${this.modName}] Developers: Ashley Schaeffer BMW`, "green");
this.instanceManager.colorLog(`[${this.modName}] Additional Clothing BEAR is Loaded`, "green");
this.instanceManager.colorLog;
}
}
module.exports = { mod: new Kopat1ch() };
//# sourceMappingURL=mod.js.map
@@ -0,0 +1 @@
{"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,0BAA0B,CAAC;IACrC,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,wBAAwB,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAC5B,IAAI,IAAI,CAAC,OAAO,oCAAoC,EAAE,OAAO,CAAC,CAAC;QAChE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAC5B,IAAI,IAAI,CAAC,OAAO,sCAAsC,EAAE,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAA;IACjC,CAAC;CAEJ;AAED,MAAM,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,IAAI,QAAQ,EAAE,EAAE,CAAC"}
@@ -0,0 +1,63 @@
/* 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 = "Additional Clothing BEAR";
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}] 3.10.x Release build`, "green");
this.instanceManager.colorLog
(`[${this.modName}] Developers: Ashley Schaeffer BMW`, "green");
this.instanceManager.colorLog
(`[${this.modName}] Additional Clothing BEAR is Loaded`, "green");
this.instanceManager.colorLog
}
}
module.exports = { mod: new Kopat1ch() };
@@ -0,0 +1,137 @@
"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
@@ -0,0 +1 @@
{"version":3,"file":"configConsts.js","sourceRoot":"","sources":["configConsts.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AA6DxD,CAAC;AAmDF,IAAY,SAYX;AAZD,WAAY,SAAS;IAEjB,kDAAqC,CAAA;IACrC,+CAAkC,CAAA;IAClC,qDAAwC,CAAA;IACxC,mDAAsC,CAAA;IACtC,gDAAmC,CAAA;IACnC,gDAAmC,CAAA;IACnC,gDAAmC,CAAA;IACnC,+CAAkC,CAAA;IAClC,+CAAkC,CAAA;IAClC,gDAAmC,CAAA;AACvC,CAAC,EAZW,SAAS,yBAAT,SAAS,QAYpB;AAED,IAAY,WAKX;AALD,WAAY,WAAW;IAEnB,mDAAoC,CAAA;IACpC,iDAAkC,CAAA;IAClC,mDAAoC,CAAA;AACxC,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAED,IAAY,WAgHX;AAhHD,WAAY,WAAW;IAGnB,iBAAiB;IACjB,4CAA8B,CAAA;IAC9B,sDAAuC,CAAA;IAEvC,QAAQ;IACR,kCAAmB,CAAA;IACnB,4CAA6B,CAAA;IAC7B,oCAAqB,CAAA;IACrB,sDAAuC,CAAA;IACvC,8CAA+B,CAAA;IAE/B,QAAQ;IACR,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,kCAAmB,CAAA;IACnB,kCAAmB,CAAA;IACnB,6BAAc,CAAA;IAEd,SAAS;IACT,gCAAiB,CAAA;IAEjB,WAAW;IACX,8CAA+B,CAAA;IAC/B,gDAAiC,CAAA;IACjC,wCAAyB,CAAA;IACzB,wDAAyC,CAAA;IACzC,wDAAyC,CAAA;IACzC,gDAAiC,CAAA;IAEjC,MAAM;IACN,iCAAkB,CAAA;IAElB,UAAU;IACV,4CAA6B,CAAA;IAC7B,4CAA6B,CAAA;IAE7B,UAAU;IACV,kDAAmC,CAAA;IACnC,8CAA+B,CAAA;IAC/B,oDAAqC,CAAA;IACrC,0CAA2B,CAAA;IAC3B,kDAAmC,CAAA;IAGnC,QAAQ;IACR,gCAAiB,CAAA;IAEjB,qBAAqB;IAEjB,QAAQ;IACR,iCAAkB,CAAA;IAClB,6CAA8B,CAAA;IAC9B,4CAA6B,CAAA;IAC7B,wDAAyC,CAAA;IACzC,wDAAyC,CAAA;IAEzC,QAAQ;IACR,kCAAmB,CAAA;IAEnB,WAAW;IACX,wCAAyB,CAAA;IACzB,kEAAmD,CAAA;IACnD,oEAAqD,CAAA;IAErD,WAAW;IACX,wCAAyB,CAAA;IAEzB,UAAU;IACV,oCAAqB,CAAA;IACrB,gDAAiC,CAAA;IAEjC,SAAS;IACT,oCAAqB,CAAA;IACrB,8DAA+C,CAAA;IAC/C,0DAA2C,CAAA;IAC3C,gEAAiD,CAAA;IACjD,2DAA4C,CAAA;IAE5C,QAAQ;IACR,oCAAqB,CAAA;IACrB,kDAAmC,CAAA;IACnC,kDAAmC,CAAA;IAEnC,WAAW;IACX,uCAAwB,CAAA;IACxB,mDAAoC,CAAA;IAEpC,UAAU;IACV,sCAAuB,CAAA;IACvB,kDAAmC,CAAA;IAEnC,UAAU;IACV,sCAAuB,CAAA;IACvB,kDAAmC,CAAA;IAEnC,WAAW;IACX,wCAAyB,CAAA;IACzB,oDAAqC,CAAA;IACrC,8DAA+C,CAAA;IAC/C,4DAA6C,CAAA;IAEjD,UAAU;IAEN,aAAa;IACb,wCAAyB,CAAA;IAEzB,QAAQ;IACR,8BAAe,CAAA;AAEvB,CAAC,EAhHW,WAAW,2BAAX,WAAW,QAgHtB;AAED,IAAY,cAiBX;AAjBD,WAAY,cAAc;IAEtB,iEAA+C,CAAA;IAC/C,kEAAgD,CAAA;IAChD,sDAAoC,CAAA;IACpC,uDAAqC,CAAA;IACrC,wDAAsC,CAAA;IACtC,uDAAqC,CAAA;IACrC,2DAAyC,CAAA;IACzC,+DAA6C,CAAA;IAC7C,uDAAqC,CAAA;IACrC,wDAAsC,CAAA;IACtC,sDAAoC,CAAA;IACpC,uDAAqC,CAAA;IACrC,qDAAmC,CAAA;IACnC,sDAAoC,CAAA;IACpC,sDAAoC,CAAA;AACxC,CAAC,EAjBW,cAAc,8BAAd,cAAc,QAiBzB;AAED,IAAY,OAMX;AAND,WAAY,OAAO;IAEf,8CAAmC,CAAA;IACnC,8CAAmC,CAAA;IACnC,8CAAmC,CAAA;IACnC,8CAAmC,CAAA;AACvC,CAAC,EANW,OAAO,uBAAP,OAAO,QAMlB"}
@@ -0,0 +1,297 @@
/* 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;
};
}
@@ -0,0 +1,83 @@
"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
@@ -0,0 +1 @@
{"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"}
@@ -0,0 +1,79 @@
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",
};
@@ -0,0 +1,85 @@
"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
@@ -0,0 +1 @@
{"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"}
@@ -0,0 +1,81 @@
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
+28
View File
@@ -0,0 +1,28 @@
[General]
gameName=spt
modid=0
version=d2025.1.13.0
newestVersion=
category="1,"
nexusFileStatus=1
installationFile=Additional Clothing USEC 310.zip
repository=Nexus
ignoredVersion=
comments=
notes=
nexusDescription=
url=
hasCustomURL=false
lastNexusQuery=
lastNexusUpdate=
nexusLastModified=2025-01-13T13:27:59Z
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,24 @@
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.
In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to <https://unlicense.org>
@@ -0,0 +1,335 @@
{
"manifest": [
{
"key": "Hands/HandsMC_PCU.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/hands/usec/materials/watch_usec_textures",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Tops/TopMC_PCU.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Tops/AdaptiveUCON.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/HandsAdaptiveUCON.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/hands/usec/materials/watch_usec_textures",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Tops/USEC_RaidAggressor.bundle",
"dependencyKeys": [
"cubemaps",
"shaders",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/Hands_RaidAggressor.bundle",
"dependencyKeys": [
"cubemaps",
"shaders",
"assets/content/hands/usec/materials/watch_usec_textures",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Tops/USECParkaBL.bundle",
"dependencyKeys": [
"cubemaps",
"shaders",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/HandsParkaBL.bundle",
"dependencyKeys": [
"cubemaps",
"shaders",
"assets/content/hands/usec/materials/watch_usec_textures",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Tops/USECParkaMC.bundle",
"dependencyKeys": [
"cubemaps",
"shaders",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/HandsParkaMC.bundle",
"dependencyKeys": [
"cubemaps",
"shaders",
"assets/content/hands/usec/materials/watch_usec_textures",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Tops/USEC_MC_softshell.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/Hands_MC_softshell.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/hands/usec/materials/watch_usec_textures",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Bottoms/MCbirdeye.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/HandsBadlandsPCU.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/hands/usec/materials/watch_usec_textures",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Tops/TopBadlandsPCU.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/HandsBlackPCU.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/hands/usec/materials/watch_usec_textures",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Tops/TopBlackPCU.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/HandsPredatorlynx.bundle",
"dependencyKeys": [
"cubemaps",
"shaders",
"assets/content/hands/usec/materials/watch_usec_textures",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Tops/USEClynxPredator.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/HandsODlynx.bundle",
"dependencyKeys": [
"cubemaps",
"shaders",
"assets/content/hands/usec/materials/watch_usec_textures",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Tops/USEClynxOD.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Bottoms/PredatorBirdeye.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Bottoms/FlecktarnCombat.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Bottoms/FlecktarnBirdeye.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Bottoms/BadlandsBirdeye.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Bottoms/Pants_BL_Knight.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Bottoms/MultitarnG3.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Bottoms/AtacsUCONBigPipe.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Tops/FlecktarnSPN.bundle",
"dependencyKeys": [
"cubemaps",
"shaders",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/HandsSPNFlecktarn.bundle",
"dependencyKeys": [
"cubemaps",
"shaders",
"assets/content/hands/usec/materials/watch_usec_textures",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Tops/MultitarnSPN.bundle",
"dependencyKeys": [
"cubemaps",
"shaders",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/HandsSPNMultitarn.bundle",
"dependencyKeys": [
"cubemaps",
"shaders",
"assets/content/hands/usec/materials/watch_usec_textures",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
},
{
"key": "Bottoms/ReconUCON.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Bottoms/MultitarnUFPro.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Bottoms/UCONBirdeye.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Bottoms/G3FieldMC.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Tops/TopCarinthiaUCON.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/characters/character/skeleton.bundle"
]
},
{
"key": "Hands/HandsCarinthiaUCON.bundle",
"dependencyKeys": [
"shaders",
"cubemaps",
"assets/content/hands/usec/materials/watch_usec_textures",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/content/hands/bear/bear_watch.bundle"
]
}
]
}

Some files were not shown because too many files have changed in this diff Show More