Added comments to various config files

This commit is contained in:
Dev 2023-07-18 15:45:57 +01:00
parent f2863025c2
commit f28d6c2a6b
9 changed files with 75 additions and 5 deletions

View File

@ -7,17 +7,27 @@ export interface IAirdropConfig extends IBaseConfig
kind: "aki-airdrop" kind: "aki-airdrop"
airdropChancePercent: AirdropChancePercent airdropChancePercent: AirdropChancePercent
airdropTypeWeightings: Record<AirdropTypeEnum, number> airdropTypeWeightings: Record<AirdropTypeEnum, number>
/** Lowest point plane will fly at */
planeMinFlyHeight: number planeMinFlyHeight: number
/** Highest point plane will fly at */
planeMaxFlyHeight: number planeMaxFlyHeight: number
/** Loudness of plane engine */
planeVolume: number planeVolume: number
/** Speed plane flies overhead */
planeSpeed: number planeSpeed: number
/** Speed loot crate falls after being dropped */
crateFallSpeed: number crateFallSpeed: number
/** Container tpls to use when spawning crate - affects container size, keyed by drop type e.g. mixed/weaponArmor/foodMedical/barter */
containerIds: Record<string, string> containerIds: Record<string, string>
/** Earliest time aircraft will spawn in raid */
airdropMinStartTimeSeconds: number airdropMinStartTimeSeconds: number
/** Latest time aircraft will spawn in raid */
airdropMaxStartTimeSeconds: number airdropMaxStartTimeSeconds: number
/** What rewards will the loot crate contain, keyed by drop type e.g. mixed/weaponArmor/foodMedical/barter */
loot: Record<string, AirdropLoot> loot: Record<string, AirdropLoot>
} }
/** Chance map will have an airdrop occur out of 100 - locations not included count as 0% */
export interface AirdropChancePercent export interface AirdropChancePercent
{ {
bigmap: number bigmap: number
@ -29,16 +39,24 @@ export interface AirdropChancePercent
tarkovStreets: number tarkovStreets: number
} }
/** Loot inside crate */
export interface AirdropLoot export interface AirdropLoot
{ {
/** Min/max of weapons inside crate */
presetCount?: MinMax presetCount?: MinMax
/** Min/max of items inside crate */
itemCount: MinMax itemCount: MinMax
/** Min/max of sealed weapon boxes inside crate */
weaponCrateCount: MinMax weaponCrateCount: MinMax
/** Items to never allow - tpls */
itemBlacklist: string[] itemBlacklist: string[]
/** Item type (parentId) to allow inside crate */
itemTypeWhitelist: string[] 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<string, number> itemLimits: Record<string, number>
/** Items to limit stack size of key: item tpl value: min/max stack size */
itemStackLimits: Record<string, MinMax> itemStackLimits: Record<string, MinMax>
/** Armor levels to allow inside crate e.g. [4,5,6] */
armorLevelWhitelist?: number[] armorLevelWhitelist?: number[]
} }

View File

