# configuration

PracticeBot is configured through generated YAML files. Most server owners only need `config.yml`, `bot_templates.yml`, and selected GUI files.

## Main files

| File/folder         | Purpose                                                                                                                   |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| `config.yml`        | Main runtime defaults, CPvP presets, performance, PvP tuning, shield behavior, GUI titles, debug flags, and license code. |
| `messages.yml`      | Player/admin messages, help output, usage messages, errors, license messages, and editor prompts.                         |
| `default_inv.yml`   | Default bot inventory/armor state.                                                                                        |
| `bot_templates.yml` | Saved template bot profiles.                                                                                              |
| `gui/`              | GUI layout files.                                                                                                         |

## Safe editing workflow

1. Stop the server or make a backup.
2. Edit one file at a time.
3. Validate YAML indentation.
4. Start the server or run `/pbadmin reload`.
5. Test the changed feature immediately.
6. Keep a backup of your last working configuration.

{% hint style="info" %}
Existing configs normally do not need to be deleted after updates. Missing values are designed to use defaults where supported. Delete old configs only if support asks you to regenerate them or you intentionally want a clean reset.
{% endhint %}

## `config.yml` sections

| Section                  | Description                                                                                               |
| ------------------------ | --------------------------------------------------------------------------------------------------------- |
| `default`                | Bot health, collision, invulnerability, multiple bots, name prefix, owner-death despawn, disabled worlds. |
| `default-behaviour`      | Defaults for look-at-owner, follow, random walk, shield display/use, and PvP enabled.                     |
| `cpvp.defaults`          | Default CPvP settings used when creating new CPvP bots.                                                   |
| `cpvp.difficulty-levels` | EASY/MEDIUM/HARD/PRO timing, aggression, reaction, miss, and pearl restraint profiles.                    |
| `cpvp.performance`       | Adaptive throttling values for larger bot counts.                                                         |
| `ai`                     | AI tick interval and random-walk radius.                                                                  |
| `pvp`                    | Normal PvP cooldowns, crits, aggression, reach, chase speed, knockback, strafe, and approach strafe.      |
| `shield`                 | Shield stun duration, block angle, and block delay.                                                       |
| `commands`               | Admin and spawn permission node names.                                                                    |
| `gui`                    | GUI titles and sound names.                                                                               |
| `debug`                  | Console debug toggles. Keep disabled in production unless troubleshooting.                                |
| `license`                | License code storage. Do not share publicly.                                                              |

## Important CPvP defaults

```yaml
cpvp:
  defaults:
    skill-level: MEDIUM
    aggression-weight: 1.3
    use-pearls: true
    use-mace: false
    use-golden-apples: false
    place-obsidian: true
    break-blocks: false
    strafing-enabled: true
    anchoring-mode: false
    heal-threshold: 0.4
    low-hp-crystal-lethal-reserve: 0.05
    pearl-cooldown-ms: 1800
    fov-degrees: 120.0
```

### CPvP skill levels

| Level    | General behavior profile                                     |
| -------- | ------------------------------------------------------------ |
| `EASY`   | Slower timing, more hesitation, more human imperfection.     |
| `MEDIUM` | Balanced timing and human-like pressure.                     |
| `HARD`   | Fast actions with rare hesitation.                           |
| `PRO`    | Very fast timing with no configured miss/hesitation profile. |

### CPvP performance settings

The `cpvp.performance` section throttles non-urgent expensive scans as bot count rises. Active crystal/anchor actions are intended to stay responsive while background search work is reduced.

Use conservative changes here. Raising scan frequency too aggressively can hurt TPS on large servers.

## Production debug policy

Keep these disabled unless support asks for logs:

```yaml
debug:
  verbose-ai: false
  verbose-pvp: false
```

Debug logs can become noisy and may expose coordinates, player names, or arena details.

> **Media placeholder:** Add a screenshot of a clean `config.yml` editor view with license code hidden.


---

# 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/server-owner-guide/configuration.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.
