# Configuration

### `data/config.json`

```jsonc
{
  "general": {
    "debug": true,            // print [KOJA-*] console logs
    "autoCreateTable": true,  // run CREATE TABLE on start
    "command": "trucker",     // chat command that opens the tablet → /trucker
    "locale": "en"            // default UI language (see Localization)
  },
  "orders": {
    "useRoutingBuckets": true // instance players while loading/unloading
  },
  "progression": {
    "levels": { "1": 0, "2": 100, "3": 300, "...": "..." },
    "startingValues": { "level": 1, "exp": 0, "skill_points": 0 }
  },
  "logging": {
    "enabled": true,
    "webhooks": { "orders": "", "companies": "", "skills": "", "anticheat": "", "default": "" },
    "anticheat": { "enabled": true, "max_orders_per_10min": 8, "min_seconds_per_order": 20, "max_levels_per_min": 5 }
  }
}
```

#### General

| Key               | Description                                                              |
| ----------------- | ------------------------------------------------------------------------ |
| `debug`           | Console logging. Turn **off** in production to silence `[KOJA-*]` lines. |
| `autoCreateTable` | Auto-create the DB schema on resource start.                             |
| `command`         | The chat command that opens the tablet. Restart to apply a rename.       |
| `locale`          | Default language. Players see this until per-player language is set.     |

#### Orders

| Key                 | Description                                                                                                                             |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `useRoutingBuckets` | Moves a driver into a private routing bucket while loading/unloading so two drivers at the same depot don't clip each other's vehicles. |

#### Progression

* `levels` — total XP required to reach each level (1–15 by default).
* `startingValues` — level / XP / skill points granted to brand-new drivers.

#### Logging

See Discord logging.

### Data files

| File                 | Holds                                             |
| -------------------- | ------------------------------------------------- |
| `data/config.json`   | The settings above                                |
| `data/orders.json`   | Order contracts                                   |
| `data/depots.json`   | Pickup/drop depots, parking, crate & pallet spots |
| `data/vehicles.json` | Vehicle catalogue (class, capacity, rental price) |
| `data/skills.json`   | The three skill trees                             |
| `data/quests.json`   | Daily & weekly quest pools                        |

:::hint{type="success"}
You rarely need to hand-edit these — the **admin panel** has a visual editor for every one of them.
:::

## In this section

::::cards{cols="2"}
:::card{title="Admin" href="/jobs/trucker/configuration/admin" icon="shield"}
The admin panel is built into the tablet.
:::
:::card{title="API" href="/jobs/trucker/configuration/api" icon="code"}
Events and Exports.
:::
::::
