Skip to content

Economy Config & Tuning ​

Almost all balance is data. Prices, restock rates, heat gains, the Director, laundering, and betrayal tuning are config values you can change and hot reload. This page maps the systems to their knobs. For the gameplay meaning of each number, follow the links to the systems pages.

IMPORTANT

Game-specific tuning lives in the mod's own config files, loaded with the mod. Keep your tuning in your mod, not in framework-level config.

Drug economy ​

The primary balance knobs for the drug trade.

json
{
  "drugAddict": {
    "cashIncrementInterval": 20,
    "cashIncrementAmount": 50.0,
    "maxCash": 500.0,
    "crackDrainAmount": 5.0
  },
  "drugTrafficker": {
    "cocaineRestockInterval": 15,
    "bufferMultiplier": 10
  },
  "pricing": {
    "traffickingCocaineSaleAmount": 200.0,
    "traffickingCocainePrice": 1000.0,
    "retailCrackSaleAmount": 50.0,
    "retailCrackPrice": 500.0,
    "wholesaleCocaineSaleAmount": 200.0,
    "wholesaleCocainePrice": 1400.0
  }
}
KeyControlsSystem
drugAddict.cashIncrement*How fast addicts accumulate money to spendEconomy
drugTrafficker.cocaineRestockIntervalHow often suppliers restockEconomy
drugTrafficker.bufferMultiplierSupplier max inventory headroomEconomy
pricing.*Buy, retail, and wholesale amounts and pricesEconomy

Purchase size and dynamic supply ​

How much each crew member buys per trip is the desiredState value on their buy goal, not a price key. Suppliers read it and scale stock automatically:

restock = member count x purchase size, max inventory = member count x purchase size x bufferMultiplier

Change the buy goal's target and the whole supply chain adapts. See Economy.

Heat ​

json
{
  "decayIntervalTicks": 300,
  "decayRates": {
    "residential": 0.05,
    "commercial": 0.04,
    "industrial": 0.025,
    "drug_trade": 0.02
  },
  "eventHeatGain": {
    "HAND_OFF_DRUGS": 8,
    "APPREHEND_SUSPECT": 5,
    "INTIMIDATE_WITNESS": 4,
    "CONFIRM_BRIBE": 3,
    "INVESTIGATE_SCENE": 2
  },
  "gangAvoidanceThreshold": 70
}
KeyControlsSystem
eventHeatGain.*Heat added per crimeHeat
decayRates.*How fast each section type coolsHeat
gangAvoidanceThresholdHeat level crew start avoidingHeat

The Director ​

json
{
  "director": {
    "enabled": true,
    "tickInterval": 100,
    "threatWeights": {
      "cashWeight": 0.4,
      "activityWeight": 0.3,
      "pressureBuildup": 0.3,
      "jitterFactor": 0.1
    },
    "cashNormalize": 3000,
    "eventThreshold": 0.25,
    "globalCooldownTicks": 300,
    "perTypeCooldownTicks": {
      "rival_gang_attack": 900,
      "fbi_raid": 1800,
      "police_sweep": 600
    }
  }
}
KeyControlsSystem
threatWeights.*The four inputs to the threat scoreDirector
eventThresholdHow high the score must go to fireDirector
cashNormalizeHow much small money mattersDirector
globalCooldownTicks / perTypeCooldownTicksSpacing between eventsDirector

Adding a new Director event is a data entry in the events file (type, squad size, roles, weight, time-of-day multiplier, cooldown, spawn mode). Feature flags toggle whole event classes; see the Director feature flags.

Traits ​

Trait impacts, thresholds, and decay are defined in a trait-impact ruleset so you can retune who becomes what:

What you can changeEffect
Action and goal impactsHow much each action moves each trait. See Traits.
ThresholdsThe cutoffs that unlock behaviors. See threshold events.
DecayHow fast situational traits return to baseline.
Contextual modifiersSituation multipliers on trait changes.

Betrayal ​

Betrayal tuning lives in its own config file loaded with the mod:

KnobControlsSystem
Contagion base and bandsHow far an unpunished rat drops crew loyaltyBetrayal
Deterrence rippleHow much visible punishment raises loyaltyBetrayal
Flavor thresholdsVengeful vs done vs greedy defectionBetrayal

Laundering ​

KnobControlsSystem
Member cut rateShare that goes to the member's walletEconomy
Launder efficiencyShare that survives as clean cashEconomy
Burn feeWhat is lost to washingEconomy
Heat exposureHeat added per launderEconomy

Adding content (new drugs, labs, weapons) ​

New product types, production buildings, and weapons are data, not new systems. Most additions are a field plus a few config entries, which is why the game can grow its inventory without an engine change.

A new lab (for example, a meth lab) ​

The game already ships a Drug Lab and a small Crack Lab as building purposes. A meth lab is just another purpose entry with its own batch size, cost, and risk:

json
{
  "purposeId": "meth_lab",
  "displayName": "Meth Lab",
  "symbol": "🧪",
  "description": "Production facility. Cooks a batch of product each cycle, runs hot.",
  "allowedBuildingTags": ["industrial", "abandoned"],
  "weeklyUpkeep": 900,
  "productionBatchAmount": 120,
  "productionBatchIntervalTicks": 240,
  "heatExposure": 1.0,
  "evidencePerWeek": 18,
  "setupCost": 28000,
  "marketValueModifier": -0.006
}

Drop that into the purposes data and it appears as a conversion option. No code. See Real Estate & Assets for what every field means.

A new drug ​

A new product type is a handful of data edits, not a rewrite:

StepWhat you add
1A product field on the entities that carry it (the same way Cocaine is a property)
2Pricing entries (buy, retail, wholesale amounts and prices) in the economy config
3A way to get it: a lab purpose that produces it, or a supplier that sells it
4Optionally, buy and sell goals so crew trade it, mirroring the cocaine goals

The systems that move money, raise heat, and build cases do not care which product it is, so a new drug rides all of them for free.

A new weapon ​

Weapons are data and art. A new one is a sprite plus an entry, and it slots into the existing combat scoring through its weapon-quality value. See Asset Studio for importing the art and Combat for how weapon quality factors in.

Tuning workflow ​

StepAction
1Edit the config value in your mod
2Reload in-game (hot reload)
3Observe behavior
4Repeat

Change one value at a time so you can tell what moved the result.

Community documentation for BBox: Kingpin.