# crystal pvp

Crystal PvP bots are advanced bots designed for end crystal practice. They are configured through `cpvp` settings, the CPvP GUI, and CPvP template settings.

{% hint style="warning" %}
CPvP behavior depends heavily on arena geometry, server performance, difficulty settings, and enabled features. Test in your real arena before releasing it to public players.
{% endhint %}

## Spawn a CPvP bot

```
/spawnbot crystal
```

or use the spawn GUI:

```
/spawnbot
/pb spawn
```

## Main CPvP features

| Feature            | Config key                      | Description                                                                           |
| ------------------ | ------------------------------- | ------------------------------------------------------------------------------------- |
| Skill level        | `skill-level`                   | Selects EASY, MEDIUM, HARD, PRO, or a custom configured preset.                       |
| Aggression weight  | `aggression-weight`             | Higher values make the bot prefer stronger pressure.                                  |
| Ender pearls       | `use-pearls`                    | Allows pearl mobility and tactical repositioning.                                     |
| Mace               | `use-mace`                      | Allows mace behavior when available.                                                  |
| Golden apples      | `use-golden-apples`             | Allows healing with golden apples.                                                    |
| Obsidian placement | `place-obsidian`                | Allows placing obsidian as crystal bases.                                             |
| Block breaking     | `break-blocks`                  | Allows direct block breaking only when blocks stop CPvP pressure or approach.         |
| Strafing           | `strafing-enabled`              | Allows CPvP movement strafing.                                                        |
| Anchoring mode     | `anchoring-mode`                | Allows respawn anchors when close, cramped, or defensive fights favor them.           |
| Heal threshold     | `heal-threshold`                | Health ratio for starting healing; `0.4` = 40%.                                       |
| Low HP reserve     | `low-hp-crystal-lethal-reserve` | Minimum HP reserve for low-health crystal decisions.                                  |
| Pearl cooldown     | `pearl-cooldown-ms`             | Minimum delay between pearls.                                                         |
| FOV                | `fov-degrees`                   | Horizontal combat awareness angle. Lower is more human-like; `360` is full awareness. |

## Difficulty presets

| Level    | Place delay | Break delay | Realism profile                           |
| -------- | ----------: | ----------: | ----------------------------------------- |
| `EASY`   |   220-320ms |   130-190ms | High hesitation and miss windows.         |
| `MEDIUM` |   120-190ms |    80-135ms | Balanced human-like timing.               |
| `HARD`   |     15-35ms |     13-45ms | Fast, rare hesitation.                    |
| `PRO`    |      3-14ms |      2-18ms | No configured hesitation or miss windows. |

Custom difficulty levels can be added under `cpvp.difficulty-levels` if they use the same keys.

## CPvP GUI controls

The CPvP settings GUI exposes:

* Crystal PvP on/off
* skill level
* block breaking
* pearls
* pearl cooldown
* mace combat
* golden apples
* heal threshold
* strafing
* obsidian placing
* anchoring mode
* reset settings
* inventory button
* despawn button

## Template CPvP settings

Each CPvP template can override its own CPvP profile in `bot_templates.yml`. This lets you make different bots for casual, medium, hard, and pro arenas without changing global defaults.

Example use cases:

| Template            | Suggested CPvP profile                                 |
| ------------------- | ------------------------------------------------------ |
| `arena_cpvp_easy`   | EASY, pearls on, anchors off, slower timing.           |
| `arena_cpvp_ranked` | HARD, pearls on, anchors optional, block breaking off. |
| `arena_cpvp_pro`    | PRO, pearls on, gapples on, high aggression.           |
| `anchor_training`   | HARD/PRO, anchoring mode on, close arena geometry.     |

## Performance guidance

For many CPvP bots, keep adaptive performance enabled:

```yaml
cpvp:
  performance:
    adaptive-enabled: true
```

The performance system is intended to reduce expensive non-urgent scan frequency at higher bot counts while keeping urgent combat actions responsive.

## Arena design recommendations

* Keep CPvP arenas clean and symmetrical for predictable testing.
* Avoid excessive moving redstone, water/lava clutter, or unstable block updates near bots.
* Test FOV and difficulty per arena.
* Use templates for fixed CPvP profiles instead of changing global config repeatedly.

> **Media placeholder:** Add a short GIF of a CPvP bot using crystals in a test arena. **Media placeholder:** Add a screenshot of the CPvP settings GUI with skill level, pearl cooldown, and anchoring mode visible.


---

# 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/crystal-pvp.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.
