> For the complete documentation index, see [llms.txt](https://kast1ent.gitbook.io/kast1ent-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kast1ent.gitbook.io/kast1ent-docs/kastfight/pleiskholdery.md).

# Плейсхолдеры

KastFight поддерживает PlaceholderAPI. Через плейсхолдеры можно выводить очередь, активные бои, FFA-онлайн, Elo, ранги, топы, статистику игрока, время боя, ping и другое.

Identifier:

```
kastfight
```

Полный формат:

```
%kastfight_<placeholder>%
```

### Требования

Для работы плейсхолдеров нужен PlaceholderAPI.

Проверьте:

1. PlaceholderAPI установлен.
2. KastFight загрузился без ошибок.
3. Плейсхолдер написан полностью.
4. Id кита указан правильно.

Пример правильного плейсхолдера:

```
%kastfight_elo_boxing%
```

Пример неправильного:

```
%elo_boxing%
```

### Очереди

Количество игроков в обычной очереди по киту:

```
%kastfight_queue_default_<kit>%
```

Пример:

```
%kastfight_queue_default_boxing%
```

Количество игроков в рейтинговой очереди:

```
%kastfight_queue_rating_<kit>%
```

Пример:

```
%kastfight_queue_rating_boxing%
```

Количество игроков в premium-очереди:

```
%kastfight_queue_premium_default_<kit>%
%kastfight_queue_premium_rating_<kit>%
```

Пример:

```
%kastfight_queue_premium_default_boxing%
%kastfight_queue_premium_rating_boxing%
```

Общее количество игроков в очередях:

```
%kastfight_queue_total%
```

### Активные бои

Количество игроков в обычных боях по киту:

```
%kastfight_fight_default_<kit>%
```

Пример:

```
%kastfight_fight_default_boxing%
```

Количество игроков в рейтинговых боях:

```
%kastfight_fight_rating_<kit>%
```

Пример:

```
%kastfight_fight_rating_boxing%
```

Premium-бои:

```
%kastfight_fight_premium_default_<kit>%
%kastfight_fight_premium_rating_<kit>%
```

Общее количество активных матчей:

```
%kastfight_fights_total%
```

Количество игроков в активных матчах:

```
%kastfight_infight_total%
```

### FFA

Количество игроков на FFA по киту:

```
%kastfight_ffa_players_<kit>%
```

Пример:

```
%kastfight_ffa_players_boxing%
```

Оставшееся время combat-tag:

```
%kastfight_ffa_combat_time%
```

### Рейтинг игрока

Elo игрока по киту:

```
%kastfight_elo_<kit>%
```

Пример:

```
%kastfight_elo_boxing%
```

Суммарный Elo игрока:

```
%kastfight_elo_total%
```

Место игрока в общем рейтинге:

```
%kastfight_rank_total%
```

Название общего ранга:

```
%kastfight_rank_title_total%
```

Переключаемый текст Elo/ранга:

```
%kastfight_elo_or_rank_total%
```

Место игрока по конкретному киту:

```
%kastfight_rank_<kit>%
```

Пример:

```
%kastfight_rank_boxing%
```

### Разблокировка рейтинга

Сколько матчей осталось до рейтинга:

```
%kastfight_rating_unlock_matches_left%
```

Сколько побед осталось:

```
%kastfight_rating_unlock_wins_left%
```

Сколько матчей сыграно:

```
%kastfight_rating_unlock_matches_played%
```

Сколько побед сделано:

```
%kastfight_rating_unlock_wins_done%
```

Открыт ли рейтинг:

```
%kastfight_rating_unlocked%
```

### Топы по киту

Имя игрока в топе по киту:

```
%kastfight_top_<kit>_<place>_name%
```

Elo игрока в топе по киту:

```
%kastfight_top_<kit>_<place>_elo%
```

Примеры:

```
%kastfight_top_boxing_1_name%
%kastfight_top_boxing_1_elo%
```

```
%kastfight_top_classic_2_name%
%kastfight_top_classic_2_elo%
```

### Общий топ

Имя игрока в общем топе:

```
%kastfight_top_total_<place>_name%
```

Elo игрока в общем топе:

```
%kastfight_top_total_<place>_elo%
```

Примеры:

```
%kastfight_top_total_1_name%
%kastfight_top_total_1_elo%
```

```
%kastfight_top_total_2_name%
%kastfight_top_total_2_elo%
```

### Готовый красивый топ 10

Можно использовать в меню, hologram или scoreboard.

```yaml
lines:
  - '&#FFD700① &f%kastfight_top_total_1_name% &7— &e%kastfight_top_total_1_elo%'
  - '&#C0C0C0② &f%kastfight_top_total_2_name% &7— &e%kastfight_top_total_2_elo%'
  - '&#CD7F32③ &f%kastfight_top_total_3_name% &7— &e%kastfight_top_total_3_elo%'
  - '&7④ &f%kastfight_top_total_4_name% &7— &e%kastfight_top_total_4_elo%'
  - '&7⑤ &f%kastfight_top_total_5_name% &7— &e%kastfight_top_total_5_elo%'
  - '&7⑥ &f%kastfight_top_total_6_name% &7— &e%kastfight_top_total_6_elo%'
  - '&7⑦ &f%kastfight_top_total_7_name% &7— &e%kastfight_top_total_7_elo%'
  - '&7⑧ &f%kastfight_top_total_8_name% &7— &e%kastfight_top_total_8_elo%'
  - '&7⑨ &f%kastfight_top_total_9_name% &7— &e%kastfight_top_total_9_elo%'
  - '&7⑩ &f%kastfight_top_total_10_name% &7— &e%kastfight_top_total_10_elo%'
```

### Топ 10 для Boxing

```yaml
lines:
  - '&#FFD700① &f%kastfight_top_boxing_1_name% &7— &e%kastfight_top_boxing_1_elo%'
  - '&#C0C0C0② &f%kastfight_top_boxing_2_name% &7— &e%kastfight_top_boxing_2_elo%'
  - '&#CD7F32③ &f%kastfight_top_boxing_3_name% &7— &e%kastfight_top_boxing_3_elo%'
  - '&7④ &f%kastfight_top_boxing_4_name% &7— &e%kastfight_top_boxing_4_elo%'
  - '&7⑤ &f%kastfight_top_boxing_5_name% &7— &e%kastfight_top_boxing_5_elo%'
  - '&7⑥ &f%kastfight_top_boxing_6_name% &7— &e%kastfight_top_boxing_6_elo%'
  - '&7⑦ &f%kastfight_top_boxing_7_name% &7— &e%kastfight_top_boxing_7_elo%'
  - '&7⑧ &f%kastfight_top_boxing_8_name% &7— &e%kastfight_top_boxing_8_elo%'
  - '&7⑨ &f%kastfight_top_boxing_9_name% &7— &e%kastfight_top_boxing_9_elo%'
  - '&7⑩ &f%kastfight_top_boxing_10_name% &7— &e%kastfight_top_boxing_10_elo%'
```

### Топ 10 для меню

```yaml
name: "&#FFA766★ &fТоп рейтинга"
lore:
  - ''
  - '&#FFD700① &f%kastfight_top_total_1_name% &7— &e%kastfight_top_total_1_elo%'
  - '&#C0C0C0② &f%kastfight_top_total_2_name% &7— &e%kastfight_top_total_2_elo%'
  - '&#CD7F32③ &f%kastfight_top_total_3_name% &7— &e%kastfight_top_total_3_elo%'
  - '&7④ &f%kastfight_top_total_4_name% &7— &e%kastfight_top_total_4_elo%'
  - '&7⑤ &f%kastfight_top_total_5_name% &7— &e%kastfight_top_total_5_elo%'
  - '&7⑥ &f%kastfight_top_total_6_name% &7— &e%kastfight_top_total_6_elo%'
  - '&7⑦ &f%kastfight_top_total_7_name% &7— &e%kastfight_top_total_7_elo%'
  - '&7⑧ &f%kastfight_top_total_8_name% &7— &e%kastfight_top_total_8_elo%'
  - '&7⑨ &f%kastfight_top_total_9_name% &7— &e%kastfight_top_total_9_elo%'
  - '&7⑩ &f%kastfight_top_total_10_name% &7— &e%kastfight_top_total_10_elo%'
  - ''
```

### Статистика игрока

Убийства:

```
%kastfight_kills%
```

Смерти:

```
%kastfight_deaths%
```

KDR:

```
%kastfight_kdr%
```

Часы игры:

```
%kastfight_play_hours%
```

Ping игрока:

```
%kastfight_player_ping%
```

### Плейсхолдеры боя

Сколько секунд длится дуэль:

```
%kastfight_duel_seconds%
```

Сколько зрителей у дуэли:

```
%kastfight_duel_viewers%
```

Ping соперника:

```
%kastfight_opponent_ping%
```

Точное здоровье соперника:

```
%kastfight_opponent_hp_precise%
```

Точное здоровье активного FFA-соперника:

```
%kastfight_active_opponent_hp_precise%
```

Состояние игрока:

```
%kastfight_player_state%
```

Текущий кит игрока:

```
%kastfight_player_kit%
```

### Возможные player\_state

Плейсхолдер:

```
%kastfight_player_state%
```

Может возвращать:

```
QUEUE
NONE
```

А во время матча — состояние матча из внутренней логики.

### Пример hub-scoreboard

```yaml
lines:
  - ""
  - "&fНик: &e%player%"
  - "&fУбийства: &a%kastfight_kills%"
  - "&fСмерти: &c%kastfight_deaths%"
  - "&fKDR: &e%kastfight_kdr%"
  - ""
  - "&fРейтинг: &6%kastfight_elo_total%"
  - "&fРанг: %kastfight_rank_title_total%"
  - ""
```

### Пример duel-scoreboard

```yaml
lines:
  - ""
  - "&f%player% &7vs &f%opponent%"
  - ""
  - "&fВремя: &e%kastfight_duel_seconds% сек"
  - "&fЗдоровье врага: &c%kastfight_opponent_hp_precise% ❤"
  - "&fPing: &7%kastfight_player_ping% &8/ &7%kastfight_opponent_ping%"
  - "&fЗрители: &e%kastfight_duel_viewers%"
  - ""
```

### Пример FFA-scoreboard

```yaml
lines:
  - ""
  - "&fНик: &e%player%"
  - "&fУ/С: &a%kastfight_kills% &7/ &c%kastfight_deaths%"
  - "&fKDR: &e%kastfight_kdr%"
  - ""
  - "&fCombat: &c%kastfight_ffa_combat_time% сек"
  - "&fPing: &7%kastfight_player_ping%"
  - ""
```

### Пример lore для обычного кита

```yaml
lore:
  - ''
  - '&f● В очереди: &e%kastfight_queue_default_%kit_id%%'
  - '&f● В бою: &e%kastfight_fight_default_%kit_id%%'
  - ''
  - '&#FFA766ЛКМ &7» &fВойти в очередь'
  - '&#FFA766ПКМ &7» &fРедактор набора'
  - ''
```

### Пример lore для рейтингового кита

```yaml
lore:
  - ''
  - '&f● Твой рейтинг: &e%kastfight_elo_%kit_id%%'
  - '&f● В очереди: &e%kastfight_queue_rating_%kit_id%%'
  - '&f● В бою: &e%kastfight_fight_rating_%kit_id%%'
  - ''
  - '&#FFA766ЛКМ &7» &fВойти в очередь'
  - '&#FFA766ПКМ &7» &fРедактор набора'
  - ''
```

### Пример lore для FFA-кита

```yaml
lore:
  - ''
  - '&f● На арене: &e%kastfight_ffa_players_%kit_id%%'
  - ''
  - '&#FFA766ЛКМ &7» &fВойти на арену'
  - '&#FFA766ПКМ &7» &fРедактор набора'
  - ''
```

### Список символов для топов

Можно использовать эти символы мест:

```
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩
```

Красивый вариант:

```
① — первое место
② — второе место
③ — третье место
④ — четвёртое место
⑤ — пятое место
⑥ — шестое место
⑦ — седьмое место
⑧ — восьмое место
⑨ — девятое место
⑩ — десятое место
```

### Частые ошибки

#### Плейсхолдер не заменяется

Проверьте:

* установлен ли PlaceholderAPI;
* правильно ли написан identifier `kastfight`;
* есть ли нужный kit id;
* нет ли лишних пробелов;
* поддерживает ли место, куда вы вставляете текст, PlaceholderAPI.

#### В lore отображается `%kit_id%`

`%kit_id%` заменяется только в контексте кита. Если вставить его в обычный scoreboard, он может не замениться.

#### В lore отображается `%kastfight_queue_default_%kit_id%%`

Такой формат работает в шаблоне кита, где сначала заменяется `%kit_id%`, а потом PlaceholderAPI.

Если вы пишете вручную без шаблона, используйте конкретный id:

```
%kastfight_queue_default_boxing%
```

#### Топ показывает "-"

Это нормально, если:

* на сервере ещё нет рейтинговых боёв;
* указанное место пустое;
* kit id написан неправильно;
* игроки ещё не получили Elo.

#### Elo показывает стартовое значение

Проверьте:

* игрок играл именно рейтинговую дуэль;
* кит был режима `rating`;
* матч завершился победой/поражением;
* нет ошибок сохранения статистики.

### Чеклист плейсхолдеров

Перед публикацией меню или scoreboard:

* PlaceholderAPI установлен.
* KastFight загрузился после PlaceholderAPI.
* Все kit id написаны правильно.
* Топы проверены после реальных рейтинговых боёв.
* В GUI нет слишком длинных строк.
* В scoreboard строки не превышают лимиты вашей версии сервера.
* Для шаблонов китов используется `%kit_id%`.
* Для обычного текста используется конкретный id кита.

Плейсхолдеры делают меню живым. Вместо статичного текста игрок видит реальную очередь, активные бои, свой рейтинг, прогресс до ranked и топ лучших игроков.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://kast1ent.gitbook.io/kast1ent-docs/kastfight/pleiskholdery.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
