# overview

PracticeBot is a Paper server plugin built around Citizens NPCs. It lets players spawn personal training bots and lets staff create reusable template bots for arenas, events, queues, and controlled PvP practice.

## Runtime model

PracticeBot has three practical layers:

| Layer         | Used by    | Description                                                                                                                          |
| ------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| Player bots   | Players    | Spawned with `/spawnbot` or `/pb spawn`. These are personal practice bots tied to the player.                                        |
| Template bots | Staff      | Spawned from saved templates using `/pbadmin template spawn ...`. These are useful for arenas, ladders, events, and fixed scenarios. |
| Public API    | Developers | Bukkit Services API for addons that need to spawn bots, read state, attach metadata, or react to events.                             |

## Core systems

* **Bot Manager:** Creates, tracks, despawns, and respawns PracticeBot NPCs.
* **Normal PvP:** Sword/axe combat options such as strafing, W-tap, S-tap, critical hits, shield breaker, reach mode, aggression, and retreat.
* **Crystal PvP:** End crystal combat with configurable difficulty, action timing, obsidian placement, pearls, gapples, mace, strafing, block breaking, FOV, and optional anchor mode.
* **Template System:** Stores reusable bot profiles in `bot_templates.yml`.
* **Template Editor:** In-game editor for staff to build templates without manually editing YAML.
* **GUI System:** YAML-driven menus for player settings, CPvP settings, inventory, admin inventory, and template editing.
* **PlaceholderAPI:** Optional placeholders for dashboards, scoreboards, menus, and holograms.
* **Public API:** Stable integration layer for addon developers.

## What PracticeBot is not

PracticeBot is not a generic Citizens replacement and does not expose its private AI/combat internals as public extension points. Server owners configure behavior through supported config files, GUI files, templates, commands, and the public API.

{% hint style="warning" %}
Do not publish your `license.code`, private support conversations, stack traces containing private paths, or any private source/build artifacts in public documentation or support screenshots.
{% endhint %}

## Suggested server use cases

* public practice arenas
* Crystal PvP practice servers
* training hubs
* duel lobby demonstrations
* staff-created PvP challenges
* bot-vs-bot testing arenas
* addon-driven minigames that need controlled PvP NPCs

> **Media placeholder:** Add one polished hero screenshot here showing a PracticeBot arena with one Normal bot and one Crystal PvP bot.


---

# 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/overview.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.
