diff --git a/project/src/models/spt/config/IAirdropConfig.ts b/project/src/models/spt/config/IAirdropConfig.ts index 56d80138..0195caed 100644 --- a/project/src/models/spt/config/IAirdropConfig.ts +++ b/project/src/models/spt/config/IAirdropConfig.ts @@ -7,17 +7,27 @@ export interface IAirdropConfig extends IBaseConfig kind: "aki-airdrop" airdropChancePercent: AirdropChancePercent airdropTypeWeightings: Record + /** Lowest point plane will fly at */ planeMinFlyHeight: number + /** Highest point plane will fly at */ planeMaxFlyHeight: number + /** Loudness of plane engine */ planeVolume: number + /** Speed plane flies overhead */ planeSpeed: number + /** Speed loot crate falls after being dropped */ crateFallSpeed: number + /** Container tpls to use when spawning crate - affects container size, keyed by drop type e.g. mixed/weaponArmor/foodMedical/barter */ containerIds: Record + /** Earliest time aircraft will spawn in raid */ airdropMinStartTimeSeconds: number + /** Latest time aircraft will spawn in raid */ airdropMaxStartTimeSeconds: number + /** What rewards will the loot crate contain, keyed by drop type e.g. mixed/weaponArmor/foodMedical/barter */ loot: Record } - + +/** Chance map will have an airdrop occur out of 100 - locations not included count as 0% */ export interface AirdropChancePercent { bigmap: number @@ -29,16 +39,24 @@ export interface AirdropChancePercent tarkovStreets: number } +/** Loot inside crate */ export interface AirdropLoot { + /** Min/max of weapons inside crate */ presetCount?: MinMax + /** Min/max of items inside crate */ itemCount: MinMax + /** Min/max of sealed weapon boxes inside crate */ weaponCrateCount: MinMax + /** Items to never allow - tpls */ itemBlacklist: string[] + /** Item type (parentId) to allow inside crate */ itemTypeWhitelist: string[] - /** key: item base type: value: max count */ + /** Item type/ item tpls to limit count of inside crate - key: item base type: value: max count */ itemLimits: Record + /** Items to limit stack size of key: item tpl value: min/max stack size */ itemStackLimits: Record + /** Armor levels to allow inside crate e.g. [4,5,6] */ armorLevelWhitelist?: number[] } \ No newline at end of file diff --git a/project/src/models/spt/config/IBotConfig.ts b/project/src/models/spt/config/IBotConfig.ts index 69d3bc04..660f943f 100644 --- a/project/src/models/spt/config/IBotConfig.ts +++ b/project/src/models/spt/config/IBotConfig.ts @@ -35,6 +35,7 @@ export interface IBotConfig extends IBaseConfig botGenerationBatchSizePerType: number } +/** Number of bots to generate and store in cache on raid start per bot type */ export interface PresetBatch { assault: number @@ -75,7 +76,9 @@ export interface LootNvalue export interface EquipmentFilters { + /** Limits for mod types per weapon .e.g. scopes */ weaponModLimits: ModLimits + /** Whitelsit for weapons allowed per gun */ weaponSightWhitelist: Record faceShieldIsActiveChancePercent?: number; lightIsActiveDayChancePercent?: number; @@ -83,10 +86,14 @@ export interface EquipmentFilters laserIsActiveChancePercent?: number; nvgIsActiveChanceDayPercent?: number; nvgIsActiveChanceNightPercent?: number; + /** Adjust weighting/chances of items on bot by level of bot */ randomisation: RandomisationDetails[] + /** Blacklist equipment by level of bot */ blacklist: EquipmentFilterDetails[] + /** Whitelist equipment by level of bot */ whitelist: EquipmentFilterDetails[] clothing: WeightingAdjustmentDetails[] + /** Adjust clothing choice weighting by level of bot */ weightingAdjustments: WeightingAdjustmentDetails[] } @@ -100,28 +107,38 @@ export interface ModLimits export interface RandomisationDetails { + /** Between what levels do these randomisation setting apply to */ levelRange: MinMax generation?: Record + /** Mod slots that should be fully randomisate -ignores mods from bottype.json */ randomisedWeaponModSlots?: string[] + /** Armor slots that should be randomised e.g. 'Headwear, Armband' */ randomisedArmorSlots?: string[] /** Equipment chances */ equipment?: Record - /** Modc chances */ + /** Mod chances */ mods?: Record } export interface EquipmentFilterDetails { + /** Between what levels do these equipment filter setting apply to */ levelRange: MinMax + /** Key: mod slot name e.g. mod_magazine, value: item tpls */ equipment: Record + /** Key: cartridge type e.g. Caliber23x75, value: item tpls */ cartridge: Record } export interface WeightingAdjustmentDetails { + /** Between what levels do these weight settings apply to */ levelRange: MinMax + /** Key: ammo type e.g. Caliber556x45NATO, value: item tpl + weight */ ammo?: AdjustmentDetails + /** Key: equipment slot e.g. TacticalVest, value: item tpl + weight */ equipment?: AdjustmentDetails + /** Key: clothing slor e.g. feet, value: item tpl + weight */ clothing?: AdjustmentDetails } diff --git a/project/src/models/spt/config/IInRaidConfig.ts b/project/src/models/spt/config/IInRaidConfig.ts index 96dc577f..103ec572 100644 --- a/project/src/models/spt/config/IInRaidConfig.ts +++ b/project/src/models/spt/config/IInRaidConfig.ts @@ -4,10 +4,15 @@ export interface IInRaidConfig extends IBaseConfig { kind: "aki-inraid" MIAOnRaidEnd: boolean + /** Overrides to apply to the pre-raid settings screen */ raidMenuSettings: RaidMenuSettings + /** What effects should be saved post-raid */ save: Save + /** Names of car extracts */ carExtracts: string[] + /** Fene rep gain from a single car extract */ carExtractBaseStandingGain: number + /** Fence rep gain when successfully extracting as pscav */ scavExtractGain: number } @@ -23,6 +28,7 @@ export interface RaidMenuSettings export interface Save { + /** Should loot gained from raid be saved */ loot: boolean durability: boolean } \ No newline at end of file diff --git a/project/src/models/spt/config/IInsuranceConfig.ts b/project/src/models/spt/config/IInsuranceConfig.ts index 77486215..448df931 100644 --- a/project/src/models/spt/config/IInsuranceConfig.ts +++ b/project/src/models/spt/config/IInsuranceConfig.ts @@ -3,10 +3,16 @@ import { IBaseConfig } from "./IBaseConfig"; export interface IInsuranceConfig extends IBaseConfig { kind: "aki-insurance" + /** Insurance price multiplier */ insuranceMultiplier: Record + /** Chance item is returned as insurance, keyed by trader id */ returnChancePercent: Record + /** Item slots that should never be returned as insurance */ blacklistedEquipment: string[] + /** Names of equipment slots that could not be returned as insurance */ slotIdsWithChanceOfNotReturning: string[] + /** Override to control how quickly insurance is processed/returned in second */ returnTimeOverrideSeconds: number + /** How often server should process insurance in seconds */ runIntervalSeconds: number } diff --git a/project/src/models/spt/config/IInventoryConfig.ts b/project/src/models/spt/config/IInventoryConfig.ts index 5573b46c..0ad6b78d 100644 --- a/project/src/models/spt/config/IInventoryConfig.ts +++ b/project/src/models/spt/config/IInventoryConfig.ts @@ -4,6 +4,7 @@ import { IBaseConfig } from "./IBaseConfig"; export interface IInventoryConfig extends IBaseConfig { kind: "aki-inventory" + /** Should new items purchased by flagged as found in raid */ newItemsMarkedFound: boolean randomLootContainers: Record sealedAirdropContainer: ISealedAirdropContainerSettings @@ -23,6 +24,7 @@ export interface ISealedAirdropContainerSettings { weaponRewardWeight: Record defaultPresetsOnly: boolean + /** Should contents be flagged as found in raid when opened */ foundInRaid: boolean; weaponModRewardLimits: Record rewardTypeLimits: Record diff --git a/project/src/models/spt/config/ILocationConfig.ts b/project/src/models/spt/config/ILocationConfig.ts index d759923f..d041d58e 100644 --- a/project/src/models/spt/config/ILocationConfig.ts +++ b/project/src/models/spt/config/ILocationConfig.ts @@ -5,11 +5,15 @@ import { IBaseConfig } from "./IBaseConfig"; export interface ILocationConfig extends IBaseConfig { kind: "aki-location" + /** Waves with a min/max of the same value don't spawn any bots, bsg only spawn the difference between min and max */ fixEmptyBotWavesSettings: IFixEmptyBotWavesSettings; + /** Rogues are classified as bosses and spawn immediatly, this can result in no scavs spawning, delay rogues spawning to allow scavs to spawn first */ rogueLighthouseSpawnTimeSettings: IRogueLighthouseSpawnTimeSettings + /** When a map has hit max alive bots, any wave that should spawn will be reduced to 1 bot in size and placed in a spawn queue, this splits waves into smaller sizes to reduce the impact of this behaviour */ splitWaveIntoSingleSpawnsSettings: ISplitWaveSettings looseLootMultiplier: LootMultiplier staticLootMultiplier: LootMultiplier + /** Custom bot waves to add to a locations base json on game start if addCustomBotWavesToMaps is true */ customWaves: CustomWaves /** Open zones to add to map */ openZones: Record @@ -21,8 +25,9 @@ export interface ILocationConfig extends IBaseConfig addOpenZonesToAllMaps: boolean /** Allow addition of custom bot waves designed by SPT to be added to maps - defined in configs/location.json.customWaves*/ addCustomBotWavesToMaps: boolean + /** Should the limits defined inside botTypeLimits to appled to locations on game start */ enableBotTypeLimits: boolean - /** Add limits to a maps base.MinMaxBots array*/ + /** Add limits to a locations base.MinMaxBots array if enableBotTypeLimits is true*/ botTypeLimits: Record } @@ -47,6 +52,7 @@ export interface ISplitWaveSettings export interface CustomWaves { + /** Bosses spawn on raid start */ boss: Record normal: Record } @@ -56,6 +62,7 @@ export interface IBotTypeLimit extends MinMax type: string } +/** Multiplier to apply to the loot count for a given map */ export interface LootMultiplier { bigmap: number diff --git a/project/src/models/spt/config/ILostOnDeathConfig.ts b/project/src/models/spt/config/ILostOnDeathConfig.ts index febf4c9b..539f6ae2 100644 --- a/project/src/models/spt/config/ILostOnDeathConfig.ts +++ b/project/src/models/spt/config/ILostOnDeathConfig.ts @@ -3,8 +3,11 @@ import { IBaseConfig } from "./IBaseConfig"; export interface ILostOnDeathConfig extends IBaseConfig { kind: "aki-lostondeath" + /** What equipment in each slot should be lost on death */ equipment: Equipment + /** Should special slot items be removed from quest inventory on death e.g. wifi camera/markers */ specialSlotItems: boolean; + /** Should quest items be removed from quest inventory on death */ questItems: boolean } diff --git a/project/src/models/spt/config/IPmcConfig.ts b/project/src/models/spt/config/IPmcConfig.ts index f94380ce..db1c0fc6 100644 --- a/project/src/models/spt/config/IPmcConfig.ts +++ b/project/src/models/spt/config/IPmcConfig.ts @@ -14,21 +14,31 @@ export interface IPmcConfig /** Global whitelist/blacklist of backpack loot for PMCs */ backpackLoot: SlotLootSettings dynamicLoot: DynamicLoot + /** Use difficulty defined in config/bot.json/difficulty instead of chosen difficulty dropdown value */ useDifficultyOverride: boolean + /** Difficulty override e.g. "AsOnline/Hard" */ difficulty: string + /** Chance out of 100 to have a complete gun in backpack */ looseWeaponInBackpackChancePercent: number + /** MinMax count of weapons to have in backpack */ looseWeaponInBackpackLootMinMax: MinMax + /** Percentage chance PMC will be USEC */ isUsec: number + /** WildSpawnType enum value USEC PMCs use */ usecType: string + /** WildSpawnType enum value BEAR PMCs use */ bearType: string chanceSameSideIsHostilePercent: number - /** key: location, value: type for usec/bear */ + /** What 'brain' does a PMC use, keyed by map and side (USEC/BEAR) key: map location, value: type for usec/bear */ pmcType: Record>> maxBackpackLootTotalRub: number maxPocketLootTotalRub: number maxVestLootTotalRub: number + /** Percentage chance a bot from a wave is converted into a PMC, key = bot wildspawn tpye (assault/exusec), value: min+max chance to be converted */ convertIntoPmcChance: Record + /** WildSpawnType bots PMCs should see as hostile */ enemyTypes: string[] + /** How many levels above player level can a PMC be */ botRelativeLevelDeltaMax: number } diff --git a/project/src/models/spt/config/ITraderConfig.ts b/project/src/models/spt/config/ITraderConfig.ts index 21f79c3e..ae9b28fa 100644 --- a/project/src/models/spt/config/ITraderConfig.ts +++ b/project/src/models/spt/config/ITraderConfig.ts @@ -8,6 +8,7 @@ export interface ITraderConfig extends IBaseConfig purchasesAreFoundInRaid: boolean; updateTimeDefault: number traderPriceMultipler: number + /** Keep track of purchased trader-limited items beyond server restarts to prevent server-restart item scumming */ persistPurchaseDataInProfile: boolean fence: FenceConfig }