Further branding changes

This commit is contained in:
Dev 2024-07-06 22:15:30 +01:00
parent 8238d80a3b
commit 02049f57e0
47 changed files with 135 additions and 135 deletions
TypeScript
10ScopesAndTypes
11BundleLoadingSample
12ClassExtensionOverride
13AddTrader
14AfterDBLoadHook
15HttpListenerExample
16ImporterUtil
17AsyncImporterWithDependency1
17AsyncImporterWithDependency2
18CustomItemService
19UseExternalLibraries
1LogToConsole
20CustomChatBot
21CustomCommandoCommand
22CustomAkiCommand
23CustomAbstractChatBot
24WebSocket
2EditDatabase
3GetSptConfigFile
4.1UseACustomJson5OrJsonCConfigFile
4UseACustomConfigFile
5ReplaceMethod
6ReferenceAnotherClass
7OnLoadHook
8OnUpdateHook
9RouterHooks

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,15 +1,15 @@
import { DependencyContainer, Lifecycle } from "tsyringe";
import { IPreAkiLoadMod } from "@spt/models/external/IPreAkiLoadMod";
import { IPostAkiLoadMod } from "@spt/models/external/IPostAkiLoadMod";
import { IPreSptLoadMod } from "@spt/models/external/IPreSptLoadMod";
import { IPostSptLoadMod } from "@spt/models/external/IPostSptLoadMod";
import { MyMod } from "./MyMod";
import { Processing } from "./Processing";
class Mod implements IPreAkiLoadMod, IPostAkiLoadMod
class Mod implements IPreSptLoadMod, IPostSptLoadMod
{
// Perform these actions before server fully loads
public preAkiLoad(container: DependencyContainer): void {
public preSptLoad(container: DependencyContainer): void {
// This class is registered as a singleton. This means ONE and only ONE bean
// of this class will ever exist.
container.register<MyMod>("MyMod", MyMod, {lifecycle: Lifecycle.Singleton});
@ -19,7 +19,7 @@ class Mod implements IPreAkiLoadMod, IPostAkiLoadMod
container.register<Processing>("Processing", Processing);
}
public postAkiLoad(container: DependencyContainer): void
public postSptLoad(container: DependencyContainer): void
{
// We will run this in a quick 5 loop to show how singletons and transients work
for (let i = 0; i < 5; i++)

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,11 +1,11 @@
import { DependencyContainer } from "tsyringe";
import { IPostAkiLoadMod } from "@spt/models/external/IPostAkiLoadMod";
import { IPostSptLoadMod } from "@spt/models/external/IPostSptLoadMod";
import { ILogger } from "@spt/models/spt/utils/ILogger";
class Mod implements IPostAkiLoadMod
class Mod implements IPostSptLoadMod
{
public postAkiLoad(container: DependencyContainer): void
public postSptLoad(container: DependencyContainer): void
{
// get the logger from the server container
const logger = container.resolve<ILogger>("WinstonLogger");

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,9 +1,9 @@
import { DependencyContainer } from "tsyringe";
import { IPreAkiLoadMod } from "@spt/models/external/IPreAkiLoadMod"
import { IPreSptLoadMod } from "@spt/models/external/IPreSptLoadMod"
import { MyCustomLauncherCallbacks } from "./MyCustomLauncherCallbacks";
class Mod implements IPreAkiLoadMod
class Mod implements IPreSptLoadMod
{
// This example will show you how to override and register your own components and use them
// The container will by default register all AKI dependencies, but you can inject into it
@ -12,11 +12,11 @@ class Mod implements IPreAkiLoadMod
// for our own custom method that will return "Lets dance" instead of "pong!"
// Perform these actions before server fully loads
public preAkiLoad(container: DependencyContainer): void {
public preSptLoad(container: DependencyContainer): void {
// Here we register our override for the component and we NEED to use the same
// token the server is using to register it.
// You can find this tokens here:
// https://dev.sp-tarkov.com/SPT-AKI/Server/src/branch/development/project/src/di/Container.ts
// https://dev.sp-tarkov.com/SPT/Server/src/branch/development/project/src/di/Container.ts
// In this scenario we want to override LauncherCallbacks, so we find the proper registry:
//
// depContainer.register<LauncherCallbacks>("LauncherCallbacks", { useClass: LauncherCallbacks });

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,10 +1,10 @@
import { DependencyContainer } from "tsyringe";
// SPT types
import { IPreAkiLoadMod } from "@spt/models/external/IPreAkiLoadMod";
import { IPreSptLoadMod } from "@spt/models/external/IPreSptLoadMod";
import { IPostDBLoadMod } from "@spt/models/external/IPostDBLoadMod";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { PreAkiModLoader } from "@spt/loaders/PreAkiModLoader";
import { PreSptModLoader } from "@spt/loaders/PreSptModLoader";
import { DatabaseServer } from "@spt/servers/DatabaseServer";
import { ImageRouter } from "@spt/routers/ImageRouter";
import { ConfigServer } from "@spt/servers/ConfigServer";
@ -22,7 +22,7 @@ import * as baseJson from "../db/base.json";
import { TraderHelper } from "./traderHelpers";
import { FluentAssortConstructor as FluentAssortCreator } from "./fluentTraderAssortCreator";
class SampleTrader implements IPreAkiLoadMod, IPostDBLoadMod
class SampleTrader implements IPreSptLoadMod, IPostDBLoadMod
{
private mod: string;
private logger: ILogger;
@ -37,14 +37,14 @@ class SampleTrader implements IPreAkiLoadMod, IPostDBLoadMod
* Some work needs to be done prior to SPT code being loaded, registering the profile image + setting trader update time inside the trader config json
* @param container Dependency container
*/
public preAkiLoad(container: DependencyContainer): void
public preSptLoad(container: DependencyContainer): void
{
// Get a logger
this.logger = container.resolve<ILogger>("WinstonLogger");
this.logger.debug(`[${this.mod}] preAki Loading... `);
this.logger.debug(`[${this.mod}] preSpt Loading... `);
// Get SPT code/data we need later
const preAkiModLoader: PreAkiModLoader = container.resolve<PreAkiModLoader>("PreAkiModLoader");
const preSptModLoader: PreSptModLoader = container.resolve<PreSptModLoader>("PreSptModLoader");
const imageRouter: ImageRouter = container.resolve<ImageRouter>("ImageRouter");
const hashUtil: HashUtil = container.resolve<HashUtil>("HashUtil");
const configServer = container.resolve<ConfigServer>("ConfigServer");
@ -54,7 +54,7 @@ class SampleTrader implements IPreAkiLoadMod, IPostDBLoadMod
// Create helper class and use it to register our traders image/icon + set its stock refresh time
this.traderHelper = new TraderHelper();
this.fluentAssortCreator = new FluentAssortCreator(hashUtil, this.logger);
this.traderHelper.registerProfileImage(baseJson, this.mod, preAkiModLoader, imageRouter, "cat.jpg");
this.traderHelper.registerProfileImage(baseJson, this.mod, preSptModLoader, imageRouter, "cat.jpg");
this.traderHelper.setTraderUpdateTime(traderConfig, baseJson, 3600, 4000);
// Add trader to trader enum
@ -63,7 +63,7 @@ class SampleTrader implements IPreAkiLoadMod, IPostDBLoadMod
// Add trader to flea market
ragfairConfig.traders[baseJson._id] = true;
this.logger.debug(`[${this.mod}] preAki Loaded`);
this.logger.debug(`[${this.mod}] preSpt Loaded`);
}
/**

@ -1,4 +1,4 @@
import { PreAkiModLoader } from "@spt/loaders/PreAkiModLoader";
import { PreSptModLoader } from "@spt/loaders/PreSptModLoader";
import { Item } from "@spt/models/eft/common/tables/IItem";
import { ITraderBase, ITraderAssort } from "@spt/models/eft/common/tables/ITrader";
import { ITraderConfig, UpdateTime } from "@spt/models/spt/config/ITraderConfig";
@ -12,14 +12,14 @@ export class TraderHelper
* Add profile picture to our trader
* @param baseJson json file for trader (db/base.json)
* @param modName mod folder name
* @param preAkiModLoader mod loader class - used to get the mods file path
* @param preSptModLoader mod loader class - used to get the mods file path
* @param imageRouter image router class - used to register the trader image path so we see their image on trader page
* @param traderImageName Filename of the trader icon to use
*/
public registerProfileImage(baseJson: any, modName: string, preAkiModLoader: PreAkiModLoader, imageRouter: ImageRouter, traderImageName: string): void
public registerProfileImage(baseJson: any, modName: string, preSptModLoader: PreSptModLoader, imageRouter: ImageRouter, traderImageName: string): void
{
// Reference the mod "res" folder
const imageFilepath = `./${preAkiModLoader.getModPath(modName)}res`;
const imageFilepath = `./${preSptModLoader.getModPath(modName)}res`;
// Register a route to point to the profile picture - remember to remove the .jpg from it
imageRouter.addRoute(baseJson.avatar.replace(".jpg", ""), `${imageFilepath}/${traderImageName}`);

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,7 +1,7 @@
import { DependencyContainer } from "tsyringe";
import { IPreAkiLoadMod } from "@spt/models/external/IPreAkiLoadMod";
import { IPostAkiLoadMod } from "@spt/models/external/IPostAkiLoadMod";
import { IPreSptLoadMod } from "@spt/models/external/IPreSptLoadMod";
import { IPostSptLoadMod } from "@spt/models/external/IPostSptLoadMod";
import { IPostDBLoadMod } from "@spt/models/external/IPostDBLoadMod";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { DatabaseServer } from "@spt/servers/DatabaseServer";
@ -9,9 +9,9 @@ import { LogTextColor } from "@spt/models/spt/logging/LogTextColor";
import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
class Mod implements IPreAkiLoadMod, IPostAkiLoadMod, IPostDBLoadMod
class Mod implements IPreSptLoadMod, IPostSptLoadMod, IPostDBLoadMod
{
public preAkiLoad(container: DependencyContainer): void {
public preSptLoad(container: DependencyContainer): void {
// Database will be empty in here
const databaseServer = container.resolve<DatabaseServer>("DatabaseServer");
const logger = container.resolve<ILogger>("WinstonLogger");
@ -24,7 +24,7 @@ class Mod implements IPreAkiLoadMod, IPostAkiLoadMod, IPostDBLoadMod
const databaseServer = container.resolve<DatabaseServer>("DatabaseServer");
const logger = container.resolve<ILogger>("WinstonLogger");
logger.logWithColor(`Database item size: ${Object.entries(databaseServer.getTables().templates.items).length}`, LogTextColor.RED, LogBackgroundColor.YELLOW);
// lets do a quick modification and see how this reflect later on, on the postAkiLoad()
// lets do a quick modification and see how this reflect later on, on the postSptLoad()
// find the nvgs item by its Id
const nvgs = databaseServer.getTables().templates.items["5c0558060db834001b735271"];
@ -34,7 +34,7 @@ class Mod implements IPreAkiLoadMod, IPostAkiLoadMod, IPostDBLoadMod
nvgs._props.CanSellOnRagfair = true;
}
public postAkiLoad(container: DependencyContainer): void {
public postSptLoad(container: DependencyContainer): void {
// The modification we made above would have been processed by now by AKI, so any values we changed had
// already been passed through the initial lifecycles (OnLoad) of AKI.
const databaseServer = container.resolve<DatabaseServer>("DatabaseServer");

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,14 +1,14 @@
import { IncomingMessage, ServerResponse } from "node:http";
import { DependencyContainer } from "tsyringe";
import { IPreAkiLoadMod } from "@spt/models/external/IPreAkiLoadMod";
import { IPreSptLoadMod } from "@spt/models/external/IPreSptLoadMod";
import { HttpListenerModService } from "@spt/services/mod/httpListener/HttpListenerModService";
import { Type2HttpListener } from "./Type2HttpListener";
class Mod implements IPreAkiLoadMod
class Mod implements IPreSptLoadMod
{
// Code added here will load BEFORE the server has started loading
public preAkiLoad(container: DependencyContainer): void
public preSptLoad(container: DependencyContainer): void
{
const httpListenerService = container.resolve<HttpListenerModService>("HttpListenerModService");
httpListenerService.registerHttpListener("Type1HttpListener", this.canHandleOverride, this.handleOverride)

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,18 +1,18 @@
import { DependencyContainer } from "tsyringe";
import { PreAkiModLoader } from "@spt/loaders/PreAkiModLoader";
import { IPreAkiLoadMod } from "@spt/models/external/IPreAkiLoadMod";
import { PreSptModLoader } from "@spt/loaders/PreSptModLoader";
import { IPreSptLoadMod } from "@spt/models/external/IPreSptLoadMod";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { ImporterUtil } from "@spt/utils/ImporterUtil";
import { ConfigsModelBase } from "./model/ConfigsModel";
class Mod implements IPreAkiLoadMod {
public preAkiLoad(container: DependencyContainer): void {
class Mod implements IPreSptLoadMod {
public preSptLoad(container: DependencyContainer): void {
// get logger
const logger = container.resolve<ILogger>("WinstonLogger");
const importerUtil = container.resolve<ImporterUtil>("ImporterUtil");
const modImporter = container.resolve<PreAkiModLoader>("PreAkiModLoader");
const modImporter = container.resolve<PreSptModLoader>("PreSptModLoader");
const path = modImporter.getModPath("16ImporterUtil");
const configPath = `${path}config/`;

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,18 +1,18 @@
import { DependencyContainer } from "tsyringe";
import { PreAkiModLoader } from "@spt/loaders/PreAkiModLoader";
import { IPreAkiLoadModAsync } from "@spt/models/external/IPreAkiLoadModAsync";
import { PreSptModLoader } from "@spt/loaders/PreSptModLoader";
import { IPreSptLoadModAsync } from "@spt/models/external/IPreSptLoadModAsync";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { ImporterUtil } from "@spt/utils/ImporterUtil";
import { ConfigsModelBase } from "./model/ConfigsModel";
class Mod implements IPreAkiLoadModAsync {
public async preAkiLoadAsync(container: DependencyContainer): Promise<void> {
class Mod implements IPreSptLoadModAsync {
public async preSptLoadAsync(container: DependencyContainer): Promise<void> {
// get logger
const logger = container.resolve<ILogger>("WinstonLogger");
const importerUtil = container.resolve<ImporterUtil>("ImporterUtil");
const modImporter = container.resolve<PreAkiModLoader>("PreAkiModLoader");
const modImporter = container.resolve<PreSptModLoader>("PreSptModLoader");
const path = modImporter.getModPath("16ImporterUtil");
const configPath = `${path}config/`;

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,18 +1,18 @@
import { DependencyContainer } from "tsyringe";
import { PreAkiModLoader } from "@spt/loaders/PreAkiModLoader";
import { IPreAkiLoadModAsync } from "@spt/models/external/IPreAkiLoadModAsync";
import { PreSptModLoader } from "@spt/loaders/PreSptModLoader";
import { IPreSptLoadModAsync } from "@spt/models/external/IPreSptLoadModAsync";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { ImporterUtil } from "@spt/utils/ImporterUtil";
import { ConfigsModelBase } from "./model/ConfigsModel";
class Mod implements IPreAkiLoadModAsync {
public async preAkiLoadAsync(container: DependencyContainer): Promise<void> {
class Mod implements IPreSptLoadModAsync {
public async preSptLoadAsync(container: DependencyContainer): Promise<void> {
// get logger
const logger = container.resolve<ILogger>("WinstonLogger");
const importerUtil = container.resolve<ImporterUtil>("ImporterUtil");
const modImporter = container.resolve<PreAkiModLoader>("PreAkiModLoader");
const modImporter = container.resolve<PreSptModLoader>("PreSptModLoader");
const path = modImporter.getModPath("16ImporterUtil");
const configPath = `${path}config/`;

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -3,10 +3,10 @@ import { DependencyContainer } from "tsyringe";
import { IPostDBLoadMod } from "@spt/models/external/IPostDBLoadMod";
import { CustomItemService } from "@spt/services/mod/CustomItemService";
import { NewItemFromCloneDetails } from "@spt/models/spt/mod/NewItemDetails";
import { IPostAkiLoadMod } from "@spt/models/external/IPostAkiLoadMod";
import { IPostSptLoadMod } from "@spt/models/external/IPostSptLoadMod";
import { DatabaseServer } from "@spt/servers/DatabaseServer";
class Mod implements IPostDBLoadMod, IPostAkiLoadMod
class Mod implements IPostDBLoadMod, IPostSptLoadMod
{
public postDBLoad(container: DependencyContainer): void
{
@ -71,7 +71,7 @@ class Mod implements IPostDBLoadMod, IPostAkiLoadMod
}
//Check if our item is in the server or not
public postAkiLoad(container: DependencyContainer): void {
public postSptLoad(container: DependencyContainer): void {
const db = container.resolve<DatabaseServer>("DatabaseServer");
const item = db.getTables().templates.items;

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,8 +1,8 @@
import path from "node:path";
import { DependencyContainer } from "tsyringe";
import { IPostAkiLoadMod } from "@spt/models/external/IPostAkiLoadMod";
import { IPreAkiLoadMod } from "@spt/models/external/IPreAkiLoadMod";
import { IPostSptLoadMod } from "@spt/models/external/IPostSptLoadMod";
import { IPreSptLoadMod } from "@spt/models/external/IPreSptLoadMod";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { VFS } from "@spt/utils/VFS";
import { jsonc } from "jsonc";
@ -10,8 +10,8 @@ import { jsonc } from "jsonc";
// Our dynamically imported package (via pnpm) not bundled into the server
import ora from "ora-classic";
class Mod implements IPreAkiLoadMod, IPostAkiLoadMod {
public preAkiLoad(container: DependencyContainer): void {
class Mod implements IPreSptLoadMod, IPostSptLoadMod {
public preSptLoad(container: DependencyContainer): void {
const vfs = container.resolve<VFS>("VFS");
const logger = container.resolve<ILogger>("WinstonLogger");
@ -20,7 +20,7 @@ class Mod implements IPreAkiLoadMod, IPostAkiLoadMod {
logger.success(jsonc.stringify(parsedJsonC, null, "\t")); // you could use the built in JSON api here if you really wanted too aswell, i used jsonc to really drive home the point that it works
}
public postAkiLoad(container: DependencyContainer): void {
public postSptLoad(container: DependencyContainer): void {
// this first timeout is just to prevent a weird formatting problem on the console, you can ignore it, you don't really need it anyways, it's just so that it looks right on the console
setTimeout(() => {
const spinner = ora({

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,14 +1,14 @@
import { DependencyContainer } from "tsyringe";
import { IPreAkiLoadMod } from "@spt/models/external/IPreAkiLoadMod";
import { IPreSptLoadMod } from "@spt/models/external/IPreSptLoadMod";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { LogTextColor } from "@spt/models/spt/logging/LogTextColor";
import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
class Mod implements IPreAkiLoadMod
class Mod implements IPreSptLoadMod
{
// Code added here will load BEFORE the server has started loading
public preAkiLoad(container: DependencyContainer): void
public preSptLoad(container: DependencyContainer): void
{
// get the logger from the server container
const logger = container.resolve<ILogger>("WinstonLogger");

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,13 +1,13 @@
import { DependencyContainer } from "tsyringe";
import { IPreAkiLoadMod } from "@spt/models/external/IPreAkiLoadMod";
import { IPreSptLoadMod } from "@spt/models/external/IPreSptLoadMod";
import { CustomWebSocketConnectionHandler } from "./CustomWebSocketConnectionHandler";
import { IWebSocketConnectionHandler } from "@spt/servers/ws/IWebSocketConnectionHandler";
import { CustomAkiWebSocketMessageHandler } from "./CustomAkiWebSocketMessageHandler";
import { IAkiWebSocketMessageHandler } from "@spt/servers/ws/message/IAkiWebSocketMessageHandler";
class Mod implements IPreAkiLoadMod {
public preAkiLoad(container: DependencyContainer): void {
class Mod implements IPreSptLoadMod {
public preSptLoad(container: DependencyContainer): void {
// We register our Custom handlers:
container.register<IWebSocketConnectionHandler>("CustomWebSocketConnectionHandler", CustomWebSocketConnectionHandler);
container.register<IAkiWebSocketMessageHandler>("CustomAkiWebSocketMessageHandler", CustomAkiWebSocketMessageHandler);

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,14 +1,14 @@
import { DependencyContainer } from "tsyringe";
import { IPostAkiLoadMod } from "@spt/models/external/IPostAkiLoadMod";
import { IPostSptLoadMod } from "@spt/models/external/IPostSptLoadMod";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { ConfigServer } from "@spt/servers/ConfigServer";
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
import { ILocationConfig } from "@spt/models/spt/config/ILocationConfig";
class Mod implements IPostAkiLoadMod
class Mod implements IPostSptLoadMod
{
public postAkiLoad(container: DependencyContainer): void
public postSptLoad(container: DependencyContainer): void
{
// get logger
const logger = container.resolve<ILogger>("WinstonLogger");

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,16 +1,16 @@
import path from "node:path";
import { DependencyContainer } from "tsyringe";
import { IPostAkiLoadMod } from "@spt/models/external/IPostAkiLoadMod";
import { IPostSptLoadMod } from "@spt/models/external/IPostSptLoadMod";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { VFS } from "@spt/utils/VFS";
import JSON5 from "json5";
import { jsonc } from "jsonc";
class Mod implements IPostAkiLoadMod
class Mod implements IPostSptLoadMod
{
public postAkiLoad(container: DependencyContainer): void {
public postSptLoad(container: DependencyContainer): void {
// get logger
const logger = container.resolve<ILogger>("WinstonLogger");

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,13 +1,13 @@
import { DependencyContainer } from "tsyringe";
import { IPostAkiLoadMod } from "@spt/models/external/IPostAkiLoadMod";
import { IPostSptLoadMod } from "@spt/models/external/IPostSptLoadMod";
import { ILogger } from "@spt/models/spt/utils/ILogger";
class Mod implements IPostAkiLoadMod
class Mod implements IPostSptLoadMod
{
private modConfig = require("../config/config.json");
public postAkiLoad(container: DependencyContainer): void {
public postSptLoad(container: DependencyContainer): void {
// get logger
const logger = container.resolve<ILogger>("WinstonLogger");

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,13 +1,13 @@
import { DependencyContainer } from "tsyringe";
import { IPreAkiLoadMod } from "@spt/models/external/IPreAkiLoadMod";
import { IPreSptLoadMod } from "@spt/models/external/IPreSptLoadMod";
import { LauncherController } from "@spt/controllers/LauncherController";
import { DatabaseServer } from "@spt/servers/DatabaseServer";
import { ILoginRequestData } from "@spt/models/eft/launcher/ILoginRequestData";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { SaveServer } from "@spt/servers/SaveServer";
class Mod implements IPreAkiLoadMod
class Mod implements IPreSptLoadMod
{
// DO NOT leave static references to ANY resolved dependency.
// ALWAYS use the container to resolve dependencies
@ -15,7 +15,7 @@ class Mod implements IPreAkiLoadMod
private static container: DependencyContainer;
// Perform these actions before server fully loads
public preAkiLoad(container: DependencyContainer): void
public preSptLoad(container: DependencyContainer): void
{
// We will save a reference to the dependency container to resolve dependencies
// that we may need down the line

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,12 +1,12 @@
import { DependencyContainer } from "tsyringe";
import { IPostAkiLoadMod } from "@spt/models/external/IPostAkiLoadMod";
import { IPostSptLoadMod } from "@spt/models/external/IPostSptLoadMod";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { MoreCode } from "./MoreCode";
class Mod implements IPostAkiLoadMod
class Mod implements IPostSptLoadMod
{
public postAkiLoad(container: DependencyContainer): void
public postSptLoad(container: DependencyContainer): void
{
// get logger
const logger = container.resolve<ILogger>("WinstonLogger");

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,12 +1,12 @@
import { DependencyContainer } from "tsyringe";
import { IPreAkiLoadMod } from "@spt/models/external/IPreAkiLoadMod";
import { IPreSptLoadMod } from "@spt/models/external/IPreSptLoadMod";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { OnLoadModService } from "@spt/services/mod/onLoad/OnLoadModService";
class Mod implements IPreAkiLoadMod
class Mod implements IPreSptLoadMod
{
public preAkiLoad(container: DependencyContainer): void
public preSptLoad(container: DependencyContainer): void
{
const logger = container.resolve<ILogger>("WinstonLogger");
const onLoadModService = container.resolve<OnLoadModService>("OnLoadModService");

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).

@ -1,12 +1,12 @@
import { DependencyContainer } from "tsyringe";
import { IPreAkiLoadMod } from "@spt/models/external/IPreAkiLoadMod";
import { IPreSptLoadMod } from "@spt/models/external/IPreSptLoadMod";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { OnUpdateModService } from "@spt/services/mod/onUpdate/OnUpdateModService";
class Mod implements IPreAkiLoadMod
class Mod implements IPreSptLoadMod
{
public preAkiLoad(container: DependencyContainer): void {
public preSptLoad(container: DependencyContainer): void {
const logger = container.resolve<ILogger>("WinstonLogger");
const onUpdateModService = container.resolve<OnUpdateModService>("OnUpdateModService");

@ -1,4 +1,4 @@
# Welcome to the SPT-AKI Modding Project
# Welcome to the SPT Modding Project
This project is designed to streamline the initial setup process for building and creating mods in the SPT-AKI environment. Follow this guide to set up your environment efficiently.
@ -47,7 +47,7 @@ Some resources to get you started:
## **Coding Guidelines**
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"akiVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
Focus your mod development around the `mod.ts` file. In the `package.json` file, only alter these properties: `"name"`, `"version"`, `"sptVersion"`, `"loadBefore"`, `"loadAfter"`, `"incompatibilities"`, `"isBundleMod"`, `"author"`, and `"license"`.
New to Typescript? Find comprehensive documentation on the [official website](https://www.typescriptlang.org/docs/).