# config reference

This reference summarizes `config.yml` keys.

## `default`

| Key                      | Type        | Default intent                                             |
| ------------------------ | ----------- | ---------------------------------------------------------- |
| `bot-health`             | number      | Bot max health. `20.0` equals 10 hearts.                   |
| `collidable`             | boolean     | Whether bots can collide/push.                             |
| `bot-invulnerable`       | boolean     | Makes bots invulnerable when true.                         |
| `allow-multiple-bots`    | boolean     | Allows one player to spawn multiple personal bots.         |
| `bot-prefix`             | string      | Prefix for bot nameplates. Keep total name length in mind. |
| `despawn-on-owner-death` | boolean     | Despawn personal bot when it kills owner.                  |
| `disabled-worlds`        | string list | Worlds where players cannot spawn bots.                    |

## `default-behaviour`

| Key             | Type    | Description                      |
| --------------- | ------- | -------------------------------- |
| `look-at-owner` | boolean | Bot looks at owner when nearby.  |
| `follow-owner`  | boolean | Bot follows owner.               |
| `random-walk`   | boolean | Bot wanders while idle.          |
| `hold-shield`   | boolean | Bot visually holds shield.       |
| `use-shield`    | boolean | Bot actively blocks with shield. |
| `pvp-enabled`   | boolean | Bot attacks players in range.    |

## `cpvp.defaults`

| Key                             | Type    | Notes                                                 |
| ------------------------------- | ------- | ----------------------------------------------------- |
| `skill-level`                   | string  | EASY, MEDIUM, HARD, PRO, or custom preset.            |
| `aggression-weight`             | number  | Suggested range 0.5-2.0.                              |
| `use-pearls`                    | boolean | Allows ender pearls.                                  |
| `use-mace`                      | boolean | Allows mace logic.                                    |
| `use-golden-apples`             | boolean | Allows gapple healing.                                |
| `place-obsidian`                | boolean | Allows obsidian base placement.                       |
| `break-blocks`                  | boolean | Allows block breaking when relevant to pressure/path. |
| `strafing-enabled`              | boolean | Allows CPvP strafing.                                 |
| `anchoring-mode`                | boolean | Allows respawn anchor combat.                         |
| `heal-threshold`                | number  | 0.2-0.8. `0.4` means 40%.                             |
| `low-hp-crystal-lethal-reserve` | number  | Minimum HP reserve against low-health self-damage.    |
| `pearl-cooldown-ms`             | integer | Suggested range 500-3000ms.                           |
| `fov-degrees`                   | number  | Horizontal action FOV. `360` means full awareness.    |

## `cpvp.difficulty-levels.<level>`

| Key                                         | Type    |
| ------------------------------------------- | ------- |
| `aggression-weight`                         | number  |
| `place-delay-min-ms`                        | integer |
| `place-delay-max-ms`                        | integer |
| `break-delay-min-ms`                        | integer |
| `break-delay-max-ms`                        | integer |
| `sword-delay-ms`                            | integer |
| `reaction-hesitation-chance-percent`        | integer |
| `reaction-hesitation-min-ms`                | integer |
| `reaction-hesitation-max-ms`                | integer |
| `crystal-miss-chance-percent`               | integer |
| `crystal-miss-min-ms`                       | integer |
| `crystal-miss-max-ms`                       | integer |
| `non-urgent-pearl-restraint-chance-percent` | integer |

## `cpvp.performance`

| Key                                | Description                                         |
| ---------------------------------- | --------------------------------------------------- |
| `adaptive-enabled`                 | Enables adaptive throttling.                        |
| `low-bot-threshold`                | Bot count where low-load scan throttling starts.    |
| `medium-bot-threshold`             | Bot count where medium-load scan throttling starts. |
| `high-bot-threshold`               | Bot count where high-load scan throttling starts.   |
| `low-scan-period-ticks`            | Non-urgent scan period at low load.                 |
| `medium-scan-period-ticks`         | Non-urgent scan period at medium load.              |
| `high-scan-period-ticks`           | Non-urgent scan period at high load.                |
| `anchor-count-cache-ticks`         | Anchor count cache duration.                        |
| `crystal-search-cache-ticks`       | Crystal search cache duration.                      |
| `navigation-retarget-ms`           | Normal Citizens navigation retarget interval.       |
| `high-load-navigation-retarget-ms` | Retarget interval under high load.                  |

## `ai`

| Key                  | Description                                                               |
| -------------------- | ------------------------------------------------------------------------- |
| `tick-interval`      | AI update interval in ticks. Lower is more responsive, higher is lighter. |
| `random-walk-radius` | Max random-walk distance from spawn point.                                |

## `pvp`

| Key                               | Description                                                        |
| --------------------------------- | ------------------------------------------------------------------ |
| `base-cooldown-ms`                | Normal attack cooldown baseline.                                   |
| `crit-cooldowns`                  | Slow/normal/fast critical hit cooldowns.                           |
| `aggression-cooldown-multipliers` | LOW/MEDIUM/HIGH cooldown scaling.                                  |
| `aggression-damage-modifiers`     | LOW/MEDIUM/HIGH damage scaling.                                    |
| `crit-multiplier`                 | Critical hit damage multiplier.                                    |
| `reach-distances`                 | SHORT/NORMAL/EXTENDED/ADVANCED reach distances.                    |
| `chase-speeds`                    | LOW/MEDIUM/HIGH chase speed scaling.                               |
| `knockback`                       | Horizontal, vertical, W-tap multiplier, W-tap bonus.               |
| `strafe`                          | Active-combat strafe speed and switch intervals.                   |
| `approach-strafe`                 | Approach movement strafe speed, switch intervals, and chase speed. |

## `shield`

| Key                | Description                           |
| ------------------ | ------------------------------------- |
| `stun-duration-ms` | Shield disabled time after axe break. |
| `block-angle`      | Angle where shield can block attacks. |
| `block-delay-ms`   | Delay before raising shield.          |

## `commands`

| Key                   | Description                    |
| --------------------- | ------------------------------ |
| `admin-permission`    | Main admin permission node.    |
| `spawnbot-permission` | Generic spawn permission node. |

## `gui`

| Key                       | Description              |
| ------------------------- | ------------------------ |
| `settings-title`          | Main bot settings title. |
| `pvp-settings-title`      | PvP settings title.      |
| `bot-inventory-title`     | Bot inventory title.     |
| `default-inventory-title` | Default inventory title. |
| `sounds.open`             | GUI open sound.          |
| `sounds.close`            | GUI close sound.         |
| `sounds.click`            | GUI click sound.         |

## `debug`

| Key           | Production recommendation |
| ------------- | ------------------------- |
| `verbose-ai`  | `false`                   |
| `verbose-pvp` | `false`                   |

## `license`

| Key    | Description                                                                            |
| ------ | -------------------------------------------------------------------------------------- |
| `code` | License code. Set through `/pbadmin license set <key>` where possible. Do not publish. |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://edelweiss-network.gitbook.io/practicebot/reference/config-reference.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