@ -35,6 +35,7 @@ export interface IBotConfig extends IBaseConfig
botGenerationBatchSizePerType: number botGenerationBatchSizePerType: number
} }
/** Number of bots to generate and store in cache on raid start per bot type */
export interface PresetBatch export interface PresetBatch
{ {
assault: number assault: number
@ -75,7 +76,9 @@ export interface LootNvalue
export interface EquipmentFilters export interface EquipmentFilters
{ {
/** Limits for mod types per weapon .e.g. scopes */
weaponModLimits: ModLimits weaponModLimits: ModLimits
/** Whitelsit for weapons allowed per gun */
weaponSightWhitelist: Record<string, string[]> weaponSightWhitelist: Record<string, string[]>
faceShieldIsActiveChancePercent?: number; faceShieldIsActiveChancePercent?: number;
lightIsActiveDayChancePercent?: number; lightIsActiveDayChancePercent?: number;
@ -83,10 +86,14 @@ export interface EquipmentFilters
laserIsActiveChancePercent?: number; laserIsActiveChancePercent?: number;
nvgIsActiveChanceDayPercent?: number; nvgIsActiveChanceDayPercent?: number;
nvgIsActiveChanceNightPercent?: number; nvgIsActiveChanceNightPercent?: number;
/** Adjust weighting/chances of items on bot by level of bot */
randomisation: RandomisationDetails[] randomisation: RandomisationDetails[]
/** Blacklist equipment by level of bot */
blacklist: EquipmentFilterDetails[] blacklist: EquipmentFilterDetails[]
/** Whitelist equipment by level of bot */
whitelist: EquipmentFilterDetails[] whitelist: EquipmentFilterDetails[]
clothing: WeightingAdjustmentDetails[] clothing: WeightingAdjustmentDetails[]
/** Adjust clothing choice weighting by level of bot */
weightingAdjustments: WeightingAdjustmentDetails[] weightingAdjustments: WeightingAdjustmentDetails[]
} }
@ -100,28 +107,38 @@ export interface ModLimits
export interface RandomisationDetails export interface RandomisationDetails
{ {
/** Between what levels do these randomisation setting apply to */
levelRange: MinMax levelRange: MinMax
generation?: Record<string, MinMaxWithWhitelist> generation?: Record<string, MinMaxWithWhitelist>
/** Mod slots that should be fully randomisate -ignores mods from bottype.json */
randomisedWeaponModSlots?: string[] randomisedWeaponModSlots?: string[]
/** Armor slots that should be randomised e.g. 'Headwear, Armband' */
randomisedArmorSlots?: string[] randomisedArmorSlots?: string[]
/** Equipment chances */ /** Equipment chances */
equipment?: Record<string, number> equipment?: Record<string, number>
/** Modc chances */ /** Mod chances */
mods?: Record<string, number> mods?: Record<string, number>
} }
export interface EquipmentFilterDetails export interface EquipmentFilterDetails
{ {
/** Between what levels do these equipment filter setting apply to */
levelRange: MinMax levelRange: MinMax
/** Key: mod slot name e.g. mod_magazine, value: item tpls */
equipment: Record<string, string[]> equipment: Record<string, string[]>
/** Key: cartridge type e.g. Caliber23x75, value: item tpls */
cartridge: Record<string, string[]> cartridge: Record<string, string[]>
} }
export interface WeightingAdjustmentDetails export interface WeightingAdjustmentDetails
{ {
/** Between what levels do these weight settings apply to */
levelRange: MinMax levelRange: MinMax
/** Key: ammo type e.g. Caliber556x45NATO, value: item tpl + weight */
ammo?: AdjustmentDetails ammo?: AdjustmentDetails
/** Key: equipment slot e.g. TacticalVest, value: item tpl + weight */
equipment?: AdjustmentDetails equipment?: AdjustmentDetails
/** Key: clothing slor e.g. feet, value: item tpl + weight */
clothing?: AdjustmentDetails clothing?: AdjustmentDetails
} }

View File

@ -4,10 +4,15 @@ export interface IInRaidConfig extends IBaseConfig
{ {
kind: "aki-inraid" kind: "aki-inraid"
MIAOnRaidEnd: boolean MIAOnRaidEnd: boolean
/** Overrides to apply to the pre-raid settings screen */
raidMenuSettings: RaidMenuSettings raidMenuSettings: RaidMenuSettings
/** What effects should be saved post-raid */
save: Save save: Save
/** Names of car extracts */
carExtracts: string[] carExtracts: string[]
/** Fene rep gain from a single car extract */
carExtractBaseStandingGain: number carExtractBaseStandingGain: number
/** Fence rep gain when successfully extracting as pscav */
scavExtractGain: number scavExtractGain: number
} }
@ -23,6 +28,7 @@ export interface RaidMenuSettings
export interface Save export interface Save
{ {
/** Should loot gained from raid be saved */
loot: boolean loot: boolean
durability: boolean durability: boolean
} }

View File

@ -3,10 +3,16 @@ import { IBaseConfig } from "./IBaseConfig";
export interface IInsuranceConfig extends IBaseConfig export interface IInsuranceConfig extends IBaseConfig
{ {
kind: "aki-insurance" kind: "aki-insurance"
/** Insurance price multiplier */
insuranceMultiplier: Record<string, number> insuranceMultiplier: Record<string, number>
/** Chance item is returned as insurance, keyed by trader id */
returnChancePercent: Record<string, number> returnChancePercent: Record<string, number>
/** Item slots that should never be returned as insurance */
blacklistedEquipment: string[] blacklistedEquipment: string[]
/** Names of equipment slots that could not be returned as insurance */
slotIdsWithChanceOfNotReturning: string[] slotIdsWithChanceOfNotReturning: string[]
/** Override to control how quickly insurance is processed/returned in second */
returnTimeOverrideSeconds: number returnTimeOverrideSeconds: number
/** How often server should process insurance in seconds */
runIntervalSeconds: number runIntervalSeconds: number
} }

View File

@ -4,6 +4,7 @@ import { IBaseConfig } from "./IBaseConfig";
export interface IInventoryConfig extends IBaseConfig export interface IInventoryConfig extends IBaseConfig
{ {
kind: "aki-inventory" kind: "aki-inventory"
/** Should new items purchased by flagged as found in raid */
newItemsMarkedFound: boolean newItemsMarkedFound: boolean
randomLootContainers: Record<string, RewardDetails> randomLootContainers: Record<string, RewardDetails>
sealedAirdropContainer: ISealedAirdropContainerSettings sealedAirdropContainer: ISealedAirdropContainerSettings
@ -23,6 +24,7 @@ export interface ISealedAirdropContainerSettings
{ {
weaponRewardWeight: Record<string, number> weaponRewardWeight: Record<string, number>
defaultPresetsOnly: boolean defaultPresetsOnly: boolean
/** Should contents be flagged as found in raid when opened */
foundInRaid: boolean; foundInRaid: boolean;
weaponModRewardLimits: Record<string, MinMax> weaponModRewardLimits: Record<string, MinMax>
rewardTypeLimits: Record<string, MinMax> rewardTypeLimits: Record<string, MinMax>

View File

@ -5,11 +5,15 @@ import { IBaseConfig } from "./IBaseConfig";
export interface ILocationConfig extends IBaseConfig export interface ILocationConfig extends IBaseConfig
{ {
kind: "aki-location" 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; 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 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 splitWaveIntoSingleSpawnsSettings: ISplitWaveSettings
looseLootMultiplier: LootMultiplier looseLootMultiplier: LootMultiplier
staticLootMultiplier: LootMultiplier staticLootMultiplier: LootMultiplier
/** Custom bot waves to add to a locations base json on game start if addCustomBotWavesToMaps is true */
customWaves: CustomWaves customWaves: CustomWaves
/** Open zones to add to map */ /** Open zones to add to map */
openZones: Record<string, string[]> openZones: Record<string, string[]>
@ -21,8 +25,9 @@ export interface ILocationConfig extends IBaseConfig
addOpenZonesToAllMaps: boolean addOpenZonesToAllMaps: boolean
/** Allow addition of custom bot waves designed by SPT to be added to maps - defined in configs/location.json.customWaves*/ /** Allow addition of custom bot waves designed by SPT to be added to maps - defined in configs/location.json.customWaves*/
addCustomBotWavesToMaps: boolean addCustomBotWavesToMaps: boolean
/** Should the limits defined inside botTypeLimits to appled to locations on game start */
enableBotTypeLimits: boolean enableBotTypeLimits: boolean
/** Add limits to a maps base.MinMaxBots array*/ /** Add limits to a locations base.MinMaxBots array if enableBotTypeLimits is true*/
botTypeLimits: Record<string, IBotTypeLimit[]> botTypeLimits: Record<string, IBotTypeLimit[]>
} }
@ -47,6 +52,7 @@ export interface ISplitWaveSettings
export interface CustomWaves export interface CustomWaves
{ {
/** Bosses spawn on raid start */
boss: Record<string, BossLocationSpawn[]> boss: Record<string, BossLocationSpawn[]>
normal: Record<string, Wave[]> normal: Record<string, Wave[]>
} }
@ -56,6 +62,7 @@ export interface IBotTypeLimit extends MinMax
type: string type: string
} }
/** Multiplier to apply to the loot count for a given map */
export interface LootMultiplier export interface LootMultiplier
{ {
bigmap: number bigmap: number

View File

@ -3,8 +3,11 @@ import { IBaseConfig } from "./IBaseConfig";
export interface ILostOnDeathConfig extends IBaseConfig export interface ILostOnDeathConfig extends IBaseConfig
{ {
kind: "aki-lostondeath" kind: "aki-lostondeath"
/** What equipment in each slot should be lost on death */
equipment: Equipment equipment: Equipment
/** Should special slot items be removed from quest inventory on death e.g. wifi camera/markers */
specialSlotItems: boolean; specialSlotItems: boolean;
/** Should quest items be removed from quest inventory on death */
questItems: boolean questItems: boolean
} }

View File

@ -14,21 +14,31 @@ export interface IPmcConfig
/** Global whitelist/blacklist of backpack loot for PMCs */ /** Global whitelist/blacklist of backpack loot for PMCs */
backpackLoot: SlotLootSettings backpackLoot: SlotLootSettings
dynamicLoot: DynamicLoot dynamicLoot: DynamicLoot
/** Use difficulty defined in config/bot.json/difficulty instead of chosen difficulty dropdown value */
useDifficultyOverride: boolean useDifficultyOverride: boolean
/** Difficulty override e.g. "AsOnline/Hard" */
difficulty: string difficulty: string
/** Chance out of 100 to have a complete gun in backpack */
looseWeaponInBackpackChancePercent: number looseWeaponInBackpackChancePercent: number
/** MinMax count of weapons to have in backpack */
looseWeaponInBackpackLootMinMax: MinMax looseWeaponInBackpackLootMinMax: MinMax
/** Percentage chance PMC will be USEC */
isUsec: number isUsec: number
/** WildSpawnType enum value USEC PMCs use */
usecType: string usecType: string
/** WildSpawnType enum value BEAR PMCs use */
bearType: string bearType: string
chanceSameSideIsHostilePercent: number 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<string, Record<string, Record<string, number>>> pmcType: Record<string, Record<string, Record<string, number>>>
maxBackpackLootTotalRub: number maxBackpackLootTotalRub: number
maxPocketLootTotalRub: number maxPocketLootTotalRub: number
maxVestLootTotalRub: 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<string, MinMax> convertIntoPmcChance: Record<string, MinMax>
/** WildSpawnType bots PMCs should see as hostile */
enemyTypes: string[] enemyTypes: string[]
/** How many levels above player level can a PMC be */
botRelativeLevelDeltaMax: number botRelativeLevelDeltaMax: number
} }

View File

@ -8,6 +8,7 @@ export interface ITraderConfig extends IBaseConfig
purchasesAreFoundInRaid: boolean; purchasesAreFoundInRaid: boolean;
updateTimeDefault: number updateTimeDefault: number
traderPriceMultipler: number traderPriceMultipler: number
/** Keep track of purchased trader-limited items beyond server restarts to prevent server-restart item scumming */
persistPurchaseDataInProfile: boolean persistPurchaseDataInProfile: boolean
fence: FenceConfig fence: FenceConfig
} }