Added Mod to Unlock Locked Crates
This commit is contained in:
parent
d7f2f5814a
commit
502af97377
|
@ -259,7 +259,7 @@ Centering On Player Zoom Level = 0.15
|
||||||
# Setting type: Single
|
# Setting type: Single
|
||||||
# Default value: 0
|
# Default value: 0
|
||||||
# Acceptable value range: From 0 to 15
|
# Acceptable value range: From 0 to 15
|
||||||
Main map zoom = 0.8854211
|
Main map zoom = 2.224949
|
||||||
|
|
||||||
## The keyboard shortcut to peek at the map
|
## The keyboard shortcut to peek at the map
|
||||||
# Setting type: KeyboardShortcut
|
# Setting type: KeyboardShortcut
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2025 Delod19
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
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 OR COPYRIGHT HOLDERS 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.
|
|
@ -0,0 +1,11 @@
|
||||||
|
Created by Delod with help from Sh and AcidPhantasm
|
||||||
|
|
||||||
|
Codebase with help from Shibs Expanded Crafting (https://hub.sp-tarkov.com/files/file/2545-shibs-expanded-crafting/)
|
||||||
|
|
||||||
|
Thank you to them all and for you downloading this mod!
|
||||||
|
|
||||||
|
This mod adds 8 new crafting recipes involving the new Arena Lockboxes acquired from opening sealed containers
|
||||||
|
The Base game does not have these recipes in place yet, but by adding this mod you will be able to unlock the
|
||||||
|
boxes since they are acquired in SPT.
|
||||||
|
|
||||||
|
Enjoy the loot!
|
|
@ -0,0 +1,30 @@
|
||||||
|
{
|
||||||
|
"name": "arena-lockbox-mod",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"sptVersion": "~3.10",
|
||||||
|
"loadBefore": [],
|
||||||
|
"loadAfter": [],
|
||||||
|
"incompatibilities": [],
|
||||||
|
"isBundleMod": false,
|
||||||
|
"main": "src/mod.js",
|
||||||
|
"scripts": {
|
||||||
|
"setup": "npm i",
|
||||||
|
"build": "node ./build.mjs",
|
||||||
|
"buildinfo": "node ./build.mjs --verbose"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/node": "20.11",
|
||||||
|
"@typescript-eslint/eslint-plugin": "7.2",
|
||||||
|
"@typescript-eslint/parser": "7.2",
|
||||||
|
"archiver": "^6.0",
|
||||||
|
"eslint": "8.57",
|
||||||
|
"fs-extra": "11.2",
|
||||||
|
"ignore": "^5.2",
|
||||||
|
"tsyringe": "4.8.0",
|
||||||
|
"typescript": "5.4",
|
||||||
|
"winston": "3.12"
|
||||||
|
},
|
||||||
|
"author": "Delod",
|
||||||
|
"contributors": [],
|
||||||
|
"license": "MIT"
|
||||||
|
}
|
|
@ -0,0 +1,174 @@
|
||||||
|
"use strict";
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.addedCrafts = void 0;
|
||||||
|
export const addedCrafts = [
|
||||||
|
// Equip Epic
|
||||||
|
{
|
||||||
|
"_id": "6666d899eb78191c502350b3",
|
||||||
|
"areaType": 10,
|
||||||
|
"requirements": [
|
||||||
|
{ "areaType": 10, "requiredLevel": 2, "type": "Area" },
|
||||||
|
{ "templateId": "5d1b317c86f7742523398392", "type": "Tool" },
|
||||||
|
{ "templateId": "5d4042a986f7743185265463", "type": "Tool" },
|
||||||
|
{ "templateId": "5af04b6486f774195a3ebb49", "type": "Tool" },
|
||||||
|
{ "templateId": "6658285190486915542256c4", "count": 1, "isFunctional": false, "isEncoded": false, "type": "Item" }
|
||||||
|
],
|
||||||
|
"productionTime": 300,
|
||||||
|
"needFuelForAllProductionTime": false,
|
||||||
|
"locked": false,
|
||||||
|
"endProduct": "6658291eefd94e2d665b14a4",
|
||||||
|
"continuous": false,
|
||||||
|
"count": 1,
|
||||||
|
"productionLimitCount": 0,
|
||||||
|
"isEncoded": false,
|
||||||
|
"isCodeProduction": false
|
||||||
|
},
|
||||||
|
// Weapon Crate
|
||||||
|
{
|
||||||
|
"_id": "66575197464c4b4ba4671005",
|
||||||
|
"areaType": 10,
|
||||||
|
"requirements": [
|
||||||
|
{ "areaType": 10, "requiredLevel": 2, "type": "Area" },
|
||||||
|
{ "templateId": "5d1b317c86f7742523398392", "type": "Tool" },
|
||||||
|
{ "templateId": "5d4042a986f7743185265463", "type": "Tool" },
|
||||||
|
{ "templateId": "5af04b6486f774195a3ebb49", "type": "Tool" },
|
||||||
|
{ "templateId": "66582889efd94e2d665b14a2", "count": 1, "isFunctional": false, "isEncoded": false, "type": "Item" }
|
||||||
|
],
|
||||||
|
"productionTime": 300,
|
||||||
|
"needFuelForAllProductionTime": false,
|
||||||
|
"locked": false,
|
||||||
|
"endProduct": "665829424de4820934746ce6",
|
||||||
|
"continuous": false,
|
||||||
|
"count": 1,
|
||||||
|
"productionLimitCount": 0,
|
||||||
|
"isEncoded": false,
|
||||||
|
"isCodeProduction": false
|
||||||
|
},
|
||||||
|
// Supply Epic
|
||||||
|
{
|
||||||
|
"_id": "6666d829a8298779fc40e538",
|
||||||
|
"areaType": 10,
|
||||||
|
"requirements": [
|
||||||
|
{ "areaType": 10, "requiredLevel": 2, "type": "Area" },
|
||||||
|
{ "templateId": "5d1b317c86f7742523398392", "type": "Tool" },
|
||||||
|
{ "templateId": "5d4042a986f7743185265463", "type": "Tool" },
|
||||||
|
{ "templateId": "5af04b6486f774195a3ebb49", "type": "Tool" },
|
||||||
|
{ "templateId": "665828c44de4820934746ce4", "count": 1, "isFunctional": false, "isEncoded": false, "type": "Item" }
|
||||||
|
],
|
||||||
|
"productionTime": 300,
|
||||||
|
"needFuelForAllProductionTime": false,
|
||||||
|
"locked": false,
|
||||||
|
"endProduct": "66582972ac60f009f270d2aa",
|
||||||
|
"continuous": false,
|
||||||
|
"count": 1,
|
||||||
|
"productionLimitCount": 0,
|
||||||
|
"isEncoded": false,
|
||||||
|
"isCodeProduction": false
|
||||||
|
},
|
||||||
|
// Valuables Epic
|
||||||
|
{
|
||||||
|
"_id": "6666d7ea0b734650a91d0a43",
|
||||||
|
"areaType": 10,
|
||||||
|
"requirements": [
|
||||||
|
{ "areaType": 10, "requiredLevel": 2, "type": "Area" },
|
||||||
|
{ "templateId": "5d1b317c86f7742523398392", "type": "Tool" },
|
||||||
|
{ "templateId": "5d4042a986f7743185265463", "type": "Tool" },
|
||||||
|
{ "templateId": "5af04b6486f774195a3ebb49", "type": "Tool" },
|
||||||
|
{ "templateId": "665828f490486915542256c6", "count": 1, "isFunctional": false, "isEncoded": false, "type": "Item" }
|
||||||
|
],
|
||||||
|
"productionTime": 300,
|
||||||
|
"needFuelForAllProductionTime": false,
|
||||||
|
"locked": false,
|
||||||
|
"endProduct": "665829a6efd94e2d665b14a8",
|
||||||
|
"continuous": false,
|
||||||
|
"count": 1,
|
||||||
|
"productionLimitCount": 0,
|
||||||
|
"isEncoded": false,
|
||||||
|
"isCodeProduction": false
|
||||||
|
},
|
||||||
|
// Equip Common
|
||||||
|
{
|
||||||
|
"_id": "6666d899eb78191c502350b4",
|
||||||
|
"areaType": 10,
|
||||||
|
"requirements": [
|
||||||
|
{ "areaType": 10, "requiredLevel": 2, "type": "Area" },
|
||||||
|
{ "templateId": "5d1b317c86f7742523398392", "type": "Tool" },
|
||||||
|
{ "templateId": "5d4042a986f7743185265463", "type": "Tool" },
|
||||||
|
{ "templateId": "5af04b6486f774195a3ebb49", "type": "Tool" },
|
||||||
|
{ "templateId": "66588b514de4820934746dc6", "count": 1, "isFunctional": false, "isEncoded": false, "type": "Item" }
|
||||||
|
],
|
||||||
|
"productionTime": 300,
|
||||||
|
"needFuelForAllProductionTime": false,
|
||||||
|
"locked": false,
|
||||||
|
"endProduct": "6658876e146af22739040fad",
|
||||||
|
"continuous": false,
|
||||||
|
"count": 1,
|
||||||
|
"productionLimitCount": 0,
|
||||||
|
"isEncoded": false,
|
||||||
|
"isCodeProduction": false
|
||||||
|
},
|
||||||
|
// Weapon Common
|
||||||
|
{
|
||||||
|
"_id": "66575197464c4b4ba4671006",
|
||||||
|
"areaType": 10,
|
||||||
|
"requirements": [
|
||||||
|
{ "areaType": 10, "requiredLevel": 2, "type": "Area" },
|
||||||
|
{ "templateId": "5d1b317c86f7742523398392", "type": "Tool" },
|
||||||
|
{ "templateId": "5d4042a986f7743185265463", "type": "Tool" },
|
||||||
|
{ "templateId": "5af04b6486f774195a3ebb49", "type": "Tool" },
|
||||||
|
{ "templateId": "66588b6dcb48a73e674b2649", "count": 1, "isFunctional": false, "isEncoded": false, "type": "Item" }
|
||||||
|
],
|
||||||
|
"productionTime": 300,
|
||||||
|
"needFuelForAllProductionTime": false,
|
||||||
|
"locked": false,
|
||||||
|
"endProduct": "665888282c4a1b73af576b77",
|
||||||
|
"continuous": false,
|
||||||
|
"count": 1,
|
||||||
|
"productionLimitCount": 0,
|
||||||
|
"isEncoded": false,
|
||||||
|
"isCodeProduction": false
|
||||||
|
},
|
||||||
|
// Supply Common
|
||||||
|
{
|
||||||
|
"_id": "6666d829a8298779fc40e539",
|
||||||
|
"areaType": 10,
|
||||||
|
"requirements": [
|
||||||
|
{ "areaType": 10, "requiredLevel": 2, "type": "Area" },
|
||||||
|
{ "templateId": "5d1b317c86f7742523398392", "type": "Tool" },
|
||||||
|
{ "templateId": "5d4042a986f7743185265463", "type": "Tool" },
|
||||||
|
{ "templateId": "5af04b6486f774195a3ebb49", "type": "Tool" },
|
||||||
|
{ "templateId": "66588ba291f6e93c4c06efef", "count": 1, "isFunctional": false, "isEncoded": false, "type": "Item" }
|
||||||
|
],
|
||||||
|
"productionTime": 300,
|
||||||
|
"needFuelForAllProductionTime": false,
|
||||||
|
"locked": false,
|
||||||
|
"endProduct": "6658892e6e007c6f33662002",
|
||||||
|
"continuous": false,
|
||||||
|
"count": 1,
|
||||||
|
"productionLimitCount": 0,
|
||||||
|
"isEncoded": false,
|
||||||
|
"isCodeProduction": false
|
||||||
|
},
|
||||||
|
// Valuables Common
|
||||||
|
{
|
||||||
|
"_id": "6666d7ea0b734650a91d0a44",
|
||||||
|
"areaType": 10,
|
||||||
|
"requirements": [
|
||||||
|
{ "areaType": 10, "requiredLevel": 2, "type": "Area" },
|
||||||
|
{ "templateId": "5d1b317c86f7742523398392", "type": "Tool" },
|
||||||
|
{ "templateId": "5d4042a986f7743185265463", "type": "Tool" },
|
||||||
|
{ "templateId": "5af04b6486f774195a3ebb49", "type": "Tool" },
|
||||||
|
{ "templateId": "66588bb047fbd536a674240e", "count": 1, "isFunctional": false, "isEncoded": false, "type": "Item" }
|
||||||
|
],
|
||||||
|
"productionTime": 300,
|
||||||
|
"needFuelForAllProductionTime": false,
|
||||||
|
"locked": false,
|
||||||
|
"endProduct": "665886abdaadd1069736c539",
|
||||||
|
"continuous": false,
|
||||||
|
"count": 1,
|
||||||
|
"productionLimitCount": 0,
|
||||||
|
"isEncoded": false,
|
||||||
|
"isCodeProduction": false
|
||||||
|
}
|
||||||
|
];
|
||||||
|
//# sourceMappingURL=crafts.js.map
|
|
@ -0,0 +1,44 @@
|
||||||
|
import { DependencyContainer } from "tsyringe";
|
||||||
|
|
||||||
|
import { IPostDBLoadMod } from "@spt/models/external/IPostDBLoadMod";
|
||||||
|
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||||
|
import { IDatabaseTables } from "@spt/models/spt/server/IDatabaseTables";
|
||||||
|
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||||
|
import { addedCrafts } from "./crafts.js";
|
||||||
|
|
||||||
|
|
||||||
|
class ArenaLockboxMod implements IPostDBLoadMod
|
||||||
|
{
|
||||||
|
public postDBLoad(container: DependencyContainer): void
|
||||||
|
{
|
||||||
|
// Init logger
|
||||||
|
const logger = container.resolve<ILogger>("WinstonLogger");
|
||||||
|
|
||||||
|
// Get database from server
|
||||||
|
const databaseServer = container.resolve<DatabaseServer>("DatabaseServer");
|
||||||
|
const tables: IDatabaseTables = databaseServer.getTables();
|
||||||
|
|
||||||
|
let hideoutCrafts = tables.hideout.production.recipes;
|
||||||
|
|
||||||
|
// Loop and add new crafts
|
||||||
|
for (const newCraft of addedCrafts)
|
||||||
|
{
|
||||||
|
const alreadyAdded = hideoutCrafts.find((i) => i._id === newCraft._id);
|
||||||
|
if (!alreadyAdded)
|
||||||
|
{
|
||||||
|
hideoutCrafts.push(newCraft);
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
{
|
||||||
|
hideoutCrafts = hideoutCrafts.filter(i => i._id !== newCraft._id);
|
||||||
|
hideoutCrafts.push(newCraft);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.info(`ALM: Added ${addedCrafts.length} new crafting recipes for Arena Lockboxes`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { mod: new ArenaLockboxMod() };
|
|
@ -0,0 +1,28 @@
|
||||||
|
[General]
|
||||||
|
gameName=spt
|
||||||
|
modid=0
|
||||||
|
version=d2025.1.6.0
|
||||||
|
newestVersion=
|
||||||
|
category="1,"
|
||||||
|
nexusFileStatus=1
|
||||||
|
installationFile=ArenaLockboxes-Delod-1.0.0.zip
|
||||||
|
repository=Nexus
|
||||||
|
ignoredVersion=
|
||||||
|
comments=
|
||||||
|
notes=
|
||||||
|
nexusDescription=
|
||||||
|
url=
|
||||||
|
hasCustomURL=true
|
||||||
|
lastNexusQuery=
|
||||||
|
lastNexusUpdate=
|
||||||
|
nexusLastModified=2025-01-06T12:56:48Z
|
||||||
|
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
|
|
@ -33,6 +33,7 @@
|
||||||
-New Weapons & Gear_separator
|
-New Weapons & Gear_separator
|
||||||
+Ref SPT Friendly Quests
|
+Ref SPT Friendly Quests
|
||||||
-New Traders & Tweaks_separator
|
-New Traders & Tweaks_separator
|
||||||
|
+Unlock Arena Lockboxes
|
||||||
+Station Refueling
|
+Station Refueling
|
||||||
+Quick Throw Grenades
|
+Quick Throw Grenades
|
||||||
+Shoulder Swap on Lean
|
+Shoulder Swap on Lean
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
# This file was automatically generated by Mod Organizer.
|
||||||
+Unsorted_separator
|
+Unsorted_separator
|
||||||
-Visceral Combat
|
-Visceral Combat
|
||||||
-SWAG + DONUTS
|
-SWAG + DONUTS
|
||||||
|
@ -32,6 +33,7 @@
|
||||||
+New Weapons & Gear_separator
|
+New Weapons & Gear_separator
|
||||||
+Ref SPT Friendly Quests
|
+Ref SPT Friendly Quests
|
||||||
+New Traders & Tweaks_separator
|
+New Traders & Tweaks_separator
|
||||||
|
+Unlock Arena Lockboxes
|
||||||
+Station Refueling
|
+Station Refueling
|
||||||
-Quick Throw Grenades
|
-Quick Throw Grenades
|
||||||
+Shoulder Swap on Lean
|
+Shoulder Swap on Lean
|
||||||
|
|
Loading…
Reference in New Issue