Skip to main content
The Deno 2 Release Candidate is here
Learn more
interface IBotConfig.IBotConfig
implements IBaseConfig
Re-export
import { type IBotConfig } from "https://deno.land/x/sptaki@1.2.0/models/spt/mod.ts";
const { IBotConfig } = IBotConfig;

Number of bots to generate and store in cache on raid start per bot type

Properties

kind: "aki-bot"
presetBatch: PresetBatch

How many variants of each bot should be generated on raid start

botsToNotAddPMCsAsEnemiesTo: string[]

Bot roles that should not have PMC types (sptBear/sptUsec) added as enemies to

bosses: string[]

What bot types should be classified as bosses

durability: IBotDurability

Control weapon/armor durability min/max values for each bot type

lootItemResourceRandomization: Record<string, IRandomisedResourceDetails>

Controls the percentage values of randomization item resources

revenge: Record<string, string[]>

Control what bots are added to a bots revenge list key: bottype, value: bottypes to revenge on seeing their death

itemSpawnLimits: Record<string, Record<string, number>>

Control how many items are allowed to spawn on a bot key: bottype, value: <key: itemTpl: value: max item count>

equipment: Record<string, EquipmentFilters>

Blacklist/whitelist items on a bot

showTypeInNickname: boolean

Show a bots botType value after their name

assaultBrainType: Record<string, Record<string, number>>

What ai brain should a normal scav use per map

playerScavBrainType: Record<string, Record<string, number>>

What ai brain should a player scav use per map

maxBotCap: Record<string, number>

Max number of bots that can be spawned in a raid at any one time

chanceAssaultScavHasPlayerScavName: number

Chance scav has fake pscav name e.g. Scav name (player name)

secureContainerAmmoStackCount: number

How many stacks of secret ammo should a bot have in its bot secure container

botRolesWithDogTags: string[]

Bot roles in this array will be given a dog tag on generation

Settings to control the items that get added into wallets on bots

currencyStackSize: Record<string, Record<string, Record<string, number>>>

Currency weights, Keyed by botrole / currency

Properties

kind: "aki-bot"
presetBatch: PresetBatch

How many variants of each bot should be generated on raid start

botsToNotAddPMCsAsEnemiesTo: string[]

Bot roles that should not have PMC types (sptBear/sptUsec) added as enemies to

bosses: string[]

What bot types should be classified as bosses

durability: IBotDurability

Control weapon/armor durability min/max values for each bot type

lootItemResourceRandomization: Record<string, IRandomisedResourceDetails>

Controls the percentage values of randomization item resources

revenge: Record<string, string[]>

Control what bots are added to a bots revenge list key: bottype, value: bottypes to revenge on seeing their death

itemSpawnLimits: Record<string, Record<string, number>>

Control how many items are allowed to spawn on a bot key: bottype, value: <key: itemTpl: value: max item count>

equipment: Record<string, EquipmentFilters>

Blacklist/whitelist items on a bot

showTypeInNickname: boolean

Show a bots botType value after their name

assaultBrainType: Record<string, Record<string, number>>

What ai brain should a normal scav use per map

playerScavBrainType: Record<string, Record<string, number>>

What ai brain should a player scav use per map

maxBotCap: Record<string, number>

Max number of bots that can be spawned in a raid at any one time

chanceAssaultScavHasPlayerScavName: number

Chance scav has fake pscav name e.g. Scav name (player name)

secureContainerAmmoStackCount: number

How many stacks of secret ammo should a bot have in its bot secure container

botRolesWithDogTags: string[]

Bot roles in this array will be given a dog tag on generation

Settings to control the items that get added into wallets on bots

currencyStackSize: Record<string, Record<string, Record<string, number>>>

Currency weights, Keyed by botrole / currency

Properties

assault: number
bossBully: number
bossGluhar: number
bossKilla: number
bossKojaniy: number
bossSanitar: number
bossTagilla: number
bossKnight: number
bossTest: number
cursedAssault: number
followerBully: number
followerGluharAssault: number
followerGluharScout: number
followerGluharSecurity: number
followerGluharSnipe: number
followerKojaniy: number
followerSanitar: number
followerTagilla: number
followerBirdEye: number
followerBigPipe: number
followerTest: number
followerBoar: number
marksman: number
pmcBot: number
sectantPriest: number
sectantWarrior: number
gifter: number
test: number
exUsec: number
arenaFighterEvent: number
arenaFighter: number
crazyAssaultEvent: number
bossBoar: number
bossBoarSniper: number
sptUsec: number
sptBear: number

Properties

chancePercent: number

Chance wallets have loot in them

itemCount: MinMax
stackSizeWeight: Record<string, number>
currencyWeight: Record<string, number>
walletTplPool: string[]

What wallets will have money in them

Properties

weaponModLimits: ModLimits

Limits for mod types per weapon .e.g. scopes

weaponSightWhitelist: Record<string, string[]>

Whitelist for weapon sight types allowed per gun

optional
faceShieldIsActiveChancePercent: number

Chance face shield is down/active

optional
lightIsActiveDayChancePercent: number

Chance gun flashlight is active during the day

optional
lightIsActiveNightChancePercent: number

Chance gun flashlight is active during the night

optional
laserIsActiveChancePercent: number

Chance gun laser is active during the day

optional
nvgIsActiveChanceDayPercent: number

Chance NODS are down/active during the day

optional
nvgIsActiveChanceNightPercent: number

Chance NODS are down/active during the night

optional
forceOnlyArmoredRigWhenNoArmor: boolean
optional
filterPlatesByLevel: boolean

Should plates be filtered by level

optional
weaponSlotIdsToMakeRequired: string[]

What additional slot ids should be seen as required when choosing a mod to add to a weapon

randomisation: RandomisationDetails[]

Adjust weighting/chances of items on bot by level of bot

Blacklist equipment by level of bot

Whitelist equipment by level of bot

weightingAdjustmentsByBotLevel: WeightingAdjustmentDetails[]

Adjust equipment/ammo

optional
weightingAdjustmentsByPlayerLevel: WeightingAdjustmentDetails[]

Same as weightingAdjustments but based on player level instead of bot level

optional
forceStock: boolean

Should the stock mod be forced to spawn on bot

optional
armorPlateWeighting: IArmorPlateWeights[]

Properties

optional
scopeLimit: number

How many scopes are allowed on a weapon - hard coded to work with OPTIC_SCOPE, ASSAULT_SCOPE, COLLIMATOR, COMPACT_COLLIMATOR

optional
lightLaserLimit: number

How many lasers or lights are allowed on a weapon - hard coded to work with TACTICAL_COMBO, and FLASHLIGHT

Properties

levelRange: MinMax

Between what levels do these randomisation setting apply to

optional
generation: Record<string, GenerationData>
optional
randomisedWeaponModSlots: string[]

Mod slots that should be fully randomised -ignores mods from bottype.json and instaed creates a pool using items.json

optional
randomisedArmorSlots: string[]

Armor slots that should be randomised e.g. 'Headwear, Armband'

optional
equipment: Record<string, number>

Equipment chances

optional
weaponMods: Record<string, number>

Weapon mod chances

optional
equipmentMods: Record<string, number>

Equipment mod chances

Properties

levelRange: MinMax

Between what levels do these equipment filter setting apply to

equipment: Record<string, string[]>

Key: mod slot name e.g. mod_magazine, value: item tpls

cartridge: Record<string, string[]>

Key: cartridge type e.g. Caliber23x75, value: item tpls

Properties

levelRange: MinMax

Between what levels do these weight settings apply to

optional
ammo: IAdjustmentDetails

Key: ammo type e.g. Caliber556x45NATO, value: item tpl + weight

optional
equipment: IAdjustmentDetails

Key: equipment slot e.g. TacticalVest, value: item tpl + weight

optional
clothing: IAdjustmentDetails

Key: clothing slot e.g. feet, value: item tpl + weight

Properties

add: Record<string, Record<string, number>>
edit: Record<string, Record<string, number>>

Properties

levelRange: MinMax

Properties

resourcePercent: number

Minimum percent of item to randomized between min and max resource

chanceMaxResourcePercent: number

Chance for randomization to not occur