# Pterohost Docs - полный текст
Полный машиночитаемый дамп всех статей. Источник: https://docs.pterohost.com
Сгенерировано: 2026-08-27T22:45:26.821Z
---
# Общее
## Выбор лучшего ядра
URL: https://docs.pterohost.com/ru/minecraft-cores
Обновлено: 2022-05-10
Под ваши нужды
---
> Статья для версий Minecraft 1.14-1.16 {.is-warning}
Зал "славы"
Список ядер, которые категорически нельзя использовать для minecraft серверов. Я буду оценивать качество ядра по 5 критериям, которые вы увидите, прочитав данный репозиторий.
vanilla.jar
Это ядро не поддерживает плагины и предназначено только для ваниллы, это уже даёт о себе знать. Помимо этого, vanilla потребляет абсолютно всю оперативную память, сколько бы у вас не было. Например, если 10 игроков зайдут на сервер и сгенерируют около ~10000 чанков, оперативная память забьётся на 10 ГБ. Что уже говорить про процессор? Потребление катастрофически высокое. Говорить о нём больше не стоит, ибо оно мало того что не поддерживает плагины, так ещё и использует все ресурсы без прчиины.
Поддержка
Стабильность и производительность
Свежесть
Патчи
Популярность
craftbukkit.jar
Плагины ядро поддерживает, это хорошо, но к сожалению, как и в vanilla, в новых версиях у вас будут большие проблемы с производительностью. Может быть, это ядро ещё можно было поставить до 1.8.8, но не выше. Команда craftbukkit практически распалась и разработка ядра под новые версии лежит на плечах у mojang. Как мы знаем, mojang не хочет, чтобы всем было комфортно и выпускает говно-версии minecraft'а дальше. Данное ядро категорически не советуем к использованию.
Поддержка
Стабильность и производительность
Свежесть
Патчи
Популярность
spigot.jar
Как же был хорош ты, spigot, но твой творец md_5 уничтожил тебя. Когда-то spigot был очень популярным ядром и использовался практически на всех серверах. Правда, когда начинают выходить версии minecraft'а выше 1.12, ты начинаешь задумываться, почему же это ядро скатилось? Да всё потому, что в spigot теперь не делают нормальных патчей, а производительность данного ядра такая же ужасна, как и в craftbukkit. В общем, с каждым обновлением и добавлением новой версии игры, spigot начинает превращаться в bukkit 2.0. Но есть и плюсы. Если бы этого ядра не существовало, вы бы не скачали более 90%+ плагинов, которые находятся на SpigotMc. На данном ядре делают практически все плагины и плагинов на SpigotMc становиться всё больше и больше. Также, если вы всё-таки хотите сидеть на spigot и хорошо знаете Java, вперёд и с песней - делайте свои кастомные патчи.
Поддержка
Патчи
Стабильность и производительность
Свежесть
Популярность
paper.jar
Самое популярное ядро в мире, правда, всё идёт к тому, что оно скоро умрёт. Многие сервера активно переходят на Tuinity и Purpur. 1.12 рано или поздно устареет полностью, и даже с этой версии никто играть не будет, а новые блоки всем хочется. Я предполагаю, что большинство серверов начнут делать поддержку с 1.14.4 (на Purpur) до самой новой версии. У Paper есть некоторые проблемы со стабильностью и оптимизацией, к сожалению. Его я использовать не рекомендую.
Поддержка
Патчи
Популярность
Стабильность и производительность
Свежесть
yatopia.jar
Это новое ядро, разработанное 16-летним неквалифицированным разработчиком, которое содержит много опасных патчей, а все тесты, которые предоставляла команда yatopia ничто иное как чушь. Проект был закрыт 19 июня 2021 года и разрабатываться больше не будет ( скорее всего ). Ядро хоть и соддержит опасные патчи, но назвать это нормальными патчами невозможно. Популярность yatopia в какие-то моменты была высокая, но большую часть времени она оставалась незамеченным.
---
## База знаний
URL: https://docs.pterohost.com/ru/home
Обновлено: 2022-05-10
База знаний
---
# Начало
Данная документация постоянно дополняется. Здесь вы найдете самые популярные вопросы
- Не нашли ответа на вопрос? - Напишите нам!
# Как стать автором статьи?
Вам нужно написать нам в поддержку, любым удобным способом.
- Ваше авторство будет указано
- За написание крупных и полезных статьей пологается скидка
---
## Как загрузить свою карту
URL: https://docs.pterohost.com/ru/upload-map-minecraft
Обновлено: 2026-08-28
Учтите что версии сервера и клиента должны совпадать, дабы избежать проблем
---
## Шаг первый
Найдите карту, которую вы хотите использовать, убедитесь, что это правильная версия для вашего сервера, и остановите сервер перед ее загрузкой.
## Шаг второй
Распакуйте архив с картой и посмотрите, что лежит внутри. Папка мира узнаётся по файлу `level.dat` и каталогу `region` рядом с ним:
```text
level.dat
level.dat_old
session.lock
data/
datapacks/
entities/
playerdata/
poi/
region/
```
Если архив распаковался именно так, переходите к шагу четвёртому. Если нет, переходите к следующему шагу.
> На старых версиях (до 1.13) каталогов `entities` и `poi` не будет, а `region` и `level.dat` на месте. Ориентируйтесь именно на них. {.is-info}
## Шаг третий
Если в архиве оказалась одна папка, откройте её: файлы мира из списка выше лежат внутри неё.
## Шаг четвертый
Создайте новую папку и назовите ее так, как вы хотите, чтобы назывался ваш мир, не оставляйте пробелов в названии.
Например, если я загружаю карту для своего спавна, я могу назвать ее spawnworld
## Шаг пятый
Перетащите в новую папку все файлы из списка выше. Загружать на сервер нужно именно её, а первый распакованный архив можно удалить.
## Шаг шестой
Войдите в файлы вашего сервера с помощью FileZilla/WinSCP и просто перетащите новую папку со стороны вашего ПК в основные файлы вашего сервера.
## Шаг седьмой
Скажите серверу, какой мир загружать. В файле `server.properties` укажите имя папки:
```properties
level-name=spawnworld
```
Без этой строки сервер запустится на старом мире, а загруженная папка останется лежать рядом. После правки запустите сервер и проверьте, что в консоли нет ошибок чтения мира.
> Версии мира и сервера должны совпадать. Мир, сохранённый на новой версии, на старом сервере не запустится, а обратный переход может повредить чанки - снимите бэкап до первого запуска. {.is-warning}
---
## Переустановка сервера
URL: https://docs.pterohost.com/ru/reinstall-server-gmod
Обновлено: 2022-10-22
Есть несколько вариантов переустановки сервера
---
## Переустановка обычная
- Перейдите в раздел "Настройки" --> нажмите кнопку переустановить
## Переустановка полная
- Перейдите в файловый менеджер на сайте --> удалите все файлы сервера
- Перейдите в раздел "Настройки" --> нажмите кнопку переустановить
---
## Уровень поддержки
URL: https://docs.pterohost.com/ru/support-level
Обновлено: 2023-02-12
Фактор предоставления помощи
---
## Уровени поддержки
###### От минимальных до максимальных уровней оказания помощи
Игровой хостинг и общее
* Базовая
* Ассистент по серверу
Виртуальные/выделенные сервера
* Отсутствует
* Базовая
* Расширенная
* Полный пакет администрирования
Вебхостинг
* Отсутствует
Коммуникации
* Отсутствует
## Что входит в пакет?
Базовая:
- Помощь с счётами
- Помощь с биллингом
- Помощь при выдаче сервера (не более)
Ассистент по серверу:
- Все что входит в базовый пакет
- Загрузка карт
- Загрузка плагинов (Minecraft)
- Помощь в настройке конфига сервера
- Оптимизация сервера 1.16.5 - 1.19.x (Minecraft)
Платные дополненения которые повышают уровень поддержки необязательны, вы можете их приборести если вам требуется помощь персонала внутри сервера.
Так-же, оказание помощи доступно только в рабочие дни.
---
## YourControl API
URL: https://docs.pterohost.com/ru/yourcontrol-api
Обновлено: 2025-12-15
Детальная документация API
---
# YourControl API
> Полная документация по Developer API для интеграции с серверами игровой панели (Pterodactyl + кастомные YourControl, например query)
## Содержание
1. [Введение](#введение)
2. [Аутентификация](#аутентификация)
3. [Query API](#query-api)
4. [Webhook Tokens API](#webhook-tokens-api)
5. [Public Webhook API](#public-webhook-api)
6. [Discord Webhooks API](#discord-webhooks-api)
7. [Rate Limiting & Caching](#rate-limiting--caching)
8. [Примеры кода](#примеры-кода)
9. [Коды ответов](#коды-ответов)
---
## Введение
Developer API предоставляет возможность получать информацию о состоянии игровых серверов, управлять webhook токенами и настраивать Discord уведомления.
**Base URL:** `https://gcp.pterohost.com/api`
**Доступ к API:**
- Перейдите в [Панель управления → Аккаунт → Разработчикам](https://gcp.pterohost.com/account/api)
- Создайте API ключ во вкладке "API Ключи"
- Используйте готовые примеры кода во вкладке "Query API"
---
## Аутентификация
### API Key (Authorization)
Для авторизованных запросов используйте ваш API ключ в заголовке:
```http
Authorization: Bearer YOUR_API_KEY
Accept: application/json
```
**Получение API ключа:**
1. Зайдите в [/account/api](https://gcp.pterohost.com/account/api)
2. Вкладка "API Ключи"
3. Создайте новый ключ с описанием
### Webhook Token (Public Access)
Для публичного доступа без авторизации используйте Webhook Token:
```http
GET /api/public/server/{token}/query
```
**Получение Webhook Token:**
1. Зайдите в [/account/api](https://gcp.pterohost.com/account/api)
2. Вкладка "Query API"
3. Выберите сервер
4. Создайте Webhook Token
---
## Query API
### GET /api/client/servers/{server}/developer/query
Получить текущий онлайн игроков и информацию о сервере.
**Параметры пути:**
- `server` (string, required) - UUID сервера
**Заголовки:**
```http
Authorization: Bearer YOUR_API_KEY
Accept: application/json
```
**Ответ:**
```json
{
"success": true,
"data": {
"info": {
"hostname": "My Minecraft Server",
"map": "world",
"players": 15,
"maxplayers": 100,
"version": "1.20.1",
"dedicated": true,
"password": false
},
"players": [
{
"id": "uuid-here",
"name": "Player1"
}
],
"online_players": 15,
"max_players": 100
}
}
```
**Кэширование:** 30 секунд
**Rate Limit:** 300 запросов в час
---
### GET /api/client/servers/{server}/developer/query/history
Получить историю онлайна за период.
**Параметры пути:**
- `server` (string, required) - UUID сервера
**Query параметры:**
- `period` (string, optional) - Период: `day`, `week`, `month` (по умолчанию: `week`)
**Заголовки:**
```http
Authorization: Bearer YOUR_API_KEY
Accept: application/json
```
**Пример запроса:**
```http
GET /api/client/servers/{server}/developer/query/history?period=week
```
**Ответ:**
```json
{
"data": [
{
"recorded_at": "2025-12-16T01:30:00+03:00",
"online_players": 45,
"max_players": 100,
"map": "de_dust2",
"hostname": "My Server",
"extra_data": null
},
{
"recorded_at": "2025-12-16T01:25:00+03:00",
"online_players": 42,
"max_players": 100,
"map": "de_dust2",
"hostname": "My Server",
"extra_data": null
}
]
}
```
**Частота записи:** каждые 5 минут
**Хранение:** 30 дней
**Rate Limit:** 300 запросов в час
---
### GET /api/client/servers/{server}/developer/query/players
Получить детальную информацию об игроках онлайн.
**Параметры пути:**
- `server` (string, required) - UUID сервера
**Заголовки:**
```http
Authorization: Bearer YOUR_API_KEY
Accept: application/json
```
**Ответ:**
```json
{
"success": true,
"data": {
"info": {
"hostname": "My Server",
"map": "de_dust2",
"players": 10,
"maxplayers": 32
},
"players": [
{
"id": 0,
"name": "Player1",
"score": 150,
"time": 3600,
"ping": 25
}
],
"online_players": 10,
"max_players": 32
}
}
```
**Кэширование:** 30 секунд
**Rate Limit:** 300 запросов в час
---
### GET /api/client/servers/{server}/developer/stats
Получить метрики сервера (CPU, RAM, Disk, Network).
**Параметры пути:**
- `server` (string, required) - UUID сервера
**Заголовки:**
```http
Authorization: Bearer YOUR_API_KEY
Accept: application/json
```
**Ответ:**
```json
{
"success": true,
"data": {
"cpu": 45.5,
"memory": {
"current": 2147483648,
"limit": 4294967296
},
"disk": {
"current": 5368709120,
"limit": 10737418240
},
"network": {
"rx_bytes": 1073741824,
"tx_bytes": 536870912
},
"uptime": 86400,
"state": "running"
}
}
```
**Описание полей:**
- `cpu` - Использование CPU в процентах
- `memory.current` - Использованная RAM в байтах
- `memory.limit` - Лимит RAM в байтах
- `disk.current` - Использованное место на диске в байтах
- `disk.limit` - Лимит диска в байтах
- `network.rx_bytes` - Получено байт
- `network.tx_bytes` - Отправлено байт
- `uptime` - Время работы в секундах
- `state` - Состояние: `running`, `offline`, `starting`, `stopping`
**Кэширование:** 30 секунд
**Rate Limit:** 300 запросов в час
---
## Webhook Tokens API
### GET /api/client/servers/{server}/developer/tokens
Получить все webhook токены для сервера.
**Параметры пути:**
- `server` (string, required) - UUID сервера
**Заголовки:**
```http
Authorization: Bearer YOUR_API_KEY
Accept: application/json
```
**Ответ:**
```json
{
"data": [
{
"id": 1,
"token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"webhook_url": "https://gcp.pterohost.com/api/public/server/a1b2c3d4-e5f6-7890-abcd-ef1234567890/query",
"created_at": "2025-12-16T01:00:00+03:00",
"updated_at": "2025-12-16T01:00:00+03:00"
}
]
}
```
---
### POST /api/client/servers/{server}/developer/tokens
Создать новый webhook токен.
**Параметры пути:**
- `server` (string, required) - UUID сервера
**Заголовки:**
```http
Authorization: Bearer YOUR_API_KEY
Accept: application/json
```
**Тело запроса:** Не требуется
**Ответ:**
```json
{
"data": {
"id": 2,
"token": "new-uuid-token-here",
"webhook_url": "https://gcp.pterohost.com/api/public/server/new-uuid-token-here/query",
"created_at": "2025-12-16T02:00:00+03:00",
"updated_at": "2025-12-16T02:00:00+03:00"
}
}
```
---
### POST /api/client/servers/{server}/developer/tokens/{tokenId}/regenerate
Регенерировать существующий webhook токен.
**Параметры пути:**
- `server` (string, required) - UUID сервера
- `tokenId` (integer, required) - ID токена
**Заголовки:**
```http
Authorization: Bearer YOUR_API_KEY
Accept: application/json
```
**Тело запроса:** Не требуется
**Ответ:**
```json
{
"data": {
"id": 2,
"token": "regenerated-uuid-token",
"webhook_url": "https://gcp.pterohost.com/api/public/server/regenerated-uuid-token/query",
"created_at": "2025-12-16T02:00:00+03:00",
"updated_at": "2025-12-16T02:30:00+03:00"
}
}
```
**⚠️ Предупреждение:** Старый токен станет невалидным после регенерации.
---
### DELETE /api/client/servers/{server}/developer/tokens/
Удалить webhook токен.
**Параметры пути:**
- `server` (string, required) - UUID сервера
- `tokenId` (integer, required) - ID токена
**Заголовки:**
```http
Authorization: Bearer YOUR_API_KEY
Accept: application/json
```
**Ответ:**
```http
HTTP/1.1 204 No Content
```
---
## Public Webhook API
### GET /api/public/server-query/{serverUuid}/query
Получить данные query БЕЗ токена (ограничен по IP).
**Параметры пути:**
- `serverUuid` (string, required) - UUID сервера
**Заголовки:**
```http
Accept: application/json
```
**⚠️ Авторизация НЕ требуется**
**⚠️ Rate Limit:** 10 запросов в час на IP адрес
**Ответ:** Аналогично `/developer/query`
---
### GET /api/public/server/{token}/query
Получить данные query с webhook токеном (рекомендуется).
**Параметры пути:**
- `token` (string, required) - Webhook токен (UUID)
**Заголовки:**
```http
Accept: application/json
```
**⚠️ Авторизация НЕ требуется**
**✅ Rate Limit:** 150 запросов в час на токен (выше чем без токена)
**Ответ:**
```json
{
"success": true,
"data": {
"info": {
"hostname": "My Server",
"map": "world",
"players": 20,
"maxplayers": 100,
"version": "1.20.1"
},
"players": [...],
"online_players": 20,
"max_players": 100
}
}
```
**Кэширование:** 30 секунд
**Rate Limit:** 150 запросов в час на токен
---
### GET /api/public/server/{token}/query/history
Получить историю онлайна без авторизации.
**Параметры пути:**
- `token` (string, required) - Webhook токен (UUID)
**Query параметры:**
- `period` (string, optional) - `day`, `week`, `month`
**Заголовки:**
```http
Accept: application/json
```
**Пример запроса:**
```http
GET /api/public/server/a1b2c3d4-e5f6-7890-abcd-ef1234567890/query/history?period=week
```
**Ответ:**
```json
{
"success": true,
"data": [
{
"recorded_at": "2025-12-16T01:30:00+03:00",
"online_players": 45,
"max_players": 100,
"map": "de_dust2",
"hostname": "My Server",
"extra_data": null
}
]
}
```
**Rate Limit:** 150 запросов в час на токен
---
## Discord Webhooks API
### GET /api/client/servers/{server}/discord-webhooks
Получить все Discord webhooks для сервера.
**Параметры пути:**
- `server` (string, required) - UUID сервера
**Заголовки:**
```http
Authorization: Bearer YOUR_API_KEY
Accept: application/json
```
**Ответ:**
```json
{
"data": [
{
"id": 1,
"server_id": 123,
"webhook_url": "https://discord.com/api/webhooks/****/****",
"webhook_url_full": "https://discord.com/api/webhooks/123456789/abcdefg",
"name": "Главный канал",
"is_enabled": true,
"cooldown_seconds": 60,
"failed_attempts": 0,
"last_failed_at": null,
"created_at": "2025-12-16T01:00:00+03:00",
"updated_at": "2025-12-16T01:00:00+03:00"
}
]
}
```
---
### POST /api/client/servers/{server}/discord-webhooks
Создать новый Discord webhook.
**Параметры пути:**
- `server` (string, required) - UUID сервера
**Заголовки:**
```http
Authorization: Bearer YOUR_API_KEY
Accept: application/json
Content-Type: application/json
```
**Тело запроса:**
```json
{
"webhook_url": "https://discord.com/api/webhooks/123456789/abcdefg",
"name": "Уведомления сервера",
"is_enabled": true,
"cooldown_seconds": 60
}
```
**Поля:**
- `webhook_url` (string, required) - Discord webhook URL
- `name` (string, required) - Название webhook (макс. 100 символов)
- `is_enabled` (boolean, optional) - Включен ли webhook (по умолчанию: true)
- `cooldown_seconds` (integer, optional) - Минимальный интервал между отправками в секундах (0-3600, по умолчанию: 60)
**Ответ:** Объект созданного webhook
---
### PATCH /api/client/servers/{server}/discord-webhooks/
Обновить Discord webhook.
**Параметры пути:**
- `server` (string, required) - UUID сервера
- `webhookId` (integer, required) - ID webhook
**Заголовки:**
```http
Authorization: Bearer YOUR_API_KEY
Accept: application/json
Content-Type: application/json
```
**Тело запроса:**
```json
{
"webhook_url": "https://discord.com/api/webhooks/new-url",
"name": "Новое название",
"is_enabled": false,
"cooldown_seconds": 120
}
```
**Все поля опциональны**
**Ответ:** Объект обновленного webhook
---
### DELETE /api/client/servers/{server}/discord-webhooks/
Удалить Discord webhook.
**Параметры пути:**
- `server` (string, required) - UUID сервера
- `webhookId` (integer, required) - ID webhook
**Заголовки:**
```http
Authorization: Bearer YOUR_API_KEY
Accept: application/json
```
**Ответ:**
```http
HTTP/1.1 204 No Content
```
---
### POST /api/client/servers/{server}/discord-webhooks/{webhookId}/test
Отправить тестовое сообщение в Discord.
**Параметры пути:**
- `server` (string, required) - UUID сервера
- `webhookId` (integer, required) - ID webhook
**Заголовки:**
```http
Authorization: Bearer YOUR_API_KEY
Accept: application/json
```
**Ответ:**
```json
{
"success": true,
"data": {
"message": "Test message sent successfully"
}
}
```
---
### GET /api/client/servers/{server}/discord-webhooks/settings
Получить настройки уведомлений Discord.
**Параметры пути:**
- `server` (string, required) - UUID сервера
**Заголовки:**
```http
Authorization: Bearer YOUR_API_KEY
Accept: application/json
```
**Ответ:**
```json
{
"data": [
{
"id": 1,
"server_id": 123,
"notification_type": "server_status",
"is_enabled": true,
"config": {
"notify_start": true,
"notify_stop": true
},
"created_at": "2025-12-16T01:00:00+03:00",
"updated_at": "2025-12-16T01:00:00+03:00"
}
]
}
```
**Типы уведомлений:**
- `server_status` - Уведомления о старте/остановке сервера
- `online_report` - Периодические отчеты об онлайне
- `player_event` - События игроков (join, leave, ban, op)
- `custom_trigger` - Кастомные триггеры
---
### PATCH /api/client/servers/{server}/discord-webhooks/settings
Обновить настройку уведомлений.
**Параметры пути:**
- `server` (string, required) - UUID сервера
**Заголовки:**
```http
Authorization: Bearer YOUR_API_KEY
Accept: application/json
Content-Type: application/json
```
**Тело запроса:**
```json
{
"notification_type": "online_report",
"is_enabled": true,
"config": {
"interval_minutes": 10,
"webhook_id": 1
}
}
```
**Поля:**
- `notification_type` (string, required) - Тип уведомления
- `is_enabled` (boolean, required) - Включено/выключено
- `config` (object, optional) - Конфигурация для типа
**Ответ:** Объект обновленной настройки
---
### GET /api/client/servers/{server}/discord-webhooks/triggers
Получить все кастомные триггеры.
**Параметры пути:**
- `server` (string, required) - UUID сервера
**Заголовки:**
```http
Authorization: Bearer YOUR_API_KEY
Accept: application/json
```
**Ответ:**
```json
{
"data": [
{
"id": 1,
"server_id": 123,
"name": "High Online Alert",
"description": "Уведомление при большом онлайне",
"trigger_type": "online_players",
"condition_operator": ">",
"threshold_value": 50,
"duration_seconds": 0,
"cooldown_minutes": 10,
"last_triggered_at": null,
"webhook_id": 1,
"is_enabled": true,
"created_at": "2025-12-16T01:00:00+03:00",
"updated_at": "2025-12-16T01:00:00+03:00"
}
]
}
```
**Типы триггеров:**
- `online_players` - Количество игроков онлайн
- `tps` - TPS сервера (в разработке)
- `cpu_usage` - Использование CPU в процентах
- `memory` - Использование RAM в процентах
- `disk` - Использование диска в процентах
**Операторы условий:**
- `>` - Больше
- `<` - Меньше
- `==` - Равно
- `>=` - Больше или равно
- `<=` - Меньше или равно
---
### POST /api/client/servers/{server}/discord-webhooks/triggers
Создать новый триггер.
**Параметры пути:**
- `server` (string, required) - UUID сервера
**Заголовки:**
```http
Authorization: Bearer YOUR_API_KEY
Accept: application/json
Content-Type: application/json
```
**Тело запроса:**
```json
{
"name": "CPU Alert",
"description": "Уведомление при высокой нагрузке CPU",
"trigger_type": "cpu_usage",
"condition_operator": ">",
"threshold_value": 80,
"duration_seconds": 60,
"cooldown_minutes": 15,
"webhook_id": 1,
"is_enabled": true
}
```
**Поля:**
- `name` (string, required) - Название триггера (макс. 100 символов)
- `description` (string, optional) - Описание (макс. 500 символов)
- `trigger_type` (string, required) - Тип метрики
- `condition_operator` (string, required) - Оператор сравнения
- `threshold_value` (integer, required) - Пороговое значение (>=0)
- `duration_seconds` (integer, optional) - Длительность условия в секундах (0-600, по умолчанию: 0)
- `cooldown_minutes` (integer, required) - Cooldown между срабатываниями (1-1440 минут)
- `webhook_id` (integer, required) - ID webhook для отправки
- `is_enabled` (boolean, optional) - Включен ли триггер (по умолчанию: true)
**Ответ:** Объект созданного триггера
---
### PATCH /api/client/servers/{server}/discord-webhooks/triggers/
Обновить триггер.
**Параметры пути:**
- `server` (string, required) - UUID сервера
- `triggerId` (integer, required) - ID триггера
**Заголовки:**
```http
Authorization: Bearer YOUR_API_KEY
Accept: application/json
Content-Type: application/json
```
**Тело запроса:** Все поля опциональны, аналогично созданию
**Ответ:** Объект обновленного триггера
---
### DELETE /api/client/servers/{server}/discord-webhooks/triggers/
Удалить триггер.
**Параметры пути:**
- `server` (string, required) - UUID сервера
- `triggerId` (integer, required) - ID триггера
**Заголовки:**
```http
Authorization: Bearer YOUR_API_KEY
Accept: application/json
```
**Ответ:**
```http
HTTP/1.1 204 No Content
```
---
## Rate Limiting & Caching
### Rate Limiting
**Авторизованные запросы (с API ключом):**
- **Лимит:** 300 запросов в час
- **Ключ:** Привязан к пользователю + серверу
- **Заголовок:** `X-RateLimit-Limit`, `X-RateLimit-Remaining`
**Публичные webhook запросы:**
- **Лимит:** 150 запросов в час на токен
- **Ключ:** Привязан к webhook токену
- **Превышение:** HTTP 429 Too Many Requests
**При превышении лимита:**
```json
{
"errors": [
{
"code": "TooManyRequestsException",
"status": "429",
"detail": "Too many requests. Please try again later."
}
]
}
```
### Caching
**Все read-only endpoints кэшируются на 30 секунд:**
- `/developer/query` - 30 сек
- `/developer/query/players` - 30 сек
- `/developer/stats` - 30 сек
- `/public/server/{token}/query` - 30 сек
**История НЕ кэшируется** (быстрые запросы к БД)
---
## Примеры кода
### JavaScript / TypeScript
```javascript
// Получить онлайн игроков
const response = await fetch('https://gcp.pterohost.com/api/client/servers/YOUR_SERVER_UUID/developer/query', {
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
});
const data = await response.json();
console.log('Online players:', data.data.online_players);
// Получить историю онлайна за неделю
const history = await fetch('https://gcp.pterohost.com/api/client/servers/YOUR_SERVER_UUID/developer/query/history?period=week', {
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
});
const historyData = await history.json();
console.log('History:', historyData.data);
// Использование Webhook Token (без API ключа)
const publicQuery = await fetch('https://gcp.pterohost.com/api/public/server/YOUR_WEBHOOK_TOKEN/query', {
headers: {
'Accept': 'application/json'
}
});
const publicData = await publicQuery.json();
```
---
### PHP (cURL)
```php
```
---
### Python (requests)
```python
import requests
# Настройка
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
server_uuid = 'YOUR_SERVER_UUID'
# Получить онлайн игроков
response = requests.get(
f'https://gcp.pterohost.com/api/client/servers/{server_uuid}/developer/query',
headers=headers
)
data = response.json()
print(f"Online players: {data['data']['online_players']}")
# Получить историю онлайна
history_response = requests.get(
f'https://gcp.pterohost.com/api/client/servers/{server_uuid}/developer/query/history',
headers=headers,
params={'period': 'week'}
)
history = history_response.json()
# Использование Webhook Token (без API ключа)
webhook_token = 'YOUR_WEBHOOK_TOKEN'
public_response = requests.get(
f'https://gcp.pterohost.com/api/public/server/{webhook_token}/query',
headers={'Accept': 'application/json'}
)
public_data = public_response.json()
```
---
### cURL (Command Line)
```bash
# Получить онлайн игроков (с API ключом)
curl -X GET "https://gcp.pterohost.com/api/client/servers/YOUR_SERVER_UUID/developer/query" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
# Получить онлайн БЕЗ токена (10 req/hour по IP)
curl -X GET "https://gcp.pterohost.com/api/public/server-query/YOUR_SERVER_UUID/query" \
-H "Accept: application/json"
# Получить историю онлайна за неделю
curl -X GET "https://gcp.pterohost.com/api/client/servers/YOUR_SERVER_UUID/developer/query/history?period=week" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
# Получить статистику сервера
curl -X GET "https://gcp.pterohost.com/api/client/servers/YOUR_SERVER_UUID/developer/stats" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
# Использование Webhook Token (без API ключа)
curl -X GET "https://gcp.pterohost.com/api/public/server/YOUR_WEBHOOK_TOKEN/query" \
-H "Accept: application/json"
# Создать Discord webhook
curl -X POST "https://gcp.pterohost.com/api/client/servers/YOUR_SERVER_UUID/discord-webhooks" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"webhook_url": "https://discord.com/api/webhooks/123456789/abcdefg",
"name": "Главный канал"
}'
# Тестировать Discord webhook
curl -X POST "https://gcp.pterohost.com/api/client/servers/YOUR_SERVER_UUID/discord-webhooks/1/test" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
```
---
## Коды ответов
### Успешные ответы
| Код | Описание |
|-----|----------|
| 200 | OK - Запрос выполнен успешно |
| 201 | Created - Ресурс создан |
| 204 | No Content - Запрос выполнен, тело ответа пустое |
### Ошибки клиента
| Код | Описание |
|-----|----------|
| 400 | Bad Request - Некорректные данные запроса |
| 401 | Unauthorized - Отсутствует или невалидный API ключ |
| 403 | Forbidden - Нет прав доступа к ресурсу |
| 404 | Not Found - Ресурс не найден |
| 422 | Unprocessable Entity - Ошибка валидации |
| 429 | Too Many Requests - Превышен rate limit |
### Ошибки сервера
| Код | Описание |
|-----|----------|
| 500 | Internal Server Error - Внутренняя ошибка сервера |
| 503 | Service Unavailable - Сервис временно недоступен |
### Формат ошибок
```json
{
"errors": [
{
"code": "ValidationException",
"status": "422",
"detail": "The webhook url field is required."
}
]
}
```
---
## Scheduler Tasks
Автоматические задачи выполняются в фоновом режиме:
### Сохранение истории онлайна
- **Частота:** каждые 5 минут
- **Действие:** Сохранение снимка онлайна в БД
- **Хранение:** 30 дней
### Периодические отчеты в Discord
- **Частота:** каждые 10 минут (настраиваемо)
- **Условие:** Включена настройка `online_report`
- **Формат:** Discord embed с онлайном, картой, hostname
### Проверка триггеров
- **Частота:** каждые 2 минуты
- **Действие:** Оценка всех активных триггеров
- **Cooldown:** Учитывается cooldown каждого триггера
### Очистка старых данных
- **Частота:** ежедневно
- **Действие:** Удаление записей старше 30 дней
- **Таблицы:** `server_query_history`, `discord_webhook_logs`
---
## Поддерживаемые игры (Query)
Query API поддерживает автоматическое определение протокола для:
### Minecraft (eggs: 1, 2, 3, 4, 5, 17, 55, 56, 62, 63)
- Minecraft Java Edition
- Minecraft Bedrock Edition
- PaperMC, Spigot, Bukkit
- BungeeCord, Velocity
### Source Engine (eggs: 6, 7, 8, 9, 10, 11, 16, 64)
- Counter-Strike: GO
- Counter-Strike: Source
- Garry's Mod
- Team Fortress 2
- Half-Life 2: Deathmatch
### Rust (egg: 76)
- Rust (через RCON)
### Другие игры
- TeamSpeak 3 (egg: 13)
- GTA V FiveM (egg: 18)
- ARK Survival Evolved (egg: 19)
- И другие (через GameQ library)
---
## Безопасность
### API Ключи
- ✅ Храните API ключи в безопасности
- ✅ Не передавайте ключи третьим лицам
- ✅ Удаляйте неиспользуемые ключи
- ✅ Используйте HTTPS для всех запросов
### Webhook Токены
- ✅ Read-only доступ (безопасно для публичного использования)
- ✅ Можно регенерировать при компрометации
- ✅ Привязаны к конкретному серверу
- ✅ Rate limiting предотвращает злоупотребление
### Discord Webhooks
- ✅ Webhook URL маскируется в API ответах
- ✅ Cooldown предотвращает спам
- ✅ Логирование всех отправок
- ✅ Автоматическое отключение при неудачах
---
## FAQ
### Как получить UUID сервера?
UUID сервера можно найти:
1. В панели управления → Консоль сервера → URL: `/server/{UUID}`
2. Через API: `GET /api/client` → получить список серверов
### Как работает кэширование?
Query endpoints кэшируются на 30 секунд. Повторные запросы в течение этого времени вернут кэшированные данные без обращения к игровому серверу.
### Что делать при превышении rate limit?
Подождите указанное время в заголовке `Retry-After` или используйте webhook токены для публичного доступа (отдельный лимит).
### Как настроить Discord уведомления?
1. Создайте Discord webhook в настройках канала
2. Добавьте webhook URL в панели: `/account/api` → Discord Webhooks
3. Протестируйте отправку
4. Настройте триггеры и типы уведомлений
### Поддерживается ли мой тип игры?
Проверьте список поддерживаемых egg ID в разделе "Поддерживаемые игры". Если вашего типа нет - напишите в поддержку.
---
## Поддержка
**Техническая поддержка:**
- Discord: @pterohost
- Документация с вставкой UUID: https://gcp.pterohost.com/account/api
**Обновления API:**
- История изменений публикуется в Discord
- Breaking changes анонсируются заранее
- Версионирование API планируется в будущем
---
**Последнее обновление:** 16 декабря 2025
**Версия API:** 1.0.0
---
# Хостинг
## Защита от DDoS атак
URL: https://docs.pterohost.com/ru/ddos-protection
Обновлено: 2025-04-30
Мы активно боримся с различными видами атак
---
> Guard Rise - наша технология по защите игрового хостинга
> Теперь мы подключаем защищенные туннели, которые можно использовать на любом хостинге (KVM/Dedicated)
# Игровой хостинг
Защита от DDoS атак (Нода 09,10 с Ryzen 9 7950x3d) Guard Rise в Германии
На премиум нодах 09,10 мы интегрировали новейшее решение против DDoS атак
Готовы противостоять атакам размером до 4 Тбит/с. и выше
Основные преимущества Guard Rise
Пропускная способность более 17 Тбит/с для глобальной фильтрации атак
Постоянное обнаружение атак и быстрое устранение вредоносного трафика
Защита не ограничена по времени. Она действует в течение всего времени DDoS-атаки.
Наша инфраструктура также имеет преимущества:
- Большой опыт защиты различных сервисов, от небольших веб-серверов, служб DNS до крупных ферм веб-хостинга или облачных платформ.
- Высокая производительность благодаря лучшим в своем классе аппаратным и программным решениям
- Суверенитет данных, благодаря чему ваш трафик не передается внешним сторонам.
### Основные методы защиты от датацентра:
- Основной компонент защиты
Решения от датацентра эффективно перенаправляет и блокирует DDoS-атаки, обеспечивая надежную защиту вашей сети и приложений. Это решение предлагает масштабируемую защиту с низкими эксплуатационными и капитальными расходами, позволяя фокусироваться на бизнес-процессах без риска сбоев из-за сетевых атак.
- **Блокировка сетевых атак:** Система обнаруживает и предотвращает сетевые угрозы, включая распределённые атаки отказа в обслуживании (DDoS) на уровне сети. Это обеспечивает стабильную работу инфраструктуры даже в условиях массовых атак.
- **Защита приложений и веб-сайтов (FastDL):** Решение фильтрует вредоносный трафик до того, как он достигнет ваших серверов, защищая веб-сайты и приложения от атак на уровне приложений и других сложных методов воздействия.
- **Выявление сложных угроз на переднем крае:** Аппаратные компоненты Shield и Armor работают совместно для глубокого анализа трафика:
- **Shield** активно обнаруживает и блокирует техники усиленных атак, такие как DNS- и NTP-защита, а также IP-спуфинг.
- **Armor** обеспечивает финальный уровень защиты, справляясь с самыми продвинутыми атаками - от TCP/SYN-флудов до сложных векторов, включая TCP/UDP/GRE/AH/ESP-атаки и атаки на основе cookie-auth handshake.
- **Мониторинг и аналитика:** Система предоставляет подробные отчёты о входящем трафике, что позволяет оперативно реагировать на выявленные угрозы и анализировать поведение атакующих.
- **Быстрая реакция:** Сервис активируется мгновенно и предоставляет круглосуточную поддержку через Центр управления сетью (NOC) с гарантией быстрого реагирования, что минимизирует время простоя и убытки.
Решение от датацентра обеспечивает надёжную, масштабируемую и эффективную защиту от широкого спектра сетевых и прикладных угроз, позволяя вашим бизнес-процессам работать без перебоев даже в условиях активных атак.
Дополнительные компоненты защиты
* Устранение обходов (bypass) защиты Aurologic
* Устранение ложного обрывания туннеля в режиме Mitigation Aurologic
* Блокировка провайдеров с плохой репутацией
* ГЕО-блокировка отсутствует, но может быть применена по запросу
Защита от DDoS атак (Нода 06) в Германии
- Имеет такую же защиту от DDoS атак что и ноды премиум класса с 2024 года.
# Собственные игровые патчи
Дополнительные компоненты защиты
* Устранение обходов (bypass) защиты Aurologic
* Устранение ложного обрывания туннеля в режиме Mitigation Aurologic
* Блокировка провайдеров с плохой репутацией
* ГЕО-блокировка отсутствует, но может быть применена по запросу
Так-же, мы активно патчим разные уязвимости - Minecraft
Защита от атак ботами - (любой параметр настраивается)
Защита от брутфорса (/login, /register и другие)
Проверка на подозрительные символы (например, ASCII бомбы) - Расширенная защита
Задержка при переходе на другие сервера Bungee/Velocity - Расширенная защита
Повышенная безопасность антибот -> проверка движений игрока после входа, чтобы убедиться, что он не бот - Расширенная защита
MOTD защита от спама запросами - Расширенная защита
Garry's Mod патчи
Pterohost Handler в него входят следующие модули:
Модуль: Защита от бэкдуров (любой параметр настраивается)
Модуль: Защита от эксплоитов (на базе SNTE или Pterohost)
Модуль: Оптимизация клиентов, многопоточность
Модуль: Оптимизация сервера, защита от быстрых реконнектов
Модуль (бета): Поиск конфликтующих хуков (hooks)
Старые патчи
CVE-2021-4034 обнаружение (патч уже имеется везде без сетевого уровня)
Log4J обнаружение (Использования кода, патч уже имеется везде без сетевого уровня)
Данная защита оборудована на всех тарифах Pterohost
# TCPShield (дополнительнo)
Вот переработанная и структурированная инструкция по настройке TCPShield для защиты вашего Minecraft-сервера:
---
## Введение
TCPShield - бесплатный сервис DDoS-защиты, специально адаптированный под Minecraft. Даже если вы уже используете защиту от вашего хостера или другого провайдера, подключение TCPShield может дать дополнительные преимущества на уровне приложений (L7).
---
## 1. Создание аккаунта и добавление сервера
1. Перейдите на сайт TCPShield:
https://tcpshield.com
Нажмите **Sign Up** и зарегистрируйтесь, указав email и пароль.
2. Подтвердите адрес электронной почты через ссылку в письме от TCPShield.
3. После входа в личный кабинет откройте раздел **Servers** и кликните **Add Server**.
4. Введите данные вашего Minecraft-сервера:
- **Server Name** - любое удобное имя;
- **IP Address** - текущий внешний IP-адрес вашего сервера;
- **Port** - порт (обычно `25565`).
5. Сохраните сервер - он появится в списке с уникальным CNAME.
---
## 2. Настройка DNS
Чтобы перенаправить трафик через TCPShield, нужно создать CNAME-запись:
1. Зайдите в панель управления DNS у вашего регистратора или хостинг-провайдера.
2. Создайте новую запись:
- **Тип**: CNAME
- **Имя (Host)**: поддомен, который игроки будут использовать (например, `play` или `mc`).
- **Значение (Points to)**: уникальный CNAME из панели TCPShield (например, `xyz123.tcpshield.com`).
3. Сохраните изменения и дождитесь их распространения (обычно до 24 часов).
> Пример записи:
> ```
> Type: CNAME
> Host: play
> Value: abcdef.tcpshield.com
> TTL: 3600
> ```
---
## 3. Ограничение доступа на сервере
Чтобы сервер принимал соединения только от TCPShield:
1. **Настройка игрового режима**
В `server.properties` установите:
```properties
online-mode=true
query.port=25565
```
> Если вы используете прокси (BungeeCord/Velocity), оставьте `online-mode=true` на бэкенд-сервере и `online-mode=false` на прокси.
2. **Брандмауэр (firewall)**
Разрешите входящие подключения только с IP-адресов TCPShield. Список IP-адресов доступен в документации TCPShield (с регулярным обновлением).
Например, в Linux + iptables:
```bash
# Сбросить все INPUT-правила для порта 25565
iptables -D INPUT -p tcp --dport 25565 -j ACCEPT
# Разрешить только TCPShield
for ip in $(cat tcpshield-ips.txt); do
iptables -A INPUT -p tcp -s $ip --dport 25565 -j ACCEPT
done
# Запретить всё остальное
iptables -A INPUT -p tcp --dport 25565 -j DROP
```
> Скачайте актуальный список IP в панели TCPShield или по ссылке из документации.
---
## 4. Установка плагина TCPShield
Для корректной работы рекомендуем установить официальный плагин:
1. Зайдите в раздел **Downloads** в личном кабинете TCPShield и скачайте версию плагина под вашу платформу (Spigot/Bukkit/Paper).
2. Скопируйте `.jar`-файл в папку `plugins/` на вашем сервере.
3. Перезапустите сервер командой:
```bash
./start.sh
```
4. После старта зайдите в `plugins/TCPShield/config.yml` и проверьте, что там заполнены:
```yaml
# Пример конфигурации
enabled: true
key: ваш-API-ключ-из-панели
```
---
## 5. Дополнительные советы по безопасности
- **Регулярные обновления**
Обновляйте ОС, JDK, сам сервер и все плагины до актуальных версий.
- **Резервное копирование**
Настройте автоматические бэкапы мира и конфигураций (ежедневно или по вашему расписанию).
- **Защита от читов**
Используйте анти-чит-плагины (NoCheatPlus, Grim) и регулярно проверяйте логи на подозрительную активность.
- **Минимизация прав**
Разрешайте доступ к SSH и панели управления только по VPN или ограниченным IP-адресам.
---
## Перенос игрового сервера на хостинг: пошаговая инструкция
URL: https://docs.pterohost.com/ru/perenos-servera-na-hosting
Обновлено: 2026-05-19
Как перенести игровой сервер с домашнего ПК или другого хостинга - бэкап файлов, загрузка по FTP, особенности Minecraft, Rust и других игр.
---
Перенос игрового сервера на хостинг - задача, которую многие откладывают из-за страха потерять данные или из-за непонимания, с чего начать. На деле процесс хорошо структурирован: нужно правильно упаковать файлы, загрузить их на новое место и проверить работоспособность. В этой статье разберём перенос шаг за шагом - для домашнего ПК и для смены хостинга, с учётом особенностей Minecraft, Rust и других игр.
## Что понадобится
- Доступ к текущим файлам сервера (локально или по FTP).
- FTP/SFTP-клиент для загрузки файлов (например, FileZilla или WinSCP).
- Аккаунт на новом хостинге и данные для подключения по FTP.
- Архиватор (7-Zip, WinRAR или встроенный zip).
## Что нужно перенести
Перед началом составьте список данных, которые важно сохранить. Для большинства игр это четыре категории:
| Категория | Примеры файлов | Важность |
|---|---|---|
| Мир / сейв | `world/`, `server.map`, `saves/` | Критично - данные игроков |
| Плагины и моды | `plugins/`, `mods/`, `addons/` | Высокая |
| Конфиги | `server.properties`, `*.cfg`, `*.ini` | Высокая |
| Базы данных | `*.db`, `*.sqlite`, MySQL-дамп | Критично если используются |
Никогда не переносите исполняемые файлы сервера (`server.jar`, `srcds.exe` и т.д.) - на новом хостинге они уже установлены правильной версией. Переносите только данные.
## Создание бэкапа
Перед переносом обязательно сделайте резервную копию. Если что-то пойдёт не так - у вас будет страховка.
### Для локального сервера
Остановите сервер полностью (не через паузу, а через команду `stop` или закрыв процесс). Дождитесь записи всех данных и заархивируйте нужные папки:
```bash
# Linux - создать архив папки сервера
tar -czf minecraft-backup.tar.gz /home/user/minecraft-server/
# Windows - через PowerShell
Compress-Archive -Path "C:\minecraft-server\*" -DestinationPath "backup.zip"
```
### Для переноса с другого хостинга
Используйте встроенную функцию бэкапа в панели управления текущего хостинга. Большинство панелей позволяют создать архив и скачать его. Если такой функции нет - скачайте файлы через FTP.
> Если ваш текущий хостинг вас не устраивает, [**команда Pterohost выполнит миграцию бесплатно**](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=perenos-servera-na-hosting) - просто напишите в поддержку. Также доступна автоустановка сервера, бесплатная защита от DDoS и NVMe SSD. По промокоду **4START** скидка 20% на первый заказ.
## Загрузка файлов по FTP/SFTP
После создания нового сервера на хостинге вы получите данные для FTP-подключения: хост, порт, логин и пароль. Подробно о подключении читайте в статье [Подключение по FTP/SFTP](/ru/ftp-sftp-connect).
Порядок загрузки:
1. Подключитесь к новому серверу по FTP.
2. Убедитесь, что сервер остановлен.
3. Загрузите файлы в правильные папки (см. ниже).
4. Запустите сервер и проверьте логи.
## Особенности переноса по играм
### Minecraft
Папки, которые нужно перенести в корень сервера:
```
world/ <- основной мир (Overworld)
world_nether/ <- Нижний мир
world_the_end/ <- Край
plugins/ <- папка с плагинами и их конфигами
server.properties <- настройки сервера
ops.json <- список операторов
whitelist.json <- белый список игроков
banned-players.json
banned-ips.json
```
Обратите внимание на версию сервера. Мир, созданный в Minecraft 1.20, может не открыться на версии 1.19 - убедитесь, что версии совпадают.
Если плагины используют MySQL - перенесите базу данных отдельно и обновите строки подключения в конфигах плагинов.
### Rust
```
server/
my_server/
player.deaths.*.db <- статистика игроков
player.identities.db <- привязки Steam ID
*.map <- кастомная карта (если есть)
cfg/
server.cfg <- настройки сервера
users.cfg <- права пользователей
oxide/ <- плагины Oxide/uMod
plugins/
config/
data/
```
Процедурно генерируемые карты Rust переносить не нужно - сервер сгенерирует новую карту с тем же seed. Укажите `server.seed` и `server.worldsize` в конфиге для воспроизведения той же карты.
### Survival-игры (Valheim, Project Zomboid, 7 Days to Die)
| Игра | Папка сейвов | Примечание |
|---|---|---|
| Valheim | `worlds_local/` | `.db` и `.fwl` файлы для каждого мира |
| Project Zomboid | `Saves/Multiplayer/` | Папка с именем сервера |
| 7 Days to Die | `Saves///` | Включая папку Players |
| Garry's Mod | `garrysmod/data/` и `addons/` | Плюс карта через gamemodes |
### CS2
CS2-серверы обычно не хранят постоянные данные игроков на стороне сервера - статистика Steam. Переносить нужно только конфиги и плагины SourceMod:
```
game/csgo/cfg/ <- файлы конфигурации
game/csgo/addons/ <- плагины SourceMod/MetaMod
```
## Смена IP и оповещение игроков
После переноса IP-адрес сервера изменится. Чтобы игроки нашли новый сервер:
1. Если у вас есть домен - обновите A-запись DNS на новый IP (изменения вступают в силу за 1-48 часов).
2. Оповестите игроков через Discord, ВКонтакте или другой канал связи.
3. Обновите описание сервера в мониторингах (Servers.ru, TGamesMC, etc.).
4. Для Minecraft можно временно настроить старый сервер как прокси с редиректом.
## Бесплатная миграция через поддержку Pterohost
Если вы не хотите разбираться с FTP и архивами самостоятельно, воспользуйтесь бесплатной услугой миграции. Что нужно сделать:
1. Оформите заказ на хостинг Pterohost.
2. Напишите в поддержку через тикет или Discord.
3. Предоставьте доступ к текущему серверу (FTP или SSH).
4. Специалисты перенесут все данные самостоятельно.
Миграция выполняется без потери данных. Старый сервер не трогается до вашего подтверждения.
## Частые ошибки
**Мир не загружается, в логах ошибка "level.dat corrupt"**
Сделайте бэкап до переноса. Если повреждение уже есть - попробуйте файл `level.dat_old` в папке мира.
**Плагины загружаются, но не работают (ошибки MySQL)**
Обновите хост базы данных в конфигах плагинов. Локальный адрес `localhost` или `127.0.0.1` не работает на новом сервере - нужен адрес вашей MySQL-базы на хостинге.
**Права операторов сбросились**
Перенесите файлы `ops.json` и `usercache.json` из Minecraft, или файл прав из Rust/GMod.
**Сервер запускается, но игроки не могут подключиться**
Убедитесь, что порт открыт в настройках сервера на хостинге и совпадает с тем, что вы сообщили игрокам.
**После переноса нет прогресса игроков**
Убедитесь, что перенесли папку `playerdata/` (Minecraft) или аналог для вашей игры. Иногда забывают переносить stats/, advancements/.
> Не хотите рисковать данными при самостоятельном переносе? [**Pterohost выполнит миграцию бесплатно и без потери данных**](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=perenos-servera-na-hosting) - напишите в поддержку после оформления заказа. Мощный процессор AMD Ryzen 9 7950X3D, NVMe SSD, бесплатная DDoS-защита и поддержка 24/7. По промокоду **4START** скидка 20% на первый заказ.
## Часто задаваемые вопросы
**Как перенести сервер Minecraft на хостинг?**
Сделайте бэкап папки мира (`world`, `world_nether`, `world_the_end`), папки `plugins` и файлов конфигурации. Загрузите всё по FTP на новый сервер, проверьте версию Java и настройки `server.properties`.
**Как перенести локальный сервер на хостинг?**
Остановите локальный сервер, создайте архив всех файлов сервера, загрузите архив на хостинг по FTP/SFTP и распакуйте. Обновите настройки IP и портов.
**Перенесутся ли мои миры и плагины при переносе сервера?**
Да, если вы скопируете все нужные файлы: папки с мирами, папку `plugins`, конфигурационные файлы. Главное - не забыть про базы данных плагинов, если они используются.
**Бесплатна ли миграция сервера на Pterohost?**
Да, команда Pterohost выполняет миграцию бесплатно. Напишите в поддержку, предоставьте доступ к текущему серверу, и специалисты перенесут всё самостоятельно.
**Сколько времени занимает перенос сервера?**
Самостоятельный перенос небольшого сервера занимает 20-60 минут. Если размер данных большой (10+ ГБ) или требуется помощь поддержки - от нескольких часов до суток в зависимости от загруженности.
## Читайте также
- [Подключение по FTP/SFTP](/ru/ftp-sftp-connect)
- [Бэкап сервера Minecraft](/ru/minecraft-server-backup)
- [Защита от DDoS-атак](/ru/ddos-protection)
- [Сколько RAM нужно игровому серверу](/ru/skolko-ram-nuzhno-serveru)
---
## Подключение к БД
URL: https://docs.pterohost.com/ru/mysql-connect
Обновлено: 2023-04-16
Пошаговая инструкция о том, как подключится к базе данных через HeidiSQL
---
## Вход в вашу базу данных при помощи HeidiSQL
Шаг 1: Загрузите и установите HeidiSQL на свой компьютер, если он еще не установлен. Вы можете загрузить его с официального сайта HeidiSQL.
Шаг 2: Запустите программу HeidiSQL.
Шаг 3: Выберите опцию "Создать новое подключение" из меню "Сессия".
Шаг 4: Введите имя хоста базы данных MySQL, имя пользователя и пароль в соответствующие поля. Если вы используете удаленную базу данных MySQL, вы должны вписать в хост IP ноды (например: 1.1.1.1).
Шаг 5: Выберите соответствующий порт для вашей базы данных MySQL. По умолчанию используется порт 3306.
Шаг 6: Выберите протокол соединения с базой данных. Обычно это TCP/IP.
Шаг 7: Нажмите кнопку "Открыть" для подключения к базе данных MySQL.
Шаг 8: Если все настройки верны, вы увидите подключенную базу данных в списке доступных баз данных в левой панели.
Шаг 9: Щелкните правой кнопкой мыши на базе данных и выберите "Открыть". Теперь вы можете управлять базой данных MySQL с помощью HeidiSQL.
Вот и все! Теперь вы подключены к базе данных MySQL с помощью программы HeidiSQL.
Статью про HeidiSQL и подключение к БД частично написал ИИ-бот ChatGPT от компании OpenAI
---
## Сколько RAM нужно игровому серверу: таблица по играм
URL: https://docs.pterohost.com/ru/skolko-ram-nuzhno-serveru
Обновлено: 2026-05-19
Рекомендуемый объём оперативной памяти для серверов Minecraft, Rust, CS2, Garry's Mod и других игр - таблицы, факторы и признаки нехватки RAM.
---
Вопрос "сколько оперативной памяти выбрать для сервера" возникает у каждого владельца игрового сервера. Нехватка RAM ведёт к лагам и вылетам, избыток - к переплате. В этой статье вы найдёте конкретные рекомендации по объёму RAM для популярных игр с учётом числа игроков, а также разберём, какие факторы влияют на потребление памяти и как распознать нехватку.
## Что понадобится
Для правильного выбора RAM полезно знать:
- Игру и её версию (ванила, с модами/плагинами).
- Планируемое максимальное число игроков.
- Список модов или плагинов, которые будут установлены.
## Таблица рекомендуемого RAM по играм
Ниже приведены рекомендации для разных игр с учётом числа одновременных игроков. Значения - практический минимум для комфортной игры без лагов.
| Игра | Игроков | Минимум RAM | Рекомендуется | С модами/плагинами |
|---|---|---|---|---|
| Minecraft ваниль | до 10 | 1 ГБ | 2 ГБ | - |
| Minecraft ваниль | 10-30 | 2 ГБ | 3-4 ГБ | - |
| Minecraft ваниль | 30-100 | 4 ГБ | 6-8 ГБ | - |
| Minecraft + плагины | до 20 | 2 ГБ | 4 ГБ | +1-2 ГБ |
| Minecraft + плагины | 20-50 | 4 ГБ | 6 ГБ | +2-3 ГБ |
| Minecraft + тяжёлые моды | до 15 | 6 ГБ | 8-12 ГБ | +4-6 ГБ |
| Rust | до 50 | 8 ГБ | 12 ГБ | +2-4 ГБ (Oxide) |
| Rust | 50-200 | 12 ГБ | 16-20 ГБ | +4 ГБ |
| CS2 | до 10 | 2 ГБ | 4 ГБ | +1 ГБ (SourceMod) |
| CS2 | 10-64 | 4 ГБ | 6 ГБ | +2 ГБ |
| Garry's Mod | до 16 | 2 ГБ | 3 ГБ | +1-2 ГБ (аддоны) |
| Garry's Mod | 16-64 | 4 ГБ | 6 ГБ | +2-3 ГБ |
| Valheim | до 10 | 2 ГБ | 4 ГБ | - |
| Valheim | 10+ | 4 ГБ | 6 ГБ | - |
| Project Zomboid | до 8 | 4 ГБ | 6 ГБ | +2 ГБ (моды) |
| Project Zomboid | 8-32 | 6 ГБ | 8-10 ГБ | +2-3 ГБ |
| 7 Days to Die | до 8 | 4 ГБ | 6 ГБ | +2 ГБ |
| 7 Days to Die | 8-16 | 6 ГБ | 8 ГБ | +2-3 ГБ |
> Подбираете хостинг с нужным объёмом RAM? [**На Pterohost можно выбрать тариф с точным объёмом памяти**](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=skolko-ram-nuzhno-serveru) - процессор AMD Ryzen 9 7950X3D, NVMe SSD, автоустановка сервера и бесплатная защита от DDoS. По промокоду **4START** скидка 20% на первый заказ.
## Факторы, влияющие на потребление памяти
### Моды и плагины
Каждый установленный плагин или мод загружается в оперативную память при старте сервера. Некоторые плагины кэшируют данные игроков и мира, постепенно потребляя всё больше памяти по мере игры.
Примерное потребление по типам плагинов для Minecraft:
| Тип плагина | Дополнительно к базе |
|---|---|
| EssentialsX + базовые | +200-400 МБ |
| WorldGuard + WorldEdit | +300-500 МБ |
| Dynmap (карта в браузере) | +500 МБ - 1 ГБ |
| 5-10 средних плагинов | +500 МБ - 1 ГБ |
| 20+ плагинов | +1,5-3 ГБ |
| Тяжёлые моды (IC2, Mekanism) | +2-4 ГБ каждый |
### Дальность прорисовки
Для Minecraft это самый важный параметр после числа игроков. Каждый чанк (16x16 блоков) хранится в памяти, пока находится в зоне видимости игроков. Зависимость примерно квадратичная: увеличение view-distance с 8 до 16 чанков увеличивает потребление памяти в 3-4 раза.
Рекомендуемые значения `view-distance` в `server.properties`:
```ini
# Для бюджетных серверов (2-4 ГБ RAM)
view-distance=6
# Для стандартных серверов (4-8 ГБ RAM)
view-distance=8
# Для мощных серверов (8+ ГБ RAM)
view-distance=10
```
### Число игроков
Каждый онлайн-игрок добавляет нагрузку:
- Его инвентарь, статистика и прогрессия хранятся в памяти.
- Вокруг него загружаются чанки мира.
- Плагины обрабатывают его действия и кэшируют данные.
Для Minecraft ориентировочно - 50-100 МБ дополнительно на каждого активного игрока с учётом загруженных чанков вокруг него.
### Размер мира и накопленные данные
Чем дольше работает сервер, тем больше мир разведан игроками. Каждый новый разведанный чанк увеличивает размер файлов мира, а при загрузке сервера часть данных кэшируется в RAM. Старые Minecraft-сервера с большими мирами могут потреблять значительно больше памяти, чем свежеустановленные.
## Признаки нехватки RAM
Если сервер испытывает нехватку оперативной памяти, это проявляется в нескольких характерных симптомах:
**Лаги и высокий TPS Drop**
Сервер начинает замедляться. В Minecraft TPS (тиков в секунду) падает ниже 20, что ощущается как замедление всего - от движения мобов до обработки команд.
**Долгая загрузка чанков**
В Minecraft игроки видят серые квадраты вокруг себя долгое время. Мир загружается медленно из-за нехватки памяти для кэширования.
**OutOfMemoryError в логах**
Критическая ошибка JVM для Java-серверов. После неё сервер падает. В логах ищите строки вида:
```
java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: GC overhead limit exceeded
```
**Частые вылеты без явной причины**
Если сервер периодически падает без ошибок в плагинах или моде - проверьте потребление памяти в момент краша.
**Высокая нагрузка на Swap**
Когда RAM заканчивается, ОС начинает использовать дисковое пространство как виртуальную память (Swap). Это в 10-100 раз медленнее реальной RAM и приводит к катастрофическому замедлению сервера.
## Почему важен не только объём RAM, но и процессор
RAM и CPU отвечают за разные аспекты производительности сервера:
- **RAM** - хранит данные мира, игроков, плагинов в оперативной памяти. Нехватка вызывает обращения к диску, лаги при загрузке чанков и вылеты.
- **Процессор** - обрабатывает игровые тики (логику мобов, редстоун, физику). Слабый CPU даёт TPS Drop даже при достаточной RAM.
Для Minecraft критичнее **однопоточная производительность CPU** - сервер обрабатывает основной игровой цикл в одном потоке. Высокочастотные процессоры с быстрым кешем (как AMD Ryzen 9 7950X3D с технологией 3D V-Cache) дают значительно лучший результат, чем более медленные процессоры с большим числом ядер.
Для Rust важны оба параметра примерно в равной степени, а CS2 более требователен к процессору.
Подробнее о влиянии CPU на производительность сервера читайте в статье [Как работает процессор в игровом сервере](/ru/how-work-cpu).
## Практические советы по оптимизации памяти
Если увеличить RAM нет возможности, можно оптимизировать потребление:
- Уменьшите `view-distance` и `simulation-distance` в `server.properties`.
- Отключите или замените тяжёлые плагины на более лёгкие аналоги.
- Регулярно удаляйте неиспользуемые части мира утилитами типа Chunky.
- Используйте оптимизированные ядра: Paper вместо Spigot для Minecraft.
- Настройте параметры JVM: укажите явный размер heap через `-Xms` и `-Xmx`.
```bash
# Пример запуска Minecraft с 4 ГБ heap
java -Xms2G -Xmx4G -jar server.jar nogui
```
> Нужен сервер с запасом памяти для роста? [**Pterohost предлагает тарифы с гибким выбором RAM**](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=skolko-ram-nuzhno-serveru) - процессор AMD Ryzen 9 7950X3D, NVMe SSD, поддержка 24/7 и бесплатная миграция с текущего хостинга. По промокоду **4START** скидка 20% на первый заказ.
## Часто задаваемые вопросы
**Сколько оперативной памяти нужно серверу Minecraft?**
Для ванильного сервера Minecraft на 10 игроков достаточно 2-3 ГБ. С плагинами на 20 игроков рекомендуется 4-6 ГБ. Модпак с тяжёлыми модами может потребовать 8-12 ГБ и более.
**Сколько RAM нужно серверу Rust?**
Минимум для Rust - 8 ГБ, рекомендуется 12-16 ГБ для комфортной игры 50+ игроков. Большие карты и активные сервера могут потреблять 20+ ГБ.
**Влияет ли количество модов на потребление памяти?**
Да, каждый мод или плагин добавляет нагрузку. Тяжёлые технические моды для Minecraft (IC2, Mekanism) могут добавить 1-3 ГБ к базовому потреблению.
**Что будет если серверу не хватает оперативной памяти?**
Сервер начнёт лагать, потом вылетать с ошибкой OutOfMemoryError. В худшем случае - постоянные краши и потеря прогресса игроков.
**Что важнее для сервера - оперативная память или процессор?**
Зависит от игры. RAM определяет, сколько данных сервер удерживает в памяти. Процессор отвечает за скорость обработки тиков. Для Minecraft критичнее процессор, для Rust важны оба параметра.
## Читайте также
- [Перенос игрового сервера на хостинг](/ru/perenos-servera-na-hosting)
- [Как работает процессор в игровом сервере](/ru/how-work-cpu)
- [Turbo-режим для сервера](/ru/turbo-server)
- [Защита от DDoS-атак](/ru/ddos-protection)
---
## MySQL базы данных для игрового хостинга - что это и зачем нужны
URL: https://docs.pterohost.com/ru/mysql-bazy-dannykh
Обновлено: 2026-01-04
Подробное руководство по MySQL базам данных для Minecraft и Garry's Mod серверов. Узнайте, для чего нужны базы данных, как их использовать и какие плагины требуют MySQL.
---
## Что такое MySQL база данных?
MySQL - это система управления реляционными базами данных (СУБД), которая позволяет хранить, обрабатывать и управлять большими объемами структурированной информации. Для игровых серверов MySQL выступает как надежное хранилище данных, которое работает независимо от самого сервера и обеспечивает быструю обработку запросов.
В контексте игрового хостинга MySQL используется для хранения игровых данных: статистики игроков, экономических транзакций, настроек плагинов, рейтингов, достижений и многого другого.
> MySQL базы данных - это профессиональный инструмент для хранения данных вашего игрового сервера, который обеспечивает высокую скорость работы и надежность.
## Зачем нужна MySQL база данных на игровом сервере?
### 1. Централизованное хранение данных
MySQL позволяет хранить все данные в одном месте, что особенно важно при работе с несколькими серверами. Например, вы можете синхронизировать экономику, права доступа или статистику между несколькими серверами Minecraft или Garry's Mod.
### 2. Высокая производительность
База данных MySQL оптимизирована для быстрой обработки большого количества запросов. Это критично для популярных серверов с большим онлайном, где сотни игроков одновременно взаимодействуют с данными.
### 3. Надежность и безопасность
- **Резервное копирование**: Автоматические бэкапы защищают от потери данных
- **Транзакции**: Гарантируют целостность данных при сбоях
- **Изоляция**: Данные защищены от несанкционированного доступа
### 4. Масштабируемость
MySQL легко масштабируется вместе с ростом вашего проекта. База данных может хранить миллионы записей без потери производительности.
### 5. Совместимость с плагинами
Большинство популярных плагинов для Minecraft и Garry's Mod используют MySQL для расширенного функционала:
**Для Minecraft:**
- **LuckPerms** - система прав доступа
- **CoreProtect** - логирование действий
- **Plan** - продвинутая аналитика сервера
- **AdvancedBan** - система банов
- **Jobs Reborn** - система профессий
- **mcMMO** - RPG система навыков
**Для Garry's Mod:**
- **DarkRP** - экономика и работы
- **ULX** - система администрирования
- **ServerGuard** - античит и защита
- **MySQL банковские системы** - экономические моды
> Без MySQL многие популярные плагины будут работать в ограниченном режиме или вообще не запустятся.
## Как работает MySQL на игровом хостинге?
### Архитектура
```
[Игровой сервер] <-> [Плагин с MySQL поддержкой] <-> [MySQL База данных]
↓ ↓
[Обработка игры] [Хранение данных]
```
### Принцип работы
1. **Подключение**: Плагин устанавливает соединение с MySQL базой данных используя учетные данные (хост, порт, пользователь, пароль, название БД)
2. **Создание таблиц**: При первом запуске плагин автоматически создает необходимые таблицы для хранения данных
3. **Запросы**: Когда игрок выполняет действие (покупает предмет, получает достижение), плагин отправляет SQL-запрос в базу данных
4. **Сохранение**: MySQL обрабатывает запрос и сохраняет информацию
5. **Чтение**: При необходимости плагин запрашивает данные из БД и использует их в игре
## Примеры использования MySQL
### Пример 1: Экономическая система
Плагин Vault + EssentialsX хранит балансы игроков в MySQL:
**Без MySQL:**
- Данные хранятся в локальных файлах
- При сбое сервера можно потерять информацию
- Невозможна синхронизация между серверами
**С MySQL:**
- Все транзакции надежно сохраняются
- Можно использовать общую экономику на нескольких серверах
- История всех операций доступна для анализа
### Пример 2: Система прав доступа (LuckPerms)
LuckPerms с MySQL позволяет:
- Синхронизировать права между сервером Lobby, SkyBlock и BedWars
- Быстро назначать роли без перезагрузки
- Хранить историю изменений прав доступа
- Управлять правами через веб-панель
### Пример 3: Логирование действий (CoreProtect)
CoreProtect записывает в MySQL:
- Кто и когда разрушил блок
- Кто открывал сундук
- Кто использовал определенный предмет
- История изменений на протяжении месяцев
Это помогает администраторам расследовать гриферство и откатывать нежелательные изменения.
## Настройка MySQL базы данных
### Шаг 1: Получение данных для подключения
На хостинге Pterohost MySQL база данных доступна как:
- **Платное дополнение** на базовых тарифах
- **Включена в стоимость** на премиум тарифах
После активации вы получите:
- **Хост**: адрес сервера MySQL (например, `mysql.pterohost.com`)
- **Порт**: обычно `3306`
- **Имя базы данных**: уникальное название вашей БД
- **Пользователь**: имя пользователя для доступа
- **Пароль**: пароль для подключения
### Шаг 2: Настройка плагина
Большинство плагинов имеют конфигурационный файл с секцией MySQL:
```yaml
database:
type: mysql
host: mysql.pterohost.com
port: 3306
database: your_database_name
username: your_username
password: your_password
# Дополнительные параметры
pool-settings:
maximum-pool-size: 10
minimum-idle: 2
connection-timeout: 5000
```
### Шаг 3: Перезапуск сервера
После настройки конфигурации:
1. Сохраните файл конфигурации
2. Перезапустите игровой сервер
3. Проверьте логи на наличие сообщений о подключении к MySQL
> При правильной настройке в логах появится сообщение типа "Successfully connected to MySQL database"
### Шаг 4: Проверка подключения
Способы проверки:
- **Логи сервера**: Должно быть сообщение об успешном подключении
- **Таблицы в БД**: Плагин автоматически создаст необходимые таблицы
- **Функционал плагина**: Проверьте работу функций, требующих БД
## Частые проблемы и решения
### Проблема: "Failed to connect to MySQL database"
**Причины:**
- Неверные данные для подключения (хост, порт, логин, пароль)
- MySQL сервис не запущен на хостинге
- Firewall блокирует подключение
**Решение:**
1. Проверьте правильность данных в конфигурации плагина
2. Убедитесь, что MySQL база данных активирована в панели управления
3. Свяжитесь с технической поддержкой Pterohost для проверки доступа
### Проблема: "Access denied for user"
**Причина:** Неверный пользователь или пароль
**Решение:**
- Скопируйте данные для подключения из панели управления хостингом
- Убедитесь, что в пароле нет лишних пробелов
- Используйте кавычки если пароль содержит спецсимволы
### Проблема: "Unknown database"
**Причина:** База данных с указанным именем не существует
**Решение:**
- Проверьте название базы данных в панели управления
- Убедитесь, что БД была создана и активирована
### Проблема: Медленная работа плагина
**Причины:**
- Слишком большой объем данных
- Неоптимизированные запросы
- Недостаточно подключений в пуле
**Решение:**
1. Увеличьте `maximum-pool-size` в настройках
2. Периодически очищайте старые данные
3. Используйте индексы в таблицах (для продвинутых пользователей)
## Преимущества MySQL на Pterohost
### 1. Высокая скорость подключения
Серверы баз данных расположены в той же инфраструктуре, что и игровые серверы, обеспечивая минимальную задержку (ping < 1ms).
### 2. Автоматические резервные копии
Ежедневные бэкапы защищают ваши данные от потери.
### 3. Техническая поддержка
Специалисты Pterohost помогут с настройкой и решением проблем с MySQL.
### 4. Гибкие тарифы
- На базовых тарифах - как платное дополнение
- На премиум тарифах - уже включено в стоимость
### 5. Удобное управление
Доступ к базе данных через HeidiSQL для просмотра и редактирования данных.
## Альтернативы MySQL
### SQLite
**Преимущества:**
- Не требует отдельного сервера
- Данные хранятся в файле
- Проще в настройке
**Недостатки:**
- Медленнее при большом количестве запросов
- Невозможна синхронизация между серверами
- Проблемы с одновременным доступом
**Вывод:** SQLite подходит только для маленьких серверов (до 20 игроков) без требований к производительности.
### H2 Database
Промежуточный вариант между SQLite и MySQL, используется некоторыми плагинами по умолчанию.
**Рекомендация:** Для серьезных проектов всегда выбирайте MySQL.
## Какие плагины обязательно требуют MySQL?
### Критически важные:
1. **LuckPerms** - при работе с несколькими серверами
2. **Plan** - аналитика требует БД для хранения статистики
3. **AdvancedBan** - синхронизация банов между серверами
4. **LiteBans** - альтернатива AdvancedBan
5. **CoreProtect** - для долгосрочного хранения логов
### Рекомендуется MySQL:
1. **EssentialsX** - экономика и данные игроков
2. **Jobs Reborn** - система профессий
3. **mcMMO** - RPG навыки
4. **Multiverse-Core** - управление мирами
5. **WorldGuard** - регионы и защита
> Даже если плагин может работать без MySQL, использование базы данных значительно повышает производительность и надежность.
## Безопасность MySQL
### Рекомендации по безопасности:
1. **Используйте сложные пароли** - минимум 16 символов с буквами, цифрами и спецсимволами
2. **Не делитесь данными доступа** - каждый администратор должен иметь свой аккаунт
3. **Регулярно проверяйте логи** - отслеживайте подозрительную активность
4. **Делайте бэкапы** - регулярно сохраняйте копии важных данных
5. **Ограничьте доступ** - разрешите подключение только с IP адресов ваших серверов
### Что НЕ нужно хранить в MySQL:
- Пароли игроков в открытом виде (используйте хеширование)
- Конфиденциальную личную информацию
- Данные платежных карт
## Мониторинг и оптимизация
### Инструменты мониторинга:
1. **HeidiSQL** - софт для управления БД
2. **Plan Plugin** - статистика использования БД
3. **Логи MySQL** - анализ медленных запросов
### Советы по оптимизации:
**Очистка старых данных:**
```sql
-- Удалить логи старше 30 дней (пример для CoreProtect)
DELETE FROM co_block WHERE time < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY));
```
**Оптимизация таблиц:**
```sql
-- Оптимизация всех таблиц
OPTIMIZE TABLE table_name;
```
**Индексы для ускорения:**
Большинство плагинов автоматически создают индексы, но при разработке собственных плагинов используйте индексы для часто запрашиваемых полей.
> Регулярная очистка старых данных может ускорить работу базы данных в 2-3 раза!
## Заключение
MySQL база данных - это необходимый инструмент для любого серьезного игрового проекта на Minecraft или Garry's Mod. Она обеспечивает:
- Надежное хранение данных игроков
- Высокую производительность даже при большом онлайне
- Возможность синхронизации данных между серверами
- Совместимость с популярными плагинами
- Профессиональный уровень управления проектом
На хостинге Pterohost MySQL доступна как платное дополнение на базовых тарифах и включена в стоимость на премиум тарифах. Техническая поддержка всегда готова помочь с настройкой и решением любых вопросов.
### Следующие шаги:
1. Активируйте MySQL базу данных в панели управления Pterohost
2. Получите данные для подключения (хост, порт, БД, логин, пароль)
3. Настройте ваши плагины для работы с MySQL
4. Проверьте подключение через логи сервера
5. Настройте автоматические бэкапы важных данных
> Начните использовать MySQL уже сегодня и выведите ваш игровой сервер на профессиональный уровень!
## Дополнительные ресурсы
- [Официальная документация MySQL](https://dev.mysql.com/doc/)
- [LuckPerms - настройка MySQL](https://luckperms.net/wiki/Storage-types)
- [CoreProtect - конфигурация БД](https://docs.coreprotect.net/database/)
- [Техническая поддержка Pterohost](https://pterohost.com/support)
---
## Подключение к FTP
URL: https://docs.pterohost.com/ru/ftp-sftp-connect
Обновлено: 2026-08-28
Методы подключения к FTP/SFTP игровой панели
---
## Подключение через SFTP

> На данный момент, туториал только для программы MobaXterm, в других клиентах все очень похоже. Делайте так-же. {.is-info}
Данные для входа находятся по пути gcp.pterohost.com -> ваш сервер -> Настройки
Для подключения к SFTP вам требуется так-же пароль, как и написано пароль равен тому, который вы используете для входа на сайт gcp.pterohost.com
То есть, он синхронизирован, даже если вы его смените он так-же будет сменен для SFTP.
### Клиент MobaXterm
Панель показывает адрес одной строкой, например `sftp://game25.pterohost.com:4050`. В MobaXterm его нужно развести по отдельным полям:
1. Хост - адрес без схемы и без порта: `game25.pterohost.com`.
2. Порт - число после двоеточия: `4050`. Именно оно ставится **вместо 22**.
3. Имя пользователя - копируется из панели как есть, например `pter2.2581seu`.
4. Пароль - тот же, что и от аккаунта в панели; MobaXterm спросит его уже после подключения.
5. Сохранять пароль в клиенте не рекомендуем: он лежит на диске и открывает доступ к серверу любому, кто сядет за компьютер.

Заполненная информация, пароль просит после входа.
---
## Хостинг Minecraft 24/7: круглосуточная работа сервера
URL: https://docs.pterohost.com/ru/minecraft-hosting-24-7
Обновлено: 2026-05-26
Что такое хостинг Minecraft 24/7, какие требования к железу и сети, чем он отличается от Aternos и домашнего ПК, как выбрать тариф под онлайн.
---
Постоянный сервер Minecraft - это не просто запущенный jar-файл. Чтобы игроки могли заходить в любое время дня и ночи, нужны стабильное железо, резервное питание, защита от атак и автоматический перезапуск после сбоев. Разберём, что именно стоит за фразой "хостинг 24/7" и как выбрать тариф под ваш онлайн.
## Что означает 24/7 для Minecraft-сервера
Аббревиатура 24/7 расшифровывается как "24 часа в сутки, 7 дней в неделю". Применительно к Minecraft это значит, что:
- сервер запущен непрерывно, без расписания включений и выключений;
- игроки могут подключаться в любое время, даже в 4 утра;
- администратор не обязан вручную поднимать сервер после каждого падения;
- внешние неприятности (отключение света у владельца, перезагрузка роутера, обновление Windows) никак не влияют на доступность.
Технически это обеспечивается тем, что сервер физически работает в дата-центре с резервным питанием от ИБП и дизель-генератора, на дублирующих каналах связи и под управлением панели, которая отслеживает процесс и поднимает его при падении.
### Аптайм: 99%, 99.9% или 99.99%
Аптайм - это процент времени, который сервер реально доступен. На первый взгляд цифры похожи, но в часах разница большая:
| Аптайм | Простой в год | Простой в месяц |
|----------|---------------|-----------------|
| 99% | 87 часов 36 минут | 7 часов 18 минут |
| 99.9% | 8 часов 45 минут | 43 минуты |
| 99.99% | 52 минуты | 4 минуты 22 секунды |
Нормальный игровой хостинг гарантирует не меньше 99.9% по SLA. Если провайдер указывает только "стараемся" без цифр - это повод задуматься.
## Почему домашний ПК не подходит для 24/7
Идея "поставлю сервер на старый ноутбук в шкафу" звучит привлекательно ровно до первого месяца эксплуатации. Реальные проблемы:
1. **Питание.** Любое отключение света - сервер падает. ИБП дома обычно держит 5-10 минут, дата-центр - часами с автозапуском дизеля.
2. **Интернет.** Домашний канал асимметричный: 100 Мбит/с вниз и 10 Мбит/с вверх - стандартная история. Сервер раздаёт данные именно вверх. На 20+ игроках канал начнёт захлёбываться.
3. **Белый IP.** У многих провайдеров серый NAT, и пробросить порт 25565 наружу нельзя в принципе.
4. **DDoS.** Школьники с бустерами по 50 ₽ за атаку положат домашний канал за минуту. У хостинга есть фильтрация на уровне L4 и L7.
5. **Нагрев и шум.** ПК под нагрузкой в квартире - это вентиляторы 24/7, повышенный счёт за электричество и риск перегрева летом.
6. **Обновления Windows.** Они любят прилететь именно ночью и перезагрузить машину без предупреждения.
Даже если первые две недели всё работает, на длинной дистанции домашний сервер проигрывает дата-центру по всем параметрам.
> **Pterohost** - игровой хостинг с DDoS-защитой L4+L7, NVMe и 24/7 поддержкой. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-hosting-24-7)
## Аппаратные требования к серверу 24/7
Minecraft-сервер - это в первую очередь Java-приложение, которое нагружает CPU в одном-двух потоках (основной тред мира) и активно использует RAM и диск.
### CPU: частота важнее ядер
Главный поток Minecraft (main thread) однопоточный. Это значит, что 16-ядерный Xeon на 2.1 ГГц будет проигрывать 6-ядерному Ryzen на 5.0 ГГц при одинаковом онлайне. При выборе тарифа смотрите на частоту базовую и в Boost, а не на количество ядер.
Минимальные рекомендации по частоте:
- ванильный сервер, до 10 онлайн - от 3.5 ГГц;
- Paper/Purpur, 10-30 онлайн - от 4.0 ГГц;
- модпак, 5-20 онлайн - от 4.5 ГГц, желательно 5.0+.
Подробнее о выборе ядра и его влиянии на TPS читайте в статье про [выбор ядра сервера](/ru/minecraft-server-cores-2026).
### RAM: с запасом, но без фанатизма
Minecraft не использует всю выделенную RAM сразу - она нужна для кэша чанков и работы Garbage Collector. Слишком мало RAM - постоянные паузы GC. Слишком много (например, 32 ГБ на 10 игроков) - длинные сборки мусора, которые подвешивают сервер.
Ориентир по RAM:
| Тип сервера | Онлайн | RAM |
|---------------------|---------|---------|
| Ванилла/Paper | 5-10 | 2-3 ГБ |
| Paper + плагины | 10-30 | 4-6 ГБ |
| Paper + плагины | 30-80 | 8-12 ГБ |
| Forge/Fabric модпак | 5-15 | 6-10 ГБ |
| Тяжёлый модпак | 15-30 | 12-16 ГБ |
Детальный расчёт - в материале [сколько RAM нужно серверу](/ru/skolko-ram-nuzhno-serveru).
### Диск: только NVMe
HDD и даже SATA SSD на современном Minecraft - это боль. Генерация чанков, сохранение мира, работа плагинов вроде CoreProtect упираются именно в диск. NVMe SSD с IOPS от 100k - стандарт для игрового хостинга в 2026 году.
### Сеть: не только канал, но и фильтрация
Канал 1 Гбит/с до сервера - норма. Гораздо важнее наличие защиты от DDoS. Атаки на Minecraft-серверы стали обыденностью: бывает достаточно одного обиженного игрока, который купил услуги стрессера за 200 ₽. Без защиты L4 (от UDP/TCP-флуда) и L7 (от слоулорис-атак на сам Minecraft-протокол) сервер ляжет за минуту.
## Автоматический рестарт после краша
Любой долго работающий сервер падает: OOM при нехватке RAM, NullPointerException в кривом плагине, повреждённый чанк, конфликт миксинов. Главное - чтобы он поднимался автоматически.
На хостингах с панелью Pterodactyl это работает так:
1. Демон Wings отслеживает состояние процесса.
2. Если процесс завершился с кодом отличным от 0 - запускает заново.
3. В логи пишется причина остановки.
4. Опционально - отправляется уведомление в Discord/Telegram.
Дома это можно реализовать через systemd-unit с `Restart=always`, но домашние проблемы (питание, интернет) это не решит.
Если ваш сервер крашится чаще одного раза в неделю, посмотрите [решение лагов и крашей](/ru/minecraft-server-lags-fix) и проверьте логи на повторяющиеся ошибки.
## Бэкапы: страховка от катастрофы
Сервер 24/7 без бэкапов - бомба замедленного действия. Что может пойти не так:
- плагин испортил данные игроков;
- админ удалил не тот регион через WorldEdit;
- обновление модпака сломало мир;
- атака на сервер с подменой данных;
- сбой диска (редко, но бывает).
Минимальная конфигурация бэкапов:
- полный бэкап мира раз в 24 часа;
- хранение последних 7 копий;
- инкрементальные бэкапы каждые 6 часов;
- хранение бэкапа в отдельном хранилище, не на том же диске.
На Pterohost бэкапы создаются автоматически и хранятся отдельно от основного контейнера. Подробнее - в гайде по [бэкапам Minecraft-сервера](/ru/minecraft-server-backup).
## Мониторинг 24/7
Когда вы не сидите за консолью круглые сутки, нужны автоматические уведомления:
- пинг сервера каждые 30-60 секунд (UptimeRobot, BetterUptime);
- алерт в Telegram/Discord при простое больше 2 минут;
- мониторинг TPS через плагин (например, `/spark tps`);
- проверка свободного места на диске.
В панели Pterodactyl видно использование RAM, CPU и сети в реальном времени. Этого хватает для базового контроля.
## Чем профессиональный хостинг отличается от Aternos и бесплатных аналогов
Бесплатные сервисы вроде Aternos, Minehut, Falixnodes удобны для теста на час, но не для долгосрочного проекта:
| Параметр | Aternos / бесплатно | Платный хостинг |
|-----------------------|---------------------|-----------------|
| Работа 24/7 | Нет, выключается через 5 минут пустоты | Да, всегда онлайн |
| RAM | Ограниченная пулом | Выделенная, гарантированная |
| Модпаки | Только из списка | Любые |
| Плагины | Ограничения | Любые |
| DDoS-защита | Условная | L4 + L7 |
| Поддержка | Форум | 24/7 в тикете |
| Свой IP/домен | Нет | Да |
| Очередь на запуск | Иногда часами | Никогда |
| Реклама на странице | Да | Нет |
Aternos подходит, чтобы один раз поиграть с друзьями в выходные. Для проекта с постоянной аудиторией - только платный хостинг с гарантированными ресурсами.
> **Pterohost** - игровой хостинг с DDoS-защитой L4+L7, NVMe и 24/7 поддержкой. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-hosting-24-7)
## Как выбрать тариф под ваш онлайн
Подбор тарифа сводится к трём вопросам: какой средний онлайн, какой тип сервера, какой бюджет.
### Сервер для друзей: 4-8 человек
Скорее всего, это ванилла или лёгкие плагины. Берите тариф с 3-4 ГБ RAM, CPU от 4 ГГц, NVMe от 20 ГБ. Этого хватит и для небольшого модпака на 5-7 человек.
### Полусерьёзный проект: 15-40 онлайн
Здесь уже нужны Paper/Purpur, плагины экономики, защиты, регионов. Тариф - 6-8 ГБ RAM, CPU от 4.5 ГГц, NVMe 40-60 ГБ. Обязательно включена DDoS-защита.
### Крупный проект: 50+ онлайн
Если планируется онлайн больше 50 человек, бюджет уже исчисляется тысячами рублей в месяц. Берите 12-16 ГБ RAM, топовый CPU (Ryzen 7950X3D, Ryzen 9 7900 и аналоги), NVMe от 80 ГБ. Для пиковой нагрузки имеет смысл рассмотреть BungeeCord/Velocity с разделением миров на отдельные инстансы.
### Модпак с малым онлайном
Парадокс: 5 игроков на тяжёлом модпаке нагружают сервер сильнее, чем 30 игроков на Paper. Для модпаков выбирайте максимальную частоту CPU и не экономьте на RAM: 8-12 ГБ - это нижняя планка для современных сборок типа All the Mods 10, Create: Astral, GregTech New Horizons.
## Частые ошибки при переходе на 24/7
**1. Экономия на CPU в пользу RAM.** "Возьму 16 ГБ RAM на медленных ядрах, мир-то большой". Через неделю - TPS 5, лаги, плач игроков. Сначала частота, потом память.
**2. Игнорирование бэкапов.** "У меня же стабильный хостинг, зачем бэкапы". Стабильный хостинг защищает от падений железа, но не от ваших ошибок и кривых плагинов.
**3. Один сервер на всё.** Лобби, выживание, мини-игры - всё в одном процессе. На 50 онлайн начинаются проблемы. Лучше сразу планировать архитектуру с прокси.
**4. Игнор обновлений.** Версии Paper/Purpur выходят регулярно с фиксами производительности и безопасности. Раз в 2-4 недели обновляйтесь.
**5. Отсутствие тестового сервера.** Любое крупное обновление модпака или новый плагин - сначала на тестовом инстансе, потом на проде.
## FAQ
**Что значит хостинг Minecraft 24/7?**
Это размещение сервера на оборудовании дата-центра, которое работает без перерывов 24 часа в сутки 7 дней в неделю. Игроки могут зайти в любое время, даже когда вы спите или ваш компьютер выключен. Аптайм у нормального хостинга держится на уровне 99,9 процента и выше.
**Чем хостинг отличается от запуска сервера на домашнем ПК?**
Домашний ПК зависит от вашего интернет-провайдера, скачков напряжения и доступности самого компьютера. Дата-центр имеет резервное питание, дублирующие каналы связи, профессиональное охлаждение и DDoS-защиту.
**Подойдёт ли Aternos для постоянного сервера 24/7?**
Нет. Aternos автоматически выключает сервер через несколько минут после ухода последнего игрока и не даёт круглосуточной работы. Для постоянного проекта это не вариант.
**Сколько RAM нужно для сервера 24/7 на 20 игроков?**
Для ванильного или Paper-сервера на 20 онлайн обычно достаточно 4 ГБ RAM. Для модпаков на 20 игроков - 8-12 ГБ.
**Что произойдёт, если сервер крашнется ночью?**
На профессиональном хостинге включён автоматический рестарт - сервер поднимется заново за несколько секунд.
**Нужны ли бэкапы при работе 24/7?**
Обязательно. Автоматические бэкапы раз в сутки - минимум, лучше раз в 6-12 часов.
---
## Turbo сервер
URL: https://docs.pterohost.com/ru/turbo-server
Обновлено: 2023-07-20
Описание данного дополнения
---
Дополнение к вашему серверу даст вам:
Block I/O увеличено с 500 до 1000 (Диск работает в два раза быстрее) 2. Шустрые ядра (В случае если одно из ядер которое использует сервер, используется под 60% - оно будет переключено "на лету" на более свободное. Тем исключив даже маленький % на подвисания) 3. Расширенный канал сети (без ограничений) Только для серверов в Германии
4. Всегда производительные ядра (без энергоэффективных). Только для Intel 10-го поколения и выше, AMD Ryzen не имеет энергоэффективных ядер.
Данный тип хостинга добавлен 18.12.21 - он является необязательным. Производительность серверов без этого режима не изменилась, но если вам требуется скоростной диск и преимущества выше, мы добавили возможность приобрести это
---
## Защита от DDoS L7 (Application Layer): методы и инструменты
URL: https://docs.pterohost.com/ru/ddos-l7-protection
Обновлено: 2026-05-26
Разбираем атаки на прикладной уровень - HTTP flood, Slowloris, RUDY, scraping. WAF, rate limiting, JS-challenge, JA3-fingerprinting, конфиги nginx.
---
DDoS-атаки на седьмой уровень модели OSI (Application Layer) - самый коварный класс угроз для веб-проектов. В отличие от объёмных L3/L4-флудов, L7-атаки не забивают канал гигабитами мусорного трафика. Они имитируют поведение реальных пользователей и истощают ресурсы приложения: CPU воркеров nginx/Apache, пул соединений с MySQL, лимиты PHP-FPM, очереди в Redis. Сайт перестаёт отвечать при нагрузке в десятки мегабит - формально DDoS-защита датацентра "не видит" атаки, потому что трафик легитимен на сетевом уровне.
В этой статье разберём типы L7-атак, отличия от L4, методы фильтрации и приведём рабочие конфиги для nginx, HAProxy и ModSecurity.
## Что такое DDoS L7 и почему он опасен
Седьмой уровень OSI - это прикладные протоколы: HTTP/HTTPS, WebSocket, gRPC, DNS-over-HTTPS, SMTP. Атака L7 - это любой паттерн запросов на этих протоколах, который выводит из строя приложение, не нарушая при этом сетевые лимиты.
Ключевое отличие от L4:
| Параметр | L4 (SYN flood, UDP flood) | L7 (HTTP flood, Slowloris) |
|-----------------------|----------------------------------|--------------------------------|
| Объём | 100 Гбит/с - терабиты | Часто менее 100 Мбит/с |
| Кол-во пакетов | Миллионы PPS | Тысячи RPS |
| Что страдает | Сетевой стек, conntrack, канал | CPU, RAM, БД, пулы соединений |
| Видимость | Аномальный трафик легко заметен | Запросы выглядят легитимно |
| Метод фильтрации | iptables, BGP blackhole, scrubbing| WAF, rate limiting, challenge |
L7-атака может стоить злоумышленнику копейки: 50-100 заражённых устройств в ботнете способны положить непадготовленный сайт. При этом наблюдаемая полоса остаётся низкой - типичный анти-DDoS датацентра пропустит трафик как обычный.
## Типы L7-атак
### HTTP Flood (GET/POST)
Самый простой и распространённый вариант. Ботнет шлёт миллионы запросов на тяжёлые эндпоинты: поиск, фильтры каталога, генерация PDF, экспорт CSV. POST-флуд особенно опасен: каждое тело запроса нужно прочитать, распарсить, валидировать.
### Slowloris
Атакующий открывает множество TCP-соединений и отправляет HTTP-заголовки максимально медленно - по одному байту в несколько секунд. Apache с MPM prefork и Nginx с дефолтным `client_header_timeout 60s` держат соединения открытыми, пока пул воркеров не закончится.
### Slow POST (RUDY - R-U-Dead-Yet)
Аналог Slowloris для тела запроса. Бот указывает большой `Content-Length` и шлёт данные по байту в минуту. Воркер ждёт окончания, не имея возможности обработать другие запросы.
### Apache Range Header DoS
Запрос с заголовком `Range: bytes=0-,5-,10-,...` (тысячи диапазонов) заставляет сервер аллоцировать память под каждый диапазон. Старая CVE-2011-3192, но до сих пор встречается на legacy-стеках.
### Низкочастотные logic-атаки
Бот находит самый тяжёлый эндпоинт (например, `/api/search?q=...` с full-text поиском без индекса) и шлёт 5-10 запросов в секунду. На графиках ничего не видно, но БД ложится.
### Scraping и credential stuffing
Формально не DDoS, но эффект тот же: парсеры конкурентов или брутфорс логинов с тысяч прокси создают паразитную нагрузку. Credential stuffing - перебор баз "email:password" по форме входа.
## Методы защиты L7
### WAF (Web Application Firewall)
WAF анализирует HTTP-запросы и блокирует по сигнатурам и правилам. Популярные решения:
- **ModSecurity + OWASP CRS** - open-source, ставится модулем к nginx/Apache. Дефолтный набор правил (Core Rule Set) ловит SQLi, XSS, RCE, а также аномальные паттерны типа сотен запросов с одного User-Agent.
- **Cloudflare WAF** - облачный фильтр перед origin. Managed Rules от Cloudflare + кастомные expressions на языке Wirefilter.
- **BitNinja** - server-side агент, ставится на VPS. Анализирует поведение и автоматически банит IP.
- **NAXSI** - легковесная альтернатива ModSecurity для nginx с whitelist-подходом.
### Rate Limiting
Ограничение числа запросов на IP/cookie/токен. В nginx:
```nginx
http {
limit_req_zone $binary_remote_addr zone=req_per_ip:10m rate=10r/s;
limit_req_zone $binary_remote_addr zone=login_zone:10m rate=5r/m;
limit_conn_zone $binary_remote_addr zone=conn_per_ip:10m;
server {
listen 443 ssl http2;
location / {
limit_req zone=req_per_ip burst=20 nodelay;
limit_conn conn_per_ip 10;
proxy_pass http://backend;
}
location /login {
limit_req zone=login_zone burst=3 nodelay;
proxy_pass http://backend;
}
location /api/search {
limit_req zone=req_per_ip burst=5;
proxy_pass http://backend;
}
}
}
```
Зона `req_per_ip` хранит счётчики на 10 МБ (примерно 160 000 IP), лимит 10 запросов в секунду с burst 20. Для эндпоинта логина - жёсткие 5 запросов в минуту.
В HAProxy эквивалент - stick-tables:
```
frontend web
bind *:443 ssl crt /etc/haproxy/cert.pem
stick-table type ip size 100k expire 30s store http_req_rate(10s),conn_cur
http-request track-sc0 src
http-request deny if { sc_http_req_rate(0) gt 100 }
http-request deny if { sc_conn_cur(0) gt 50 }
default_backend app
```
### JS-challenge и CAPTCHA
При подозрении на бота возвращается страница с JavaScript-задачей: вычислить хеш, выполнить redirect, поставить cookie. Headless-боты без полноценного JS-движка отсеиваются. Cloudflare Turnstile и hCaptcha - современные альтернативы Google reCAPTCHA с меньшим UX-уроном.
### TLS- и HTTP/2-fingerprinting
JA3 (TLS) и Akamai HTTP/2 fingerprint - хеши параметров рукопожатия. Реальный браузер генерирует один профиль, curl/Go/Python - другой. Сопоставление с базой ботнетов (например, ja3er.com) даёт точный отсев без challenge для пользователя. В nginx добавляется через модуль `ngx_http_ssl_module` с переменными `$ssl_client_fingerprint`.
### Behavioral analysis
Системы вроде Cloudflare Bot Management и DataDome строят профиль поведения: скорость кликов, движение мыши, паттерн запросов, переходы между страницами. Реальный пользователь не открывает 50 товаров за секунду без перерыва.
### Sysctl для устойчивости к Slowloris
```bash
# /etc/sysctl.d/99-l7-hardening.conf
net.ipv4.tcp_max_syn_backlog = 8192
net.core.somaxconn = 4096
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_keepalive_time = 300
```
И в nginx уменьшить таймауты:
```nginx
client_header_timeout 10s;
client_body_timeout 10s;
send_timeout 10s;
keepalive_timeout 15s;
reset_timedout_connection on;
```
## Особенности игровых хостингов
У игровых проектов L7-поверхность шире, чем кажется. Помимо самого сервера на TCP/UDP-порту, есть:
- Веб-панель управления (Pterodactyl, Pufferpanel) - HTTPS на 443.
- API биллинга и магазин донатов - REST/GraphQL.
- Auth-сервер Minecraft (AuthMe REST API, Mojang prefetch).
- WebSocket для консоли и live-чата.
Auth-эндпоинты Minecraft - частая мишень. Бот заваливает `/auth/register` или `/api/auth/login` тысячами попыток в минуту, что нагружает БД сильнее, чем основной игровой трафик. Rate limit на 5-10 запросов в минуту с IP решает задачу.
Подробнее о защите игровых нод от объёмных атак - в статье [Защита от DDoS L4](/ru/ddos-l4-protection) и [общий обзор DDoS-защиты](/ru/ddos-protection).
> **Pterohost** - хостинг с многоуровневой DDoS-защитой L4+L7, NVMe SSD и круглосуточной поддержкой. Промокод **4START** даёт -20% на первый заказ.
> [Заказать защищённый хостинг](https://my.pterohost.com/store/?utm_source=docs&utm_medium=article&utm_campaign=ddos-l7-protection)
## Пример детектирования L7-атаки
В access-логе nginx заметны характерные паттерны:
```
grep -E "POST /api/login" /var/log/nginx/access.log | \
awk '{print $1}' | sort | uniq -c | sort -rn | head -20
```
Если один IP делает 500+ запросов на /login за минуту - это credential stuffing. Бан через fail2ban:
```ini
# /etc/fail2ban/jail.d/nginx-login.conf
[nginx-login]
enabled = true
filter = nginx-login
logpath = /var/log/nginx/access.log
maxretry = 20
findtime = 60
bantime = 3600
action = iptables-multiport[name=login, port="80,443"]
```
Фильтр `/etc/fail2ban/filter.d/nginx-login.conf`:
```
[Definition]
failregex = ^ .* "POST /(api/)?login.*" (401|403|429)
ignoreregex =
```
## Архитектурные принципы
1. **Origin IP должен быть скрыт**. Если злоумышленник знает реальный адрес сервера, любой Cloudflare обходится через прямое подключение. Закройте порты 80/443 файрволом для всех, кроме IP-диапазонов CDN.
2. **Кешируйте статику** - картинки, CSS, JS отдавайте через CDN или nginx с `expires 30d`. Это снимает 70-90% нагрузки даже без атак.
3. **Разделяйте критичные эндпоинты** - логин, поиск, экспорт должны быть на отдельных upstream с собственными лимитами.
4. **Логируйте JA3 и User-Agent** - без логов невозможно настроить точечные правила.
5. **Используйте multi-layer защиту**: CDN/WAF на edge + rate limit на nginx + fail2ban + WAF-правила на приложении.
Для веб-сайтов на VPS с панелью Plesk - смотрите [настройку защиты Plesk](/ru/plesk-protection). Для общего понимания производительности сервера под нагрузкой - [как работает CPU](/ru/how-work-cpu) и [сколько RAM нужно серверу](/ru/skolko-ram-nuzhno-serveru).
> **Pterohost** защищает игровые серверы и веб-проекты от атак L4+L7 на уровне дата-центра и приложения. Промокод **4START** - скидка 20% на первый месяц.
> [Подобрать тариф](https://my.pterohost.com/store/?utm_source=docs&utm_medium=article&utm_campaign=ddos-l7-protection)
## Частые вопросы
### Чем DDoS L7 отличается от L4?
L4-атаки забивают канал и conntrack пакетами на транспортном уровне (SYN, UDP, ACK). L7-атаки имитируют легитимные HTTP-запросы и истощают ресурсы приложения - CPU, потоки воркеров, пул соединений с БД. L7 сложнее детектировать: запросы валидны с точки зрения TCP/TLS.
### Достаточно ли Cloudflare для защиты от L7?
Для типовых веб-проектов - да, но при условии корректной настройки правил WAF, Bot Fight Mode и сокрытия origin IP. Cloudflare не панацея: умные ботнеты обходят базовые challenge через headless-браузеры. Под высокую нагрузку нужны платные тарифы с Advanced Rate Limiting и Bot Management.
### Как защитить веб-панель игрового хостинга от DDoS L7?
Закрыть админку по IP-allowlist или basic auth на уровне nginx, включить fail2ban на /login, поставить rate limit 5-10 req/min на эндпоинты авторизации, использовать TLS-fingerprinting (JA3) для отсева ботов. Auth-сервер Minecraft (например, AuthMe API) защищается аналогично - rate limit на /register и /login.
### Что такое JA3-фингерпринт и зачем он нужен?
JA3 - это MD5-хеш параметров TLS ClientHello (версия, cipher suites, расширения). У реального Chrome один JA3, у Go-бота - другой. Сравнение JA3 со списком известных ботнетов отсеивает атакующих ещё до уровня HTTP, не требуя JS-challenge.
---
## Защита Minecraft-сервера от DDoS: L4, L7 и прокси
URL: https://docs.pterohost.com/ru/minecraft-server-ddos-protection
Обновлено: 2026-06-05
Как защитить Minecraft-сервер от DDoS-атак: L4 UDP/TCP флуд, L7 бот-атаки, EpicGuard, Velocity прокси и выбор хостинга с фильтрацией.
---
> **Кратко:** Minecraft-серверы атакуют двумя способами - флудом трафика на сетевом уровне (L4) и ботами на уровне приложения (L7). Защита строится на трёх слоях: хостинг с фильтрацией трафика, прокси-сервер Velocity для скрытия реального IP и антибот-плагин EpicGuard на уровне логина.
# Защита Minecraft-сервера от DDoS: L4, L7 и прокси
**Minecraft-серверы в 2026 году атакуют чаще, чем большинство веб-проектов. Причина проста: низкий порог входа для атакующего, доступность ботнетов в аренду и высокая мотивация у конкурентов или грифёров. Типичный сервер на 50-200 игроков может получить атаку мощностью 5-20 Гбит/с, которая за считанные секунды положит как сам сервер, так и весь узел хостинга, если у провайдера нет фильтрации. Понять, как работают атаки, и выстроить многоуровневую защиту - задача каждого администратора, который хочет держать сервер онлайн.**
> **Pterohost** - игровой хостинг с аппаратной DDoS-фильтрацией L4/L7, NVMe-дисками и поддержкой 24/7. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-server-ddos-protection)
## Типы DDoS-атак на Minecraft-серверы
Прежде чем строить защиту, нужно понять, что именно атакуют. Атаки делятся на два принципиально разных класса.
### L4 - сетевой уровень (UDP и TCP флуд)
Атаки уровня L4 работают на уровне транспортного протокола и не "понимают" Minecraft. Цель - забить канал или истощить ресурсы сетевого стека сервера.
**UDP Flood** - самый распространённый тип. Атакующий шлёт миллионы UDP-пакетов на порт 25565 (или любой другой). Minecraft использует TCP, поэтому сами пакеты сервер отбросит, но канал и CPU сетевой карты будут перегружены. Даже 1 Гбит/с UDP-мусора кладёт средний VPS.
**TCP SYN Flood** - отправка тысяч SYN-пакетов без завершения рукопожатия. Сервер держит half-open соединения в очереди, таблица состояний переполняется, новые игроки не могут подключиться.
**Amplification-атаки (усиление)** - атакующий использует сторонние серверы (DNS, NTP, Memcached) для усиления трафика. На каждый байт запроса жертва получает 10-100 байт ответа. Такие атаки достигают сотен Гбит/с.
Против L4 атак эффективна только фильтрация на уровне хостинга или upstream-провайдера - клиентский firewall не поможет, когда канал уже забит.
### L7 - уровень приложения (бот-атаки на логин)
Атаки L7 работают на уровне протокола Minecraft. Боты подключаются, инициируют handshake и отправляют пакеты логина - имитируя реальных игроков. Это создаёт нагрузку на Java-процесс сервера.
**Login flood** - сотни ботов одновременно проходят стадию логина. Каждое соединение потребляет поток, память и CPU для шифрования. Онлайн-режим (premium) частично помогает, но авторизация через session.minecraft.net может стать узким местом.
**Ping flood** - массовые запросы статуса сервера (пакет 0xFE). Лёгкие боты, почти не потребляющие ресурсов у атакующего, но генерирующие нагрузку на стороне сервера.
**Join-и-выход циклы** - боты подключаются, ждут несколько секунд и отключаются. Постоянные события join/leave вызывают лишние операции с чанками, базами данных плагинов и обработчиками событий.
## Признаки атаки в логах и метриках
Умение быстро распознать атаку позволяет оперативно среагировать.
**В логах сервера (`latest.log`):**
```
[12:03:44] [Server thread/WARN]: Can't keep up! Is the server overloaded?
[12:03:45] [Async Chat Thread/INFO]: bot12345[/198.51.100.23:54321] logged in
[12:03:45] [Async Chat Thread/INFO]: bot12346[/198.51.100.24:54321] logged in
[12:03:45] [Async Chat Thread/INFO]: bot12347[/198.51.100.25:54321] logged in
```
Сотни строк логина за несколько секунд с разных IP - явный признак L7 атаки.
**Диагностика через командную строку:**
```bash
# Число TCP-соединений на порт Minecraft
netstat -an | grep :25565 | grep ESTABLISHED | wc -l
# Топ IP по числу соединений
netstat -an | grep :25565 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -20
# Трафик в реальном времени
iftop -i eth0 -f "port 25565"
# Загрузка CPU и сети
htop
```
**Что считать нормой:** 50-200 игроков создают 50-200 установленных соединений. Если счётчик `netstat` показывает тысячи - сервер под атакой или в очереди много ботов.
**Нагрузка на CPU:** при атаке L7 Java-процесс Minecraft может занять 100% одного ядра ещё до того, как упадёт TPS. Мониторьте через `top` или панель хостинга.
## Фильтрация на уровне хостинга - первый рубеж
Ни один плагин не спасёт сервер, если канал уже забит мусорным трафиком. Защита начинается у провайдера.
**Что должен делать хостинг:**
- Фильтрация L3/L4 в upstream - отсев UDP-флуда до попадания на ваш сервер
- Профили для игровых протоколов - фильтры, обученные на трафике Minecraft (TCP 25565), а не только HTTP
- Scrubbing-центры - специализированные узлы, которые пропускают трафик через фильтрацию и отправляют только "чистый" поток
- Указанная ёмкость защиты в Гбит/с - чем больше, тем надёжнее при volumetric-атаках
**Что спрашивать у хостинга перед покупкой:**
- "Какой тип DDoS-защиты включён в тариф?"
- "Есть ли фильтрация игровых протоколов (не только HTTP)?"
- "Что происходит с сервером при атаке 10+ Гбит/с - фильтрация или null-route?"
- "Есть ли SLA по доступности при атаке?"
Хостинг, который отвечает "null-route" (то есть просто блокирует ваш IP при атаке), не обеспечивает реальной защиты.
## Firewall на уровне сервера
Даже если хостинг фильтрует основной мусор, правильный iptables/nftables на самом сервере снижает нагрузку и блокирует часть атак.
**Базовые правила iptables для Minecraft:**
```bash
# Ограничение новых подключений на порт 25565 (не более 10 новых соединений в секунду с одного IP)
iptables -A INPUT -p tcp --dport 25565 -m state --state NEW -m recent --set --name MC_CONN
iptables -A INPUT -p tcp --dport 25565 -m state --state NEW -m recent --update --seconds 1 --hitcount 10 --name MC_CONN -j DROP
# Защита от SYN-флуда
iptables -A INPUT -p tcp --dport 25565 --syn -m limit --limit 25/s --limit-burst 50 -j ACCEPT
iptables -A INPUT -p tcp --dport 25565 --syn -j DROP
# Блокировка невалидных пакетов
iptables -A INPUT -m state --state INVALID -j DROP
# Разрешить установленные соединения
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
```
**Тюнинг ядра Linux (sysctl) для защиты от SYN-флуда:**
```bash
# /etc/sysctl.d/99-minecraft-ddos.conf
# SYN cookies - защита от SYN-флуда без таблицы состояний
net.ipv4.tcp_syncookies = 1
# Размер очереди SYN
net.ipv4.tcp_max_syn_backlog = 4096
# Игнорировать ICMP redirect
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
# Защита от спуфинга IP
net.ipv4.conf.all.rp_filter = 1
```
Применить без перезагрузки: `sysctl -p /etc/sysctl.d/99-minecraft-ddos.conf`
**Важно:** правила firewall работают только если трафик вообще дошёл до сервера. Против объёмных атак (volumetric flood) это не поможет - нужна фильтрация выше по цепочке.
## EpicGuard - антибот-плагин для защиты от L7
EpicGuard - один из самых активно поддерживаемых антибот-плагинов для Paper/Spigot. На 2026 год актуальна версия для Minecraft 1.20+/1.21+.
**Установка:**
1. Скачать JAR с [GitHub releases EpicGuard](https://github.com/4drian3d/EpicGuard)
2. Положить в `plugins/`
3. Перезапустить сервер
4. Отредактировать `plugins/EpicGuard/config.yml`
**Ключевые настройки `config.yml`:**
```yaml
# Максимум подключений с одного IP в секунду
connection-throttle:
enabled: true
# Подключений в секунду с одного IP
connections-per-second: 3
# Время бана при превышении (секунды)
ban-time: 120
# Проверка через капчу при подозрении
captcha:
enabled: true
# Тип капчи: MAP (карта в игре) или CHAT (в чате)
type: MAP
# Геоблокировка - блокировать страны, не типичные для вашей аудитории
geo-blocker:
enabled: true
# Режим: BLACKLIST (блокировать перечисленные) или WHITELIST (разрешать только перечисленные)
mode: BLACKLIST
countries:
- CN
- RU # раскомментировать только если ваша аудитория не из России
# Добавляйте коды стран по ситуации
# Проверка VPN/прокси (требует API-ключ)
vpn-blocker:
enabled: false # включить при наличии ключа от ip-api.com или аналога
# Лимит на количество аккаунтов с одного IP
accounts-per-ip:
enabled: true
limit: 3
# Whitelist для известных игроков
whitelist:
enabled: true
```
**Команды EpicGuard в игре:**
```
/epicguard status - текущая статистика (заблокировано/разрешено)
/epicguard whitelist add <ник> - добавить игрока в whitelist
/epicguard blacklist add - заблокировать IP вручную
/epicguard reload - перезагрузить конфиг без рестарта
```
EpicGuard не останавливает атаку полностью - он не позволяет ботам загружать сервер, отфильтровывая их до входа в игровой мир. Это критично при L7 атаках, когда канал чист, но CPU перегружен обработкой псевдо-логинов.
## Velocity - прокси для скрытия реального IP
Velocity - современный прокси-сервер для Minecraft, разработанный командой PaperMC. Его главная роль в защите - скрыть реальный IP игрового сервера и принять первый удар на себя.
**Архитектура с Velocity:**
```
Игрок -> [IP прокси: 25565] -> Velocity -> [внутренний IP бэкенда: 25566]
```
Бэкенд слушает только на `127.0.0.1:25566` или в приватной сети. Его IP не известен атакующему. Даже если Velocity упадёт под атакой, бэкенд останется нетронутым - достаточно сменить IP прокси.
**Установка Velocity:**
```bash
# Скачать актуальный JAR
wget https://api.papermc.io/v2/projects/velocity/versions/3.4.0-SNAPSHOT/builds/latest/downloads/velocity-3.4.0-SNAPSHOT.jar -O velocity.jar
# Запустить для генерации конфига
java -Xms512M -Xmx512M -jar velocity.jar
```
**Основной конфиг `velocity.toml`:**
```toml
# Порт, на котором слушает прокси (публичный)
bind = "0.0.0.0:25565"
# Имя сервера в мотд
motd = "&aMой сервер"
# Максимум игроков
show-max-players = 100
# Forwarding: modern - единственный безопасный режим
player-info-forwarding-mode = "MODERN"
# Защита от атак
[advanced]
# Тайм-аут подключения (мс) - убрать зависшие соединения
connection-timeout = 5000
# Читать тайм-аут (мс)
read-timeout = 30000
# Балансировка нагрузки (если несколько бэкендов)
# ...
[servers]
# Список бэкенд-серверов (внутренние адреса)
lobby = "127.0.0.1:25566"
[forced-hosts]
# Принудительный роут по имени хоста
"play.myserver.ru" = ["lobby"]
```
**Настройка Paper-бэкенда для работы с Velocity:**
В `paper-global.yml` (или `config/paper-global.yml`):
```yaml
proxies:
velocity:
enabled: true
online-mode: true
# Ключ из velocity.toml -> forwarding-secret
secret: "ВАШ_СЕКРЕТНЫЙ_КЛЮЧ_ИЗ_VELOCITY"
```
В `server.properties`:
```properties
online-mode=false
server-ip=127.0.0.1
server-port=25566
```
**Важно:** бэкенд должен быть доступен только через Velocity. Закройте порт 25566 в firewall для всех, кроме IP Velocity (или `127.0.0.1` при локальной установке).
```bash
# Закрыть прямой доступ к бэкенду
iptables -A INPUT -p tcp --dport 25566 ! -s 127.0.0.1 -j DROP
```
## Скрытие реального IP - почему это критично
Даже идеальная защита на уровне плагинов бесполезна, если атакующий знает реальный IP сервера и бьёт напрямую, минуя прокси.
**Как атакующие узнают IP:**
- Исторические DNS-записи (проверьте через SecurityTrails или аналоги)
- Сниффинг трафика - если IP когда-либо светился в публичных запросах
- Социальная инженерия - старые скрины, логи чатов с IP
- Базы данных утечек
**Меры по защите IP:**
1. Никогда не публиковать реальный IP в открытых источниках. Всегда давать домен.
2. При переезде на новый IP сделать паузу 7-14 дней перед публичным анонсом и проверить, что старый IP не индексируется.
3. Velocity / BungeeCord держать на отдельном сервере с отдельным IP. Если у хостинга есть возможность выдать "чистый" IP - использовать его для прокси.
4. Настроить DNS TTL = 60 секунд - при атаке можно быстро сменить IP в DNS.
5. Не использовать реальный IP сервера для SSH или панели управления - отдельный management-порт или VPN.
## Дополнительные меры защиты на уровне плагинов
Кроме EpicGuard, есть ряд настроек и инструментов, усиливающих защиту.
**Настройки `server.properties` против спама:**
```properties
# Минимальная задержка между сообщениями в чате (мс) - снижает флуд
rate-limit=0
# Уменьшить тайм-аут для неактивных соединений
# (в Paper настраивается отдельно)
```
**Paper: настройки против атак (`paper-global.yml`):**
```yaml
# Тайм-аут подключения
packet-limiter:
all-packets:
action: DROP
interval: 7.0
max-packet-rate: 500.0
overrides:
ServerboundPlaceRecipePacket:
action: DROP
interval: 4.0
max-packet-rate: 5.0
```
**Мониторинг через Spark (плагин профилировщик):**
```
/spark tps - показывает TPS (20 = норма, < 15 = проблема)
/spark health - общая информация о нагрузке
/spark profiler - профилировщик CPU для выявления узких мест
```
Spark помогает понять, что именно грузит сервер во время атаки - конкретный плагин или обработка сетевых пакетов.
## Выбор хостинга с DDoS-защитой для Minecraft
Выбирая хостинг, смотрите не только на "есть DDoS-защита" в описании, но и на детали.
| Параметр | На что смотреть |
|---|---|
| Тип фильтрации | L3/L4 и L7 - оба уровня |
| Ёмкость защиты | Чем больше Гбит/с, тем лучше (10+ Гбит/с - минимум) |
| Игровые профили | Специфическая фильтрация для Minecraft TCP |
| Поведение при атаке | Фильтрация, а не null-route |
| Время реакции | Автоматическая фильтрация без участия человека |
| Сеть | Собственная AS или аренда у крупного провайдера |
**Сигналы тревоги при выборе хостинга:**
- "Защита до 1 Гбит/с" - недостаточно для серьёзных атак
- "При атаке IP блокируется на 30 минут" - это null-route, не защита
- Нет информации о типе фильтрации
## Связанные материалы
Подробнее о принципах работы DDoS-фильтрации на уровне провайдера читайте в статье [Защита от DDoS-атак](/ru/ddos-protection). Специфику фильтрации volumetric-атак на сетевом уровне разбираем в [DDoS L4 защита: как работает фильтрация](/ru/ddos-l4-protection). После настройки защиты рекомендуем оптимизировать сам сервер - материал [Оптимизация Minecraft-сервера](/ru/minecraft-server-optimization) поможет снизить нагрузку в штатном режиме.
## Заключение
Защита Minecraft-сервера от DDoS строится на трёх уровнях: фильтрация трафика хостингом, прокси-сервер Velocity для скрытия реального IP и антибот-плагин EpicGuard против L7 атак. Ни один из этих уровней не работает в одиночку - только вместе они дают надёжную защиту. Настройте firewall с лимитами соединений, включите sysctl-защиту от SYN-флуда и следите за логами сервера - ранняя диагностика атаки позволяет реагировать до того, как сервер упадёт. Регулярно проверяйте, что реальный IP бэкенда нигде не засветился, и обновляйте плагины - атаки эволюционируют, и актуальные версии EpicGuard и Velocity закрывают новые векторы.
> **Pterohost** - хостинг Minecraft с аппаратной DDoS-фильтрацией, быстрым NVMe-хранилищем и живой поддержкой в любое время суток. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-server-ddos-protection)
---
## Как снизить пинг на игровом сервере: причины и решения
URL: https://docs.pterohost.com/ru/game-server-ping-optimization
Обновлено: 2026-08-28
Разбираем причины высокого пинга на игровом сервере и даём практические решения: выбор дата-центра, настройка сети, диагностика маршрута.
---
> **Кратко:** Высокий пинг на игровом сервере чаще всего вызван удалённым дата-центром, перегрузкой сервера или плохим маршрутом трафика. Первый шаг - измерить задержку командами ping и mtr, затем сменить локацию хостинга или оптимизировать настройки сервера.
# Как снизить пинг на игровом сервере: причины и решения
**Пинг - один из главных параметров комфортной игры. Даже мощный сервер с топовым железом не спасёт ситуацию, если трафик проходит через лишние узлы на другом конце страны. В 2026 году игроки стали требовательнее: задержка выше 60 мс в шутерах или выживалках с PvP сразу вызывает жалобы в чате. В этой статье разберём, что конкретно влияет на пинг, как его диагностировать стандартными инструментами и какие шаги реально помогают снизить задержку до минимума.**
> **Pterohost** - игровой хостинг с NVMe-дисками, DDoS-защитой и поддержкой 24/7, серверы в Германии и Финляндии. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=game-server-ping-optimization)
## Что такое пинг и чем он отличается от лагов
Пинг (RTT, Round-Trip Time) - это время в миллисекундах, за которое сетевой пакет проходит путь от клиента до сервера и обратно. Измеряется протоколом ICMP (команда `ping`) или на уровне приложения (в самой игре).
Важно сразу разделить два понятия, которые часто путают:
| Термин | Что это | Причина |
|---|---|---|
| Пинг (сетевой) | Сетевая задержка, мс | Расстояние, маршрут, провайдер |
| Лаги сервера (TPS) | Просадки тиков/секунду | Перегрузка CPU, плагины, чанки |
| Джиттер | Нестабильность пинга | Перегрузка канала, Wi-Fi, плохой маршрут |
Если игрок пишет "лаги", это не всегда сетевая задержка. Возможно, TPS сервера упал ниже нормы из-за нагрузки - и тогда менять хостинг бесполезно, нужно оптимизировать сам сервер.
## Основные причины высокого пинга
### 1. Географическое расстояние до дата-центра
Сигнал распространяется по оптоволокну со скоростью около 200 000 км/с (2/3 скорости света). Отсюда считается физический потолок: RTT не может быть меньше, чем удвоенное расстояние, делённое на 200 000 км/с. Для пары Москва - Франкфурт это примерно 2000 км по прямой и около 20 мс минимума. Реальный маршрут длиннее прямой, а на каждом узле пакет ещё и обрабатывается, поэтому на практике выходит 35-50 мс.
В таблице ниже расстояния - это ортодромия (расстояние по большому кругу) от Москвы, теоретический минимум посчитан по формуле выше, а колонка «на практике» - типичный диапазон с поправкой примерно в 1.5-2 раза на реальный маршрут и промежуточные узлы.
| Локация DC | Расстояние от Москвы | Теоретический минимум | На практике |
|---|---|---|---|
| Москва | 0 км | ~0 мс | 1-5 мс |
| Санкт-Петербург | ~630 км | ~6 мс | 10-20 мс |
| Хельсинки | ~890 км | ~9 мс | 15-30 мс |
| Варшава | ~1150 км | ~12 мс | 20-35 мс |
| Фалькенштайн | ~1770 км | ~18 мс | 30-50 мс |
| Нюрнберг | ~1910 км | ~19 мс | 30-50 мс |
| Франкфурт | ~2020 км | ~20 мс | 35-50 мс |
| Амстердам | ~2150 км | ~22 мс | 35-55 мс |
| Лондон | ~2500 км | ~25 мс | 40-60 мс |
| США (Нью-Йорк) | ~7510 км | ~75 мс | 100-140 мс |
Числа в колонке «на практике» - ориентир, а не обещание: пинг у конкретного игрока зависит от его провайдера и маршрута не меньше, чем от километров. Проверять нужно измерением, а не по таблице.
Вывод: для аудитории из СНГ и Европы разумный компромисс - площадки Северной и Центральной Европы. Серверы Pterohost стоят в Германии и Финляндии, и от Москвы до них те же 30-50 мс, что и до любого другого европейского дата-центра.
### 2. Качество маршрутизации (BGP-пути)
Даже при близком расстоянии пинг может быть высоким, если трафик идёт через некачественного транзитного провайдера. BGP (Border Gateway Protocol) управляет маршрутами трафика в интернете, и иногда пакеты делают крюк через третью страну.
Типичный пример: хостинг в Москве, но трафик от провайдера в Краснодаре идёт через Франкфурт из-за неоптимальных пирингов.
### 3. Перегрузка самого сервера
Когда CPU сервера загружен на 90%+, сетевые пакеты начинают обрабатываться с задержкой. Игроки видят это как рост пинга внутри игры, хотя сетевая задержка по ICMP остаётся нормальной.
Проверить нагрузку на Linux:
```bash
top
# или более удобный вариант:
htop
# Смотреть: %CPU, load average
```
Нормальный load average - не выше количества ядер CPU. Если на 4-ядерном сервере load average = 8, сервер перегружен.
### 4. Домашний интернет и Wi-Fi игроков
На стороне игрока пинг повышают:
- Wi-Fi соединение (добавляет 5-30 мс и джиттер)
- Перегруженный домашний роутер
- Провайдер с плохим пирингом до нужного DC
- VPN (добавляет 20-100 мс в зависимости от сервера)
Это вне контроля администратора сервера, но можно порекомендовать игрокам отключить VPN и перейти на Ethernet.
### 5. DDoS-атаки и перегрузка канала
Под атакой пинг на сервер резко растёт из-за переполнения канала мусорным трафиком. Без аппаратной DDoS-защиты хостинга это неуправляемо.
## Как измерить пинг и диагностировать маршрут
### Команда ping
Базовая проверка задержки:
```bash
# Windows
ping -n 30 your-server-ip
# Linux / macOS
ping -c 30 your-server-ip
```
Что смотреть в выводе:
- `time=` - RTT каждого пакета в мс
- `min/avg/max/mdev` - минимум/среднее/максимум/отклонение
- `packet loss` - потеря пакетов (норма: 0%)
Пример хорошего результата:
```
64 bytes from 45.11.16.73: icmp_seq=1 ttl=55 time=12.4 ms
...
rtt min/avg/max/mdev = 11.2/12.8/15.1/1.1 ms, 0% packet loss
```
Отклонение (mdev) выше 5-10 мс указывает на джиттер.
### Команда mtr (My Traceroute)
mtr - лучший инструмент для диагностики маршрута. Показывает каждый промежуточный узел, задержку и потери пакетов на каждом хопе.
Установка и запуск:
```bash
# Debian/Ubuntu
apt install mtr-tiny
# Запуск
mtr --report --report-cycles 50 your-server-ip
```
Пример вывода:
```
HOST: client-pc Loss% Snt Last Avg Best Wrst StDev
1. 192.168.1.1 0.0% 50 0.5 0.5 0.4 0.8 0.1
2. 10.10.0.1 0.0% 50 5.2 5.4 4.9 7.1 0.4
3. msk-transit1.provider.ru 0.0% 50 11.3 11.8 10.9 14.2 0.7
4. 45.11.16.73 0.0% 50 12.4 12.8 11.2 15.1 1.1
```
Если на каком-то хопе резко растёт задержка или появляются потери - это узкое место маршрута.
### Tracert (Windows)
```cmd
tracert your-server-ip
```
Аналог traceroute на Windows. Менее информативен, чем mtr, но доступен без установки.
### Встроенные команды в игровых серверах
Для Minecraft (Paper/Spigot) в консоли:
```
tps
# Показывает TPS (норма: 20.0)
```
Плагин Spark для детальной диагностики:
```
/spark tps
/spark profiler
```
## Выбор оптимальной локации хостинга
Перед заказом сервера проверьте пинг до дата-центра хостинга. Если провайдер публикует IP тестового сервера (looking glass), запустите mtr до него.
Алгоритм выбора локации:
1. Определите основную географию игроков (страна, регион)
2. Найдите ближайший дата-центр потенциального хостинга
3. Запустите `mtr --report --report-cycles 20 ` с разных точек (свой ПК + онлайн-сервисы типа ping.pe)
4. Выберите локацию с минимальным avg и минимальным StDev
Если аудитория смешана - СНГ и Европа - выигрывает европейская площадка: она даёт приемлемый пинг обеим половинам, тогда как удалённый от Европы дата-центр половину аудитории теряет.
## Настройки сервера для снижения задержки
### Minecraft: оптимизация сети в server.properties
```properties
# server.properties
# Количество потоков для обработки сети (рекомендуется = кол-ву ядер CPU)
# Параметр для Paper/Purpur (не vanilla)
# В vanilla этот параметр недоступен
# Ограничение пакетов (защита от флуда, не влияет на честный пинг)
max-packet-rate=500
# Отключить онлайн-режим только если знаете зачем (влияет на безопасность)
online-mode=true
# Размер вью-дистанции: меньше = меньше нагрузки = стабильнее TPS
view-distance=10
simulation-distance=8
```
### Paper/Purpur: config/paper-global.yml
```yaml
network:
# Сжатие пакетов: 256 - баланс между CPU и трафиком
# При значении -1 сжатие отключено (хуже для медленных соединений, лучше для CPU)
compression-threshold: 256
```
Снижение `view-distance` с 16 до 10-12 часто даёт +2-4 TPS и заметно стабилизирует пинг при высокой онлайне.
### Minecraft: оптимизация garbage collector (GC)
Паузы GC вызывают короткие спайки пинга у всех игроков одновременно. Для Java 17+ рекомендуется ZGC или G1GC с настройкой:
```bash
# Флаги запуска для 8 ГБ RAM (ZGC - Java 17+)
java -Xms6G -Xmx6G -XX:+UseZGC -XX:+ZGenerational \
-jar server.jar --nogui
# Альтернатива: Aikar's flags для G1GC
java -Xms6G -Xmx6G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:+AlwaysPreTouch \
-XX:G1NewSizePercent=30 \
-XX:G1MaxNewSizePercent=40 \
-XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 \
-XX:G1HeapWastePercent=5 \
-XX:G1MixedGCCountTarget=4 \
-XX:InitiatingHeapOccupancyPercent=15 \
-XX:G1MixedGCLiveThresholdPercent=90 \
-XX:G1RSetUpdatingPauseTimePercent=5 \
-XX:SurvivorRatio=32 \
-XX:+PerfDisableSharedMem \
-XX:MaxTenuringThreshold=1 \
-jar server.jar --nogui
```
Флаги Aikar's актуальны для Java 17-21 с G1GC и показывают стабильные 20 TPS на нагруженных серверах.
### Rust и другие игры: network-конфиги
Для Rust сервера в `server.cfg`:
```
# Сжатие трафика
server.compression 1
# Частота тиков сети (по умолчанию 32, можно поднять до 64 на мощном железе)
server.tickrate 32
```
Для Project Zomboid в `servertest.ini`:
```ini
# Порт и UDP-настройки задаются при старте, но убедитесь что UDP-порты открыты:
# 16261 (TCP/UDP основной) + 16262-16272 (UDP для игровых данных)
```
## Пинг vs TPS: как отличить сетевую проблему от серверной
Когда игроки жалуются на лаги, важно правильно диагностировать причину:
| Симптом | Вероятная причина |
|---|---|
| Высокий пинг у всех игроков одновременно | Перегрузка сети/DDoS или перегруженный CPU |
| Высокий пинг только у части игроков | Проблема у конкретного провайдера/регионе |
| Пинг нормальный, но блоки/моб с задержкой | Низкий TPS сервера |
| Периодические спайки пинга у всех | Паузы GC, спайки нагрузки |
| Постоянный высокий пинг у одного игрока | Wi-Fi, VPN или плохой провайдер |
Для Minecraft быстрая проверка TPS в консоли:
```
tps
# Вывод: TPS from last 1m, 5m, 15m: 19.97, 19.95, 19.91
```
TPS выше 19.5 - норма. Ниже 18 - сервер не успевает обрабатывать тики, нужна оптимизация.
## Оптимизация на стороне хостинга: что реально важно
При выборе хостинга обращайте внимание на:
**NVMe SSD вместо HDD/SATA SSD.** Медленные диски увеличивают время загрузки чанков, что косвенно увеличивает воспринимаемую задержку. NVMe даёт в 5-10 раз более быструю запись чанков.
**Тип CPU и частота ядер.** Игровые серверы (особенно Minecraft) работают в основном на одном потоке. Высокочастотные процессоры (Ryzen 9, Core i9 с boost до 5+ ГГц) обрабатывают тики быстрее, чем многоядерные серверные XEON с низкой частотой.
**Качество uplink провайдера.** Хороший хостинг имеет прямые пиринги с крупными российскими и европейскими сетями (Ростелеком, МТС, Билайн, RETN, DE-CIX). Это напрямую влияет на BGP-маршруты.
**Аппаратная DDoS-защита.** Под атакой пинг растёт из-за мусорного трафика. Хостинг с фильтрацией на уровне сети (не программной) защищает от деградации производительности.
## Проверка результата после оптимизации
После любых изменений проверяйте эффект измеримо:
```bash
# Замер пинга до и после (50 пакетов для статистики)
ping -c 50 your-server-ip | tail -2
# Детальный маршрут
mtr --report --report-cycles 100 --show-ips your-server-ip
# На сервере - нагрузка CPU
top -b -n 1 | head -20
```
Ведите лог: запишите средний пинг и TPS до изменений, затем после. Без измерений нельзя понять, помогло ли изменение.
## Связанные материалы
Если пинг нормальный, но сервер лагает - читайте [гайд по устранению лагов Minecraft сервера](/ru/minecraft-server-lags-fix). Для защиты от DDoS-атак, которые резко роняют пинг, смотрите статью [DDoS-защита игрового сервера](/ru/ddos-protection). Если нужно максимальное железо под требовательный сервер - [обзор Turbo-серверов Pterohost](/ru/turbo-server).
## Заключение
Снижение пинга на игровом сервере - это комплексная задача. Самый быстрый результат даёт правильный выбор локации дата-центра: для аудитории из СНГ и Европы это площадки Северной и Центральной Европы. Дальше - диагностика маршрута через mtr, оптимизация GC и параметров сервера, контроль TPS. Не путайте сетевую задержку с серверными лагами - у них разные причины и разные решения. Измеряйте пинг до и после изменений, чтобы видеть реальный эффект.
> **Pterohost** - игровой хостинг на NVMe с аппаратной DDoS-защитой и живой поддержкой 24/7. Серверы расположены в Германии и Финляндии. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=game-server-ping-optimization)
---
## Проброс портов для Minecraft-сервера дома и на хостинге
URL: https://docs.pterohost.com/ru/minecraft-server-port-forwarding
Обновлено: 2026-06-10
Как пробросить порт 25565 на роутере для Minecraft-сервера, почему друзья не подключаются и как проверить порт онлайн.
---
> **Кратко:** Для подключения друзей к домашнему Minecraft-серверу нужно пробросить порт 25565 через настройки роутера (UPnP или ручное правило). Если провайдер выдал серый IP - проброс не поможет, нужен белый IP или хостинг.
# Проброс портов для Minecraft-сервера дома и на хостинге
**Поднять Minecraft-сервер у себя дома - задача несложная, но первый барьер, с которым сталкиваются все: друзья не могут подключиться.** Сервер работает, вы заходите на него через `localhost`, но снаружи он недостижим. Причина почти всегда одна - NAT (Network Address Translation) на вашем роутере скрывает компьютер от внешнего интернета. В этой статье разберём полный цикл: что такое NAT и зачем нужен проброс, как настроить правило на роутере, как проверить результат и что делать, если у вас серый IP. В конце - честное сравнение домашнего сервера с арендой хостинга.
> **Pterohost** - игровой хостинг для Minecraft с белым IP из коробки, NVMe-дисками и DDoS-защитой уровня L4/L7. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-server-port-forwarding)
## Как работает NAT и зачем нужен проброс портов
Когда вы подключаетесь к интернету через роутер, провайдер выдаёт один внешний IP-адрес на всю домашнюю сеть. Роутер раздаёт устройствам приватные адреса: `192.168.0.x`, `192.168.1.x` и т.д. Эта схема называется NAT.
Проблема в том, что NAT работает как односторонний шлюз - он отлично пропускает исходящие соединения (вы сами инициируете запрос, и роутер знает, кому вернуть ответ), но не знает, куда направить входящий пакет, который пришёл "просто на ваш IP". Входящий трафик теряется на роутере.
**Проброс портов (port forwarding)** - это правило в роутере вида "весь входящий трафик на порт 25565 -> отправить на компьютер 192.168.0.5:25565". Роутер запоминает это соответствие и корректно маршрутизирует входящие пакеты.
### Порты Minecraft
| Редакция | Порт | Протокол |
|---|---|---|
| Java Edition | 25565 | TCP |
| Bedrock Edition | 19132 | UDP |
| Bedrock Edition (альт.) | 19133 | UDP |
| RCON (управление) | 25575 | TCP |
По умолчанию сервер Java Edition слушает `0.0.0.0:25565` - все сетевые интерфейсы на порту 25565. Изменить порт можно в `server.properties`:
```properties
server-port=25565
```
## Белый и серый IP: определяем ситуацию
Перед настройкой роутера нужно понять, какой IP выдал вам провайдер.
**Белый IP (публичный)** - уникальный адрес в интернете, принадлежащий только вам. Проброс портов работает.
**Серый IP (CGNAT)** - приватный адрес вида `10.x.x.x`, `100.64.x.x` или похожий. Провайдер сам сидит за NAT, и все его клиенты делят несколько публичных IP. Проброс портов на вашем роутере **не поможет** - пакеты всё равно застрянут на NAT провайдера.
### Как проверить тип IP
**Шаг 1.** Зайдите на [2ip.ru](https://2ip.ru) - запомните "Ваш IP".
**Шаг 2.** Зайдите в веб-интерфейс роутера (обычно `192.168.0.1` или `192.168.1.1`) и найдите раздел WAN/Интернет. Посмотрите, какой IP получил роутер от провайдера.
**Шаг 3.** Сравните:
- IP с 2ip.ru совпадает с WAN-адресом роутера - **белый IP**, проброс работает.
- IP с 2ip.ru НЕ совпадает с WAN-адресом роутера - **серый IP/CGNAT**, см. раздел ниже.
Также серый IP выдают следующие диапазоны на WAN-интерфейсе роутера:
| Диапазон | Тип |
|---|---|
| 10.0.0.0/8 | Приватный (CGNAT) |
| 100.64.0.0/10 | CGNAT (RFC 6598) |
| 172.16.0.0/12 | Приватный |
| 192.168.0.0/16 | Приватный (маловероятно на WAN) |
## Пошаговая настройка проброса порта на роутере
Интерфейсы роутеров отличаются, но логика везде одинаковая. Покажем на примерах самых распространённых прошивок.
### Шаг 1: Узнайте локальный IP вашего компьютера
На Windows:
```cmd
ipconfig
```
Ищите строку "IPv4-адрес" в разделе вашего сетевого адаптера - например `192.168.0.5`.
На Linux/macOS:
```bash
ip addr show
# или
ifconfig
```
### Шаг 2: Назначьте статический локальный IP
Если роутер каждый раз даёт компьютеру новый адрес по DHCP, правило проброса сломается. Привяжите IP к MAC-адресу компьютера в разделе DHCP роутера (называется "Резервирование адресов", "DHCP Binding" или "Static DHCP").
Узнать MAC-адрес сетевой карты:
```cmd
ipconfig /all
```
Строка "Физический адрес" - например `A0-B1-C2-D3-E4-F5`.
### Шаг 3: Создайте правило проброса
**TP-Link (стандартный интерфейс):**
Расширенные настройки -> NAT-переадресация -> Переадресация портов -> Добавить
| Поле | Значение |
|---|---|
| Имя сервиса | Minecraft |
| Внешний порт | 25565 |
| Внутренний IP | 192.168.0.5 (ваш ПК) |
| Внутренний порт | 25565 |
| Протокол | TCP |
**ASUS (AsusWRT):**
WAN -> Переадресация виртуального сервера/портов -> Добавить
| Поле | Значение |
|---|---|
| Имя сервиса | Minecraft |
| Диапазон портов | 25565 |
| Локальный IP | 192.168.0.5 |
| Локальный порт | 25565 |
| Протокол | TCP |
**Keenetic:**
Сетевые правила -> Переадресация -> Добавить правило
| Поле | Значение |
|---|---|
| Описание | Minecraft |
| Вход | Провайдер (WAN) |
| Протокол | TCP |
| Открыть порт | 25565 |
| Переслать на адрес | 192.168.0.5 |
| Порт назначения | 25565 |
**MikroTik (через WinBox или terminal):**
```
/ip firewall nat add chain=dstnat dst-port=25565 protocol=tcp action=dst-nat to-addresses=192.168.0.5 to-ports=25565 comment="Minecraft"
```
После создания правила перезагрузите роутер или примените настройки.
### Шаг 4: Откройте порт в брандмауэре Windows
Даже с правильно настроенным роутером Windows Firewall может блокировать входящие соединения.
**Через GUI:**
1. Поиск -> "Брандмауэр Windows в режиме повышенной безопасности"
2. Правила для входящих подключений -> Создать правило
3. Тип: Порт -> TCP -> 25565 -> Разрешить подключение
4. Применить для всех профилей (Доменный, Частный, Публичный)
5. Имя: Minecraft Server
**Через командную строку (от имени администратора):**
```cmd
netsh advfirewall firewall add rule name="Minecraft Server" dir=in action=allow protocol=TCP localport=25565
```
На Linux с `ufw`:
```bash
sudo ufw allow 25565/tcp
sudo ufw reload
```
На Linux с `iptables`:
```bash
sudo iptables -A INPUT -p tcp --dport 25565 -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4
```
## Как проверить, что порт открыт снаружи
После настройки убедитесь, что всё работает, прежде чем звать друзей.
**Онлайн-инструменты:**
1. **mcsrvstat.us** - специализированный сервис для Minecraft. Введите ваш внешний IP и порт. Покажет статус сервера, версию, онлайн.
2. **canyouseeme.org** - универсальная проверка порта. Введите ваш IP и порт 25565, нажмите "Check Your Port". Если видно "Success" - порт открыт.
3. **portchecker.co** - ещё один вариант с поддержкой произвольных портов.
**Через командную строку** (с другого компьютера в интернете, не из вашей домашней сети):
```bash
# Linux/macOS
nc -zv ВАШ_ВНЕШНИЙ_IP 25565
# Если ответ: "Connection to ... succeeded!" - порт открыт
# Или через nmap
nmap -p 25565 ВАШ_ВНЕШНИЙ_IP
```
**Важно:** проверяйте порт с устройства за пределами вашей домашней сети (со смартфона через мобильный интернет или с другого компьютера). Из вашей же сети проверка через внешний IP может не работать из-за NAT loopback.
## Что делать при сером IP (CGNAT)
Если у вас серый IP, обычный проброс портов не сработает. Варианты:
### 1. Запросить белый IP у провайдера
Большинство российских провайдеров предоставляют статический белый IP за небольшую ежемесячную доплату (100-300 рублей). Позвоните в техподдержку и попросите "подключить статический IP" или "белый IP". После этого проброс портов заработает.
### 2. PlayIt.gg - бесплатный туннель для серверов
[PlayIt.gg](https://playit.gg) - специализированный сервис туннелирования для игровых серверов. Работает без белого IP, бесплатно для базового использования.
Установка на Linux:
```bash
curl -SsL https://playit-cloud.github.io/ppa/key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/playit.gpg
echo "deb [signed-by=/etc/apt/trusted.gpg.d/playit.gpg] https://playit-cloud.github.io/ppa/data ./" | sudo tee /etc/apt/sources.list.d/playit-cloud.list
sudo apt update
sudo apt install playit
playit
```
На Windows - скачайте `playit-windows_64.exe` с официального сайта, запустите и следуйте инструкциям. Сервис выдаст вам публичный адрес вида `something.joinmc.link:25565`.
**Минусы:** повышенная задержка (ping), зависимость от стороннего сервиса, ограничения по пропускной способности в бесплатном тарифе.
### 3. ZeroTier / Radmin VPN
Позволяют создать виртуальную локальную сеть поверх интернета. Все игроки устанавливают клиент и подключаются к одной сети, после чего используют виртуальный IP сервера.
**ZeroTier:**
```bash
curl -s https://install.zerotier.com | sudo bash
sudo zerotier-cli join ВАША_NETWORK_ID
```
Игроки подключаются к серверу через виртуальный IP (например `10.147.20.5:25565`). Бесплатно до 25 участников.
**Radmin VPN** - аналог с графическим интерфейсом, популярен среди геймеров, прост в настройке.
**Минусы:** все друзья обязаны установить клиент, небольшое увеличение ping.
## Домашний сервер vs хостинг: честное сравнение
| Параметр | Домашний сервер | Хостинг (Pterohost) |
|---|---|---|
| Стоимость | Электричество + возможно плата за белый IP | Фиксированная ежемесячная оплата |
| Белый IP | Нужно запрашивать отдельно | Включён |
| DDoS-защита | Нет | Есть (L4/L7) |
| Проброс портов | Нужно настраивать | Не нужен |
| Аптайм | Зависит от вашего ПК и электричества | 99.9%+ |
| Скорость диска | HDD/SATA SSD | NVMe |
| Техподдержка | Только вы | 24/7 |
| Доступ к серверу | Пока ПК включён | Всегда |
| Масштабирование | Ограничено железом | Легко |
Домашний сервер подходит для игры в небольшой компании (3-5 человек), когда вы сами за компьютером. Для стабильного сервера на постоянной основе, особенно с модами или большим числом игроков, хостинг выигрывает по совокупности характеристик.
## Типичные проблемы и решения
### Сервер запущен, но никто не может подключиться
Проверочный список:
1. Правило проброса создано и сохранено на роутере
2. IP компьютера в правиле совпадает с реальным локальным IP
3. Брандмауэр Windows не блокирует порт 25565
4. Сервер запущен и слушает на `0.0.0.0:25565` (не только `127.0.0.1`)
5. Проверяете доступность с устройства вне домашней сети
6. У вас белый, а не серый IP
Проверить, на каком адресе слушает сервер:
```cmd
netstat -ano | findstr :25565
```
Должно быть `0.0.0.0:25565`, а не `127.0.0.1:25565`.
На Linux:
```bash
ss -tlnp | grep 25565
```
### Порт занят другим приложением
Если при старте сервера видите ошибку `Address already in use` или `Failed to bind to port`:
```cmd
# Windows: найти процесс на порту
netstat -ano | findstr :25565
# По PID найти процесс в диспетчере задач или:
taskkill /PID НОМЕР_PID /F
```
```bash
# Linux
sudo fuser -k 25565/tcp
```
### Провайдер блокирует игровые порты
Некоторые провайдеры блокируют популярные игровые порты на своей стороне. В этом случае смените порт сервера на нестандартный (например 25566 или 35565) в `server.properties` и создайте новое правило проброса.
```properties
server-port=35565
```
Игроки подключаются как `ВАШ_IP:35565`.
### Динамический IP меняется после перезагрузки роутера
Если провайдер выдаёт динамический белый IP (меняется при перезагрузке), используйте DDNS (Dynamic DNS). Сервисы: No-IP, DynDNS, Duck DNS.
Duck DNS - бесплатный и простой:
1. Зарегистрируйтесь на [duckdns.org](https://duckdns.org) и создайте поддомен
2. Установите клиент для автообновления IP (скрипт для Linux или приложение для Windows)
3. Давайте друзьям адрес вида `yourserver.duckdns.org:25565`
Скрипт обновления для Linux (через cron):
```bash
echo url="https://www.duckdns.org/update?domains=ВАШ_ДОМЕН&token=ВАШ_ТОКЕН&ip=" | curl -k -o /tmp/duck.log -K -
```
Добавить в cron каждые 5 минут:
```bash
*/5 * * * * /home/user/duckdns/duck.sh >/dev/null 2>&1
```
## Безопасность домашнего сервера
Открытый порт - это вектор атаки. Несколько рекомендаций:
**Обновляйте сервер.** Устаревшие версии Minecraft-сервера содержат уязвимости (вспомним Log4Shell 2021 года). Всегда используйте актуальную версию Paper или Fabric.
**Используйте whitelist.** Разрешите подключение только для известных игроков:
```
/whitelist on
/whitelist add ИМЯ_ИГРОКА
```
**Ограничьте RCON.** Если не используете RCON, отключите его в `server.properties`:
```properties
enable-rcon=false
```
**Защита от брутфорса.** Если у вас Linux, настройте fail2ban для защиты от перебора паролей SSH (хотя Minecraft-порт это не касается напрямую, но общая безопасность системы важна).
**Регулярные бэкапы.** Делайте резервные копии папки `world/` перед обновлениями и регулярно (раз в день/неделю). Инструменты: `rsync`, плагин EssentialsX Backup, или просто `cp -r world/ backups/world_$(date +%Y%m%d)/`.
## Связанные материалы
Если хотите разобраться глубже в защите своего сервера и возможностях хостинга, рекомендуем:
- [DDoS-защита L4 для игровых серверов](/ru/ddos-l4-protection) - как работает защита от сетевых атак на уровне L4 и почему домашний сервер без неё уязвим
- [DDoS-защита для игровых серверов](/ru/ddos-protection) - полный обзор методов защиты от DDoS, включая фильтрацию трафика
- [Turbo-сервер Minecraft](/ru/turbo-server) - высокопроизводительный хостинг для нагруженных серверов с максимальным приоритетом ресурсов
## Заключение
Проброс порта 25565 - обязательный шаг для любого домашнего Minecraft-сервера. Алгоритм прост: узнайте локальный IP компьютера, создайте правило в роутере, откройте порт в брандмауэре и проверьте доступность снаружи. Главный подводный камень - серый IP от провайдера: в этом случае либо запрашивайте белый IP у провайдера, либо используйте туннели вроде PlayIt.gg. Домашний сервер отлично подходит для игры с друзьями без постоянных требований к аптайму, но для серьёзного проекта с круглосуточной доступностью, DDoS-защитой и NVMe-дисками аренда хостинга выгоднее по совокупности затрат времени и нервов.
> **Pterohost** - Minecraft-хостинг с белым IP, NVMe-накопителями и защитой от DDoS без лишних настроек: достаточно купить тариф, установить сервер и раздать IP друзьям. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-server-port-forwarding)
---
## Свой домен и SRV-запись для Minecraft-сервера
URL: https://docs.pterohost.com/ru/minecraft-server-domain-srv
Обновлено: 2026-06-11
Как привязать домен к Minecraft-серверу через A-запись и SRV (_minecraft._tcp), чтобы игроки подключались без порта. Пошаговая инструкция 2026.
---
> **Кратко:** Привяжи домен к серверу через A-запись на IP хостинга, затем добавь SRV-запись `_minecraft._tcp` с нужным портом - и игроки смогут подключаться просто по имени вроде `play.myserver.ru`. Весь процесс занимает 15-30 минут, плюс время на распространение DNS.
# Свой домен и SRV-запись для Minecraft-сервера
**Подключение по IP и порту вида `45.11.16.73:25575` выглядит непрофессионально и сложно запоминается.** Свой домен - это визитная карточка сервера: `play.mycraft.ru` легко передаётся голосом, пишется в шапке Discord и не меняется при переезде на другой хостинг. В 2026 году регистрация домена .ru стоит 100-200 рублей в год, а настройка DNS занимает меньше получаса. Эта статья проведёт тебя от покупки домена до проверки рабочей SRV-записи - с реальными командами и примерами конфигов.
> **Pterohost** - игровой хостинг с NVMe-дисками, DDoS-защитой и поддержкой 24/7. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-server-domain-srv)
## Зачем вообще нужен домен и SRV-запись
Когда игрок пишет в поле адреса `play.mycraft.ru`, лаунчер Minecraft делает несколько DNS-запросов:
1. Ищет SRV-запись `_minecraft._tcp.play.mycraft.ru` - если нашёл, берёт из неё hostname и порт.
2. Если SRV нет - делает обычный A-запрос к `play.mycraft.ru` и подключается на порт 25565 (стандартный).
Именно SRV-запись позволяет:
- Использовать нестандартный порт (например, 25575 или 19132), не показывая его игрокам.
- Держать несколько серверов на одном IP с разными доменными именами.
- Переехать на другой сервер, просто обновив A-запись, - игроки этого не заметят.
**Без SRV** сервер доступен по домену только если работает на стандартном порту 25565.
## Шаг 1: Выбор и покупка домена
Если домен уже есть - переходи к шагу 2.
### Где купить домен
Популярные регистраторы для российских доменов:
| Регистратор | Зоны | Примерная цена .ru | Управление DNS |
|---|---|---|---|
| REG.RU | .ru, .com, .net, .рф | 150-200 руб/год | Встроенная панель |
| NIC.RU | .ru, .рф, .su | 150-190 руб/год | Встроенная панель |
| Cloudflare Registrar | .com, .net, .org | по себестоимости | Cloudflare DNS |
| Namecheap | .com, .net, .io | $8-12/год | встроенный DNS |
Для игровых серверов удобны короткие запоминающиеся имена: `mycraft.ru`, `pixelworld.ru`, `pvpmine.ru`. Зона `.ru` стоит дёшево и хорошо воспринимается русскоязычной аудиторией.
### Рекомендации по выбору
- Длина домена - до 12-15 символов, без цифр в начале.
- Используй латиницу - кириллические домены .рф плохо работают в Minecraft-лаунчерах.
- Проверь, что имя не занято: `whois mycraft.ru` в терминале или через сайт регистратора.
## Шаг 2: Настройка NS-серверов или DNS у регистратора
После покупки домена нужно решить, где управлять DNS-записями:
**Вариант А - DNS у регистратора** (проще для начинающих): Большинство регистраторов предоставляют бесплатную DNS-панель. Никаких дополнительных настроек не нужно - записи добавляются прямо в личном кабинете.
**Вариант Б - Cloudflare DNS** (рекомендуется): Cloudflare бесплатен, имеет быстрое распространение (~1-2 минуты) и удобный интерфейс. Для переноса нужно:
1. Зарегистрироваться на `cloudflare.com` и добавить домен.
2. Cloudflare покажет свои NS-серверы вида `ada.ns.cloudflare.com` и `bart.ns.cloudflare.com`.
3. В панели регистратора заменить NS на cloudflare-овские.
4. Подождать 15-60 минут.
В дальнейших примерах используем Cloudflare, но принципы одинаковы для любой DNS-панели.
## Шаг 3: A-запись - привязка домена к IP сервера
A-запись - это основа: она связывает доменное имя с IP-адресом сервера.
### Где узнать IP сервера
В панели управления хостингом (Pterodactyl/PteroHost) IP отображается в разделе сведений о сервере. Формат: `45.11.16.73` (IPv4).
### Создание A-записи
В DNS-панели создай запись:
```
Тип: A
Имя: play (или @ для корневого домена, или любой субдомен)
Значение: 45.11.16.73 (IP твоего сервера)
TTL: 300 (авто)
```
После этого `play.mycraft.ru` будет указывать на IP сервера. Если порт стандартный (25565) - этого уже достаточно. Если нестандартный - читай дальше.
**Важно**: в Cloudflare для игровых серверов выключи прокси (оранжевое облако -> серое). Прокси Cloudflare работает только для HTTP/HTTPS и сломает TCP-соединение Minecraft.
## Шаг 4: SRV-запись для нестандартного порта
SRV (Service Record) - специальный тип DNS-записи для указания хоста и порта сервиса. Формат имени: `_сервис._протокол.домен`.
Для Minecraft используется: `_minecraft._tcp.play.mycraft.ru`
### Структура SRV-записи
| Поле | Значение | Описание |
|---|---|---|
| Тип | SRV | Тип записи |
| Имя | _minecraft._tcp.play | Сервис + протокол + субдомен |
| Приоритет | 0 | Обычно 0 для одного сервера |
| Вес | 5 | Обычно 5, не критично |
| Порт | 25575 | Реальный порт сервера |
| Target | play.mycraft.ru. | Hostname с точкой в конце |
| TTL | 300 | Секунды кеширования |
**Target должен быть hostname, а не IP.** Это требование стандарта DNS (RFC 2782). Поэтому сначала создаётся A-запись на IP, а SRV ссылается на этот hostname.
### Добавление SRV в Cloudflare
В Cloudflare SRV-запись добавляется через раздел "DNS" -> "Add record" -> тип "SRV":
```
Service: _minecraft
Proto: _tcp
Name: play.mycraft.ru
TTL: Auto
Priority: 0
Weight: 5
Port: 25575
Target: play.mycraft.ru
```
В других DNS-панелях формат может быть в одной строке:
```
_minecraft._tcp.play.mycraft.ru. 300 IN SRV 0 5 25575 play.mycraft.ru.
```
### SRV для Bedrock (Java Edition не затрагивает)
Bedrock-сервера используют UDP и другой порт (по умолчанию 19132). Лаунчеры Bedrock не поддерживают стандартный SRV Minecraft - для них нужна отдельная запись с другим именем, которую поддерживают лишь некоторые лаунчеры. Большинство Bedrock-игроков подключаются напрямую по IP:порт или через GeyserMC + Java-клиент.
## Шаг 5: Проверка DNS через dig и nslookup
Не жди "вдруг заработает" - проверяй сразу после добавления записей.
### Проверка A-записи
```bash
dig play.mycraft.ru A
```
Ожидаемый вывод:
```
;; ANSWER SECTION:
play.mycraft.ru. 300 IN A 45.11.16.73
```
Или через nslookup (работает на Windows без дополнительных инструментов):
```
nslookup play.mycraft.ru
```
Вывод:
```
Name: play.mycraft.ru
Address: 45.11.16.73
```
### Проверка SRV-записи
```bash
dig _minecraft._tcp.play.mycraft.ru SRV
```
Ожидаемый вывод:
```
;; ANSWER SECTION:
_minecraft._tcp.play.mycraft.ru. 300 IN SRV 0 5 25575 play.mycraft.ru.
```
На Windows через nslookup:
```
nslookup -type=SRV _minecraft._tcp.play.mycraft.ru
```
### Онлайн-инструменты проверки
Если нет терминала:
- `mcsrvstat.us` - показывает статус Minecraft-сервера по домену, включая разрешённый IP и порт через SRV.
- `dnschecker.org` - проверяет распространение DNS по серверам в разных странах.
- `toolbox.googleapps.com/apps/dig/` - Google Dig Tool, простой интерфейс.
## Шаг 6: Время распространения DNS (TTL)
DNS-изменения не применяются мгновенно - резолверы кешируют записи на время TTL (Time To Live, в секундах).
### Практические рекомендации по TTL
| Ситуация | Рекомендуемый TTL |
|---|---|
| Стабильный сервер, редкие изменения | 3600 (1 час) или 86400 (24 часа) |
| Перед плановым переездом на новый IP | 300 (5 минут) - выставить за 24 часа до смены |
| Во время активных изменений | 60-300 секунд |
| После стабилизации | Вернуть к 3600+ |
**Правило**: понижай TTL заранее, а не в момент изменения. Если запись кешировалась с TTL 86400, то при смене IP часть игроков будет ходить на старый адрес до 24 часов.
### Почему у одних работает сразу, у других - нет
Каждый провайдер и операционная система имеют свой кеш резолвера. После обновления DNS:
- Cloudflare DNS (1.1.1.1): обновляется за 1-2 минуты.
- Google DNS (8.8.8.8): 3-5 минут.
- Провайдерские резолверы РФ: 5-60 минут.
- Корпоративные сети: до 24-48 часов из-за своих кешей.
Для проверки "свежей" записи без кеша:
```bash
dig @1.1.1.1 play.mycraft.ru A # через Cloudflare DNS
dig @8.8.8.8 play.mycraft.ru A # через Google DNS
dig @77.88.8.8 play.mycraft.ru A # через Яндекс DNS
```
Если все три показывают правильный IP - запись распространилась у большинства пользователей.
## Типичные ошибки и их решение
### Ошибка: SRV указывает на IP вместо hostname
**Неправильно:**
```
_minecraft._tcp.play.mycraft.ru. 300 IN SRV 0 5 25575 45.11.16.73.
```
**Правильно:**
```
_minecraft._tcp.play.mycraft.ru. 300 IN SRV 0 5 25575 play.mycraft.ru.
```
По стандарту DNS, поле Target в SRV-записи должно быть доменным именем. Некоторые лаунчеры принимают IP в Target, но это нестандартно и ненадёжно.
### Ошибка: прокси Cloudflare включён для A-записи
Если рядом с A-записью горит оранжевое облако (proxied), Cloudflare проксирует трафик через свои серверы. Для HTTP это полезно, для игровых TCP-серверов - смерть. Переключи на серое облако (DNS only).
### Ошибка: неправильное имя SRV-записи
В некоторых DNS-панелях имя записи указывается без домена (только `_minecraft._tcp.play`), в других - с полным именем (`_minecraft._tcp.play.mycraft.ru.`). Зависит от панели. Если добавил запись и dig выдаёт `NXDOMAIN` - проверь, не задублировался ли домен (вида `_minecraft._tcp.play.mycraft.ru.mycraft.ru.`).
### Ошибка: разные субдомены в A и SRV
```
A-запись: game.mycraft.ru -> 45.11.16.73
SRV Target: play.mycraft.ru <- не существует A-записи!
```
Target в SRV должен разрешаться через A-запись. Либо создай A-запись для `play`, либо укажи в Target тот субдомен, для которого A-запись существует.
### Сервер не отвечает после настройки DNS
Проверь по шагам:
1. `dig play.mycraft.ru A` - должен вернуть правильный IP.
2. `dig _minecraft._tcp.play.mycraft.ru SRV` - должен вернуть нужный порт.
3. `mcsrvstat.us` с твоим доменом - проверит, видит ли сервер как живой.
4. Попробуй подключиться напрямую по `IP:порт` без домена - если это работает, проблема в DNS, а не в сервере.
## Продвинутые сценарии
### Несколько серверов на одном IP
Если у тебя Survival, Creative и Minigames на одном IP, но разных портах:
```
A: play.mycraft.ru -> 45.11.16.73
A: hub.mycraft.ru -> 45.11.16.73 (тот же IP)
A: mini.mycraft.ru -> 45.11.16.73 (тот же IP)
SRV: _minecraft._tcp.play.mycraft.ru -> play.mycraft.ru:25565
SRV: _minecraft._tcp.hub.mycraft.ru -> hub.mycraft.ru:25566
SRV: _minecraft._tcp.mini.mycraft.ru -> mini.mycraft.ru:25575
```
Все три домена ведут на один IP, но SRV разводит по разным портам.
### Резервный сервер через приоритет SRV
SRV поддерживает несколько записей с разными приоритетами - клиент сначала подключается к записи с меньшим приоритетом:
```
_minecraft._tcp.play.mycraft.ru. 300 IN SRV 0 5 25565 primary.mycraft.ru.
_minecraft._tcp.play.mycraft.ru. 300 IN SRV 10 5 25565 backup.mycraft.ru.
```
При недоступности основного сервера (Priority 0) Minecraft-клиент автоматически попробует резервный (Priority 10). На практике используется редко, но полезно для крупных проектов.
### Переезд на новый хостинг без даунтайма
1. За 24 часа до переезда снизь TTL до 300 секунд.
2. Подними новый сервер на новом хостинге, настрой и протестируй по IP.
3. Измени A-запись на новый IP.
4. Подожди распространения (~5-15 минут при TTL 300).
5. Через 30 минут убедись, что все подключаются к новому серверу, и подними TTL обратно.
Игроки, у которых был закеширован старый IP, доподключатся к старому серверу ещё до 5 минут (пока не истечёт их кеш), потом автоматически перейдут на новый.
## Связанные материалы
Если сервер настроен, но периодически тормозит или лагает - читай [как устранить лаги на Minecraft-сервере](/ru/minecraft-server-lags-fix). Для защиты от DDoS-атак, которые часто направлены на игровые серверы с публичным доменом, изучи статьи о [защите от L4-атак](/ru/ddos-l4-protection) и [общей DDoS-защите хостинга](/ru/ddos-protection).
## Заключение
Настройка своего домена для Minecraft-сервера - это процесс из четырёх шагов: зарегистрировать домен, добавить A-запись с IP сервера, добавить SRV-запись `_minecraft._tcp` с нужным портом, проверить через dig. Весь процесс занимает 15-30 минут, а работает годами без обслуживания. Главные правила: Target в SRV - только hostname, не IP; прокси Cloudflare для игровых серверов - выключить; TTL 300 секунд перед любыми изменениями. После настройки игроки смогут подключаться просто по имени домена - без портов и длинных IP-адресов.
> **Pterohost** - хостинг Minecraft с NVMe-дисками, DDoS-защитой и круглосуточной поддержкой. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-server-domain-srv)
---
## Защита от DDoS L4 (Transport Layer): SYN flood, UDP flood и фильтрация
URL: https://docs.pterohost.com/ru/ddos-l4-protection
Обновлено: 2026-05-26
Защита от L4-атак: SYN flood, UDP amplification, DNS/NTP reflection. BGP blackhole, scrubbing, SYN cookies, iptables hashlimit, sysctl. Игровые порты.
---
DDoS-атаки на четвёртый уровень модели OSI (Transport Layer) - это объёмные атаки на сетевую инфраструктуру. Они не пытаются обмануть приложение: задача - забить канал паразитным трафиком, исчерпать ресурсы conntrack или повесить сетевой стек ядра. В 2026 году типичный SYN flood с приличного ботнета составляет 50-500 Гбит/с и десятки миллионов пакетов в секунду. Без сетевой защиты на уровне дата-центра одиночный сервер не выдержит такую атаку независимо от мощности железа.
В статье разберём типы L4-атак, принципы фильтрации, конфиги iptables/nftables, sysctl-параметры ядра и особенности защиты игровых UDP-портов.
## Что такое DDoS L4
Четвёртый уровень OSI - транспортный: TCP, UDP, SCTP. На этом уровне работают порты приложений, но без понимания HTTP/SMTP/DNS-семантики. L4-атака паразитирует на механизмах протокола - например, на трёхэтапном рукопожатии TCP или на отсутствии рукопожатия в UDP.
Ключевые свойства L4-атак:
| Параметр | Характеристика |
|-----------------------|------------------------------------------------|
| Объём | От 10 Гбит/с до нескольких Тбит/с |
| Метрика | PPS (packets per second), Mbps, Gbps |
| Цель | Канал, сетевой стек ядра, conntrack-таблица |
| Видимость | Аномальный трафик заметен на графиках NetFlow |
| Где фильтровать | На uplink провайдера, BGP/Anycast scrubbing |
## Типы L4-атак
### SYN flood
Бот шлёт TCP SYN-пакеты с поддельным source IP. Сервер отвечает SYN+ACK и держит соединение в состоянии SYN_RECV до таймаута. При миллионах SYN в секунду таблица соединений ядра переполняется, легитимные пользователи не могут подключиться.
### ACK flood
Поток TCP-пакетов с флагом ACK без установленного соединения. Conntrack просматривает каждую запись, ищет соответствие, тратит CPU. Современный вариант - ACK flood с правильными sequence-номерами, имитирующий уже установленные сессии.
### RST flood
Пакеты с флагом RST в адрес активных соединений. Если ботнет угадает порты и sequence numbers (атака на TCP RST injection), легитимные соединения рвутся.
### UDP flood
Просто поток UDP-пакетов на случайные порты. Сервер на каждый пакет проверяет, слушает ли кто-то порт; если нет - отвечает ICMP Port Unreachable. ICMP-ответы добавляют исходящего трафика и нагружают ядро.
### UDP amplification (DNS/NTP/Memcached/CLDAP reflection)
Атакующий отправляет небольшой UDP-запрос на публичный сервис с подменой source IP на адрес жертвы. Сервис отвечает в десятки раз большим пакетом - жертве. Коэффициенты усиления:
- DNS (ANY-запрос на TXT-записи): 50-70x
- NTP (monlist): 200-550x
- Memcached: до 50 000x (рекорд 1.7 Тбит/с на GitHub в 2018)
- CLDAP (Active Directory): 50-70x
- chargen: до 350x
### Фрагментация (Teardrop, IP fragmentation)
Пакеты с пересекающимися фрагментами или огромным количеством мелких фрагментов перегружают сборку в ядре. Современные ядра в основном устойчивы, но старые embedded-устройства и сетевое оборудование падают.
### Connection exhaustion
Бот открывает много легитимных TCP-соединений, не закрывая их. Conntrack-таблица заполняется записями, новые соединения отбрасываются с ошибкой `nf_conntrack: table full, dropping packet`.
## Принципы защиты L4
### BGP blackhole
Самый грубый метод. Провайдер анонсирует атакуемый IP в null-route - весь трафик на этот адрес отбрасывается на границе сети. Атака гасится, но и легитимный трафик к серверу пропадает. Используется как аварийная мера для защиты остальной инфраструктуры.
### Scrubbing-центры (Anti-DDoS proxy)
Трафик проходит через выделенные узлы фильтрации с высокопроизводительным железом (FPGA, NPU). Они анализируют пакеты, отсеивают мусор и пропускают чистый трафик к серверу. Так работают Cloudflare Magic Transit, OVH VAC, DDoS-Guard, Stormwall, Voxility.
Маршрутизация может быть постоянной (always-on) или включаться по триггеру (on-demand через BGP-анонсы).
### SYN cookies
Защита от SYN flood на уровне ядра Linux. Вместо хранения SYN_RECV-записи сервер кодирует state в номер последовательности SYN+ACK. Когда приходит финальный ACK, ядро проверяет криптографическую сумму. Включается через sysctl:
```bash
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_abort_on_overflow = 1
```
### Тюнинг conntrack
```bash
# /etc/sysctl.d/99-ddos-l4.conf
net.netfilter.nf_conntrack_max = 1048576
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 10
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 10
net.netfilter.nf_conntrack_tcp_timeout_established = 600
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 30
net.netfilter.nf_conntrack_udp_timeout = 15
net.netfilter.nf_conntrack_udp_timeout_stream = 60
```
Применить:
```bash
sysctl -p /etc/sysctl.d/99-ddos-l4.conf
```
### Rate limiting на уровне ядра
iptables с модулем hashlimit ограничивает PPS по source IP:
```bash
# Ограничить SYN до 30 пакетов в секунду с одного IP
iptables -A INPUT -p tcp --syn -m hashlimit \
--hashlimit-name syn_limit \
--hashlimit-above 30/sec \
--hashlimit-burst 50 \
--hashlimit-mode srcip \
--hashlimit-srcmask 32 \
-j DROP
# Ограничить новые соединения - не более 20 в минуту с IP
iptables -A INPUT -p tcp --syn -m conntrack --ctstate NEW \
-m hashlimit \
--hashlimit-name new_conn \
--hashlimit-above 20/min \
--hashlimit-mode srcip \
-j DROP
# Дропнуть невалидные пакеты
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
# Дропнуть пакеты без флагов или с битой комбинацией
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
# Ограничить ICMP
iptables -A INPUT -p icmp -m limit --limit 5/sec --limit-burst 10 -j ACCEPT
iptables -A INPUT -p icmp -j DROP
```
В nftables эквивалент компактнее:
```nft
table inet filter {
set blacklist {
type ipv4_addr
flags timeout
}
chain input {
type filter hook input priority 0; policy drop;
ct state established,related accept
ct state invalid drop
tcp flags syn limit rate over 30/second per host counter \
add @blacklist { ip saddr timeout 1h } drop
ip saddr @blacklist drop
tcp dport { 22, 80, 443 } accept
udp dport 25565 accept
}
}
```
## Защита игровых портов
Игровые серверы используют разнообразные транспортные протоколы:
| Игра / движок | Порт | Протокол |
|--------------------------|---------------------|-----------|
| Minecraft Java | 25565 | TCP |
| Minecraft Bedrock | 19132 | UDP |
| Source Engine (CS, GMod) | 27015 | UDP + TCP |
| Steam Query | 27015 + дельта | UDP |
| Rust | 28015 | UDP |
| ARK Survival | 7777, 27015 | UDP |
| Teamspeak 3 | 9987 | UDP |
По голосовым серверам порты и типовые ошибки подключения разобраны отдельно: [диагностика проблем с TeamSpeak 3](/ru/teamspeak-3-connect-problems) и [установка сервера TeamSpeak 3](/ru/teamspeak-3-server-setup).
UDP-протоколы игр не имеют рукопожатия, поэтому отличить легитимного игрока от спуфера на уровне пакета сложно. Защита строится через:
- **Deep Packet Inspection (DPI)** - распознавание сигнатур игрового протокола. Например, Source Query начинается с `0xFFFFFFFF 0x54 'Source Engine Query\0'`. Пакеты без сигнатуры отбрасываются.
- **Сессионный rate limit** - новый source IP получает квоту в N пакетов; если игрок начинает шлёт мусор, IP уходит в карантин.
- **Connection challenge** - сервер требует, чтобы клиент ответил на специальный пакет (как делает Minecraft при handshake).
- **Whitelisting известных портов** - закрыть всё, кроме нужного UDP-диапазона.
Для Minecraft с прокси BungeeCord часто настраивают [бан по портам через BungeeCord](/ru/bungeecord-port-ban) - закрывают прямой доступ к backend-серверам, оставляя открытым только прокси.
Профильные провайдеры с game-protection:
- **DDoS-Guard Game Protection** - DPI для популярных движков.
- **Stormwall** - анти-DDoS с поддержкой UDP-игр.
- **OVH Game DDoS Protection** - один из старейших профильных продуктов, защищает Source/Minecraft/Rust.
- **Path.net** - low-latency защита для соревновательных шутеров.
## Что значит "защита 1 Tbps"
В маркетинге часто пишут "защита от DDoS до 1 Тбит/с" или "до 4 Тбит/с". Расшифровка:
1. Это **ёмкость scrubbing-сети** провайдера, а не персональная защита клиента. На клиента приходит часть.
2. Реальная атака редко достигает таких объёмов - 99% боевых DDoS укладываются в 100-300 Гбит/с.
3. Важнее не пик, а **время реакции** (mitigation time) и **точность фильтра** (false positive rate).
4. Для игровых проектов критична **поддержка UDP-протоколов** - не все антифлуды одинаково хороши.
Цифра "1 Tbps" сама по себе ничего не гарантирует. Спросите у провайдера: какой mitigation time, какие протоколы поддерживаются, есть ли DPI для вашей игры, как клиент уведомляется об атаке.
> **Pterohost** - хостинг с многоуровневой DDoS-защитой L4 на уровне дата-центра, NVMe SSD и поддержкой 24/7. Промокод **4START** даёт -20% на первый заказ.
> [Заказать защищённый сервер](https://my.pterohost.com/store/?utm_source=docs&utm_medium=article&utm_campaign=ddos-l4-protection)
## Чек-лист L4-защиты для VPS/dedicated
1. Включить `tcp_syncookies` и поднять `tcp_max_syn_backlog`.
2. Увеличить `nf_conntrack_max` до 1М+ записей при наличии RAM.
3. Закрыть все ненужные порты файрволом (iptables/nftables).
4. Настроить hashlimit на SYN и новые соединения.
5. Дропать невалидные TCP-флаги и conntrack INVALID.
6. Ограничить ICMP rate.
7. Скрыть origin IP за защитным прокси (для веба).
8. Поставить мониторинг PPS/Mbps с алертами (Netdata, Zabbix, Prometheus + node_exporter).
9. Знать процедуру включения BGP blackhole у провайдера на случай атаки выше ёмкости защиты.
10. Для игр - выбирать хостинг с DPI-защитой профильного движка.
Для общего понимания инфраструктурной защиты смотрите [обзор DDoS-защиты](/ru/ddos-protection), для прикладного уровня - [защиту L7](/ru/ddos-l7-protection).
> **Pterohost** защищает игровые и веб-проекты от объёмных атак L4 и сложных L7. Промокод **4START** - скидка 20% на первый месяц.
> [Подобрать защищённый тариф](https://my.pterohost.com/store/?utm_source=docs&utm_medium=article&utm_campaign=ddos-l4-protection)
## Частые вопросы
### Что означает "защита 1 Tbps" в маркетинге хостингов?
Это суммарная ёмкость сети scrubbing-центров провайдера - максимальный объём паразитного трафика, который инфраструктура может проглотить и отфильтровать. Реальный показатель защиты конкретного клиента почти всегда ниже: важнее не пиковая ёмкость, а время реакции, точность фильтра и наличие защиты для UDP-протоколов игр.
### Достаточно ли SYN cookies против SYN flood?
Для бытовых атак до сотен тысяч пакетов в секунду - да, ядро Linux с tcp_syncookies справляется. Для серьёзных ботнетов на миллионы PPS SYN cookies не помогут: сервер всё равно будет тратить CPU на криптографические вычисления. Нужна фильтрация на уровне провайдера через BGP-анонсы в scrubbing.
### Почему игровые UDP-порты сложнее защищать, чем TCP?
UDP не имеет рукопожатия: нельзя отличить легитимный пакет от поддельного по заголовкам. Защита строится на поведенческом анализе, deep packet inspection с пониманием протокола игры (Source Engine Query, Minecraft Bedrock UDP, Steam) и rate limiting по source IP с короткими таймаутами.
### Что такое DNS/NTP/Memcached amplification?
Атакующий отправляет небольшой UDP-запрос с подменённым source IP (адресом жертвы) на открытый DNS/NTP/Memcached-сервер. Тот отвечает в десятки и сотни раз большим пакетом - жертве. Коэффициент усиления у Memcached достигал 50 000x, у DNS - 50-70x. Защита: rate limit по source IP на уровне провайдера, BGP blackhole для пика.
---
## VPS или выделенный сервер: что выбрать в 2026
URL: https://docs.pterohost.com/ru/vps-vs-vydelennyy-server
Обновлено: 2026-05-26
Сравнение VPS и dedicated по архитектуре, производительности, цене и задачам. Steal CPU, vCPU vs ядра, IPMI, RAID. Когда мигрировать с VPS на dedicated.
---
Вопрос "VPS или выделенный сервер" встречает каждого, кто перерастает шаред-хостинг. На бумаге dedicated всегда лучше: полное железо, никаких соседей, никакого steal CPU. На практике в 2026 году граница размыта - топовый KVM-VPS на Ryzen 9 7950X с NVMe легко обгоняет дешёвый Xeon E3-1230v3 десятилетней давности, который продают как "выделенный сервер".
В статье разберём архитектуру обеих опций, реальную производительность, цены, типовые задачи и сценарии миграции.
## Архитектура VPS
VPS (Virtual Private Server) - это виртуальная машина на физическом сервере (ноде). Один хост обычно делится между десятками VPS. Технологии виртуализации:
### KVM (Kernel-based Virtual Machine)
Стандарт индустрии. Полная аппаратная виртуализация: каждая VM получает изолированное ядро Linux/Windows, собственные виртуальные устройства, кастомные sysctl-параметры. KVM поддерживает прямой проброс ресурсов (vfio для GPU, NVMe passthrough). На KVM работают Hetzner Cloud, DigitalOcean, Vultr, OVH.
Плюсы:
- Полная изоляция, своё ядро, любая ОС.
- Можно ставить нестандартные модули, eBPF, кастомный sysctl.
- Стабильная производительность при адекватном overcommit на ноде.
Минусы:
- Дороже OpenVZ на тот же объём ресурсов.
- При жадном overcommit от провайдера - заметный steal CPU.
### Xen
Старая технология паравиртуализации и аппаратной виртуализации. Использовался в AWS EC2 (до перехода на Nitro), сейчас редко встречается у мейнстрим-провайдеров.
### OpenVZ / Virtuozzo
Контейнерная виртуализация: все VPS делят одно ядро хост-системы. Ядро поменять нельзя, многие sysctl недоступны, eBPF не работает. Зато плотность размещения выше, цена ниже.
Главный риск OpenVZ - overselling: провайдер продаёт ресурсов в 3-5 раз больше, чем физически есть. При пиковой нагрузке соседи "съедают" вашу долю CPU и RAM.
### vCPU vs реальные ядра
Один из главных подводных камней. У современного процессора 16 физических ядер с SMT (Hyper-Threading) - это 32 логических потока. Провайдер может:
- Продавать 1 vCPU = 1 hyperthread (распространённая практика). Тогда 2 vCPU делят одно физическое ядро.
- Продавать 1 vCPU = 1 физическое ядро с обоими hyperthreads.
- Использовать CPU pinning - закреплять vCPU за конкретными ядрами хоста.
- Делать ratio 1:4 или 1:6 - один физический поток продаётся нескольким VPS, ресурсы распределяются по требованию.
При одинаковой строке "4 vCPU" в прайсе реальная производительность отличается в 2-3 раза. Единственный надёжный способ проверки - бенчмарк после покупки.
### Steal CPU
Steal time - метрика гипервизора, показывающая, сколько процентов времени VM хотела процессор, но не получила. Видна в `top`:
```
%Cpu(s): 5.3 us, 1.2 sy, 0.0 ni, 88.5 id, 0.0 wa, 0.0 hi, 0.0 si, 5.0 st
```
`st 5.0` - 5% такта украдено гипервизором (отданы соседним VM). Норма - менее 1-2%. Стабильно высокий steal означает перегруженный хост: либо overselling, либо шумные соседи (cryptominer, плохо настроенная БД).
## Архитектура выделенного сервера
Dedicated server - физическое железо в стойке датацентра, целиком принадлежащее одному клиенту. Никаких гипервизоров, никаких соседей.
Состав типового dedicated 2026 года:
- CPU: AMD Ryzen 9 7950X / 7950X3D, Intel Core i9-13900K, AMD EPYC 9354, Intel Xeon Gold 6448Y.
- RAM: 64-512 ГБ DDR4/DDR5 ECC.
- Storage: 2x NVMe 1-4 ТБ (RAID 1), либо SAS SSD в RAID 10.
- Сеть: 1 Гбит/с гарантированно, 10 Гбит/с на топовых конфигах.
- IPMI - удалённое управление сервером (включение/выключение, KVM-консоль, ISO-mount, BIOS).
### Что даёт IPMI
IPMI/BMC - выделенный сетевой контроллер с собственной ОС. Через веб-интерфейс или ipmitool можно:
- Включить/выключить/перезагрузить сервер.
- Подключиться к консоли (видно загрузку BIOS и ядра).
- Смонтировать ISO с собственного компьютера для установки ОС.
- Сменить настройки BIOS удалённо.
Это критично, если сервер ушёл в kernel panic или ваш fail2ban забанил все ваши IP - на VPS такой надёжный backdoor доступа отсутствует (обычно ограничивается VNC через панель).
### RAID
На dedicated вы сами выбираете уровень и тип RAID:
- **RAID 1** (mirror) - две копии данных, выдержит отказ одного диска. Запись теряет 0%, чтение быстрее.
- **RAID 10** - комбинация stripe + mirror на 4+ дисках. Высокий IOPS + отказоустойчивость.
- **RAID 5/6** - чётность, выгоднее по объёму, но проигрывает по записи.
- **ZFS/Btrfs** - программный RAID с снапшотами, чексуммами, компрессией.
На VPS обычно даётся "виртуальный диск" из общего RAID-массива хоста: гарантий по конкретной избыточности нет, восстановление - на стороне провайдера.
## Сравнение производительности
Бенчмарки одинаковых задач на типичных конфигурациях (показатели приблизительные, зависят от провайдера и нагрузки соседей):
| Тест | VPS 4vCPU/8GB | Dedicated Ryzen 9 7950X |
|---------------------------------------|------------------|-------------------------|
| Geekbench 6 single-core | 1500-2400 | 3000-3300 |
| Geekbench 6 multi-core | 5000-9000 | 18000-22000 |
| sysbench MySQL OLTP read-only | 3000-8000 tps | 25000-40000 tps |
| fio random read 4K (NVMe) | 30-100k IOPS | 500k-1M IOPS |
| fio random write 4K | 10-50k IOPS | 300k-800k IOPS |
| nginx static file (wrk -c100) | 30-80k rps | 200-400k rps |
Разница в IOPS особенно велика: VPS почти всегда упирается в storage QoS провайдера, тогда как dedicated с собственным NVMe выдаёт пиковые показатели диска.
## Сравнение цен
Ориентировочные диапазоны в 2026 году (Россия/ЕС, без учёта акций):
| Конфигурация | VPS, ₽/мес | Dedicated, ₽/мес |
|-------------------------------------|---------------|------------------|
| 2 vCPU, 4 ГБ RAM, 40 ГБ NVMe | 400-900 | - |
| 4 vCPU, 8 ГБ RAM, 80 ГБ NVMe | 800-2000 | - |
| 8 vCPU, 16 ГБ RAM, 160 ГБ NVMe | 1800-4000 | - |
| Ryzen 5 / 32 ГБ / 1 ТБ NVMe | - | 4000-7000 |
| Ryzen 9 7950X / 64 ГБ / 2 ТБ NVMe | - | 8000-13000 |
| EPYC / 128 ГБ / 2x4 ТБ NVMe RAID 1 | - | 15000-25000 |
Сравнивать имеет смысл по соотношению цена/производительность. Dedicated с Ryzen 9 за 10 000 ₽ обгоняет VPS той же стоимости в 3-5 раз по CPU и в 10-20 раз по IOPS. Но если задаче хватает 4 vCPU и 8 ГБ RAM, переплачивать за dedicated смысла нет.
> **Pterohost** - выделенные серверы на Ryzen 9 и EPYC с NVMe и многоуровневой DDoS-защитой. VPS не предоставляем - только dedicated.
> [Подобрать выделенный сервер](https://pterohost.ru/dedicated-servers?utm_source=docs&utm_medium=article&utm_campaign=vps-vs-vydelennyy-server)
## Какие задачи на чём лучше
### VPS
- Лендинги и небольшие корпоративные сайты на WordPress/Bitrix.
- Pet-проекты, тестовые стенды, dev-окружения.
- Микросервисы, telegram-боты, парсеры.
- VPN для личного использования.
- Игровые серверы Minecraft на 10-30 игроков (без тяжёлых модов).
- Discord-боты, очереди задач (Celery, Sidekiq).
- Базы данных под нагрузкой до 1000 RPS.
### Dedicated
- Высоконагруженные веб-проекты (10k+ RPS).
- Игровые серверы на 50+ игроков, сети серверов, лаунчеры.
- Соревновательные шутеры (CS2, VALORANT-конкуренты) - критичен low latency и стабильный CPU.
- Аналитика, ETL, ML-обучение моделей.
- Видеостриминг и транскодинг.
- Базы данных с большим working set (PostgreSQL 50+ ГБ горячих данных).
- Биллинг, финтех, ERP - там, где compliance запрещает мультитенантность.
- 3D-рендеринг, симуляции, научные расчёты.
Помогут понять, какой объём RAM и CPU реально нужен проекту, статьи [сколько RAM нужно серверу](/ru/skolko-ram-nuzhno-serveru) и [как работает CPU](/ru/how-work-cpu).
## Когда переезжать с VPS на dedicated
Сигналы, что VPS перестал справляться:
1. **Steal CPU > 5% в течение часов/дней**. Подтверждается через `top`, `vmstat 1`, `sar -u`. Это не лечится оптимизацией приложения.
2. **RAM constantly maxed** - постоянная нагрузка swap (`vmstat 1` показывает si/so > 0), OOM-killer убивает процессы.
3. **IOPS-лимит провайдера**. На VPS обычно есть hard cap (например, 10k IOPS read / 5k write). При упоре в лимит io.wait в `top` растёт до 30-50%.
4. **Burst-лимиты** - провайдер троттлит CPU после X минут максимальной нагрузки. Критично для ML и рендеринга.
5. **Нужен кастомный kernel** - eBPF, XDP, нестандартные iptables-модули, FUSE, KVM nested.
6. **Compliance** - PCI DSS Level 1, банковский сектор, медданные часто требуют физического изолирования.
7. **Network performance** - VPS делит сетевой uplink с соседями, пинги и jitter могут плавать.
Альтернативные опции до полного перехода на dedicated:
- **Premium VPS** на мощных нодах с пониженным overcommit (1:1 или 1:2 ratio).
- **BareMetal Cloud** (Hetzner AX, OVH HG, Vultr Bare Metal) - физический сервер с почасовой тарификацией.
- **Dedicated CPU instances** у облачных провайдеров (AWS m6i.metal, GCP c3-highcpu) - дорого, но быстро.
- [Турбо-VPS на NVMe](/ru/turbo-server) - промежуточный шаг между обычным VPS и dedicated.
## Минусы каждого варианта
### Минусы VPS
- Зависимость от соседей: шумная VM ломает SLA для всех на ноде.
- Лимиты по IOPS, PPS, исходящему трафику.
- Часто запрещены TUN/TAP (для VPN), nested virtualization, GPU.
- Сложнее точно прогнозировать производительность под пиком.
### Минусы dedicated
- Высокий минимальный чек: от 4-5 тыс. ₽/мес.
- Долгая установка - от часов до 1-2 дней при ручной подготовке.
- При отказе диска / RAM нужна замена компонентов с downtime.
- Требует больше администрирования: установка ОС, RAID, мониторинг железа.
- Переезд занимает время: не вырубить-и-восстановить-снапшот.
## Гибридные варианты
В 2026 году граница между VPS и dedicated стирается:
- **BareMetal Cloud** (Hetzner Robot AX-series, OVH Game, Equinix Metal) - физическое железо с биллингом как у облака.
- **VPS на премиум-нодах** - меньший overcommit, выше цена, ближе к dedicated по стабильности.
- **Dedicated CPU virtual** (Linode/Akamai Dedicated CPU, Vultr High Frequency) - vCPU привязан к физическому ядру 1:1.
- **GPU-VPS** для ML - проброс RTX 4090/A100 в VM.
Выбор стоит делать не "VPS vs dedicated", а под конкретную задачу. Если в проекте критична стабильная latency (игры, биржи), берите dedicated или premium-VPS на быстром CPU. Если важна гибкость и масштабирование - облачный VPS с возможностью апгрейда. Для тестов и pet-проектов - дешёвый KVM-VPS.
> **Pterohost** предоставляет только выделенные серверы (dedicated) на Ryzen 9 и EPYC с DDoS-защитой и поддержкой 24/7. VPS у нас нет - если задаче хватает VPS, рассматривайте Hetzner Cloud, Vultr, DigitalOcean.
> [Подобрать выделенный сервер](https://pterohost.ru/dedicated-servers?utm_source=docs&utm_medium=article&utm_campaign=vps-vs-vydelennyy-server)
## Итоговая таблица
| Критерий | VPS | Dedicated |
|-----------------------------|------------------------------|---------------------------------|
| Стоимость старта | от 400 ₽/мес | от 4000 ₽/мес |
| Изоляция | Делит хост с соседями | Полная физическая |
| Steal CPU | Есть | Нет |
| Свой kernel/eBPF/sysctl | Только KVM, не на OpenVZ | Полностью |
| IPMI | Нет (только VNC панели) | Да |
| RAID на выбор | Нет | Да |
| Скорость установки | Минуты | Часы-сутки |
| IOPS | До лимита провайдера | Полные возможности NVMe |
| Масштабирование | Быстрое (vertical scale) | Только смена сервера |
| GPU | Редко, дорого | Доступно (на специальных конфах)|
| Задачи | Веб, боты, dev, малые игры | Highload, игры 50+, ML, БД |
## Частые вопросы
### Что такое steal CPU и почему это важно?
Steal CPU - время, когда виртуальная машина хотела использовать процессор, но гипервизор отдал такты другой VM на том же физическом ядре. Виден в top как 'st'. Если steal стабильно выше 5%, сосед по гипервизору перегружает железо, и ваш VPS работает медленнее, чем заявленные характеристики. Это первый признак переезжать на dedicated или сменить провайдера.
### Чем vCPU отличается от реального ядра?
vCPU - это виртуальный поток, привязанный гипервизором к одному из аппаратных hyperthreads физического процессора. На современных CPU 1 ядро = 2 thread. Провайдер может продавать 2 vCPU = 1 физическое ядро, или давать по hyperthread - производительность отличается в 1.5-2 раза при одинаковой 'формальной' конфигурации.
### Когда VPS точно недостаточно и нужен dedicated?
Если steal CPU стабильно выше 5%, IOPS упирается в лимит провайдера, RAM забит постоянно (используется swap), пинг до соседних VM в датацентре скачет, или вам нужны полные права на ядро (нестандартный sysctl, eBPF, кастомные модули). Также dedicated выгоднее по цене, начиная с 32+ ГБ RAM и 8+ ядер.
### Подходит ли VPS для игрового сервера Minecraft?
Для сервера на 20-30 человек с обычными модами KVM-VPS с 4 vCPU и 8 ГБ RAM достаточно при условии низкого steal CPU. Для 50+ игроков, тяжёлых сборок (Create, RLCraft) или сетей серверов с прокси лучше брать dedicated или мощный VPS на премиум-нодах. Главный лимит Minecraft - однопоточность tick-loop: важна частота CPU, а не количество ядер.
---
# Minecraft для владельцев
## Выбор ядра сервера Minecraft 2026 - полное руководство
URL: https://docs.pterohost.com/ru/minecraft-server-cores-2026
Обновлено: 2026-01-04
Детальное сравнение ядер Minecraft серверов в 2026: Paper, Purpur, Pufferfish, Folia. Выбор лучшего ядра для производительности, плагинов и игры.
---
## Что такое ядро сервера Minecraft?
**Ядро сервера** (server core) - это программное обеспечение, которое управляет вашим Minecraft сервером. От выбора ядра зависит производительность, совместимость с плагинами, потребление ресурсов и функциональность сервера.
В 2026 году выбор ядра критически важен:
- Minecraft стал более требовательным к ресурсам
- Появились многопоточные ядра (Folia)
- Оптимизации достигли новых высот
- Совместимость плагинов стала сложнее
> Правильный выбор ядра может улучшить производительность на 200-300% по сравнению с Vanilla!
---
# Категория 1: Базовые ядра
## Vanilla (официальное ядро Mojang)
### Общая информация
**Описание:** Официальный сервер от разработчиков Minecraft без каких-либо модификаций.
**Версия в 2026:** 1.21.x и выше
### Технические характеристики
| Параметр | Значение |
|----------|----------|
| Язык программирования | Java |
| Поддержка плагинов | Нет |
| Поддержка модов | Нет (только датапаки) |
| Производительность | Базовая |
| Многопоточность | Ограниченная |
### Преимущества
**✅ Официальная поддержка**
- Разрабатывается Mojang Studios
- Получает обновления в день релиза новых версий
- Гарантированная совместимость со всеми клиентами
**✅ Абсолютная стабильность**
- Нет сторонних модификаций
- Минимум багов
- Предсказуемое поведение
**✅ Vanilla механики**
- 100% оригинальный геймплей
- Все механики работают как задумано
- Идеально для технических серверов
### Недостатки
**❌ Низкая производительность**
- Однопоточная обработка мира
- Нет оптимизаций редстоуна
- Медленная загрузка чанков
- Высокое потребление RAM
**❌ Отсутствие расширений**
- Нельзя установить плагины
- Нет админ-команд
- Ограниченная настройка
**❌ Слабая защита**
- Нет встроенного античита
- Базовая защита от эксплойтов
- Уязвим к лагам
### Для кого подходит
**Используйте Vanilla если:**
- Нужен чистый Minecraft без модификаций
- Технический сервер с редстоуном
- Speedrun практика
- Хотите играть "как задумано"
**Не используйте если:**
- Нужны плагины или моды
- Требуется высокая производительность
- Планируется 20+ игроков
### Установка и запуск
```bash
# Скачать официальный сервер
wget https://piston-data.mojang.com/v1/objects/[hash]/server.jar
# Запуск с базовыми флагами
java -Xmx4G -Xms4G -jar server.jar nogui
```
---
## Spigot - базовое ядро с плагинами
### Общая информация
**Описание:** Первое популярное ядро с поддержкой Bukkit API и базовыми оптимизациями.
**Создатель:** md_5 (SpigotMC Team)
**Год создания:** 2012
**Статус в 2026:** Устаревшее, но поддерживается
### Архитектура и патчи
**Базовые патчи Spigot:**
1. **Entity Activation Range**
- Отключает обработку далеких мобов
- Снижает нагрузку на CPU
- Настраивается в spigot.yml
2. **View Distance Optimization**
- Динамическая дистанция прорисовки
- Снижает нагрузку на сеть
- Адаптируется под TPS
3. **Hopper Optimization**
- Оптимизация воронок
- Снижение проверок на тик
- Уменьшение лагов от ферм
### Производительность
**Метрики производительности:**
| Тест | Vanilla | Spigot | Улучшение |
|------|---------|--------|-----------|
| TPS (50 игроков) | 14-16 | 17-19 | +20% |
| RAM (4GB) | 100% | 85% | -15% |
| Chunk load time | 100% | 70% | -30% |
| Hopper tick time | 100% | 60% | -40% |
### Особенности конфигурации
**spigot.yml - ключевые настройки:**
```yaml
world-settings:
default:
# Дистанция активации мобов
entity-activation-range:
animals: 32 # Животные
monsters: 32 # Монстры
raiders: 48 # Рейдеры
misc: 16 # Остальное
water: 16 # Водные мобы
# Оптимизация тиков
entity-tracking-range:
players: 48
animals: 48
monsters: 48
misc: 32
other: 64
# Лимиты роста
growth:
cactus-modifier: 100
cane-modifier: 100
melon-modifier: 100
mushroom-modifier: 100
pumpkin-modifier: 100
sapling-modifier: 100
beetroot-modifier: 100
carrot-modifier: 100
potato-modifier: 100
wheat-modifier: 100
# Merge радиус для энтити
merge-radius:
item: 2.5
exp: 3.0
```
### Преимущества
**✅ Bukkit/Spigot API**
- Огромная библиотека плагинов
- Тысячи бесплатных плагинов на SpigotMC
- Простая разработка плагинов
**✅ Базовые оптимизации**
- Лучше чем Vanilla
- Стабильные патчи
- Проверенные временем
**✅ Большое сообщество**
- Миллионы пользователей
- Множество гайдов
- Активная поддержка
### Недостатки
**❌ Устаревшие оптимизации**
- Paper значительно быстрее
- Отсутствуют современные патчи
- Медленная асинхронная обработка
**❌ Медленные обновления**
- Обновления выходят позже Vanilla
- Нужно компилировать BuildTools
- Долгая адаптация к новым версиям
### Для кого подходит
**Используйте Spigot если:**
- Старые версии Minecraft (1.8-1.12)
- Paper вызывает проблемы (редко)
- Нужна максимальная совместимость со старыми плагинами
**Не используйте если:**
- Современная версия (1.20+)
- Нужна максимальная производительность
- Доступен Paper
> В 2026 году Spigot используется редко. Paper превосходит его во всем.
---
# Категория 2: Производительные ядра
## Paper - золотой стандарт производительности
### Общая информация
**Описание:** Высокопроизводительный форк Spigot с сотнями оптимизаций и улучшений.
**Создатель:** PaperMC Team (Aikar, electronicboy и др.)
**Год создания:** 2016
**Статус в 2026:** Самое популярное ядро (60% серверов)
### Архитектура
**Основа:**
- Форк Spigot
- Все патчи Spigot включены
- 300+ собственных патчей
- Активная разработка
**Философия разработки:**
- Производительность без ущерба стабильности
- Фикс эксплойтов и багов Vanilla
- Расширенный API для разработчиков
- Обратная совместимость с Spigot
### Ключевые патчи и оптимизации
#### 1. Асинхронная загрузка чанков
**Проблема в Vanilla/Spigot:**
- Чанки загружаются в главном потоке
- Блокирует обработку мира
- Вызывает фризы при телепорте
**Решение Paper:**
```java
// Асинхронная загрузка в отдельных потоках
CompletableFuture loadChunkAsync(int x, int z);
```
**Результат:**
- Загрузка чанков в 3-5 раз быстрее
- Нет фризов при телепорте
- Плавный геймплей
#### 2. Оптимизация Entity AI (мобов)
**Патчи Paper для AI:**
**a) Умная активация мобов**
```yaml
# paper-world.yml
entities:
behavior:
# Мобы вне зоны видимости обновляются реже
baby-zombie-movement-modifier: 0.5
disable-chest-cat-detection: true
spawner-nerfed-mobs-should-jump: false
```
**b) Оптимизация Pathfinding (поиск пути)**
- Кэширование путей
- Асинхронный расчет
- Умная отмена поиска
**Результат:**
- До 40% меньше нагрузки от мобов
- Плавное поведение AI
- Поддержка 1000+ мобов без лагов
#### 3. Редстоун оптимизация
**Проблема Vanilla:**
- Редстоун обновления каскадируют
- Один блок вызывает сотни проверок
- Лагают большие схемы
**Paper патчи:**
**a) Умная обработка редстоуна**
```yaml
# paper-world.yml
redstone-implementation: EIGENCRAFT
```
**b) Оптимизация компонентов:**
- Поршни обрабатываются быстрее
- Компараторы кэшируют состояния
- Повторители оптимизированы
**Результат:**
- Редстоун схемы работают на 30% быстрее
- Меньше лагов от больших ферм
- Стабильный TPS
#### 4. Chunk System Optimization
**Полная переработка системы чанков:**
**a) Асинхронная генерация**
- Генерация в отдельных потоках
- Не блокирует главный поток
- Быстрая первая загрузка мира
**b) Умный unload (выгрузка)**
```yaml
chunk-loading:
max-concurrent-sends: 4 # Лимит отправки чанков
autoconfig-send-distance: true # Автонастройка
```
**c) Chunk priority system**
- Приоритет чанкам около игроков
- Быстрая загрузка важных областей
- Плавное исследование
#### 5. Anti-Xray (защита от X-Ray)
**Встроенная защита руд:**
```yaml
# paper-world.yml
anticheat:
anti-xray:
enabled: true
engine-mode: 2 # 1 = простой, 2 = продвинутый
hidden-blocks:
- copper_ore
- deepslate_copper_ore
- gold_ore
- deepslate_gold_ore
- iron_ore
- deepslate_iron_ore
- coal_ore
- deepslate_coal_ore
- lapis_ore
- deepslate_lapis_ore
- redstone_ore
- deepslate_redstone_ore
- diamond_ore
- deepslate_diamond_ore
- emerald_ore
- deepslate_emerald_ore
replacement-blocks:
- stone
- deepslate
```
**Как работает:**
- Engine mode 1: Заменяет скрытые блоки на камень
- Engine mode 2: Добавляет фальшивые руды
- Отправляет настоящие блоки только при раскопке
#### 6. Timings и диагностика
**Встроенный профайлер:**
```bash
# Запустить профилирование
/timings on
# Подождать 5-10 минут
# Получить отчет
/timings paste
```
**Что показывает:**
- Нагрузка по плагинам
- Время обработки энтити
- Графики TPS
- Рекомендации по оптимизации
### Расширенный API
**Дополнительные возможности для разработчиков:**
**1. Async Entity Tracking**
```java
// Отслеживание энтити без блокировки
player.getTrackedEntities().forEach(entity -> {
// Обработка
});
```
**2. Entity Tick Events**
```java
// Кастомная обработка тиков
@EventHandler
public void onEntityTick(EntityTickEvent event) {
// Ваш код
}
```
**3. Paper Components API**
```java
// Современная работа с текстом
Component message = Component.text("Привет!")
.color(NamedTextColor.GREEN)
.decorate(TextDecoration.BOLD);
```
### Конфигурация Paper
**paper-global.yml - глобальные настройки:**
```yaml
# Сеть и пакеты
packet-limiter:
all-packets:
action: KICK
interval: 7.0
max-packet-rate: 500.0
kick-message: "Превышен лимит пакетов"
# Производительность
async-chunks:
threads: 4 # Потоки для загрузки чанков
# Безопасность
packet-limiter:
overrides:
ServerboundPlaceRecipePacket:
action: DROP
interval: 4.0
max-packet-rate: 5.0
# Консоль
console:
enable-brigadier-highlighting: true
enable-brigadier-completions: true
```
**paper-world.yml - настройки мира:**
```yaml
# Сущности
entities:
behavior:
door-breaking-difficulty:
husk:
- HARD
zombie:
- HARD
ender-dragons-death-always-places-dragon-egg: false
mobs-can-always-pick-up-loot:
skeletons: false
zombies: false
nerf-pigmen-from-nether-portals: false
spawning:
all-chunks-are-slime-chunks: false
alt-item-despawn-rate:
enabled: true
items:
cobblestone: 300 # Булыжник деспавнится через 15сек
netherrack: 300
sand: 300
gravel: 300
dirt: 300
# Чанки
chunks:
auto-save-interval: 6000 # 5 минут
delay-chunk-unloads-by: 10s
entity-per-chunk-save-limit:
arrow: 16
ender_pearl: 8
experience_orb: 16
fireball: 8
small_fireball: 8
snowball: 8
# Коллизии
collisions:
allow-player-cramming-damage: false
allow-vehicle-collisions: true
fix-climbing-bypassing-cramming-rule: true
max-entity-collisions: 8
only-players-collide: false
# Редстоун
hopper:
cooldown-when-full: true
disable-move-event: false
ignore-occluding-blocks: false
redstone-implementation: VANILLA # или EIGENCRAFT
# Оптимизации
tick-rates:
behavior:
villager:
validatenearbypoi: 60 # Раз в 3 секунды
container-update: 1
grass-spread: 4
mob-spawner: 2
sensor:
villager:
secondarypoisensor: 80
```
### Производительность Paper
**Сравнительные тесты (2026):**
| Метрика | Vanilla | Spigot | Paper | Улучшение vs Vanilla |
|---------|---------|--------|-------|---------------------|
| TPS (100 игроков) | 12-14 | 16-17 | 19-20 | +50% |
| RAM usage (8GB) | 100% | 85% | 65% | -35% |
| Chunk load (64 чанка) | 4.2s | 3.1s | 1.4s | -67% |
| Entity tick time | 45ms | 38ms | 22ms | -51% |
| Redstone lag | Высокий | Средний | Низкий | -60% |
**Реальные кейсы:**
**Кейс 1: Средний выживание сервер**
- Игроки: 80 онлайн
- Железо: Intel i7, 16GB RAM
- Vanilla: 14 TPS, лаги
- Paper: 19.8 TPS, плавно
**Кейс 2: Мини-игры сервер**
- Игроки: 200 онлайн
- Миры: 15 арен
- Spigot: 16 TPS, фризы при загрузке
- Paper: 19.5 TPS, плавная загрузка
### Установка Paper
**Метод 1: Прямое скачивание**
```bash
# Скачать последнюю версию
wget https://api.papermc.io/v2/projects/paper/versions/1.21.1/builds/latest/downloads/paper-1.21.1-latest.jar -O paper.jar
# Запуск с оптимальными флагами (Aikar Flags)
java -Xmx8G -Xms8G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:G1NewSizePercent=30 \
-XX:G1MaxNewSizePercent=40 \
-XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 \
-XX:G1HeapWastePercent=5 \
-XX:G1MixedGCCountTarget=4 \
-XX:InitiatingHeapOccupancyPercent=15 \
-XX:G1MixedGCLiveThresholdPercent=90 \
-XX:SurvivorRatio=32 \
-XX:+PerfDisableSharedMem \
-XX:MaxTenuringThreshold=1 \
-jar paper.jar nogui
```
**Метод 2: Автообновление скрипт**
```bash
#!/bin/bash
# update-paper.sh
VERSION="1.21.1"
API_URL="https://api.papermc.io/v2/projects/paper/versions/${VERSION}"
# Получить последний билд
LATEST_BUILD=$(curl -s ${API_URL} | jq -r ".builds[-1]")
# Скачать
wget "${API_URL}/builds/${LATEST_BUILD}/downloads/paper-${VERSION}-${LATEST_BUILD}.jar" -O paper.jar
echo "Paper обновлен до билда ${LATEST_BUILD}"
```
### Миграция на Paper
**Из Spigot:**
1. Создайте бэкап сервера
2. Замените spigot.jar на paper.jar
3. Запустите сервер
4. Paper автоматически конвертирует конфиги
5. Проверьте плагины
**Из Vanilla:**
1. Бэкап мира
2. Установите Paper
3. Скопируйте world, world_nether, world_the_end
4. Запустите сервер
5. Установите нужные плагины
### Совместимость плагинов
**Paper совместим с:**
- ✅ 99% Bukkit плагинов
- ✅ 99% Spigot плагинов
- ✅ Paper-специфичные плагины
- ⚠️ Некоторые NMS плагины требуют обновления
**Проблемные плагины:**
- Плагины использующие дюпы
- Старые NMS плагины (до 1.18)
- Плагины ломающие Vanilla механики
### Для кого Paper - идеальный выбор
**✅ Используйте Paper если:**
- Нужна высокая производительность
- Сервер с 20+ игроками
- Используете Bukkit/Spigot плагины
- Хотите стабильность + производительность
- Нужна защита от эксплойтов
- Важна активная поддержка
**✅ Paper подходит для:**
- Survival серверов
- SMP серверов
- Мини-игр
- RPG серверов
- Креатив серверов
- Любых типов серверов с плагинами
> Paper - лучший выбор для 80% Minecraft серверов в 2026 году!
---
## Pufferfish - экстремальная производительность
### Общая информация
**Описание:** Форк Purpur с фокусом на максимальную производительность через агрессивные оптимизации.
**Создатель:** PufferfishMC Team (Kevin Raneri и др.)
**Базируется на:** Purpur (который базируется на Paper)
**Статус в 2026:** Лучший выбор для высоконагруженных серверов
### Иерархия форков
```
Vanilla
└─ Spigot
└─ Paper
└─ Purpur
└─ Pufferfish
```
**Что наследуется:**
- Все патчи Paper ✅
- Все патчи Purpur ✅
- Уникальные оптимизации Pufferfish ✅
### Революционные патчи Pufferfish
#### 1. DAB (Dynamic Activation of Brain) - умная активация AI
**Проблема стандартных ядер:**
- EAR (Entity Activation Range) просто отключает мобов за дистанцией
- Мобы либо активны на 100%, либо заморожены
- Нет гибкости
**Решение Pufferfish DAB:**
**Концепция:**
Мобы имеют 3 уровня активности вместо 2:
1. **Full tick** - полная обработка (рядом с игроками)
2. **Reduced tick** - обработка раз в N тиков (средняя дистанция)
3. **Minimal tick** - минимальная обработка (далеко от игроков)
**Как работает:**
```yaml
# pufferfish.yml
dab:
enabled: true
# Как часто тикать далеких мобов
max-tick-freq: 20 # Раз в 20 тиков = раз в секунду
# Множитель дистанции активации
activation-dist-mod: 7
# Максимальное расстояние для неактивных мобов
deactivation-dist-mod: 7
```
**Пример работы:**
```
Игрок на координате X=0
Моб на X=10: Full tick каждый тик (1/20 сек)
Моб на X=50: Reduced tick раз в 10 тиков (0.5 сек)
Моб на X=100: Minimal tick раз в 20 тиков (1 сек)
```
**Результат:**
- До 60% снижение нагрузки от AI мобов
- Поддержка 2000+ мобов без лагов
- Мобы остаются "живыми" но не лагают
#### 2. Async Mob Spawning - асинхронный спавн мобов
**Проблема:**
- Спавн мобов происходит в главном потоке
- Блокирует обработку мира
- Лагает при спавне большого количества
**Решение:**
```yaml
# pufferfish.yml
enable-async-mob-spawning: true
```
**Что происходит:**
1. Проверка условий спавна - асинхронно
2. Выбор места спавна - асинхронно
3. Создание моба - в главном потоке (быстро)
**Результат:**
- Нет лагов от спавна мобов
- Плавный геймплей в новых чанках
- Быстрая генерация мира
#### 3. Inactive Goal Selector Throttle
**Что это:**
Ограничение обновления целей (goals) у неактивных мобов.
```yaml
inactive-goal-selector-throttle: true
```
**Как работает:**
- Активные мобы: обновляют goals каждый тик
- Неактивные мобы: обновляют goals раз в N тиков
**Результат:**
- -20% нагрузка от AI
- Плавное поведение мобов
- Нет визуальных багов
#### 4. Оптимизация Suffocation (удушье)
**Проблема:**
- Игра проверяет suffocation каждый тик для каждой энтити
- Много вычислений коллизий
**Решение:**
```yaml
enable-suffocation-optimization: true
```
**Оптимизация:**
- Проверка suffocation только когда энтити внутри блока
- Кэширование результатов
- Умная проверка коллизий
#### 5. Улучшенная оптимизация структур
**Async Structure Generation:**
```yaml
async-structure-generation: true
```
**Что оптимизировано:**
- Генерация деревень - асинхронно
- Генерация храмов - асинхронно
- Генерация крепостей - асинхронно
- Поиск структур - кэшируется
**Результат:**
- Быстрая генерация новых чанков
- Нет фризов при исследовании
- Плавная телепортация
### Конфигурация Pufferfish
**pufferfish.yml - основной конфиг:**
```yaml
# DAB система
dab:
enabled: true
max-tick-freq: 20
activation-dist-mod: 7
deactivation-dist-mod: 7
blacklisted-entities: [] # Энтити игнорируемые DAB
# Асинхронные операции
enable-async-mob-spawning: true
enable-async-structure-generation: true
# Оптимизации AI
inactive-goal-selector-throttle: true
enable-suffocation-optimization: true
# Оптимизация активации энтити
entity-activation-range-modifications:
villager: 16 # Жители активны на меньшей дистанции
flying-monsters: 32
water: 16
villagers-work-immunity-after: 100 # Жители работают после X тиков
villagers-work-immunity-for: 20
villagers-active-for-panic: true
# Оптимизация pathfinding
enable-async-pathfinding: true
max-async-pathfinding-threads: 4
# Лимиты
projectile-load-save-per-chunk-limit: 16 # Лимит снарядов в чанке
```
### Производительность
**Бенчмарки (2026):**
| Метрика | Paper | Purpur | Pufferfish | Улучшение |
|---------|-------|--------|------------|-----------|
| TPS (200 игроков) | 17-18 | 17-18 | 19-20 | +12% |
| AI tick time | 100% | 100% | 40% | -60% |
| Mob spawning lag | Средний | Средний | Нет | -100% |
| RAM (2000 мобов) | 8GB | 8GB | 5GB | -37% |
| Max мобов без лагов | 800 | 800 | 2000 | +150% |
**Реальный кейс:**
**Сервер:** Survival с 150 игроками
- **Железо:** Ryzen 9 5900X, 32GB RAM
- **Paper:** 17 TPS, лаги в часы пик
- **Pufferfish:** 19.5 TPS, стабильно
**До Pufferfish:**
- 800 мобов на сервере
- Лаги при спавне
- TPS падает до 15
**После Pufferfish:**
- 2000+ мобов
- Нет лагов при спавне
- Стабильные 19-20 TPS
### Установка Pufferfish
```bash
# Скачать Pufferfish
wget https://ci.pufferfish.host/job/Pufferfish-1.21/lastSuccessfulBuild/artifact/build/libs/pufferfish-paperclip-1.21.1-R0.1-SNAPSHOT-reobf.jar -O pufferfish.jar
# Запуск с оптимальными флагами
java -Xmx12G -Xms12G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=130 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:G1NewSizePercent=28 \
-XX:G1MaxNewSizePercent=40 \
-XX:G1HeapRegionSize=16M \
-XX:G1ReservePercent=20 \
-XX:G1HeapWastePercent=5 \
-XX:G1MixedGCCountTarget=3 \
-XX:InitiatingHeapOccupancyPercent=10 \
-XX:G1MixedGCLiveThresholdPercent=90 \
-XX:SurvivorRatio=32 \
-XX:+PerfDisableSharedMem \
-XX:MaxTenuringThreshold=1 \
-XX:+AlwaysPreTouch \
-jar pufferfish.jar nogui
```
### Для кого Pufferfish
**✅ Используйте Pufferfish если:**
- Сервер с 100+ игроками онлайн
- Много мобов (фермы, RPG)
- Нужна максимальная производительность
- Готовы настраивать агрессивные оптимизации
- Ограниченные ресурсы сервера
**❌ Не используйте если:**
- Маленький сервер (<30 игроков)
- Paper достаточно производителен
- Нужна 100% совместимость с некоторыми плагинами
> Pufferfish - король производительности для больших серверов в 2026!
---
# Категория 3: Ядра с расширенными функциями
## Purpur - кастомизация и настройки
### Общая информация
**Описание:** Форк Paper с акцентом на расширенные настройки и дополнительные функции.
**Создатель:** PurpurMC Team
**Базируется на:** Paper
**Философия:** "Paper + больше возможностей для администраторов"
### Уникальные функции Purpur
#### 1. Детальная настройка мобов
**purpur.yml - настройки мобов:**
```yaml
mobs:
# Зомби
zombie:
ridable: true # Можно оседлать
ridable-in-water: false
ridable-max-speed: 0.75
aggressive-towards-villager-when-lagging: false
jockey:
only-babies: true
chance: 0.05
try-existing-chickens: true
# Жители
villager:
ridable: true
# "Лоботомия" - отключить AI у далеких жителей
lobotomize:
enabled: true
check-interval: 100 # Проверка раз в 5 секунд
brain-ticks: 1 # Как часто тикать мозг
search-radius:
acquire-poi: 48 # Радиус поиска работы
nearest-bed-sensor: 48
# Крипер
creeper:
ridable: true
allow-griefing: true
bypass-mob-griefing: false
charged-spawn-chance: 0.0
# Эндермен
enderman:
ridable: false
allow-griefing: true
can-despawn-with-held-block: false
ignore-projectiles: false
# Свиночеловек
piglin:
ridable: true
portal-spawn-modifier: 2000 # Реже спавнятся из порталов
# Скелет
skeleton:
ridable: true
feed-wither-roses: 0 # Шанс превратиться в иссушителя
```
#### 2. Игровые механики
**Настройка голода, урона, опыта:**
```yaml
gameplay-mechanics:
player:
# Голод
hunger:
starvation-damage: 1.0 # Урон от голода
# Телепортация
teleport-if-outside-border: true
# АФК
idle-timeout:
kick-if-idle: true
timeout: 900 # 15 минут
count-as-sleeping: false
# Критический удар
critical-damage-multiplier: 1.5
# Урон от падения
fall-damage-multiplier: 1.0
# Опыт
exp-dropped-on-death:
equation: expLevel * 7 # Формула дропа опыта
# Мир
daylight-cycle-ticks:
daytime: 12000
nighttime: 12000
# Рост растений
use-better-mending: false
trident-loyalty-void-return-height: 0.0
```
#### 3. Команды администратора
**Дополнительные команды Purpur:**
```bash
# Демо режим
/demo <игрок> # Включить демо режим
# Кредиты
/credits <игрок> # Показать титры
# Пинг
/ping # Показать свой пинг
/ping <игрок> # Пинг другого игрока
# ТПС
/tpsbar # Показать TPS в боссбаре
# Компас
/compass # Показать направление взгляда
```
#### 4. Anvil (наковальня) настройки
```yaml
anvil:
allow-colors: true # Цвета в названиях
allow-minimessage-tags: true # MiniMessage форматирование
cumulative-cost: true # Накопительная стоимость
iron-ingots-used-for-repair: 0 # Сколько слитков = 25% прочности
obsidian-used-for-damage: 0 # Обсидиан для починки
allow-unsafe-enchants: false # Небезопасные зачарования
```
#### 5. Настройки блоков
```yaml
blocks:
# Сундуки
chest:
open-with-solid-block-on-top: false
# Ender chest
ender_chest:
six-rows: false # 6 рядов вместо 3
use-permissions-for-rows: false
# Воронки
hopper:
disable-move-event: false
# Bed (кровать)
bed:
explode: true # Взрыв в аду/энде
explode-on-villager-sleep: false
# Barrel (бочка)
barrel:
six-rows: false
# Dispenser
dispenser:
apply-cursed-to-armor-slots: true
```
### Производительность
**Purpur vs Paper:**
- Производительность: идентична (базируется на Paper)
- RAM: +5-10% из-за дополнительных функций
- Совместимость: 100% Paper плагинов
### Для кого Purpur
**✅ Используйте Purpur если:**
- Нужны детальные настройки геймплея
- Хотите кастомизировать мобов
- Нужны дополнительные админ-команды
- Paper недостаточно гибкий
**❌ Не используйте если:**
- Стандартного Paper достаточно
- Не нужны дополнительные настройки
> Purpur = Paper + огромное количество настроек для тонкой кастомизации сервера.
---
# Категория 4: Экспериментальные ядра
## Folia - многопоточная революция
### Общая информация
**Описание:** Экспериментальное ядро от Paper Team с революционной многопоточной обработкой регионов.
**Создатель:** PaperMC Team (Spottedleaf)
**Год создания:** 2023
**Статус в 2026:** Экспериментальное, но стабилизируется
### Революционная архитектура
**Традиционная архитектура (Paper, Purpur, Pufferfish):**
```
┌─────────────────────────────┐
│ Главный поток (1 core) │
│ - Обработка всего мира │
│ - Все энтити │
│ - Все чанки │
│ - Редстоун │
│ - Физика │
└─────────────────────────────┘
Остальные CPU ядра простаивают
```
**Проблема:**
- Не важно сколько у вас ядер CPU
- Используется только 1 ядро для мира
- Лимит ~20 TPS независимо от железа
**Архитектура Folia:**
```
Мир разделен на регионы (8x8 чанков)
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ Region 1 │ │ Region 2 │ │ Region 3 │ │ Region 4 │
│ Thread 1 │ │ Thread 2 │ │ Thread 3 │ │ Thread 4 │
└──────────┘ └──────────┘ └──────────┘ └──────────┘
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ Region 5 │ │ Region 6 │ │ Region 7 │ │ Region 8 │
│ Thread 5 │ │ Thread 6 │ │ Thread 7 │ │ Thread 8 │
└──────────┘ └──────────┘ └──────────┘ └──────────┘
Каждый регион обрабатывается независимо!
```
**Преимущества:**
- Использование всех ядер CPU
- Масштабирование с количеством ядер
- Теоретически - безлимитная производительность
### Как работают регионы
**Регион:**
- Размер: 8x8 чанков (128x128 блоков)
- Независимая обработка
- Собственный поток
- Собственный тик-цикл
**Пример:**
```
Сервер с 200 игроками на CPU с 16 ядрами:
Paper: 1 ядро обрабатывает всех → 15 TPS
Folia: 16 ядер обрабатывают по региону → 20 TPS
```
### Механизм работы
#### 1. Разделение мира
```
Мир делится на регионы:
[0,0] - [7,7] = Region 1
[8,0] - [15,7] = Region 2
[0,8] - [7,15] = Region 3
...
```
#### 2. Планировщик регионов
**Region Scheduler:**
- Распределяет регионы по потокам
- Балансирует нагрузку
- Переносит регионы между потоками
**Пример:**
```
Thread 1: Region 1, Region 5
Thread 2: Region 2, Region 6
Thread 3: Region 3, Region 7
Thread 4: Region 4, Region 8
```
#### 3. Обработка межрегиональных взаимодействий
**Проблема:** Как обрабатывать взаимодействия между регионами?
**Решение Folia:**
**a) Перенос энтити:**
```java
// Энтити переходит из региона в регион
Entity crosses border → Transfer to new region thread
```
**b) Блоки на границе:**
```
Редстоун сигнал через границу:
Region 1 → Queue signal → Region 2 обрабатывает
```
**c) Синхронизация:**
- Минимальная блокировка
- Lock-free структуры данных
- Атомарные операции
### Производительность Folia
**Теоретический потенциал:**
| CPU ядер | Paper TPS | Folia TPS (идеал) | Folia TPS (реально) |
|----------|-----------|-------------------|---------------------|
| 4 ядра | 20 | 80 | 35-40 |
| 8 ядер | 20 | 160 | 60-80 |
| 16 ядер | 20 | 320 | 100-140 |
| 32 ядра | 20 | 640 | 150-200 |
**Реальные тесты (2026):**
**Сценарий 1: Игроки распределены**
- 200 игроков по всему миру
- CPU: Ryzen 9 7950X (16 ядер)
- Paper: 12 TPS (перегруз)
- Folia: 19 TPS (стабильно)
**Сценарий 2: Игроки в одном месте**
- 200 игроков на спавне (1 регион)
- CPU: Ryzen 9 7950X
- Paper: 12 TPS
- Folia: 13 TPS (нет прироста, все в одном регионе)
**Вывод:**
> Folia эффективна только если игроки распределены по миру!
### Ограничения и проблемы Folia
#### 1. Совместимость плагинов - КРИТИЧЕСКАЯ ПРОБЛЕМА
**Почему плагины ломаются:**
**Проблема A: Планировщики**
```java
// НЕ РАБОТАЕТ в Folia
Bukkit.getScheduler().runTask(plugin, () -> {
// Этот код может выполниться в любом регионе!
});
// РАБОТАЕТ в Folia
entity.getScheduler().run(plugin, (task) -> {
// Выполнится в регионе этой энтити
}, null);
```
**Проблема B: Доступ к миру**
```java
// НЕ РАБОТАЕТ
World world = Bukkit.getWorld("world");
world.getBlockAt(x, y, z).setType(Material.STONE);
// Может быть другой регион!
// РАБОТАЕТ
region.execute(() -> {
world.getBlockAt(x, y, z).setType(Material.STONE);
});
```
**Проблема C: Итерация энтити**
```java
// НЕ РАБОТАЕТ - race condition
for (Entity entity : world.getEntities()) {
// entity может переместиться в другой регион!
}
// РАБОТАЕТ
region.getEntities().forEach(entity -> {
// Безопасно в рамках региона
});
```
**Статистика совместимости (2026):**
- ✅ Работают: ~15% плагинов (адаптированные)
- ⚠️ Частично: ~25%
- ❌ Не работают: ~60%
**Популярные плагины:**
| Плагин | Статус | Примечание |
|--------|--------|------------|
| EssentialsX | ❌ | Требует переработки |
| WorldEdit | ⚠️ | Частично работает |
| Vault | ❌ | Не поддерживает регионы |
| LuckPerms | ✅ | Адаптирован |
| CoreProtect | ❌ | Не поддерживает |
| Citizens | ❌ | Требует переработки |
#### 2. Производительность не всегда лучше
**Когда Folia НЕ помогает:**
**a) Игроки кучкуются**
- Спавн сервер: все в одном месте
- Мини-игры: арены в одном регионе
- PvP: бои в одной зоне
**b) Малое количество игроков**
- <50 игроков: Paper достаточно
- Overhead от многопоточности не окупается
**c) Много взаимодействий между регионами**
- Большие редстоун схемы через регионы
- Частые телепортации
- Синхронизация замедляет
#### 3. Сложность разработки
**Для разработчиков плагинов:**
- Нужно переписывать весь код
- Думать о thread-safety
- Использовать Folia API
- Тестировать race conditions
**Пример адаптации:**
```java
// Старый код (Bukkit/Paper)
public void teleportPlayer(Player player, Location loc) {
player.teleport(loc);
}
// Новый код (Folia)
public void teleportPlayer(Player player, Location loc) {
// Получить регион назначения
io.papermc.paper.threadedregions.scheduler.RegionScheduler scheduler =
Bukkit.getRegionScheduler();
// Выполнить телепорт в правильном регионе
scheduler.execute(plugin, loc, () -> {
player.teleport(loc);
});
}
```
### Настройка Folia
**folia.yml - специфичные настройки:**
```yaml
# Размер региона (не рекомендуется менять)
region-size: 8 # чанков
# Потоки
threads:
# -1 = auto (кол-во ядер CPU)
worker-threads: -1
# Планировщик
tick-executor:
# Как часто проверять регионы
tick-rate: 50 # миллисекунд (20 TPS)
# Миграция энтити между регионами
entity-scheduler:
# Макс. перемещений за тик
max-transfers-per-tick: 100
```
### Установка Folia
```bash
# Скачать Folia
wget https://api.papermc.io/v2/projects/folia/versions/1.21.1/builds/latest/downloads/folia-1.21.1-latest.jar -O folia.jar
# Запуск (нужно МНОГО RAM для многопоточности)
java -Xmx24G -Xms24G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=100 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:G1NewSizePercent=40 \
-XX:G1MaxNewSizePercent=50 \
-XX:G1HeapRegionSize=16M \
-XX:G1ReservePercent=15 \
-XX:InitiatingHeapOccupancyPercent=20 \
-XX:+AlwaysPreTouch \
-XX:+UseNUMA \
-jar folia.jar nogui
```
### Для кого Folia
**✅ Используйте Folia если:**
- Огромный открытый мир
- Игроки распределены по миру (SMP, survival)
- Мощный CPU (12+ ядер)
- Минимум плагинов
- Готовы жертвовать совместимостью ради производительности
- Понимаете риски экспериментального ПО
**❌ НЕ используйте Folia если:**
- Нужна совместимость с плагинами
- Мини-игры (игроки кучкуются)
- Маленький/средний сервер (<100 игроков)
- Спавн-сервер
- Нужна стабильность
**Идеальный кейс для Folia:**
```
Тип: Огромный SMP сервер
Игроки: 500+ распределены по 10000x10000 миру
CPU: AMD EPYC 32 ядра
Плагины: Минимум (только LuckPerms, адаптированные)
Результат: 20 TPS стабильно, Paper бы давал 10 TPS
```
> Folia - это будущее, но в 2026 году еще не готово для массового использования.
---
# Категория 5: Специализированные форки
## Leaves - китайский инновационный форк
### Общая информация
**Описание:** Форк Purpur от китайского сообщества с уникальными патчами и функциями.
**Создатель:** LeavesMC Team (Китай)
**Базируется на:** Purpur
**Статус:** Активно развивается в Китае
### Уникальные особенности
#### 1. Дополнительные оптимизации
**Leaves патчи:**
- Улучшенная оптимизация редстоуна
- Дополнительные кэши для энтити
- Оптимизация китайских символов в чате
- Улучшенная компрессия пакетов
#### 2. Специальные функции
```yaml
# leaves.yml
leaves-carpet-support: true # Поддержка Carpet мода
fix-update-suppression: false # Фикс update suppression
bbor-protocol-support: true # Поддержка BBOR
```
### Для кого Leaves
**✅ Используйте если:**
- Понимаете китайский язык
- Хотите экспериментировать
- Нужны специфичные фиксы
**❌ Не используйте если:**
- Не знаете китайский
- Нужна англоязычная документация
- Предпочитаете популярные ядра
---
## Scissors - анти-эксплойт форк
### Общая информация
**Описание:** Purpur с фокусом на патчи безопасности и анти-дюп меры.
**Создатель:** AtlasMediaGroup
**Базируется на:** Purpur
**Цель:** Максимальная защита от эксплойтов
### Ключевые патчи безопасности
#### 1. Анти-дюп патчи
**Зафикшенные дюпы:**
- TNT дюп
- Carpet дюп
- Rail дюп
- Gravity block дюп
- End portal дюп
- Donkey/Llama дюп
**Настройка:**
```yaml
# scissors.yml
fixes:
tnt-duplication: true
carpet-duplication: true
rail-duplication: true
end-portal-duplication: true
donkey-duplication: true
gravity-block-duplication: true
```
#### 2. Анти-чит патчи
**Защита от:**
- Packet exploits
- Book ban
- Sign crash
- Item NBT exploits
- Chat exploits
#### 3. Лимиты и ограничения
```yaml
limits:
max-book-page-size: 2560 # Анти book ban
max-sign-line-length: 80 # Анти sign crash
max-nbt-size: 2097152 # 2MB лимит NBT
```
### Для кого Scissors
**✅ Используйте если:**
- Анархия сервер
- PvP сервер
- Важна защита от дюпов
- Нужен максимальный уровень безопасности
**❌ Не используйте если:**
- Технический сервер (некоторые механики сломаны)
- Разрешены дюпы
- Нужна полная Vanilla совместимость
> Scissors жертвует некоторыми механиками ради безопасности.
---
# Итоговое сравнение всех ядер 2026
## Полная таблица сравнения
| Ядро | Производ. | Плагины | Стабильность | Сообщество | Особенности | Рекомендация |
|------|-----------|---------|--------------|------------|-------------|--------------|
| **Vanilla** | 2/10 | 0/10 | 10/10 | Огромное | Официальное | Только vanilla |
| **Spigot** | 4/10 | 9/10 | 9/10 | Огромное | Базовые оптимизации | Устарело |
| **Paper** | 7/10 | 9/10 | 10/10 | Огромное | Золотой стандарт | ⭐ Лучший выбор |
| **Purpur** | 7/10 | 9/10 | 9/10 | Большое | Гибкие настройки | Для кастомизации |
| **Pufferfish** | 9/10 | 8/10 | 8/10 | Среднее | DAB, макс. производ. | ⭐ Для нагрузки |
| **Folia** | 10/10* | 2/10 | 6/10 | Маленькое | Многопоточность | Экспериментально |
| **Leaves** | 7/10 | 9/10 | 8/10 | Маленькое | Китайские патчи | Для энтузиастов |
| **Scissors** | 7/10 | 8/10 | 8/10 | Маленькое | Анти-эксплойты | Для PvP/Анархии |
*при распределенных игроках
## Рекомендации по выбору 2026
### По размеру сервера
**1-30 игроков:**
```
Рекомендация: Paper
Почему: Идеальный баланс, не нужно больше
```
**30-100 игроков:**
```
Рекомендация: Paper или Pufferfish
Paper: Если много плагинов
Pufferfish: Если нужна производительность
```
**100-500 игроков:**
```
Рекомендация: Pufferfish
Почему: Максимальная производительность
Настройки: Включить все оптимизации DAB
```
**500+ игроков:**
```
Рекомендация: Folia или кластер Pufferfish
Folia: Если игроки распределены
Кластер: Если игроки кучкуются (BungeeCord)
```
### По типу сервера
**Survival/SMP:**
```
1 выбор: Paper
2 выбор: Pufferfish (если лаги)
3 выбор: Folia (если 500+ игроков)
```
**Мини-игры:**
```
1 выбор: Paper
2 выбор: Purpur (для настроек)
НЕ используйте: Folia (игроки кучкуются)
```
**Анархия:**
```
1 выбор: Scissors
2 выбор: Pufferfish + анти-чит плагины
```
**Креатив:**
```
1 выбор: Paper
2 выбор: Purpur (больше настроек)
```
**RPG/MMO:**
```
1 выбор: Purpur (настройки мобов)
2 выбор: Pufferfish (производительность)
```
**Технический (редстоун):**
```
1 выбор: Vanilla или Paper
НЕ используйте: Scissors (ломает механики)
```
### Чек-лист выбора
**Ответьте на вопросы:**
1. Сколько игроков онлайн?
- <30: Paper
- 30-100: Paper/Pufferfish
- 100+: Pufferfish
- 500+: Folia
2. Нужны плагины?
- Да, много: Paper
- Да, немного: Pufferfish
- Нет: Vanilla/Folia
3. Какой тип сервера?
- Survival: Paper
- Мини-игры: Paper
- Анархия: Scissors
- RPG: Purpur
4. Какое железо?
- Слабое: Pufferfish
- Среднее: Paper
- Мощное (16+ ядер): Folia
5. Нужны настройки геймплея?
- Да: Purpur
- Нет: Paper
## Полезные ссылки
**Официальные сайты:**
- Paper: https://papermc.io
- Purpur: https://purpurmc.org
- Pufferfish: https://pufferfish.host
- Folia: https://papermc.io/software/folia
- Scissors: https://github.com/AtlasMediaGroup/Scissors
- Leaves: https://github.com/LeavesMC/Leaves
**Инструменты:**
- Spark: https://spark.lucko.me (профайлер)
- Timings: https://timings.aikar.co (анализ)
**Документация:**
- Paper Docs: https://docs.papermc.io
- Aikar Flags: https://docs.papermc.io/paper/aikars-flags
**Сообщества:**
- r/admincraft: https://reddit.com/r/admincraft
- Paper Discord: https://discord.gg/papermc
---
## Заключение
**Главные выводы 2026:**
1. **Paper - король для 80% серверов**
- Лучший баланс производительности и совместимости
- Активная разработка
- Огромное сообщество
2. **Pufferfish - для высоких нагрузок**
- Максимальная производительность
- DAB система уникальна
- Идеален для 100+ игроков
3. **Folia - будущее, но не сейчас**
- Революционная технология
- Проблемы с плагинами
- Подходит для специфичных кейсов
4. **Purpur - для перфекционистов**
- Тонкая настройка всего
- Дополнительные функции
- Paper + расширения
> Начните с Paper. Если нужно больше - переходите на Pufferfish или Purpur. Folia только для экстремальных случаев!
**Что НЕ использовать:**
- ❌ Vanilla (если нужны плагины)
- ❌ Spigot (устарело)
- ❌ CraftBukkit (мертво)
- ❌ Yatopia (заброшено)
- ❌ Airplane (заброшено)
**Финальная рекомендация:**
```
Сомневаетесь? → Используйте Paper
Нужна производительность? → Pufferfish
Нужны настройки? → Purpur
Экспериментируете? → Folia
```
---
## Оптимизация вашего сервера
URL: https://docs.pterohost.com/ru/minecraft-server-optimization
Обновлено: 2025-03-23
Как-же повысить производительность?
---
# Руководство по оптимизации сервера Minecraft
**Примечание для пользователей, использующих Vanilla, Fabric или Spigot (и всё, что ниже Paper):**
Перейдите в файл *server.properties* и измените значение `sync-chunk-writes` на `false`. На Paper и его форках эта опция принудительно выставлена в `false`, а на других реализациях сервера её нужно отключать вручную. Это позволяет серверу сохранять чанки вне основного потока, снижая нагрузку на главный цикл тиков.
**Руководство для версии 1.21. Некоторые моменты могут быть применимы и для версий 1.15 - 1.20.**
Основано на [данном гайде](https://www.spigotmc.org/threads/guide-server-optimization%E2%9A%A1.283181/) и других источниках (ссылки приведены в соответствующих разделах).
---
# Введение
Никогда не появится гайда, который даст вам идеальный результат для любого сервера. Каждый сервер имеет свои особенности и ограничения - сколько можно или хочется пожертвовать производительностью. Эксперименты с настройками для точной подгонки под нужды сервера - вот в чём суть дела. Это руководство предназначено для понимания влияния различных опций на производительность и их реального назначения. Если вы нашли неточности в информации - вы можете открыть issue или внести pull request для её исправления.
---
# Подготовка
## JAR сервера
Выбор серверного ПО может значительно повлиять на производительность и возможности API. В настоящее время существует несколько популярных серверных JAR-файлов, однако есть и те, от которых лучше держаться по ряду причин.
**Рекомендуемые варианты (ядра):**
* [Paper](https://github.com/PaperMC/Paper) - Самое популярное серверное ПО, нацеленное на повышение производительности при исправлении несоответствий в игровом процессе и механиках.
* [Pufferfish](https://github.com/pufferfish-gg/Pufferfish) - Форк Paper, стремящийся ещё больше повысить производительность сервера.
* **[Purpur](https://github.com/PurpurMC/Purpur)** - Форк Pufferfish, ориентированный на расширенные возможности и свободу кастомизации.
_**Рекомендуем Purpur как выбор от нашего хостинга.**_
Следует избегать:
* Любого платного серверного JAR, который заявляет поддержку асинхронных процессов - вероятность мошенничества около 99,99%.
* Bukkit/CraftBukkit/Spigot - крайне устаревшие по производительности по сравнению с другими доступными серверными ПО.
* Любых плагинов/программ, которые включают/выключают/перезагружают плагины во время работы. Смотрите раздел [Плагины, включающие/выключающие другие плагины](#plugins-enablingdisabling-other-plugins) для подробностей.
* Множество форков, появившихся после Pufferfish или Purpur - они могут быть нестабильны и иметь иные проблемы. Если вы ищете дополнительные приросты производительности, оптимизируйте сервер или инвестируйте в собственный приватный форк.
## Предгенерация мира
Предгенерация мира благодаря оптимизациям генерации чанков за последние годы стала полезна только на серверах с крайне ограниченными или однонитевыми ЦПУ. Однако предгенерация часто используется для генерации чанков для плагинов карт мира, таких как Pl3xMap или Dynmap.
Если вы всё же хотите предгенерировать мир, можно использовать плагин, например, [Chunky](https://github.com/pop4959/Chunky). Обязательно установите границы мира, чтобы игроки не генерировали новые чанки! Учтите, что предгенерация может занимать часы в зависимости от выбранного радиуса. Помните, что с Paper и выше ваш TPS не будет зависеть от загрузки чанков, однако скорость их загрузки может значительно снизиться, если ЦПУ сервера перегружено.
Важно помнить, что Overworld, Nether и End имеют отдельные границы мира, которые необходимо настроить для каждого измерения. Размер Nether в 8 раз меньше Overworld (если не изменён через datapack), поэтому при неверной установке границ игроки могут оказаться за пределами мира!
**Обязательно установите ванильные границы мира (`/worldborder set [диаметр]`), так как они ограничивают определённые функции, такие как диапазон поиска на картах сокровищ, что может вызывать всплески лагов.**
---
# Конфигурации
## Сеть
### [server.properties]
#### network-compression-threshold
_Рекомендуемое начальное значение: 256_
Эта настройка определяет порог размера пакета, после которого сервер пытается его сжать. Увеличение значения может снизить нагрузку на ЦПУ за счёт большего расхода пропускной способности, а установка -1 отключает сжатие. При размещении сервера за прокси или на той же машине (с пингом менее 2 мс) отключение (значение -1) будет выгодно, так как внутренняя сеть обычно справляется с дополнительным объёмом несжатых данных.
### [purpur.yml]
#### use-alternate-keepalive
_Рекомендуемое начальное значение: true_
Позволяет включить альтернативную систему keepalive от Purpur, чтобы игроки с нестабильным соединением реже получали таймауты.
> При включении этой опции сервер отправляет игроку keepalive-пакет раз в секунду и отключает его только если за 30 секунд не получено ни одного ответа. Любой ответ в любом порядке сохраняет соединение.
>
> - [Документация Purpur](https://purpurmc.org/docs/Configuration/#use-alternate-keepalive)
---
## Чанки
### [server.properties]
#### simulation-distance
_Рекомендуемое начальное значение: 4_
Simulation distance - это расстояние в чанках вокруг игрока, в пределах которого сервер выполняет тики. Это влияет на работу таких процессов, как плавление в печах, рост культур и саженцев. Рекомендуется установить это значение низким (примерно 3 или 4), чтобы использовать опцию `view-distance` для визуализации большего количества чанков без их тикания.
#### view-distance
_Рекомендуемое начальное значение: 7_
Расстояние в чанках, которое отправляется игроку (аналог no-tick-view-distance у Paper).
Общее view-distance будет равно наибольшему значению из `simulation-distance` и `view-distance`. Например, если simulation-distance = 4, а view-distance = 12, клиент получит данные на 12 чанков.
### [spigot.yml]
#### view-distance
_Рекомендуемое начальное значение: default_
Это значение переопределяет параметр из server.properties, если не установлено значение `default`. Рекомендуется оставить значение по умолчанию, чтобы управление обоими параметрами было централизованным.
### [paper-world configuration]
#### delay-chunk-unloads-by
_Рекомендуемое начальное значение: 10s_
Настройка определяет, как долго чанки будут оставаться загруженными после ухода игрока. Это помогает избежать постоянной загрузки и выгрузки одних и тех же чанков при перемещении игрока. Слишком высокое значение может привести к одновременной загрузке слишком большого количества чанков. В часто посещаемых областях лучше оставить чанки постоянно загруженными.
#### max-auto-save-chunks-per-tick
_Рекомендуемое начальное значение: 8_
Позволяет распределить задачу по сохранению мира во времени для улучшения средней производительности. При большом количестве игроков (20-30 и более) можно установить значение выше 8. Если инкрементальное сохранение не успевает завершиться, Bukkit автоматически сохранит оставшиеся чанки и начнёт процесс заново.
#### prevent-moving-into-unloaded-chunks
_Рекомендуемое начальное значение: true_
При включении предотвращает перемещение игроков в выгруженные чанки, что может вызвать синхронную загрузку и перегрузку основного потока, вызывая лаги. Вероятность такого случая выше при низком view-distance.
#### entity-per-chunk-save-limit
```
Рекомендуемые начальные значения:
area_effect_cloud: 8
arrow: 16
breeze_wind_charge: 8
dragon_fireball: 3
egg: 8
ender_pearl: 8
experience_bottle: 3
experience_orb: 16
eye_of_ender: 8
fireball: 8
firework_rocket: 8
llama_spit: 3
potion: 8
shulker_bullet: 8
small_fireball: 8
snowball: 8
spectral_arrow: 16
trident: 16
wind_charge: 8
wither_skull: 4
```
Эта настройка позволяет задать лимиты на количество сохраняемых объектов определённых типов. Рекомендуется установить лимит для каждого снаряда, чтобы избежать сохранения огромного количества объектов, что может привести к крашу сервера. Значение около 10 для всех снарядов - оптимальное. Вы также можете добавить другие типы сущностей, указав их ID (подробнее см. в вики Minecraft). Этот параметр не предназначен для предотвращения создания больших ферм мобов.
### [pufferfish.yml]
#### max-loads-per-projectile
_Рекомендуемое начальное значение: 8_
Определяет максимальное количество чанков, которые снаряд может загрузить за время своего существования. Снижение этого значения уменьшает нагрузку от снарядов, но может вызвать проблемы с трезубцами, эндер-жемчугами и т.д.
---
## Мобы
### [bukkit.yml]
#### spawn-limits
```
Рекомендуемые начальные значения:
monsters: 20
animals: 5
water-animals: 2
water-ambient: 2
water-underground-creature: 3
axolotls: 3
ambient: 1
```
Логика ограничения количества мобов - умножение количества игроков на указанный лимит. Чем ниже значения, тем меньше мобов будет в мире. Опция `per-player-mob-spawn` дополнительно распределяет спаун мобов равномерно между игроками. Снижение этих значений снижает нагрузку на сервер, но в некоторых режимах игры естественный спаун мобов является важной частью игрового процесса. При необходимости можно установить значение даже ниже 20, скорректировав также параметр `mob-spawn-range`.
#### ticks-per
```
Рекомендуемые начальные значения:
monster-spawns: 10
animal-spawns: 400
water-spawns: 400
water-ambient-spawns: 400
water-underground-creature-spawns: 400
axolotl-spawns: 400
ambient-spawns: 400
```
Эта настройка задаёт, как часто (в тиках) сервер пытается заспаунить определённые виды мобов. Мобы, связанные с водой или атмосферой, могут спауниться реже, так как обычно не погибают быстро. Для монстров увеличение интервала не скажется существенно на спауне, а позволит снизить нагрузку. Обычно все значения должны быть выше 1.
### [spigot.yml]
#### mob-spawn-range
_Рекомендуемое начальное значение: 3_
Определяет радиус (в чанках), в пределах которого мобы будут заспаунены вокруг игрока. В зависимости от режима игры и количества игроков это значение можно уменьшить совместно с `spawn-limits` из bukkit.yml. При меньшем значении вокруг игрока будет казаться, что мобов больше. Значение должно быть меньше или равно simulation distance и никогда не превышать жёсткий диапазон деспауна, делённый на 16.
#### entity-activation-range
```
Рекомендуемые начальные значения:
animals: 16
monsters: 24
raiders: 48
misc: 8
water: 8
villagers: 16
flying-monsters: 48
```
Позволяет установить расстояние (в чанках) от игрока, при котором сущность начинает тикаться (выполнять действия). Снижение этих значений улучшает производительность, но может привести к "зависанию" мобов до приближения игрока. Слишком низкие значения могут нарушить работу ферм мобов (например, фермы железа).
#### entity-tracking-range
```
Рекомендуемые начальные значения:
players: 48
animals: 48
monsters: 48
misc: 32
other: 64
```
Расстояние (в блоках), на котором сущности будут видимы, хотя и не отправляются игроку. Слишком маленькое значение может привести к тому, что мобы будут внезапно появляться рядом с игроком. Обычно это значение должно быть выше, чем `entity-activation-range`.
#### tick-inactive-villagers
_Рекомендуемое начальное значение: false_
Позволяет управлять, будут ли жители тикаться вне зоны активации. Отключение этой опции улучшает производительность, но может запутать игроков в некоторых ситуациях (например, при работе ферм железа или обновлении торговли).
#### nerf-spawner-mobs
_Рекомендуемое начальное значение: true_
Позволяет сделать мобов, заспауненных спаунерами, без ИИ. Такие "обездвиженные" мобы ничего не делают. При желании их можно заставить прыгать в воде, изменив параметр `spawner-nerfed-mobs-should-jump` в [paper-world configuration].
### [paper-world configuration]
#### despawn-ranges
```
Рекомендуемые начальные значения:
ambient:
hard: 72
soft: 30
axolotls:
hard: 72
soft: 30
creature:
hard: 72
soft: 30
misc:
hard: 72
soft: 30
monster:
hard: 72
soft: 30
underground_water_creature:
hard: 72
soft: 30
water_ambient:
hard: 72
soft: 30
water_creature:
hard: 72
soft: 30
```
Позволяет настроить диапазоны деспауна сущностей (в блоках). Уменьшение значений ускоряет удаление мобов, находящихся далеко от игрока. Рекомендуется оставить soft range около 30 и настроить hard range немного выше фактического simulation-distance, чтобы мобы не исчезали сразу, как только игрок выходит за границу загруженного чанка (благодаря параметру `delay-chunk-unloads-by` в paper-world configuration). Моб деспаунится мгновенно, если находится вне hard range, а между soft и hard - с определённой вероятностью.
#### per-player-mob-spawns
_Рекомендуемое начальное значение: true_
Эта опция определяет, должен ли спаун мобов учитывать количество уже присутствующих рядом с игроком мобов. Это помогает избежать проблем, когда фермы мобов заполняют сервер, и позволяет устанавливать более низкие `spawn-limits`. Включение имеет небольшой дополнительный расход ресурсов, который окупается улучшением распределения спаунов.
#### max-entity-collisions
_Рекомендуемое начальное значение: 2_
Переопределяет аналогичный параметр из spigot.yml и определяет, сколько столкновений может обработать одна сущность одновременно. Значение 0 приводит к невозможности толкать другие сущности, включая игроков. Значение 2 обычно оптимально. Учтите, что при значении выше этого параметра геймерегула maxEntityCramming не будет иметь эффекта.
#### update-pathfinding-on-block-update
_Рекомендуемое начальное значение: false_
Отключение этой опции приводит к уменьшению количества перерасчётов пути, что повышает производительность. В отдельных случаях это может вызвать небольшую задержку в реакциях мобов - обновление пути произойдёт каждые 5 тиков (0.25 сек).
#### fix-climbing-bypassing-cramming-rule
_Рекомендуемое начальное значение: true_
Включение данной опции исправляет ситуацию, когда сущности, взбирающиеся по блокам, не подвержены ограничению столкновений. Это предотвратит ситуацию, когда слишком много мобов скапливаются в узких пространствах (например, у пауков).
#### armor-stands.tick
_Рекомендуемое начальное значение: false_
В большинстве случаев можно безопасно отключить тикание бронестендов. Если же используются плагины, изменяющие их поведение, и возникают проблемы - включите эту опцию. Она предотвращает влияние воды или гравитации на бронестенды.
#### armor-stands.do-collision-entity-lookups
_Рекомендуемое начальное значение: false_
Отключает столкновения бронестендов, что может помочь, если их очень много и коллизии не требуются.
#### tick-rates
```
Рекомендуемые начальные значения:
behavior:
villager:
validatenearbypoi: 60
acquirepoi: 120
sensor:
villager:
secondarypoisensor: 80
nearestbedsensor: 80
villagerbabiessensor: 40
playersensor: 40
nearestlivingentitysensor: 40
```
Эти параметры определяют, как часто (в тиках) выполняются определённые поведения и сенсоры. Для жителей самое затратное поведение - `acquirepoi`, поэтому его интервал увеличен. При проблемах с навигацией жителей можно попробовать уменьшить это значение.
### [pufferfish.yml]
#### dab.enabled
_Рекомендуемое начальное значение: true_
DAB (динамическая активация мозга) снижает частоту тиков для сущностей, находящихся дальше от игроков. В отличие от жёсткого порога, DAB работает по градиенту, постепенно уменьшая частоту тиков в зависимости от расстояния.
#### dab.max-tick-freq
_Рекомендуемое начальное значение: 20_
Задаёт минимальную частоту тиков для сущностей, находящихся на максимальном расстоянии от игроков. Увеличение может улучшить производительность в удалённых областях, но потенциально нарушить работу ферм или снизить активность мобов.
#### dab.activation-dist-mod
_Рекомендуемое начальное значение: 7_
Контролирует градиент, по которому мобы получают тики. Уменьшение этого значения активирует DAB ближе к игроку, что даёт прирост производительности, но может повлиять на взаимодействие мобов с окружающей средой.
#### enable-async-mob-spawning
_Рекомендуемое начальное значение: true_
Позволяет включить асинхронный спаун мобов. Для корректной работы эта опция требует включения per-player-mob-spawns от Paper. Фактически, данная опция не спаунит мобов асинхронно, а лишь переносит часть вычислительной нагрузки на отдельный поток. В обычном геймплейе разницы не заметно.
#### enable-suffocation-optimization
_Рекомендуемое начальное значение: true_
Оптимизирует проверку на удушение (определение, находится ли моб внутри блока и должен ли он получать урон). Оптимизация происходит за счёт ограничения частоты проверок до таймаута урона - обычно незаметна для большинства игроков.
#### inactive-goal-selector-throttle
_Рекомендуемое начальное значение: true_
Замедляет работу системы выбора целей у неактивных сущностей, обновляя её каждые 20 тиков вместо каждого. Это может повысить производительность на несколько процентов с незначительными изменениями в поведении мобов.
### [purpur.yml]
#### zombie.aggressive-towards-villager-when-lagging
_Рекомендуемое начальное значение: false_
При включении зомби перестают атаковать жителей, если сервер работает ниже установленного порога TPS (определённого параметром `lagging-threshold`).
#### entities-can-use-portals
_Рекомендуемое начальное значение: false_
Отключает использование порталов для всех сущностей, кроме игроков. Это предотвращает загрузку чанков при переходе между мирами, что обычно происходит в основном потоке. В результате сущности не смогут использовать порталы.
#### villager.lobotomize.enabled
_Рекомендуемое начальное значение: true_
> Включать эту опцию следует только в случае, если жители вызывают лаги! В противном случае частые проверки пути могут снизить производительность.
Жители, подвергнутые «лоботомии», лишаются ИИ и периодически обновляют свои предложения. Отключение лоботомии возвращает им полноценное поведение.
#### villager.search-radius
```
Рекомендуемые начальные значения:
acquire-poi: 16
nearest-bed-sensor: 16
```
Радиус, в пределах которого жители ищут рабочие блоки и кровати. Это значительно улучшает производительность при большом количестве жителей, но ограничивает их поиск объектами, находящимися дальше указанного значения.
---
## Прочие настройки
### [spigot.yml]
#### merge-radius
```
Рекомендуемые начальные значения:
item: 3.5
exp: 4.0
```
Определяет расстояние, на котором предметы и орбы опыта объединяются, снижая количество тиков объектов на земле. Слишком большое значение может создавать эффект «исчезновения» предметов при слиянии, а также нарушить работу некоторых ферм, позволяя предметам «телепортироваться» сквозь блоки (если не активирована опция Paper `fix-items-merging-through-walls`). Орбы опыта объединяются только при создании.
#### hopper-transfer
_Рекомендуемое начальное значение: 8_
Время (в тиках), которое воронки ждут для перемещения предмета. Увеличение этого значения может повысить производительность на серверах с большим количеством воронок, но нарушить работу часов и систем сортировки.
#### hopper-check
_Рекомендуемое начальное значение: 8_
Интервал (в тиках) между проверками воронок на наличие предметов сверху или в инвентаре выше. Повышение этого значения может улучшить производительность, но повлияет на корректность работы некоторых механизмов (например, водяных конвейеров).
### [paper-world configuration]
#### alt-item-despawn-rate
```
Рекомендуемые начальные значения:
enabled: true
items:
cobblestone: 300
netherrack: 300
sand: 300
red_sand: 300
gravel: 300
dirt: 300
short_grass: 300
pumpkin: 300
melon_slice: 300
kelp: 300
bamboo: 300
sugar_cane: 300
twisting_vines: 300
weeping_vines: 300
oak_leaves: 300
spruce_leaves: 300
birch_leaves: 300
jungle_leaves: 300
acacia_leaves: 300
dark_oak_leaves: 300
mangrove_leaves: 300
cherry_leaves: 300
cactus: 300
diorite: 300
granite: 300
andesite: 300
scaffolding: 600
```
Позволяет установить альтернативное время (в тиках) для деспауна определённых типов выброшенных предметов, что может заменить плагины по очистке предметов в сочетании с параметром merge-radius.
#### redstone-implementation
_Рекомендуемое начальное значение: ALTERNATE_CURRENT_
Заменяет ванильную систему редстоуна на более быструю альтернативную реализацию, снижающую количество избыточных обновлений блоков. Использование нестандартной реализации может внести незначительные несоответствия в работу сложных схем, но прирост производительности перевешивает возможные мелкие проблемы. Реализация ALTERNATE_CURRENT основана на [Alternate Current](https://modrinth.com/mod/alternate-current).
#### hopper.disable-move-event
_Рекомендуемое начальное значение: false_
Событие `InventoryMoveItemEvent` не вызывается, если к нему не привязан плагин. Эту опцию следует включать только в том случае, если у вас есть плагины, активно её использующие, и вас не волнует их отключение. **Не включайте, если хотите использовать плагины, зависящие от данного события (например, плагины защиты).**
#### hopper.ignore-occluding-blocks
_Рекомендуемое начальное значение: true_
Определяет, будут ли воронки игнорировать контейнеры, расположенные внутри непрозрачных блоков (например, вагонетка с воронкой внутри песка или гравия). Оставление этой опции включённой может нарушить работу некоторых contraption'ов.
#### tick-rates.mob-spawner
_Рекомендуемое начальное значение: 2_
Позволяет настроить, как часто (в тиках) будут тикаться спаунеры. Повышение этого значения снижает нагрузку при большом количестве спаунеров, однако слишком высокое значение может снизить скорость спауна мобов.
#### optimize-explosions
_Рекомендуемое начальное значение: true_
При включении заменяет ванильный алгоритм взрывов на более быстрый, с незначительной потерей точности в расчётах урона - обычно незаметно.
#### treasure-maps.enabled
_Рекомендуемое начальное значение: false_
Генерация карт сокровищ крайне затратна по ресурсам и может подвесить сервер, если структура находится в не сгенерированном чанке. Безопасно включать эту опцию только если мир предгенерирован и установлены ванильные границы мира.
#### treasure-maps.find-already-discovered
```
Рекомендуемые начальные значения:
loot-tables: true
villager-trade: true
```
По умолчанию новая карта ищет неоткрытые структуры, которые могут находиться в ещё не сгенерированных чанках. Установка этого значения в `true` позволяет карте указывать на ранее обнаруженные структуры. Если оставить значение `false`, сервер может подвисать или крашиться при генерации новых карт сокровищ. Параметр `villager-trade` относится к картам, полученным через торговлю с жителями, а `loot-tables` - к картам, связанным с динамическим генерацией лута (сундуки, данжи и т.д.).
#### tick-rates.grass-spread
_Рекомендуемое начальное значение: 4_
Интервал (в тиках) между попытками распространения травы или мицелия. Это означает, что большие площади земли будут медленнее покрываться травой или мицелием. Значение около 4 обычно оптимально, так как снижение скорости распространения остаётся незаметным.
#### tick-rates.container-update
_Рекомендуемое начальное значение: 1_
Интервал (в тиках) между обновлениями контейнеров. Повышение этого значения может помочь, если обновления контейнеров вызывают проблемы (что происходит редко), но может привести к рассинхронизации при взаимодействии с инвентарём (появление «призрачных» предметов).
#### non-player-arrow-despawn-rate
_Рекомендуемое начальное значение: 20_
Время (в тиках), через которое стрелы, выпущенные мобами, исчезают после столкновения с объектом. Игроки не могут подобрать такие стрелы, поэтому значение 20 (1 секунда) оптимально.
#### creative-arrow-despawn-rate
_Рекомендуемое начальное значение: 20_
Время (в тиках), через которое стрелы, выпущенные игроками в креативном режиме, исчезают после столкновения с объектом.
### [pufferfish.yml]
#### disable-method-profiler
_Рекомендуемое начальное значение: true_
Отключает дополнительное профилирование, проводимое игрой. Это профилирование не требуется для продакшн-среды и может вызывать дополнительную нагрузку.
### [purpur.yml]
#### dolphin.disable-treasure-searching
_Рекомендуемое начальное значение: true_
Запрещает дельфинам выполнять поиск структур, аналогичный поиску сокровищ.
#### teleport-if-outside-border
_Рекомендуемое начальное значение: true_
Позволяет телепортировать игрока к точке спауна, если он оказывается вне границ мира. Это полезно, так как ванильные границы мира могут обходиться, а нанесённый урон игроку можно смягчить.
---
## Хелперы
### [paper-world configuration]
#### anti-xray.enabled
_Рекомендуемое начальное значение: true_
Включите эту опцию для скрытия руд от эксплойтеров x-ray. Для детальной настройки смотрите [Конфигурация Anti-Xray](https://docs.papermc.io/paper/anti-xray). Включение может немного снизить производительность, но оно всё же эффективнее любых анти-xray плагинов.
#### nether-ceiling-void-damage-height
_Рекомендуемое начальное значение: 127_
Если значение больше 0, игроки, находящиеся выше указанного уровня, будут получать урон, как будто они находятся в пустоте. Это предотвращает использование крыши Nether. Ванильный Nether имеет высоту 128 блоков, поэтому рекомендуемое значение - 127. Если вы изменяете высоту Nether, установите значение равным `[новая_высота] - 1`.
---
# Параметры запуска Java
[Vanilla Minecraft и серверное ПО версии 1.20.5+ требуют Java 21 или выше](https://docs.papermc.io/java-install-update). Oracle изменил лицензионную политику, поэтому нет особой необходимости получать Java от них. Рекомендуемые поставщики - [Adoptium](https://adoptium.net/) и [Amazon Corretto](https://aws.amazon.com/corretto/). Альтернативные реализации JVM, такие как OpenJ9 или GraalVM, могут работать, но не поддерживаются Paper и известны своими проблемами, поэтому в настоящее время не рекомендуются.
На **хостинге Pterohost** используется собственная система управления запуском, которая позволяет выбрать несколько параметров, включая, например, **G1GC1**. Обратите внимание, что на нашем хостинге применяется новейшее оборудование с максимально возможной частотой на ядро, что обеспечивает высокую производительность.
Кроме того, добавление бета-флага `--add-modules=jdk.incubator.vector` перед `-jar` в параметрах запуска может улучшить производительность. Этот флаг позволяет Pufferfish использовать SIMD-инструкции вашего ЦПУ, ускоряя некоторые математические операции - например, рендеринг карт (как в плагине imageonmaps) может выполняться до 8 раз быстрее.
---
# Плагины «слишком хороши, чтобы быть правдой»
## Плагины, удаляющие предметы с земли
Абсолютно не нужны, так как их можно заменить настройками [merge-radius](#merge-radius) и [alt-item-despawn-rate](#alt-item-despawn-rate), к тому же они менее настраиваемы, чем стандартные конфигурационные опции сервера. Обычно они используют больше ресурсов на сканирование и удаление предметов, чем просто их оставление.
## Плагины-стекеры мобов
Очень сложно оправдать их использование. Стекание естественно заспауненных сущностей создаёт больше лагов, чем их отсутствие, из-за постоянных попыток сервера заспаунить новые мобы. Единственный «приемлемый» случай - для спаунеров на серверах с их большим количеством.
## Плагины, включающие/выключающие другие плагины
Любые плагины, которые включают или выключают другие плагины во время работы, крайне опасны. Их загрузка может вызвать фатальные ошибки из-за нарушения зависимости между плагинами. Команда `/reload` страдает от тех же проблем - подробнее можно прочитать в [блоге me4502](https://madelinemiller.dev/blog/problem-with-reload/).
---
# Что вызывает лаги? - Измерение производительности
## mspt
Paper предоставляет команду `/mspt`, которая показывает, сколько времени сервер тратил на обработку последних тиков. Если первые два значения меньше 50, поздравляем - сервер работает без лагов! Если же третье значение выше 50, значит, был как минимум один тик с превышением - это нормально и случается время от времени.
## Spark
[**Spark**](https://spark.lucko.me/) - плагин для профилирования использования ЦПУ и памяти сервера. Инструкции по использованию можно найти в [его вики](https://spark.lucko.me/docs/). Также существует руководство по поиску причин лагов [здесь](https://spark.lucko.me/docs/guides/Finding-lag-spikes).
Авторство (copyright):
- Основные материалы: https://github.com/YouHaveTrouble/minecraft-exploits-and-how-to-fix-them
- Дополнительные данные и актуализация Pterohost
---
## Полезные плагины
URL: https://docs.pterohost.com/ru/best-plugins
Обновлено: 2022-05-10
Вам будет интересно!
---
Все ресурсы взяты с сайтов SpigotMc и DevBukkit. На вопросы "почему я не вставил ссылки на BlackSpigot, Minecraftonly" не отвечаю, ибо данные сайты содержат большое кол-во шеллов в ресурсах, которые оставляют возможность кому-то взломать ваш сервер или вообще его постоянно крашить. Возникли проблемы?
Самые необходимые плагины для minecraft сервера
В данной статье я вам расскажу, какие необходимы плагины для того, чтобы стартануть свой сервер для игроков. Многие новички в создании серверов не знают, что если не поставить какие-то важные плагины, то сервер можно будет легко взломать, или просто он будет нестабильно работать. Давайте начнём!
Плагин на авторизацию и регистрацию. Рекомендую использовать только его, потому что старый добрый AuthMe устарел. Многие сервера активно используют этот плагин, больше 160 000+ скачиваний.
На 99% серверов стоит красивый Tablist, где показываются префиксы донатов и прочая информация. Думаю, этот плагин обязательно должен стоять на каждом сервере, независимо от тематики сервера, потому что всего-лишь несколько плейсхолдеров в Tablist, и у игроков уже будет доступ к полезной информации - онлайн, время и т.д.
Летающие надписи. Подобные надписи стоят практически на каждом сервере. В них можно написать всё что угодно. Это, скажем так, замена табличек. В этих надписях обычно содержится информация, которая должна быть доступна игроку как можно понятнее, а распологаться они должны на самых видных и логичных местах.
Замена PermissionsEx. PermissionsEx уже не поддерживается и даже разработчики данного плагина написали, чтобы все переходили на LuckPerms. В нём создавать/перемещать и взаимодействовать с правами намного легче.
Этот плагин регистрирует буквально все события, совершённые игроком. То есть, с помощью CoreProtect вы можете восстановить чей-то дом, или восстановить ресурсы. Рекомендую его использовать в том случае, если у вас есть ванильный сервер. Пригодится в том случае, если у вас заведуться гриферы.
Красивый и удобный плагин на чат. Имеет большое количество функций, которыми вы можете воспользоваться. По моим подсчётам, если бы этого плагина не существовало, пришлось бы ставить 5 отдельных плагинов, чтобы добиться того же функционала, который здесь присутствует.
---
## Лаги сервера Minecraft: причины и как исправить
URL: https://docs.pterohost.com/ru/minecraft-server-lags-fix
Обновлено: 2026-05-19
Разбираем причины лагов сервера Minecraft: низкий TPS, много сущностей, тяжёлые плагины. Диагностика через Spark и /tps, таблица решений.
---
Лаги сервера Minecraft - одна из самых частых жалоб администраторов. Прежде чем что-то менять, важно понять: лагает именно сервер, или проблема на стороне игрока? Эта статья поможет вам правильно диагностировать причину и устранить её без лишних догадок.
## Лаги сервера, клиента и пинг - в чём разница
Многие путают три совершенно разных явления. Понимание разницы экономит часы отладки.
| Тип проблемы | Что происходит | Как проверить |
|---|---|---|
| Низкий TPS (лаги сервера) | Мир "тормозит": мобы замирают, предметы зависают, команды выполняются с задержкой | `/tps` - показывает 1/5/15 минут |
| Высокий пинг (lag сети) | Действия игрока достигают сервера с задержкой, "резинка" при движении | `F3` в игре - поле ms |
| Низкий FPS (лаги клиента) | Картинка дёргается только у одного игрока, остальные нормально играют | `F3` в игре - поле fps |
**TPS (Ticks Per Second)** - главный показатель здоровья сервера. Нормальное значение - 20. При TPS ниже 15 игра ощутимо тормозит, ниже 10 - практически неиграбельна.
### Как измерить TPS и найти проблему
Базовая проверка - команда в консоли или чате:
```bash
/tps
```
Вывод выглядит так:
```
TPS from last 1m, 5m, 15m: 19.8, 18.2, 17.5
```
Если значения стабильно ниже 18 - сервер не справляется с нагрузкой.
Для глубокой диагностики установите плагин **Spark** (работает на Paper, Spigot, Fabric):
```bash
# Запустить профилировщик на 60 секунд
/spark profiler --timeout 60
# Посмотреть текущую нагрузку на тики
/spark tickmonitor
```
Spark сгенерирует ссылку на подробный отчёт, где видно, какой плагин или задача занимает больше всего времени на тик.
> Устали разбираться с лагами вручную? [**Попробуйте хостинг Pterohost**](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-server-lags-fix) - процессор AMD Ryzen 9 7950X3D с высокой частотой на ядро и NVMe SSD дают запас мощности даже для нагруженных серверов. По промокоду **4START** скидка 20% на первый заказ.
## Основные причины лагов и как их устранить
### 1. Слабый процессор хостинга
Minecraft однопоточен по основному циклу. Производительность на одно ядро важнее количества ядер. Если хостинг использует старые Xeon с частотой 2.4 GHz - никакая оптимизация не вытянет большой онлайн.
**Проверка**: выполните `/mspt` (на Paper) - показывает среднее время обработки одного тика в миллисекундах. Если значение стабильно выше 50 ms - процессор не успевает.
### 2. Избыточное количество сущностей
Мобы, предметы на земле, стрелы, снежки, лодки - каждая сущность обрабатывается каждый тик.
```yaml
# В paper.yml (Paper/Purpur) ограничьте мобов на чанк:
max-entity-collisions: 8
# В spigot.yml:
mob-spawn-range: 4
entity-activation-range:
animals: 16
monsters: 24
misc: 8
```
Быстрая очистка предметов и мобов:
```bash
# Если установлен ClearLagg или аналог:
/killall item
/killall arrow
```
### 3. Большой view-distance
Каждый дополнительный чанк в радиусе прогрузки - это дополнительные мобы, блочные обновления и AI-расчёты. Значение по умолчанию 10 чанков - слишком много для большинства серверов.
```properties
# server.properties
view-distance=6
simulation-distance=4
```
Оптимальные значения для разного онлайна:
| Онлайн | view-distance | simulation-distance |
|---|---|---|
| 1-10 игроков | 8-10 | 6-8 |
| 10-30 игроков | 6-8 | 4-6 |
| 30+ игроков | 5-6 | 3-4 |
### 4. Тяжёлые плагины
Некоторые плагины выполняют дорогостоящие операции в главном потоке: синхронные запросы к базе данных, пересчёт больших структур, сложные таймеры.
**Как найти виновника через Spark:**
1. Установите Spark
2. Запустите `/spark profiler --timeout 120`
3. Откройте отчёт - раздел "Tick" покажет стек вызовов с процентами
Если один плагин занимает 30%+ времени тика - это и есть проблема. Ищите его обновление или замену.
### 5. Нехватка оперативной памяти
Недостаток RAM вызывает частые сборки мусора Java (GC), которые останавливают главный поток на десятки миллисекунд. Это проявляется как короткие "заморозки" (lag spikes).
```bash
# В стартовом скрипте укажите нужный объём (пример для 4 GB):
java -Xmx4G -Xms4G -jar server.jar nogui
```
Важно: `-Xmx` и `-Xms` должны быть одинаковыми - это предотвращает рост кучи и лишние GC.
### 6. Прогруженные чанки и редстоун
Фермы с бесконечным редстоун-тактом или огромные механизмы в постоянно загруженных чанках могут полностью убить TPS. Плагин **Spark** с командой `/spark tickmonitor --threshold 100` покажет чанки с высокой нагрузкой.
## Таблица "причина - решение"
| Симптом | Вероятная причина | Быстрое решение |
|---|---|---|
| TPS низкий всегда | Слабый процессор / мало RAM | Смените тариф хостинга |
| TPS падает при заходе игроков | Большой view-distance | Уменьшить до 6-8 |
| TPS падает в определённом месте | Фарм, редстоун, много мобов | Найти через Spark, оптимизировать |
| TPS нормальный, но "резинка" | Проблема сети / пинг | Проверить регион хостинга |
| Lag spikes раз в несколько секунд | Частые GC (мало RAM) | Увеличить -Xmx, выровнять с -Xms |
| Только один игрок лагает | Проблема клиента или его сети | Попросить проверить FPS и пинг |
## Частые ошибки
**Добавляют RAM, но TPS не растёт.** Minecraft ограничен одним потоком. Добавление RAM помогает только при утечках памяти или частых GC - но не заменяет быстрый процессор.
**Устанавливают антилаг-плагины с авточисткой каждые 30 секунд.** Частая очистка сущностей мешает игровому процессу и может сама вызывать lag spikes. Оптимальный интервал - 5-10 минут для предметов.
**Не разделяют понятия пинг и TPS.** Игрок с плохим интернетом будет "резиниться" даже на TPS 20. Это не проблема сервера.
**Запускают несколько плагинов одного типа.** Два плагина для экономики или два менеджера мобов конфликтуют и удваивают нагрузку.
**Игнорируют логи.** Частые ошибки в `logs/latest.log` (особенно `[Watchdog]` и `[Timings]`) прямо указывают на источник проблем.
> Хотите сервер, который не лагает с первого запуска? [**Хостинг Pterohost для Minecraft**](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-server-lags-fix) - автоустановка ядра, мощный процессор с высокой тактовой частотой, NVMe SSD и бесплатная защита от DDoS. По промокоду **4START** скидка 20% на первый заказ.
## Часто задаваемые вопросы
**Что делать если лагает сервер в майнкрафте?**
Сначала определите тип лагов: низкий TPS (проблема сервера), высокий пинг (проблема сети) или низкий FPS (проблема клиента). Для диагностики сервера используйте команду /tps или плагин Spark.
**Почему низкий TPS на сервере Minecraft?**
Низкий TPS чаще всего вызван избыточным количеством мобов или предметов, тяжёлыми плагинами, слишком большим view-distance, нехваткой оперативной памяти или слабым процессором хостинга.
**Как узнать из-за чего лагает сервер?**
Установите плагин Spark и выполните команду /spark profiler. Он покажет, какой плагин, задача или игровой механизм потребляет больше всего процессорного времени.
**Как поднять TPS на сервере Minecraft?**
Уменьшите view-distance до 6-8 чанков, ограничьте количество мобов в конфигах Paper, отключите или замените тяжёлые плагины, очистите накопившиеся предметы командой /killall item.
**Влияет ли хостинг на лаги сервера?**
Да, напрямую. Производительность процессора хостинга определяет максимальный TPS. На слабом CPU даже оптимизированный сервер будет лагать при большом онлайне.
## Читайте также
- [Оптимизация сервера Minecraft](/ru/minecraft-server-optimization) - подробный гайд по всем настройкам производительности
- [Ядра сервера Minecraft 2026](/ru/minecraft-server-cores-2026) - выбор ядра влияет на TPS
- [Полезные плагины для сервера](/ru/best-plugins) - плагины для мониторинга и оптимизации
- [Сколько RAM нужно серверу Minecraft](/ru/skolko-ram-nuzhno-serveru) - правильный расчёт памяти
---
## Создание плагина Minecraft
URL: https://docs.pterohost.com/ru/minecraft-plugin-creation
Обновлено: 2025-02-21
15 минутный гайд
---
# Туториал по созданию плагинов для Minecraft
## (Версии 1.8.8 - 1.21)
В этом новом руководстве по разработке плагинов для Minecraft я покажу, как создавать плагины для Bukkit, Spigot, Paper и **Purpur** - рекомендуемого ядра от нашего хостинга Pterohost. Данное руководство охватывает разработку плагинов для версий от 1.8.8 до 1.21.
Мы будем использовать IntelliJ IDEA с расширением для разработки плагинов Minecraft, что сделает процесс быстрым и лёгким.
> **Полное пошаговое руководство по разработке собственных плагинов для Minecraft:**
> [Нажмите здесь для полного обучения разработке плагинов Minecraft](https://mineacademy.org/project-orion?st=github&sc=gist).
---
## 1. Введение
### Что такое Bukkit, Spigot, Paper и Purpur?
Bukkit, Spigot, Paper и Purpur - это модификации оригинального серверного ПО Minecraft от Mojang, которые добавляют поддержку плагинов, дополнительные настройки и улучшают производительность.
### Что такое плагин для Minecraft?
Плагин для Minecraft - это расширение для серверов на базе Bukkit, Spigot, Paper и Purpur, позволяющее создавать события, команды, инструменты, мини-игры, монстров и многое другое.
Это отличается от модов для Minecraft, которые добавляют новые функции в саму игру и требуют установки у каждого игрока.
---
## 2. Начало работы
### Установка IntelliJ IDEA
Скачайте и установите [IntelliJ IDEA Community Edition](https://www.jetbrains.com/idea/). Именно в этой среде разработки я буду создавать плагины для Minecraft. IntelliJ используется официальными разработчиками Google при создании Android-приложений - он вас не подведёт.
Чтобы установить расширение для разработки плагинов Minecraft, откройте IntelliJ, перейдите в **File > Settings > Plugins**, введите «Minecraft» в вкладке Marketplace и установите плагин.

### Создание нового проекта
Нажмите **New Project** и настройте его, используя следующие параметры:

* **Name**: Имя вашего плагина.
* **Location**: Путь, где будет храниться код плагина локально.
* **Platform Type**: Выберите Plugin.
* **Platform**: Выберите Bukkit.
* **Bukkit Platform**: Выберите Paper или Spigot (Рекомендуем: Paper)
* **Minecraft Version**: Выберите нужную версию. Если хотите создавать плагин для 1.8.8 или другой версии, оставьте выбор «latest» и смотрите шаг ниже.
* **Plugin Name**: Должно совпадать с именем плагина.
* **Main Class**: Здесь указывается основной класс вашего плагина. Путь задаётся в формате обратного доменного имени, который может быть основан на вашем сайте (например, com.matejpacan), вашем email (например, com.gmail.matejpacan) или просто «me.matejpacan», после чего следует имя плагина (например, custommob) и название класса (например, CustomMob), то есть, например, org.mineacademy.custommob.CustomMob.
* **Build System**: Выберите Maven.
* **JDK**: Для Minecraft 1.20.5, 1.21 и выше выберите Java 21, для Minecraft 1.17-1.20.4 - Java 17, а для версий ниже - Java 8. Установите соответствующую версию по [ссылке](https://www.oracle.com/java/technologies/downloads/).
Нажмите **Create New**. Проект будет сгенерирован.
### Структура проекта
Новый проект должен содержать следующую структуру:

* Папка **src/main/java** - здесь находится ваш код. В ней создаётся основной пакет, имя которого основано на пути основного класса плагина, и сам основной класс плагина.
* Папка **src/main/resources** - здесь располагаются конфигурационные файлы, например, **plugin.yml**, который сервер использует для поиска основного класса плагина и информации о нём.
* Файл **pom.xml** - используется для сборки кода и ресурсов в один .jar-файл, который затем помещается в папку plugins/ вашего сервера.
### Внимание для Minecraft 1.8.8 - 1.16
Так как Paper больше не хранит старые версии Minecraft в своём репозитории, необходимо переключиться на Spigot.
Посетите [Spigot Maven Repository](https://www.spigotmc.org/wiki/spigot-maven/).
Замените секции \ и \ с Paper на Spigot, как указано на странице.
Для Minecraft 1.8.8 это будет выглядеть примерно так:
```xml
spigot-repohttps://hub.spigotmc.org/nexus/content/repositories/snapshots/
(...)
org.spigotmcspigot-api1.8.8-R0.1-SNAPSHOTprovided
```
---
## 3. Сборка
В методе `onEnable()` основного класса плагина я добавил тестовую строку:
```java
getLogger().info("Hello Pterohost.Com!");
```
Затем я выполнил задачу package для сборки плагина.

В консоли должно появиться сообщение о том, что сборка прошла успешно. Можно проигнорировать предупреждения:

Готовый плагин будет находиться в папке target/ внутри папки исходного кода вашего плагина.

---
## 4. Тестирование
### Запуск локального сервера Minecraft
Скачайте нужную версию Paper с [papermc.io](https://papermc.io/downloads/paper).
Затем создайте скрипт для запуска сервера в зависимости от вашей операционной системы.
#### Скрипт для Windows
Создайте файл `run.bat` со следующим содержимым:
```bash
java -Xms2G -Xmx4G -jar paperclip.jar nogui
pause
```
#### Скрипт для macOS
Создайте файл `run.sh` со следующим содержимым:
```bash
#!/bin/bash
cd "$(dirname "$0")"
exec java -Xms2G -Xmx4G -jar paperclip.jar nogui
```
#### Скрипт для Linux
Создайте файл `run.sh` со следующим содержимым:
```bash
#/bin/sh
java -Xms2G -Xmx4G -jar paperclip.jar nogui
```
Поместите файл paperclip.jar и соответствующий скрипт в одну папку, запустите сервер, примите условия eula.txt, затем остановите сервер командой «stop» для корректного завершения.
После этого перенесите .jar-файл вашего плагина из папки target/ в папку plugins/ и запустите сервер снова. Voilà - ваш первый плагин для Minecraft заработал!
При включении плагина в консоли вы увидите сообщение:

### Подключение к вашему серверу
Запустите клиент Minecraft, откройте раздел Multiplayer, выберите «Direct Connection» и введите `localhost` в качестве адреса сервера.
После входа в игру введите команду `/plugins` - ваш плагин должен отображаться зелёным цветом. В моём случае он отображается как «CustomMob».

Авторство (copyright):
- Основные материалы https://gist.github.com/kangarko/456d9cfce52dc971b93dbbd12a95f43c
- Перевод и дополнения от Pterohost
---
## server.properties Minecraft: полный разбор всех параметров
URL: https://docs.pterohost.com/ru/minecraft-server-properties-guide
Обновлено: 2026-05-26
Полный гайд по server.properties Minecraft: все параметры по группам - сеть, геймплей, производительность, мир, RCON, Query. Таблицы и примеры значений.
---
Файл `server.properties` - главный конфиг Minecraft-сервера. От его параметров зависит всё: от номера порта до того, как сервер ведёт себя при перегрузках. Разберём каждый параметр по группам, с примерами и влиянием на производительность.
## Где найти и как редактировать
Файл лежит в корне папки сервера, рядом с `server.jar`. Создаётся автоматически при первом запуске. Формат - простой `ключ=значение`, по одному параметру на строку.
После любого изменения требуется перезапуск сервера. Команда `/reload` файл не перечитает.
На хостингах с панелью Pterodactyl большая часть параметров вынесена в раздел Startup или Settings - удобный UI вместо ручного редактирования.
## Сетевые параметры
### server-port
```properties
server-port=25565
```
TCP-порт, на котором слушает сервер. По умолчанию 25565. Менять имеет смысл, если на одном IP несколько серверов или хотите усложнить жизнь сканерам. Для смены порта учтите, что клиенту нужно будет указать порт явно: `play.example.com:25566`.
### server-ip
```properties
server-ip=
```
Привязка к конкретному IP-адресу сервера. Пустое значение - слушает на всех интерфейсах. Заполняется редко, в основном на multi-homed серверах.
### online-mode
```properties
online-mode=true
```
Главный параметр безопасности. При `true` сервер проверяет лицензию каждого подключающегося игрока через Mojang API. Никто не может зайти под чужим ником.
При `false` - сервер пускает любого с любым ником. Это нужно только если:
- играют с пиратского клиента (что в России распространено);
- используется BungeeCord/Velocity как прокси (там online-mode на прокси, а бэкенды в offline).
При offline-mode ОБЯЗАТЕЛЬНО ставьте мод/плагин авторизации: AuthMe Reloaded (Bukkit), EasyAuth (Fabric), FTBAuth (Forge). Без них первый же тролль зайдёт под ником админа и снесёт мир.
### prevent-proxy-connections
```properties
prevent-proxy-connections=false
```
При `true` сервер отклоняет подключения с IP, которые Mojang считает прокси/VPN. Защита от обхода банов. Минус - страдают легитимные игроки с VPN и Tor. Используется редко.
### network-compression-threshold
```properties
network-compression-threshold=256
```
Минимальный размер пакета (в байтах) для сжатия zlib. По умолчанию 256:
- `-1` - сжатие выключено (для серверов в одной LAN, где сеть быстрее CPU);
- `0` - сжимать всё (нагрузка на CPU);
- `256` - разумный дефолт;
- `512` - меньше нагрузка на CPU, чуть больше трафика.
На BungeeCord/Velocity ставят `-1` на бэкендах, потому что сжатие делает прокси.
### enforce-secure-profile
```properties
enforce-secure-profile=true
```
Требует у клиента подписанные ключи чата (с 1.19+). Если выключить, разрешает заходить с клиентов без ключей. Для серверов с offline-mode часто ставят `false`.
## Игровые параметры
### gamemode
```properties
gamemode=survival
```
Игровой режим по умолчанию для новых игроков:
- `survival` - выживание;
- `creative` - творческий;
- `adventure` - приключение (нельзя ломать блоки без нужного инструмента);
- `spectator` - наблюдатель.
### force-gamemode
```properties
force-gamemode=false
```
При `true` каждый раз при входе игроку принудительно ставится `gamemode` из файла. При `false` (стандарт) - режим запоминается из сессии.
### difficulty
```properties
difficulty=easy
```
Сложность мира:
- `peaceful` - моба не появляются;
- `easy` - меньше урон от мобов;
- `normal` - стандарт;
- `hard` - мобы наносят больше урона, голод убивает.
### hardcore
```properties
hardcore=false
```
При `true` смерть переводит игрока в режим зрителя навсегда (или до удаления данных). Используется на хардкор-проектах.
### pvp
```properties
pvp=true
```
Разрешает игрокам наносить урон друг другу. На приватных серверах с друзьями часто `false`, на публичных - `true`. Внимание: плагины регионов (WorldGuard) могут переопределять PvP в зонах.
### spawn-protection
```properties
spawn-protection=16
```
Радиус защищённой зоны вокруг точки спавна (в блоках). Внутри обычные игроки не могут ломать/ставить блоки. Только операторы. По умолчанию 16. Ставьте 0 для приватных, 32-64 для публичных.
### allow-flight
```properties
allow-flight=false
```
При `false` сервер кикает игрока за полёт без креатива (анти-чит). При наличии модов на полёт (Mekanism Jetpack, Botania Tiara) или плагинов вроде EssentialsX `/fly` - ставьте `true`, иначе будут кики.
### allow-nether
```properties
allow-nether=true
```
Разрешает посещение Нижнего мира.
### spawn-monsters
```properties
spawn-monsters=true
```
Спавн враждебных мобов. При `false` мобов нет даже в Нижнем мире (но из спавнеров будут).
### spawn-animals / spawn-npcs
```properties
spawn-animals=true
spawn-npcs=true
```
Спавн дружелюбных мобов и NPC (жителей).
### white-list / enforce-whitelist
```properties
white-list=false
enforce-whitelist=false
```
Включает белый список игроков (управляется `/whitelist` и файлом `whitelist.json`). Когда `enforce-whitelist=true` - при удалении игрока из белого списка он немедленно кикается.
> **Pterohost** - игровой хостинг с DDoS-защитой L4+L7, NVMe и 24/7 поддержкой. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-server-properties-guide)
## Параметры производительности
Это самая важная группа для владельца сервера.
### view-distance
```properties
view-distance=10
```
Радиус рендеринга чанков в чанках. Влияет на CPU и сеть. Каждый игрок видит мир в этом радиусе.
Рекомендации:
| Онлайн | view-distance |
|--------|---------------|
| 1-10 | 10-12 |
| 10-30 | 8-10 |
| 30-80 | 7-8 |
| 80+ | 6-7 |
Снижение с 10 до 8 сокращает количество загружаемых чанков на ~36%.
### simulation-distance
```properties
simulation-distance=10
```
Радиус тикования чанков. В этих чанках идёт симуляция: мобы ходят, машины работают, растения растут. Появился в 1.18.
Обычно ставится на 1-2 меньше view-distance:
- view-distance=10, simulation-distance=8 - типично.
Влияет на CPU больше, чем view-distance.
### max-tick-time
```properties
max-tick-time=60000
```
Максимальное время тика (мс) до того, как watchdog убьёт сервер. Дефолт 60000 (60 секунд). При зависании сервера он сам себя убьёт, и autorestart поднимет заново.
Для модовых серверов с тяжёлой генерацией иногда ставят `max-tick-time=-1` (отключить watchdog), но это плохая идея - лучше разобраться с причиной зависаний. Смотрите [гайд по решению лагов](/ru/minecraft-server-lags-fix).
### entity-broadcast-range-percentage
```properties
entity-broadcast-range-percentage=100
```
На каком расстоянии в процентах от view-distance игрок видит сущностей. 100 - стандарт. Снижение до 50-70 уменьшает трафик на серверах с большим количеством мобов.
### max-players
```properties
max-players=20
```
Максимум одновременно играющих. Если зашло столько - новые получают "Server full". Не путать с реальной нагрузкой - 20 в списке не значит, что сервер тянет 20 на тяжёлом модпаке.
### player-idle-timeout
```properties
player-idle-timeout=0
```
Через сколько минут AFK-игрока кикнуть. 0 - не кикать. На загруженных серверах ставят 15-30, чтобы AFK-фермеры не занимали слоты.
### sync-chunk-writes
```properties
sync-chunk-writes=true
```
Синхронная запись чанков на диск. `true` безопаснее (нет потери данных при краше), `false` быстрее на медленных дисках. На NVMe разница незаметна - оставляйте `true`.
### use-native-transport
```properties
use-native-transport=true
```
Использовать epoll на Linux вместо стандартного NIO. Снижает нагрузку CPU на сетевом тике. Всегда `true` на Linux-хостинге.
## Параметры мира
### level-name
```properties
level-name=world
```
Имя папки с миром. Для смены мира - меняете значение и перезапускаете. Старый мир остаётся на диске нетронутым.
### level-seed
```properties
level-seed=
```
Зерно генерации. Пустое - случайное. Можно указать конкретное число для воспроизводимого мира.
### level-type
```properties
level-type=minecraft\:normal
```
Тип мира:
- `minecraft:normal` - стандартный;
- `minecraft:flat` - плоский (Superflat);
- `minecraft:large_biomes` - увеличенные биомы;
- `minecraft:amplified` - амплитудный (экстремальный рельеф, не для слабых машин);
- `minecraft:single_biome_surface` - один биом.
Двоеточие в файле экранируется бэкслэшем.
### generator-settings
```properties
generator-settings={}
```
JSON-конфиг для кастомного генератора. Для Superflat - описание слоёв и структур.
### generate-structures
```properties
generate-structures=true
```
Генерировать ли структуры: деревни, цитадели, храмы. При `false` - чистый мир без квестов и сокровищ.
### max-world-size
```properties
max-world-size=29999984
```
Максимальный размер мира в блоках от центра. По умолчанию максимум Minecraft. Снижение до, например, 10000 - простой способ ограничить рост мира. После достижения границы игроки получат `The world border is here`.
### initial-enabled-packs / initial-disabled-packs
```properties
initial-enabled-packs=vanilla
initial-disabled-packs=
```
Список включённых/отключённых datapack'ов при первой генерации.
## RCON
RCON - текстовый протокол для удалённого управления сервером Minecraft. Полезен для скриптов автоматизации.
### enable-rcon
```properties
enable-rcon=false
```
Включает RCON. По умолчанию выключен.
### rcon.port
```properties
rcon.port=25575
```
Порт RCON. По умолчанию 25575.
### rcon.password
```properties
rcon.password=
```
Пароль для подключения. Если пустой - RCON не запустится. ОБЯЗАТЕЛЬНО ставьте сильный пароль из 20+ символов.
### broadcast-rcon-to-ops
```properties
broadcast-rcon-to-ops=true
```
Показывать ли операторам в чате команды, отправленные через RCON.
### Безопасность RCON
RCON-протокол не шифрован. Никогда не открывайте RCON-порт в интернет без VPN или SSH-туннеля. Типичная конфигурация:
```properties
enable-rcon=true
rcon.port=25575
rcon.password=Tg7v2Pq9LkN4xMr8YbW3
broadcast-rcon-to-ops=false
```
Подключение через `mcrcon`:
```bash
mcrcon -H 127.0.0.1 -P 25575 -p "Tg7v2Pq9LkN4xMr8YbW3" "list"
```
На хостинге с панелью Pterodactyl консоль сервера и так доступна через веб-интерфейс, RCON обычно не нужен.
## Query
Старый UDP-протокол для запроса информации о сервере (онлайн, MOTD, версия).
```properties
enable-query=false
query.port=25565
```
Используется некоторыми мониторингами и плагинами. Безопасен (только чтение).
## MOTD и иконка
### motd
```properties
motd=A Minecraft Server
```
Сообщение, которое игроки видят в списке серверов. Поддерживает цветовые коды `§` (например, `§6` - золотой). Многие плагины (например, MOTDPro) расширяют эту функциональность.
### enable-status
```properties
enable-status=true
```
Отвечать ли на ping-запросы клиентов. При `false` сервер для всех будет в статусе "не отвечает" - но и подключиться нельзя через "Add Server", только direct connect.
### hide-online-players
```properties
hide-online-players=false
```
При `true` список игроков в ping-ответе будет пустым. Защита приватности.
## Прочие параметры
### resource-pack / resource-pack-sha1
```properties
resource-pack=
resource-pack-sha1=
```
URL к ресурспаку, который сервер форсирует клиенту, и SHA1 для проверки. При наличии - клиент при подключении предложит загрузить пак.
### require-resource-pack
```properties
require-resource-pack=false
```
При `true` отказ от ресурспака = кик. Используется на ролевых и тематических серверах.
### text-filtering-config
```properties
text-filtering-config=
```
URL фильтра чата (для серверов с детской аудиторией). Редко используется.
### op-permission-level
```properties
op-permission-level=4
```
Дефолтный уровень для команды `/op`. 4 - полный доступ. Можно понизить до 1-3, если хотите разделять права.
## Пример оптимизированного server.properties
Для сервера на 30 онлайн, Paper, версия 1.20.4:
```properties
server-port=25565
online-mode=true
enforce-secure-profile=true
network-compression-threshold=256
use-native-transport=true
sync-chunk-writes=true
view-distance=8
simulation-distance=6
max-tick-time=60000
entity-broadcast-range-percentage=80
max-players=30
player-idle-timeout=20
gamemode=survival
difficulty=normal
hardcore=false
pvp=true
spawn-protection=32
allow-flight=true
level-name=world
level-type=minecraft\:normal
generate-structures=true
max-world-size=15000
motd=§6Мой сервер §fwww.example.com
enable-rcon=false
enable-query=false
white-list=false
```
После применения такого конфига рекомендуется сделать pre-generate мира до `max-world-size` через Chunky или WorldBorder. Это снимет огромную нагрузку с CPU в дальнейшем. Не забывайте про общую [оптимизацию сервера](/ru/minecraft-server-optimization) и настройку [защиты от DDoS](/ru/ddos-protection).
> **Pterohost** - игровой хостинг с DDoS-защитой L4+L7, NVMe и 24/7 поддержкой. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-server-properties-guide)
## Влияние ключевых параметров на TPS
| Параметр | Снижение | Эффект на TPS |
|---------------------------|----------|----------------|
| view-distance 10 → 7 | -36% чанков | +2-4 TPS на 50 онлайн |
| simulation-distance 10 → 6 | -64% тикуемых | +3-5 TPS |
| entity-broadcast-range 100 → 70 | трафик | минус 20-30% сетевой нагрузки |
| max-players 60 → 40 | реальная нагрузка | прямо пропорционально |
| spawn-monsters true → false | вычисления спавна | +1-2 TPS, но мобов нет |
Помните: server.properties - это только базовый конфиг. На Paper/Purpur гораздо больше параметров доступно в `paper-global.yml`, `paper-world-defaults.yml`, `bukkit.yml`, `spigot.yml`. Тонкая настройка идёт уже там.
## FAQ
**Где находится server.properties?**
В корневой папке сервера, рядом с server.jar. На хостинге доступен через файловый менеджер или встроенный редактор панели.
**Какой view-distance ставить?**
По умолчанию 10. Для 50+ онлайн - 7-8, для приватного на 5-10 человек - 10-12.
**Чем simulation-distance отличается от view-distance?**
view-distance - рендеринг чанков на клиенте, simulation-distance - радиус тикования. Симуляция обычно меньше на 1-2 чанка.
**Что делает online-mode=false?**
Отключает проверку лицензии Mojang. Заходить можно под любым ником - обязательно ставьте плагин авторизации.
**Как настроить RCON?**
enable-rcon=true, задать rcon.port и сильный rcon.password, перезапустить. Никогда не открывать порт наружу без файервола.
**Что такое spawn-protection?**
Радиус защищённой зоны вокруг спавна. По умолчанию 16. Для приватных - 0, для публичных - 32-64.
---
## Бэкап сервера Minecraft: как сделать и восстановить
URL: https://docs.pterohost.com/ru/minecraft-server-backup
Обновлено: 2026-05-19
Пошаговое руководство по резервным копиям сервера Minecraft: что копировать, ручной бэкап через FTP, плагины и автоматические бэкапы на хостинге.
---
Потеря мира из-за сбоя диска, случайной команды или взлома - это то, с чем сталкивались многие администраторы. Грамотно настроенные резервные копии сервера Minecraft позволяют восстановить всё за несколько минут. В этой статье разберём, что именно нужно сохранять, как это делать вручную и автоматически, и как восстановить сервер из бэкапа.
## Что нужно копировать
Не все файлы одинаково важны. Вот полный список того, что необходимо включать в резервную копию:
| Файл / папка | Что содержит | Приоритет |
|---|---|---|
| `world/` | Основной мир (Overworld) | Критически важно |
| `world_nether/` | Нижний мир | Критически важно |
| `world_the_end/` | Край | Критически важно |
| `plugins/` | Все плагины и их конфиги, данные игроков | Критически важно |
| `server.properties` | Основные настройки сервера | Важно |
| `ops.json` | Список операторов | Важно |
| `whitelist.json` | Белый список игроков | Важно |
| `banned-players.json` | Список банов | Важно |
| `banned-ips.json` | Забаненные IP-адреса | Важно |
| `paper.yml`, `spigot.yml`, `bukkit.yml` | Конфиги ядра | Рекомендуется |
| Базы данных MySQL | Данные экономики, статистики и др. | Зависит от плагинов |
> Имена папок миров могут отличаться - их задаёт параметр `level-name` в `server.properties`. Проверьте его перед бэкапом.
> Ищете хостинг, где бэкапы настраиваются в два клика? [**Попробуйте Pterohost**](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-server-backup) - автоматические резервные копии прямо в панели, NVMe SSD для быстрого сохранения и восстановления, бесплатная защита от DDoS. По промокоду **4START** скидка 20% на первый заказ.
## Ручной бэкап через FTP/SFTP
Ручной бэкап подходит для разовых копий перед обновлениями или миграцией.
### Шаг 1: остановите сервер
Это обязательный шаг. Запущенный сервер держит часть данных мира в оперативной памяти и не записывает их на диск в реальном времени. Бэкап работающего сервера может содержать повреждённые чанки.
```bash
# В консоли сервера:
stop
```
### Шаг 2: подключитесь через FTP/SFTP
Откройте панель хостинга и найдите данные для FTP-подключения (хост, порт, логин, пароль). Подробнее о подключении читайте в статье [FTP/SFTP: подключение к серверу](/ru/ftp-sftp-connect).
Рекомендуем использовать **SFTP** - это зашифрованное соединение, безопаснее обычного FTP.
В FileZilla введите:
```
Хост: sftp://ваш-ip-или-домен
Порт: 22 (или указанный в панели)
Логин: ваш логин
Пароль: ваш пароль
```
### Шаг 3: скопируйте файлы
Перетащите папки `world`, `world_nether`, `world_the_end`, папку `plugins` и конфиги на свой компьютер. Для крупных серверов это может занять 10-30 минут.
### Шаг 4: заархивируйте копию
Сжатый архив занимает в 3-10 раз меньше места, чем исходные файлы.
На Linux/Mac:
```bash
tar -czf backup_2026-05-19.tar.gz world/ world_nether/ world_the_end/ plugins/ server.properties ops.json whitelist.json
```
На Windows - используйте 7-Zip или встроенный архиватор.
## Бэкап через плагины
Плагины позволяют делать копии без остановки сервера и настроить расписание прямо в игре.
### DriveBackupV2
Популярный плагин для автобэкапов с загрузкой в облако (Google Drive, OneDrive, Dropbox, FTP).
```yaml
# config.yml - основные параметры
backupStorage:
localDirectory:
enabled: true
dir: plugins/DriveBackupV2/backups
googleDrive:
enabled: true
schedule:
enabled: true
delay: 24h # интервал между бэкапами
time: "04:00" # время суток (лучше ночью)
backupList:
- name: worlds
directories:
- world
- world_nether
- world_the_end
- name: plugins
directories:
- plugins
```
### Автосохранение перед бэкапом
Если хотите снять копию без остановки сервера, сначала принудительно запишите все чанки:
```bash
# В консоли:
save-all
# Подождите сообщения "Saved the game"
# Теперь снимайте бэкап
```
## Автоматические резервные копии в панели Pterohost
Если ваш сервер хостится на Pterohost, встроенная система бэкапов доступна прямо из панели управления:
1. Откройте страницу своего сервера в панели
2. Перейдите в раздел **Резервные копии**
3. Нажмите **Создать резервную копию** для ручного бэкапа
4. В настройках задайте расписание и количество хранимых копий
Бэкапы создаются автоматически по расписанию и хранятся на отдельном хранилище. Восстановление - одна кнопка без FTP и ручной работы с файлами.
## Как восстановить сервер из бэкапа
Процедура восстановления обратна созданию:
```bash
# 1. Остановите сервер
stop
# 2. Переименуйте текущие папки миров (на случай если восстановление пойдёт не так)
# Через FTP: world -> world_old, world_nether -> world_nether_old
# 3. Загрузите файлы бэкапа через FTP на место старых
# world/, world_nether/, world_the_end/, plugins/
# 4. Запустите сервер
```
### Восстановление баз данных MySQL
Если плагины хранят данные в MySQL, восстановите дамп отдельно:
```bash
# Восстановление через консоль MySQL:
mysql -u имя_пользователя -p имя_базы < backup.sql
```
Через phpMyAdmin: вкладка **Импорт** - выберите файл `.sql` - нажмите "Вперёд".
## Как часто делать бэкапы
| Тип сервера | Рекомендуемый интервал |
|---|---|
| Личный сервер для друзей | Раз в сутки |
| Публичный сервер до 20 игроков | Каждые 12 часов |
| Публичный сервер от 20 игроков | Каждые 6 часов |
| Сервер с активным строительством | Каждые 4-6 часов |
| Перед обновлением сервера / плагина | Всегда вручную |
**Правило трёх копий**: храните минимум 3 последних бэкапа в разных местах - на сервере, на своём компьютере и в облаке. Одна копия на том же диске, что и сервер - не считается надёжной защитой.
## Частые ошибки
**Делают бэкап работающего сервера без save-all.** Итог - повреждённые чанки в копии. Всегда выполняйте `save-all` или останавливайте сервер перед копированием.
**Копируют только папку мира, забывая plugins.** После восстановления плагины теряют все данные: экономику, дома, привилегии игроков. Копируйте папку plugins целиком.
**Хранят бэкапы на том же сервере.** При сбое диска или взломе теряются и данные, и копии. Используйте внешнее хранилище.
**Не проверяют работоспособность бэкапа.** Раз в месяц разворачивайте копию на тестовом окружении - это единственный способ убедиться, что она пригодна для восстановления.
**Забывают про базы данных.** Если плагины используют MySQL, бэкап файловой системы не спасёт данные игроков - нужен отдельный дамп базы.
> Хотите надёжный хостинг с резервными копиями без лишних настроек? [**Pterohost для Minecraft**](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-server-backup) - автоматические бэкапы в панели, быстрое восстановление в один клик, удобный интерфейс и поддержка 24/7. По промокоду **4START** скидка 20% на первый заказ.
## Часто задаваемые вопросы
**Как сделать бэкап сервера Minecraft?**
Остановите сервер, скопируйте папки world, world_nether, world_the_end, папку plugins и файл server.properties. Заархивируйте их и храните отдельно от сервера.
**Что нужно копировать для бэкапа сервера?**
Обязательно: папки миров (world, world_nether, world_the_end), папка plugins со всеми конфигами, server.properties. Дополнительно: ops.json, whitelist.json, banned-players.json и базы данных MySQL если используются.
**Как восстановить сервер Minecraft из бэкапа?**
Остановите сервер, удалите или переименуйте текущие папки миров, загрузите файлы из бэкапа на их место через FTP и запустите сервер. Для баз данных восстановите дамп через phpMyAdmin или консоль.
**Как часто делать резервные копии сервера?**
Минимум раз в сутки для активного сервера. При активном строительстве и большом онлайне - каждые 6-12 часов. Перед крупными обновлениями или установкой новых плагинов - обязательно вручную.
**Делает ли хостинг бэкапы автоматически?**
На Pterohost автоматические резервные копии включены в панели управления. Вы можете настроить расписание и количество хранимых копий прямо из интерфейса без дополнительных плагинов.
## Читайте также
- [FTP/SFTP: подключение к серверу](/ru/ftp-sftp-connect) - как подключиться для загрузки файлов
- [Оптимизация сервера Minecraft](/ru/minecraft-server-optimization) - чтобы сервер работал быстрее
- [Перенос сервера на хостинг](/ru/perenos-servera-na-hosting) - миграция с правильным бэкапом
- [Базы данных MySQL для сервера](/ru/mysql-bazy-dannykh) - работа с данными плагинов
---
## Vault - экономика на сервере
URL: https://docs.pterohost.com/ru/minecraft-vault-plugin
Обновлено: 2025-12-27
Как установить и настроить плагин Vault для работы экономики
---
## Что такое Vault?
Vault - это фундаментальный плагин для серверов Minecraft, который предоставляет единый API для работы с экономикой, правами доступа и чатом. Он не является самостоятельной системой экономики, а служит мостом между различными плагинами.
> Vault не создает экономику сам по себе! Вам обязательно нужен дополнительный плагин экономики, например EssentialsX Economy или iConomy.
## Зачем нужен Vault?
Многие популярные плагины (ChestShop, Jobs, QuickShop и др.) используют Vault для работы с деньгами. Без него эти плагины просто не смогут функционировать! Vault позволяет всем плагинам работать с одной общей экономической системой.
## Установка Vault
**Шаг 1:** Скачайте последнюю версию Vault с [официальной страницы SpigotMC](https://www.spigotmc.org/resources/vault.34315/)
**Шаг 2:** Загрузите файл `.jar` в папку `plugins` на вашем сервере
**Шаг 3:** Установите плагин экономики (например, EssentialsX)
**Шаг 4:** Перезагрузите сервер командой `/reload confirm` или перезапустите его
**Шаг 5:** Проверьте установку командой `/pl` - Vault должен быть зеленого цвета
## Совместимые плагины экономики
Vault поддерживает множество плагинов для создания экономики:
- **EssentialsX Economy** (рекомендуется) - [Скачать на SpigotMC](https://www.spigotmc.org/resources/essentialsx.9089/)
- **iConomy** - классическая система экономики
- **CMI Economy** - часть плагина CMI
- **TheNewEconomy (TNE)** - современная альтернатива
> Рекомендуем использовать EssentialsX, так как он постоянно обновляется и имеет огромное сообщество.
## Настройка прав доступа
Если вы используете LuckPerms, добавьте права для работы с экономикой:
```
/lp group default permission set vault.admin false
/lp group admin permission set vault.admin true
```
Для обычных игроков достаточно стандартных прав - они смогут проверять свой баланс и совершать покупки.
## Проверка работоспособности
После установки Vault и плагина экономики, проверьте работу:
**1. Проверьте баланс:**
```
/balance
```
или
```
/bal
```
**2. Выдайте себе деньги (для тестирования):**
```
/eco give ИМЯ_ИГРОКА 1000
```
**3. Проверьте интеграцию с другими плагинами:**
Установите например ChestShop и создайте магазин - если Vault настроен правильно, всё будет работать.
## Частые проблемы
**Vault установлен, но плагины не видят экономику**
- Убедитесь, что установлен плагин экономики (EssentialsX или аналог)
- Перезагрузите сервер полностью, не используйте /reload
**Ошибка "No Economy plugin found"**
- Проверьте, что плагин экономики загружен (зеленый в /pl)
- Vault должен загружаться ПОСЛЕ плагина экономики
**Команды экономики не работают**
- Проверьте права доступа через LuckPerms
- Убедитесь, что в EssentialsX включена опция экономики
## Дополнительные ресурсы
- [Официальная документация Vault](https://github.com/milkbowl/Vault)
- [EssentialsX Wiki](https://essentialsx.net/wiki/Home.html)
- [Список плагинов, использующих Vault](https://dev.bukkit.org/bukkit-plugins/vault/)
> Vault - это основа для экономики на вашем сервере. Установите его один раз, и все плагины смогут работать вместе без конфликтов!
---
## Хостинг Minecraft с модами: выбор сервера, RAM, ядра
URL: https://docs.pterohost.com/ru/minecraft-modded-server-hosting
Обновлено: 2026-05-26
Как выбрать хостинг под модовый сервер Minecraft: Forge, Fabric, NeoForge, расчёт RAM, JVM-флаги Aikar, мониторинг лагов через /tps и /spark.
---
Модовый сервер Minecraft - это совсем другая нагрузка по сравнению с ванильным или Paper. Сотни модов, тысячи сущностей, сложные механики - всё это требует продуманного выбора железа, лоадера и JVM-настроек. Разберём, как подобрать хостинг под модпак и не получить TPS 5 на 10 игроках.
## Лоадеры модов: Forge, Fabric, NeoForge
Перед тем как заказывать сервер, нужно определиться с лоадером - программой, которая загружает моды и предоставляет им API.
### Forge
Старейший лоадер, существует с 2011 года. Под него написано подавляющее большинство классических модов: IndustrialCraft, BuildCraft, Thaumcraft, Tinkers' Construct, Applied Energistics. Если вы играли в крупный модпак до 2022 года - почти наверняка это был Forge.
Особенности:
- огромная база модов;
- тяжёлый старт сервера (загрузка сотен модов занимает 1-3 минуты);
- высокое потребление RAM;
- иногда более медленные обновления под новые версии Minecraft.
### Fabric
Лёгкий и быстрый лоадер, появился в 2018 году. Изначально - вокруг оптимизационных модов (Sodium, Lithium, Phosphor) и быстрых сборок.
Особенности:
- меньшее потребление RAM;
- быстрый запуск;
- меньше "тяжёлых" модов вроде Mekanism (но они уже подтягиваются);
- быстрее обновляется под новые версии Minecraft.
### NeoForge
Форк Forge, появился в 2023 году после раскола сообщества. Активно развивается, многие новые моды (Create 6+, Mekanism 11+) уже выходят под NeoForge.
Особенности:
- совместимость с большинством старых Forge-модов;
- более активная разработка по сравнению с оригинальным Forge;
- становится стандартом для версий 1.21+.
### Hybrid: Mohist, Arclight, Magma
Если очень нужны и моды, и Bukkit-плагины, есть гибридные сборки. Это специальные сборки сервера, которые умеют запускать Forge-моды и работать как Paper-сервер для плагинов. Минусы: повышенный расход RAM, возможные конфликты, нестабильность под нагрузкой.
## Нагрузка от модов: что реально жрёт ресурсы
Не все моды одинаково тяжёлые. Условно можно разделить их на категории:
| Категория | Примеры | Нагрузка |
|----------------|-----------------------------|----------|
| Косметика | JEI, Xaero, Patchouli | Низкая |
| QoL/оптимизация| Lithium, Starlight, FerriteCore | Снижают |
| Контент-моды | Twilight Forest, Aether | Средняя |
| Техномоды | Mekanism, Create, Industrial Foregoing | Высокая |
| Магия | Botania, Ars Nouveum, Blood Magic | Средняя |
| Биомы | Biomes O' Plenty, Terralith | Высокая при генерации |
| Анимации/сущности | Alex's Mobs, Mowzie's Mobs | Высокая при онлайне |
| Чанк-генераторы| Quark, YUNG's, Repurposed Structures | Высокая при генерации |
Самые тяжёлые - моды с большим количеством тикающих сущностей (Industrial Foregoing с тысячами машин у каждого игрока) и моды с активной генерацией мира (Terralith добавляет десятки биомов).
## Расчёт RAM под модпак
Самая частая ошибка - "взять 8 ГБ, как все советуют". На современных сборках этого мало.
Базовая формула:
```
RAM = 2048 МБ (пустой сервер)
+ количество_модов * 100 МБ
+ количество_игроков * 80 МБ
+ 1024 МБ (запас на GC)
```
Примеры:
| Модпак | Моды | Игроки | RAM минимум | RAM рекомендация |
|--------|------|--------|-------------|------------------|
| Small KubeJS | 50 | 5 | 4 ГБ | 6 ГБ |
| Medieval RPG | 100 | 10 | 8 ГБ | 10 ГБ |
| All the Mods 10 | 280 | 10 | 14 ГБ | 16-20 ГБ |
| GregTech New Horizons | 400 | 5 | 18 ГБ | 20-24 ГБ |
| Create: Astral | 220 | 15 | 14 ГБ | 18 ГБ |
Дополнительные нюансы расчёта - в материале [сколько RAM нужно серверу](/ru/skolko-ram-nuzhno-serveru).
### Слишком много RAM - тоже плохо
Если выделить 32 ГБ на модпак, которому нужно 12 - GC будет работать дольше при каждой сборке. Это приведёт к редким, но длинным фризам (так называемые GC pauses на 2-5 секунд). Оптимально - выделять с запасом 20-30%, не больше.
## Выбор CPU для модового сервера
Модовый сервер ещё сильнее зависит от частоты CPU, чем ванильный. Тикование сущностей, расчёт капсул машин, обработка миксинов - всё это идёт в один поток.
Рекомендации:
- частота от 4.5 ГГц в boost - минимум;
- современная архитектура (Zen 4/5, Raptor Lake) - предпочтительно;
- большой L3-кэш помогает (Ryzen X3D-серия особенно хороша);
- 4-8 ядер достаточно, больше - не даёт прироста на одиночном сервере.
Сравнение популярных CPU для серверов и их влияние на TPS - в гайде по [ядрам и процессорам](/ru/minecraft-server-cores-2026).
> **Pterohost** - игровой хостинг с DDoS-защитой L4+L7, NVMe и 24/7 поддержкой. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-modded-server-hosting)
## JVM-флаги: Aikar's Flags
Aikar's Flags - набор параметров JVM, разработанный разработчиком Paper для серверов Minecraft. Они настраивают сборщик мусора G1GC так, чтобы паузы были короче и реже.
Базовый набор для сервера от 8 ГБ RAM:
```bash
java -Xms12G -Xmx12G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:+AlwaysPreTouch \
-XX:G1NewSizePercent=30 \
-XX:G1MaxNewSizePercent=40 \
-XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 \
-XX:G1HeapWastePercent=5 \
-XX:G1MixedGCCountTarget=4 \
-XX:InitiatingHeapOccupancyPercent=15 \
-XX:G1MixedGCLiveThresholdPercent=90 \
-XX:G1RSetUpdatingPauseTimePercent=5 \
-XX:SurvivorRatio=32 \
-XX:+PerfDisableSharedMem \
-XX:MaxTenuringThreshold=1 \
-Dusing.aikars.flags=https://mcflags.emc.gs \
-Daikars.new.flags=true \
-jar server.jar nogui
```
Ключевое:
- `-Xms` и `-Xmx` равны - избегаем динамического роста heap;
- `G1NewSizePercent=30` для серверов от 12 ГБ (для 4-8 ГБ ставят 40);
- `G1HeapRegionSize=8M` для крупных heap.
Для серверов меньше 8 ГБ RAM флаги слегка отличаются - на сайте mcflags.emc.gs есть генератор под нужный размер heap.
### Какую Java брать
- Minecraft 1.16.5 и ниже - Java 8 или 11;
- Minecraft 1.17 - Java 16;
- Minecraft 1.18-1.20 - Java 17;
- Minecraft 1.21+ - Java 21.
Сборки от Adoptium (Eclipse Temurin) - стандарт. Не используйте Oracle JDK без понимания лицензии.
## Установка Forge-сервера пошагово
1. **Создание папки.** Создайте отдельный каталог для сервера, например `forge-server-1.20.1`.
2. **Скачивание installer.** Зайдите на files.minecraftforge.net, выберите версию (Recommended), скачайте `forge-X.X.X-installer.jar`.
3. **Запуск инсталлера.** В терминале:
```bash
java -jar forge-1.20.1-47.3.0-installer.jar --installServer
```
Инсталлер скачает Minecraft-jar, библиотеки и создаст `run.sh` / `run.bat`.
4. **EULA.** При первом запуске сервер создаст `eula.txt`. Откройте и поменяйте `eula=false` на `eula=true`.
5. **Запуск.** На Linux:
```bash
bash run.sh
```
На Windows: `run.bat`.
6. **Установка модов.** Положите .jar файлы модов в папку `mods/`. На сервере должны быть те же моды, что и у игроков, иначе при подключении будет ошибка "Modded mismatch".
7. **Перезапуск и тест.** Подключитесь с клиентским Forge той же версии и теми же модами.
На хостингах с Pterodactyl весь процесс сводится к выбору версии Forge из выпадающего списка - инсталлер и запуск автоматизированы.
## Мониторинг лагов: /tps, /spark, /forge tps
Когда что-то идёт не так, нужно понимать что именно.
### /tps
Стандартная команда (если у вас Paper или гибрид):
```
/tps
TPS from last 1m, 5m, 15m: 19.8, 18.5, 17.2
```
TPS 20 - идеал. Ниже 18 - заметные подтормаживания. Ниже 15 - сервер тормозит ощутимо.
### /forge tps
На чистом Forge:
```
/forge tps
Overall: Mean tick time: 60.123 ms. Mean TPS: 16.6
minecraft:overworld: Mean tick time: 45.2 ms. Mean TPS: 20.0
```
Покажет нагрузку по каждому измерению отдельно.
### /spark
Универсальный инструмент. Устанавливается как мод (под Forge/Fabric) или плагин. Основные команды:
- `/spark tps` - расширенный TPS;
- `/spark profiler` - запуск профайлера на 60 секунд;
- `/spark profiler --stop` - остановка и генерация ссылки на отчёт;
- `/spark heapsummary` - анализ heap.
Отчёты spark показывают, какие конкретно методы каких модов жрут ваш CPU.
### Observable
Мод-альтернатива spark для Fabric и Forge. Удобный UI прямо в игре.
Если сервер регулярно лагает, не пропустите гайд по [решению лагов](/ru/minecraft-server-lags-fix) и общую [оптимизацию сервера](/ru/minecraft-server-optimization).
## Чек-лист оптимизации модового сервера
1. **Pre-generate world.** Используйте моды Chunky или Chunk-Pregenerator, чтобы заранее сгенерировать чанки в радиусе 5000 блоков от спавна. Снимает огромную нагрузку.
2. **Оптимизация-моды.** Lithium (Fabric), Starlight, FerriteCore, Krypton, ModernFix - снижают потребление RAM и CPU.
3. **Конфиги тяжёлых модов.** Industrial Foregoing, Create, Mekanism - у всех есть конфиги для лимита машин на чанк. Урезайте лимиты, если игроки строят гигантские заводы.
4. **view-distance и simulation-distance.** В server.properties уменьшите до 8/6. Подробнее - в [гайде по server.properties](/ru/minecraft-server-properties-guide).
5. **Лимит сущностей.** Многие моды добавляют моба-фермы. Используйте Mob Stacking-моды или лимиты Forge на сущностей в чанке.
6. **Регулярные рестарты.** Раз в 12-24 часа автоматический рестарт чистит память от утечек.
7. **Удалите неиспользуемые моды.** Часто в модпаках есть моды, которые никто не использует. Каждый удалённый мод - это меньше тика и меньше RAM.
> **Pterohost** - игровой хостинг с DDoS-защитой L4+L7, NVMe и 24/7 поддержкой. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-modded-server-hosting)
## FAQ
**Какой лоадер выбрать: Forge, Fabric или NeoForge?**
Forge - больше всего модов, Fabric - быстрее и легче, NeoForge - будущее экосистемы Forge. Для новой сборки на 1.21+ берите NeoForge или Fabric.
**Сколько RAM нужно для модового сервера?**
По формуле: 2 ГБ базы + 100 МБ × количество модов + 80 МБ × игроков. Для модпака из 200 модов на 10 игроков - 14-16 ГБ.
**Что такое JVM-флаги Aikar?**
Набор параметров запуска Java, оптимизирующий G1GC для Minecraft. Стабилизирует TPS на серверах с большим heap.
**Почему модовый сервер лагает на мощном железе?**
Обычно из-за конкретных модов (биомы, техномоды). Используйте /spark profiler для поиска источника.
**Как установить Forge-сервер?**
Скачать installer, запустить с --installServer, согласиться с EULA, запустить run.sh. На хостинге - через готовый Egg одной кнопкой.
**Можно ли использовать Paper-плагины на Forge?**
Через гибриды Mohist/Arclight/Magma, но стабильность ниже чистого Forge.
---
## EssentialsX - полезные команды
URL: https://docs.pterohost.com/ru/minecraft-essentialsx-commands
Обновлено: 2026-01-04
Основные команды и настройка плагина EssentialsX
---
## Что такое EssentialsX?
EssentialsX - это самый популярный плагин для серверов Minecraft, добавляющий более 100 полезных команд для администрирования и улучшения игрового процесса. Это современная версия классического плагина Essentials, которая активно поддерживается и обновляется.
> Скачать EssentialsX можно с [официальной страницы SpigotMC](https://www.spigotmc.org/resources/essentialsx.9089/)
## Установка EssentialsX
**Шаг 1:** Скачайте EssentialsX.jar с официального сайта
**Шаг 2:** Поместите файл в папку `plugins` вашего сервера
**Шаг 3:** Перезапустите сервер
**Шаг 4:** В папке `plugins/Essentials` появятся конфигурационные файлы
**Шаг 5:** Проверьте установку командой `/essentials`
## ТОП-10 самых полезных команд
### 1. /home - Телепортация домой
```
/sethome [название] - установить точку дома
/home [название] - телепортироваться домой
/delhome [название] - удалить точку дома
/homes - посмотреть список всех домов
```
Игроки могут создавать несколько точек дома. Количество зависит от прав доступа.
### 2. /spawn - Телепортация на спавн
```
/spawn - телепортация на спавн сервера
/setspawn - установить точку спавна (для админов)
```
### 3. /warp - Варпы (телепорты)
```
/warp [название] - телепортироваться на варп
/setwarp [название] - создать новый варп (для админов)
/delwarp [название] - удалить варп (для админов)
/warps - список всех варпов
```
### 4. /back - Вернуться назад
```
/back - вернуться на предыдущее место
```
Очень полезно после смерти или случайного телепорта!
### 5. /tp и /tpa - Телепортация к игрокам
```
/tp [игрок] - телепортироваться к игроку (админ)
/tpa [игрок] - запросить телепорт к игроку
/tpaccept - принять запрос телепорта
/tpdeny - отклонить запрос
/tpahere [игрок] - пригласить игрока к себе
```
### 6. /kit - Наборы предметов
```
/kit [название] - получить набор предметов
/kits - список доступных наборов
```
Наборы настраиваются в файле `kits.yml`.
### 7. /repair - Починка предметов
```
/repair - починить предмет в руке
/repair all - починить всю броню и предметы
```
> Внимание! Эта команда может нарушить баланс экономики. Рекомендуем установить оплату через конфиг.
### 8. /heal и /feed - Лечение и насыщение
```
/heal [игрок] - восстановить здоровье
/feed [игрок] - утолить голод
```
### 9. /god - Режим бога
```
/god [игрок] - включить неуязвимость
```
Полезно для администраторов при постройке.
### 10. /balance - Проверка баланса
```
/balance - узнать свой баланс
/bal [игрок] - узнать баланс игрока
/baltop - топ самых богатых игроков
/pay [игрок] [сумма] - передать деньги
```
## Настройка config.yml
Основной конфигурационный файл находится в `plugins/Essentials/config.yml`. Вот важные параметры:
**Количество точек дома:**
```yaml
sethome-multiple:
default: 3
vip: 5
admin: 10
```
**Стоимость команд:**
```yaml
command-costs:
heal: 100
repair: 50
feed: 25
```
**Стартовый баланс:**
```yaml
starting-balance: 1000
```
**Телепорт задержка:**
```yaml
teleport-delay: 3
```
> После изменения config.yml используйте команду `/essentials reload` для применения изменений без перезапуска сервера.
## Настройка прав доступа через LuckPerms
EssentialsX работает отлично с LuckPerms. Вот базовая настройка:
**Для обычных игроков:**
```
/lp group default permission set essentials.home true
/lp group default permission set essentials.sethome true
/lp group default permission set essentials.spawn true
/lp group default permission set essentials.tpa true
/lp group default permission set essentials.balance true
```
**Для VIP:**
```
/lp group vip permission set essentials.heal true
/lp group vip permission set essentials.repair true
/lp group vip permission set essentials.fly true
```
**Для администраторов:**
```
/lp group admin permission set essentials.* true
```
## Частые ошибки и решения
**1. "You do not have access to that command"**
- Проблема: У игрока нет прав на команду
- Решение: Добавьте права через LuckPerms (см. выше)
**2. "You must wait X seconds before using this command again"**
- Проблема: Активирован кулдаун команды
- Решение: Подождите или отключите в config.yml параметр `command-cooldowns`
**3. "You have reached the maximum number of homes"**
- Проблема: Лимит точек дома
- Решение: Увеличьте `sethome-multiple` в конфиге или выдайте право `essentials.sethome.multiple.unlimited`
**4. Игроки не могут использовать цветные коды в чате**
- Решение: Выдайте право `essentials.chat.color` для групп
## Дополнительные модули
EssentialsX имеет дополнительные модули:
- **EssentialsXChat** - улучшенный чат с префиксами
- **EssentialsXSpawn** - расширенные настройки спавна
- **EssentialsXGeoIP** - определение страны игрока
- **EssentialsXAntiBuild** - защита от разрушения
Скачать их можно на той же странице SpigotMC.
## Полезные ссылки
- [Официальная документация EssentialsX](https://essentialsx.net/wiki/Home.html)
- [Список всех команд](https://essentialsx.net/wiki/Command-Reference.html)
- [Список всех прав доступа](https://essentialsx.net/wiki/Permission-Nodes.html)
> EssentialsX - это must-have плагин для любого сервера! Он значительно упрощает администрирование и улучшает игровой процесс.
---
## WorldGuard: регионы и приваты на сервере Minecraft
URL: https://docs.pterohost.com/ru/minecraft-worldguard-regiony
Обновлено: 2026-05-19
Настройка регионов и защиты территорий в WorldGuard: установка, выделение зон, флаги, добавление участников, защита спавна. Полный гайд для администраторов.
---
WorldGuard - стандарт защиты территорий на серверах Minecraft уже много лет. С его помощью вы создаёте регионы с тонкими настройками: запрет PvP, защита от гриферов, приветственные сообщения, ограничения на использование предметов. В этой статье разберём установку, создание регионов и все популярные флаги.
## Установка WorldEdit и WorldGuard
WorldGuard не работает без WorldEdit - это обязательная зависимость. Устанавливайте оба плагина вместе.
1. Скачайте актуальные версии с официального сайта: [enginehub.org](https://enginehub.org)
2. Поместите оба `.jar` файла в папку `plugins/` вашего сервера
3. Перезапустите сервер
4. Проверьте загрузку в консоли: должны появиться строки `[WorldEdit] Enabling` и `[WorldGuard] Enabling`
WorldEdit и WorldGuard поддерживают Bukkit, Spigot, Paper и Fabric. Для лучшей совместимости используйте Paper - подробнее об этом в статье [Ядра сервера Minecraft 2026](/ru/minecraft-server-cores-2026).
```bash
# Проверка в консоли после запуска:
plugins
# Должны быть в списке: WorldEdit, WorldGuard (зелёным цветом - активны)
```
Права для работы с регионами по умолчанию есть только у операторов (`op`). Для выдачи прав игрокам через плагин прав используйте узлы `worldguard.region.*`.
> Хотите сервер с уже установленными популярными плагинами? [**Pterohost для Minecraft**](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-worldguard-regiony) - автоустановка ядра и плагинов, удобная панель управления, NVMe SSD и поддержка 24/7. По промокоду **4START** скидка 20% на первый заказ.
## Выделение территории и создание региона
### Инструмент выделения
Получите деревянный топор командой `//wand` (двойной слэш - это команда WorldEdit).
- **Левый клик** по блоку - первый угол выделения
- **Правый клик** по блоку - второй угол выделения
В чате появятся сообщения: "First position set" и "Second position set" с координатами.
```bash
# Расширить выделение на всю высоту мира (Y от 0 до 320):
//expand vert
# Проверить размер выделения:
//size
```
### Создание региона
```bash
# Создать регион с именем "myzone":
/rg define myzone
# Создать регион и сразу добавить владельца:
/rg define myzone owner Notch
# Посмотреть список всех регионов:
/rg list
# Информация о конкретном регионе:
/rg info myzone
```
Имена регионов - только латинские буквы, цифры и дефис. Пробелы не допускаются.
## Управление участниками и владельцами
WorldGuard различает два уровня доступа:
- **Участник (member)** - может строить и ломать блоки в регионе
- **Владелец (owner)** - может изменять флаги региона и управлять участниками
```bash
# Добавить участника:
/rg addmember myzone Notch
# Добавить нескольких участников:
/rg addmember myzone Notch Herobrine Steve
# Добавить владельца:
/rg addowner myzone Notch
# Удалить участника:
/rg removemember myzone Notch
# Удалить владельца:
/rg removeowner myzone Notch
# Добавить группу (если используется плагин прав):
/rg addmember myzone g:vip
```
## Флаги региона
Флаги определяют правила поведения в регионе. Команда:
```bash
/rg flag название_региона флаг значение
```
Значения: `allow`, `deny`, `none` (убрать флаг).
### Таблица популярных флагов
| Флаг | Что делает | Пример команды |
|---|---|---|
| `pvp` | Разрешает/запрещает PvP | `/rg flag spawn pvp deny` |
| `build` | Разрешает/запрещает строительство | `/rg flag shop build deny` |
| `mob-spawning` | Управляет спавном мобов | `/rg flag dungeon mob-spawning allow` |
| `greeting` | Сообщение при входе в регион | `/rg flag market greeting "Добро пожаловать на рынок!"` |
| `farewell` | Сообщение при выходе из региона | `/rg flag market farewell "До свидания!"` |
| `use` | Взаимодействие с механизмами (рычаги, кнопки) | `/rg flag bank use allow` |
| `chest-access` | Доступ к сундукам | `/rg flag storage chest-access deny` |
| `entry` | Вход в регион | `/rg flag vip-zone entry deny` |
| `exit` | Выход из региона | `/rg flag arena exit deny` |
| `mob-damage` | Урон от мобов | `/rg flag safehouse mob-damage deny` |
| `fire-spread` | Распространение огня | `/rg flag city fire-spread deny` |
| `creeper-explosion` | Взрывы криперов | `/rg flag base creeper-explosion deny` |
| `tnt` | Взрывы TNT | `/rg flag arena tnt allow` |
| `leaf-decay` | Опадание листьев | `/rg flag forest leaf-decay deny` |
| `item-drop` | Выброс предметов | `/rg flag spawn item-drop deny` |
### Флаги для сообщений с цветом
```bash
# Цветное приветствие (используются коды цветов &):
/rg flag myzone greeting "&aДобро пожаловать в &6Золотой город&a!"
```
### Посмотреть все флаги региона
```bash
/rg flags myzone
```
## Приоритеты регионов
Когда один регион находится внутри другого, возникает вопрос - чьи правила применяются? Это управляется приоритетами.
```bash
# Установить приоритет (чем выше число, тем важнее регион):
/rg setpriority myzone 10
# По умолчанию приоритет равен 0
```
Пример: создайте глобальный регион `__global__` с запретом строительства для всех, а внутри него - регион `building-area` с приоритетом 1 и разрешённым строительством для участников.
```bash
# Создать глобальный регион (не требует выделения):
/rg define __global__
/rg flag __global__ build deny
/rg flag __global__ pvp deny
# Регион со строительством поверх глобального:
/rg define building-area
/rg setpriority building-area 1
/rg flag building-area build allow
```
## Защита спавна
Спавн - первое место, которое нужно защитить. Типичная настройка:
```bash
# 1. Выделите зону спавна инструментом (//wand)
//expand vert
# 2. Создайте регион
/rg define spawn
# 3. Запретите строительство и ломание блоков
/rg flag spawn build deny
# 4. Запретите PvP
/rg flag spawn pvp deny
# 5. Запретите взрывы
/rg flag spawn creeper-explosion deny
/rg flag spawn tnt deny
# 6. Запретите спавн мобов
/rg flag spawn mob-spawning deny
# 7. Добавьте приветствие
/rg flag spawn greeting "&6Добро пожаловать на сервер! &7Используйте /help для помощи."
```
## Дополнительные команды управления
```bash
# Удалить регион:
/rg remove myzone
# Переименовать регион:
/rg rename oldname newname
# Выделить регион (показать границы):
/rg select myzone
# Переопределить территорию уже существующего региона:
/rg redefine myzone
# Телепортация в центр региона:
/rg teleport myzone
# Список регионов в текущем мире:
/rg list
# Список регионов с указанным участником:
/rg list -p Notch
```
## Частые ошибки
**Устанавливают WorldGuard без WorldEdit.** Сервер выдаст ошибку при запуске. Оба плагина обязательны - устанавливайте их вместе.
**Используют русские буквы в именах регионов.** Имена с кириллицей могут вызвать проблемы в командах. Используйте только латиницу: `spawn`, `shop`, `vip-zone`.
**Забывают `//expand vert` перед созданием региона.** Без этой команды регион ограничен по высоте между двумя точками выделения. Игроки смогут строить над или под регионом.
**Ставят флаг `build deny` на весь мир через `__global__`.** После этого никто не может ничего строить, пока не добавить их участниками в нужный регион или не создать зоны строительства с `build allow`.
**Не выдают права игрокам для управления своими регионами.** Без соответствующих прав в плагине прав (LuckPerms, PermissionsEx) игроки не могут самостоятельно приватить участки - только операторы.
> Нужен хостинг, где можно быстро развернуть сервер с WorldGuard и другими плагинами? [**Pterohost для Minecraft**](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-worldguard-regiony) - автоустановка плагинов, удобная панель Pterodactyl, автоматические резервные копии и поддержка 24/7. По промокоду **4START** скидка 20% на первый заказ.
## Часто задаваемые вопросы
**Как сделать регион через WorldGuard?**
Выделите территорию деревянным топором (//wand), отметьте два угла левым и правым кликом, затем выполните команду /rg define название_региона. Регион будет создан и защищён.
**Нужен ли WorldEdit для WorldGuard?**
Да, WorldGuard требует WorldEdit в качестве зависимости. Без него WorldGuard не запустится. Устанавливайте оба плагина одновременно.
**Как поставить флаги на регион WorldGuard?**
Используйте команду /rg flag название_региона флаг значение. Например, /rg flag myzone pvp deny запрещает PvP в регионе. Список флагов смотрите командой /rg flags.
**Как защитить спавн на сервере Minecraft?**
Выделите зону спавна инструментом WorldEdit, создайте регион командой /rg define spawn, затем установите флаги: /rg flag spawn build deny и /rg flag spawn pvp deny.
**Как дать друзьям доступ к региону?**
Добавьте их как участников командой /rg addmember название_региона ник_игрока. Участники могут строить в регионе. Для полного управления регионом используйте /rg addowner.
## Читайте также
- [Полезные плагины для сервера Minecraft](/ru/best-plugins) - другие важные плагины для администратора
- [Команды EssentialsX](/ru/minecraft-essentialsx-commands) - базовые команды управления сервером
- [Оптимизация сервера Minecraft](/ru/minecraft-server-optimization) - производительность после настройки плагинов
- [Лаги сервера Minecraft: причины и решения](/ru/minecraft-server-lags-fix) - если плагины влияют на TPS
---
## Сборка модпака для Minecraft сервера: пошаговое руководство
URL: https://docs.pterohost.com/ru/minecraft-modpack-sborka
Обновлено: 2026-05-26
Как собрать свой модпак для Minecraft-сервера: где брать моды, как проверять совместимость, решать конфликты Optifine/Sodium и заливать сборку на хостинг.
---
Своя сборка модпака - это полный контроль над контентом сервера и возможность собрать уникальный игровой опыт под аудиторию. Но за гибкость приходится платить временем на тесты и борьбу с конфликтами. Разберём весь процесс: от выбора лоадера до заливки готового модпака на хостинг.
## С чего начать: концепция и лоадер
Перед скачиванием первого мода ответьте на вопросы:
- Какой игровой опыт хотите дать? Технология, магия, RPG, выживание, мини-игры?
- На какой версии Minecraft? 1.20.1 - стабильная классика, 1.21.x - актуальная.
- Какой лоадер? Forge, Fabric, NeoForge.
- Какой целевой онлайн? Это повлияет на количество модов.
- Сколько RAM готовы выделить?
Самая частая ошибка новичков - "просто накачаю 300 модов всего, что нравится". Получается несовместимая каша. Хороший модпак - это 100-200 модов одной направленности.
### Выбор лоадера
Кратко:
- **Forge** - максимум модов, особенно технологичных и магических. Тяжёлый, но богатый;
- **Fabric** - быстрее, легче, фокус на оптимизацию и кастомизацию;
- **NeoForge** - современная замена Forge, активно развивается, многие новые моды выходят сразу под него.
Если вы делаете сборку с нуля на 1.21+, смотрите в сторону NeoForge или Fabric. Подробное сравнение - в [гайде по выбору лоадера и серверного ядра](/ru/minecraft-server-cores-2026).
## Где брать моды
### CurseForge
curseforge.com/minecraft/mc-mods - крупнейший репозиторий с десятками тысяч модов. Преимущества:
- огромный каталог;
- встроенный клиент CurseForge App с управлением сборками;
- поддержка модпаков как отдельной сущности (твист модпак - и все моды подтянутся).
Минусы:
- иногда заставляет проходить редирект на скачивание;
- не все авторы публикуют там новые версии.
### Modrinth
modrinth.com - современная альтернатива. Преимущества:
- быстрый и удобный поиск с фильтрами по лоадеру/версии;
- открытый API;
- встроенный лаунчер Modrinth App;
- многие новые моды публикуются сначала здесь.
Минусы:
- меньше старых модов из 2015-2020 годов.
### GitHub и сайты авторов
Часть модов (особенно от энтузиастов) лежит только на GitHub в Releases. Это нормально, но качайте только из официальных репозиториев авторов.
### Чего избегать
- Сайты с "взломанными модами для премиум-функций" - там трояны.
- 9minecraft.net и аналоги - часто перезаливают моды с рекламой и вирусами.
- Случайные форумы с прямыми ссылками - источник может быть скомпрометирован.
## Совместимость версий
Ключевое правило: все моды должны быть под одну версию Minecraft и одну версию лоадера.
### Что проверять
1. **Версия Minecraft.** Мод для 1.20.1 не запустится на 1.20.4. Иногда работает на близких версиях (1.19.2 и 1.19.4), но это лотерея.
2. **Лоадер.** Forge-мод не работает на Fabric и наоборот. NeoForge частично совместим со старыми Forge-модами.
3. **Версия лоадера.** Forge 47.x для 1.20.1 - стабильная. Бывают баги между минорами, проверяйте changelog.
4. **Зависимости.** Многие моды требуют библиотек: Architectury API, Cloth Config, Patchouli, GeckoLib. Без них - краш при старте.
5. **Java.** 1.21+ требует Java 21, 1.20 - Java 17.
### Инструменты
- **MultiMC / Prism Launcher** - удобный лаунчер для тестирования клиентских сборок. Создаёт изолированные инстансы с разными версиями.
- **PackWiz** - утилита для управления модпаком из CLI с поддержкой версионирования.
## Структура сборки
Типичная папка готового модпака выглядит так:
```
my-modpack/
├── mods/ # .jar файлы модов
├── config/ # конфиги модов
├── defaultconfigs/ # NeoForge: дефолтные конфиги для новых миров
├── kubejs/ # скрипты KubeJS (если используется)
├── resourcepacks/ # серверные ресурспаки
├── scripts/ # CraftTweaker-скрипты
├── server.properties
├── eula.txt
├── start.sh / run.sh
└── pack.toml # PackWiz manifest
```
### Деление модов: client / server / both
Часть модов бессмысленна на сервере и может вызвать краш:
| Тип | Примеры | Где ставить |
|-----------------|--------------------------------|-------------|
| Client-only | JEI Tweaker, Xaero's Minimap, Sodium, Iris, ReplayMod | Только клиент |
| Server-only | Spark, EssentialsX (Bukkit) | Только сервер |
| Both | Большинство контент-модов | И там, и там |
Перед заливкой на хостинг внимательно отфильтруйте client-only моды.
## Создание config-папки и базовая настройка
После первого запуска сервер сгенерирует папку `config/` с десятками файлов. Что критично настроить сразу:
### Лимиты тяжёлых модов
**Industrial Foregoing** - в `config/industrialforegoing-common.toml` есть лимиты area-radius машин. Уменьшайте, если не хотите чтобы один игрок съел сервер.
**Mekanism** - `config/mekanism/general.toml` - лимиты digital miner.
**Create** - `config/create-common.toml` - лимиты на размер контраптов, скорость машин.
### Лимиты сущностей и ферм
Многие моды добавляют моба-фермы. В Forge есть глобальные лимиты:
```toml
# config/forge-server.toml
[entityPerChunkSpawnLimit]
monsters = 50
creatures = 8
ambientCreatures = 5
```
### Производительность
- **FerriteCore** не требует конфига - просто работает.
- **ModernFix** - в `config/modernfix-mixins.json` можно отключать отдельные оптимизации, если что-то ломают.
- **Lithium** (Fabric) - отдельные оптимизации в `config/lithium.properties`.
> **Pterohost** - игровой хостинг с DDoS-защитой L4+L7, NVMe и 24/7 поддержкой. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-modpack-sborka)
## Локальное тестирование
Не заливайте непротестированную сборку на сервер. Сэкономите часы потом.
### Чек-лист тестирования
1. **Сервер стартует без ошибок.** Открыли консоль, увидели `Done (X.Xs)!` - хорошо.
2. **Зашли в игру.** Клиент подключается, не выкидывает.
3. **Сгенерировался мир.** Походили по биомам, нет крашей.
4. **Базовые механики.** Сломали блок, поставили блок, поели, поспали.
5. **Тяжёлые механики каждого крупного мода.** Создали машину Create, машину Mekanism, ритуал Botania.
6. **Перезапустили сервер.** Снова зашли - всё на месте, ничего не потерялось.
7. **Подключение второго клиента.** Чтобы убедиться, что мультиплеер работает.
### Что искать в логах
Файл `logs/latest.log` - первая остановка при любой проблеме.
Маркеры:
- `[FATAL]`, `[ERROR]` - явные проблемы;
- `Caused by:` - стек исключения, обычно указывает на конкретный мод;
- `MixinApplyError` - конфликт миксинов;
- `WARN` - предупреждения, иногда важные (например, "two mods have item id 'minecraft:stone'").
Сохраняйте логи. Если будете спрашивать помощь у автора мода - первое, что попросят, это `latest.log` или `debug.log`.
## Частые конфликты и решения
### Optifine vs Sodium
Не сочетаются. Optifine - модификация рендера старой школы, Sodium - современный движок через миксины. Оба пытаются переписать одни и те же классы.
Решение: на сервере это вообще не имеет значения (сервер не рендерит мир). На клиенте - выберите одно. Современный выбор - Sodium + Iris (для шейдеров) + Continuity (для коннектящихся текстур).
### Performant + другие моды на оптимизацию
Мод Performant иногда конфликтует с FerriteCore, Saturn и другими. Симптом - падение TPS вместо роста или редкие краши. Решение: оставить FerriteCore + ModernFix, убрать Performant.
### Дублирующиеся ID предметов
В новых версиях Minecraft (1.16+) с системой namespace это редкость, но бывает: два мода регистрируют один namespace. Лог покажет `Conflict for namespace`. Решение: связаться с авторами или удалить один.
### Конфликты лоадеров миксинов
Сообщение типа:
```
mixin.target.NPE @Inject method ... target ... was not found
```
Значит, мод ожидает определённую сигнатуру метода Minecraft, а её нет. Обычно - мод обновлён под другую версию MC. Лечится корректной версией мода.
### OutOfMemoryError при старте
`Could not reserve enough space` или `OOM in metaspace`. Решение:
- увеличить heap (`-Xmx`);
- для metaspace: `-XX:MaxMetaspaceSize=512m`;
- проверить, точно ли вы запускаете 64-битную Java.
## Заливка модпака на хостинг
Когда модпак работает локально - можно переносить.
### Через FTP/SFTP
1. Остановите сервер на хостинге.
2. Подключитесь через FTP-клиент (FileZilla, WinSCP).
3. Залейте папки `mods/`, `config/`, `kubejs/`, `scripts/`, `defaultconfigs/`.
4. Если меняете лоадер - залейте серверный jar или используйте установщик хостинга.
5. Удалите старый мир (если несовместим) или сделайте бэкап.
6. Запустите сервер, смотрите консоль.
### Через CurseForge/Modrinth модпак
Если модпак опубликован как пакет на CurseForge или Modrinth:
- на Pterohost есть готовая установка модпаков по ID;
- одной кнопкой выбираете модпак, версию - всё ставится автоматически.
Это удобно, если планируете публичный модпак для клиентов.
### Через MRPACK/CurseForge ZIP
Экспортируйте модпак из лаунчера в .mrpack или .zip. Это контейнер с manifest и списком модов. Многие хостинги (в том числе с панелью Pterodactyl) умеют такие распаковывать автоматически.
## Дамп логов при проблемах
Когда вы обращаетесь в поддержку или к авторам модов, нужны:
1. `logs/latest.log` (всегда).
2. `logs/debug.log` - если включён `--debug` режим.
3. `crash-reports/crash-YYYY-MM-DD_HH.MM.SS-server.txt` - если был краш.
4. Список модов (`/forge mods` или просто содержимое папки `mods/`).
5. Версия Minecraft, лоадера, Java.
Заливайте логи на mclo.gs - это сайт для шаринга Minecraft-логов с подсветкой ошибок.
После заливки модпака не забудьте о [бэкапах](/ru/minecraft-server-backup) и общей [оптимизации сервера](/ru/minecraft-server-optimization) - тяжёлый модпак потребует тюнинга server.properties и JVM-флагов.
> **Pterohost** - игровой хостинг с DDoS-защитой L4+L7, NVMe и 24/7 поддержкой. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-modpack-sborka)
## FAQ
**Где брать моды для сборки?**
CurseForge и Modrinth - два проверенных источника. Не качайте с пиратских и левых сайтов.
**Что такое миксины и почему из-за них всё ломается?**
Механизм патчей байткода в Fabric/NeoForge. При конфликте двух модов на один метод возникает MixinTransformerError. Лечится удалением конфликтующего мода или обновлением.
**Почему Optifine не работает с Sodium?**
Они оба переписывают рендер разными способами. На клиенте выбирайте одно, на сервере вопрос не стоит.
**Как протестировать модпак локально?**
Поднять сервер у себя, запустить, погенерировать чанки, потестить 10-20 минут крупные механики.
**Что делать, если сервер падает при старте?**
Открыть latest.log, искать Caused by, найти виновный мод, удалить или обновить.
**Нужно ли делать клиентский модпак отдельно от серверного?**
Да. Client-only моды (миникарты, шейдеры) не нужны на сервере и могут крашить его.
---
## Citizens - создание NPC с квестами
URL: https://docs.pterohost.com/ru/minecraft-citizens-npc-quests
Обновлено: 2026-01-04
Как создать интерактивных NPC с квестами при помощи Citizens и Denizen
---
## Что такое Citizens?
Citizens - это мощный плагин для создания NPC (Non-Player Characters) на серверах Minecraft. С его помощью можно создавать живых персонажей, которые могут выполнять различные действия: торговать, давать квесты, охранять территорию и многое другое.
> Скачать Citizens можно с [официальной страницы SpigotMC](https://www.spigotmc.org/resources/citizens.13811/)
## Что такое Denizen?
Denizen - это дополнительный плагин для Citizens, который добавляет возможность создания скриптов. С его помощью можно программировать поведение NPC: диалоги, квесты, реакции на действия игроков.
> Скачать Denizen можно с [официальной страницы SpigotMC](https://www.spigotmc.org/resources/denizen.21039/)
## Установка Citizens и Denizen
**Шаг 1:** Скачайте Citizens.jar и Denizen.jar
**Шаг 2:** Поместите оба файла в папку `plugins`
**Шаг 3:** Перезапустите сервер
**Шаг 4:** Проверьте установку командой `/npc help` и `/denizen version`
> Важно! Denizen требует наличия Citizens. Устанавливайте оба плагина вместе.
## Создание базового NPC
### Основные команды Citizens
**Создать NPC:**
```
/npc create [имя] - создать NPC с именем
/npc create Торговец - пример
```
**Удалить NPC:**
```
/npc remove - удалить выбранного NPC
```
**Выбрать NPC:**
```
/npc select - выбрать NPC, на которого вы смотрите
```
**Переместить NPC:**
```
/npc tp - телепортировать NPC к вам
/npc move - переместить NPC на место, куда вы смотрите
```
## Настройка внешнего вида NPC
### Изменение скина
```
/npc skin [ник_игрока] - установить скин игрока
/npc skin Notch - пример
```
Или использовать URL скина:
```
/npc skin --url [URL]
```
### Изменение типа NPC
По умолчанию создается человек, но можно создать любого моба:
```
/npc type [тип]
/npc type zombie - создать зомби
/npc type villager - создать жителя
/npc type cow - создать корову
```
### Экипировка NPC
```
/npc equipment - открыть меню экипировки
```
Или через команды:
```
/npc equip helmet [предмет] - надеть шлем
/npc equip chest [предмет] - надеть нагрудник
```
## Базовое взаимодействие
### Текст при клике
Самый простой способ добавить взаимодействие:
```
/npc text add "Привет, путник!"
/npc text add "Хочешь купить зелье?"
```
NPC будет говорить эти фразы по очереди при каждом клике.
**Удалить текст:**
```
/npc text remove [номер]
/npc text clear - удалить весь текст
```
### Команды при клике
Можно заставить NPC выполнять команды:
```
/npc command add heal /heal
/npc command add feed /feed
```
`
` заменяется на имя игрока, который кликнул.
## Создание диалогов с Denizen
Теперь самое интересное - создание квестов и диалогов!
### Пример простого диалога
Создайте файл в `plugins/Denizen/scripts/dialog.yml`:
```yaml
quest_npc_dialog:
type: assignment
actions:
on assignment:
- trigger name:click state:true
interact scripts:
- quest_dialog
quest_dialog:
type: interact
steps:
1:
click trigger:
script:
- narrate "Привет, !"
- narrate "Я торговец из соседнего города."
- narrate "Не хочешь помочь мне с одним делом?"
- flag player quest_started
- zap 2
2:
click trigger:
script:
- if :
- narrate "Принеси мне 10 пшеницы, и я награжу тебя!"
- else:
- narrate "Спасибо за помощь!"
```
### Привязка скрипта к NPC
После создания скрипта:
```
/ex reload
/npc assignment --set quest_npc_dialog
```
## Пример простого квеста
Создадим квест "Собрать 10 пшеницы":
```yaml
wheat_quest:
type: interact
steps:
offer_quest:
click trigger:
script:
- narrate "Мне нужно 10 пшеницы!"
- narrate "Принесешь?"
- flag player wheat_quest_active
- zap check_wheat
check_wheat:
click trigger:
script:
- if >= 10:
- narrate "Отлично! Вот твоя награда!"
- take item:wheat quantity:10
- give diamond quantity:5
- flag player wheat_quest_active:!
- zap offer_quest
- else:
- narrate "У тебя всего пшеницы."
- narrate "Нужно еще <[10].sub[]>!"
```
## Полезные команды
**Список всех NPC:**
```
/npc list
```
**Информация о NPC:**
```
/npc info
```
**Сделать NPC неуязвимым:**
```
/npc vulnerable false
```
**Изменить имя NPC:**
```
/npc name [новое_имя]
```
**Разрешить/запретить столкновения:**
```
/npc collidable false
```
## Частые проблемы
**1. NPC не реагирует на клики**
- Проверьте, что скрипт загружен: `/ex reload`
- Убедитесь, что назначен assignment: `/npc assignment`
**2. Скрипт выдает ошибки**
- Проверьте отступы в YAML (используйте пробелы, не табы!)
- Посмотрите ошибки в консоли сервера
**3. NPC исчезает после перезагрузки**
- Убедитесь, что сохранение включено в config.yml плагина Citizens
**4. Несколько игроков не могут одновременно взаимодействовать с NPC**
- Это нормально для некоторых типов скриптов
- Используйте флаги игроков вместо глобальных переменных
## Дополнительные возможности
Citizens поддерживает множество дополнений:
- **Sentinel** - боевые NPC и охранники
- **Citizens Trader** - торговля с NPC
- **BetonQuest** - расширенная система квестов
## Полезные ссылки
- [Wiki Citizens](https://wiki.citizensnpcs.co/)
- [Документация Denizen](https://one.denizenscript.com/)
- [Примеры скриптов Denizen](https://forum.denizenscript.com/viewforum.php?f=13)
- [YouTube туториалы по Denizen](https://www.youtube.com/results?search_query=denizen+minecraft+tutorial)
> С Citizens и Denizen вы можете создать уникальный игровой опыт на вашем сервере! От простых торговцев до сложных квестовых цепочек.
---
## Connection timed out - не могу подключиться
URL: https://docs.pterohost.com/ru/minecraft-connection-timed-out
Обновлено: 2026-01-04
Что делать если при подключении к серверу появляется ошибка Connection timed out
---
## Что означает ошибка "Connection timed out"?
Ошибка **"Connection timed out: no further information"** или просто **"Connection timed out"** возникает когда ваш клиент Minecraft не может установить соединение с сервером в течение определенного времени (обычно 30 секунд).
> Простыми словами: ваш компьютер пытается достучаться до сервера, но сервер не отвечает.
Это одна из самых частых ошибок подключения, и у нее может быть несколько причин.
## Причина #1: Сервер не запущен
Самая очевидная причина - сервер просто выключен или еще не запустился полностью.
### Как проверить:
**Если у вас есть доступ к панели управления:**
1. Зайдите в панель управления вашего хостинга
2. Проверьте статус сервера - должно быть "Online" или "Running"
3. Посмотрите логи - сервер должен показывать "Done!" или "Server started"
**Если вы администратор:**
- Проверьте консоль сервера
- Убедитесь, что все плагины загрузились без ошибок
- Дождитесь полной загрузки (может занять 1-3 минуты)
### Решение:
Просто запустите сервер и подождите его полной загрузки!
---
## Причина #2: Неправильный IP адрес или порт
Возможно вы используете неправильный адрес сервера.
### Типичные ошибки:
- `play.myserver.ru` вместо `myserver.ru`
- Забыли указать порт: `myserver.ru:25566`
- Лишний пробел: `myserver.ru :25565`
- HTTP префикс: `http://myserver.ru` (это неправильно!)
### Как проверить:
**Правильный формат адреса:**
```
IP:ПОРТ
```
Примеры:
- `play.hypixel.net` (порт 25565 по умолчанию)
- `mc.yourserver.ru:25566` (с нестандартным портом)
- `192.168.1.100:25565` (локальный IP)
### Решение:
1. Уточните правильный адрес у администратора сервера
2. Убедитесь что порт указан верно (если он не 25565)
3. Проверьте что нет лишних символов или пробелов
---
## Причина #3: Файрволл блокирует подключение
Файрволл (брандмауэр) на сервере или у вашего провайдера может блокировать соединение.
### Проверка файрволла на сервере
Если у вас Linux сервер, проверьте правила:
**UFW (Ubuntu/Debian):**
```bash
sudo ufw status
```
Должно быть:
```
25565/tcp ALLOW Anywhere
```
Если порта нет в списке:
```bash
sudo ufw allow 25565/tcp
sudo ufw reload
```
**Iptables:**
```bash
sudo iptables -L -n | grep 25565
```
Добавить правило:
```bash
sudo iptables -A INPUT -p tcp --dport 25565 -j ACCEPT
```
**CSF (ConfigServer Firewall):**
Отредактируйте `/etc/csf/csf.conf` и добавьте порт в `TCP_IN`:
```
TCP_IN = "22,25565,25566"
```
Затем:
```bash
csf -r
```
### Проверка на стороне клиента
**Windows Firewall:**
1. Панель управления → Брандмауэр Windows
2. Дополнительные параметры → Правила для исходящих подключений
3. Создать правило → Программа → Выбрать javaw.exe (Minecraft)
4. Разрешить подключение
**Антивирус:**
Некоторые антивирусы блокируют игровые соединения. Попробуйте временно отключить.
---
## Причина #4: Проблемы с интернетом или провайдером
Иногда проблема на вашей стороне или на стороне провайдера.
### Диагностика с помощью ping
Откройте командную строку (Windows: Win+R → cmd) и введите:
```bash
ping play.hypixel.net
```
**Если пакеты доходят:**
```
Ответ от 172.65.220.67: число байт=32 время=45мс TTL=54
```
Интернет работает, проблема в другом.
**Если "Превышен интервал ожидания":**
```
Превышен интервал ожидания для запроса.
```
Проблема с интернет-подключением или провайдер блокирует.
### Проверка порта с помощью telnet
```bash
telnet play.hypixel.net 25565
```
Если подключается - порт открыт.
Если "Connection failed" - порт закрыт или заблокирован.
> В Windows может потребоваться включить Telnet: Панель управления → Программы → Включение компонентов Windows → Telnet Client
### Решение:
1. Проверьте стабильность интернета
2. Попробуйте другую сеть (мобильный интернет, VPN)
3. Свяжитесь с провайдером - возможно они блокируют игровые порты
---
## Причина #5: DDoS защита или Cloudflare
Некоторые хостинги используют защиту от DDoS, которая может блокировать соединения.
### Признаки:
- Подключается с одних сетей, с других нет
- Работает через VPN, без VPN не работает
- В браузере сайт открывается, в игре не подключается
### Решение:
Обратитесь к администратору сервера. Возможно нужно:
- Добавить ваш IP в белый список
- Настроить исключения в DDoS защите
- Проверить настройки Cloudflare (режим "Under Attack" может блокировать)
---
## Пошаговая диагностика
Используйте этот чек-лист для поиска проблемы:
- [ ] Сервер запущен и полностью загружен
- [ ] IP адрес и порт указаны правильно
- [ ] Файрволл на сервере разрешает порт (25565 или другой)
- [ ] Firewall на компьютере не блокирует Minecraft
- [ ] Ping до сервера проходит успешно
- [ ] Порт открыт (проверено через telnet или онлайн-сервисы)
- [ ] Провайдер не блокирует игровые порты
- [ ] DDoS защита настроена правильно
## Онлайн инструменты для проверки
**Проверка доступности порта:**
- [CanYouSeeMe.org](https://canyouseeme.org/) - проверка открытости порта
- [MxToolbox Port Scanner](https://mxtoolbox.com/PortScan.aspx)
**Проверка статуса сервера:**
- [Minecraft Server Status](https://mcsrvstat.us/)
- [MinecraftPocket-Servers](https://minecraft-server-list.com/status/)
## Что НЕ поможет
❌ Переустановка Minecraft - проблема в сети, не в клиенте
❌ Очистка кеша DNS - обычно не связано
❌ Смена версии Minecraft - если версии совпадают, это не поможет
❌ Перезагрузка компьютера - если не связано с сетью
---
## Всё еще не работает?
Если вы перепробовали всё вышеперечисленное:
1. **Свяжитесь с поддержкой хостинга** - они могут проверить со своей стороны
2. **Попросите друга проверить** - если у него работает, проблема на вашей стороне
3. **Проверьте форумы хостинга** - возможно известная проблема
4. **Попробуйте VPN** - если поможет, значит провайдер блокирует
> Помните: "Connection timed out" почти всегда означает проблему с сетью или файрволлом, а не с самим сервером Minecraft!
---
## Connection refused - отказано в подключении
URL: https://docs.pterohost.com/ru/minecraft-connection-refused
Обновлено: 2026-01-04
Исправление ошибки Connection refused при подключении к Minecraft серверу
---
## Что означает "Connection refused"?
Ошибка **"Connection refused"** (Отказано в подключении) возникает когда ваш клиент Minecraft достучался до сервера, но сервер активно отклонил соединение. Это означает, что проблема НЕ в сети, а в настройках самого сервера.
## Разница между "Connection refused" и "Connection timed out"
Это важно понимать!
| Connection refused | Connection timed out |
|-------------------|---------------------|
| Сервер отказал в соединении | Сервер не ответил вообще |
| Порт закрыт или занят | Файрволл блокирует |
| Проблема в server.properties | Проблема в сети/файрволле |
| Сервер работает, но не слушает порт | Сервер выключен или недоступен |
> Connection refused = "Я тебя слышу, но не буду с тобой разговаривать"
> Connection timed out = "Я тебя вообще не слышу"
---
## Причина #1: Порт не указан в server.properties
Minecraft сервер должен слушать определенный порт. Если порт настроен неправильно, соединение будет отклонено.
### Проверка server.properties
Откройте файл `server.properties` в корне сервера и найдите:
```properties
server-port=25565
```
**Типичные ошибки:**
- Порт указан неправильно: `server-port=0` или `server-port=`
- Порт совпадает с другим сервисом
- Указан порт, который уже используется
### Решение:
1. Убедитесь что указан правильный порт (обычно 25565)
2. Если используете нестандартный порт, убедитесь что он свободен
3. Сохраните файл и **полностью перезапустите** сервер
```properties
# Правильная настройка для порта по умолчанию
server-port=25565
# Или для нестандартного порта
server-port=25566
```
> Важно! После изменения server.properties нужно полностью перезапустить сервер, команда /reload не поможет!
---
## Причина #2: Неправильный server-ip (bind-ip)
Параметр `server-ip` определяет на каком IP адресе сервер будет принимать подключения.
### Проверка настройки
В `server.properties` найдите:
```properties
server-ip=
```
**Что означают разные значения:**
| Значение | Что это значит |
|----------|---------------|
| `server-ip=` (пусто) | Слушать на всех интерфейсах (РЕКОМЕНДУЕТСЯ) |
| `server-ip=127.0.0.1` | Только локальные подключения (localhost) |
| `server-ip=192.168.1.100` | Только с конкретного IP |
### Решение:
**Для обычного хостинга:**
```properties
server-ip=
```
Оставьте пустым!
**Для локального сервера (если играете на том же ПК):**
```properties
server-ip=0.0.0.0
```
или
```properties
server-ip=
```
**Если указан 127.0.0.1:**
Это означает что подключиться можно только с того же компьютера! Измените на пустое значение.
---
## Причина #3: Порт занят другим процессом
Два процесса не могут использовать один порт одновременно.
### Проверка открытых портов
**Linux:**
```bash
sudo netstat -tulpn | grep :25565
```
или
```bash
sudo ss -tulpn | grep :25565
```
**Пример вывода:**
```
tcp 0 0 0.0.0.0:25565 0.0.0.0:* LISTEN 12345/java
```
Если вы видите другой процесс (не java), он занял порт!
**Windows:**
```cmd
netstat -ano | findstr :25565
```
Затем найдите процесс по PID:
```cmd
tasklist | findstr "[PID]"
```
### Решение:
**Вариант 1: Остановить конфликтующий процесс**
Linux:
```bash
sudo kill -9 [PID]
```
Windows:
```cmd
taskkill /PID [PID] /F
```
**Вариант 2: Сменить порт сервера**
В `server.properties`:
```properties
server-port=25566
```
И подключайтесь через `yourserver.ru:25566`
---
## Причина #4: Файрволл блокирует входящие подключения
Даже если порт открыт, файрволл может блокировать ВХОДЯЩИЕ соединения.
### Проверка и настройка UFW (Ubuntu/Debian)
```bash
sudo ufw status numbered
```
Должна быть строка:
```
[ 1] 25565/tcp ALLOW IN Anywhere
```
Если нет, добавьте:
```bash
sudo ufw allow 25565/tcp
sudo ufw reload
```
### Проверка iptables
```bash
sudo iptables -L INPUT -n --line-numbers | grep 25565
```
Если пусто, добавьте правило:
```bash
sudo iptables -I INPUT -p tcp --dport 25565 -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4
```
### CSF (ConfigServer Firewall)
Отредактируйте `/etc/csf/csf.conf`:
Найдите строку `TCP_IN` и добавьте порт:
```
TCP_IN = "22,25565,25566,80,443"
```
Примените изменения:
```bash
sudo csf -r
```
### Hetzner Cloud Firewall
Если используете Hetzner:
1. Зайдите в Cloud Console
2. Firewalls → Выберите ваш firewall
3. Add Rule:
- Protocol: TCP
- Port: 25565
- Source: Any IPv4, Any IPv6
4. Apply changes
---
## Причина #5: Режим офлайн и проблемы с аутентификацией
Иногда проблема в настройках онлайн-режима.
### Проверка настроек
В `server.properties`:
```properties
online-mode=true
```
**Значения:**
- `online-mode=true` - только лицензионные клиенты (проверка через Mojang)
- `online-mode=false` - пиратские клиенты тоже могут зайти
### Решение:
Если у вас пиратский сервер:
```properties
online-mode=false
enforce-secure-profile=false
```
Если лицензионный:
```properties
online-mode=true
```
> Внимание! Если online-mode=false, ОБЯЗАТЕЛЬНО установите плагин авторизации типа [OpeNLogin](https://www.spigotmc.org/resources/openlogin.57272/) для безопасности!
---
## Пошаговая диагностика
Используйте этот чек-лист:
- [ ] В server.properties указан правильный порт (обычно 25565)
- [ ] server-ip пустой или установлен в 0.0.0.0
- [ ] Порт не занят другим процессом (проверено через netstat)
- [ ] Файрволл разрешает входящие соединения на порт
- [ ] Сервер полностью перезапущен после изменений
- [ ] online-mode соответствует типу сервера (лиц/пират)
- [ ] В логах нет ошибок типа "Address already in use"
---
## Примеры правильной конфигурации
### Стандартный сервер (лицензия)
```properties
server-ip=
server-port=25565
online-mode=true
```
### Пиратский сервер
```properties
server-ip=
server-port=25565
online-mode=false
enforce-secure-profile=false
```
### Несколько серверов на одной машине
```properties
# Первый сервер
server-ip=
server-port=25565
# Второй сервер
server-ip=
server-port=25566
# Третий сервер
server-ip=
server-port=25567
```
---
## Проверка через логи
Откройте `logs/latest.log` и ищите:
**Если порт занят:**
```
[ERROR]: **** FAILED TO BIND TO PORT!
[ERROR]: The exception was: java.net.BindException: Address already in use
```
**Решение:** Смените порт или остановите конфликтующий процесс.
**Если всё запустилось нормально:**
```
[INFO]: Done (3.5s)! For help, type "help"
```
---
## Тестирование подключения
### С того же сервера (localhost)
```bash
telnet localhost 25565
```
Если подключается - сервер работает, проблема в файрволле.
### С другого компьютера
```bash
telnet YOUR_SERVER_IP 25565
```
Если не подключается - файрволл блокирует.
---
## Всё еще не работает?
1. **Проверьте логи хостинга** - возможно там есть дополнительная информация
2. **Обратитесь в поддержку** - покажите им error из логов
3. **Попробуйте стандартный порт 25565** - некоторые хостинги ограничивают другие порты
4. **Проверьте квоту портов** - на некоторых хостингах есть лимит открытых портов
> Connection refused почти всегда решается правильной настройкой server.properties и файрволла! {.is-success}
---
## Авторестарт Minecraft-сервера по расписанию
URL: https://docs.pterohost.com/ru/minecraft-auto-restart-server
Обновлено: 2026-06-05
Как настроить авторестарт Minecraft-сервера: плагины, cron, скрипты, предупреждения игрокам и корректное сохранение мира.
---
> **Кратко:** Авторестарт решает проблему утечек памяти и накопленных лагов без ручного вмешательства. Самый простой путь - плагин AutoRestart или расписание в Pterodactyl-панели с командами /save-all и /stop.
# Авторестарт Minecraft-сервера по расписанию
**Любой Minecraft-сервер со временем деградирует: плагины накапливают утечки памяти, chunk-кэш разрастается, entity-спам засоряет память - и через 12-24 часа непрерывной работы TPS падает с 20 до 15 и ниже.** Регулярный перезапуск по расписанию - стандартная практика для серверов с 2016 года, и в 2026 году это по-прежнему один из самых дешёвых способов поддерживать стабильную производительность. Грамотно настроенный авторестарт предупреждает игроков заранее, корректно сохраняет мир и поднимает сервер обратно без участия администратора. В этой статье разберём все актуальные способы: плагины, cron-расписание через панель и bash-скрипт с автоматическим перезапуском процесса.
> **Pterohost** - игровой хостинг Minecraft с NVMe-дисками, защитой от DDoS и поддержкой 24/7. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-auto-restart-server)
## Зачем вообще нужен авторестарт
Minecraft-сервер - это JVM-процесс, который работает непрерывно. Со временем в нём накапливается несколько типичных проблем:
**Утечки памяти в плагинах.** Даже популярные плагины не всегда идеально освобождают память. Каждый новый игрок, загруженный чанк или сработавший ивент может оставлять в heap мусор, который garbage collector не успевает собрать. Через 12-24 часа работы heap-использование ползёт вверх, и сервер начинает тормозить на GC-паузах.
**Накопленный entity-спам.** Мобы, дропнутые предметы, стрелы, частицы - всё это копится в памяти. На активных серверах через несколько часов игры entity-count может вырасти в 3-5 раз по сравнению с чистым стартом.
**Фрагментация chunk-кэша.** Загруженные и выгруженные чанки оставляют фрагменты в памяти. JVM не возвращает память ОС немедленно, и через сутки непрерывной работы сервер может занимать в 1.5-2 раза больше RAM, чем сразу после старта.
**Накопленные временные файлы и логи.** Логирование, временные данные плагинов, кэши - всё это растёт. Перезапуск ротирует логи и очищает временные состояния.
Практический ориентир: сервер на 20-30 игроков с 30-50 плагинами оптимально рестартовать каждые 6-8 часов. Небольшой сервер на 5-10 игроков с минимальным набором плагинов справится с рестартом раз в 12-24 часа.
## Способ 1 - Плагин AutoRestart (Paper/Spigot)
**AutoRestart** - один из самых популярных плагинов для автоматического перезапуска, стабильно поддерживается в 2026 году для Paper 1.20+ и 1.21+. Устанавливается как обычный плагин в папку `plugins/`.
### Установка
Скачай актуальную версию с Hangar (официальный репозиторий Paper-проекта) или Modrinth:
```
https://hangar.papermc.io/PaperMC/AutoRestart
```
Положи JAR в `plugins/` и перезапусти сервер. Плагин создаст конфиг `plugins/AutoRestart/config.yml`.
### Основные параметры конфига
```yaml
# plugins/AutoRestart/config.yml
# Время рестарта в формате HH:MM (24-часовой)
restart-times:
- "04:00"
- "10:00"
- "16:00"
- "22:00"
# Предупреждения перед рестартом (в секундах)
warnings:
- 900 # 15 минут
- 600 # 10 минут
- 300 # 5 минут
- 180 # 3 минуты
- 60 # 1 минута
- 30 # 30 секунд
- 10 # 10 секунд
- 5
- 4
- 3
- 2
- 1
# Сообщение игрокам
broadcast-message: "&c[Сервер] &fАвторестарт через &c%time%&f. Сохраните прогресс!"
# Команда для остановки (рекомендуется restart, а не stop)
restart-command: "restart"
# Сохранить мир перед рестартом
save-before-restart: true
```
После редактирования конфига выполни `/autorestart reload` в консоли или перезапусти сервер.
### Команды плагина
| Команда | Описание |
|---|---|
| `/autorestart reload` | Перезагрузить конфиг |
| `/autorestart now` | Запустить рестарт немедленно |
| `/autorestart cancel` | Отменить текущий обратный отсчёт |
| `/autorestart status` | Показать время следующего рестарта |
| `/autorestart in 30m` | Запланировать рестарт через 30 минут |
## Способ 2 - Стандартная команда /restart (Bukkit API)
Начиная с Bukkit 1.8, в API есть встроенная команда `/restart`. Она работает корректно только если в `spigot.yml` (или `paper-global.yml` для Paper) настроен restart-script:
```yaml
# spigot.yml
settings:
restart-on-crash: true
restart-script: ./start.sh
```
Файл `start.sh` должен лежать рядом с `server.jar` и содержать команду запуска:
```bash
#!/bin/bash
java -Xms2G -Xmx4G -jar server.jar --nogui
```
Дай скрипту права на исполнение:
```bash
chmod +x start.sh
```
После этого команда `/restart` в консоли корректно остановит сервер и запустит его заново через `start.sh`. Это же используют все плагины, которые вызывают рестарт через Bukkit API.
## Способ 3 - Bash-скрипт с циклом while
Если хостинг предоставляет доступ к оболочке (VPS, выделенный сервер), можно обойтись без плагинов - написать скрипт-обёртку, который автоматически поднимает сервер после любого завершения процесса.
### Базовый скрипт start.sh
```bash
#!/bin/bash
# Рабочая папка сервера
SERVER_DIR="/home/minecraft/server"
JAR="server.jar"
JAVA_OPTS="-Xms2G -Xmx4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled"
cd "$SERVER_DIR" || exit 1
echo "=== Minecraft Server Wrapper ==="
echo "Старт: $(date)"
while true; do
echo "[$(date)] Запуск сервера..."
java $JAVA_OPTS -jar "$JAR" --nogui
EXIT_CODE=$?
echo "[$(date)] Сервер завершился с кодом $EXIT_CODE"
# Если сервер завершился с кодом 0 (нормальная остановка через /stop)
# - выходим из цикла, не перезапускаем
if [ $EXIT_CODE -eq 0 ]; then
echo "Нормальная остановка. Не перезапускаем."
break
fi
echo "Перезапуск через 10 секунд..."
sleep 10
done
```
Этот скрипт перезапускает сервер при крашах (код завершения != 0), но не перезапускает при штатной остановке через `/stop`. Это безопасное поведение.
### Скрипт с плановым рестартом по расписанию
Для рестарта по времени без плагинов используем связку: скрипт-обёртка + cron, который посылает сигнал SIGTERM процессу Java.
Сначала создадим скрипт для корректной остановки через RCON или через `screen`/`tmux`:
```bash
#!/bin/bash
# restart-minecraft.sh - вызывается из cron
# Отправить команду save-all и stop через screen-сессию
SCREEN_NAME="minecraft"
# Сохранить мир
screen -S "$SCREEN_NAME" -X stuff "say [Сервер] Рестарт через 60 секунд. Сохраните прогресс!$(printf '\r')"
sleep 55
screen -S "$SCREEN_NAME" -X stuff "say [Сервер] Рестарт через 5 секунд!$(printf '\r')"
sleep 5
screen -S "$SCREEN_NAME" -X stuff "save-all$(printf '\r')"
sleep 3
screen -S "$SCREEN_NAME" -X stuff "stop$(printf '\r')"
echo "Команда stop отправлена в $(date)"
```
Добавь в crontab (команда `crontab -e`):
```
# Рестарт каждые 6 часов: в 00:00, 06:00, 12:00, 18:00
0 0,6,12,18 * * * /home/minecraft/restart-minecraft.sh >> /home/minecraft/restart.log 2>&1
```
Скрипт-обёртка `start.sh` с циклом `while true` при этом автоматически поднимет сервер после `stop`.
## Способ 4 - Расписание через панель Pterodactyl
Если сервер работает на Pterodactyl (как у Pterohost), авторестарт настраивается прямо в веб-интерфейсе без доступа к консоли Linux.
### Создание расписания
1. Открой панель управления сервером.
2. Перейди в раздел **Schedules** (Расписания).
3. Нажми **Create Schedule**.
4. Задай имя, например `Auto Restart 6h`.
5. Укажи cron-выражение. Примеры:
| Расписание | Cron-выражение |
|---|---|
| Каждые 6 часов | `0 0,6,12,18 * * *` |
| Каждые 12 часов | `0 0,12 * * *` |
| Раз в сутки в 04:00 | `0 4 * * *` |
| Каждые 4 часа | `0 */4 * * *` |
6. Сохрани расписание.
### Добавление задач в расписание
После создания расписания добавь задачи в нужном порядке:
**Задача 1 - предупреждение игрокам:**
- Action: **Send Command**
- Payload: `say [Сервер] Авторестарт через 5 минут. Сохраните прогресс!`
- Time Offset: 0 секунд
**Задача 2 - предупреждение за 1 минуту:**
- Action: **Send Command**
- Payload: `say [Сервер] Рестарт через 1 минуту!`
- Time Offset: 240 секунд (4 минуты после задачи 1)
**Задача 3 - сохранение мира:**
- Action: **Send Command**
- Payload: `save-all`
- Time Offset: 300 секунд (ещё через 1 минуту)
**Задача 4 - остановка сервера:**
- Action: **Send Command**
- Payload: `stop`
- Time Offset: 5 секунд
**Задача 5 - запуск сервера:**
- Action: **Power Action** -> **Start**
- Time Offset: 15 секунд
Pterodactyl сам выполнит все задачи по очереди, а встроенный watchdog поднимет сервер после `stop`.
## Корректное сохранение мира перед рестартом
Самая распространённая ошибка - убить процесс Java через `kill -9` или Power Kill без предварительного сохранения. Это гарантированно приводит к потере данных за последние несколько минут и возможной порче region-файлов.
**Правильная последовательность остановки:**
```
1. say [Сервер] Рестарт через N минут
2. ... (ждём)
3. save-all # принудительное сохранение всех чанков
4. (ждём 3-5 секунд, пока flush завершится)
5. stop # корректная остановка через Bukkit shutdown hook
```
Команда `save-all flush` (доступна в Paper) блокирует выполнение до полной записи на диск:
```
save-all flush
```
Это особенно важно на серверах с `save-interval` > 6000 тиков (стандартное значение) или с отключённым автосохранением (`save-off`).
Дополнительно рекомендуется включить `sync-chunk-writes: true` в `paper-world.yml` - это гарантирует синхронную запись чанков:
```yaml
# paper-world.yml (глобальные настройки)
chunks:
sync-chunk-writes: true
```
## Предупреждения игрокам - лучшие практики
Никто не любит, когда сервер внезапно падает без предупреждения. Грамотные предупреждения снижают негатив и дают игрокам время завершить дела:
**Рекомендуемая схема предупреждений:**
| Время до рестарта | Сообщение |
|---|---|
| 15 минут | Информационное - "сервер перезапустится через 15 минут" |
| 10 минут | Напоминание - особенно важно для игроков в PvP/рейдах |
| 5 минут | Призыв сохраниться, выйти из боёв |
| 3 минуты | Срочное предупреждение |
| 1 минута | Финальное - "немедленно завершите дела" |
| 30 секунд | Обратный отсчёт |
| 10, 5, 4, 3, 2, 1 | Countdown |
Используй цветовой код для видимости. Пример сообщения для `config.yml` плагина:
```yaml
messages:
countdown: "&c&l[!] &r&fСервер перезапустится через &c&l%time%&r&f. Завершите дела!"
restarting: "&4&l>>> СЕРВЕР ПЕРЕЗАПУСКАЕТСЯ <<<&r"
```
На серверах с ActionBar или Title-плагинами можно дополнительно выводить таймер в title-экране - это гораздо заметнее, чем текст в чате.
## Авторестарт при краше - watchdog и supervisor
Плановый рестарт по расписанию - это одна задача. Но сервер может упасть внезапно: OOM-killer завершил процесс, плагин вызвал segfault, JVM нарвалась на ошибку. Здесь нужен watchdog - инструмент, который следит за процессом и поднимает его при падении.
### Systemd (для VPS и dedicated)
Создай unit-файл `/etc/systemd/system/minecraft.service`:
```ini
[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=minecraft
WorkingDirectory=/home/minecraft/server
ExecStart=/bin/bash /home/minecraft/start.sh
Restart=on-failure
RestartSec=10s
# Не перезапускать при нормальном завершении (код 0)
SuccessExitStatus=0
[Install]
WantedBy=multi-user.target
```
Активируй и запусти:
```bash
systemctl daemon-reload
systemctl enable minecraft
systemctl start minecraft
```
При крашах systemd автоматически перезапустит сервер через 10 секунд. Нормальная остановка через `/stop` (код 0) перезапуск не вызовет.
### Встроенный watchdog Paper
Paper имеет встроенный watchdog, который перезапускает сервер при зависании (freeze). Настройка в `paper-global.yml` (Paper 1.19+):
```yaml
# paper-global.yml
watchdog:
early-warning-every: 5000 # предупреждение каждые 5 сек при зависании
early-warning-delay: 10000 # начинать предупреждать через 10 сек зависания
```
А в `spigot.yml` убедись, что включён timeout-kill:
```yaml
# spigot.yml
settings:
timeout-time: 60 # через 60 сек зависания - убить процесс
restart-on-crash: true
restart-script: ./start.sh
```
## Типичные ошибки при настройке авторестарта
**Ошибка 1: kill -9 без сохранения.** Никогда не убивай Java-процесс через SIGKILL напрямую. Всегда отправляй `save-all` перед остановкой.
**Ошибка 2: слишком частый рестарт.** Рестарт каждые 30-60 минут раздражает игроков и не даёт сыграть нормальную сессию. Минимальный адекватный интервал - 3-4 часа.
**Ошибка 3: рестарт в пиковые часы.** Планируй рестарт на ночные часы (01:00-06:00 по московскому времени) или ранние утренние. Проверь по статистике онлайна, когда на сервере меньше всего игроков.
**Ошибка 4: нет скрипта перезапуска.** Если `restart-script` не настроен в `spigot.yml`, команда `/restart` просто остановит сервер и не поднимет его обратно.
**Ошибка 5: рестарт через /reload.** Команда `/reload` не является заменой рестарту - она перезагружает плагины, но не очищает JVM heap. Утечки памяти при этом не устраняются. Начиная с Paper 1.16, `/reload` и вовсе выводит предупреждение о нестабильности.
## Связанные материалы
Для полноценного обслуживания сервера авторестарт работает в связке с резервными копиями и оптимизацией. Читай подробнее:
- [Резервное копирование Minecraft-сервера](/ru/minecraft-server-backup) - как настроить автобэкапы перед рестартом, чтобы всегда иметь актуальную копию мира.
- [Оптимизация Minecraft-сервера](/ru/minecraft-server-optimization) - что ещё можно сделать для снижения лагов помимо регулярных рестартов.
- [Устранение лагов Minecraft-сервера](/ru/minecraft-server-lags-fix) - диагностика и исправление причин TPS-дропа, которые рестарт не решает.
## Заключение
Авторестарт - это простая и эффективная мера поддержки стабильности Minecraft-сервера. Для Paper/Spigot-серверов оптимальный путь - плагин AutoRestart с настроенными предупреждениями и корректной остановкой через `save-all` + `stop`. На Pterodactyl всё это настраивается через раздел Schedules без единой строки кода. Ключевые правила: рестартуй каждые 6-12 часов, предупреждай игроков за 15 минут, всегда выполняй `save-all` перед остановкой и убедись, что скрипт `start.sh` настроен для автоподъёма. Добавь watchdog через systemd или встроенный механизм Paper - и сервер будет автоматически восстанавливаться даже при неожиданных падениях.
> **Pterohost** - надёжный хостинг Minecraft с NVMe SSD, защитой от DDoS-атак и поддержкой 24/7 - настрой авторестарт прямо через панель без лишних команд. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-auto-restart-server)
---
## Анархия-сервер Minecraft: что это и как создать
URL: https://docs.pterohost.com/ru/minecraft-anarchy-server
Обновлено: 2026-06-09
Полный гайд по созданию анархия-сервера Minecraft в 2026 году: ядро, настройки, защита от лагмашин и дюпов, пример 2b2t.
---
> **Кратко:** Анархия-сервер - это Minecraft без правил, где разрешено всё: гриферство, кража, читы на части серверов. Для запуска нужны Paper/Purpur с настроенными лимитами сущностей и защитой от лагмашин. Ниже - полный гайд от ядра до настроек безопасности.
# Анархия-сервер Minecraft: что это и как создать
**Анархия-сервер в Minecraft - один из самых специфических форматов мультиплеера: никаких правил, никакого привата, никаких варнов за гриферство. Игроки выживают, воюют и строят без вмешательства администрации в игровой процесс. Этот формат существует с ранних дней Minecraft и до сих пор популярен в 2026 году - достаточно посмотреть на очередь из тысяч человек на 2b2t. Запустить свою анархию проще, чем кажется, но есть технические нюансы, которые превращают хаос в работающий сервер, а не в лагающий краш-тест.**
> **Pterohost** - игровой хостинг с NVMe-дисками, DDoS-защитой и поддержкой 24/7: идеально для анархия-серверов, где стабильность важна как никогда. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-anarchy-server)
## Концепция анархии: что разрешено и что запрещено
Анархия-сервер строится на одном принципе - минимальное вмешательство администрации. Но "анархия" не означает полное отсутствие технических ограничений.
**Что разрешено на анархии:**
- Гриферство - разрушение чужих построек
- Кража предметов из сундуков без лока
- PvP без согласия жертвы
- Троллинг, провокации, токсичное общение
- Использование тактик выживания любыми методами
**Что обычно всё равно ограничивают технически:**
- Лагмашины и редстоун-конструкции, роняющие TPS ниже 10
- Эксплойты, крашащие сервер (chunk ban, специфические паккеты)
- Дюпы предметов (на выбор администратора: часть разрешает, часть нет)
- X-ray-читы (опционально, на усмотрение владельца)
Главное отличие от обычного сервера - администрация не разбирает жалобы "меня загрифили" или "украли алмазы". Если тебя обокрали - это честная игра.
## Пример 2b2t: зачем он существует
2builders2tools (2b2t.org) - сервер, запущенный в декабре 2010 года. Он работает без вайпов и с минимальными правилами уже 15 лет. Карта давно превышает несколько терабайт, и большинство активных зон находятся за миллионы блоков от спавна.
Что делает 2b2t особенным:
- Нет вайпов - история сервера хранится в ландшафте
- Очередь ожидания для обычных игроков достигает 1000+ человек
- Сформировались группировки с историей, политикой и союзами
- Часть дюпов исторически разрешена (TNT-дюп, конкретные механики)
Сделать "свой 2b2t" - реалистичная цель, но нужно понимать: 15 лет истории не создаётся за месяц. Технически сервер реализовать можно, а вот сообщество придётся строить годами.
## Выбор ядра для анархии
Ядро - критический выбор для анархии. Vanilla даёт "чистый" опыт, но совершенно не справляется с нагрузкой от активных игроков.
### Paper - основной выбор
[Paper](https://papermc.io/) - форк Spigot с агрессивными оптимизациями производительности. Для анархии подходит лучше всего:
- Настройка лимитов сущностей на чанк
- Контроль поведения взрывов и TNT
- Отдельные настройки для редстоуна
- Активная поддержка и патчи безопасности
```bash
# Скачать Paper для Minecraft 1.21.x
wget https://api.papermc.io/v2/projects/paper/versions/1.21.4/builds/latest/downloads/paper-1.21.4-latest.jar -O server.jar
# Запуск с 6 ГБ RAM
java -Xms2G -Xmx6G -XX:+UseG1GC -XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 -jar server.jar nogui
```
### Purpur - расширенный Paper
[Purpur](https://purpurmc.org/) - форк Paper с дополнительными настройками. Добавляет конфиг `purpur.yml` с опциями, которых нет в Paper:
- Управление поведением конкретных мобов
- Дополнительные игровые механики
- Настройка лимитов на отдельные блоки
Для анархии Purpur даёт чуть больше контроля над краевыми случаями.
### Fabric + модули (для продвинутых)
Fabric-сервер с модами типа Lithium и Carpet позволяет настроить поведение дюпов очень точно. Carpet-мод позволяет включать/отключать конкретные технические эксплойты командами. Это вариант для опытных администраторов, которые хотят контролировать, какие именно механики разрешены.
```
# Carpet-команды для управления механиками (Fabric + Carpet mod)
/carpet lagFreeSpawning true # снижение нагрузки спавна
/carpet tntDupingMode true # разрешить TNT-дюп
/carpet carpetRuleName value # другие правила по документации
```
## Настройки server.properties для анархии
Базовые настройки сервера отличаются от обычного выживания:
```properties
# server.properties
# Убираем whitelist - анархия открыта для всех
white-list=false
enforce-whitelist=false
# PvP всегда включён
pvp=true
# Сложность - только хард, иначе не интересно
difficulty=hard
# Спавн мобов
spawn-monsters=true
spawn-animals=true
# Онлайн-режим - обычно true (лицензионные клиенты)
# false = кракнутые клиенты (выбор владельца)
online-mode=true
# Размер мира - большой для анархии
level-size=29999984
# Расстояние прогрузки
view-distance=8
simulation-distance=6
# Без спавн-протекции или минимальная
spawn-protection=0
# Максимум игроков
max-players=100
# Отключить Command Blocks? На анархии обычно нет
enable-command-block=false
```
## Настройки paper.yml: лимиты и оптимизация
Это самый важный файл для производительности анархия-сервера. После запуска он появится в корне сервера (Paper 1.19+: конфиги разделены на `config/paper-global.yml` и `config/paper-world-defaults.yml`).
### Лимиты сущностей
```yaml
# config/paper-world-defaults.yml (Paper 1.19+)
entities:
spawning:
# Лимиты на чанк - критично для анархии
monster-spawn-max-light-level: 0
per-player-mob-spawns: true
max-entity-collisions: 2
# Для Paper 1.18 и старше - paper.yml
max-entity-cramming: 24
```
### Контроль редстоуна и взрывов
```yaml
# paper-world-defaults.yml
misc:
# Ограничение обновлений редстоуна
redstone-implementation: ALTERNATE_CURRENT
environment:
# Ограничение взрывов - важно против TNT-спама
max-tnt-per-tick: 100
# Контроль огня
fire-tick-delay: 30
```
### Лимиты чанков
```yaml
chunk-loading-advanced:
auto-config-send-distance: true
player-max-concurrent-loads: 8
global-max-concurrent-loads: 100
```
## Защита от лагмашин
Лагмашина - главная угроза для анархии. Это редстоун-конструкция или ферма, намеренно генерирующая тысячи сущностей или операций, роняя TPS до нуля.
### Spark - профилировщик производительности
Плагин [Spark](https://spark.lucko.me/) - незаменимый инструмент. Он позволяет найти, что именно грузит сервер:
```bash
# Установка: скачать spark.jar в папку plugins/
# Команды в консоли:
/spark profiler start # начать профилирование
/spark profiler stop # остановить и получить отчёт
/spark tps # текущий TPS
/spark health # общее состояние сервера
```
Spark даёт ссылку на отчёт в браузере, где видно, какие чанки, плагины или сущности потребляют больше всего ресурсов.
### ClearLagg - принудительная очистка
[ClearLagg](https://www.spigotmc.org/resources/clearlagg.68271/) автоматически удаляет лишние сущности:
```yaml
# ClearLagg config.yml (основные параметры)
auto-remove:
enabled: true
# Интервал очистки в секундах
interval: 300
# Предупреждения до очистки
warnings:
- at: 60
broadcast: true
message: "Очистка сущностей через 60 секунд"
- at: 30
message: "Очистка сущностей через 30 секунд"
entity-limit:
enabled: true
# Лимит сущностей на игрока
per-player-limit: 200
world-entity-limiter:
enabled: true
per-world:
world:
ITEM: 150
ARROW: 40
EXP_ORB: 50
```
### Ручная проверка нарушителей
Если TPS упал резко - сначала найдите виновника:
```bash
# В консоли Paper/Purpur
/tps # текущий TPS
/paper mspt # миллисекунд на тик
# Найти чанки с высокой нагрузкой (Spark)
/spark profiler --thread * # все потоки
# Посмотреть, что в чанке
/paper chunkinfo # информация о текущем чанке
```
## Управление дюпами: разрешать или запрещать
На анархии вопрос дюпов - философский. Часть серверов их запрещает технически, часть разрешает как часть "анархии". Вот основные механики и как ими управлять:
### TNT-дюп
Классический дюп, основанный на механике двойных поршней. В Paper он обычно отключён по умолчанию.
```yaml
# paper-world-defaults.yml
mechanics:
# Включить TNT-дюп (если хотите разрешить)
allow-piston-duplication: true
```
### Ковровый дюп
Дюп с коврами и поршнями. Контролируется той же настройкой `allow-piston-duplication`.
### Дюп рельсов
В некоторых версиях работает через powered rails и поршни. Патчится автоматически в новых версиях Paper.
### Позиция администратора
Рекомендация для новых анархия-серверов: **разрешить TNT-дюп, запретить дюпы, дающие бесконечные ресурсы за секунды** (например, инвентарные дюпы через читы). Это сохраняет дух анархии, но не убивает экономику полностью.
## Защита от крэш-эксплойтов
В отличие от лагмашин, крэш-эксплойты вызывают аварийную остановку сервера. Это серьёзнее, потому что сервер падает полностью.
### Известные типы крэш-атак
1. **Chunk ban** - отправка пакета, вызывающего загрузку невалидного чанка. Патчится в современных версиях Paper автоматически.
2. **Book ban** - книги с невалидными символами, крашащие клиент при открытии. Патч в Paper 1.16+.
3. **Packet flood** - флуд пакетами от взломанного клиента. Защищает Paper's anti-packet-flood настройки.
### Конфигурация anti-crash в paper-global.yml
```yaml
# config/paper-global.yml
packet-limiter:
# Лимит пакетов от одного клиента
max-packet-rate: 500
# Интервал проверки (мс)
interval: 1000
# Действие при превышении
kick-message: "Too many packets"
overrides:
ServerboundPlaceRecipePacket:
action: DROP
max-packet-rate: 20
```
### Плагин AntiCrash
[AntiCrash](https://www.spigotmc.org/resources/anticrash.102791/) специализируется на защите от известных крэш-эксплойтов. Он патчит уязвимости, которые ещё не исправлены в Paper:
```yaml
# AntiCrash config.yml
protection:
book-exploit: true
invalid-entity-data: true
chunk-ban: true
invalid-packet: true
```
## Спавн и стартовые условия
На анархии спавн - самое опасное место. Обычно его полностью разгромлены в первые дни.
### Нужна ли защита спавна?
Классическая анархия - нет. Спавн должен быть разрушен, это часть атмосферы. Но технически можно оставить spawn-protection в несколько блоков, чтобы сервер мог запустить новых игроков:
```properties
# server.properties
# 0 = нет защиты спавна
# 16 = 16 блоков от центра спавна защищены от OP
spawn-protection=0
```
### Стартовый кит
Многие анархии дают стартовый кит через плагин, чтобы новички выживали первые минуты. Это не противоречит духу анархии - просто снижает порог входа.
```yaml
# Пример через плагин EssentialsX
# plugins/Essentials/kits.yml
kits:
starter:
delay: 0 # без перезарядки (выдаётся один раз)
items:
- flint_and_steel 1
- cooked_beef 16
- wooden_sword 1
```
## Требования к железу и хостингу
Анархия в плане нагрузки - самый непредсказуемый формат. Игроки могут строить что угодно и где угодно.
### Примерные требования по числу игроков
| Онлайн | RAM | CPU | Диск |
|--------|-----|-----|------|
| До 20 | 4 ГБ | 2 ядра | 30 ГБ NVMe |
| 20-50 | 6-8 ГБ | 4 ядра | 60 ГБ NVMe |
| 50-100 | 10-16 ГБ | 6-8 ядер | 100+ ГБ NVMe |
| 100+ | 16-32 ГБ | 8+ ядер | 200+ ГБ NVMe |
### Рост карты
Анархия без вайпов - это постоянный рост файла world. При активной игре карта может расти на 1-5 ГБ в день. Важно контролировать размер мира:
```bash
# Ограничение генерации мира через WorldBorder
# В консоли сервера:
/worldborder set 1000000 # радиус мира 1 млн блоков
/worldborder center 0 0 # центр на координатах 0,0
```
Без border анархия теоретически бесконечна, но производительность падает при большом числе загруженных чанков.
### JVM-флаги для производительности
```bash
# Оптимальные флаги для Minecraft Paper (Java 21+)
java -Xms4G -Xmx8G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:+AlwaysPreTouch \
-XX:G1NewSizePercent=30 \
-XX:G1MaxNewSizePercent=40 \
-XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 \
-XX:G1HeapWastePercent=5 \
-XX:G1MixedGCCountTarget=4 \
-XX:InitiatingHeapOccupancyPercent=15 \
-XX:G1MixedGCLiveThresholdPercent=90 \
-XX:G1RSetUpdatingPauseTimePercent=5 \
-XX:SurvivorRatio=32 \
-XX:+PerfDisableSharedMem \
-XX:MaxTenuringThreshold=1 \
-jar paper.jar nogui
```
## Минимальный набор плагинов
Принцип анархии - минимум плагинов. Каждый плагин - потенциальная точка ограничения свободы.
**Обязательные (технические):**
- **Spark** - мониторинг производительности
- **ClearLagg** - очистка сущностей
- **EssentialsX** - базовые команды (tpa, home и т.д. - опционально)
**Опциональные (зависит от концепции):**
- **LuckPerms** - только если нужны роли (донаторы и т.д.)
- **Vault** - если есть экономика
- **CoreProtect** - логирование блоков (для расследования крэшей, не для жалоб)
**Не ставить на анархии:**
- GriefPrevention / WorldGuard - это антитезис анархии
- Чрезмерные anti-cheat плагины (только если не хотите читеров)
## Связанные материалы
Для запуска стабильного анархия-сервера полезно изучить выбор серверного ядра подробнее - читайте [обзор ядер для Minecraft-сервера](/ru/minecraft-cores). Если TPS падает под нагрузкой, поможет статья [оптимизация Minecraft-сервера](/ru/minecraft-server-optimization). Для серверов, где планируется донат с хранением предметов, пригодится [настройка Vault и экономики](/ru/minecraft-vault-plugin).
## Заключение
Анархия-сервер - это не просто сервер без правил. Это отдельная философия игры, где выживает сильнейший, история пишется в блоках, а администрация занимается только технической стабильностью. Для запуска нужно Paper или Purpur, базовая настройка лимитов сущностей и несколько плагинов против лагмашин. Главное - не перегрузить сервер лишними ограничениями и дать игрокам настоящую свободу. Если сервер стабильно держит TPS 18-20 под нагрузкой - всё остальное сделает сообщество.
> **Pterohost** - хостинг Minecraft с NVMe-дисками, автоматическим бэкапом и защитой от DDoS-атак: всё, что нужно анархия-серверу для работы без сбоев. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-anarchy-server)
---
## Античит для Minecraft сервера: Vulcan, Matrix, Grim, AAC в 2026
URL: https://docs.pterohost.com/ru/minecraft-anticheat-setup
Обновлено: 2026-05-26
Сравнение античитов Minecraft 2026: Vulcan, Matrix, Grim Anti-Cheat, AAC v5, Negativity. Установка, чувствительность, false positives, конфликты с ViaVersion.
---
> **Кратко:** Лучшие античиты Minecraft 2026: Grim Anti-Cheat (бесплатный, open-source, лучший для PvP), Vulcan (платный, лучший для survival/skyblock), Matrix v6 (бесплатная альтернатива). Установка: JAR в plugins/, перезапуск, настройка чувствительности в config.yml. Поддержка Paper 1.8.8-1.21.x. Для совместимости с ViaVersion включите compatibility.viaversion: true.
# Античит для Minecraft сервера: Vulcan, Matrix, Grim, AAC в 2026
**Античит** - плагин, который детектит и блокирует читы на стороне сервера: KillAura, Fly, Reach, Velocity, Scaffold, AutoClicker и десятки других. Без античита PvP-сервер за неделю превратится в свалку читеров, а survival - потеряет половину адекватных игроков. В этой статье - детальное сравнение топ-5 античитов на 2026 год, пошаговая установка, настройка чувствительности и решение конфликтов с ViaVersion.
> **Pterohost** - игровой хостинг с DDoS-защитой L4+L7, NVMe SSD и 24/7 поддержкой. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-anticheat-setup)
## Типы читов и что они делают
Перед выбором античита - понимание, от чего защищаемся. Основные категории читов на 2026:
- **KillAura** - автоматическая атака игроков и мобов вокруг без поворота головы. Самый распространённый чит.
- **Reach** - увеличение дистанции атаки сверх стандартных 3 блоков. От ванильных 3 до 5-6 блоков.
- **AutoClicker** - имитация быстрых кликов мышью (15-30 CPS вместо человеческих 7-10).
- **Fly / Spider / Step** - полёт, лазание по стенам, прыжки выше 1 блока без джампа.
- **Velocity / AntiKB** - игнорирование knockback от атаки.
- **Scaffold** - автоматическая установка блоков под ноги при беге над пропастью.
- **Speed / Sprint** - ускоренное передвижение без приёма зелий.
- **NoFall** - отсутствие урона от падения.
- **Phase / NoClip** - проход сквозь блоки.
- **AutoTotem** - моментальная замена тотема Undying при смерти.
- **Tracers / ESP / X-Ray** - визуальные читы (видение игроков и руды сквозь стены). Server-side почти не детектятся, только через ban-list читовых клиентов.
Большинство читов работают на уровне игрового пакета: чит-клиент отправляет серверу пакеты, которые сервер принимает за валидные. Античит сравнивает пакеты с физически возможным поведением.
## Сравнение античитов 2026
| Античит | Цена | Платформа | Сильные стороны | Слабые стороны |
|---------------|---------------|-------------------------|------------------------------------------|--------------------------------------|
| Grim AC | бесплатный | Paper/Spigot 1.8.8-1.21 | Лучший для PvP, async, open-source | Сложная конфигурация |
| Vulcan | 15-25 USD | Paper/Spigot 1.8.8-1.21 | Низкий false positive, GUI, поддержка | Платный, закрытый код |
| Matrix v6 | бесплатный | Paper/Spigot 1.8.8-1.20 | Open-source, простая настройка | Слабее на высоких пингах |
| AAC v5 | 30 EUR | Paper/Spigot 1.8.8-1.20 | Долгая история, проверки сурvival | Медленные обновления, дорогой |
| Negativity | бесплатный | Spigot 1.8.8-1.20 | Бесплатный, поддержка модов | Средняя защита, частые FP |
| Spartan | 14 USD/мес | Paper/Spigot 1.8.8-1.21 | Подписка, авто-обновления | Аренда, не один раз купил |
### Grim Anti-Cheat
**Grim Anti-Cheat** - open-source античит от MWHunter с 2021 года, специализированный для PvP. На 2026 - выбор Hypixel-подобных серверов и MMC (Minecraft Monday Cup). Лицензия MIT.
Сильные стороны:
- Полностью асинхронные проверки (async) - 1-2% CPU при 100 онлайн.
- Проверки Reach, KillAura, Velocity, Timer на уровне физического движка.
- Поддержка 1.8.8-1.21.x с ViaVersion.
- AutoBan + alert в Discord через webhook.
Слабые стороны:
- Минимальная GUI, конфиг через YAML.
- Не покрывает Skyblock/RPG-механики (флай через пермишен сложнее настроить).
Установка: скачать `Grim-X.X.X.jar` с `github.com/GrimAnticheat/Grim/releases`, положить в `plugins/`, перезапустить.
### Vulcan Anti-Cheat
**Vulcan** - закрытый платный античит от Slayer25667, разрабатывается с 2020. На 2026 - один из лидеров для survival, skyblock, RP-серверов. Цена - 15-25 USD единоразово.
Сильные стороны:
- Низкий уровень false positive за счёт ML-моделей.
- GUI-конфигурация через `/vulcan gui`.
- Готовые профили: PvP / Survival / Skyblock / Lifesteal.
- Активная поддержка в Discord, фиксы за 24-48 часов.
Слабые стороны:
- Закрытый код, нельзя аудитить.
- Требуется лицензионный ключ, проверка через builtbybit.
Установка: купить на `builtbybit.com/resources/vulcan-anti-cheat`, загрузить JAR, положить в plugins/, ввести лицензионный ключ при первом старте.
### Matrix Anti-Cheat v6
**Matrix** - open-source бесплатный античит, форк CrashEarning. На 2026 - один из лучших бесплатных вариантов для survival-серверов.
Сильные стороны:
- Open-source (GPLv3).
- 35+ проверок включая Scaffold, Tower, AutoBlock.
- Простая конфигурация: один config.yml.
Слабые стороны:
- Синхронные проверки на main thread - чуть выше нагрузка.
- Слабая защита на пинге 300+ мс.
- Разработка медленнее, чем Grim/Vulcan.
Установка: `github.com/jiangdashao/Matrix/releases`, JAR в plugins/.
### AAC v5 (Advanced Anti-Cheat)
**AAC** - старейший античит на рынке, с 2014. На 2026 версия 5 поддерживается, но обновления редкие. Стоит 30 EUR.
Сильные стороны:
- Покрытие большинства survival-механик.
- AutoBan, replay-system (Lite).
Слабые стороны:
- Дорогой при медленных обновлениях.
- Слабый PvP-движок по сравнению с Grim.
Установка: купить на songoda.com или spigotmc.org, JAR в plugins/.
### Negativity
**Negativity** - бесплатный античит с поддержкой Forge-модов. На 2026 актуален для модовых серверов, где Grim/Vulcan не работают корректно.
Сильные стороны:
- Бесплатный, open-source.
- Поддержка Forge и Bukkit.
- Whitelist модов (OptiFine, Sodium).
Слабые стороны:
- Средний detection rate.
- Частые false positives на лагающих игроках.
Установка: spigotmc.org/resources/negativity, JAR в plugins/.
## Установка и базовая настройка (на примере Vulcan)
После установки JAR и перезапуска появится `plugins/Vulcan/config.yml`. Минимальная конфигурация для survival-сервера:
```yaml
language: ru
log-mode: file
log-format: "[%check%][%vl%] %player% сработал %check% (%verbose%)"
alerts:
enabled: true
permission: vulcan.alerts
format: "&c[Vulcan] &f%player% &7- &c%check% &7(VL: &c%vl%&7)"
checks:
combat:
killaura:
enabled: true
max-vl: 15
punishments:
- "15: kick %player% Подозрение на KillAura"
reach:
enabled: true
max-reach: 3.05
max-vl: 10
velocity:
enabled: true
threshold: 0.85
max-vl: 8
movement:
fly:
enabled: true
max-vl: 20
speed:
enabled: true
max-vl: 15
scaffold:
enabled: true
max-vl: 10
compatibility:
viaversion: true
geyser: true
floodgate: true
citizens: true
```
**Параметры:**
- `max-vl` (violation level) - порог нарушений до наказания. Vulcan накапливает VL, при превышении max-vl запускает punishment.
- `punishments` - команды, выполняемые при превышении VL. Можно kick, ban, mute, broadcast.
- `compatibility` - включение совместимости с ViaVersion (кросс-версионные игроки), Geyser (Bedrock-игроки), Citizens (NPC), JumpPad.
Команды Vulcan:
```
/vulcan reload
/vulcan log <ник> # включить детальный лог
/vulcan alerts # переключить алерты в чате
/vulcan info <ник> # текущие VL игрока
/vulcan reset <ник> # сбросить VL
```
## Настройка чувствительности и false positives
Главная задача админа - найти баланс между detection rate (доля пойманных читеров) и false positive rate (доля ложных банов честных игроков). Слишком жёсткие настройки забанят полсервера, слишком мягкие пропустят читеров.
Рекомендуемая стратегия:
1. Запустить античит на стандартных настройках на 2-3 дня без punishments (только alerts).
2. Собрать логи срабатываний, проанализировать ники с самыми высокими VL.
3. Проверить вручную через спектатор-режим или replay-плагин.
4. Если 80%+ срабатываний - реальные читеры, включить kick/ban.
5. Если много false positives - снизить чувствительность конкретных проверок.
Пример снижения чувствительности на Reach (для серверов с высоким пингом):
```yaml
checks:
combat:
reach:
enabled: true
max-reach: 3.15 # +0.1 к стандартным 3.05
max-vl: 15 # +5 к стандарту
```
Verbose-режим показывает в чате детали каждого срабатывания:
```
/vulcan log Steve
[Vulcan] Steve сработал Reach (3.12 > 3.05) VL: 1
[Vulcan] Steve сработал Reach (3.08 > 3.05) VL: 2
```
## Конфликты с ViaVersion и решение
[ViaVersion](/ru/minecraft-viaversion-setup) перекодирует пакеты между версиями. На сервере 1.21 с игроками на 1.8 античит видит хитбоксы и тайминги обеих версий, что вызывает false positives.
Решение - все современные античиты имеют compatibility-блок:
```yaml
compatibility:
viaversion: true
viabackwards: true
viarewind: true
```
Дополнительно для Grim:
```yaml
client-versions:
enabled: true
legacy-combat-bypass: true # отключить combat-checks для игроков на 1.8
```
Без compatibility 1.8-игроки на 1.21-сервере получат массовые false positives на Reach и KillAura.
## Производительность античита
Современные античиты потребляют 1-5% CPU при 50-100 онлайн. На больших серверах разница ощутима:
- **Grim AC** - 1-2% CPU при 100 онлайн (async).
- **Vulcan** - 2-3% CPU.
- **Matrix v6** - 3-5% CPU (sync).
- **AAC v5** - 4-7% CPU.
- **Negativity** - 3-5% CPU.
Если профайлер Spark показывает анти-чит как узкое место - переходите с Matrix/AAC на Grim или Vulcan. Подробнее об [оптимизации сервера](/ru/minecraft-server-optimization).
## Готовая конфигурация PvP-сервера на Grim
`plugins/GrimAC/config.yml` для PvP-сервера 1.21:
```yaml
client-brand:
enabled: true
block-hacked-clients: true
reach:
threshold: 3.03
cancel-impossible-hits: true
velocity:
setback-vl: 10
cancel-vl: 5
simulation:
setback-vl: 15
alerts:
enable-on-join: true
format: "%prefix% &f%player% &7| &c%check_name% &7VL: &c%vl%"
punishments:
ban:
enabled: true
commands:
- "ban %player% Подозрение на читы (%check_name%)"
threshold: 50
```
## Связанные материалы
После настройки античита займитесь [оптимизацией сервера](/ru/minecraft-server-optimization) и [исправлением лагов](/ru/minecraft-server-lags-fix). Подборка [плагинов для Minecraft](/ru/best-plugins) поможет дополнить античит ban-системой и логированием.
## Заключение
На 2026 топ-3 античита для Minecraft: Grim Anti-Cheat (бесплатный, для PvP), Vulcan (платный, для survival), Matrix v6 (бесплатная альтернатива). Установка занимает 10 минут, настройка чувствительности и обкатка на live-сервере - 2-3 дня. Без античита PvP-сервер нежизнеспособен в 2026, и пиратство клиентов (Wurst, Vape, Liquidbounce) делает любую защиту критичной.
> **Pterohost** - игровой хостинг с DDoS-защитой L4+L7, NVMe SSD и 24/7 поддержкой. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-anticheat-setup)
---
## Бот статуса сервера Minecraft в Discord
URL: https://docs.pterohost.com/ru/minecraft-server-status-bot
Обновлено: 2026-06-07
Как настроить бота статуса сервера Minecraft в Discord: enable-query, готовые боты, виджеты онлайна и числа игроков - пошаговая инструкция.
---
> **Кратко:** Бот статуса сервера Minecraft в Discord подключается к серверу по пинг-протоколу и автоматически обновляет сообщение с числом игроков. Для базовой работы достаточно включить сервер и добавить бота - enable-query не обязателен. Подробная инструкция ниже.
# Бот статуса сервера Minecraft в Discord
**Дискорд-сервер без актуального статуса игрового сервера - это неудобно: игроки постоянно пишут "сервер работает?", "сколько народу онлайн?", "когда рестарт?".** Бот статуса решает эту проблему раз и навсегда - он сам опрашивает сервер каждые несколько минут и обновляет закреплённое сообщение или ник бота в сайдбаре. В 2026 году настройка занимает 10-15 минут и не требует программистских навыков: есть готовые боты из Discord App Directory, self-hosted варианты и веб-виджеты для сайта. В этой статье разберём все три пути - от самого простого к гибкому.
> **Pterohost** - игровой хостинг с NVMe-дисками, защитой от DDoS и поддержкой 24/7. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-server-status-bot)
## Как бот "видит" сервер: протоколы ping и query
Прежде чем настраивать бота, важно понять, как он получает данные. Minecraft поддерживает два независимых механизма опроса сервера:
### Протокол Server List Ping (SLP)
Это стандартный пинг, которым пользуется лаунчер для отображения сервера в списке. Работает на основном игровом порту (по умолчанию `25565`). Возвращает:
- статус (онлайн/оффлайн)
- MOTD (описание сервера)
- текущее и максимальное число игроков
- версию сервера
- иконку сервера (64x64 PNG, base64)
**Для SLP ничего включать в `server.properties` не нужно** - он работает всегда, пока сервер запущен. Большинство ботов используют именно этот протокол.
### Протокол Query (GameSpy4)
Query - более старый протокол, изначально разработанный для GameSpy. Работает на UDP-порту (по умолчанию тот же `25565`, но UDP). Возвращает расширенную информацию:
- список ников всех онлайн-игроков (не только счётчик)
- список установленных плагинов (если сервер их отдаёт)
- карта, режим игры
Для включения query нужно отредактировать `server.properties`:
```properties
enable-query=true
query.port=25565
```
После изменения - перезапустить сервер. Если используешь Velocity или BungeeCord, query нужно включать на бэкенд-серверах, а не на проксе.
### Что выбрать
| Нужно | Протокол |
|---|---|
| Просто число игроков онлайн | SLP (ничего не включать) |
| Список ников игроков | Query (`enable-query=true`) |
| MOTD и иконка | SLP |
| Версия и плагины | Query |
## Готовые боты из Discord App Directory
Самый быстрый способ - добавить готовый бот без установки каких-либо файлов на хостинг.
### MCStatus Bot
Один из наиболее распространённых ботов для статуса Minecraft-серверов. Доступен через Discord App Directory по поиску "MCStatus".
Основные возможности:
- автообновление embed-сообщения с числом игроков
- уведомления при переходе сервера в офлайн/онлайн
- поддержка Java и Bedrock
- настраиваемый интервал опроса (минимум 1 минута для бесплатного тарифа)
Настройка:
1. Добавь бота на свой Discord-сервер.
2. В нужном канале выполни команду: `/setup host:play.example.com port:25565`
3. Бот создаст закреплённое embed-сообщение и начнёт обновлять его автоматически.
Пример embed-сообщения, которое создаёт бот:
```
🟢 play.example.com - Онлайн
Игроки: 12 / 100
Версия: Paper 1.21.4
MOTD: Добро пожаловать!
Последнее обновление: 2 мин. назад
```
### Minecord
Альтернативный публичный бот с поддержкой нескольких серверов в одном аккаунте. Умеет менять своё имя в сайдбаре Discord на актуальный статус: `[12/100] play.example.com`. Это удобно - игроки видят число игроков прямо в списке каналов без открытия конкретного канала.
Команды Minecord:
```
/add server:play.example.com port:25565 channel:#статус-сервера
/status - показать текущий статус вручную
/remove - удалить мониторинг сервера
```
## Self-hosted бот на Python (discord.py + mcstatus)
Если нужен полный контроль - внешний сервис не подходит, или нужны кастомные функции - проще всего написать бота самостоятельно. Для этого понадобятся:
- Python 3.10+
- библиотека `discord.py` (2.x)
- библиотека `mcstatus` (для опроса сервера)
Установка зависимостей:
```bash
pip install discord.py mcstatus
```
Минимальный рабочий бот (файл `bot.py`):
```python
import discord
from discord.ext import tasks
from mcstatus import JavaServer
import asyncio
TOKEN = "ВАШ_DISCORD_TOKEN"
CHANNEL_ID = 123456789012345678 # ID канала для статуса
SERVER_ADDRESS = "play.example.com"
SERVER_PORT = 25565
MESSAGE_ID = None # будет сохранён после первой отправки
intents = discord.Intents.default()
client = discord.Client(intents=intents)
@client.event
async def on_ready():
print(f"Бот запущен: {client.user}")
update_status.start()
@tasks.loop(minutes=2)
async def update_status():
global MESSAGE_ID
channel = client.get_channel(CHANNEL_ID)
if channel is None:
return
try:
server = JavaServer.lookup(f"{SERVER_ADDRESS}:{SERVER_PORT}")
status = server.status()
online = status.players.online
max_players = status.players.max
version = status.version.name
description = status.description
color = discord.Color.green()
state = "Онлайн"
except Exception:
online = 0
max_players = 0
version = "-"
description = "-"
color = discord.Color.red()
state = "Офлайн"
embed = discord.Embed(
title=f"{SERVER_ADDRESS} - {state}",
color=color
)
embed.add_field(name="Игроки", value=f"{online} / {max_players}", inline=True)
embed.add_field(name="Версия", value=version, inline=True)
embed.add_field(name="MOTD", value=description, inline=False)
embed.set_footer(text="Обновлено")
embed.timestamp = discord.utils.utcnow()
if MESSAGE_ID:
try:
msg = await channel.fetch_message(MESSAGE_ID)
await msg.edit(embed=embed)
return
except discord.NotFound:
pass
msg = await channel.send(embed=embed)
MESSAGE_ID = msg.id
client.run(TOKEN)
```
Запуск:
```bash
python bot.py
```
Для работы в фоне на Linux используй `screen` или `systemd`:
```bash
screen -S mcbot python bot.py
# Ctrl+A, D - отсоединиться от screen
```
### Получение ников через Query
Если нужен список ников, замени блок `status = server.status()` на query:
```python
from mcstatus import JavaServer
server = JavaServer.lookup("play.example.com:25565")
query = server.query()
players_online = query.players.online
player_names = query.players.names # список строк с никами
```
Не забудь включить `enable-query=true` в `server.properties` (см. первый раздел).
## Self-hosted бот на Node.js (discord.js)
Если предпочитаешь JavaScript, аналогичный бот пишется на `discord.js` + `minecraft-server-util`.
Установка:
```bash
npm init -y
npm install discord.js minecraft-server-util
```
Пример кода (`index.js`):
```javascript
const { Client, GatewayIntentBits, EmbedBuilder } = require('discord.js');
const { status } = require('minecraft-server-util');
const TOKEN = 'ВАШ_DISCORD_TOKEN';
const CHANNEL_ID = '123456789012345678';
const SERVER_HOST = 'play.example.com';
const SERVER_PORT = 25565;
const INTERVAL_MS = 2 * 60 * 1000; // 2 минуты
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
let messageId = null;
async function updateStatus() {
const channel = await client.channels.fetch(CHANNEL_ID);
if (!channel) return;
let embed;
try {
const result = await status(SERVER_HOST, SERVER_PORT, { timeout: 5000 });
embed = new EmbedBuilder()
.setTitle(`${SERVER_HOST} - Онлайн`)
.setColor(0x57F287)
.addFields(
{ name: 'Игроки', value: `${result.players.online} / ${result.players.max}`, inline: true },
{ name: 'Версия', value: result.version.name, inline: true }
)
.setTimestamp();
} catch {
embed = new EmbedBuilder()
.setTitle(`${SERVER_HOST} - Офлайн`)
.setColor(0xED4245)
.setTimestamp();
}
if (messageId) {
try {
const msg = await channel.messages.fetch(messageId);
await msg.edit({ embeds: [embed] });
return;
} catch {}
}
const msg = await channel.send({ embeds: [embed] });
messageId = msg.id;
}
client.once('ready', () => {
console.log(`Бот запущен: ${client.user.tag}`);
updateStatus();
setInterval(updateStatus, INTERVAL_MS);
});
client.login(TOKEN);
```
Запуск:
```bash
node index.js
```
## Настройка enable-query в server.properties
Для ботов, которым нужен список ников, или если у тебя нестандартный хостинг с ограниченным SLP - вот полный блок настроек query в `server.properties`:
```properties
# Включить протокол query
enable-query=true
# UDP-порт для query (обычно совпадает с игровым портом)
query.port=25565
# Основной игровой порт (для справки)
server-port=25565
# Привязка к IP (оставь пустым для всех интерфейсов)
server-ip=
```
Важные моменты:
- После изменений нужен полный перезапуск сервера (`stop` + запуск заново), не `reload`.
- На Pterodactyl-панели query.port должен быть открыт в настройках аллокаций порта. Если порт не выделен - query не будет работать снаружи.
- Firewall на сервере должен пропускать UDP на `query.port`. Проверка: `nc -uvz play.example.com 25565`.
## Веб-виджеты для сайта
Если помимо Discord нужен виджет на сайте или форуме - есть готовые сервисы:
### mcsrvstat.us
Бесплатное API с поддержкой Java и Bedrock. Возвращает JSON:
```
GET https://api.mcsrvstat.us/3/play.example.com
```
Пример ответа:
```json
{
"online": true,
"players": { "online": 12, "max": 100 },
"version": "1.21.4",
"motd": { "clean": ["Добро пожаловать!"] },
"icon": "data:image/png;base64,..."
}
```
Готовый HTML-виджет (вставить на страницу):
```html
```
### mcapi.us
Аналогичный сервис с чуть другим форматом API:
```
GET https://mcapi.us/query/server?ip=play.example.com&port=25565
```
Оба сервиса кешируют ответы на 60-120 секунд, что снижает нагрузку на сервер при высоком трафике сайта.
## Типичные проблемы и их решение
### Бот показывает "Офлайн", хотя сервер работает
Возможные причины и решения:
| Причина | Решение |
|---|---|
| Firewall блокирует порт | Открой TCP 25565 (и UDP, если используешь query) |
| IP-адрес сменился | Обнови адрес в настройках бота |
| Сервер использует нестандартный порт | Укажи явно: `play.example.com:25566` |
| Античит подменяет ответ на пинг | Проверь настройки Anti-VPN / AntiBot плагина |
| Хостинг блокирует внешние query | Обратись в поддержку хостинга |
### Бот показывает неверное число игроков
На серверах с прокси (BungeeCord, Velocity) player count берётся с прокси, а не с бэкенда. Убедись, что бот подключается к правильному адресу. Если прокси настроен корректно - он должен суммировать игроков со всех бэкендов автоматически.
### Бот не видит список ников
Проверь три вещи:
1. `enable-query=true` в `server.properties` (и перезапуск сервера).
2. `query.port` открыт в аллокациях на Pterodactyl.
3. Бот использует Query, а не SLP (в коде - `server.query()`, не `server.status()`).
### Слишком частые уведомления об офлайне при рестарте
Установи в настройках бота `grace_period` - время, в течение которого недоступность сервера не считается офлайном. Для кастомного бота на Python:
```python
import time
GRACE_PERIOD = 180 # секунд
offline_since = None
# В цикле опроса:
if state == "Офлайн":
if offline_since is None:
offline_since = time.time()
elif time.time() - offline_since < GRACE_PERIOD:
return # ещё в grace period, не уведомлять
else:
offline_since = None
```
## Автоматические уведомления о событиях сервера
Помимо периодического обновления статуса, боты умеют отправлять разовые уведомления при наступлении определённых событий. Это особенно полезно для администраторов, которые не всегда следят за консолью.
### Типичные события для уведомлений
- **Сервер упал** - критически важно. Уведомление в приватный Discord-канал администраторов.
- **Сервер вернулся в онлайн** - после рестарта или падения.
- **Достигнут порог игроков** - например, "сервер заполнен на 80%".
- **Вход/выход игрока** (для небольших серверов - полезно для учёта).
### Реализация уведомлений через Discord Webhook
Вместо полноценного бота можно отправлять уведомления через Webhook - это проще в настройке. Webhook не требует токена бота и приложения в Dev Portal.
Создание Webhook:
1. Открой настройки канала в Discord.
2. Перейди в "Интеграции" -> "Webhooks".
3. Нажми "Создать Webhook", скопируй URL.
Пример скрипта-мониторинга на Python, который отправляет уведомление при переходе сервера в офлайн (`monitor.py`):
```python
import time
import requests
from mcstatus import JavaServer
SERVER = "play.example.com"
PORT = 25565
WEBHOOK_URL = "https://discord.com/api/webhooks/XXXXXXXX/YYYYYYYY"
CHECK_INTERVAL = 60 # секунд
GRACE_PERIOD = 120 # секунд до уведомления об офлайне
was_online = True
offline_since = None
def send_webhook(message: str):
requests.post(WEBHOOK_URL, json={"content": message})
while True:
try:
s = JavaServer.lookup(f"{SERVER}:{PORT}")
s.status()
is_online = True
except Exception:
is_online = False
if is_online and not was_online:
send_webhook(f"Сервер {SERVER} снова онлайн!")
offline_since = None
elif not is_online and was_online:
offline_since = time.time()
elif not is_online and offline_since:
if time.time() - offline_since >= GRACE_PERIOD:
send_webhook(f"Сервер {SERVER} офлайн уже {int((time.time() - offline_since) / 60)} мин.")
offline_since = None # сбросить, чтобы не спамить
was_online = is_online
time.sleep(CHECK_INTERVAL)
```
Запусти скрипт в фоне и получай уведомления прямо в Discord без установки полноценного бота.
### Уведомления через systemd и OnFailure
Ещё один вариант - если сервер Minecraft запущен как systemd unit, настрой `OnFailure` для вызова скрипта с Webhook:
```ini
# /etc/systemd/system/minecraft.service.d/notify.conf
[Unit]
OnFailure=minecraft-notify-failure.service
```
```ini
# /etc/systemd/system/minecraft-notify-failure.service
[Unit]
Description=Notify Discord on Minecraft failure
[Service]
Type=oneshot
ExecStart=/usr/bin/curl -s -X POST "https://discord.com/api/webhooks/XXX/YYY" \
-H "Content-Type: application/json" \
-d '{"content": "Minecraft-сервер упал! Проверьте панель управления."}'
```
Это самый надёжный способ - уведомление отправится даже если Python-скрипт не запущен.
## Связанные материалы
Для понимания всех параметров `server.properties`, включая `enable-query` и `query.port`, читай [руководство по server.properties](/ru/minecraft-server-properties-guide). Если после добавления бота появились лаги - проверь [устранение лагов сервера Minecraft](/ru/minecraft-server-lags-fix). Для настройки прав доступа на сервере поможет [настройка LuckPerms](/ru/minecraft-luckperms-setup).
## Заключение
Бот статуса Minecraft в Discord - это несложная, но очень полезная вещь для любого активного сообщества. Для базового варианта достаточно добавить готового бота из App Directory и указать адрес сервера - настройка займёт пять минут. Если нужен список ников или кастомные уведомления - включи `enable-query=true` в `server.properties` и запусти self-hosted бота на Python или Node.js. Веб-виджет на mcsrvstat.us дополнит Discord-бота и покажет статус посетителям сайта. Главное - не ставить интервал опроса менее 30-60 секунд, чтобы не создавать лишнюю нагрузку на сервер.
> **Pterohost** - хостинг Minecraft с автоматическими бэкапами, NVMe-дисками и круглосуточной поддержкой. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-server-status-bot)
---
## Варпы, дома и спавн на сервере Minecraft (EssentialsX)
URL: https://docs.pterohost.com/ru/minecraft-warp-home-spawn
Обновлено: 2026-06-02
Настройка /spawn, /sethome, /setwarp в EssentialsX: лимиты домов по группам, телепорт-задержки, права LuckPerms и межмировые варпы.
---
> **Кратко:** EssentialsX предоставляет полный набор команд для управления точками телепортации - /sethome, /setwarp, /setspawn. Ограничения по группам настраиваются через LuckPerms-пермиссии, задержки - в config.yml плагина.
# Варпы, дома и спавн на сервере Minecraft (EssentialsX)
**Система точек телепортации - одна из первых вещей, которую настраивают администраторы нового сервера.** Без неё игроки теряются в мире, не могут вернуться к своим постройкам, а дополнительные миры (шахта, нетер-ресурс, ивентовые зоны) остаются пустыми - добраться туда неудобно. EssentialsX версии 2.20+ (актуальная ветка на середину 2026 года) закрывает всю эту задачу в одном плагине: варпы, дома, спавн, задержки, права доступа. В этой статье разберём каждую из систем с реальными командами, фрагментами конфига и примерами пермиссий LuckPerms.
> **Pterohost** - игровой хостинг с NVMe-дисками, встроенной DDoS-защитой и поддержкой 24/7 для Minecraft-серверов любого масштаба. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-warp-home-spawn)
## Установка EssentialsX
Скачайте актуальную сборку с [GitHub Releases](https://github.com/EssentialsX/Essentials/releases) - нужен файл `EssentialsX-2.x.x.jar`. Для работы требуется Paper или его форки (Purpur, Folia не поддерживается полностью). Vault нужен только для экономики - для телепортации он не обязателен.
Минимальный набор для статьи:
- `EssentialsX` - основной плагин
- `LuckPerms` - управление правами
- `EssentialsXSpawn` (входит в набор EssentialsX) - расширенное управление спавном
Разместите jar-файлы в папку `plugins/`, перезапустите сервер. Файлы конфигурации появятся в `plugins/Essentials/` и `plugins/EssentialsSpawn/`.
## Настройка спавна (/spawn и /setspawn)
Спавн - точка, в которую попадает игрок при первом входе или при использовании `/spawn`. EssentialsX позволяет задать его в любом месте мира.
### Установка точки спавна
Встаньте в нужное место, смотрите в нужном направлении (угол поворота тоже сохраняется):
```
/setspawn
```
Команда требует права `essentials.setspawn`. Координаты записываются в `plugins/Essentials/spawn.yml`:
```yaml
# spawn.yml (пример)
world:
world: world
x: 0.5
y: 64.0
z: 0.5
yaw: 0.0
pitch: 0.0
```
### Телепорт к спавну
```
/spawn - телепорт для себя (права: essentials.spawn)
/spawn ИМЯ - телепорт другого игрока (права: essentials.spawn.others)
```
### Принудительный спавн при входе (EssentialsXSpawn)
В `plugins/EssentialsSpawn/config.yml`:
```yaml
newbies:
# Телепортировать новых игроков на спавн при первом входе
respawn-on-new-spawn: true
# Сообщение новичку
message: "&eДобро пожаловать на сервер!"
# Возвращать игрока на спавн при каждом входе:
# Установите пермиссию essentials.spawn.oncejoin.bypass для групп,
# которым НЕ нужен принудительный спавн при входе
```
Чтобы все игроки телепортировались на спавн при каждом входе, выдайте группе `default` пермиссию `essentials.spawn-on-join`. Для групп, которые должны возвращаться в то место, где вышли - выдайте `essentials.spawn-on-join.bypass`.
### Мультимировые спавны
EssentialsX хранит один глобальный спавн. Если вам нужен отдельный спавн для каждого мира - используйте Multiverse-Core:
```
/mv setspawn - задать спавн текущего мира (нужно быть в этом мире)
/mv spawn - телепорт к спавну текущего мира
```
Оба плагина работают совместно без конфликтов.
## Дома (/sethome и /home)
Дома - персональные точки телепортации каждого игрока. По умолчанию EssentialsX даёт один дом на игрока, но через пермиссии можно задать любое число.
### Базовые команды
```
/sethome - задать дом "home" (основной)
/sethome имя - задать именованный дом
/home - телепорт к основному дому
/home имя - телепорт к именованному дому
/delhome имя - удалить дом
/home список - показать все дома
/home игрок:имя - посмотреть/телепортироваться к дому другого игрока (права: essentials.home.others)
```
### Лимиты домов по группам
Это одна из самых частых задач при настройке привилегий. EssentialsX использует пермиссию `essentials.sethome.multiple` и числовые суффиксы.
В `config.yml` EssentialsX:
```yaml
# Максимальное число домов для игроков без особых прав:
sethome-multiple:
default: 1
vip: 3
donor: 5
admin: unlimited
```
Параметр под `sethome-multiple` - это имя группы в LuckPerms. После изменения конфига перезагрузите плагин командой `/ess reload`.
Альтернативный вариант - через пермиссии LuckPerms (более гибкий):
```bash
# Группе vip - 3 дома
lp group vip permission set essentials.sethome.multiple.vip true
# В config.yml указываем:
# sethome-multiple:
# vip: 3
```
Или используйте числовую пермиссию (EssentialsX 2.19+):
```bash
lp group vip permission set essentials.sethome.multiple.count.3 true
lp group donor permission set essentials.sethome.multiple.count.5 true
```
Проверить текущий лимит игрока:
```
/essentials player ИМЯ - показывает информацию, включая лимит домов
```
### Дома в других мирах
EssentialsX сохраняет имя мира вместе с координатами дома. Если мир существует - телепортация работает автоматически. Если мир был удалён или переименован, команда `/home` выдаст ошибку "world not found" - удалите такой дом через `/delhome имя`.
Ограничить дома только основным миром (запретить дома в нетере и эндере):
```yaml
# config.yml EssentialsX
worlds-ignored-for-home:
- world_nether
- world_the_end
```
Игрок получит сообщение об ошибке при попытке `/sethome` в запрещённом мире.
## Варпы (/setwarp и /warp)
Варпы - административные точки телепортации, доступные всем игрокам (или определённым группам). Используются для городов, магазинов, арен, ивентов.
### Создание и удаление варпов
```
/setwarp имя - создать варп (права: essentials.setwarp)
/delwarp имя - удалить варп (права: essentials.delwarp)
/warp имя - телепортироваться (права: essentials.warp + essentials.warp.имя)
/warps - список доступных варпов (права: essentials.warps)
```
Все варпы хранятся в `plugins/Essentials/warps/` - каждый варп в отдельном `.yml` файле. Файлы можно редактировать вручную для точной установки координат.
Пример файла `plugins/Essentials/warps/spawn.yml`:
```yaml
world: world
x: 128.5
y: 68.0
z: -256.5
yaw: 180.0
pitch: 0.0
```
### Права доступа к варпам
EssentialsX поддерживает два уровня ограничений:
**Глобальный доступ к системе варпов:**
```bash
lp group default permission set essentials.warp true
lp group default permission set essentials.warps true
```
**Доступ к конкретному варпу:**
```bash
# Разрешить варп "arena" только для vip и выше
lp group default permission set essentials.warp.arena false
lp group vip permission set essentials.warp.arena true
```
Если пермиссия `essentials.warp.имя` не задана явно, доступ определяется наличием `essentials.warp.*` (все варпы).
### Межмировые варпы
Встаньте в нужном мире (например, в мире с шахтой) и выполните `/setwarp mine`. Телепорт будет работать из любого мира - EssentialsX автоматически перемещает игрока в нужный мир. Требования к мирам: все миры должны быть загружены (управление через Multiverse-Core или встроенный Bukkit worlds).
Проверка, какой мир привязан к варпу:
```
/warpinfo имя - показывает координаты и мир (если установлен EssentialsX 2.20+)
```
## Телепорт-задержки и кулдауны
Задержки перед телепортом - важный элемент баланса на survival-серверах. Они не дают игрокам уходить от угрозы через команду телепорта.
### Настройка задержки (delay)
В `plugins/Essentials/config.yml`:
```yaml
# Задержка перед телепортом в секундах (игрок не должен двигаться)
teleport-delay: 3
# Кулдаун между использованиями /home (секунды)
home-cooldown: 0
# Кулдаун между использованиями /warp (секунды)
warp-cooldown: 0
# Кулдаун для /spawn
spawn-cooldown: 0
```
Если во время задержки игрок получает урон или двигается - телепорт отменяется. Сообщение об отмене настраивается в `plugins/Essentials/messages.properties`.
### Кулдауны по командам
Начиная с EssentialsX 2.18+ есть раздельные кулдауны для каждой команды:
```yaml
# config.yml - раздел command-cooldowns
command-cooldowns:
sethome: 30 # 30 секунд между установками дома
home: 10 # 10 секунд между телепортами домой
warp: 5 # 5 секунд между варпами
spawn: 15 # 15 секунд до следующего /spawn
```
### Bypass для привилегированных групп
Снять задержку для группы `vip`:
```bash
# Обход задержки перед телепортом
lp group vip permission set essentials.teleport.timer.bypass true
# Обход кулдауна для конкретной команды
lp group vip permission set essentials.command-cooldown.bypass.home true
lp group vip permission set essentials.command-cooldown.bypass.warp true
```
Администраторам обычно даётся `essentials.*` - это включает все bypass автоматически.
## Права LuckPerms: полная таблица
Ниже - сводная таблица основных пермиссий для настройки через LuckPerms:
| Пермиссия | Описание |
|---|---|
| `essentials.spawn` | Использовать /spawn |
| `essentials.spawn.others` | Телепортировать других на спавн |
| `essentials.setspawn` | Установить точку спавна |
| `essentials.home` | Использовать /home |
| `essentials.home.others` | Телепорт к дому другого игрока |
| `essentials.sethome` | Использовать /sethome |
| `essentials.sethome.multiple` | Включить несколько домов |
| `essentials.sethome.multiple.vip` | Лимит для группы vip (число в config.yml) |
| `essentials.delhome` | Удалить свой дом |
| `essentials.delhome.others` | Удалить дом другого игрока |
| `essentials.warp` | Использовать /warp |
| `essentials.warp.*` | Доступ ко всем варпам |
| `essentials.warp.имя` | Доступ к конкретному варпу |
| `essentials.setwarp` | Создать варп |
| `essentials.delwarp` | Удалить варп |
| `essentials.warps` | Список варпов /warps |
| `essentials.teleport.timer.bypass` | Обход задержки телепорта |
Применение пермиссии к группе:
```bash
lp group default permission set essentials.home true
lp group default permission set essentials.sethome true
lp group default permission set essentials.warp true
lp group default permission set essentials.warps true
lp group default permission set essentials.spawn true
```
После изменений в LuckPerms перезагрузка не нужна - права применяются мгновенно.
## Типичные ошибки при настройке
**Игроки не могут использовать /home, хотя права выданы.** Проверьте, что пермиссия выдана именно группе default (не другой). Выполните `/lp user ИМЯ permission check essentials.home` - должно вернуть `true`.
**Варп создан, но в /warps не отображается.** Убедитесь, что игроку выдана пермиссия `essentials.warps` (с буквой s). `/warp` и `/warps` - разные пермиссии.
**Лимит домов не работает несмотря на конфиг.** После изменения `sethome-multiple` в config.yml обязательно выполните `/ess reload`. Без перезагрузки старое значение остаётся в памяти.
**Игрок попадает на спавн при каждом входе, хотя этого не нужно.** Проверьте пермиссию `essentials.spawn-on-join` у группы. Уберите её или выдайте `essentials.spawn-on-join.bypass`.
**После удаления мира дом перестал работать.** Команда `/delhome имя` или ручное удаление записи из файла `plugins/Essentials/userdata/UUID.yml` в разделе `homes`.
## Продвинутые сценарии
### Приветственный варп для новичков
Создайте варп `spawn` в красивом месте. В EssentialsXSpawn укажите:
```yaml
newbies:
respawn-on-new-spawn: true
# Телепортировать на варп "spawn" при первом входе
spawnpoint: spawn
```
### Временные ивентовые варпы
Для ивента создайте варп `/setwarp event`. После окончания ивента удалите `/delwarp event`. Права можно выдать динамически:
```bash
# Открыть варп event для всех
lp group default permission set essentials.warp.event true
# После ивента - убрать
lp group default permission unset essentials.warp.event
```
### Интеграция с GUI-плагинами
Для удобного интерфейса варпов используйте WarpGUI или EssentialsXGUI. Они читают список варпов прямо из папки `plugins/Essentials/warps/` и строят меню автоматически - дополнительная настройка не требуется.
## Связанные материалы
Если вы только настраиваете сервер, прочитайте обзор полезных плагинов в статье [Лучшие плагины для Minecraft-сервера](/ru/best-plugins) - там описаны ключевые дополнения к EssentialsX. Полный список команд EssentialsX с описанием каждой смотрите в [Команды EssentialsX: полный гайд](/ru/minecraft-essentialsx-commands). Базовые параметры сервера (server.properties) разобраны в статье [Настройка server.properties](/ru/minecraft-server-properties-guide).
## Заключение
EssentialsX покрывает 95% задач по управлению точками телепортации на типичном survival-сервере. Для простого случая достаточно выдать группам базовые пермиссии и указать лимиты домов в config.yml - на это уходит 10-15 минут. Более тонкая настройка (кулдауны, межмировые ограничения, bypass для доноров) требует понимания системы пермиссий LuckPerms, но логика там прямолинейная: каждый параметр - это отдельная пермиссия. Главное - не забывать выполнять `/ess reload` после изменений в config.yml и проверять права через `lp user ИМЯ permission check`.
> **Pterohost** - хостинг Minecraft с NVMe-хранилищем, автоматическими бэкапами и круглосуточной поддержкой. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-warp-home-spawn)
---
## Голограммы на сервере Minecraft: DecentHolograms
URL: https://docs.pterohost.com/ru/minecraft-decentholograms
Обновлено: 2026-06-09
Как установить DecentHolograms и создать голограммы с плейсхолдерами, анимациями и статистикой на сервере Minecraft.
---
> **Кратко:** DecentHolograms - современный плагин для плавающих голограмм на Minecraft-серверах. Устанавливается как один .jar-файл, поддерживает PlaceholderAPI, анимации и иконки предметов. Команда создания - /dh create.
# Голограммы на сервере Minecraft: DecentHolograms
**Голограммы давно стали стандартом оформления любого серьёзного Minecraft-сервера.** Они показывают топ игроков прямо в мире, отображают баланс и онлайн в реальном времени, украшают спавн и добавляют интерактивности без единого блока интерфейса. В 2026 году самым активно поддерживаемым решением остаётся DecentHolograms - лёгкий и гибкий плагин с открытым исходным кодом, который заменил устаревший HolographicDisplays и работает на Paper/Spigot 1.20-1.21. Установка занимает две минуты, а широкие возможности анимации и плейсхолдеров PlaceholderAPI делают его пригодным для любых задач.
> **Pterohost** - игровой хостинг для Minecraft с NVMe-дисками, защитой от DDoS и поддержкой 24/7. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-decentholograms)
## Установка DecentHolograms
DecentHolograms распространяется как единый JAR-файл без зависимостей (PlaceholderAPI опционален). Порядок действий:
1. Скачай актуальный релиз с [GitHub](https://github.com/decentsoftware-eu/decentholograms/releases) или со SpigotMC (поиск "DecentHolograms").
2. Помести JAR в папку `plugins/` сервера.
3. Перезапусти сервер или выполни `/reload confirm` (лучше полный рестарт).
4. Убедись, что в логах появилась строка `[DecentHolograms] Plugin enabled`.
После первого запуска в `plugins/DecentHolograms/` появятся:
```
plugins/DecentHolograms/
config.yml - основные настройки
holograms/ - папка с файлами голограмм (по одному .yml на каждую)
lang/ - языковые файлы
```
Никакой базы данных не нужно - всё хранится в YAML-файлах.
### Опциональные зависимости
| Плагин | Зачем |
|---|---|
| PlaceholderAPI | Динамические строки: онлайн, баланс, топы |
| DecentHolograms-PAPI Expansion | Расширение для использования голограмм как источника плейсхолдеров |
| LuckPerms | Ограничение видимости голограмм по правам |
Если PlaceholderAPI уже установлен - он подхватывается автоматически. Дополнительная конфигурация не нужна.
## Первая голограмма: команда /dh create
Самый быстрый способ создать голограмму - встать на нужное место и выполнить команду:
```
/dh create <имя>
```
Пример:
```
/dh create welcome_board
```
Голограмма появится там, где стоит игрок. Она будет пустой - одна строка-заглушка. Теперь добавь строки:
```
/dh addline welcome_board Добро пожаловать на сервер!
/dh addline welcome_board &6Онлайн: &e%server_online%
/dh addline welcome_board &7Сервер работает с 2024 года
```
Флаг `&6` и подобные - стандартные цветовые коды Minecraft. Символ `%` обрамляет плейсхолдеры PAPI.
### Управление строками
| Команда | Действие |
|---|---|
| `/dh addline ` | Добавить строку в конец |
| `/dh setline ` | Заменить строку по номеру (с 1) |
| `/dh removeline ` | Удалить строку по номеру |
| `/dh insertline ` | Вставить строку перед указанной |
| `/dh delete ` | Удалить всю голограмму |
| `/dh list` | Список голограмм |
| `/dh info ` | Подробности: координаты, строки, мир |
## Типы строк: текст, иконки, пустые
DecentHolograms поддерживает три вида строк в одной голограмме.
### Текстовая строка
Обычный текст с цветовыми кодами и плейсхолдерами:
```
/dh addline my_holo &b&lTOP PLAYERS &7(обновляется раз в минуту)
```
### Строка-иконка (#ICON)
Отображает парящую 3D-модель предмета:
```
/dh addline my_holo #ICON:DIAMOND_SWORD
```
Можно использовать любой `Material` из Bukkit API. Иконка вращается сама по себе - анимировать не нужно.
Примеры материалов:
| Код | Что показывает |
|---|---|
| `DIAMOND_SWORD` | Алмазный меч |
| `EMERALD` | Изумруд |
| `PLAYER_HEAD` | Голова (стандартная) |
| `NETHER_STAR` | Звезда Незера |
| `WRITTEN_BOOK` | Книга |
### Пустая строка (#EMPTY)
Добавляет вертикальный пробел между строками:
```
/dh addline my_holo #EMPTY
```
Удобно для визуального разделения блоков.
## Настройка расположения и смещения
После создания голограмму можно переместить:
```
/dh teleport - переместить к себе
/dh moveto - абсолютные координаты
```
Расстояние между строками задаётся в конфиге `config.yml`:
```yaml
defaults:
down-origin: false
line-height: 0.275 # высота между строками, в блоках
```
Уменьши `line-height` до `0.22` для более компактных голограмм.
## Плейсхолдеры PAPI: онлайн, баланс, топы
Это главная причина, по которой большинство администраторов выбирают DecentHolograms. Любой плейсхолдер PlaceholderAPI работает прямо в строках голограммы.
### Онлайн сервера
```
/dh addline server_info &aОнлайн: &f%server_online%&7/&f%server_max_players%
```
Плейсхолдеры `%server_online%` и `%server_max_players%` входят в стандартный набор PAPI (расширение `Server`).
### Баланс игрока (Vault + EssentialsX)
```
/dh addline balance_board &6Ваш баланс: &e$%vault_eco_balance_formatted%
```
Требует PAPI-расширение `Vault`. Установи его командой:
```
/papi ecloud download Vault
/papi reload
```
### Топ игроков через PlayerStats
Для топ-листов по убийствам, смертям, блокам используй PAPI-расширение `PlayerStats`:
```
/papi ecloud download PlayerStats
/papi reload
```
Пример голограммы с топом по убийствам:
```
/dh create top_kills
/dh addline top_kills &c&lТОП УБИЙСТВ
/dh addline top_kills #EMPTY
/dh addline top_kills &71. &f%playerstats_top_kills_playername_1% &7- &c%playerstats_top_kills_1%
/dh addline top_kills &72. &f%playerstats_top_kills_playername_2% &7- &c%playerstats_top_kills_2%
/dh addline top_kills &73. &f%playerstats_top_kills_playername_3% &7- &c%playerstats_top_kills_3%
/dh addline top_kills #EMPTY
/dh addline top_kills &7Обновляется каждые 60 сек
```
### Топ баланса через Vault
```
/papi ecloud download VaultLists
/papi reload
```
```
/dh create top_balance
/dh addline top_balance &6&lТОП БОГАЧЕЙ
/dh addline top_balance #ICON:GOLD_INGOT
/dh addline top_balance &71. &e%vaultlists_top_balance_1% &7- &6$%vaultlists_top_balance_amount_1%
/dh addline top_balance &72. &e%vaultlists_top_balance_2% &7- &6$%vaultlists_top_balance_amount_2%
/dh addline top_balance &73. &e%vaultlists_top_balance_3% &7- &6$%vaultlists_top_balance_amount_3%
```
Примечание: конкретные плейсхолдеры зависят от установленного PAPI-расширения. Актуальный список всегда на [PlaceholderAPI Wiki](https://wiki.placeholderapi.com).
## Анимации
DecentHolograms поддерживает встроенные анимации через специальный синтаксис прямо в тексте строки.
### Анимация смены цветов (RAINBOW)
```
/dh addline my_holo Добро пожаловать!
```
Формат: `текст`
| Тип анимации | Эффект |
|---|---|
| `RAINBOW` | Радужная прокрутка цветов |
| `WAVE` | Волна выделенного цвета |
| `TYPEWRITER` | Эффект печатной машинки |
| `SCROLL` | Горизонтальная прокрутка |
| `BURN` | Эффект горения (сверху вниз) |
| `FLASH` | Мигание |
Пример с волной:
```
/dh addline animated_holo &b&lPTEROHOST SERVER
```
### Анимации через файл голограммы
Файлы голограмм хранятся в `plugins/DecentHolograms/holograms/.yml`. Прямое редактирование даёт больше возможностей:
```yaml
# plugins/DecentHolograms/holograms/welcome_board.yml
name: welcome_board
location: world:128.5:65.0:256.5
pages:
- lines:
- type: TEXT
height: 0.3
content: "&lДОБРО ПОЖАЛОВАТЬ"
- type: TEXT
height: 0.3
content: "&7Игроков онлайн: &f%server_online%"
- type: ICON
height: 0.6
content: NETHER_STAR
- type: TEXT
height: 0.3
content: "&6Промо: &e4START &6- скидка -20%% на хостинг"
```
После редактирования файла выполни:
```
/dh reload
```
или для всех голограмм сразу:
```
/dh reload
```
## Привязка к статистике: примеры боевых конфигураций
### Инфоборд на спавне
```
/dh create spawn_info
/dh addline spawn_info &b&l[ PTEROHOST SMP ]
/dh addline spawn_info #EMPTY
/dh addline spawn_info &7Онлайн: &f%server_online%&7/&f%server_max_players%
/dh addline spawn_info &7TPS: &a%server_tps_1%
/dh addline spawn_info &7Пинг: &e%player_ping%ms
/dh addline spawn_info #EMPTY
/dh addline spawn_info &6Ваш ник: &f%player_name%
/dh addline spawn_info &6Ваш баланс: &e$%vault_eco_balance_formatted%
```
### Голограмма возле магазина
```
/dh create shop_sign
/dh addline shop_sign #ICON:CHEST
/dh addline shop_sign &e&lМАГАЗИН
/dh addline spawn_info #EMPTY
/dh addline shop_sign &7Нажми &fF &7или &fPKM &7для открытия
/dh addline shop_sign &aРаботает 24/7
```
### Таблица рекордов по добыче блоков
```
/dh create top_mined
/dh addline top_mined &a&lТОП ШАХТЁРОВ
/dh addline top_mined #ICON:DIAMOND_PICKAXE
/dh addline top_mined &71. &f%playerstats_top_mine_block:STONE_playername_1% &7- &a%playerstats_top_mine_block:STONE_1%
/dh addline top_mined &72. &f%playerstats_top_mine_block:STONE_playername_2% &7- &a%playerstats_top_mine_block:STONE_2%
/dh addline top_mined &73. &f%playerstats_top_mine_block:STONE_playername_3% &7- &a%playerstats_top_mine_block:STONE_3%
```
## Тонкая настройка: config.yml
```yaml
# plugins/DecentHolograms/config.yml
version: "2"
defaults:
down-origin: false # если true - точка привязки снизу голограммы
line-height: 0.275 # расстояние между строками
text-update-interval: 20 # интервал обновления текста в тиках (20 = 1 сек)
icon-update-interval: 20 # интервал обновления иконок
permissions:
enabled: true # включить систему прав видимости
save-on-stop: true # сохранять голограммы при остановке сервера
```
Параметр `text-update-interval` напрямую влияет на нагрузку. При 10-20 голограммах с PAPI-плейсхолдерами значение `40` (2 секунды) - хороший баланс между актуальностью и производительностью.
## Ограничение видимости по правам
```
/dh setperm
```
Пример - голограмма видна только донаторам:
```
/dh setperm vip_info pterohost.vip
```
Игрок без права `pterohost.vip` голограмму не увидит вообще - не получит пакет спавна.
Убрать ограничение:
```
/dh setperm vip_info ""
```
## Полезные консольные команды
Все команды работают и из консоли сервера (без слеша через RCON или консоль панели):
```bash
# Создать голограмму в конкретных координатах
dh create spawn_top world 128 65 256
# Переместить существующую
dh moveto spawn_top world 130 65 258
# Клонировать голограмму
dh clone spawn_top spawn_top_copy
# Экспортировать все голограммы
dh export
```
## Устранение типичных проблем
| Проблема | Причина | Решение |
|---|---|---|
| Плейсхолдеры не заменяются | PlaceholderAPI не установлен или нет нужного расширения | `/papi list` - проверь наличие расширения |
| Голограмма не появляется | Конфликт с другими плагинами на тот же ивент | Проверь `latest.log` на ошибки при загрузке |
| Иконка показывает серый блок | Неверный `Material` | Проверь точное название в документации Bukkit API |
| Анимация не работает | Опечатка в синтаксисе тега | Формат строго `` |
| TPS падает при обновлении | Слишком малый `text-update-interval` | Поставь 40-60 тиков вместо 20 |
## Связанные материалы
Для полноценного оформления сервера пригодятся: настройка охраняемых зон через [WorldGuard](/ru/minecraft-worldguard-regiony), выбор ядра для максимальной производительности в статье [Ядра Minecraft](/ru/minecraft-cores), а также практические советы по снижению нагрузки в руководстве [Оптимизация сервера Minecraft](/ru/minecraft-server-optimization).
## Заключение
DecentHolograms - один из немногих плагинов, который закрывает сразу несколько задач: визуальное оформление спавна, динамические топы, инфоборды с реальным временем. Установка занимает пять минут, а гибкость PlaceholderAPI позволяет выводить любые данные - от баланса до TPS. Начни с базовых текстовых голограмм на спавне, затем подключи PAPI-расширения для топов и постепенно добавляй анимации. Итог - профессиональный вид сервера без единого лишнего плагина.
> **Pterohost** - стабильный хостинг для Minecraft-серверов с NVMe, защитой от DDoS и поддержкой 24/7. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-decentholograms)
---
## Данжи на сервере Minecraft: MythicDungeons
URL: https://docs.pterohost.com/ru/minecraft-mythicdungeons
Обновлено: 2026-06-04
Как установить MythicDungeons и создать инстансные данжи на сервере Minecraft: боссы, волны, лут, групповые подземелья.
---
> **Кратко:** MythicDungeons превращает обычный сервер Minecraft в платформу с инстансными подземельями - каждая группа получает свою копию данжа с боссами, волнами мобов и уникальным лутом. Установи плагин, создай схематику, настрой конфиг - и игроки смогут проходить данжи независимо друг от друга.
# Данжи на сервере Minecraft: MythicDungeons
**MythicDungeons - один из самых мощных инструментов для создания RPG-контента на серверах Minecraft в 2026 году.** Плагин генерирует изолированные инстансы подземелий для каждой группы: боссы, ловушки, волны мобов и сундуки с наградами независимы для каждой команды. Это решает главную боль MMO-серверов - конкуренцию между группами за одних и тех же боссов и лут. В связке с MythicMobs вы получаете полноценный dungeon-движок с поддержкой сложных скриптов, фаз боссов и условных триггеров. Статья охватывает полный цикл: от установки до запуска первого рабочего данжа с группами, лутом и интеграцией с другими плагинами.
> **Pterohost** - игровой хостинг для Minecraft с NVMe-дисками, DDoS-защитой и поддержкой 24/7, который потянет тяжёлые данжи и инстансы без лагов. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-mythicdungeons)
## Установка MythicDungeons и MythicMobs
MythicDungeons работает только в паре с MythicMobs - без него плагин не запустится. Оба плагина распространяются через ресурсы MythicCraft.
**Требования:**
- Paper или Purpur 1.20.4+ / 1.21.x
- Java 21
- MythicMobs 5.6.x или новее
- WorldEdit или FastAsyncWorldEdit (для схематик)
**Шаги установки:**
1. Скачайте `MythicMobs-Premium-5.x.x.jar` с официального сайта MythicCraft (платный плагин).
2. Скачайте `MythicDungeons-x.x.x.jar` там же.
3. Оба файла поместите в папку `plugins/` сервера.
4. Перезапустите сервер - плагины создадут свои конфигурационные папки.
После первого запуска структура папок:
```
plugins/
MythicMobs/
Mobs/
Skills/
Items/
LootTables/
MythicDungeons/
dungeons/
schematics/
config.yml
```
Проверьте, что плагины загрузились:
```
/mm version
/md version
```
Обе команды должны вернуть номер версии без ошибок. Если MythicMobs не загрузился - MythicDungeons тоже не стартует, проверяйте лог `logs/latest.log`.
## Создание схематики данжа
Схематика - это основа данжа, физическое строение подземелья. MythicDungeons использует файлы `.schem` (формат WorldEdit/FAWE).
**Требования к схематике:**
- В структуре должны быть маркеры - знаки (Sign) или блоки с конкретными метками, которые MythicDungeons распознаёт как точки спауна, триггеры, входы и выходы.
- Рекомендуемый размер: до 200x200x200 блоков для производительности.
- Обязательный маркер входа: знак с текстом `[MD_START]` или конфигурируемый блок-маркер.
**Пошаговое создание:**
1. Постройте данж в любом мире (лучше - в отдельном плоском мире для удобства).
2. Расставьте маркеры:
- Точка спауна группы: знак с `[MD_START]`
- Выход из данжа: знак с `[MD_EXIT]`
- Триггерные зоны: знаки с `[MD_TRIGGER:имя_триггера]`
3. Выделите область WorldEdit:
```
//pos1
//pos2
//schematic save my_dungeon
```
4. Скопируйте файл `my_dungeon.schem` из `plugins/WorldEdit/schematics/` в `plugins/MythicDungeons/schematics/`.
Если вы используете FAWE (FastAsyncWorldEdit), схематики сохраняются в `plugins/FastAsyncWorldEdit/schematics/` - не перепутайте путь.
## Конфигурация данжа
Каждый данж описывается отдельным YAML-файлом в папке `plugins/MythicDungeons/dungeons/`. Создайте файл `plugins/MythicDungeons/dungeons/my_dungeon.yml`:
```yaml
My_Dungeon:
# Отображаемое название данжа
displayName: "Подземелье Теней"
# Ссылка на файл схематики (без расширения)
schematic: my_dungeon
# Мир, в котором будут создаваться инстансы
instanceWorld: dungeon_instances
# Минимум и максимум игроков в группе
minPlayers: 1
maxPlayers: 5
# Перезарядка в секундах (cooldown для игрока)
cooldown: 3600
# Время жизни инстанса в секундах (автоудаление)
instanceTimeout: 1800
# Точка входа (должна совпадать с маркером в схематике)
startMarker: MD_START
endMarker: MD_EXIT
# Какой уровень открывает данж (опционально, интеграция с плагинами уровней)
# requiredLevel: 10
objectives:
- killBoss
rewards:
commands:
- "give {player} diamond 3"
- "eco give {player} 500"
items:
- Epic_Sword
- Rare_Helmet
```
Параметр `instanceWorld` задаёт мир, где генерируются инстансы. MythicDungeons создаст и будет управлять этим миром сам - вам не нужно его создавать вручную.
## Настройка боссов через MythicMobs
Боссы данжей описываются в папке `plugins/MythicMobs/Mobs/`. Создайте файл `ShadowBoss.yml`:
```yaml
ShadowBoss:
Type: WITHER_SKELETON
Display: "&4Повелитель Теней"
Health: 500
Damage: 15
Options:
MovementSpeed: 0.3
KnockbackResistance: 1.0
PreventOtherDrops: true
PreventLeashing: true
Skills:
- skill{s=ShadowPhase1} @self ~onCombat 0.05
- skill{s=ShadowEnrage} @self ~onHealthPercent{hp=30}
- message{m="Вы не уйдёте отсюда живыми!"} @NearestPlayer{r=20} ~onSpawn
Drops:
- ShadowSword 1 1.0
- 50-150xp 1 1.0
```
Скиллы описываются в `plugins/MythicMobs/Skills/`:
```yaml
ShadowPhase1:
Skills:
- projectile{onTick=ShadowBolt;v=2;i=2} @EIR
- particles{p=SMOKE_LARGE;a=20;s=0.3} @Self
ShadowEnrage:
Skills:
- message{m="Босс разъярён!"} @NearestPlayer{r=30}
- potion{t=SPEED;d=999;l=3} @Self
- effect:sound{s=entity.wither.death;v=1;p=0.5} @World
```
Теперь в конфиге данжа свяжите босса с триггером:
```yaml
My_Dungeon:
# ... остальные параметры ...
rooms:
BossRoom:
trigger: BOSS_TRIGGER
mobs:
- ShadowBoss:1
completion: killAll
```
## Волны мобов и триггеры
MythicDungeons поддерживает волновые комнаты - игроки входят в зону, запускается первая волна, после уничтожения всех мобов - следующая.
Пример волновой комнаты в конфиге данжа:
```yaml
My_Dungeon:
rooms:
WaveRoom:
trigger: WAVE_TRIGGER
completion: killAll
waves:
Wave1:
mobs:
- SkeletonArcher:5
- ZombieSoldier:3
delay: 0
Wave2:
mobs:
- SkeletonArcher:8
- SkeletonMage:2
delay: 5
Wave3:
mobs:
- EliteZombie:3
- ZombieSoldier:5
delay: 10
```
Параметр `delay` - задержка в секундах перед следующей волной после уничтожения предыдущей. Параметр `completion: killAll` означает, что комната завершается только когда все мобы мертвы.
**Типы триггеров:**
- `WALK` - активируется когда игрок заходит в зону
- `INTERACT` - активируется при взаимодействии с блоком/предметом
- `KILL` - активируется после убийства определённого моба
- `TIMER` - активируется через заданное время
Триггер в схематике обозначается знаком с текстом `[MD_TRIGGER:WAVE_TRIGGER]` - название должно совпадать с именем в YAML.
## Лут и таблицы наград
MythicMobs управляет всем лутом через LootTables. Создайте файл `plugins/MythicMobs/LootTables/DungeonLoot.yml`:
```yaml
DungeonBasicLoot:
Items:
- ShadowSword 1 0.15
- DungeonAmulet 1 0.10
- RareHelmet 1 0.08
- DiamondSword 1 0.25
- GoldIngot 5-15 0.60
- ExperienceOrb 100-300 1.0
TotalItems: 3
DungeonRareLoot:
Items:
- LegendarySword 1 0.05
- MythicArmor 1 0.03
- AncientScroll 1 0.20
- Diamond 3-8 0.50
TotalItems: 2
```
Числа после названия предмета: количество - шанс (1.0 = 100%, 0.05 = 5%).
В конфиге данжа ссылайтесь на таблицу лута:
```yaml
My_Dungeon:
rewards:
lootTable: DungeonBasicLoot
commands:
- "give {player} experience_bottle 5"
```
Для сундуков внутри схематики: разместите сундуки с особыми именами, которые MythicDungeons распознаёт и заполняет по таблице лута при генерации инстанса.
## Групповые данжи: управление инстансами
Групповая система MythicDungeons работает автоматически - игроки формируют группу, лидер запускает данж.
**Создание группы:**
```
/md group create MyGroup
/md group invite PlayerName
/md group join MyGroup
```
**Запуск данжа:**
```
/md start My_Dungeon
```
Лидер группы стоит у входного портала и вводит команду. Все участники группы телепортируются в инстанс. Если один из игроков офлайн - инстанс не стартует (настраивается).
**Административные команды:**
| Команда | Описание |
|---|---|
| `/md instance list` | Список активных инстансов |
| `/md instance end ` | Принудительное завершение инстанса |
| `/md instance tp ` | Телепорт администратора в инстанс |
| `/md dungeon reload` | Перезагрузка конфигов данжей |
| `/md dungeon reset ` | Сброс cooldown для игрока |
| `/mm reload` | Перезагрузка MythicMobs (боссы, скиллы) |
**Настройка кулдауна для групп:**
В конфиге данжа параметр `cooldown` задаётся в секундах. Для VIP-игроков можно обойти кулдаун через пермишен:
```
mythicdungeons.bypass.cooldown.My_Dungeon
```
Интеграция с LuckPerms позволяет давать разные кулдауны разным группам игроков - об этом подробнее в статье о [настройке LuckPerms](/ru/minecraft-luckperms-setup).
## Интеграция с другими плагинами
**WorldGuard** - защита мира инстансов от гриферства. MythicDungeons создаёт мир `dungeon_instances`, его нужно защитить глобальным флагом. Добавьте в конфиг WorldGuard для этого мира:
```
build: deny
```
Либо создайте глобальный регион `__global__` для мира инстансов. Подробности - в статье о [WorldGuard регионах](/ru/minecraft-worldguard-regiony).
**PlaceholderAPI** - MythicDungeons предоставляет плейсхолдеры для HUD-плагинов:
```
%mythicdungeons_dungeon% - название текущего данжа
%mythicdungeons_instance_id% - ID инстанса
%mythicdungeons_players% - число игроков в группе
```
**Vault/Economy** - для денежных наград используйте команды в блоке `rewards`:
```yaml
rewards:
commands:
- "eco give {player} 1000"
- "give {player} diamond 5"
```
`{player}` автоматически заменяется на ник каждого участника группы при завершении данжа.
**Citizens/NPC** - создайте NPC-входы в данжи для удобного UX. NPC с кликабельным диалогом запускает команду `/md start My_Dungeon` от имени игрока.
## Оптимизация производительности
Инстансные данжи создают нагрузку: каждый инстанс - это загруженные чанки с мобами. Несколько правил для стабильной работы:
**Ограничение одновременных инстансов.** В `plugins/MythicDungeons/config.yml`:
```yaml
settings:
maxInstances: 10
instanceCleanupInterval: 300
chunkLoadDelay: 2
```
`maxInstances` - максимум одновременных инстансов на весь сервер. `instanceCleanupInterval` - как часто (в секундах) проверяются завершённые инстансы для выгрузки. `chunkLoadDelay` - задержка между загрузкой чанков при создании инстанса (снижает пиковую нагрузку).
**Размер схематик.** Чем меньше схематика - тем быстрее создаётся инстанс. Данж 100x50x100 блоков генерируется за 1-2 секунды, 300x100x300 - за 5-10 секунд. Игроки видят экран загрузки только во время генерации.
**Aikar's flags для JVM.** Если у вас тяжёлые данжи с большим числом мобов, стандартные JVM-флаги критически важны. Выделяйте достаточно RAM: 4 ГБ минимум для сервера с 5-10 одновременными инстансами.
**Мониторинг.** Используйте `/spark profiler` или `/timings` чтобы отследить, какие события MythicMobs создают спайки TPS. Обычно виновники - сложные AoE-скиллы боссов с большим радиусом.
Выбор ядра сервера тоже влияет на производительность - подробности в статье о [серверных ядрах Minecraft](/ru/minecraft-cores).
## Пример готовой структуры данжа
Итоговая структура файлов для рабочего данжа:
```
plugins/
MythicDungeons/
dungeons/
my_dungeon.yml - конфиг данжа
schematics/
my_dungeon.schem - схематика строения
MythicMobs/
Mobs/
ShadowBoss.yml - описание боссов
WaveMobs.yml - мобы для волн
Skills/
ShadowSkills.yml - скиллы боссов
Items/
DungeonItems.yml - кастомные предметы
LootTables/
DungeonLoot.yml - таблицы лута
```
Минимальный чеклист перед тестом:
- [ ] Схематика сохранена в правильную папку
- [ ] Маркеры `[MD_START]` и `[MD_EXIT]` есть в схематике
- [ ] Конфиг данжа ссылается на правильное имя схематики
- [ ] MythicMobs и MythicDungeons оба загружены без ошибок в логе
- [ ] WorldEdit/FAWE установлен и работает
- [ ] Мир `dungeon_instances` создан или прописан существующий
## Связанные материалы
Для полноценной настройки данжевого сервера изучите статьи о системе прав [LuckPerms](/ru/minecraft-luckperms-setup) - она нужна для разграничения доступа к данжам по рангам, [WorldGuard регионах](/ru/minecraft-worldguard-regiony) - для защиты мира инстансов и входных зон, а также о [выборе серверного ядра](/ru/minecraft-cores) - Paper и Purpur дают существенный прирост производительности при работе с MythicDungeons под нагрузкой.
## Заключение
MythicDungeons в связке с MythicMobs - это полноценный движок для RPG-данжей на Minecraft-сервере. Инстансная система решает проблему конкуренции за контент, гибкий YAML-конфиг позволяет создавать данжи любой сложности - от простых зачисток до многофазовых боссов с волнами. Ключевые шаги: установка обоих плагинов, создание схематики с маркерами, описание боссов в MythicMobs и настройка конфига данжа с волнами и лутом. Производительность контролируется лимитом инстансов и размером схематик. Начните с простого одноуровневого данжа, проверьте стабильность, затем усложняйте скриптами и многокомнатными структурами.
> **Pterohost** - хостинг для Minecraft-серверов с NVMe SSD, защитой от DDoS и круглосуточной поддержкой - идеальная основа для серверов с MythicDungeons и большим числом игроков. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-mythicdungeons)
---
## Донат на сервере Minecraft: автовыдача привилегий
URL: https://docs.pterohost.com/ru/minecraft-donate-autovydacha
Обновлено: 2026-06-05
Настройка автовыдачи донат-привилегий на сервере Minecraft через LuckPerms, RCON и магазин. Команды, конфиги, защита от чарджбэков.
---
> **Кратко:** Автовыдача привилегий работает через RCON - магазин доната отправляет команду LuckPerms сразу после оплаты. Настроить это можно за час на любом Java-сервере. Временные привилегии управляются командой `parent addtemp` и истекают без ручного вмешательства.
# Донат на сервере Minecraft: автовыдача привилегий
**Ручная выдача привилегий после каждой покупки - одна из самых частых причин, по которой новые серверы теряют доверие игроков.** Купил игрок донат в 2 часа ночи - ждёт до утра, пока администратор проснётся. В 2026 году стандартом стала полная автоматизация: магазин получил платёж, отправил RCON-команду, LuckPerms выдал группу. Всё это занимает несколько секунд. В статье разберём полную цепочку - от настройки RCON и LuckPerms до защиты от чарджбэков и идей для кейсов.
> **Pterohost** - игровой хостинг с NVMe-дисками, защитой от DDoS и поддержкой 24/7, где удобно держать донат-сервер с высокой доступностью. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-donate-autovydacha)
## Как работает автовыдача: общая схема
Цепочка автовыдачи состоит из трёх звеньев:
1. **Магазин доната** - принимает платёж, хранит очередь команд.
2. **RCON** - протокол, через который магазин отправляет команды на сервер.
3. **LuckPerms** - плагин прав, выполняет команду и сохраняет группу игрока.
```
Игрок оплатил -> Магазин (Tebex/DonateCase) -> RCON -> server.jar -> LuckPerms
```
Если сервер был офлайн в момент оплаты - нормальный магазин буферизует команды и выполнит их при следующем подключении. Это критически важно: без буферизации игрок может заплатить и не получить ничего.
### Требования к серверу
- Java Minecraft (Paper 1.20+ или Folia, Fabric с соответствующими модами)
- LuckPerms 5.x (актуальная версия на 2026 год)
- Открытый RCON-порт (по умолчанию 25575, не путать с игровым 25565)
- Магазин доната с поддержкой RCON или webhook
## Настройка RCON на сервере
RCON включается в файле `server.properties`. Найди и измени следующие строки:
```properties
enable-rcon=true
rcon.port=25575
rcon.password=ТвойСложныйПароль2026
broadcast-rcon-to-ops=false
```
Пароль должен быть длинным и случайным - не "admin", не "123456". RCON-порт закрой файрволом от всех IP кроме сервера магазина. На Linux с ufw:
```bash
ufw allow from to any port 25575
ufw deny 25575
```
Если магазин и игровой сервер на одной машине - используй `127.0.0.1` как хост RCON в настройках магазина, внешний порт вообще не открывай.
После изменений перезапусти сервер. Проверить соединение можно утилитой `mcrcon`:
```bash
mcrcon -H 127.0.0.1 -P 25575 -p ТвойСложныйПароль2026 "list"
```
В ответ придёт список онлайн-игроков - значит RCON работает.
## Структура групп в LuckPerms
Перед настройкой магазина определись со структурой групп. Пример типичной иерархии для коммерческого сервера:
| Группа | Примерная цена | Что даёт |
|----------|---------------|----------|
| default | бесплатно | базовые права |
| vip | 199 руб. | цветной ник, /nick, /fly в лобби |
| premium | 499 руб. | + /hat, /craft, увеличенный инвентарь |
| elite | 999 руб. | + /back, /top, кастомный префикс |
| god | 1999 руб. | все права, уникальные эффекты |
Создай группы командами в консоли сервера (или через `/lp`):
```
lp creategroup vip
lp creategroup premium
lp creategroup elite
lp creategroup god
```
Настрой наследование - каждая следующая группа наследует права предыдущей:
```
lp group premium parent add vip
lp group elite parent add premium
lp group god parent add elite
```
Это позволяет не дублировать права - достаточно добавить только уникальные для каждой группы.
### Назначение прав группам
Пример базовой настройки для группы vip:
```
lp group vip permission set essentials.nick true
lp group vip permission set essentials.fly true
lp group vip meta setprefix "&b[VIP] "
lp group vip meta setsuffix " &7✦"
```
Проверь, что права реально работают командой:
```
lp group vip permission check essentials.nick
```
## Команды автовыдачи через RCON
Это главная часть - команды, которые магазин отправляет через RCON при подтверждении платежа.
### Постоянная привилегия
```
lp user %player% parent add vip
```
`%player%` - плейсхолдер ника, который магазин подставляет автоматически. Команда добавляет игрока в группу навсегда.
### Временная привилегия
```
lp user %player% parent addtemp vip 30d accumulate
```
Разбор параметров:
- `30d` - срок действия (d=дни, h=часы, m=минуты). Можно `7d`, `1mo` (месяц), `90d`.
- `accumulate` - если игрок уже в группе vip на 10 дней и купил ещё 30, итоговый срок станет 40 дней. Альтернатива - `replace` (заменяет) и `deny` (отклоняет повторную покупку).
После истечения срока LuckPerms автоматически удаляет группу - ничего делать вручную не нужно.
### Повышение группы
Если у игрока уже есть vip и он купил premium, нужно удалить старую группу и добавить новую:
```
lp user %player% parent remove vip
lp user %player% parent add premium
```
Или через один `set` (полностью заменяет основную группу):
```
lp user %player% parent set premium
```
### Выдача предметов и денег вместе с привилегией
Часто донат включает не только группу, но и стартовый бонус. Пример набора команд для одного пакета (все отправляются последовательно через RCON):
```
lp user %player% parent addtemp vip 30d accumulate
give %player% diamond 16
eco give %player% 5000
broadcast &6Игрок %player% приобрёл &b[VIP] &6- спасибо за поддержку!
```
В Tebex каждая команда вводится отдельной строкой в настройках пакета. Порядок выполнения - сверху вниз.
## Настройка магазина доната
### Tebex (BuiltByBit / Buycraft)
Tebex - наиболее распространённый вариант для международных и российских серверов в 2026 году. Имеет бесплатный план с комиссией 10% и платный с фиксированной оплатой.
Подключение к серверу:
1. Установи плагин Tebex (скачай с официального сайта под свою версию Paper).
2. В консоли: `tebex secret <твой_секрет_из_панели_Tebex>`.
3. Tebex сам создаст защищённое соединение - отдельно RCON не нужен (плагин обрабатывает команды внутри сервера).
Команды настраиваются в панели Tebex -> Packages -> Commands. Используй плейсхолдер `{username}` (не `%player%` - у Tebex свой формат):
```
lp user {username} parent addtemp vip 30d accumulate
```
Буферизация команд включена по умолчанию - если игрок купил донат когда сервер офлайн, команды выполнятся при следующем запуске.
### DonateCase
DonateCase - российская альтернатива, популярная на постсоветском пространстве. Работает как плагин с встроенным HTTP-сервером для приёма вебхуков от платёжных систем.
Конфиг подключения (`plugins/DonateCase/config.yml`):
```yaml
rcon:
enabled: true
host: "127.0.0.1"
port: 25575
password: "ТвойСложныйПароль2026"
```
Команды задаются в конфиге кейса или пакета:
```yaml
commands:
- "lp user %player% parent addtemp vip 30d accumulate"
- "give %player% diamond 8"
```
### Собственный сайт с RCON
Если пишешь магазин сам (PHP, Python, Node.js), подключение к RCON выглядит так (пример на Python с библиотекой `mcrcon`):
```python
from mcrcon import MCRcon
def give_privilege(player: str, group: str, days: int):
with MCRcon("127.0.0.1", "ТвойПароль", port=25575) as mcr:
resp = mcr.command(f"lp user {player} parent addtemp {group} {days}d accumulate")
print(resp)
# Вызов после подтверждения платежа
give_privilege("Steve", "vip", 30)
```
Установка библиотеки: `pip install mcrcon`
Важно: вызывай RCON-команды только после финального подтверждения платежа от платёжной системы (не после редиректа пользователя - он ненадёжен).
## Защита от чарджбэков
Чарджбэк - отмена платежа через банк. Для игрового сервера это означает потерю денег при уже выданной привилегии. Несколько уровней защиты:
### На уровне платёжной системы
- **ЮKassa** - минимальный риск чарджбэка на российских картах, интеграция через API.
- **Robokassa** - поддерживает мультивалютность, встроенные антифрод-инструменты.
- **QIWI API** - популярен среди подростковой аудитории Minecraft, платежи финальны.
- Избегай PayPal для игрового контента - высокий процент чарджбэков.
В публичной оферте сервера укажи: "Цифровые товары (игровые привилегии и предметы) не подлежат возврату согласно статье 26.1 Закона о защите прав потребителей" - это законная формулировка для электронных услуг.
### Автоматический отзыв привилегий
Настрой webhook от платёжной системы на endpoint своего сайта. При получении уведомления о чарджбэке:
```python
def handle_chargeback(player: str, group: str):
with MCRcon("127.0.0.1", "ТвойПароль", port=25575) as mcr:
# Удаляем привилегию
mcr.command(f"lp user {player} parent remove {group}")
# Баним игрока с причиной
mcr.command(f"ban {player} Chargeback - возврат платежа")
# Оповещаем администраторов
mcr.command(f"tellraw @a[tag=admin] {{\"text\":\"Чарджбэк от {player}\",\"color\":\"red\"}}")
```
В Tebex эта функциональность частично встроена: в настройках магазина есть раздел Chargebacks с опцией автобана.
### Логирование транзакций
Всегда сохраняй лог: ник игрока, IP при покупке, время, сумму, идентификатор транзакции. При спорных ситуациях это доказательная база. Минимальный пример таблицы MySQL:
```sql
CREATE TABLE donations (
id INT AUTO_INCREMENT PRIMARY KEY,
player VARCHAR(64) NOT NULL,
package VARCHAR(64) NOT NULL,
amount DECIMAL(10,2) NOT NULL,
transaction_id VARCHAR(128) UNIQUE,
player_ip VARCHAR(45),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
status ENUM('pending','completed','charged_back') DEFAULT 'pending'
);
```
## Донат-кейсы: идеи и реализация
Донат-кейсы - формат лутбоксов, популярный на выживальных и мини-игровых серверах. Игрок платит за открытие кейса и получает случайный приз.
### Что класть в кейсы (баланс важен)
Хорошо работающий кейс содержит призы разной ценности:
| Вероятность | Приз |
|-------------|------|
| 40% | Ресурсы (алмазы, изумруды, редкие блоки) |
| 25% | Зелья и зачарования |
| 15% | Кастомные скины брони (через ItemMeta) |
| 10% | Питомцы или эффекты частиц (плагин Cosmetics/Citizens) |
| 7% | Валюта сервера (5000-10000 монет) |
| 2.5% | Временный VIP на 7 дней |
| 0.5% | Топ-привилегия или уникальный ник-эффект |
Не клади в кейсы предметы, дающие боевое преимущество (God-броня из коробки разрушает экономику). Редкие призы должны быть косметическими или экономическими, но не PvP-доминирующими.
### Реализация через DonateCase
В `plugins/DonateCase/cases/epic.yml` пример структуры:
```yaml
case:
title: "&6&lEPIC CASE"
animation: "wheel"
open_cost: 149
currency: "vault"
items:
diamonds:
material: DIAMOND
amount: 32
chance: 40
display_name: "&b32 Алмаза"
commands:
- "give %player% diamond 32"
temp_vip:
material: EMERALD
amount: 1
chance: 2.5
display_name: "&a[VIP] на 7 дней"
commands:
- "lp user %player% parent addtemp vip 7d accumulate"
- "broadcast &a%player% выбил [VIP] из Epic Case!"
```
### Ключи к кейсам
Ключи продаются в магазине или выдаются за активность. Пример выдачи ключа через RCON:
```
donatecase key give %player% epic 1
```
Или физическим предметом через команду плагина (зависит от версии DonateCase):
```
donatecase give %player% epic
```
## Уведомления игрокам об истечении привилегий
LuckPerms сам удаляет просроченные группы, но игрок не получает уведомление по умолчанию. Добавь напоминание через плагин скриптов (Skript) или расписание задач.
Пример скрипта Skript (`plugins/Skript/scripts/vip-reminder.sk`):
```
every 24 hours:
loop all players:
set {_exp} to expiry time of group "vip" of loop-player
if {_exp} is set:
if {_exp} < (now + 3 days):
send "&eТвоя привилегия &b[VIP] &eистекает менее чем через 3 дня! Продли на %link%." to loop-player
```
Это увеличивает конверсию на продление - игрок видит напоминание и идёт в магазин.
## Типичные ошибки при настройке
**RCON не отвечает** - убедись, что `enable-rcon=true` в `server.properties`, сервер перезапущен, порт не заблокирован файрволом.
**Команда выполняется, но привилегия не выдаётся** - проверь регистр ника (LuckPerms чувствителен к регистру в некоторых режимах хранения). Используй `lp user <ник> info` для диагностики.
**Привилегия выдаётся дважды** - магазин отправил команду два раза из-за таймаута. Используй режим `accumulate` в `parent addtemp` - повторная выдача просто продлит срок.
**Игрок офлайн при покупке** - Tebex буферизует команды автоматически. В собственном решении храни очередь в базе данных и выполняй при входе игрока на сервер (событие PlayerJoinEvent + RCON).
## Связанные материалы
Для настройки полноценного сервера с донатом также читай: [команды EssentialsX](/ru/minecraft-essentialsx-commands) - плагин даёт большинство экономических команд (/pay, /balance, /eco), [основные параметры server.properties](/ru/minecraft-server-properties-guide) - корректная настройка базы сервера перед добавлением плагинов, и [устранение лагов сервера](/ru/minecraft-server-lags-fix) - высокая нагрузка от кейсов и привилегий требует оптимизированного сервера.
## Заключение
Автовыдача донат-привилегий - это не сложно, если понять цепочку: платёж -> RCON -> LuckPerms. Временные привилегии через `parent addtemp` с режимом `accumulate` решают большинство задач без дополнительных скриптов. Защита от чарджбэков начинается с выбора платёжной системы и заканчивается автоматическим отзывом прав через вебхук. Донат-кейсы хорошо работают когда призы сбалансированы - косметика и временные бонусы без разрушения игровой экономики. Настроив всё один раз, получишь систему которая работает без участия администратора круглосуточно.
> **Pterohost** - хостинг Minecraft-серверов с SSD-дисками NVMe, постоянной DDoS-защитой и технической поддержкой в любое время суток. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-donate-autovydacha)
---
## Иконка сервера Minecraft: server-icon.png
URL: https://docs.pterohost.com/ru/minecraft-server-icon-png
Обновлено: 2026-06-13
Как создать и установить иконку server-icon.png 64x64 для Minecraft-сервера: формат, размещение, обновление кэша и решение частых проблем.
---
> **Кратко:** Иконка сервера - файл server-icon.png размером строго 64x64 пикселей в корне сервера. Поместите PNG туда же, где лежит server.properties, перезапустите сервер - иконка появится в списке серверов лаунчера. Если клиент не показывает обновлённую иконку - удалите сервер из списка и добавьте заново (сброс кэша).
# Иконка сервера Minecraft: server-icon.png
**Иконка сервера** - небольшое изображение 64x64 пикселей, которое игроки видят в списке мультиплеер-серверов рядом с MOTD и счётчиком онлайна. Это первое, на что обращает внимание потенциальный игрок при выборе сервера, и при этом один из самых простых элементов оформления. В 2026 году требования к иконке не изменились со времён Minecraft 1.7.2 - те же 64x64 PNG в корне сервера. Зато инструменты для создания и управления иконками стали значительно удобнее: от онлайн-редакторов пикселей до плагинов с анимацией. В этой статье - полный цикл: создание, размещение, проверка, обновление кэша и решение нестандартных ситуаций.
> **Pterohost** - игровой хостинг с NVMe SSD, DDoS-защитой L4+L7 и поддержкой 24/7. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-server-icon-png)
## Требования к файлу server-icon.png
Minecraft проверяет иконку при старте сервера и применяет жёсткие ограничения. Если хотя бы одно условие не соблюдено - иконка просто не загрузится и сервер покажет стандартный знак вопроса.
| Параметр | Требование |
|---|---|
| Имя файла | `server-icon.png` (строчные, точно) |
| Формат | PNG (JPEG и GIF не поддерживаются) |
| Ширина | 64 пикселя |
| Высота | 64 пикселя |
| Цветовой режим | RGB или RGBA (с прозрачностью) |
| Расположение | Корень папки сервера |
| Максимальный размер файла | ~250 KB (практически без ограничений) |
**Важно про имя файла:** регистр букв имеет значение на Linux-серверах. Файл `Server-Icon.PNG` или `server_icon.png` работать не будет - только точное написание `server-icon.png`.
**Важно про размер:** сервер не масштабирует изображение самостоятельно. Картинка 128x128 или 32x32 будет проигнорирована. Только строго 64x64.
### Почему именно 64x64?
Формат фиксирован с ранних версий Minecraft и закодирован в протоколе. Клиент принимает иконку в виде Base64-строки внутри ответа на ping-запрос, и ожидает именно 64x64 PNG. Изменить это ограничение без модификации клиента невозможно.
## Как создать иконку 64x64
### Вариант 1: онлайн-редакторы
Для быстрого создания пиксельной иконки подходит **Piskel** (piskelapp.com) или **Lospec Pixel Editor** (lospec.com/pixel-editor). Оба работают в браузере без установки.
Порядок действий в Piskel:
1. Создайте новый спрайт: File -> New Sprite.
2. Установите размер 64x64.
3. Нарисуйте иконку (логотип, буква, пиксельный персонаж).
4. Экспортируйте: Export -> PNG -> Download.
### Вариант 2: Photoshop / GIMP
Если у вас готовый логотип большего размера:
1. Откройте исходное изображение.
2. Измените размер холста до 64x64 (Image -> Scale Image в GIMP или Image -> Image Size в Photoshop).
3. Используйте алгоритм масштабирования Lanczos (GIMP) или Bicubic Sharper (Photoshop) для наилучшего качества при уменьшении.
4. Сохраните как PNG: в GIMP - File -> Export As -> .png, в Photoshop - File -> Save As -> PNG.
**Совет по качеству:** уменьшайте с кратных размеров - 128x128 -> 64x64 или 256x256 -> 64x64 даёт лучший результат, чем, например, 200x150 -> 64x64.
### Вариант 3: ImageMagick на сервере
Если нужно конвертировать изображение прямо на хостинге через SSH:
```bash
# Установка (Debian/Ubuntu)
apt-get install imagemagick -y
# Масштабирование любого изображения до 64x64
convert original-logo.png -resize 64x64! server-icon.png
```
Флаг `!` после `64x64` игнорирует соотношение сторон и принудительно растягивает до точного размера. Если нужно сохранить пропорции с полями:
```bash
convert original-logo.png -resize 64x64 -background transparent -gravity center -extent 64x64 server-icon.png
```
### Вариант 4: Python (PIL/Pillow)
```python
from PIL import Image
img = Image.open("original.png")
img = img.resize((64, 64), Image.LANCZOS)
img.save("server-icon.png", "PNG")
```
## Размещение файла в корне сервера
### Структура папки сервера
```
server/
├── server-icon.png <- сюда кладём иконку
├── server.properties
├── bukkit.yml <- (если Spigot/Paper)
├── spigot.yml <- (если Spigot/Paper)
├── paper.yml <- (если Paper)
├── plugins/
├── world/
├── world_nether/
├── world_the_end/
└── server.jar
```
Иконка должна быть в той же папке, что и `server.properties`. Это корень - не в папке `plugins/`, не в `world/`, не где-то ещё.
### Загрузка через панель Pterodactyl
Если хостинг работает на базе Pterodactyl (или совместимой панели):
1. Откройте файловый менеджер сервера в панели.
2. Убедитесь, что находитесь в корневой директории (обычно `/home/container/` или просто `/`).
3. Нажмите Upload и выберите файл `server-icon.png`.
4. Проверьте, что файл появился в списке рядом с `server.properties`.
### Загрузка через FTP/SFTP
```bash
# Через sftp-клиент (например, sftp)
sftp user@your-server-ip
sftp> cd /path/to/minecraft
sftp> put server-icon.png
sftp> ls -la server-icon.png # проверка
sftp> exit
```
Или через FileZilla: подключитесь по SFTP, перейдите в корень сервера, перетащите файл.
## Перезапуск сервера и проверка иконки
После загрузки файла сервер нужно перезапустить - иконка считывается только при старте.
### Как проверить, что иконка загружена
В логах сервера при успешной загрузке иконки нет отдельного сообщения - сервер просто молча применяет её. Признак проблемы - строка в логах:
```
[WARN] Failed to load server icon
```
Если такой строки нет - иконка загружена корректно.
Дополнительная проверка через консоль сервера не требуется. Просто зайдите в лаунчер, обновите список серверов и проверьте визуально.
### Быстрая проверка размера файла (Linux)
```bash
# Проверить размеры PNG без сторонних утилит
python3 -c "
import struct, zlib
with open('server-icon.png','rb') as f:
f.read(8) # PNG signature
f.read(4) # chunk length
f.read(4) # IHDR
w = struct.unpack('>I', f.read(4))[0]
h = struct.unpack('>I', f.read(4))[0]
print(f'Size: {w}x{h}')
"
```
Или через ImageMagick:
```bash
identify server-icon.png
# Вывод: server-icon.png PNG 64x64 64x64+0+0 8-bit sRGB 3.5KB 0.000u 0:00.000
```
## Обновление кэша иконки на стороне клиента
Minecraft-лаунчер кэширует иконки серверов локально. Если вы заменили иконку на сервере и перезапустили его, клиент может продолжать показывать старую иконку до обновления кэша.
### Способ 1: удалить и добавить сервер заново
1. Откройте меню Multiplayer в лаунчере.
2. Выберите сервер, нажмите Delete (или Edit -> удалить).
3. Добавьте сервер заново (Add Server), введите IP.
4. При следующем ping клиент получит свежую иконку.
### Способ 2: очистить кэш серверов вручную
Кэш иконок хранится в файлах внутри папки Minecraft:
- Windows: `%AppData%\.minecraft\server-resource-packs\` и `%AppData%\.minecraft\saves\` (для серверных иконок - в `%AppData%\.minecraft\`)
- Linux: `~/.minecraft/`
- macOS: `~/Library/Application Support/minecraft/`
Конкретно иконки серверов закэшированы в JSON-файле `%AppData%\.minecraft\servers.dat` (бинарный NBT-формат). Проще всего удалить конкретный сервер и добавить заново.
### Способ 3: подождать
Minecraft периодически обновляет кэш при каждом обновлении статуса сервера. После замены иконки и перезапуска сервера кэш обновится автоматически в течение нескольких минут - просто обновляйте список серверов (кнопка Refresh).
## Анимированная иконка через плагины
Стандартный Minecraft не поддерживает анимацию иконки. Для динамической смены иконок нужны специальные плагины для Paper/Spigot.
### AdvancedServerList
**AdvancedServerList** - плагин для Paper/Spigot 1.19+, позволяет настраивать иконку, MOTD, количество игроков и другие элементы списка серверов.
Установка:
1. Скачайте актуальную версию с Modrinth (modrinth.com/plugin/advancedserverlist).
2. Поместите JAR в папку `plugins/`.
3. Перезапустите сервер.
4. Конфигурация создаётся в `plugins/AdvancedServerList/profiles/`.
Пример конфигурации с несколькими иконками (`plugins/AdvancedServerList/profiles/default.yml`):
```yaml
profiles:
- favicon:
- "default/icon1.png"
- "default/icon2.png"
- "default/icon3.png"
motd:
- "Мой сервер"
- "Онлайн: "
```
Иконки для плагина хранятся в `plugins/AdvancedServerList/favicons/default/` как PNG-файлы 64x64. Плагин циклически переключает их при каждом ping-запросе.
### ServerListPlus (устаревший, но работает)
**ServerListPlus** - более старый плагин, поддерживает Paper/Spigot вплоть до версии 1.20. Конфигурация в `plugins/ServerListPlus/ServerListPlus.yml`.
Пример настройки ротации иконок:
```yaml
Default:
Favicon:
- "favicons/icon1.png"
- "favicons/icon2.png"
MOTD:
- "§aДобро пожаловать!"
```
Иконки хранятся в `plugins/ServerListPlus/favicons/`.
**Рекомендация на 2026 год:** для серверов на Paper 1.19+ предпочтительнее AdvancedServerList - он активно поддерживается и совместим с современными версиями Paper.
## Частые проблемы и решения
### Проблема 1: иконка не отображается
**Симптомы:** в списке серверов показывается знак вопроса вместо иконки.
**Диагностика:**
```bash
# Проверить наличие файла
ls -la /path/to/server/server-icon.png
# Проверить размер через file
file server-icon.png
# Должно быть: PNG image data, 64 x 64, ...
# Проверить на ошибки в логах сервера
grep -i "icon" logs/latest.log
```
**Частые причины:**
- Файл называется `Server-Icon.png` вместо `server-icon.png` (регистр).
- Файл в формате JPEG с расширением `.png` - проверьте через `file server-icon.png`.
- Размер не 64x64 - сконвертируйте через ImageMagick.
- Файл лежит в подпапке, а не в корне сервера.
### Проблема 2: иконка размытая или пикселированная
**Причина:** масштабирование с неправильного исходного размера.
**Решение:** создайте иконку изначально в 64x64 или масштабируйте вниз с кратного размера (128x128, 256x256).
```bash
# Масштабирование с сохранением чёткости
convert source.png -resize 64x64 -filter Lanczos server-icon.png
```
### Проблема 3: иконка не обновляется после замены
**Причина:** кэш на стороне клиента или сервер не был перезапущен.
**Решение:**
1. Убедитесь, что сервер перезапущен после замены файла.
2. На стороне клиента - удалите сервер из списка и добавьте заново.
### Проблема 4: иконка отображается у одних игроков и не отображается у других
**Причина:** разные клиенты имеют разный кэш.
**Решение:** это нормально при первоначальной загрузке или замене иконки. Через несколько ping-циклов все клиенты синхронизируются.
### Проблема 5: JPEG-файл переименован в PNG
Частая ошибка - скачать JPEG логотип, переименовать в `server-icon.png` и ожидать, что заработает. Minecraft проверяет реальный формат файла, а не расширение.
```bash
file server-icon.png
# НЕПРАВИЛЬНО: server-icon.png: JPEG image data, ...
# ПРАВИЛЬНО: server-icon.png: PNG image data, 64 x 64, ...
```
Конвертация из JPEG в PNG:
```bash
convert server-icon.jpg -resize 64x64 server-icon.png
```
### Проблема 6: иконка не работает на Proxy (BungeeCord/Velocity)
На прокси-серверах (BungeeCord, Velocity) иконку нужно помещать в корень папки **прокси**, а не backend-серверов. Клиент запрашивает иконку от прокси при отображении в списке серверов.
```
bungeecord/
├── server-icon.png <- здесь, для BungeeCord
├── config.yml
├── plugins/
└── ...
```
Для Velocity:
```
velocity/
├── server-icon.png <- здесь, для Velocity
├── velocity.toml
├── plugins/
└── ...
```
## Чеклист: быстрая установка иконки
```
[ ] Создан PNG-файл размером строго 64x64 пикселей
[ ] Файл сохранён с именем server-icon.png (строчными буквами)
[ ] Файл загружен в корень сервера (рядом с server.properties)
[ ] Сервер перезапущен
[ ] В логах отсутствует строка "Failed to load server icon"
[ ] В лаунчере сервер удалён и добавлен заново (сброс кэша клиента)
[ ] Иконка отображается в списке серверов
```
## Связанные материалы
Если вы настраиваете внешний вид сервера, обратите внимание на [настройку MOTD и форматирование сообщений](/ru/minecraft-motd-server) - текстовое описание рядом с иконкой. Для общей настройки производительности и параметров сервера читайте [оптимизацию Minecraft-сервера](/ru/minecraft-server-optimization). Если планируете добавить экономику и плагины - начните с [Vault и экономики](/ru/minecraft-vault-plugin).
## Заключение
Иконка сервера Minecraft - простой, но важный элемент узнаваемости. Единственное техническое требование - PNG 64x64 в корне сервера с именем `server-icon.png`. Создайте иконку в Piskel или GIMP, загрузите на сервер, перезапустите - и готово. Если иконка не появляется, первым делом проверьте имя файла (регистр) и точный размер через `file server-icon.png` или `identify`. Для анимированных иконок на современных Paper-серверах используйте плагин AdvancedServerList. Помните про кэш на стороне клиента - после замены иконки удалите сервер из списка лаунчера и добавьте заново.
> **Pterohost** - игровой хостинг для Minecraft с мгновенным запуском, NVMe SSD и защитой от DDoS-атак. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-server-icon-png)
---
## Как сделать свой ресурспак для Minecraft
URL: https://docs.pterohost.com/ru/minecraft-resource-pack-create
Обновлено: 2026-06-10
Пошаговое руководство по созданию ресурспака для Minecraft: структура папок, pack.mcmeta, замена текстур и звуков, кастомные модели, упаковка и тест.
---
> **Кратко:** Ресурспак - это zip-архив с чёткой структурой папок, файлом pack.mcmeta и ассетами. Создать его можно в любом текстовом редакторе и графическом редакторе без модов. После упаковки достаточно указать ссылку в server.properties - и все игроки сервера получат твои текстуры автоматически.
# Как сделать свой ресурспак для Minecraft
**Собственный ресурспак даёт серверу уникальный визуальный стиль: замену стандартных текстур блоков и предметов, новые звуки, кастомные 3D-модели через механику CustomModelData - и всё это без единого мода. В 2026 году формат ресурспаков устоялся начиная с Minecraft 1.14, а актуальный pack_format для 1.21+ равен 34. Создание пака доступно любому человеку с Photoshop или даже Paint.NET: никаких специальных знаний Java или Python не требуется. В этой статье разберём полный путь от пустой папки до работающего пака на сервере.**
> **Pterohost** - игровой хостинг с NVMe-дисками, DDoS-защитой уровня L3/L4/L7 и поддержкой 24/7 - идеальная база для сервера с кастомным ресурспаком. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-resource-pack-create)
## Структура папок ресурспака
Ресурспак - это обычная папка (или zip-архив) с жёстко заданной иерархией. Minecraft не читает файлы вне этой структуры. Вот минимальный скелет:
```
my_resourcepack/
├── pack.mcmeta
├── pack.png (необязательно, превью 64x64 или 128x128)
└── assets/
└── minecraft/
├── textures/
│ ├── block/
│ ├── item/
│ ├── entity/
│ └── gui/
├── models/
│ ├── block/
│ └── item/
├── sounds/
└── sounds.json
```
Папка `assets/minecraft/` - пространство имён (namespace) ванильной игры. Если ты создаёшь контент для стороннего мода или для своей игры поверх ванилли - можно добавить свой namespace, например `assets/myserver/`. Для чистой замены ванильных ассетов используй только `assets/minecraft/`.
Правила именования файлов:
- только строчные буквы `a-z`, цифры `0-9`, символы `_`, `-`, `.`
- никаких пробелов и кириллицы в именах файлов и папок
- расширение `.png` для текстур, `.json` для моделей, `.ogg` для звуков
## pack.mcmeta и pack_format
Файл `pack.mcmeta` - обязательный манифест, без него Minecraft не увидит пак. Это JSON-файл:
```json
{
"pack": {
"pack_format": 34,
"description": "Мой кастомный ресурспак для сервера"
}
}
```
Поле `description` поддерживает цвета через коды форматирования (`§6` и т.д.), но в большинстве случаев достаточно просто текста.
Таблица актуальных значений `pack_format` по версиям:
| Версия Minecraft | pack_format |
|-----------------|-------------|
| 1.21 - 1.21.1 | 34 |
| 1.20.5 - 1.20.6 | 32 |
| 1.20.3 - 1.20.4 | 26 |
| 1.20.2 | 22 |
| 1.20 - 1.20.1 | 22 |
| 1.19.4 | 13 |
| 1.19 - 1.19.3 | 12 |
| 1.18 - 1.18.2 | 8 |
| 1.17 - 1.17.1 | 7 |
Если ты хочешь, чтобы пак работал на нескольких версиях, можно указать диапазон через поле `supported_formats` (появилось в 1.20.2+):
```json
{
"pack": {
"pack_format": 34,
"supported_formats": [22, 34],
"description": "Совместимый пак"
}
}
```
Значение `pack_format` при этом должно соответствовать старшей поддерживаемой версии.
## Замена текстур блоков и предметов
Самое простое - заменить текстуру существующего блока или предмета. Например, хочешь изменить внешний вид камня (`stone`).
Алгоритм:
1. Найди оригинал в установленных файлах игры - в папке `.minecraft/versions/{версия}/{версия}.jar` (это обычный zip, открой архиватором).
2. Внутри jar найди `assets/minecraft/textures/block/stone.png`.
3. Скопируй его в свой пак по тому же пути: `assets/minecraft/textures/block/stone.png`.
4. Отредактируй PNG в своём редакторе. Размер должен быть кратным 2 (16x16, 32x32 и т.д.).
5. Сохрани файл.
Для анимированных текстур (лава, вода, порталы) рядом с PNG кладётся файл `.mcmeta`. Например, для анимации `lava_still.png` нужен `lava_still.png.mcmeta`:
```json
{
"animation": {
"frametime": 2,
"frames": [0, 1, 2, 3, 4, 5, 6, 7]
}
}
```
Здесь `frametime` - количество тиков на кадр (1 тик = 0.05 секунды), `frames` - порядок кадров. Сами кадры расположены вертикально в одном PNG-файле: если текстура 16x16 и кадров 8, то файл должен быть 16x128.
## Замена звуков
Звуки в Minecraft хранятся в `.ogg` формате. Вот как заменить, например, звук удара по камню:
**Шаг 1.** Создай папку `assets/minecraft/sounds/dig/` в своём паке.
**Шаг 2.** Положи туда файл `stone1.ogg` (или `stone2.ogg` и т.д. - Minecraft случайно выбирает из вариантов).
**Шаг 3.** Создай или дополни `assets/minecraft/sounds.json`:
```json
{
"dig.stone": {
"sounds": [
"dig/stone1",
"dig/stone2"
]
}
}
```
Пути в `sounds.json` указываются без расширения `.ogg` и без `assets/minecraft/sounds/`. Minecraft сам добавит эти части пути.
Для конвертации аудио в `.ogg` без потери качества удобно использовать ffmpeg:
```bash
ffmpeg -i input.mp3 -c:a libvorbis -q:a 5 output.ogg
```
Битрейт `-q:a 5` даёт качество около 160 кбит/с - оптимальный баланс для игровых звуков. Файлы весом больше 1-2 МБ нежелательны: они замедляют загрузку пака игроками.
## Кастомные 3D-модели через CustomModelData
Механика `CustomModelData` позволяет привязать произвольную 3D-модель к конкретному числовому ключу на предмете. Это стандарт де-факто для серверных кастомных предметов - используют плагины ItemsAdder, Nexo (бывший Oraxen) и ручная реализация.
### Создание модели
Модели Minecraft - это JSON-файлы. Простейшая плоская модель предмета (спрайт):
```json
{
"parent": "item/handheld",
"textures": {
"layer0": "item/my_sword"
}
}
```
Эту модель кладём в `assets/minecraft/models/item/my_sword.json`, текстуру - в `assets/minecraft/textures/item/my_sword.png`.
Для полноценных 3D-моделей (например меч с особой формой рукоятки) удобнее использовать Blockbench - бесплатный редактор моделей Minecraft с экспортом в JSON. Он работает как веб-приложение на `blockbench.net` и как десктопная программа.
### Привязка к предмету
Чтобы Minecraft показывал нашу модель при определённом значении `CustomModelData`, нужно переопределить модель базового предмета. Например, перегрузим деревянный меч:
Файл `assets/minecraft/models/item/wooden_sword.json`:
```json
{
"parent": "item/handheld",
"textures": {
"layer0": "item/wooden_sword"
},
"overrides": [
{ "predicate": { "custom_model_data": 1001 }, "model": "item/my_sword" },
{ "predicate": { "custom_model_data": 1002 }, "model": "item/my_axe_custom" }
]
}
```
Теперь когда игрок держит деревянный меч с тегом `{CustomModelData:1001}`, Minecraft покажет модель `item/my_sword`. Выдать такой предмет можно командой:
```
/give @p minecraft:wooden_sword{CustomModelData:1001} 1
```
Важно: числа `custom_model_data` в `overrides` должны быть строго в возрастающем порядке, иначе Minecraft не будет читать предикаты корректно.
### Примечание о Minecraft 1.21.4+
Начиная с 1.21.4 Mojang ввёл новую систему компонентов предметов, и старый формат тега `{CustomModelData:N}` был заменён на `item_model` и `custom_model_data` как компоненты. В ресурспаках для 1.21.4+ рекомендуется использовать новый синтаксис:
```
/give @p minecraft:wooden_sword[custom_model_data={floats:[1001]}] 1
```
Если твой сервер работает на 1.21 или ниже - используй старый формат с фигурными скобками.
## Работа с текстурами GUI и шрифтами
Замена элементов интерфейса - один из самых популярных запросов для серверных паков. Текстуры GUI лежат в `assets/minecraft/textures/gui/`.
Часто меняют:
- `widgets.png` - кнопки и полосы прокрутки
- `icons.png` - иконки здоровья, голода, опыта
- `container/` - интерфейсы сундука, верстака, печи
- `title/` - фон главного меню
Кастомные шрифты позволяют добавить собственные символы и иконки в чат и книги. Шрифт задаётся в `assets/minecraft/font/default.json` и ссылается на PNG-спрайт лист. Это продвинутая тема, которую активно используют для создания кастомных HUD без модов.
## Упаковка в ZIP-архив
Ресурспак должен быть zip-архивом, в корне которого находятся `pack.mcmeta` и папка `assets/`. Важно: архивировать нужно содержимое папки, а не саму папку.
**Linux / macOS:**
```bash
cd my_resourcepack
zip -r ../my_resourcepack.zip .
```
**Windows (PowerShell):**
```powershell
cd my_resourcepack
Compress-Archive -Path * -DestinationPath ..\my_resourcepack.zip
```
Проверь структуру архива перед публикацией:
```bash
unzip -l my_resourcepack.zip | head -20
```
В выводе первыми строками должны быть `pack.mcmeta` и `assets/`, а не `my_resourcepack/pack.mcmeta`. Если видишь вложенную папку - ты запаковал папку целиком, нужно переупаковать.
## Подключение ресурспака к серверу
Загрузи zip-файл на хостинг с прямой ссылкой для скачивания. Подойдут:
- собственный CDN или веб-сервер (самый надёжный вариант)
- GitHub Releases (прямая ссылка на asset)
- Dropbox с `?dl=1` в конце ссылки
Получи SHA-1 хеш файла:
```bash
sha1sum my_resourcepack.zip
# или на macOS:
shasum -a 1 my_resourcepack.zip
```
Пропиши в `server.properties`:
```properties
resource-pack=https://example.com/my_resourcepack.zip
resource-pack-sha1=a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2
resource-pack-prompt=§eУстанови ресурспак для лучшего опыта!
resource-pack-required=false
```
Если `resource-pack-required=true`, игроки без принятого пака не смогут зайти на сервер. Это полезно для RPG-проектов, где визуал критичен.
После изменения `server.properties` перезапусти сервер. Новые игроки получат приглашение установить пак при входе. Старые игроки увидят обновление при следующем входе.
## Тестирование и отладка
Самый быстрый цикл тестирования - в одиночной игре:
1. Положи папку пака в `.minecraft/resourcepacks/`
2. Зайди в Настройки - Ресурспаки и активируй его
3. Сделай изменение в файле
4. Нажми F3+T для перезагрузки ресурспаков без выхода из игры
Для диагностики проблем открой консоль игры (F3 в режиме разработчика) или посмотри `latest.log` в папке `.minecraft/logs/`. Типичные ошибки в логах:
| Ошибка в логе | Причина |
|---------------|---------|
| `Invalid pack_format` | Неверное значение в pack.mcmeta |
| `Unable to load model` | Неверный путь или синтаксис в JSON-модели |
| `PNG: bad header` | Повреждённый или не-PNG файл с расширением .png |
| `missing texture` | Текстура указана в модели, но файл не найден |
| `sounds.json: unknown sound event` | Опечатка в имени события в sounds.json |
Для валидации JSON-файлов используй любой онлайн-валидатор или `python3 -m json.tool model.json` - он покажет синтаксическую ошибку с номером строки.
## Частые ошибки при создании ресурспака
**Неверная структура архива.** Самая распространённая ошибка - внутри zip находится папка `my_resourcepack/`, а не сразу `pack.mcmeta`. Minecraft в этом случае просто не видит пак.
**Кириллица в именах файлов.** Путь `textures/блоки/камень.png` не будет работать. Используй только ASCII-символы в нижнем регистре.
**Неправильный размер текстуры.** Размер 24x24 или 48x48 вызовет артефакты рендеринга. Допустимы только степени двойки: 16, 32, 64, 128, 256.
**Устаревший pack_format.** Пак с `pack_format: 8` (для 1.18) на сервере 1.21 вызовет предупреждение и возможные несовместимости. Всегда обновляй значение при смене версии сервера.
**Конфликт предикатов CustomModelData.** Если два значения не отсортированы по возрастанию в массиве `overrides`, Minecraft обработает только ту часть массива, что идёт до неупорядоченного элемента.
**Отсутствующий SHA-1 на сервере.** Без корректного хеша в `resource-pack-sha1` Minecraft каждый раз будет заново скачивать пак при входе игрока, даже если файл не менялся. Это увеличивает время входа и нагрузку на хостинг файлов.
## Связанные материалы
Если ты настраиваешь сервер с нуля, полезно ознакомиться с [руководством по server.properties](/ru/minecraft-server-properties-guide) - там описаны все ключевые параметры, включая `resource-pack-*`. При проблемах с производительностью после добавления кастомных текстур загляни в [гайд по устранению лагов сервера](/ru/minecraft-server-lags-fix). Для раздачи кастомных предметов игрокам через команды удобно использовать систему прав - читай про [настройку LuckPerms](/ru/minecraft-luckperms-setup).
## Заключение
Создание ресурспака для Minecraft - прямолинейный процесс, если понимать структуру: файл `pack.mcmeta` с правильным `pack_format`, папка `assets/minecraft/` с текстурами в PNG и моделями в JSON. Для базовой замены текстур достаточно 30-60 минут даже без опыта. Кастомные 3D-модели через `CustomModelData` требуют чуть больше времени, но открывают возможности, недоступные без модов. Главное - тщательно проверять структуру zip-архива перед публикацией и всегда обновлять SHA-1 хеш в `server.properties` после каждой замены файла. Результат того стоит: сервер с уникальным визуальным стилем выделяется среди тысяч других и удерживает игроков намного эффективнее.
> **Pterohost** - надёжный хостинг Minecraft с NVMe SSD, автоматической DDoS-защитой и живой поддержкой круглосуточно: идеальное место для запуска сервера с твоим ресурспаком. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-resource-pack-create)
---
## Квесты на сервере Minecraft: BetonQuest
URL: https://docs.pterohost.com/ru/minecraft-betonquest-quests
Обновлено: 2026-06-09
Полный гайд по BetonQuest: установка, структура пакетов, диалоги NPC, цепочки квестов и награды на сервере Minecraft.
---
> **Кратко:** BetonQuest - лучший плагин для создания квестов на серверах Minecraft с полноценными диалогами, ветвлением и условиями. Установите плагин, создайте пакет с YAML-конфигами, свяжите с NPC через Citizens - и квестовая система заработает без программирования.
# Квесты на сервере Minecraft: BetonQuest
**BetonQuest** - это один из самых функциональных плагинов для квестов в экосистеме Minecraft Java Edition. В отличие от простых "убей X мобов - получи награду" решений, BetonQuest позволяет строить полноценные RPG-сценарии: разветвлённые диалоги с NPC, многоэтапные задания, условные ветки, дневник заданий, глобальные переменные и интеграцию с десятками других плагинов. По состоянию на 2026 год актуальна ветка BetonQuest 2.1.x, которая работает на Paper/Spigot от Minecraft 1.19 и выше. Плагин полностью бесплатен и открыт на GitHub. Если вы хотите сделать сервер с живым миром, где игроки берут задания у NPC, проходят цепочки квестов и получают уникальные награды - BetonQuest даёт всё необходимое для этого.
> **Pterohost** - игровой хостинг с NVMe-дисками, DDoS-защитой и поддержкой 24/7: идеальная база для сервера с тяжёлыми плагинами вроде BetonQuest. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-betonquest-quests)
## Установка BetonQuest
BetonQuest распространяется как .jar-файл. Для полноценной работы потребуются зависимости.
**Что нужно:**
- Paper или Spigot 1.19+ (Paper предпочтительнее - BetonQuest активно использует его API)
- Java 17 или выше
- Citizens 2.x - для NPC-диалогов (рекомендуется)
- Vault + любой экономический плагин - для денежных наград
**Шаги установки:**
1. Скачайте `BetonQuest-2.x.x.jar` с официального сайта [betonquest.org](https://betonquest.org) или с GitHub Releases.
2. Скачайте `Citizens.jar` с dev.bukkit.org или SpigotMC.
3. Поместите оба .jar в папку `plugins/` вашего сервера.
4. Перезапустите сервер.
5. BetonQuest создаст папку `plugins/BetonQuest/` с конфигами и директорией `QuestPackages/`.
После первого запуска проверьте лог - плагин сообщит об успешной загрузке и о найденных интеграциях (Vault, Citizens, EssentialsX и другие).
```
[BetonQuest] Hooking into Citizens
[BetonQuest] Hooking into Vault
[BetonQuest] Loaded 1 packages
```
Если Citizens не подключился - проверьте, что Citizens.jar присутствует в `plugins/` и загрузился без ошибок до BetonQuest.
## Структура пакетов
Вся логика квестов в BetonQuest организована в **пакеты** (packages). Каждый пакет - это папка внутри `plugins/BetonQuest/QuestPackages/`. Пакеты независимы и могут ссылаться друг на друга.
Типичная структура пакета:
```
QuestPackages/
MainQuests/
package.yml # конфиг пакета: название, включение/выключение
events.yml # события (что происходит)
conditions.yml # условия (когда происходит)
objectives.yml # цели (что должен сделать игрок)
conversations/
village_elder.yml # диалог с NPC "Старейшина деревни"
items.yml # предметы для квестов
journal.yml # записи в журнале игрока
messages.yml # сообщения игроку
```
**package.yml** - главный файл пакета:
```yaml
package:
enabled: true
version: "1.0"
```
Все остальные файлы можно называть произвольно - BetonQuest загружает весь пакет целиком. Разделение на `events.yml`, `conditions.yml` и т.д. - удобное соглашение, но не обязательное. Можно держать всё в одном файле, если пакет небольшой.
## События, условия и цели
Три кита BetonQuest:
**События (Events)** - действия, которые выполняются в ответ на что-то. Выдать предмет, показать сообщение, дать опыт, открыть следующую часть квеста.
```yaml
# events.yml
give_sword:
type: giveitem
item: iron_sword
amount: 1
send_start_message:
type: notify
message: "&aЗадание получено! Найдите пещеру на севере."
give_gold:
type: money
amount: 300
add_quest_point:
type: point
category: main_quest
count: 1
```
**Условия (Conditions)** - проверки перед выполнением события или в диалоге. Есть ли у игрока предмет, достаточно ли у него уровня, выполнено ли предыдущее задание.
```yaml
# conditions.yml
has_wood:
type: item
item: oak_log
amount: 20
quest_not_started:
type: tag
tag: quest_started
inverted: true
player_level_10:
type: experience
level: 10
```
**Цели (Objectives)** - то, что игрок должен сделать. Убить моба, добыть ресурс, добраться до точки, поговорить с NPC.
```yaml
# objectives.yml
kill_zombies:
type: mobkill
mob: ZOMBIE
amount: 10
events: quest_step_2_start
conditions: on_main_quest
collect_iron:
type: craft
item: iron_ingot
amount: 5
events: craft_done_notify
reach_cave:
type: location
loc: 450;64;-320;world
range: 15
events: cave_reached_event
```
Связь между элементами: события запускают другие события или завершают цели; условия фильтруют, когда что-то работает; цели следят за действиями игрока и при выполнении запускают события.
## Диалоги NPC через Citizens
Самая сильная сторона BetonQuest - разветвлённые диалоги. Создаётся файл в папке `conversations/` пакета.
Пример диалога `conversations/village_elder.yml`:
```yaml
conversations:
village_elder:
quester: "Старейшина"
first:
- start_condition
stop: "false"
NPC_options:
start_condition:
text: "&7Путник, ты пришёл вовремя. Нашу деревню осадили нежить. Поможешь?"
conditions: quest_not_started
pointer: yes_or_no
quest_already_active:
text: "&7Ты уже занимаешься нашей проблемой. Возвращайся, когда убьёшь 10 зомби."
conditions: quest_started, not_quest_done
quest_done:
text: "&6Ты сделал это! Держи награду, герой."
events: give_reward, complete_quest
player_options:
yes_or_no:
text: "Конечно помогу!"
events: start_quest_event
pointer: quest_accepted_reply
decline:
text: "Извини, мне некогда."
pointer: farewell
quest_accepted_reply:
text: "Хорошо, иду разбираться."
farewell:
text: "Удачи тебе."
```
Чтобы привязать диалог к NPC в Citizens:
1. Выберите нужного NPC в игре или создайте нового: `/npc create Старейшина`
2. Запомните ID NPC (показывается командой `/npc list`)
3. Назначьте диалог: `/q npc assign village_elder MainQuests` (где `MainQuests` - имя пакета)
После этого правый клик по NPC открывает диалог BetonQuest.
### Опции диалога
В диалоге есть два типа узлов:
- `NPC_options` - реплики NPC, игрок их видит и выбирает следующий шаг
- `player_options` - ответы игрока, видны как кнопки выбора
Каждый узел может иметь:
- `text` - текст реплики (поддерживает цветовые коды `&`)
- `conditions` - условия отображения (через запятую = AND)
- `events` - события при выборе
- `pointer` - следующий узел(ы) диалога
## Журнал заданий
BetonQuest имеет встроенный журнал - книгу, где игрок видит активные и завершённые квесты. Записи добавляются через событие `journal`.
В `events.yml`:
```yaml
add_journal_entry:
type: journal
action: add
entry: quest_cave_entry
```
В `journal.yml` (или в основном файле пакета):
```yaml
journal:
quest_cave_entry: "&fЗадание: уничтожить нежить\n&7Старейшина попросил меня убить 10 зомби\nу северных ворот деревни. Нужно спешить."
```
Игрок открывает журнал командой `/j` (по умолчанию) или через бэкпак (инвентарь квестов). Можно настроить отображение в главном меню сервера через интеграцию с плагинами GUI.
### Бэкпак (Backpack)
BetonQuest предоставляет специальный GUI-инвентарь (`/q` или `/backpack`), где отображаются:
- Активные квесты и их прогресс
- Журнал с записями
- Специальные квестовые предметы
Настраивается в `config.yml` плагина: `default_package` указывает, какой пакет открывается по умолчанию.
## Награды
BetonQuest поддерживает разнообразные типы наград через систему событий.
**Предметы:**
```yaml
give_reward_items:
type: giveitem
item: diamond_sword{name:Клинок_Тьмы, lore:Награда_за_отвагу}
amount: 1
```
**Деньги (через Vault):**
```yaml
give_gold_reward:
type: money
amount: 500
```
**Опыт:**
```yaml
give_exp:
type: experience
amount: 10
level: true
```
**Очки квеста (внутренняя валюта):**
```yaml
quest_points_reward:
type: point
category: reputation
count: 5
```
**Запуск команды:**
```yaml
run_reward_command:
type: command
commands:
- "give %player% golden_apple 3"
- "say Игрок %player% завершил квест!"
```
**Составная награда** - несколько событий сразу:
```yaml
full_reward:
type: folder
events: give_gold_reward, give_exp, quest_points_reward, add_journal_complete_entry
```
Тип `folder` позволяет объединить несколько событий в одно - удобно, когда нужно выдать всё сразу при завершении квеста.
## Пример цепочки квестов
Разберём полную цепочку: получить задание у NPC -> выполнить несколько целей -> сдать квест и получить награду.
**Сценарий:** Квест "Угроза из тьмы". Три этапа: убить 10 зомби, найти пещеру, поговорить с NPC для завершения.
**events.yml:**
```yaml
# Запуск квеста
quest_start:
type: folder
events: set_tag_started, start_objective_kill, notify_quest_start, add_journal_start
set_tag_started:
type: tag
tag: quest_darkness_started
action: add
notify_quest_start:
type: notify
message: "&6[Квест] &fУгроза из тьмы начат! Убейте 10 зомби у деревни."
add_journal_start:
type: journal
action: add
entry: quest_darkness_start
# Переход к шагу 2 (найти пещеру)
step2_start:
type: folder
events: start_objective_cave, notify_step2, add_journal_step2
notify_step2:
type: notify
message: "&6[Квест] &fОтлично! Теперь найдите пещеру на севере (450, 64, -320)."
add_journal_step2:
type: journal
action: add
entry: quest_darkness_step2
# Завершение квеста
quest_complete:
type: folder
events: set_tag_done, remove_tag_started, give_final_reward, notify_complete, add_journal_done
set_tag_done:
type: tag
tag: quest_darkness_done
action: add
remove_tag_started:
type: tag
tag: quest_darkness_started
action: remove
give_final_reward:
type: folder
events: reward_money, reward_exp, reward_item
reward_money:
type: money
amount: 500
reward_exp:
type: experience
amount: 5
level: true
reward_item:
type: giveitem
item: iron_sword
amount: 1
notify_complete:
type: notify
message: "&a[Квест завершён] &fУгроза из тьмы! Получено: 500 монет, 5 уровней, железный меч."
add_journal_done:
type: journal
action: add
entry: quest_darkness_done
start_objective_kill:
type: objective
objective: kill_quest_zombies
start_objective_cave:
type: objective
objective: reach_north_cave
```
**conditions.yml:**
```yaml
quest_not_started:
type: tag
tag: quest_darkness_started
inverted: true
quest_started:
type: tag
tag: quest_darkness_started
quest_not_done:
type: tag
tag: quest_darkness_done
inverted: true
quest_done:
type: tag
tag: quest_darkness_done
on_step2:
type: tag
tag: quest_darkness_step2
step2_not_done:
type: tag
tag: quest_darkness_step2
inverted: true
```
**objectives.yml:**
```yaml
kill_quest_zombies:
type: mobkill
mob: ZOMBIE
amount: 10
notify: "&7Зомби уничтожено: {amount}/10"
events: step2_start
conditions: quest_started
reach_north_cave:
type: location
loc: 450;64;-320;world
range: 15
events: set_step2_tag, add_journal_cave_reached
conditions: quest_started
```
**conversations/elder.yml** (сокращённый вариант):
```yaml
conversations:
elder:
quester: "Старейшина"
first:
- offer_quest
- in_progress_step1
- in_progress_step2
- can_complete
NPC_options:
offer_quest:
text: "&7Нам нужна помощь. Нежить атакует деревню по ночам. Возьмёшься?"
conditions: quest_not_started, quest_not_done
pointer: accept_quest
in_progress_step1:
text: "&7Как дела с зомби? Продолжай, мы в тебя верим."
conditions: quest_started, step2_not_done
in_progress_step2:
text: "&7Ты нашёл пещеру? Разберись с источником нежити!"
conditions: quest_started, on_step2
can_complete:
text: "&6Ты сделал невероятное! Вот твоя награда, герой деревни."
conditions: quest_done
events: quest_complete
player_options:
accept_quest:
text: "Помогу вашей деревне!"
events: quest_start
pointer: quest_accepted
quest_accepted:
text: "Считайте дело сделанным."
```
Эта цепочка показывает ключевой паттерн: теги (`tag`) используются как флаги состояния квеста, условия фильтруют нужные ветки диалога, события-папки (`folder`) группируют действия.
## Интеграции и расширения
BetonQuest 2.x имеет встроенные интеграции с популярными плагинами:
| Плагин | Что даёт |
|--------|---------|
| Citizens 2 | NPC с диалогами, квестовые персонажи |
| Vault | Денежные награды и условия на баланс |
| EssentialsX | Команды /back, homes как условия |
| MythicMobs | Квестовые боссы, моб с кастомными дропами |
| WorldGuard | Условия на регион (игрок в зоне) |
| PlaceholderAPI | Плейсхолдеры в тексте квестов |
| Skript | Кастомные события через скрипты |
| LuckPerms | Условия на права/группу игрока |
Для подключения интеграции достаточно установить нужный плагин - BetonQuest обнаружит его автоматически при загрузке сервера.
## Советы по оптимизации и отладке
**Отладка конкретного игрока:**
```
/q debug
```
Показывает активные цели, теги и очки квестов для игрока. Незаменимо при тестировании.
**Перезагрузка без рестарта:**
```
/q reload
```
Перезагружает все пакеты без перезапуска сервера. Используйте во время разработки после каждого изменения YAML.
**Проверка синтаксиса:** BetonQuest при перезагрузке выводит в консоль все ошибки конфигурации с указанием файла и строки. Всегда смотрите лог после `/q reload`.
**Производительность:** Если на сервере много активных игроков с квестами, тяжелее всего работают цели типа `location` с маленьким `range` (частые проверки) и `mobkill` без условий (слушают все убийства). Используйте условия, чтобы сузить область срабатывания.
**Резервные копии:** Перед крупными изменениями в пакетах делайте копию папки `QuestPackages/`. Также данные игроков хранятся в `plugins/BetonQuest/playerdata/` - эту папку тоже включайте в бэкапы.
## Связанные материалы
Для комфортной работы с BetonQuest важна надёжная инфраструктура сервера. Читайте [как настроить бэкапы Minecraft-сервера](/ru/minecraft-server-backup), чтобы не потерять данные игроков и прогресс квестов. Если планируете расширять функционал, смотрите обзор [лучших плагинов для сервера](/ru/best-plugins). Для управления игроками и командами пригодится гайд по [EssentialsX](/ru/minecraft-essentialsx-commands).
## Заключение
BetonQuest - профессиональный инструмент для создания квестовых систем на Minecraft-серверах. С его помощью можно реализовать полноценные RPG-сценарии: разветвлённые диалоги через Citizens, многоэтапные цепочки заданий, условные ветки, журнал и разнообразные награды - всё через YAML без программирования. Главный принцип - события, условия и цели: освоив их взаимодействие, вы сможете создавать квесты любой сложности. Начните с простой линейной цепочки, затем добавляйте ветвление и интеграции с другими плагинами. Документация на betonquest.org подробная и актуально поддерживается командой разработчиков.
> **Pterohost** - игровой хостинг с быстрыми NVMe-дисками, защитой от DDoS и живой поддержкой: ваш сервер с квестами BetonQuest будет работать стабильно и без лагов. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-betonquest-quests)
---
## Кейсы и кристаллы на сервере: ExcellentCrates
URL: https://docs.pterohost.com/ru/minecraft-crates-keys-plugin
Обновлено: 2026-06-05
Как настроить плагин кейсов ExcellentCrates на сервере Minecraft: создание ящиков, ключи, анимации, шансы наград и донат-интеграция.
---
> **Кратко:** ExcellentCrates - один из лучших плагинов кейсов для Paper/Spigot в 2026 году. Создай файл кейса в `/plugins/ExcellentCrates/crates/`, пропиши награды с весами, задай анимацию и выдавай ключи командой `/crate key give`. Готово за 20 минут.
# Кейсы и кристаллы на сервере: ExcellentCrates
**Кейсы - это проверенный инструмент монетизации и удержания игроков на Minecraft-серверах.** Игроки получают ключи за донат, активность или выполнение квестов, открывают кейсы и получают редкие предметы, привилегии или внутриигровую валюту. Плагин ExcellentCrates (разработчик - Nightexpress, актуальная версия в 2026 году - 4.x для Paper 1.20+) предлагает гибкую настройку: YAML-конфиги наград с весами, несколько режимов анимаций, интеграцию с Vault и PlaceholderAPI, голограммы над ящиками и полный набор административных команд. В этой статье разберём установку, создание первого кейса, настройку наград и связку с донат-магазином.
> **Pterohost** - игровой хостинг с NVMe-дисками, защитой от DDoS и поддержкой 24/7. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-crates-keys-plugin)
## Установка ExcellentCrates
ExcellentCrates распространяется через Modrinth и Hangar (официальные репозитории плагинов). Для работы нужен **Paper или Fork** (Purpur, Pufferfish) версии 1.20 и выше. Spigot официально не поддерживается начиная с версии 4.x.
**Зависимости:**
- Обязательно: нет (плагин работает автономно)
- Опционально: Vault (для денежных наград), PlaceholderAPI (для голограмм и статистики), HolographicDisplays или DecentHolograms (для голограмм над кейсами)
**Шаги установки:**
1. Скачай `.jar` с [Modrinth](https://modrinth.com/plugin/excellentcrates) или Hangar (поиск ExcellentCrates).
2. Положи файл в `/plugins/`.
3. Перезапусти сервер или выполни `/reload confirm` (не рекомендуется для продакшена).
4. Плагин создаст папку `/plugins/ExcellentCrates/` с подпапками `crates/`, `keys/`, `lang/`, `menus/`.
После первого запуска проверь консоль - не должно быть ошибок, только строки вида `[ExcellentCrates] Loaded X crates`.
## Структура файлов плагина
```
/plugins/ExcellentCrates/
config.yml - глобальные настройки
crates/ - один .yml файл = один кейс
daily.yml
vip.yml
elite.yml
keys/ - конфиги предметов-ключей (опционально)
menus/ - конфиги меню (превью наград и т.д.)
lang/
en.yml - язык интерфейса
```
Каждый файл в папке `crates/` автоматически загружается как отдельный кейс. ID кейса = имя файла без `.yml`. Например, `vip.yml` -> ID кейса `vip`.
## Создание первого кейса
Создай файл `/plugins/ExcellentCrates/crates/vip.yml`:
```yaml
# Название кейса (отображается игрокам)
name: "&6&lVIP Кейс"
# Подсказка под названием
description:
- "&7Откройте и получите VIP-привилегии,"
- "&7редкие предметы и монеты!"
# Блок или предмет, который будет отображаться как иконка кейса
block:
material: CHEST
# Анимация открытия
opening_config:
type: WHEEL
# Количество одновременно показываемых призов в колесе
roll_amount: 3
# Длительность анимации в тиках (20 тиков = 1 секунда)
roll_time: 60
# Настройки ключа
key:
# Игровой предмет, который является ключом
item:
material: TRIPWIRE_HOOK
name: "&6Ключ от VIP-кейса"
lore:
- "&7Используй, чтобы открыть &6VIP Кейс"
# Уникальный тег для идентификации ключа
custom_model_data: 1001
# Список наград
rewards:
# Каждая награда - именованный блок
reward_money_small:
name: "&a500 монет"
weight: 200 # высокий вес = чаще выпадает
preview:
material: SUNFLOWER
commands:
- "eco give %player_name% 500"
reward_money_big:
name: "&6&l2000 монет"
weight: 50
preview:
material: GOLD_INGOT
commands:
- "eco give %player_name% 2000"
reward_vip_month:
name: "&bVIP на 30 дней"
weight: 20
preview:
material: DIAMOND
commands:
- "lp user %player_name% parent settemp vip 30d"
reward_diamond_sword:
name: "&fАлмазный меч [Unbreaking III]"
weight: 15
preview:
material: DIAMOND_SWORD
items:
- material: DIAMOND_SWORD
enchantments:
UNBREAKING: 3
reward_key_bonus:
name: "&eBONUS: ещё 1 ключ"
weight: 10
preview:
material: TRIPWIRE_HOOK
commands:
- "crate key give %player_name% vip 1"
reward_elytra:
name: "&5&lЭлитра"
weight: 5 # редкий приз
preview:
material: ELYTRA
broadcast: true # объявить всему серверу о выпадении
items:
- material: ELYTRA
```
После создания файла выполни `/crate reload` в консоли или в чате с правами оператора.
## Веса и шансы наград
ExcellentCrates использует систему весов (`weight`), а не прямых процентов. Это удобнее: можно добавлять новые награды без пересчёта всех шансов.
**Формула:**
```
Шанс(%) = weight_награды / sum(все weight) * 100
```
Пример для кейса выше:
| Награда | Weight | Шанс |
|---------|--------|------|
| 500 монет | 200 | 66.7% |
| 2000 монет | 50 | 16.7% |
| VIP на 30 дней | 20 | 6.7% |
| Алмазный меч | 15 | 5.0% |
| Бонусный ключ | 10 | 3.3% |
| Элитра | 5 | 1.7% |
| **Итого** | **300** | **100%** |
**Советы по балансу:**
- Главные призы (VIP, редкие предметы) держи в диапазоне weight 1-30.
- Частые мелкие призы (монеты, опыт) - 100-500.
- Для "джекпота" раз в 500 открытий ставь weight 1 при сумме всех весов 500.
- Параметр `broadcast: true` у редких наград мотивирует других игроков открывать кейсы.
## Анимации открытия
ExcellentCrates поддерживает несколько встроенных типов анимаций. Задаются через `opening_config.type`:
| Тип | Описание |
|-----|----------|
| `WHEEL` | Крутящееся колесо, классический слот-стиль |
| `CSGO` | Горизонтальная прокрутка как в CS:GO |
| `SINGLE` | Простой одиночный выбор (быстро, без лишнего шума) |
| `EACH_ITEM` | Показывает каждый возможный приз поочерёдно |
Пример расширенной конфигурации анимации:
```yaml
opening_config:
type: CSGO
roll_amount: 5 # количество слотов в прокрутке
roll_time: 80 # длительность в тиках
# Звук при открытии
open_sound:
sound: UI_BUTTON_CLICK
volume: 1.0
pitch: 1.0
# Звук при завершении
win_sound:
sound: ENTITY_PLAYER_LEVELUP
volume: 1.0
pitch: 1.0
```
Анимация открывается в GUI-меню прямо в игре. Игрок кликает по блоку кейса с ключом в руке или инвентаре - автоматически открывается окно анимации.
## Привязка кейса к блоку в мире
Чтобы игроки могли взаимодействовать с кейсом физически (кликать по сундуку, блоку, декорации):
```
/crate set vip
```
После этой команды нужно правой кнопкой кликнуть по любому блоку в мире. Блок становится точкой открытия кейса `vip`. При клике с ключом в руке или инвентаре откроется анимация.
Убрать привязку:
```
/crate remove <кликнуть по блоку>
```
Список всех привязанных блоков:
```
/crate hologram - управление голограммой над блоком
```
**Несколько блоков** - один кейс можно привязать к нескольким блокам в разных частях мира командой `/crate set vip` несколько раз.
## Команды администратора
Основные команды ExcellentCrates (требуют право `excellentcrates.admin` или оператор):
| Команда | Описание |
|---------|----------|
| `/crate list` | Список всех загруженных кейсов |
| `/crate reload` | Перезагрузить все кейсы из файлов |
| `/crate key give <игрок> <кол>` | Выдать ключ игроку |
| `/crate key take <игрок> <кол>` | Забрать ключ у игрока |
| `/crate key check <игрок>` | Проверить ключи игрока |
| `/crate open <игрок>` | Открыть кейс для игрока (без ключа) |
| `/crate set ` | Привязать кейс к блоку |
| `/crate preview ` | Открыть превью наград кейса |
| `/crate editor` | GUI-редактор кейсов (экспериментальный) |
Команды для игроков (требуют право `excellentcrates.use`):
| Команда | Описание |
|---------|----------|
| `/crate preview ` | Просмотр возможных наград |
| `/crate keys` | Список своих ключей |
## Голограммы над кейсами
ExcellentCrates поддерживает голограммы через интеграцию с DecentHolograms или HolographicDisplays. Голограмма автоматически появляется над привязанным блоком.
Конфигурация голограммы в файле кейса:
```yaml
hologram:
enabled: true
y_offset: 1.5 # высота над блоком в блоках
lines:
- "&6&lVIP КЕЙС"
- "&7Нажми, чтобы открыть"
- "&eНужен: &6Ключ VIP"
- ""
- "&fОткрыто сегодня: &a%excellentcrates_crate_openings_vip%"
```
Плейсхолдер `%excellentcrates_crate_openings_vip%` требует установленного PlaceholderAPI и даёт статистику открытий конкретного кейса.
Для установки DecentHolograms:
- Скачай с Hangar или Modrinth
- Положи в `/plugins/`
- Перезапусти сервер - ExcellentCrates автоматически обнаружит его и создаст голограммы
## Интеграция с донат-системой
Ключи от кейсов - отличный донат-товар. Схема интеграции зависит от используемой системы.
### Магазин через консольные команды (универсальный способ)
Большинство донат-платформ (GaveSite, DonationStore, Tebex) поддерживают выполнение команд после оплаты. Настрой выполнение:
```
crate key give {player} vip 3
```
Замени `{player}` на плейсхолдер своей платформы (в Tebex это `{username}`).
### Интеграция с плагином донат-системы на сервере
Если используешь плагины типа DonateCase или собственный магазин на сервере:
```yaml
# В конфиге своего донат-плагина
purchase_vip_keys:
command: "crate key give %player% vip 5"
price: 199
```
### Автоматическое начисление за активность
Выдача ключей за рейтинг активности, голосование, выполнение квестов:
```yaml
# Пример для плагина Votifier / NuVotifier
vote_rewards:
commands:
- "crate key give %player% daily 1"
- "crate key give %player% vip 1"
```
Или в конфиге EssentialsX Jobs / JobsReborn:
```yaml
Jobs:
Miner:
levelup-commands:
10:
- "crate key give %player% daily 2"
25:
- "crate key give %player% vip 1"
```
## Несколько типов кейсов: рекомендуемая структура
На продакшен-сервере рекомендуется иметь 3-4 кейса с разным балансом:
| Кейс | ID | Источник ключей | Примерный топ-приз |
|------|----|-----------------|-------------------|
| Ежедневный | `daily` | Голосование, ежедневный бонус | Редкий ресурс |
| VIP | `vip` | Донат от 99 руб. | VIP на месяц |
| Элитный | `elite` | Донат от 299 руб. | Элитра, кейп |
| Ивентовый | `event` | Только на ивентах | Эксклюзивные предметы |
Создай отдельный `.yml` файл для каждого кейса в папке `crates/`. Они не конфликтуют между собой.
## Настройка прав доступа через LuckPerms
Игроки по умолчанию не могут открывать кейсы без права `excellentcrates.use`. Настрой через LuckPerms:
```
# Выдать право всем игрокам
/lp group default permission set excellentcrates.use true
# Запретить конкретный кейс (если нужно ограничение по рангу)
/lp group default permission set excellentcrates.crate.elite false
/lp group vip permission set excellentcrates.crate.elite true
```
Права на конкретный кейс имеют формат `excellentcrates.crate.`. По умолчанию все права открыты для игроков с `excellentcrates.use`.
## Связанные материалы
Для полноценной экономики сервера с кейсами рекомендуем изучить [настройку Vault и экономических плагинов](/ru/minecraft-vault-plugin) - без этого денежные награды из кейсов не будут работать. Список других полезных плагинов для сервера собран в статье [лучшие плагины для Minecraft-сервера](/ru/best-plugins). Если настраиваешь донат-привилегии через кейсы, понадобится [LuckPerms - управление правами и рангами](/ru/minecraft-luckperms-setup).
## Заключение
ExcellentCrates - зрелый и активно поддерживаемый плагин кейсов для Minecraft Paper 1.20+. Система весов делает настройку шансов интуитивной, анимации удерживают интерес игроков, а консольные команды для выдачи ключей позволяют легко интегрировать кейсы с любой донат-платформой. Начни с одного-двух кейсов (например, ежедневного и VIP), настрой голограммы для визуальной привлекательности и отслеживай статистику открытий через PlaceholderAPI. Постепенно расширяй ассортимент кейсов по мере роста сервера.
> **Pterohost** - хостинг Minecraft-серверов с NVMe SSD, защитой от DDoS-атак и технической поддержкой круглосуточно. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-crates-keys-plugin)
---
## Кланы и гильдии на сервере Minecraft (Guilds, SimpleClans)
URL: https://docs.pterohost.com/ru/minecraft-clans-guilds-plugin
Обновлено: 2026-06-05
Как установить плагины Guilds и SimpleClans на сервер Minecraft: создание клана, войны, банк, PAPI-интеграция. Сравнение плагинов 2026.
---
> **Кратко:** Для кланов на Minecraft-сервере используют Guilds (Spigot/Paper, Java 17+) или SimpleClans (старейший PvP-плагин). Guilds ставится через /plugins, настраивается в config.yml, создание клана - команда /guild create. SimpleClans аналогично: /sc create <тег> <название>.
# Кланы и гильдии на сервере Minecraft (Guilds, SimpleClans)
**Клановая система превращает обычный сервер в живое сообщество: игроки объединяются, делят территории, участвуют в войнах и копят ресурсы в общем банке.** Правильно настроенные кланы удерживают аудиторию на сервере неделями - людям интереснее играть за команду, чем в одиночку. В 2026 году два плагина занимают лидирующее положение: **Guilds** (активно поддерживается, богатый функционал) и **SimpleClans** (классика PvP-серверов, гибкая настройка). Оба работают на Paper/Spigot 1.20-1.21, оба бесплатны, оба поддерживают PlaceholderAPI. В этой статье - полная инструкция по установке, настройке и сравнению обоих плагинов.
> **Pterohost** - игровой хостинг с NVMe-дисками и DDoS-защитой, идеальный для серверов с активными клановыми войнами. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-clans-guilds-plugin)
## Guilds - обзор плагина и установка
**Guilds** разработан Glaremasters и размещён на SpigotMC (бесплатно). Это полноценная система гильдий с уровнями, общим банком, бонусами, веб-хуками Discord и поддержкой десятков интеграций.
### Требования
- Paper или Spigot 1.18-1.21
- Java 17+
- Vault (для экономики банка)
- PlaceholderAPI (для плейсхолдеров в чате)
- WorldGuard (опционально, для claim-территорий)
### Установка Guilds
1. Скачайте последний `.jar` с [SpigotMC/Guilds](https://www.spigotmc.org/resources/guilds.48920/).
2. Положите файл в папку `plugins/`.
3. Установите зависимости: Vault, PlaceholderAPI, EssentialsX (для экономики).
4. Перезапустите сервер: `restart` в консоли.
5. Плагин создаст папку `plugins/Guilds/` с конфигами.
Структура конфигов после первого запуска:
```
plugins/Guilds/
config.yml - основной конфиг
guis.yml - настройка GUI-меню
messages.yml - все тексты и сообщения
storage.yml - настройки БД (SQLite/MySQL)
tiers.yml - уровни гильдий и бонусы
roles.yml - роли внутри гильдии
```
### Ключевые настройки config.yml
```yaml
guilds:
# Стоимость создания гильдии (Vault)
cost-create: 500.0
# Максимальный размер гильдии на первом уровне
max-members: 10
# Допустимые символы в названии
name-min-length: 3
name-max-length: 20
# Разрешить war (войны между гильдиями)
war:
enabled: true
# Время на принятие вызова (секунды)
accept-time: 120
# Общий банк
bank:
enabled: true
# Лимит банка на 1-м уровне
max-balance: 10000.0
# Claim-регионы через WorldGuard
claims:
enabled: true
max-claims-per-guild: 3
```
## Основные команды Guilds
### Создание и управление
| Команда | Что делает |
|---|---|
| `/guild create <название>` | Создать гильдию (списывает стоимость) |
| `/guild disband` | Распустить гильдию (только лидер) |
| `/guild rename <новое>` | Переименовать (стоит монеты) |
| `/guild prefix <префикс>` | Установить префикс в чате |
| `/guild info` | Показать инфо о своей гильдии |
| `/guild info <название>` | Инфо о чужой гильдии |
| `/guild list` | Список всех гильдий сервера |
### Участники
| Команда | Что делает |
|---|---|
| `/guild invite <ник>` | Пригласить игрока |
| `/guild accept` | Принять приглашение |
| `/guild leave` | Покинуть гильдию |
| `/guild kick <ник>` | Выгнать участника (лидер/офицер) |
| `/guild promote <ник>` | Повысить в звании |
| `/guild demote <ник>` | Понизить в звании |
### Банк и экономика
```
/guild bank deposit <сумма> - пополнить банк гильдии
/guild bank withdraw <сумма> - снять средства (лидер/офицер)
/guild bank balance - показать баланс банка
```
### Уровни гильдии
Уровни настраиваются в `tiers.yml`. Пример конфига для трёх уровней:
```yaml
tiers:
- level: 1
name: "Новички"
cost: 0
max-members: 10
max-bank-balance: 5000.0
damage-multiplier: 1.0
permissions: []
- level: 2
name: "Ветераны"
cost: 2000.0
max-members: 25
max-bank-balance: 25000.0
damage-multiplier: 1.05
permissions:
- "guilds.claims.extra"
- level: 3
name: "Легенды"
cost: 10000.0
max-members: 50
max-bank-balance: 100000.0
damage-multiplier: 1.10
permissions:
- "guilds.claims.extra"
- "guilds.war.declare"
```
Повысить уровень: `/guild upgrade` (спишет стоимость tier из баланса банка).
### Войны в Guilds
Система войн работает по принципу взаимного согласия:
```
/guild war declare <гильдия> - объявить войну
/guild war accept <гильдия> - принять вызов
/guild war reject <гильдия> - отклонить вызов
/guild ally add <гильдия> - предложить альянс
/guild ally accept <гильдия> - принять альянс
/guild ally remove <гильдия> - разорвать альянс
```
Во время войны игроки воюющих гильдий могут убивать друг друга без наказания (даже на PvE-сервере если настроен флаг). Результаты войны и счёт видны в `/guild war status`.
## SimpleClans - обзор и установка
**SimpleClans** - один из старейших PvP-плагинов для Minecraft. Он проще по структуре, но очень гибок в настройке через `config.yml`. Особенность - теги кланов (короткие ID до 5 символов) вместо длинных названий.
### Установка SimpleClans
1. Скачайте `.jar` с [SpigotMC/SimpleClans](https://www.spigotmc.org/resources/simpleclans.71242/).
2. Поместите в `plugins/`.
3. Дополнительно: PlaceholderAPI для плейсхолдеров в чате.
4. Перезапустите сервер.
SimpleClans не требует Vault по умолчанию, но поддерживает экономику при его наличии.
### Конфигурация SimpleClans
Основной файл `plugins/SimpleClans/config.yml`:
```yaml
settings:
# Минимальное количество игроков для верификации клана
min-size-to-verify: 3
# Стоимость создания клана (если Vault подключён)
creation-cost: 200.0
# Максимальная длина тега клана
max-tag-length: 5
# Разрешить friendly fire внутри клана
friendly-fire: false
# Показывать тег клана в чате
show-tag-in-chat: true
tag-bracket:
open: "["
close: "]"
clans:
# Разрешить войны
war:
enabled: true
# Минимум участников для объявления войны
min-members-war: 2
# Банк клана
bank:
enabled: true
max-deposit: 50000.0
# Режим rivality (объявлять соперников)
rivalry:
enabled: true
```
### Основные команды SimpleClans
Все команды начинаются с `/sc` (алиас `/clan`):
| Команда | Описание |
|---|---|
| `/sc create <тег> <название>` | Создать клан |
| `/sc verify` | Верифицировать клан (нужно min-size игроков) |
| `/sc invite <ник>` | Пригласить игрока |
| `/sc accept` | Принять приглашение |
| `/sc leave` | Покинуть клан |
| `/sc kick <ник>` | Исключить участника |
| `/sc info` | Инфо о своём клане |
| `/sc list` | Список всех кланов |
| `/sc stats` | Статистика (K/D, победы) |
| `/sc war <тег>` | Объявить войну |
| `/sc ally <тег>` | Предложить альянс |
| `/sc rival <тег>` | Объявить соперника (без PvP-обязательств) |
| `/sc ff` | Переключить friendly fire |
| `/sc home` | Телепорт к базе клана |
| `/sc sethome` | Установить базу клана |
### Банк в SimpleClans
```
/sc bank deposit <сумма>
/sc bank withdraw <сумма>
/sc bank balance
/sc bank log - история транзакций
```
## Интеграция с PlaceholderAPI (PAPI)
Оба плагина предоставляют плейсхолдеры для отображения в табе, чате и скорбордах.
### Плейсхолдеры Guilds
```
%guilds_name% - название гильдии
%guilds_prefix% - префикс гильдии
%guilds_rank% - ранг игрока в гильдии
%guilds_members_online% - онлайн участников
%guilds_tier% - текущий уровень гильдии
%guilds_bank_balance% - баланс банка
%guilds_status% - статус (войны/мир)
```
### Плейсхолдеры SimpleClans
```
%simpleclans_clan_name% - название клана
%simpleclans_clan_tag% - тег клана
%simpleclans_clan_tag_label% - тег с цветами
%simpleclans_kdr% - Kill/Death Ratio
%simpleclans_rank% - ранг игрока
%simpleclans_verified% - верифицирован ли клан
```
### Настройка чата с EssentialsX и CMI
Пример формата чата в `EssentialsX/config.yml` с тегом клана Guilds:
```yaml
chat:
format: '[%guilds_prefix%&r] {DISPLAYNAME}: {MESSAGE}'
```
Для SimpleClans с EssentialsX:
```yaml
chat:
format: '%simpleclans_clan_tag_label%&r {DISPLAYNAME}: {MESSAGE}'
```
## Интеграция с LuckPerms
Guilds поддерживает автоматическую выдачу разрешений через LuckPerms при смене статуса в гильдии.
В `config.yml` Guilds добавьте секцию `hooks`:
```yaml
hooks:
luckperms:
enabled: true
# Группа, которую получает любой член гильдии
member-group: "guild-member"
# Группа лидера гильдии
leader-group: "guild-leader"
```
В LuckPerms нужно создать соответствующие группы:
```
/lp creategroup guild-member
/lp group guild-member permission set guilds.command.base true
/lp group guild-member permission set guilds.command.info true
/lp creategroup guild-leader
/lp group guild-leader parent add guild-member
/lp group guild-leader permission set guilds.command.kick true
/lp group guild-leader permission set guilds.command.war.declare true
```
## Флаги PvP и защита территорий
### Claim в Guilds с WorldGuard
Для работы claim нужен WorldGuard 7.x:
```yaml
# config.yml Guilds
claims:
enabled: true
# Минимальный размер региона
min-claim-radius: 5
# Максимальный размер региона
max-claim-radius: 30
# Количество claim'ов на гильдию
max-claims-per-guild: 3
# Стоимость claim (через Vault)
cost-per-block: 0.5
```
Игрок становится в центре будущего региона и вводит `/guild claim <радиус>`. WorldGuard автоматически создаёт регион с именем `guild_<название>_` и назначает владельцем гильдию.
### PvP-флаги SimpleClans
SimpleClans управляет PvP через флаги в `config.yml`:
```yaml
clans:
# PvP только между врагами (war)
pvp-mode: WAR_ONLY
# Варианты: ALL, WAR_ONLY, DISABLED, RANKED
# Нейтрализация урона союзникам
no-damage-to-allies: true
no-damage-in-safezones: true
# Safezones - список миров без PvP
safezones:
- "world_nether"
- "hub"
```
## Сравнение Guilds и SimpleClans
| Параметр | Guilds | SimpleClans |
|---|---|---|
| Уровни гильдии | Да (tiers.yml) | Нет |
| Общий банк | Да | Да |
| Войны | Да | Да |
| Альянсы | Да | Да |
| Территории (claim) | Да (WorldGuard) | Нет (нужен аддон) |
| PAPI-плейсхолдеры | 15+ | 10+ |
| GUI-меню | Да (guis.yml) | Нет |
| SQLite/MySQL | Да | Да |
| Discord webhook | Да | Нет (аддон) |
| Сложность настройки | Средняя | Низкая |
| Производительность | Хорошая | Отличная |
| Поддержка 1.21 | Да | Да |
**Выбирайте Guilds**, если сервер RPG-направленности с экономикой, уровнями и территориями. **Выбирайте SimpleClans**, если нужен лёгкий PvP-инструмент с историей и статистикой K/D.
## Советы по администрированию
### Команды администратора Guilds
```
/ga reload - перезагрузить конфиги без рестарта
/ga delete <гильдия> - удалить гильдию принудительно
/ga addplayer <ник> <гильдия> - добавить игрока в гильдию
/ga removeplayer <ник> - удалить игрока из гильдии
/ga upgrade <гильдия> - принудительно повысить уровень
```
### Команды администратора SimpleClans
```
/scadmin reload - перезагрузить плагин
/scadmin delete <тег> - удалить клан
/scadmin verify <тег> - верифицировать клан вручную
/scadmin unverify <тег> - снять верификацию
/scadmin balance add <тег> <сумма> - пополнить банк клана
/scadmin purge inactive - удалить неактивные кланы
```
### Хранение данных
Оба плагина по умолчанию используют SQLite (файл `.db` в папке плагина). Для серверов с 100+ кланами рекомендуется переключиться на MySQL:
**Guilds** (`storage.yml`):
```yaml
storage:
type: MYSQL
host: "127.0.0.1"
port: 3306
database: "guilds"
username: "mc_user"
password: "пароль"
pool-size: 10
```
**SimpleClans** (`config.yml`):
```yaml
database:
type: mysql
host: 127.0.0.1
port: 3306
database: simpleclans
username: mc_user
password: пароль
```
## Связанные материалы
Для полноценного сервера с кланами рекомендуем изучить смежные гайды. В статье [Лучшие плагины для сервера Minecraft](/ru/best-plugins) описан полный стек плагинов под разные типы серверов. Настройка прав и ролей детально разобрана в [Настройка LuckPerms на сервере Minecraft](/ru/minecraft-luckperms-setup) - без него клановые разрешения будет сложно разграничить. Добавить RPG-прогрессию поверх кланов поможет [Настройка mcMMO на сервере Minecraft](/ru/minecraft-mcmmo-setup): уровни навыков хорошо сочетаются с системой тиров Guilds.
## Заключение
Guilds и SimpleClans - два проверенных инструмента для организации клановой жизни на сервере Minecraft. Guilds подходит для RPG и экономических проектов благодаря уровням, банку, GUI и территориям. SimpleClans - лучший выбор для PvP-серверов, где важна простота, статистика K/D и минимальная нагрузка. Оба плагина активно обновляются на 2026 год, поддерживают Paper 1.21 и интегрируются с PlaceholderAPI. Установка занимает 15-20 минут, а правильно настроенная клановая система может стать главной причиной, по которой игроки остаются на вашем сервере надолго.
> **Pterohost** - игровой хостинг с круглосуточной поддержкой и NVMe-дисками для стабильной работы клановых серверов. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-clans-guilds-plugin)
---
## Наказание за выход из боя в Minecraft: CombatLogX
URL: https://docs.pterohost.com/ru/minecraft-combatlogx-plugin
Обновлено: 2026-06-02
CombatLogX для Minecraft: установка, настройка тега боя, наказание за выход, NPC-труп и интеграция с PvP-плагинами. Полный гайд 2026.
---
> **Кратко:** CombatLogX добавляет тег боя и наказывает игроков за выход во время PvP - персонаж остаётся в игре или гибнет мгновенно. Установите плагин, настройте таймер 10-20 секунд и заблокируйте /home и /spawn в бою.
# Наказание за выход из боя в Minecraft: CombatLogX
**Combat logging - одна из главных проблем PvP-серверов Minecraft с 2012 года.** Игрок, которого вот-вот убьют, просто закрывает клиент и теряет ноль предметов. Противник тратит время, ресурсы, потенциально рискует своей экипировкой - и не получает ничего. CombatLogX решает эту проблему радикально: после выхода из клиента персонаж либо умирает мгновенно, либо остаётся на сервере в виде управляемого NPC, которого можно добить. В 2026 году плагин поддерживает Minecraft до 1.21.x, имеет модульную архитектуру и активно обновляется под Paper API.
> **Pterohost** - игровой хостинг для Minecraft с NVMe-дисками, DDoS-защитой и поддержкой 24/7. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-combatlogx-plugin)
## Что такое тег боя и как он работает
Тег боя (combat tag) - временная метка, которую CombatLogX назначает игроку при получении или нанесении урона от другого игрока. Пока метка активна, игрок считается "в бою" и подпадает под все ограничения плагина.
Жизненный цикл тега:
1. Игрок A атакует игрока B - оба получают тег боя.
2. Таймер обратного отсчёта (по умолчанию 15 секунд) начинает тикать.
3. Каждый новый удар сбрасывает таймер и начинает его заново.
4. Как только прошло нужное количество секунд без урона - тег снимается.
5. Если игрок выходит с тегом - срабатывает наказание.
Важно понимать, что тег боя обоюдный. Если вы атаковали кого-то, тег получаете тоже вы - даже если убегаете. Это исключает манипуляции вроде "я первым ударил, потом убежал и вышел".
Помимо выхода из клиента плагин также отслеживает:
- Переход между мирами через порталы
- Использование /tp, /tpa, /warp и аналогичных команд
- Выход через /quit или потерю соединения по таймауту
## Установка CombatLogX на Paper/Spigot
### Требования
- Minecraft 1.16+ (рекомендуется 1.20+)
- Paper или Spigot (на Bukkit не тестировался)
- Java 17+ для версий плагина 11.x
### Шаг 1: Скачать плагин
CombatLogX распространяется через SpigotMC. На 2026 год актуальна версия 11.x. Скачайте основной jar-файл и отдельно jar-файл аддонов (CombatLogX-Addons или Premium Addons).
```bash
# Структура папки после загрузки
plugins/
CombatLogX.jar
CombatLogX/
addons/
NPC-Addon.jar
Notify-Addon.jar
Kill-Addon.jar
```
Поместите `CombatLogX.jar` в папку `plugins/` сервера и перезапустите. Плагин создаст конфигурационные файлы автоматически.
### Шаг 2: Разместить аддоны
Аддоны кладутся в `plugins/CombatLogX/addons/`. После перезагрузки сервера каждый аддон создаёт свой подкаталог с настройками.
Стандартный набор аддонов:
| Аддон | Функция |
|---|---|
| NPC | Создаёт NPC-манекен при выходе игрока |
| Kill | Убивает игрока мгновенно при выходе |
| Notify | Уведомляет игрока о теге боя |
| Prevent-Totem | Блокирует использование тотема бессмертия в бою |
| Newbie-Helper | Исключает новых игроков из PvP на N минут |
| Region-Protect | Интеграция с WorldGuard для зон без PvP |
Выберите один из двух основных аддонов наказания: **NPC** или **Kill**. Использовать оба одновременно не нужно - они конфликтуют.
## Основной конфиг: config.yml
После первого запуска откройте `plugins/CombatLogX/config.yml`:
```yaml
CombatLogX:
Settings:
# Длительность тега боя в секундах
timer: 15
# Тегировать ли атакующего (не только жертву)
tag-attacker: true
# Разрешить выход в зонах без PvP без наказания
ignore-pve-in-disabled-pvp-zones: true
# Логировать события в консоль
log-to-console: true
Commands:
# Команды, заблокированные в бою
blocked-commands:
enabled: true
commands:
- spawn
- home
- tp
- tpa
- tpahere
- warp
- rtp
- back
- enderchest
- ec
- workbench
# Сообщение при попытке использовать заблокированную команду
blocked-message: "&cВы не можете использовать эту команду во время боя!"
Bossbar:
# Показывать bossbar с таймером
enabled: true
title: "&cВы в бою! Осталось: {time} сек."
color: RED
style: SOLID
Actionbar:
enabled: false
```
Сохраните файл и выполните `/combatlogx reload` в консоли или `/clx reload` - сокращённый алиас.
## Настройка NPC-аддона
NPC-аддон - наиболее "честный" вариант наказания. После выхода игрока сервер создаёт его копию - безмозглый манекен с той же экипировкой, здоровьем и именем. Другие игроки могут его убить.
Откройте `plugins/CombatLogX/addons/NPC/config.yml`:
```yaml
NPC:
Settings:
# Тип сущности для манекена
entity-type: PLAYER
# Сколько секунд NPC живёт максимум (0 = вечно до убийства)
time-until-death: 30
# Убить NPC, если его создатель вернулся на сервер
kill-npc-on-reconnect: false
# Показывать здоровье создателя у NPC
use-creator-health: true
# NPC дропает предметы как при обычной смерти
drop-items-on-death: true
# NPC может двигаться (преследовать ближайшего игрока)
can-move: false
# Радиус, в котором NPC агрится на игроков (0 = стоит на месте)
aggro-radius: 0
```
Рекомендуемые настройки для PvP-сервера:
- `time-until-death: 30` - NPC исчезает через 30 секунд, если его не убили
- `can-move: false` - манекен стоит на месте, не убегает
- `drop-items-on-death: true` - дроп обязателен, иначе наказание теряет смысл
## Настройка Kill-аддона
Kill-аддон проще NPC: игрок просто умирает в момент выхода. Подходит для серверов, где NPC-механика кажется избыточной или конфликтует с другими плагинами.
Файл `plugins/CombatLogX/addons/Kill/config.yml`:
```yaml
Kill:
Settings:
# Причина смерти в логах
death-reason: "combat_log"
# Сообщение в чат сервера при смерти от combat log
broadcast-death: true
death-message: "&e{player} &cвышел из боя и был уничтожен."
# Задержка перед убийством (мс, 0 = мгновенно)
kill-delay: 0
```
Сообщение о смерти транслируется в чат всему серверу - это публичный стыд и дополнительный социальный стимул не combat-логиться.
## Уведомления: Notify-аддон
Без уведомлений игроки не будут знать, что на них висит тег. Notify-аддон отвечает за сообщения при получении тега, его снятии и при попытке выйти.
Файл `plugins/CombatLogX/addons/Notify/config.yml`:
```yaml
Notify:
Settings:
# Сообщение при получении тега
on-tag: "&cВы в бою! Не выходите {timer} секунд."
# Сообщение при снятии тега
on-untag: "&aВы вышли из боя."
# Звуковой сигнал при получении тега
sound-on-tag:
enabled: true
sound: ENTITY_EXPERIENCE_ORB_PICKUP
volume: 1.0
pitch: 0.5
# Предупреждение при попытке выйти в бою
warn-on-quit:
enabled: true
message: "&c[!] Если вы выйдете сейчас, вы умрёте!"
```
## Блокировка команд и телепортации
Один из ключевых аспектов CombatLogX - запрет команд во время боя. Без этой настройки игроки обходят смерть через `/home`, `/spawn` или `/tp`.
### Список команд для блокировки
Минимальный рекомендуемый набор для Paper-сервера с EssentialsX:
```yaml
blocked-commands:
commands:
- spawn
- home
- sethome
- tp
- tpa
- tpahere
- tpaccept
- tpdeny
- warp
- setwarp
- rtp
- randomteleport
- back
- enderchest
- ec
- workbench
- wb
- craft
- suicide
- kill
- logout
```
Обратите внимание на `/suicide` и `/kill` - некоторые игроки намеренно используют самоубийство, чтобы телепортироваться на точку возрождения и избежать потери предметов от PvP. Блокировка этих команд закрывает лазейку.
### Блокировка аддон-плагинов
Если сервер использует плагины с нестандартными командами телепортации (CMI, Essentials-X fork, MyWarp), добавьте их команды вручную. Проверьте список через:
```
/combatlogx help commands
```
## Интеграция с PvP-плагинами
### WorldGuard - зоны без боя
Если на сервере есть сейф-зоны (spawn, магазин, деревни), CombatLogX должен знать о них. Через аддон RegionProtect:
```yaml
RegionProtect:
WorldGuard:
enabled: true
# Флаги региона, в которых тег боя не ставится
flag-name: "pvp"
# Если флаг pvp=deny - тег не ставится
ignore-deny: true
```
После настройки установите флаг в регионе spawn:
```
/region flag spawn pvp deny
```
Игроки в этой зоне не будут получать тег боя. Важно: если игрок уже вошёл в бой за пределами зоны и забежал в spawn - тег не снимается автоматически. Для этого существует отдельная настройка `remove-tag-on-safe-zone: false` (рекомендуется оставить false, иначе это станет новой лазейкой).
### Towny и Factions
Для серверов с Towny CombatLogX поддерживает встроенную логику через конфиг:
```yaml
CombatLogX:
Settings:
ignore-town-pvp: false
ignore-faction-pvp: false
```
Если `ignore-town-pvp: true`, игроки внутри своего города не будут тегироваться. Для Factions-серверов обычно оставляют `false`.
### EssentialsX
Если используете EssentialsX, убедитесь что его собственная блокировка команд в бою не конфликтует с CombatLogX. В `essentials/config.yml` найдите:
```yaml
# EssentialsX тоже умеет блокировать команды в бою
pvp:
enable-combat-tagging: false
```
Лучше отключить встроенный тег EssentialsX и делегировать всё CombatLogX - так не будет двойного тегирования.
## Команды и права доступа
### Основные команды
| Команда | Описание | Права |
|---|---|---|
| `/combatlogx` или `/clx` | Базовая команда плагина | - |
| `/clx status` | Показать текущий статус тега боя | `combatlogx.status` |
| `/clx status <игрок>` | Статус другого игрока | `combatlogx.status.others` |
| `/clx reload` | Перезагрузить конфиг | `combatlogx.reload` |
| `/clx tag <игрок>` | Вручную тегировать игрока | `combatlogx.tag` |
| `/clx untag <игрок>` | Снять тег с игрока | `combatlogx.untag` |
| `/clx addons` | Список активных аддонов | `combatlogx.admin` |
### Обход для администраторов
Чтобы администраторы могли выходить без смерти при тестировании:
```yaml
Permissions:
bypass:
permission: "combatlogx.bypass"
check-operator: true # OP автоматически получает bypass
```
Назначить через LuckPerms:
```
/lp user <имя> permission set combatlogx.bypass true
```
## Тонкая настройка для разных режимов
### PvP-сервер или выживание с PvP
Рекомендуемые значения:
```yaml
timer: 15
tag-attacker: true
blocked-commands:
- home
- spawn
- tp
- warp
- rtp
```
NPC-аддон: `time-until-death: 30`, `drop-items-on-death: true`
### Мини-игры (KitPvP, BedWars)
На серверах мини-игр смерть от combat log чаще решается через Kill-аддон - нет смысла в NPC, когда игра подразумевает быстрые бои:
```yaml
timer: 10 # Короче, игра динамичная
Kill:
broadcast-death: true
death-message: "&e{player} &cпокинул поле боя."
```
### Ролевые серверы (RPG)
На RP-серверах часто нужен мягкий режим:
```yaml
timer: 20
ignore-pve-in-disabled-pvp-zones: true
Newbie-Helper:
enabled: true
protection-minutes: 120 # 2 часа защиты для новичков
```
## Диагностика и типичные проблемы
**Проблема:** NPC не создаётся при выходе игрока.
**Решение:** Проверьте, что NPC-аддон лежит в папке `plugins/CombatLogX/addons/` и отображается в `/clx addons`. Убедитесь, что не включён одновременно Kill-аддон.
**Проблема:** Команды не блокируются.
**Решение:** Убедитесь, что команды в конфиге записаны без слеша (`home`, а не `/home`). После изменения конфига выполните `/clx reload`.
**Проблема:** Игрок получает тег при атаке мобов.
**Решение:** CombatLogX по умолчанию тегирует только PvP (игрок против игрока). Если тег ставится при PvE - проверьте аддон PvE-Only и параметр `tag-on-pve: false` в основном конфиге.
**Проблема:** Тег не снимается после выхода из зоны боя.
**Решение:** Тег снимается только по таймеру, не по геолокации. Это намеренное поведение - используйте `timer: 10` для более короткого окна.
**Проблема:** Конфликт с CMI или другим плагином управления.
**Решение:** CMI имеет собственную систему combat log. Отключите одну из них. Рекомендуется оставить CombatLogX как специализированный инструмент, а в CMI отключить `combat-log: false`.
## Связанные материалы
Для полноценного PvP-сервера CombatLogX работает в связке с другими плагинами. Список проверенных инструментов для управления сервером собран в [обзоре лучших плагинов](/ru/best-plugins). Настройку прав доступа для команд `/clx` удобно делать через LuckPerms - базовые принципы описаны в [гайде по командам EssentialsX](/ru/minecraft-essentialsx-commands). Параметры сервера, влияющие на PvP (pvp=true, gamemode и т.д.), рассмотрены в [руководстве по server.properties](/ru/minecraft-server-properties-guide).
## Заключение
CombatLogX - обязательный плагин для любого сервера с активным PvP. Без него честная PvP-система невозможна: игроки будут злоупотреблять выходом при угрозе смерти. Плагин решает проблему через тег боя, блокировку телепортации и NPC-манекен или мгновенную смерть. Настройте таймер под динамику своего сервера (10-15 секунд для динамичных режимов, 15-20 для выживания), обязательно заблокируйте команды `/home` и `/spawn` в бою, и выберите аддон наказания - NPC для максимальной честности или Kill для простоты. Регулярно проверяйте обновления плагина на SpigotMC, особенно после выхода новых версий Minecraft.
> **Pterohost** - хостинг для Minecraft с защитой от DDoS, быстрыми NVMe-дисками и живой поддержкой 24/7. Запустите PvP-сервер с CombatLogX уже сегодня. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-combatlogx-plugin)
---
## Плагин могил в Minecraft: сохранение лута после смерти
URL: https://docs.pterohost.com/ru/minecraft-graves-plugin
Обновлено: 2026-06-07
Плагин могил для Minecraft-сервера: AngelChest и Graves сохраняют инвентарь на месте смерти, таймер, голограмма, защита лута от чужих.
---
> **Кратко:** Плагины могил (AngelChest, Graves) создают защищённый сундук на месте смерти игрока и сохраняют весь инвентарь. Это лучшая альтернатива `keepInventory: true` - баланс не ломается, но фрустрирующая потеря лута исключена.
# Плагин могил в Minecraft: сохранение лута после смерти
**Потеря инвентаря после смерти - одна из главных причин, по которой игроки уходят с сервера. Особенно болезненно это на survival-проектах, где на сбор снаряжения уходят часы. В 2026 году стандартом стали плагины могил: они создают временный защищённый сундук прямо на точке смерти, хранят весь лут до возвращения владельца и показывают голограмму с таймером. Никакого читерства - просто удобный механизм, который уже встроен в большинство крупных серверов.**
> **Pterohost** - Minecraft-хостинг с NVMe-дисками, DDoS-защитой и поддержкой 24/7. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-graves-plugin)
## Почему keepInventory - плохое решение
Когда на сервере включают `keepInventory: true` в server.properties или через `/gamerule keepInventory true`, игрок после смерти сохраняет весь инвентарь. Звучит удобно, но на практике это убивает игровой баланс:
- Смерть теряет весь смысл - нет риска, нет напряжения
- Эндгейм-предметы накапливаются без ограничений
- PvP и PvE-механики теряют ценность
- Игроки быстро теряют интерес к выживанию
Плагины могил решают эту проблему элегантно. Лут не теряется, но за ним нужно вернуться. Могила может сгореть по таймеру, потребовать оплаты за открытие или стать доступной другим после истечения времени. Это сохраняет риск и интерес.
## AngelChest - основной выбор для 2026 года
AngelChest (автор - felix.ft, доступен на SpigotMC и Hangar) - наиболее активно поддерживаемый плагин могил в 2026 году. Поддерживает Paper 1.20-1.21, Purpur, Folia. Версия 10.x добавила полную поддержку компонентного API текста и улучшенную работу с Folia.
### Установка
Скачайте jar с hangar.papermc.io или spigotmc.org, поместите в папку `plugins/` и перезапустите сервер:
```bash
# Через консоль Pterodactyl / SSH
cd /path/to/server/plugins
wget https://hangar.papermc.io/api/v1/projects/AngelChest/versions/latest/PAPER/download -O AngelChest.jar
# перезапуск сервера
```
После первого запуска создаётся `plugins/AngelChest/config.yml`.
### Ключевые параметры config.yml
```yaml
# plugins/AngelChest/config.yml
# Время хранения могилы в секундах (0 = бессрочно)
timer: 3600
# Защита могилы - только владелец может открыть
protect: true
# Разрешить другим открыть могилу после истечения таймера
protect-from-others-until-timer-runs-out: true
# Цена выкупа (нужен Vault + economy-плагин)
fetch-price: 0
needs-economy-to-open: false
# Голограмма над могилой
hologram: true
hologram-line-owner: "&e{player}'s grave"
hologram-line-timer: "&7{time} remaining"
hologram-line-distance: "&7Distance: {distance}m"
# Показывать компас/частицы к могиле
compass-enabled: true
particles: true
# Могила как декоративный блок (по умолчанию - chest)
# Можно: CHEST, PLAYER_HEAD, BARREL
block-type: CHEST
# Сохранять опыт в могиле
store-xp: true
xp-stored-percent: 100
# Дроп могилы в огне (false = не сгорает)
drop-on-lava: false
angel-chest-catches-dropped-items: true
```
### Команды AngelChest
| Команда | Описание |
|---|---|
| `/ac list` | Список всех твоих могил с координатами |
| `/ac tp ` | Телепортация к могиле (если разрешено) |
| `/ac fetch ` | Забрать лут без телепортации (если разрешено) |
| `/ac info ` | Информация о могиле: таймер, координаты, содержимое |
| `/ac reload` | Перезагрузить конфиг (для администраторов) |
| `/ac admin list ` | Список могил игрока (для администраторов) |
### Права AngelChest
```yaml
# Базовые права игрока
angelchest.use # Создавать и открывать свои могилы
angelchest.list # /ac list
angelchest.info # /ac info
angelchest.compass # Компас к могиле
# Привилегированные права (для доноров/VIP)
angelchest.fetch # /ac fetch - забрать без похода к могиле
angelchest.teleport # /ac tp - телепортация к могиле
angelchest.free # Бесплатное открытие (игнорирует fetch-price)
angelchest.timer.* # Увеличенный таймер (через permission-groups)
# Администраторские
angelchest.admin # Полный доступ ко всем могилам
angelchest.reload # /ac reload
```
Права настраиваются через LuckPerms или любой другой permission-плагин.
## Graves - альтернатива с красивыми визуальными эффектами
Graves (автор - Ranull, GitHub: ranull/minecraft-graves) - более визуально ориентированный плагин. Поддерживает детальную кастомизацию внешнего вида могил, в том числе использование голов игроков, частицы и анимации.
### Установка Graves
```bash
# Скачать с SpigotMC или GitHub Releases
cd plugins/
wget https://github.com/Ranull/minecraft-graves/releases/latest/download/Graves.jar
```
### Базовая конфигурация Graves
```yaml
# plugins/Graves/config.yml
settings:
integration:
# Интеграция с плагинами защиты регионов
worldguard: true
grief-prevention: true
lands: true
grave:
default:
# Время жизни могилы в секундах
timer: 3600
# Защита - только владелец
protection: true
protection-time: 0 # 0 = пока активен таймер
# Внешний вид
block: SOUL_SAND
# Голова игрока на могиле
texture:
enabled: true
# Голограмма
hologram:
enabled: true
lines:
- "&e{full_name}&7's grave"
- "&7{time_remaining} remaining"
# Частицы
particles:
enabled: true
type: SOUL
# Звуки
sounds:
location: true
open: true
# Сохранение опыта
experience:
store: true
store-percent: 100
# Хранить опыт как флаконы (удобнее)
experience-vial:
enabled: false
```
### Команды Graves
| Команда | Описание |
|---|---|
| `/graves` | Открыть GUI со списком могил |
| `/graves list` | Список могил в текстовом виде |
| `/graves teleport ` | Телепорт к могиле |
| `/graves compass` | Компас к последней могиле |
| `/graves autoloot` | Авто-подбор лута при смерти рядом с могилой |
| `/graves admin list ` | Могилы игрока (администратор) |
## Сравнение AngelChest и Graves
| Параметр | AngelChest | Graves |
|---|---|---|
| Активная поддержка (2026) | Да (Hangar, регулярные обновления) | Да (GitHub) |
| Folia поддержка | Да | Частично |
| Vault / economy интеграция | Да, нативная | Через addon |
| Визуальные эффекты | Средние | Расширенные |
| GUI для игроков | Нет (команды) | Да (инвентарь GUI) |
| WorldGuard интеграция | Да | Да |
| Кастомные таймеры по группам | Да | Да |
| Производительность | Высокая | Высокая |
Для серверов с экономикой и VIP-системой AngelChest удобнее. Для RP-серверов или серверов с уклоном на визуал - Graves.
## Настройка разных таймеров для групп игроков
Одна из популярных механик - давать донорам или VIP-игрокам увеличенное время хранения могилы.
### В AngelChest через permission-groups
```yaml
# plugins/AngelChest/config.yml
permission-groups:
default:
timer: 1800 # 30 минут для обычных игроков
fetch-price: 100 # цена выкупа 100 монет
vip:
timer: 7200 # 2 часа для VIP
fetch-price: 0 # бесплатно
admin:
timer: 0 # бессрочно
fetch-price: 0
```
Группы привязываются через права:
```
angelchest.group.vip - для VIP-группы
angelchest.group.admin - для администраторов
```
Назначение через LuckPerms:
```bash
/lp group vip permission set angelchest.group.vip true
/lp group admin permission set angelchest.group.admin true
```
## Интеграция с EssentialsX и экономикой
Если на сервере установлен EssentialsX с экономикой, можно требовать оплату за открытие могилы.
Необходимые плагины:
- Vault (посредник между economy-плагинами)
- EssentialsX (или CMI, или любой совместимый с Vault economy-плагин)
Настройка в AngelChest:
```yaml
fetch-price: 50 # 50 игровых монет за открытие
needs-economy-to-open: true # без денег - не открыть
price-message: "&cДля открытия могилы нужно {price} монет."
no-money-message: "&cНедостаточно средств! Нужно {price} монет."
```
Эта механика особенно хорошо работает на survival-серверах с экономикой: смерть имеет реальную стоимость, но лут не теряется навсегда.
## WorldGuard и защита регионов
На серверах с зонами (города, приватные участки) важно корректно настроить взаимодействие плагина могил с WorldGuard.
AngelChest автоматически определяет, разрешено ли создавать блоки в регионе. Если в защищённом регионе нельзя строить, могила создастся там, где разрешено (ближайшая безопасная точка или ноулэнд).
Флаги WorldGuard для управления могилами:
```bash
# Разрешить создание могил в регионе (если заблокировано глобально)
/rg flag chest-access allow
# Запретить создание могил в PvP-арене (лут выпадает стандартно)
/rg flag arena angelchest-create deny
```
Рекомендуемая практика: отключить стандартный дроп в глобальном регионе и полностью доверить управление лутом плагину могил.
## Могила при смерти в лаве и огне
По умолчанию предметы при смерти в лаве сгорают до создания могилы. Оба плагина умеют это обходить.
В AngelChest:
```yaml
# Перехватить предметы до того, как они упадут в лаву
angel-chest-catches-dropped-items: true
drop-on-lava: false
```
В Graves:
```yaml
grave:
default:
# Создать могилу даже при смерти в лаве
creation:
lava: true
```
Без этих настроек игрок, умерший в лаве в Нижнем мире, потеряет весь лут - могила не успеет создаться.
## Уведомления и компас
Оба плагина поддерживают несколько способов указать игроку путь к могиле после возрождения.
AngelChest отправляет сообщение в чат с координатами и предлагает команду `/ac list`. Если включён компас (`compass-enabled: true`), игрок получает компас, который показывает направление к могиле.
Дополнительно можно включить частицы - след из частиц ведёт к ближайшей могиле. Это удобно в темноте или под землёй.
```yaml
# AngelChest
compass-enabled: true
particles: true
particle-type: SOUL_FIRE_FLAME
death-message: "&7Твоя могила создана на {x}, {y}, {z} в мире {world}."
```
## Частые ошибки и их устранение
### Могила не создаётся после смерти
Самая частая причина - конфликт с плагином защиты регионов. Если игрок умер в зоне, где нельзя ставить блоки, AngelChest не может создать сундук. Проверьте:
1. Флаги WorldGuard в регионе: `build` и `chest-access` должны разрешать действия для всех или для плагина.
2. В консоли проверьте ошибки вида `Could not create AngelChest at location`.
3. Если используется GriefPrevention - убедитесь, что AngelChest добавлен в список доверенных плагинов.
Быстрая диагностика через консоль:
```bash
# Включить подробное логирование в config.yml
debug: true
# Перезагрузить плагин
/ac reload
```
После включения debug в консоли появятся сообщения о каждой попытке создания могилы с причиной успеха или отказа.
### Предметы не сохраняются при смерти в воде или лаве
В AngelChest убедитесь, что включено:
```yaml
angel-chest-catches-dropped-items: true
```
Без этой настройки плагин ждёт, пока предметы выпадут на землю, но в лаве они сгорят раньше. Флаг `catches-dropped-items` перехватывает предметы ещё в момент смерти, до физики мира.
### Голограмма не отображается
AngelChest использует DecentHolograms или HolographicDisplays как зависимость для голограмм в старых версиях. В версии 10.x голограммы встроены через собственный механизм (Packet API) и не требуют отдельного плагина. Если голограмма не показывается:
- Убедитесь, что версия AngelChest 10.x или выше для Paper 1.20+
- Проверьте, что `hologram: true` в конфиге
- На Folia потребуется специальная сборка AngelChest с поддержкой Folia-треда
### Могила исчезла раньше времени
Возможные причины:
- Другой плагин с `/clearlag` или `/butcher` удалил все TileEntity в мире
- Сервер был перезапущен, а плагин не успел записать данные могилы (редко, но возможно при hard kill процесса)
- Таймер был настроен очень коротко (проверьте `timer` в config.yml)
Рекомендуется делать graceful restart через `stop` в консоли, а не `kill -9` процесса.
### Конфликт с плагином защиты инвентаря
Если на сервере стоит плагин типа InventoryRollback или AdvancedBackup, они могут конфликтовать с механикой могил - восстанавливать инвентарь игроку и одновременно создавать могилу. Отключите восстановление инвентаря при смерти в этих плагинах или настройте их совместную работу.
## Совместимость с другими плагинами
| Плагин | Совместимость | Примечание |
|---|---|---|
| EssentialsX | Полная | Economy, кит-система работают корректно |
| LuckPerms | Полная | Группы прав, таймеры по группам |
| WorldGuard | Полная | Флаги регионов, защита зон |
| GriefPrevention | Полная | Могилы уважают приваты |
| Lands | Полная | Аналог GriefPrevention |
| CMI | Полная | Economy, телепорт, команды |
| CoreProtect | Частичная | Создание сундука логируется |
| Multiverse | Полная | Могилы создаются в правильном мире |
## Связанные материалы
Для полноценной настройки сервера ознакомьтесь с настройкой прав и команд в [EssentialsX](/ru/minecraft-essentialsx-commands), базовыми параметрами сервера в [server.properties](/ru/minecraft-server-properties-guide), а также с методами устранения лагов в [оптимизации сервера](/ru/minecraft-server-lags-fix).
## Заключение
Плагин могил - обязательный компонент любого survival-сервера в 2026 году. AngelChest подходит для проектов с экономикой и VIP-системой, Graves - для серверов с акцентом на визуал и RP. Оба плагина активно поддерживаются, работают на современных версиях Paper/Purpur и легко настраиваются под любой игровой баланс. Главное - не забыть включить перехват предметов при смерти в лаве и настроить таймеры под свою аудиторию.
> **Pterohost** - игровой хостинг для Minecraft с NVMe-хранилищем, автоматическими бэкапами и DDoS-защитой. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-graves-plugin)
---
## Свои скины на Minecraft сервере: SkinsRestorer и custom skin
URL: https://docs.pterohost.com/ru/minecraft-skin-server
Обновлено: 2026-05-26
Как настроить скины на пиратском Minecraft-сервере 2026: SkinsRestorer, MineSkin API, custom skin server, команды /skin set, /skinurl, интеграция с EssentialsX.
---
> **Кратко:** На cracked-серверах (online-mode=false) скины Mojang не работают. Решение - плагин SkinsRestorer: положите JAR в plugins/, и игроки смогут менять скины командой /skin set Notch (любой ник Mojang) или /skinurl https://... (свой PNG через MineSkin). Поддержка Paper 1.8.8-1.21.x, BungeeCord, Velocity.
# Свои скины на Minecraft сервере: SkinsRestorer и custom skin
**SkinsRestorer** - плагин, который возвращает работающие скины игрокам на серверах с `online-mode=false`. На 2026-й это де-факто стандарт для пиратских и mixed-серверов: установлен на более чем 350 000 серверов по статистике bStats. В этой статье - полная настройка SkinsRestorer, работа с MineSkin API, кастомные скины из PNG, интеграция с EssentialsX и AuthMe, и альтернативы вроде Ely.by.
> **Pterohost** - игровой хостинг с DDoS-защитой L4+L7, NVMe SSD и 24/7 поддержкой. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-skin-server)
## Почему скины не работают на пиратском сервере
На лицензионных серверах (`online-mode=true`) клиент Minecraft и сервер проверяют игрока через Mojang Authentication. Сервер запрашивает у Mojang Session API подписанную текстуру (skin) и кейп игрока, клиент отображает их.
На cracked-серверах (`online-mode=false`) этот механизм отключён: сервер принимает любых игроков по нику без проверки. UUID офлайн-игрока генерируется детерминированно из ника алгоритмом `UUID.nameUUIDFromBytes(("OfflinePlayer:" + name).getBytes())`. Mojang не знает этот UUID и не отдаёт по нему скин - в итоге игроки получают стандартного Steve или Alex.
SkinsRestorer обходит ограничение: плагин запрашивает у Mojang Session Server скин по нику другого (лицензионного) игрока и применяет его к локальному офлайн-аккаунту. Mojang-подпись остаётся валидной, и клиент отображает скин корректно.
## Установка SkinsRestorer
Скачайте последний JAR с `github.com/SkinsRestorer/SkinsRestorer/releases`. Файлы:
- `SkinsRestorer.jar` - для Paper, Spigot, Bukkit, Folia 1.8.8-1.21.x.
- `SkinsRestorer-Bungee.jar` - для BungeeCord и форков (Waterfall).
- `SkinsRestorer-Velocity.jar` - для Velocity.
Положите файл в `plugins/` и перезапустите сервер. В логе должно появиться:
```
[INFO] [SkinsRestorer] Enabling SkinsRestorer v15.X.X
[INFO] [SkinsRestorer] Detected server platform: Paper 1.21.4
[INFO] [SkinsRestorer] Loaded storage: file (storage/players/)
[INFO] [SkinsRestorer] Successfully enabled. (took 320ms)
```
После старта в `plugins/SkinsRestorer/` появятся:
- `config.yml` - основная конфигурация.
- `locales/` - языки сообщений (русский: `messages_ru_RU.yml`).
- `storage/players/` - локальная база скинов (если используется file-storage).
Минимальная проверка - выполните в игре:
```
/skin set Notch
```
Если выходит сообщение `Skin updated`, плагин работает. Если ошибка `Couldn't generate skin data` - проблема с интернет-доступом из контейнера или блок Mojang API.
## Основные команды SkinsRestorer
| Команда | Действие |
|----------------------------------|-------------------------------------------------------|
| `/skin set <ник>` | Установить скин с аккаунта Mojang |
| `/skinurl [steve\|slim]` | Установить скин из PNG-файла по URL |
| `/skin clear` | Сбросить скин на стандартный |
| `/skin update` | Обновить скин из Mojang (если оригинал поменялся) |
| `/skins` | Открыть GUI выбора из default-скинов |
| `/skin search <запрос>` | Поиск по локальной базе скинов |
| `/sr applyskin <ник> <ник2>` | (admin) Применить скин одного игрока другому |
| `/sr setskin <ник> ` | (admin) Принудительно установить скин |
| `/sr reload` | Перезагрузить config.yml |
| `/sr drop player <ник>` | Удалить привязку скина у игрока |
Пермишены LuckPerms:
```
/lp group default permission set skinsrestorer.command true
/lp group default permission set skinsrestorer.command.set true
/lp group default permission set skinsrestorer.command.url true
/lp group default permission set skinsrestorer.command.clear true
```
## Кастомные скины через URL и MineSkin
Команда `/skinurl` принимает прямую ссылку на PNG-файл скина 64x64 или 64x32. Пример:
```
/skinurl https://i.imgur.com/abc123.png
/skinurl https://i.imgur.com/abc123.png slim
```
Второй параметр - модель: `steve` (классическая, 4-пиксельные руки) или `slim`/`alex` (тонкие, 3-пиксельные руки).
**Как работает под капотом:** SkinsRestorer берёт URL, отправляет PNG на сервис MineSkin (api.mineskin.org), MineSkin загружает PNG на тестовый Mojang-аккаунт, получает подписанную текстуру и возвращает её в SkinsRestorer. Подпись валидна, и клиент отображает скин.
**Ограничения MineSkin (бесплатный тариф):**
- 30 секунд между генерациями на один IP.
- 50 запросов в сутки без API-ключа.
- PNG только 64x64 или 64x32, до 1 MB.
Для коммерческих серверов получите API-ключ на mineskin.org и пропишите его в config.yml:
```yaml
mineskin-api-key: 'ваш_ключ_здесь'
```
С ключом - до 1000 генераций в день, лимиты на запросы существенно выше.
## Default-скины и случайный скин для новых игроков
В `config.yml` можно задать набор скинов, которые автоматически выдаются новым игрокам:
```yaml
default-skins:
enabled: true
apply-for-premium: false
skins:
- "Notch"
- "Herobrine"
- "Dinnerbone"
- "https://i.imgur.com/abc123.png"
```
При первом входе новичка плагин выберет случайный скин из списка. Опция `apply-for-premium: false` означает - не трогать скины лицензионных игроков.
Опция `disabled-skins:` запрещает использовать определённые скины (если их выбрали - принудительно ставится случайный из default).
## UUID и привязка скинов
SkinsRestorer хранит привязку `UUID игрока -> ID скина`. На cracked-сервере UUID генерируется из ника, поэтому если игрок сменит ник - привязка пропадёт. На сервере с AuthMe и привязкой ника к аккаунту проблема решается на стороне AuthMe.
Посмотреть текущий скин игрока:
```
/sr playerinfo <ник>
```
В выводе - UUID, текущий skin-id, источник (Mojang/MineSkin/Custom).
## Интеграция с EssentialsX
EssentialsX имеет встроенный `essentials.changedisplayname` и команды `/nick`. SkinsRestorer работает независимо: смена ника через `/nick` не меняет скин (если не привязан хук).
Для синхронизации в config.yml SkinsRestorer:
```yaml
essentials-hook:
enabled: true
change-skin-on-nick-change: false
```
`change-skin-on-nick-change: true` - при смене ника через `/nick` плагин попытается загрузить скин с этого ника.
## Хранение скинов: file / SQLite / MySQL
По умолчанию SkinsRestorer хранит данные в `storage/players/.yml` и `storage/skins/<имя>.yml`. Для серверов с тысячами игроков переключитесь на SQLite или MySQL:
```yaml
storage:
type: mysql
mysql:
host: 127.0.0.1
port: 3306
database: skinsrestorer
username: sruser
password: 'СильныйПароль2026'
table-prefix: 'sr_'
ssl: false
```
Создайте базу:
```sql
CREATE DATABASE skinsrestorer CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'sruser'@'localhost' IDENTIFIED BY 'СильныйПароль2026';
GRANT ALL PRIVILEGES ON skinsrestorer.* TO 'sruser'@'localhost';
FLUSH PRIVILEGES;
```
Перенос данных - команда `/sr storage migrate`.
## Custom skin server: Ely.by и CustomSkinLoader
Альтернативы SkinsRestorer:
- **Ely.by** - российский сервис скинов и кейпов с собственным authlib-injector. Игроки регистрируются на ely.by, ставят клиентский java-агент, скины подгружаются с серверов Ely. Подходит для бесплатных лаунчеров. Минус - нужны изменения на клиенте.
- **CustomSkinLoader** - клиентский Forge/Fabric-мод. Сервер ничего не делает, мод подгружает скины с произвольного URL (skinsystem.ely.by, namemc.com, свой эндпоинт). Минус - игрокам нужно ставить мод.
- **AuthlibInjector** - подмена Mojang authlib на стороне клиента или сервера. Используется на крупных российских пиратках. Сложная настройка.
Для 95% серверов SkinsRestorer + MineSkin достаточно. Custom skin server имеет смысл только если у вас уже есть свой лаунчер.
## Производительность и нагрузка
SkinsRestorer кэширует скины в памяти и на диске. Запрос к Mojang/MineSkin происходит только при `/skin set` или раз в `default-skin-update-interval` (по умолчанию 7 дней). Нагрузка на сервер минимальная - доли миллисекунд.
Сетевые требования: исходящий доступ к `sessionserver.mojang.com`, `api.mojang.com`, `api.mineskin.org`. На хостингах с фаерволом - откройте outbound 443/tcp на эти домены. На Pterohost доступ открыт по умолчанию.
## Типичные проблемы и решения
**`Couldn't generate skin data` при /skin set.** Mojang временно недоступен или IP сервера попал в rate-limit. Подождите 5-10 минут, повторите. Проверьте логи: `tail -f logs/latest.log | grep SkinsRestorer`.
**`Skin not found` при /skin set Notch.** Mojang Session API временно глючит или ник не существует. Проверьте через `https://api.mojang.com/users/profiles/minecraft/Notch` в браузере - если возвращает JSON, проблема в плагине.
**Скин применился, но другие игроки видят Steve.** Игроку нужно перезайти на сервер - текстура передаётся клиенту только при подключении.
**После рестарта скины пропали.** Используется file-storage и записи не сохранились (например, kill -9). Переходите на SQLite или MySQL.
**`/skinurl` не работает с imgur.com.** Imgur иногда возвращает HTML вместо PNG. Используйте прямые ссылки: `i.imgur.com/abc123.png`, не `imgur.com/abc123`. Альтернатива - залить PNG на mineskin.org и взять прямую ссылку оттуда.
## Готовая конфигурация для русского сервера
`plugins/SkinsRestorer/config.yml` для пиратского сервера:
```yaml
storage:
type: file
default-skins:
enabled: true
apply-for-premium: false
skins:
- "MHF_Steve"
- "MHF_Alex"
- "Notch"
skin-update-interval: 7
commands:
per-skin-permissions: false
disabled-skins-enabled: true
disabled-skins:
- "Herobrine"
- "_Hitler_"
messages-language: ru_RU
```
## Связанные материалы
После настройки скинов добавьте [команды EssentialsX](/ru/minecraft-essentialsx-commands) для управления игроками, [WorldGuard и приваты](/ru/minecraft-worldguard-regiony) для регионов и [топовые плагины](/ru/best-plugins) для пиратки.
## Заключение
SkinsRestorer на 2026 - это plug-and-play решение для скинов на пиратском сервере. Установка занимает 5 минут, базовая команда `/skin set <ник>` работает из коробки, кастомные скины через `/skinurl` и MineSkin покрывают потребности 99% игроков. Custom skin server и Ely.by нужны только если есть свой лаунчер и инфраструктура.
> **Pterohost** - игровой хостинг с DDoS-защитой L4+L7, NVMe SSD и 24/7 поддержкой. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-skin-server)
---
## Сервер мини-игр Minecraft: плагины и сборка
URL: https://docs.pterohost.com/ru/minecraft-minigames-server
Обновлено: 2026-06-09
Как создать сервер мини-игр Minecraft: плагины BedWars, SkyWars, Murder Mystery, прокси-сеть, лобби и монетизация в 2026 году.
---
> **Кратко:** Сервер мини-игр строится на трёх слоях - прокси (BungeeCord/Velocity), лобби и игровые узлы. Для старта достаточно одного Paper-сервера с плагином BedWars1058 или SkyWarsReloaded. Для полноценной сети с несколькими режимами нужна прокси-архитектура и 8+ ГБ RAM.
# Сервер мини-игр Minecraft: плагины и сборка
**Мини-игры - один из самых популярных форматов серверов Minecraft в 2026 году.** BedWars, SkyWars, Murder Mystery, HideAndSeek - эти режимы удерживают аудиторию лучше любого survival, потому что партия длится 5-15 минут и не требует долгосрочного вложения времени. Построить такой сервер с нуля сложнее, чем обычный выживач: нужны специализированные плагины, продуманная прокси-сеть и отдельные арены под каждый режим. Зато правильно настроенный сервер мини-игр отлично масштабируется и даёт стабильный доход от донат-магазина.
> **Pterohost** - игровой хостинг с NVMe-дисками, DDoS-защитой и поддержкой 24/7, оптимальный для нескольких игровых узлов Minecraft под мини-игры. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-minigames-server)
## Архитектура: одиночный сервер или прокси-сеть
Прежде чем выбирать плагины, нужно определиться с архитектурой. Существует два подхода.
**Одиночный сервер** - Paper или Spigot с плагинами мини-игр. Игроки заходят на один IP и переключаются между режимами через команды или меню. Подходит для старта с аудиторией до 50-80 человек одновременно.
**Прокси-сеть (BungeeCord / Velocity)** - несколько Paper-серверов, объединённых прокси. Каждый игровой режим живёт на отдельном узле. Игроки попадают в лобби, оттуда выбирают игру и переносятся на нужный сервер. Это стандарт для серверов от 100+ онлайна.
Схема прокси-сети:
```
Игрок -> Velocity (proxy) -> Lobby-сервер
-> BedWars-сервер (1-2 узла)
-> SkyWars-сервер
-> Murder-сервер
```
Для Velocity рекомендуется версия 3.x, так как она быстрее BungeeCord и поддерживает Modern Forwarding - безопасную передачу UUID без онлайн-режима.
### Минимальная конфигурация Velocity
Файл `velocity.toml` (ключевые параметры):
```toml
bind = "0.0.0.0:25565"
motd = "Мини-игры | MC 1.21"
show-max-players = 200
player-info-forwarding-mode = "modern"
[servers]
lobby = "127.0.0.1:25566"
bedwars = "127.0.0.1:25567"
skywars = "127.0.0.1:25568"
murder = "127.0.0.1:25569"
[forced-hosts]
"mc.example.com" = ["lobby"]
try = ["lobby"]
```
На каждом Paper-сервере в `config/paper-global.yml` нужно включить:
```yaml
proxies:
velocity:
enabled: true
online-mode: true
secret: "ваш-секрет-из-forwarding.secret"
```
## Лобби: навигация и первое впечатление
Лобби - точка входа для всех игроков. Здесь должны быть: навигатор по режимам, отображение онлайна на каждом сервере, косметический магазин и доска лидеров.
### Плагины для лобби
**LobbySystem** (Spigot/Paper) - один из наиболее функциональных готовых решений. Включает: меню навигатора с кастомными иконками, отображение онлайна через API Velocity, двойной прыжок, счётчики монет, интеграцию с Citizens для NPC-навигаторов.
**Citizens 2** - плагин для NPC. Каждый персонаж в лобби может быть NPC с именем и кликабельным меню. В связке с плагином `dtlTraders` или кастомными скриптами через Denizen NPC становится полноценным магазином или навигатором.
**Holographic Displays** (через CMI или отдельно DecentHolograms) - голограммы над NPC с онлайном, статистикой или рекламой режимов. DecentHolograms актуален для Paper 1.20+:
```yaml
# /plugins/DecentHolograms/holograms/bedwars_online.yml
location: world:0.5:66.0:10.5
lines:
- "text: &eBedWars"
- "text: &7Онлайн: &a{server_online:bedwars}"
- "text: &7Топ-1: &6{placeholder}"
```
### Компас-навигатор
Классический способ навигации - выдача игроку компаса при входе. Правый клик открывает инвентарь с режимами. Реализуется через плагин `Hub` (GitHub: hyperdefined/Hub) или скриптом на Skript:
```skript
on join:
if player's world is {lobby.world}:
give player a compass named "&eНавигатор"
on right click with compass:
open chest with 3 rows named "&8Выбор режима" to player
format slot 11 of player with diamond sword named "&cBedWars" to run:
connect player to "bedwars"
format slot 13 of player with ender pearl named "&bSkyWars" to run:
connect player to "skywars"
format slot 15 of player with red dye named "&5Murder Mystery" to run:
connect player to "murder"
```
## BedWars: плагин, карты, настройка
**BedWars1058** (GitHub: andrei1058/BedWars1058) - стандарт де-факто для BedWars на приватных серверах. Активно поддерживается, работает на Paper 1.20-1.21. Поддерживает: несколько арен одновременно, статистику в MySQL, систему пати, кастомные магазины с броней/оружием/инструментами, генераторы железа/золота/алмазов.
### Установка BedWars1058
1. Скачать jar с GitHub Releases и положить в `/plugins/`.
2. Создать арену командой `/bw setup newArena <название>`.
3. Расставить точки спавна, кровати, генераторы.
4. Настроить конфиг арены в `/plugins/BedWars1058/Arenas/<название>.yml`.
Пример минимальной настройки арены (ключевые поля):
```yaml
name: "4v4-Aqua"
world: "arenas/aqua"
maxPlayers: 32
minPlayers: 2
teamSize: 4
allowSpectators: true
generators:
iron:
spawnAmount: 1
spawnDelay: 30 # тики (1.5 сек)
gold:
spawnAmount: 1
spawnDelay: 120
diamond:
spawnAmount: 1
spawnDelay: 600
```
Для хранения статистики подключите MySQL в `config.yml`:
```yaml
database:
driver: MySQL
host: "127.0.0.1"
port: 3306
database: "bedwars"
user: "mc"
pass: "пароль"
```
## SkyWars: быстрый режим для большой аудитории
**SkyWarsReloaded** (SWR) - наиболее популярный бесплатный плагин для SkyWars (GitHub: lukasvdgaag/SkyWarsReloaded). Поддерживает кубики хаоса, голосование за карты, статистику побед/смертей/убийств, интеграцию с Vault для наград монетами.
Альтернатива - **SuperiorSkyWars** (платный, Spigot Premium). Лучше оптимизирован для больших серверов, имеет более гибкую систему кастомизации, но стоит около $15.
### Создание арены SkyWarsReloaded
```
/swr create <название> - создать новую арену
/swr edit <название> - войти в режим редактирования
/swr setspawn <арена> <номер> - выставить точку спавна игрока
/swr setlobbyspawn <арена> - точка ожидания
/swr save <название> - сохранить арену
```
Конфигурация `config.yml` (важные параметры):
```yaml
game:
minPlayers: 4
maxPlayers: 16
countdownTime: 30
gracePeriod: 10 # секунды после старта без урона
refillChests: true
refillTime: 120 # секунды до рефила сундуков
voting:
enabled: true
options:
- "normal"
- "chaos" # усиленные предметы
- "solo"
```
## Murder Mystery: детективный формат
**MurderMystery** от nicuch (GitHub: nicuch/MurderMystery) - наиболее используемый плагин для этого режима. Механика: один игрок - убийца с ножом, один - шериф с пистолетом, остальные - мирные жители. Мирные собирают золото, убийца устраняет всех.
Настройка ролей в `config.yml`:
```yaml
roles:
murderer-percent: 10 # % игроков, которые станут убийцей
sheriff-percent: 10
bystander: true
game:
min-players: 5
max-players: 16
game-time: 180 # секунды
gold-spawn-rate: 3 # золото каждые N секунд
sheriff:
bullets: 3 # начальное количество пуль
revive-on-correct-kill: true # шериф оживает, если убил убийцу
```
## Другие популярные режимы
### Hide and Seek (HideAndSeek)
Плагин **HideAndSeekReloaded** (Spigot) или более новый **MorphHideAndSeek** с поддержкой трансформации в блоки. Один-два охотника ищут спрятавшихся игроков в течение 3-5 минут. Хорошо работает на картах с разнообразной архитектурой.
### TNT Run / TNT Tag
**TNTRun_reloaded** (GitHub: Thatsmusic99/TNTRun_reloaded) - игроки бегут по платформе из песчаника, который разрушается под ногами. Последний оставшийся побеждает. Не требует сложной настройки, но нуждается в арене с несколькими уровнями.
### Турниры и сезонные ивенты
Плагин **Tournaments** (Spigot) или **EventHelper** позволяют объявлять временные ивенты с удвоенными наградами, кастомными картами и таблицей лидеров. Удобно запускать в выходные для удержания аудитории.
## Статистика и таблицы лидеров
Единая статистика по всей сети - ключевой элемент вовлечённости. Игроки возвращаются, чтобы улучшить позицию в рейтинге.
**Подход 1 - встроенная БД каждого плагина.** BedWars1058 и SkyWarsReloaded умеют хранить статистику в MySQL. Если подключить оба плагина к одной БД с разными префиксами таблиц, можно агрегировать данные через SQL-запросы.
**Подход 2 - StatsAPI / PlayerStats.** Плагин-агрегатор собирает данные от нескольких игровых плагинов через API и предоставляет единый PlaceholderAPI-провайдер:
```
%statsapi_bedwars_wins% - победы в BedWars
%statsapi_skywars_kills% - убийства в SkyWars
%statsapi_total_games% - сыграно игр всего
```
Эти плейсхолдеры используются в голограммах DecentHolograms и в таблицах лидеров через плагин **LeaderHeads** или **AnimatedLeaderboard**.
Пример SQL-запроса для топ-10 по победам в BedWars:
```sql
SELECT player_name, wins
FROM bedwars_stats
ORDER BY wins DESC
LIMIT 10;
```
## Монетизация сервера мини-игр
Монетизация мини-игровых серверов строится исключительно на косметике - это соответствует правилам Mojang EULA и не создаёт Pay-to-Win.
### Что продавать
- **Приставки и суффиксы** (через LuckPerms + EssentialsX Chat).
- **Трейлы и частицы** при движении (плагин Trails & Auras или ParticleAPI).
- **Кастомные смерти** - анимированные эффекты при убийстве (плагин DeathMessages Premium).
- **Скины арены** - альтернативные визуальные темы карт (если плагин поддерживает).
- **VIP-ранги** с косметическими бонусами: доступ к закрытым лобби-зонам, дополнительные слоты в пати, цветные имена.
- **Ключи от кейсов** с рандомной косметикой (плагин CrateReloaded или AdvancedCrates).
### Инструменты для донат-магазина
**Tebex** (бывший BuyCraft) - стандарт для платёжных систем Minecraft-серверов. Принимает карты РФ через партнёров, поддерживает автоматическое выполнение команд на сервере после оплаты. Устанавливается как плагин `Tebex.jar`.
Пример команды в Tebex после покупки VIP:
```
lp user {name} group add vip
minecraft:title {name} title {"text":"VIP получен!","color":"gold"}
```
**Самописный магазин** - через веб-приложение с webhook и RCON-выполнением команд. Дороже в разработке, но даёт полный контроль над UX.
### Ограничения EULA
Запрещено продавать: улучшенные стартовые предметы, дополнительные жизни, повышенный урон, ускорение генераторов ресурсов. Это классифицируется как Pay-to-Win и нарушает EULA Mojang.
## Защита от читеров
Мини-игры привлекают читеров особенно активно из-за конкурентной составляющей.
**Grim Anticheat** - открытый исходный код (GitHub: GrimAnticheat/Grim), активно обновляется для Paper 1.20-1.21. Обнаруживает KillAura, NoFall, Speed, Fly. Устанавливается как обычный плагин без специфических зависимостей.
Минимальная конфигурация `config.yml` Grim:
```yaml
checks:
movement:
nofall:
enabled: true
speed:
enabled: true
combat:
killaura:
enabled: true
setback-violations: 10
verbose:
hide-real-violations: true # не показывать читерам детали
```
**LiteBans** - плагин для банов, мутов, варнов с поддержкой UUID и IP-банов. Синхронизируется между узлами сети через общую MySQL-базу:
```yaml
sql:
driver: MySQL
host: 127.0.0.1
database: litebans
username: mc
password: пароль
table-prefix: "{serverName}_" # уникальный префикс на каждом узле
sync: true # синхронизация банов по всей сети
```
## Оптимизация производительности
Сервер мини-игр создаёт специфическую нагрузку: много игроков на маленькой площади, частые загрузки/выгрузки арен, интенсивные боевые события.
**Рекомендуемые флаги JVM** для узла с 4 ГБ RAM:
```bash
java -Xms2G -Xmx4G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:G1NewSizePercent=30 \
-XX:G1MaxNewSizePercent=40 \
-XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 \
-jar paper.jar --nogui
```
**Важные настройки Paper** для арен (`paper-world-defaults.yml`):
```yaml
entities:
spawning:
spawn-limits:
monsters: 0 # мобы на аренах не нужны
animals: 0
chunks:
auto-save-interval: -1 # отключить автосохранение мира арены
delay-chunk-unloads-by: 1s
```
Плагин **WorldManager** (через Multiverse-Core или собственный) должен управлять арен-мирами: создавать копию исходного шаблона для каждой игры и удалять после окончания, чтобы не накапливать данные на диске.
## Связанные материалы
Подробнее о резервном копировании игровых миров и конфигураций читайте в [руководстве по бэкапам Minecraft-сервера](/ru/minecraft-server-backup). Список лучших плагинов для Paper/Spigot в 2026 году с описанием и ссылками - в статье [лучшие плагины для Minecraft](/ru/best-plugins). Управление правами и ролями на сервере с командами и примерами - в материале про [команды EssentialsX](/ru/minecraft-essentialsx-commands).
## Заключение
Сервер мини-игр Minecraft в 2026 году строится по проверенной схеме: Paper-узлы под каждый режим, Velocity-прокси для маршрутизации и лобби-сервер как центральная точка. BedWars1058, SkyWarsReloaded и MurderMystery - стабильные плагины с активной поддержкой, на которые можно опираться. Монетизация через косметику остаётся легальной и прибыльной моделью при условии отсутствия Pay-to-Win механик. Основное внимание после запуска уделяйте античиту, статистике и регулярным ивентам - именно они удерживают аудиторию долгосрочно.
> **Pterohost** - хостинг Minecraft с мгновенным развёртыванием нескольких узлов, защитой от DDoS-атак и круглосуточной поддержкой - всё необходимое для прокси-сети мини-игр. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-minigames-server)
---
## Сервер Minecraft на Fabric: установка и моды
URL: https://docs.pterohost.com/ru/minecraft-fabric-server-setup
Обновлено: 2026-06-05
Как установить сервер Minecraft на Fabric, добавить моды и fabric-api, оптимизировать с Lithium и FerriteCore - пошаговый гайд 2026.
---
> **Кратко:** Fabric - лёгкий модлоадер для Minecraft, идеальный для оптимизационных и технических модов. Установка сервера занимает 5-10 минут: скачайте установщик с fabricmc.net, запустите с нужной версией MC, добавьте jar-файлы модов в папку mods/ и запустите сервер.
# Сервер Minecraft на Fabric: установка и моды
**Fabric стал стандартом для современных оптимизационных и технических модов Minecraft.** В отличие от Forge, он обновляется вслед за каждым крупным релизом игры буквально за несколько дней, имеет минимальный оверхед и отлично сочетается с модами наподобие Lithium, FerriteCore и Carpet. В 2026 году Fabric поддерживает Minecraft 1.21.x и продолжает активно развиваться - экосистема модов на Modrinth насчитывает тысячи проектов. Эта статья проведёт вас от чистого VPS до рабочего Fabric-сервера с подобранными модами и объяснит, как избежать типичных ошибок при настройке.
> **Pterohost** - игровой хостинг с NVMe-дисками, DDoS-защитой и поддержкой 24/7, оптимизированный под Minecraft и модпаки. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-fabric-server-setup)
## Что такое Fabric и чем он отличается от Forge
Fabric - это минималистичный модлоадер с открытым исходным кодом. Его архитектура разделена на два компонента:
- **Fabric Loader** - собственно загрузчик модов, отвечает за внедрение модов в Minecraft
- **Fabric API** - стандартная библиотека для разработчиков, предоставляет общие хуки и события
Главные отличия от Forge:
| Параметр | Fabric | Forge |
|---|---|---|
| Скорость обновления | 1-7 дней после релиза MC | 1-4 недели |
| Размер загрузчика | ~1 МБ | 40-80 МБ |
| Время старта сервера | Быстрее на 20-40% | Медленнее |
| База модов | Modrinth (растёт), CurseForge | CurseForge (огромная) |
| Оптимизационные моды | Lithium, Featherweight, FerriteCore | Optifine, Rubidium |
| Сложность конфигурации | Низкая | Средняя |
| Совместимость с Forge-модами | Нет | - |
Fabric выигрывает там, где важна скорость обновления и производительность. Если вам нужен сервер с Industrial Craft, Thaumcraft или другими старыми Forge-модами - выбирайте Forge. Для технической игры, ваниль-плюс или серверов с упором на производительность - Fabric.
## Требования к серверу
Перед установкой убедитесь, что у вас есть:
- **Java 21** (для Minecraft 1.21.x) или Java 17 (для 1.18-1.20.x)
- Минимум **2 ГБ RAM** для голой ванили; **4 ГБ** с модами для 10+ игроков
- Операционная система Linux (рекомендуется Ubuntu 22.04/24.04 или Debian 12)
- Доступ к командной строке (SSH)
Проверьте версию Java:
```bash
java -version
```
Если Java не установлена (Ubuntu/Debian):
```bash
apt update && apt install -y openjdk-21-jre-headless
```
Для Minecraft 1.20.x и ниже подойдёт Java 17:
```bash
apt install -y openjdk-17-jre-headless
```
## Установка Fabric Server Launcher
Создайте отдельную директорию для сервера:
```bash
mkdir -p /opt/minecraft-fabric
cd /opt/minecraft-fabric
```
Скачайте установщик Fabric с официального сайта. На момент написания актуальная версия установщика - 1.0.1:
```bash
wget https://maven.fabricmc.net/net/fabricmc/fabric-installer/1.0.1/fabric-installer-1.0.1.jar -O fabric-installer.jar
```
Запустите установщик для нужной версии Minecraft (замените `1.21.4` на вашу версию):
```bash
java -jar fabric-installer.jar server -mcversion 1.21.4 -downloadMinecraft
```
Установщик создаст:
- `fabric-server-launch.jar` - лончер Fabric
- `server.jar` - оригинальный Minecraft server jar
- `fabric-server-launcher.properties` - конфиг лончера
Примите лицензионное соглашение Mojang:
```bash
echo "eula=true" > eula.txt
```
Первый запуск сервера (он создаст нужные директории и остановится):
```bash
java -Xms2G -Xmx4G -jar fabric-server-launch.jar nogui
```
После первого запуска появятся папки `mods/`, `config/`, `world/` и файл `server.properties`.
## Установка Fabric API
Fabric API - обязательная зависимость для большинства модов. Без неё многие моды не загрузятся или выдадут ошибку при старте.
Скачайте актуальную версию Fabric API с Modrinth. Убедитесь, что версия API соответствует вашей версии Minecraft:
```bash
# Пример: скачиваем Fabric API для 1.21.4
# Актуальную ссылку берите на https://modrinth.com/mod/fabric-api/versions
wget "https://cdn.modrinth.com/data/P7dR8mSH/versions/.../fabric-api-X.X.X+1.21.4.jar" -O mods/fabric-api.jar
```
Либо скачайте вручную на своём компьютере с `modrinth.com/mod/fabric-api` и загрузите на сервер через SFTP или `scp`:
```bash
scp fabric-api-0.110.0+1.21.4.jar user@your-server:/opt/minecraft-fabric/mods/
```
Все моды хранятся в папке `mods/` - это единственное место, которое Fabric сканирует при запуске.
## Добавление модов на сервер
Fabric-моды - это обычные `.jar`-файлы. Процесс добавления мода:
1. Скачайте jar-файл мода с Modrinth или CurseForge (убедитесь, что мод помечен как "Fabric" и совместим с вашей версией MC)
2. Скопируйте jar в `/opt/minecraft-fabric/mods/`
3. Перезапустите сервер
```bash
cp your-mod-1.0.jar /opt/minecraft-fabric/mods/
```
Пример добавления нескольких модов сразу:
```bash
cd /opt/minecraft-fabric/mods/
# Скачиваем с wget или загружаем через scp
ls -la # Проверяем что файлы на месте
```
После перезапуска сервера в логах (`logs/latest.log`) будет видно загрузку каждого мода:
```
[FabricLoader] Loading 8 mods:
- fabricloader 0.16.9
- fabric-api 0.110.0+1.21.4
- lithium 0.13.0+mc1.21.4
- ...
```
## Серверные и клиентские моды: разница
Это одна из самых частых точек путаницы при работе с Fabric. Моды делятся на три типа:
**Серверные моды** - работают только на сервере, клиенту не нужны:
- Carpet - технические твики и команды для администраторов
- LuckPerms (если есть Fabric-порт) - права
- Chunky - предгенерация чанков
- Dynmap / BlueMap - карты мира
**Клиентские моды** - работают только на клиенте, на сервер класть не нужно (и иногда нельзя):
- Sodium - оптимизация рендеринга
- Iris Shaders - шейдеры
- Mod Menu - меню модов
- REI / EMI - просмотр рецептов
**Двусторонние моды** - нужны и на сервере, и на клиенте:
- Fabric API - всегда нужна на обеих сторонах
- Create (Fabric-порт) - механический мод
- Applied Energistics 2 - хранение предметов
- Sodium Extra - иногда имеет серверную часть
Как определить тип мода: откройте страницу мода на Modrinth - там указано `Client` / `Server` / `Client and server`. Также в `fabric.mod.json` внутри jar-файла есть поле `environment: "client"` или `"server"` или `"*"`.
Таблица популярных модов и где их устанавливать:
| Мод | Сервер | Клиент |
|---|---|---|
| Fabric API | Да | Да |
| Lithium | Да | Нет |
| FerriteCore | Да | Да |
| Carpet | Да | Нет |
| Chunky | Да | Нет |
| Sodium | Нет | Да |
| Iris | Нет | Да |
| BlueMap | Да | Нет |
| Mod Menu | Нет | Да |
| EMI | Нет | Да |
## Оптимизационные моды: Lithium и FerriteCore
Два самых важных мода для производительности Fabric-сервера:
### Lithium
Lithium оптимизирует игровую логику сервера без изменения механик игры. Улучшает работу:
- Физики сущностей
- Поиска пути мобов (AI)
- Обработки чанков
- Коллизий блоков
Результат: TPS сервера растёт на 20-50% в зависимости от нагрузки.
Скачайте с `modrinth.com/mod/lithium` - выберите версию для Fabric и вашей версии MC, положите jar в `mods/`.
### FerriteCore
FerriteCore снижает потребление оперативной памяти за счёт оптимизации хранения состояний блоков. На типичном сервере экономит 1-2 ГБ RAM.
Скачайте с `modrinth.com/mod/ferrite-core`.
### Дополнительные рекомендуемые моды для сервера
| Мод | Назначение | Где взять |
|---|---|---|
| Lithium | Оптимизация TPS | modrinth.com/mod/lithium |
| FerriteCore | Снижение RAM | modrinth.com/mod/ferrite-core |
| Carpet | Технические команды | modrinth.com/mod/carpet |
| Chunky | Предгенерация чанков | modrinth.com/mod/chunky |
| Spark | Профилировщик производительности | modrinth.com/mod/spark |
| BlueMap | Веб-карта сервера | modrinth.com/mod/bluemap |
Пример состава `mods/` для оптимизированного ванильного сервера:
```
mods/
fabric-api-0.110.0+1.21.4.jar
lithium-mc1.21.4-0.13.0.jar
ferrite-core-7.0.1+fabric.jar
carpet-1.4.147+v241119.jar
chunky-2.0.0.jar
spark-1.10.73-fabric.jar
```
## Запуск сервера и скрипт автозапуска
Для продакшн-запуска используйте параметры JVM для оптимизации:
```bash
java -Xms4G -Xmx4G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:+AlwaysPreTouch \
-XX:G1NewSizePercent=30 \
-XX:G1MaxNewSizePercent=40 \
-XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 \
-XX:G1HeapWastePercent=5 \
-XX:G1MixedGCCountTarget=4 \
-XX:InitiatingHeapOccupancyPercent=15 \
-XX:G1MixedGCLiveThresholdPercent=90 \
-XX:G1RSetUpdatingPauseTimePercent=5 \
-XX:SurvivorRatio=32 \
-XX:+PerfDisableSharedMem \
-XX:MaxTenuringThreshold=1 \
-jar fabric-server-launch.jar nogui
```
Значение `-Xmx` - максимум RAM. Рекомендации:
- 5-10 игроков, 10-15 модов: 4 ГБ
- 10-20 игроков, 20-40 модов: 6 ГБ
- 20+ игроков или тяжёлый модпак: 8+ ГБ
Создайте скрипт запуска `start.sh`:
```bash
#!/bin/bash
cd /opt/minecraft-fabric
java -Xms4G -Xmx4G -XX:+UseG1GC -jar fabric-server-launch.jar nogui
```
```bash
chmod +x start.sh
```
Для автозапуска через systemd создайте `/etc/systemd/system/minecraft-fabric.service`:
```ini
[Unit]
Description=Minecraft Fabric Server
After=network.target
[Service]
User=minecraft
WorkingDirectory=/opt/minecraft-fabric
ExecStart=/opt/minecraft-fabric/start.sh
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
```
```bash
systemctl enable minecraft-fabric
systemctl start minecraft-fabric
```
## Синхронизация модпака с игроками
Если у вас модпак (несколько модов), игроки должны установить те же моды на своих клиентах. Есть несколько подходов:
### Публикация на Modrinth (рекомендуется)
Modrinth поддерживает создание модпаков в формате `.mrpack`. Создайте пак с теми же модами, что на сервере, добавив клиентские моды по желанию. Игроки устанавливают его через лончер Prism Launcher или MultiMC.
### Раздача архивом
Упакуйте папку `mods/` с серверными и клиентскими модами в zip-архив и разместите на Discord или Google Drive. Инструкция для игроков:
1. Установить Fabric Loader той же версии (с fabricmc.net)
2. Распаковать архив в папку `.minecraft/mods/`
3. Запустить игру
### CurseForge App
Если вы публикуете модпак на CurseForge - игроки могут установить его через CurseForge App. Это удобнее для широкой аудитории, не знакомой с ручной установкой.
**Важно:** версии модов на сервере и клиенте должны совпадать для модов типа "client and server". Несовпадение версий - частая причина ошибок при подключении.
## Частые проблемы и способы их решения
### Сервер не запускается: "incompatible mod set"
Fabric обнаружил конфликт между модами. Откройте `logs/latest.log`, найдите строку вида:
```
net.fabricmc.loader.impl.FormattedException: Some of your mods are incompatible with the game or each other!
```
Там будет указано, какой мод с какой несовместим. Решение: обновите мод до версии, совместимой с текущей версией MC/Fabric Loader.
### Крэш при загрузке мира: NullPointerException в классе мода
Обычно означает, что мод написан с ошибкой или не совместим с другим модом. Отключайте моды по одному (`mods.disabled/` - Fabric не загружает моды с этим расширением) до нахождения виновника:
```bash
mv mods/suspicious-mod.jar mods/suspicious-mod.jar.disabled
```
### Мод требует другую версию Fabric API
Ошибка вида `requires fabric-api version >=0.100.0`. Просто скачайте более новую версию Fabric API.
### Высокое потребление памяти
Если сервер потребляет значительно больше, чем `-Xmx`, проверьте:
- Установлен ли FerriteCore
- Нет ли утечек памяти (Spark покажет)
- Не слишком ли большой view-distance в `server.properties` (рекомендуется 8-10)
```properties
# server.properties
view-distance=8
simulation-distance=6
```
### Клиент не может подключиться: "connection refused"
Проверьте, что сервер слушает нужный порт:
```bash
ss -tlnp | grep 25565
```
Если порт закрыт фаерволом:
```bash
ufw allow 25565/tcp
```
## Связанные материалы
Если вы только выбираете хостинг для модового сервера - читайте [Хостинг для модового сервера Minecraft](/ru/minecraft-modded-server-hosting). Для сборки полноценного модпака под свой сервер подойдёт статья [Сборка модпака Minecraft для сервера](/ru/minecraft-modpack-sborka). Общие советы по ускорению работы сервера - в статье [Оптимизация сервера Minecraft](/ru/minecraft-server-optimization).
## Заключение
Fabric - это надёжная и лёгкая основа для Minecraft-сервера в 2026 году, особенно если ваша цель - производительность или технический геймплей. Установка занимает меньше 10 минут: скачиваете установщик, запускаете с нужной версией MC, кладёте моды в папку `mods/` и стартуете. Обязательные компоненты - Fabric API, Lithium и FerriteCore - дадут хорошую базу даже без углублённой настройки. Главное правило при работе с модами: следить за совместимостью версий и разделять серверные и клиентские моды, чтобы не класть лишнее на сервер.
> **Pterohost** - хостинг Minecraft с NVMe-дисками, защитой от DDoS-атак и живой поддержкой в чате. Разворачивайте Fabric-серверы в пару кликов через Pterodactyl-панель. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-fabric-server-setup)
---
## Сервер Minecraft на Forge: установка и моды
URL: https://docs.pterohost.com/ru/minecraft-forge-server-setup
Обновлено: 2026-06-05
Как установить Forge-сервер Minecraft, добавить моды, синхронизировать модпак с игроками и исправить частые краши - пошаговый гайд 2026.
---
> **Кратко:** Forge - главный модлоадер для крупных модпаков Minecraft. Установка: скачайте инсталлятор с files.minecraftforge.net, запустите с флагом --installServer, примите EULA и добавьте jar-файлы модов в папку mods/. Для 50+ модов выделяйте минимум 6 ГБ RAM.
# Сервер Minecraft на Forge: установка и моды
**Forge остаётся доминирующим модлоадером для масштабных технических и магических модпаков Minecraft уже больше 10 лет.** Industrial Craft 2, Applied Energistics 2, Mekanism, Thaumcraft, Twilight Forest - все эти культовые моды работают именно на Forge. В 2026 году Forge поддерживает Minecraft 1.21.x, а экосистема CurseForge насчитывает десятки тысяч модов. Развернуть собственный Forge-сервер несложно, но есть нюансы: требования к памяти, синхронизация модпака с игроками, чтение краш-репортов и отличия серверных модов от клиентских. Эта статья проведёт вас через весь процесс - от установки до запуска стабильного сервера с модами.
> **Pterohost** - игровой хостинг с NVMe-дисками, DDoS-защитой и поддержкой 24/7, настроенный под Forge-серверы и тяжёлые модпаки. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-forge-server-setup)
## Forge или Fabric: когда выбирать Forge
Прежде чем начинать установку, убедитесь, что Forge - правильный выбор для вашего проекта. Оба модлоадера живут параллельно и не совместимы друг с другом.
| Параметр | Forge | Fabric |
|---|---|---|
| База модов | CurseForge: 10 000+ Forge-модов | Modrinth + CurseForge: растёт |
| Крупные технические модпаки | Да (FTB, ATM, Technic) | Ограниченно |
| Скорость обновления под новый MC | 2-4 недели | 1-7 дней |
| Потребление RAM | Выше | Ниже |
| Время старта сервера | 60-180 секунд | 20-60 секунд |
| Оптимизационные моды | Rubidium, Embeddium | Lithium, Featherweight |
| Совместимость с Bukkit-плагинами | Нет (только через Mohist) | Нет |
Выбирайте Forge, если:
- Вы собираете или хотите запустить готовый модпак (FTB Infinity, All the Mods 9, RLCraft)
- Вам нужны конкретные моды, доступные только под Forge
- Игроки уже знакомы с CurseForge и хотят Forge-экосистему
## Требования к серверу
Forge требователен к ресурсам, особенно при большом числе модов. Вот ориентировочные значения:
| Количество модов | RAM (рекомендовано) | Ядра CPU | Диск |
|---|---|---|---|
| 1-20 (лёгкие) | 3-4 ГБ | 2 | 10-20 ГБ |
| 20-80 (средние) | 5-7 ГБ | 4 | 20-40 ГБ |
| 80-200 (тяжёлые) | 8-10 ГБ | 4-6 | 40-80 ГБ |
| 200+ (мегапаки) | 12-16 ГБ | 6-8 | 80+ ГБ |
Эти цифры - для сервера с 5-15 игроками одновременно. Для 20+ игроков прибавьте ещё 2-4 ГБ. Быстрый NVMe-диск критически важен: Forge при старте загружает сотни jar-файлов и кеширует данные, операции ввода-вывода напрямую влияют на время запуска.
Минимальные требования к Java: Forge для Minecraft 1.18+ требует Java 17. Для 1.20+ и 1.21+ рекомендуется Java 21 (LTS). Проверьте версию:
```bash
java -version
```
Если версия устарела, установите нужную. На Ubuntu/Debian:
```bash
# Java 21
apt install openjdk-21-jdk-headless
# Проверить активную версию
update-java-alternatives --list
update-java-alternatives --set java-1.21.0-openjdk-amd64
```
## Пошаговая установка Forge-сервера
### Шаг 1. Скачать установщик Forge
Перейдите на официальный сайт: `https://files.minecraftforge.net/net/minecraftforge/forge/`
Выберите нужную версию Minecraft, затем нажмите кнопку **Installer** напротив Recommended (стабильная) или Latest (последняя). Скачайте файл вида `forge-1.21.1-47.3.X-installer.jar`.
Через консоль сервера:
```bash
# Пример для Minecraft 1.21.1, замените версию на актуальную
wget https://maven.minecraftforge.net/net/minecraftforge/forge/1.21.1-47.3.0/forge-1.21.1-47.3.0-installer.jar
```
Актуальный номер сборки всегда проверяйте на files.minecraftforge.net - версии меняются.
### Шаг 2. Запустить установщик в режиме сервера
Создайте папку для сервера и запустите инсталлятор:
```bash
mkdir ~/forge-server && cd ~/forge-server
java -jar forge-1.21.1-47.3.0-installer.jar --installServer
```
Установщик скачает файлы Minecraft, патчи Forge и все зависимости. Процесс занимает 1-5 минут в зависимости от скорости интернета. По завершении вы увидите:
```
The server installed successfully
```
В папке появятся файлы:
- `run.sh` / `run.bat` - скрипт запуска
- `libraries/` - библиотеки Forge и зависимости
- `user_jvm_args.txt` - JVM-флаги
- `forge-X.X-X-shim.jar` или `forge-X.X.jar` - основной jar
### Шаг 3. Принять EULA и запустить сервер
```bash
echo "eula=true" > eula.txt
```
Первый запуск через скрипт `run.sh`:
```bash
chmod +x run.sh
./run.sh
```
Если `run.sh` отсутствует (старые версии Forge), запустите вручную:
```bash
java -Xms2G -Xmx6G @libraries/net/minecraftforge/forge/1.21.1-47.3.0/unix_args.txt nogui
```
Первый старт занимает 2-5 минут: Forge регистрирует все ресурсы и создаёт папки. После успешного запуска остановите сервер командой `stop` и переходите к установке модов.
### Шаг 4. Настройка JVM-флагов
Файл `user_jvm_args.txt` - место для JVM-параметров. Пример для сервера с 6 ГБ RAM:
```
-Xms4G
-Xmx6G
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:G1HeapRegionSize=8m
-XX:+ParallelRefProcEnabled
-XX:+DisableExplicitGC
-Dfml.readTimeout=90
-Dfml.loginTimeout=90
```
Флаг `-Dfml.readTimeout=90` помогает при долгой загрузке модпака - клиент не получит тайм-аут при подключении.
## Установка модов на Forge-сервер
### Где брать моды
Официальные источники:
- **CurseForge** (`curseforge.com`) - крупнейший репозиторий Forge-модов
- **Modrinth** (`modrinth.com`) - растёт, многие новые моды публикуются здесь
Скачивайте моды только с этих платформ. Сторонние сайты часто раздают устаревшие или заражённые версии.
### Серверные vs клиентские моды
Это ключевое разграничение для Forge-серверов:
| Тип мода | На сервере | На клиенте | Пример |
|---|---|---|---|
| Общий (required) | Обязателен | Обязателен | Applied Energistics 2, Mekanism |
| Серверный (server-only) | Обязателен | Не нужен | ServerSideTranslations, FTB Essentials |
| Клиентский (client-only) | Не нужен (убрать) | Обязателен | JEI (частично), Xaero's Minimap |
| Библиотека | По зависимости | По зависимости | Kotlin for Forge, GeckoLib |
Если поставить клиентский мод на сервер, Forge может отказаться запускаться или выдать предупреждение. Игровые моды (геймплей, механики, биомы, машины) как правило нужны и там, и там.
### Добавление модов
Скопируйте jar-файлы модов в папку `mods/`:
```bash
# Пример загрузки мода через wget (замените ссылку на реальную)
cd ~/forge-server/mods
wget https://... -O applied-energistics-2-18.0.0.jar
wget https://... -O mekanism-1.21.1-10.5.0.jar
```
При следующем запуске сервер загрузит все jar-файлы из папки `mods/`. Не кладите в `mods/` файлы, не являющиеся Forge-модами - это вызовет ошибку загрузки.
### Зависимости модов
Многие Forge-моды требуют библиотеки. Например:
- `GeckoLib` - нужна для модов с кастомными анимациями
- `Kotlin for Forge` - обязательна для модов на языке Kotlin
- `Architectury API` - прослойка совместимости Forge/Fabric
- `Patchouli` - библиотека для внутриигровых книг-гайдов
Если мод не загружается из-за отсутствия зависимости, сервер напишет в лог:
```
Mod X requires [dependency Y version Z], but it is not present
```
Скачайте нужную библиотеку той же версии и положите в `mods/`.
## Синхронизация модпака с игроками
Это наиболее сложный аспект модного сервера - каждый игрок должен иметь ровно те же моды, что и сервер (кроме серверных и клиентских исключений).
### Способ 1. Готовый модпак на CurseForge / Modrinth
Если вы используете известный модпак (FTB, ATM, RLCraft), дайте игрокам ссылку на его страницу. Они устанавливают его через CurseForge App или Modrinth App - клиентская сборка уже содержит нужные моды.
Убедитесь, что версия модпака совпадает: обновления меняют набор модов.
### Способ 2. Собственный модпак через архив
Если вы собрали свой набор модов:
1. Создайте архив папки `mods/` (только общие и клиентские моды, без серверных)
2. Разместите архив на облаке (Google Drive, Yandex Disk, прямая ссылка)
3. Игроки скачивают и распаковывают в папку `.minecraft/mods/` профиля Forge
```bash
# На сервере - создать архив клиентских модов
cd ~/forge-server
zip -r client-mods-v1.2.zip mods/ -x "mods/server-only-mod-*.jar"
```
Прилагайте список изменений при каждом обновлении - игроки должны знать, что обновить.
### Способ 3. FTB Server Downloader / modpack-downloader
Для автоматической доставки модов существуют утилиты. FTB предоставляет собственный `ftb-server-mod-downloader`, который синхронизирует mods/ из манифеста модпака. Для CurseForge-сборок можно использовать `packwiz`:
```bash
# Установка packwiz (Go-бинарник)
go install github.com/packwiz/packwiz@latest
# Инициализация нового проекта
packwiz init
# Добавить мод из Modrinth
packwiz modrinth add applied-energistics-2
```
`packwiz` генерирует манифест, по которому клиенты (через packwiz-installer) автоматически скачивают обновления. Это самый удобный вариант для кастомных сборок.
## Конфигурация модов
Большинство Forge-модов создают свои конфиги в папке `config/` при первом запуске. Формат: обычно TOML (расширение `.toml`) или JSON.
Пример структуры `config/`:
```
config/
forge-client.toml # клиентские настройки Forge
forge-server.toml # серверные настройки Forge
mekanism/
general.toml # настройки Mekanism
storage.toml
ae2/
common.toml # настройки AE2
```
Редактируйте конфиги при остановленном сервере. Пример настройки Mekanism (`config/mekanism/general.toml`):
```toml
[general]
# Включить/выключить динамиты (griefing)
allowMekanismDynamite = false
# Максимальная энергия реактора
maxReactorOutput = 10000000
```
После изменения конфига перезапустите сервер. Некоторые моды поддерживают горячую перезагрузку конфига командой `/reload` (уточняйте в документации мода).
## Настройки Forge (forge-server.toml)
Основные параметры Forge для сервера в `config/forge-server.toml`:
```toml
[general]
# Включить возможность флинт-энд-стил
allowPortalCreation = true
# Приоритет загрузки мода при конфликте ID
overrideIDConflicts = false
[logging]
# Уровень детализации логов: ERROR, WARN, INFO, DEBUG
defaultLogLevel = "INFO"
[world]
# Отключить аварийное сохранение мира (снижает нагрузку на IO)
enableEntityCrashHelper = true
```
## Чтение краш-репортов
Краши Forge-сервера записываются в `crash-reports/`. Имя файла содержит дату и время: `crash-2026-06-05_14.32.15-server.txt`.
Структура краш-репорта:
```
---- Minecraft Crash Report ----
// <случайная шутка>
Time: 2026-06-05 14:32:15
Description: Exception in server tick loop
java.lang.NullPointerException: Cannot invoke "..." because "..." is null
at com.example.mymod.SomeClass.someMethod(SomeClass.java:42)
at ...
-- Head --
Thread: Server thread
Stacktrace:
at ...
-- System Details --
Minecraft Version: 1.21.1
Forge Version: 47.3.0
Installed mods: 87 mods loaded, 87 mods active
```
Алгоритм разбора краша:
1. Найдите строку `Description:` - общее описание проблемы
2. Найдите `Caused by:` или первую строку с именем класса после описания
3. Посмотрите первую строку `at com.modid.` - это и есть виновный мод
4. Ищите `modid` в списке `Installed mods:` в конце файла
Частые причины краша:
| Ошибка | Причина | Решение |
|---|---|---|
| NullPointerException | Мод не нашёл ожидаемый объект | Обновить мод или отключить |
| ClassNotFoundException | Отсутствует зависимость мода | Добавить нужную библиотеку |
| Mismatch in mod versions | Версия мода не совпадает с сервером | Уравнять версии |
| Out of memory | Мало RAM | Увеличить -Xmx |
| ConcurrentModificationException | Конфликт двух модов | Бинарный поиск конфликта |
Бинарный поиск конфликта: удалите половину модов, проверьте крэш. Если есть - виновник в удалённой половине. Повторяйте, пока не найдёте один мод.
## Оптимизация Forge-сервера
Forge-серверы по умолчанию не оптимизированы. Несколько модов существенно улучшают производительность:
**Rubidium / Embeddium** - порт Sodium для Forge, ускоряет рендеринг (только клиент).
**Canary** - оптимизация серверного тика для Forge (аналог Lithium).
**Radium** - оптимизации для параллельной обработки, совместим с Canary.
**FerriteCore** - уменьшает потребление памяти до 30-40% за счёт оптимизации хранения состояний блоков.
**Saturn** - оптимизация памяти для Forge, работает совместно с FerriteCore.
Пример набора оптимизационных модов в `mods/`:
```
canary-mc1.21.1-0.3.5.jar
radium-mc1.21.1-0.5.0.jar
ferritecore-7.0.0-forge.jar
saturn-mc1.21.1-0.1.3.jar
```
Добавляйте эти моды и на клиент, и на сервер - они помечены как `both` и поддерживают оба режима.
## Управление сервером через команды
Forge добавляет собственные команды помимо стандартных Minecraft:
```
/forge tps # TPS по измерениям (ищите отставание)
/forge entity list # Список сущностей и их количество
/forge entity kill all # Убить все незакреплённые сущности
/forge version # Версия Forge и список загруженных модов
```
Ограничьте права через `ops.json` или используйте мод FTB Essentials / FTB Chunks для более тонкого контроля прав на серверные команды.
## Связанные материалы
Forge-серверу часто сопутствует задача автоматизации: настройте [резервные копии](/ru/minecraft-server-backup), чтобы не потерять мир после неудачного обновления мода. Для экономики и работы с правами игроков изучите [Vault - центральный плагин экономики](/ru/minecraft-vault-plugin). Если ищете готовые решения для дополнений на своём сервере, загляните в [список лучших плагинов Minecraft](/ru/best-plugins).
## Заключение
Forge-сервер - надёжная основа для модпаков любого масштаба. Установка занимает 10-15 минут, но правильная работа требует внимания к деталям: совместимости версий, разделению серверных и клиентских модов, достаточному объёму RAM. Читайте краш-репорты - они почти всегда точно указывают на виновный мод. Начинайте с небольшого набора модов и добавляйте постепенно, проверяя стабильность после каждого добавления. Поддерживайте синхронизацию версий между сервером и клиентами игроков - это главная причина ошибок подключения.
> **Pterohost** - хостинг игровых серверов с NVMe, DDoS-защитой и круглосуточной поддержкой: Forge-сервера любого размера работают стабильно даже с 200+ модами. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-forge-server-setup)
---
## Сервер Minecraft с модом Create: механизмы
URL: https://docs.pterohost.com/ru/minecraft-create-mod-server
Обновлено: 2026-06-10
Как установить мод Create на сервер Minecraft, настроить Forge/Fabric, управлять нагрузкой от механизмов и поездов. Аддоны и оптимизация.
---
> **Кратко:** Create - технический мод для Minecraft, добавляющий механические устройства, конвейеры, поезда и автоматизацию. Для сервера нужен Forge или Fabric загрузчик, минимум 4-6 ГБ RAM и правильно настроенный конфиг, чтобы contraptions не роняли TPS.
# Сервер Minecraft с модом Create: механизмы
**Мод Create превратил технические сборки Minecraft в полноценный механический конструктор.** В 2026 году Create стабильно входит в топ-10 скачиваемых модов на CurseForge и Modrinth - его устанавливают и на приватных серверах для друзей, и в публичных технических modpack-ах. Основа мода - вращение: шестерёнки, ремни, валы передают крутящий момент от источника к потребителю. На этом принципе строятся дробилки, миксеры, конвейеры, буровые установки и, наконец, поезда с полноценными маршрутами. Главная особенность Create с точки зрения сервера - contraptions: движущиеся конструкции, которые создают нагрузку принципиально отличную от обычных мобов или редстоун-схем.
> **Pterohost** - хостинг Minecraft серверов с NVMe-дисками, защитой от DDoS и поддержкой 24/7. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-create-mod-server)
## Выбор загрузчика: Forge vs Fabric для Create
Мод Create существует в двух основных ветках:
**Create for Forge** - исторически первичная версия. Поддерживает Minecraft 1.18.2, 1.19.2, 1.20.1 и новее. Большинство аддонов изначально выходят для Forge.
**Create Fabric** - портированная версия. Начиная с 1.20 активно поддерживается сообществом, функционально практически идентична Forge-версии. Использует промежуточный слой Connector или нативный Fabric API в зависимости от аддона.
Выбор зависит от остальных модов в сборке:
| Критерий | Forge | Fabric |
|---|---|---|
| Совместимость аддонов Create | Максимальная | Хорошая (на 1.20+) |
| Производительность сервера | Стандартная | Чуть лучше с Lithium/Starlight |
| Популярные modpack-и | FTB, ATM, Enigmatica | Fabulously Optimized, Create Above and Beyond Fabric |
| Рекомендуется для | Больших сборок с 30+ модами | Чистых Create-серверов с минимум модов |
Для сервера с упором именно на Create и его аддоны - Forge 1.20.1 или Forge 1.21 на конец 2026 года остаётся наиболее безопасным выбором с точки зрения совместимости.
## Установка Create на сервер пошагово
### Подготовка: установка Forge
Скачайте Forge-installer с https://files.minecraftforge.net/ для нужной версии MC. На сервере запустите:
```bash
java -jar forge-1.20.1-47.X.X-installer.jar --installServer
```
Forge создаст файл `run.sh` (Linux) или `run.bat` (Windows). Запустите его один раз - сервер создаст папки и завершит работу с ошибкой "EULA не принята". Откройте `eula.txt` и измените строку:
```
eula=true
```
### Загрузка мода Create
Скачайте `.jar` файл Create с Modrinth (https://modrinth.com/mod/create) или CurseForge. Важно: убедитесь, что версия Create совпадает с версией Minecraft и Forge/Fabric.
Поместите файл в папку `mods/`:
```bash
ls mods/
# create-1.20.1-0.5.1.jar
```
Если вы используете Fabric - дополнительно нужен Fabric API:
```bash
ls mods/
# create-fabric-0.5.1-d-mc1.20.1.jar
# fabric-api-0.92.X+1.20.1.jar
```
### Первый запуск и проверка
Запустите сервер. В логах должна появиться строка вида:
```
[Create] Initializing registries...
[Create] Registered X contraption types
```
Если вместо этого ошибка `ClassNotFoundException` - версия Forge не совпадает с требованиями мода. Проверьте `MODS_LOADED.txt` или `latest.log` в папке `logs/`.
## Что даёт мод Create: основные механики
### Кинематика и передача момента
Основа Create - система вращения. Генераторы (водяное колесо, ветряная мельница, двигатель) создают `stress capacity` (мощность). Механизмы потребляют `stress` (нагрузку). Если суммарная нагрузка превышает мощность - сеть останавливается.
На сервере это означает, что игрокам нужно думать о балансе. Никаких infinite power нет без ванильных читов или специальных аддонов.
### Contraptions - движущиеся конструкции
Contraption - это когда группа блоков начинает двигаться как единое целое. Примеры:
- **Механический поршень** двигает колонну блоков
- **Bearing** (подшипник) вращает конструкцию
- **Mechanical Glue** позволяет перевозить блоки на транспортных средствах
- **Trains** - поезда перемещают пассажиров и грузы по путям
С точки зрения сервера каждая активная contraption - это отдельная "псевдо-сущность", которая просчитывается каждый тик. 50 одновременно движущихся contraptions - это 50 дополнительных единиц нагрузки поверх обычного мира.
### Автоматизация производства
Create позволяет строить полностью автоматические фабрики:
- **Mechanical Drill / Quarry** - добыча ресурсов буром
- **Deployer** - автоматическое взаимодействие с миром
- **Belt** - конвейерные ленты для транспортировки предметов
- **Mixer, Crushing Wheels, Press** - обработка материалов
- **Fluid pipes** - жидкостные трубы для автоматического крафта
Фабрики в покое (конвейеры без предметов, остановленные шестерёнки) нагружают сервер минимально - только обычные блоковые обновления.
### Поезда (Trains)
Система поездов появилась в Create 0.5 и значительно развита в последующих версиях. Поезда:
- Ездят по рельсам Create (не ванильным)
- Имеют маршруты с остановками
- Могут перевозить игроков и грузы автоматически
- Интегрируются с сигнальной системой для предотвращения столкновений
С точки зрения нагрузки - поезд в движении это contraption. Остановившийся поезд на станции - почти не нагружает сервер.
## Нагрузка от Create на сервер: что реально тяжело
Понимание источников лагов критично для администратора Create-сервера.
### Источники нагрузки по убыванию тяжести
| Источник | Нагрузка | Комментарий |
|---|---|---|
| Активные contraptions (вращающиеся bearing-и) | Очень высокая | Каждый тик пересчёт позиций блоков |
| Движущиеся поезда | Высокая | Особенно на длинных маршрутах |
| Crushing Wheels в работе | Средняя | Генерация частиц + обработка предметов |
| Конвейерные линии с предметами | Средняя | Зависит от числа предметов на лентах |
| Fluid pipe network | Средняя | При больших сетях - много обновлений |
| Остановленные механизмы | Низкая | Фактически пассивные блоки |
| Декоративные блоки Create | Минимальная | Нет логики, только рендер |
### Метрика: stress vs TPS
На сервере нет рендера, поэтому `stress capacity` внутри Create не влияет на TPS напрямую. Влияет именно число активных тиковых обновлений: каждый движущийся механизм добавляет вычисления в server tick loop.
Для мониторинга используйте:
```
/forge tps # Forge: TPS по измерениям
/tick query # Minecraft 1.20+: текущий tick rate
```
Или установите мод Spark (https://modrinth.com/mod/spark) - он дает детальный profiling с разбивкой по источникам нагрузки.
## Конфигурация Create для снижения нагрузки
После первого запуска Create создаёт папку `config/` с файлом конфигурации. Основные параметры находятся в `create-server.toml` (для Forge) или `create-common.toml`.
### Ключевые параметры
```toml
[server]
# Максимальное число contraptions в мире одновременно
# Default: неограничено, рекомендуется 50-100 для публичного сервера
maxContraptionCount = 100
# Максимальный размер contraption (число блоков)
# Снижает риск огромных лагающих конструкций
maxContraptionSize = 2048
# Отключить ли физическую обработку падающих contraptions
# true = меньше вычислений, но contraptions не падают физически
disableContraptionPhysics = false
[trains]
# Максимальное число одновременно движущихся поездов
maxTrainCount = 30
# Симуляция поездов вне loaded chunks
# true = поезда продолжают движение даже в незагруженных чанках (нагрузка)
# false = поезда стоят пока чанк не загружен (рекомендуется для больших серверов)
simulateUnloadedTrains = false
```
### Настройки simulation-distance
В `server.properties` уменьшите дистанцию симуляции - именно она определяет, сколько чанков с активными механизмами обрабатывается одновременно:
```properties
# Стандартный view-distance
view-distance=10
# Simulation distance - только в этом радиусе работают механизмы
# Для Create-серверов рекомендуется 6-8
simulation-distance=6
```
При `simulation-distance=6` поезда и contraptions за пределами 6 чанков от любого игрока просто не тикают - резкое снижение нагрузки на большом сервере.
## Совместимые аддоны для Create
Экосистема Create в 2026 году включает десятки аддонов. Вот актуальные и реально используемые:
### Транспорт и движение
**Create: Steam 'n' Rails** (`railways` на Modrinth)
- Расширяет систему поездов: новые вагоны, грузовые системы, маршрутизация
- Совместим с Forge и Fabric 1.20+
- Умеренная нагрузка - использует систему поездов Create
**Create: New Age** (`create-new-age`)
- Добавляет электрические генераторы и моторы
- Позволяет конвертировать вращение в электроэнергию
- Совместим с Forge 1.20.1
### Производство и обработка
**Create: Crafts & Additions** (`createaddition`)
- Электромоторы, электролиз, новые рецепты
- Один из самых популярных аддонов
- Доступен для Forge и Fabric
**Create: Slice & Dice** (`slice-and-dice`)
- Интеграция с Farmer's Delight
- Механические ножи для обработки еды
- Легковесный, минимальная нагрузка
**Create: Enchantment Industry** (`create-enchantment-industry`)
- Автоматическое зачарование через механизмы
- Меняет мета-игру зачарований
- Forge и Fabric 1.20+
### Декор и визуал
**Create: Bells & Whistles** (`bellsandwhistles`)
- Декоративные элементы для поездов и зданий
- Чисто визуальное дополнение
- Нагрузка минимальная
**Create: Deco** (`create-deco`)
- Декоративные блоки в стиле Create
- Никакой игровой логики, только строительство
### Таблица совместимости популярных аддонов
| Аддон | Forge 1.20.1 | Fabric 1.20.1 | Forge 1.21 |
|---|---|---|---|
| Steam 'n' Rails | Да | Да | Да |
| Crafts & Additions | Да | Да | Проверяйте |
| Slice & Dice | Да | Да | Да |
| Enchantment Industry | Да | Да | Проверяйте |
| New Age | Да | Нет | Проверяйте |
Всегда проверяйте актуальную совместимость на странице мода на Modrinth - таблицы устаревают.
## Оптимизация сервера с Create
### JVM-флаги для тяжёлых модпаков
Создайте или отредактируйте `user_jvm_args.txt` в корне сервера (Forge читает его автоматически):
```
-Xms4G -Xmx8G
-XX:+UseG1GC
-XX:+ParallelRefProcEnabled
-XX:MaxGCPauseMillis=200
-XX:+UnlockExperimentalVMOptions
-XX:+DisableExplicitGC
-XX:G1NewSizePercent=30
-XX:G1MaxNewSizePercent=40
-XX:G1HeapRegionSize=8M
-XX:G1ReservePercent=20
-XX:G1HeapWastePercent=5
-XX:G1MixedGCCountTarget=4
-XX:InitiatingHeapOccupancyPercent=15
-XX:G1MixedGCLiveThresholdPercent=90
-XX:G1RSetUpdatingPauseTimePercent=5
-XX:SurvivorRatio=32
-XX:+PerfDisableSharedMem
-XX:MaxTenuringThreshold=1
```
Для Forge 1.20.1+ также работают флаги Aikar's Flags - они немного другие, но суть та же: G1GC с агрессивной настройкой под серверную нагрузку.
### Дополнительные моды для оптимизации
Эти моды совместимы с Create и снижают общую нагрузку сервера:
**Ferrite Core** - снижает потребление RAM блоковыми состояниями (очень заметно с Create из-за количества блоков)
**Chunky** или **Chunkmaster** - предварительная генерация чанков. Запустите генерацию до открытия сервера:
```
/chunky start # в консоли после установки Chunky
/chunky radius 2000
```
Это критично для Create-серверов: первое исследование территории без прегенерации вызывает сильные просадки TPS.
**ModernFix** (Forge 1.20+) - множество микрооптимизаций для Forge-серверов, в том числе снижение startup time.
**Spark** - профилировщик. Незаменим для поиска источника лагов:
```
/spark profiler start
# воспроизведите лаг
/spark profiler stop
```
Spark выдаёт ссылку на flamegraph с разбивкой нагрузки.
### Ограничения для игроков через Rules of Create
Create не имеет встроенного permission-менеджера. Для ограничений используйте связку:
- **FTB Chunks** - лимит на размер территории в claim-зонах, что косвенно ограничивает масштаб фабрик
- **LuckPerms + специальные моды** - ограничение команд, если аддоны добавляют команды
- **WorldGuard** - запрет размещения тяжёлых блоков в определённых регионах (например, запрет Mechanical Bearing в спавне)
## Типичные ошибки при запуске Create-сервера
**Ошибка: `Dependency org.slf4j:slf4j-api version ... is not satisfied`**
Решение: обновите Forge до последней версии для вашего MC. SLF4J - зависимость самого Forge.
**Ошибка: `Create requires Flywheel version X.X.X`**
Решение: скачайте Flywheel отдельно и положите в `mods/`. Начиная с Create 0.5.1 Flywheel встроен, но в некоторых сборках его нужно добавить вручную.
**Сервер крашится при загрузке чанка с contraption**
Обычно означает несовместимость версий Create и одного из аддонов. Проверьте `crash-reports/` - в отчёте будет стек вызовов с именем мода-виновника. Удаляйте аддоны по одному для диагностики.
**TPS падает до 5-8 при подходе к фабрике**
Используйте Spark для профилирования. Чаще всего виновник - Bearing или Moving Contraption. Временно остановите contraption (`снимите питание`) и проверьте TPS - если вырос, причина найдена.
## Связанные материалы
Если вы настраиваете полноценный технический сервер с Create, вам пригодятся другие материалы: [выбор ядра сервера Minecraft](/ru/minecraft-cores) поможет определиться с Forge vs Fabric с технической стороны, [оптимизация сервера Minecraft](/ru/minecraft-server-optimization) содержит общие методы снижения нагрузки, а [WorldGuard: регионы и защита](/ru/minecraft-worldguard-regiony) объяснит, как ограничить строительство фабрик в нежелательных зонах.
## Заключение
Create - один из немногих модов, который реально меняет геймплей, а не просто добавляет предметы. На сервере он требует грамотного администрирования: правильного выбора загрузчика, достаточного объёма RAM, настройки simulation-distance и ограничений на число contraptions. С предгенерацией чанков, Spark-профилировщиком и правильными JVM-флагами сервер на Create стабильно держит 20 TPS даже при активных фабриках. Начинайте с малого - запустите базовый Create без аддонов, проверьте нагрузку, и только потом добавляйте Steam 'n' Rails или Crafts & Additions. Так вы точно будете знать, что именно нагружает ваш сервер.
> **Pterohost** - игровой хостинг с NVMe-дисками, защитой от DDoS и технической поддержкой в чате 24/7 - идеальная база для сервера с модом Create. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-create-mod-server)
---
## Сервер Survival Games (Hunger Games) в Minecraft
URL: https://docs.pterohost.com/ru/minecraft-survival-games-server
Обновлено: 2026-06-02
Как настроить сервер Survival Games в Minecraft: плагин SurvivalGames, арены, сундуки лута, deathmatch и авторестарт раундов.
---
> **Кратко:** Survival Games - это королевская битва в стиле «Голодных игр»: игроки появляются на спавнах вокруг центрального сундука, собирают лут и сражаются до последнего. Настройка занимает 1-2 часа: нужны Paper-ядро, плагин SurvivalGames, готовая арена и базовый конфиг лута.
# Сервер Survival Games (Hunger Games) в Minecraft
**Survival Games (он же Hunger Games) - один из старейших и до сих пор популярных игровых режимов в Minecraft.** Концепция пришла из одноимённой книги и фильма: участники стартуют на пьедесталах вокруг огромного Cornucopia, разбегаются по карте, собирают снаряжение из сундуков и уничтожают друг друга. Последний выживший побеждает. В 2026 году этот формат переживает второй ренессанс - благодаря стримам и ностальгии по золотой эпохе Minecraft 2012-2015 годов. Правильно настроенный сервер с арестом на 12-24 слота может стать точкой сбора постоянной аудитории.
> **Pterohost** - игровой хостинг с NVMe-дисками, DDoS-защитой и поддержкой 24/7, идеально подходит для многопользовательских режимов вроде Survival Games. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-survival-games-server)
## Требования к серверу и выбор ядра
Для Survival Games необходим Bukkit-совместимый сервер. Ванильный сервер и Fabric здесь не работают - плагины требуют Bukkit API.
**Рекомендуемые ядра в 2026 году:**
| Ядро | Версия | Почему подходит |
|------|--------|-----------------|
| Paper | 1.21.4+ | Стабильное, хорошая совместимость с плагинами, активная поддержка |
| Purpur | 1.21.4+ | Форк Paper с дополнительными настройками, чуть лучше производительность |
| Folia | 1.21+ | Для очень нагруженных серверов, но проверяй совместимость плагинов |
Избегай старых Spigot-форков с устаревшим API - большинство современных плагинов требуют Paper-специфичных методов.
**Минимальные требования по RAM:**
- 1-2 арены, до 20 игроков: 2-3 GB RAM
- 3-5 арен, до 50 игроков: 4-6 GB RAM
- Более 5 арен, 50+ онлайн: 8+ GB RAM
## Выбор и установка плагина SurvivalGames
Наиболее живой и поддерживаемый плагин в 2026 году - **SurvivalGames** на SpigotMC (автор BlackOpsHD, актуальная ветка совместима с Paper 1.20-1.21). Альтернатива - **MicroGames** (более легковесный) и **BattleArena** (универсальный фреймворк с SG-режимом).
**Установка:**
1. Скачай `.jar` плагина с SpigotMC или его GitHub-репозитория.
2. Скопируй в папку `plugins/` на сервере.
3. Перезапусти сервер: команда `/stop` -> запуск.
4. Папка `plugins/SurvivalGames/` с конфигами появится автоматически.
**Зависимости:**
```
- WorldEdit (или FAWE) - для задания регионов арены
- WorldGuard - для защиты арены от разрушений вне раунда
- Vault + плагин экономики (опционально) - для наград за победу
```
Установи все зависимости до первого запуска SurvivalGames.
## Создание арены: планировка и постройка
Арена - ключевой элемент Survival Games. Размытая или пустая карта убивает интерес игроков за минуту.
**Стандартная планировка:**
- Центральный Cornucopia (здание, яма, пирамида) - источник лучшего лута
- Кольцо из 12-24 пьедесталов вокруг центра на расстоянии 5-10 блоков
- Открытая местность с биомами для средней зоны (лес, деревня, руины)
- Deathmatch-зона в центре или отдельный компактный PvP-квадрат
**Оптимальные размеры:**
| Кол-во игроков | Рекомендуемый размер арены |
|---------------|---------------------------|
| 8-12 | 200x200 блоков |
| 12-24 | 400x400 блоков |
| 24-48 | 600x600 блоков |
Используй WorldEdit для быстрого создания и правки карты. Скопируй готовую арену через `//copy` и `//paste` или подключи готовый schematic.
## Регистрация арены в SurvivalGames
После постройки арену нужно зарегистрировать через команды плагина.
**Создание новой арены:**
```
/sg create <имя_арены>
```
**Задание границ** (встань в угол, затем в противоположный):
```
/sg setpos1 <имя_арены>
/sg setpos2 <имя_арены>
```
**Добавление спавнов** (встань на пьедестал, выполни для каждого):
```
/sg addspawn <имя_арены>
```
Минимальное количество спавнов - столько, сколько задано в `min-players`. Рекомендуется добавлять спавнов на 2-4 больше максимума игроков - это даёт свободу выбора позиции.
**Задание deathmatch-локации:**
```
/sg setdeathmatch <имя_арены>
```
Встань в центр deathmatch-зоны перед выполнением команды.
**Активация арены:**
```
/sg enable <имя_арены>
```
**Просмотр статуса:**
```
/sg list
/sg info <имя_арены>
```
## Настройка конфига: config.yml
Главный файл настроек находится по пути `plugins/SurvivalGames/config.yml`. Вот ключевые параметры с пояснениями:
```yaml
# Общие настройки
min-players: 4 # минимум для старта отсчёта
max-players: 24 # максимум в одном раунде
countdown-time: 30 # секунды отсчёта после набора min-players
grace-period: 60 # секунды неуязвимости после старта (нельзя атаковать)
game-time: 600 # максимальная длительность раунда в секундах
deathmatch-time: 300 # через сколько секунд после старта - deathmatch
# Deathmatch
deathmatch-enabled: true
deathmatch-countdown: 30 # отсчёт перед телепортом на deathmatch
border-shrink: false # сужение границы (если поддерживается картой)
# Лут
refill-chests: true # перезаполнять сундуки в начале каждого раунда
chest-refill-time: 180 # секунды до автодозаполнения сундуков в ходе раунда
# Сообщения и очки
broadcast-winner: true
give-reward-on-win: true
reward-command: "eco give %player% 100" # команда за победу (требует Vault)
# Respawn и очки смерти
spectate-on-death: true # погибшие становятся наблюдателями
```
После изменений перезагружай конфиг командой `/sg reload`, не перезапуская весь сервер.
## Настройка лута в сундуках
Лут - главный баланс игры. Слишком сильный лут в центре делает победителя предопределённым, слишком слабый - превращает игру в бесконечную беготню.
Файл лута обычно называется `chests.yml` или `loot.yml` (зависит от версии плагина):
```yaml
tiers:
tier1: # сундуки по краям карты
items:
- material: WOODEN_SWORD
min: 1
max: 1
weight: 50
- material: BREAD
min: 2
max: 5
weight: 70
- material: LEATHER_CHESTPLATE
min: 1
max: 1
weight: 30
- material: ARROW
min: 4
max: 12
weight: 40
tier2: # сундуки ближе к центру
items:
- material: STONE_SWORD
min: 1
max: 1
weight: 40
- material: IRON_CHESTPLATE
min: 1
max: 1
weight: 20
- material: BOW
min: 1
max: 1
weight: 25
- material: COOKED_BEEF
min: 3
max: 6
weight: 60
- material: GOLDEN_APPLE
min: 1
max: 2
weight: 10
tier3: # Cornucopia - центральные сундуки
items:
- material: IRON_SWORD
min: 1
max: 1
weight: 30
- material: DIAMOND_CHESTPLATE
min: 1
max: 1
weight: 5
- material: GOLDEN_APPLE
min: 2
max: 4
weight: 15
- material: DIAMOND_SWORD
min: 1
max: 1
weight: 8
```
Параметр `weight` - это относительный вес: чем выше, тем чаще предмет попадается. Суммировать не нужно - плагин нормализует самостоятельно.
**Совет по балансу:** Не клади броню выше железной в крайних сундуках, алмазное снаряжение - только в центральном tier3. Golden Apple лучше ограничить 1-2 штуками даже в tier3.
## Авторестарт раундов и стабильность работы
Сервер Survival Games должен работать в режиме постоянного цикла: завершился раунд - началось лобби - набрались игроки - новый раунд. Это решается несколькими инструментами.
**Автоматический рестарт раундов** встроен в SurvivalGames: после победителя сервер возвращает игроков в лобби и снова запускает отсчёт при наборе `min-players`.
**Автоматический рестарт самого сервера** (рекомендуется раз в 12-24 часа для очистки памяти). Пример через cron на Linux:
```bash
# Перезапуск в 04:00 каждую ночь
0 4 * * * systemctl restart minecraft-server
```
Или через плагин **AutoRestart**:
```yaml
# AutoRestart config.yml
restart-time: "04:00"
warning-times:
- 300 # 5 минут предупреждение
- 60 # 1 минута
- 10 # 10 секунд
restart-command: "restart"
```
**Лобби-мир:** Вынеси лобби в отдельный мир через плагин **Multiverse-Core**. Так арена-мир не засоряется телепортами, а лобби всегда чистое:
```
/mv create lobby normal
/mv tp lobby
```
Для автотелепорта новых игроков в лобби используй плагин **MultiWorld** или **EssentialsX** с настройкой `spawn-on-join: lobby`.
## Защита арены: WorldGuard-регионы
Нельзя допустить, чтобы игроки ломали блоки арены вне раунда или гриферы уничтожили постройки.
**Создание региона защиты:**
```
//wand # выдаёт инструмент выделения WorldEdit
// выдели угловые точки арены левой и правой кнопкой мыши
/rg define arena_main
/rg flag arena_main build deny
/rg flag arena_main block-break deny
/rg flag arena_main block-place deny
/rg flag arena_main pvp deny # PvP запрещён в лобби-состоянии
```
Когда раунд начинается, SurvivalGames автоматически снимает PvP-флаг региона (если интеграция с WorldGuard включена в конфиге плагина).
**Защита лобби:**
```
/rg define lobby_zone
/rg flag lobby_zone pvp deny
/rg flag lobby_zone build deny
/rg flag lobby_zone block-break deny
```
## Настройка спавнов и сцепки на арену
Когда игрок заходит на сервер, он должен попасть в лобби, а не напрямую в активную арену.
**Команда присоединения к арене:**
```
/sg join <имя_арены> # присоединиться к конкретной
/sg join # автоматически к доступной
```
Для интеграции с NPC-знаком (кликабельный знак-присоединение) установи **SignEdit** или используй встроенную функцию SurvivalGames - в некоторых версиях достаточно написать `[SurvivalGames]` на первой строке знака и имя арены на второй.
**Очередь и балансировка:** Если несколько арен, плагин сам распределяет игроков. Управляется параметром `auto-join: true` в конфиге.
## Скорборд и статистика
Визуальный скорборд сбоку экрана - важный элемент UX. SurvivalGames встроенный скорборд показывает количество оставшихся игроков, таймер и имя арены.
Для кастомизации вида используй **AnimatedScoreboard** или **TAB**. Пример строк через PAPI (PlaceholderAPI):
```
&6&l- SURVIVAL GAMES -
&7Арена: &f%sg_arena%
&7Живых: &c%sg_alive%
&7Таймер: &e%sg_time%
&7Твои убийства: &a%sg_kills%
```
Плейсхолдеры `%sg_*%` доступны если у SurvivalGames есть PAPI-расширение (проверяй в комплекте плагина).
Для хранения статистики (побед, убийств, смертей) используй встроенную БД плагина или подключи MySQL:
```yaml
storage:
type: mysql # sqlite или mysql
mysql:
host: 127.0.0.1
port: 3306
database: sg_stats
username: sg_user
password: yourpassword
```
## Как привлечь игроков на сервер Survival Games
Техническая настройка - это половина дела. Без игроков самая красивая арена стоит пустой.
**Мониторинги и листинги:**
- topcraft.ru - крупнейший русскоязычный мониторинг, регистрация бесплатна
- mcservers.ru - второй по трафику, хорош для discovery
- minecraft-server-list.com - международный, даёт трафик на англоязычных игроков
Для системы голосований на мониторингах установи **VotifierPlus** + **SuperbVote**:
```yaml
# SuperbVote rewards.yml
services:
topcraft:
commands:
- "sg give-vote-reward %player%" # твоя команда выдачи награды
```
Награды за голос (золотые яблоки, особый меч с enchant, бонусные кредиты) значительно повышают вовлечённость.
**Дискорд и Telegram:** Создай сервер/канал, публикуй скриншоты лучших раундов, объявляй турниры. Ивенты типа «победи 10 раундов подряд - получи ранг» хорошо удерживают аудиторию.
**Ивенты и турниры:** Запускай еженедельные турниры с фиксированным временем. Объяви расписание и приз - это создаёт регулярный трафик в предсказуемые часы.
**Отличительные черты сервера:** Красивые кастомные карты, уникальные механики (перки за убийства, кастомные зелья) и активный чат-модератор лучше любой рекламы удерживают постоянных игроков.
## Оптимизация производительности
Survival Games с множеством одновременных игроков создаёт нагрузку на сервер.
**Ключевые параметры Paper** (`config/paper-global.yml`):
```yaml
chunk-loading-basic:
player-max-chunk-load-rate: 100
player-max-chunk-send-rate: 75
entity-per-chunk-save-limit:
arrow: 16 # Ограничение стрел в чанке
item: 32 # Ограничение дропа
async-chunks: true
```
**Параметры в `server.properties`:**
```properties
view-distance=8 # для SG достаточно, арена небольшая
simulation-distance=4 # мобы и физика не нужны на арене
max-players=100 # с учётом наблюдателей
```
Отключи мобов на арене через WorldGuard:
```
/rg flag arena_main mob-spawning deny
```
## Связанные материалы
Если ты только разворачиваешь сервер, прочитай про [лучшие плагины для Minecraft сервера](/ru/best-plugins) - там разобраны базовые инструменты администратора, без которых не обходится ни один проект. Для управления правами и командами игроков пригодится статья об [EssentialsX](/ru/minecraft-essentialsx-commands). А тонкую настройку самого ядра сервера закрывает [гайд по server.properties](/ru/minecraft-server-properties-guide).
## Заключение
Сервер Survival Games - это законченный игровой продукт, который при правильной настройке работает автономно: раунды сменяются, лут перегенерируется, статистика копится. Ключевые шаги - выбрать Paper-ядро, установить SurvivalGames с зависимостями, построить или скачать арену, настроить спавны и лут-таблицы, защитить регионы через WorldGuard. После технического запуска фокус переходит на привлечение аудитории: мониторинги, голосования с наградами и регулярные ивенты. Формат королевской битвы остаётся одним из самых виральных в Minecraft-сообществе - успешный раунд почти всегда приводит новых игроков через рекомендации.
> **Pterohost** - хостинг Minecraft серверов с SSD NVMe, защитой от DDoS-атак и круглосуточной поддержкой - отличный старт для Survival Games проекта любого масштаба. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-survival-games-server)
---
## Скорборд (боковая панель) на сервере Minecraft
URL: https://docs.pterohost.com/ru/minecraft-server-scoreboard
Обновлено: 2026-06-02
Как настроить скорборд на сервере Minecraft: плагины, плейсхолдеры PAPI, анимации, разные борды по мирам и группам. Полный гайд 2026.
---
> **Кратко:** Скорборд - боковая панель справа от экрана - один из первых элементов, который видит игрок. Для его настройки используют плагины TAB или EZScoreboard с поддержкой PlaceholderAPI: выводят онлайн, баланс, ранг и координаты в реальном времени.
# Скорборд (боковая панель) на сервере Minecraft
**Скорборд (sidebar scoreboard) - это боковая панель, которая отображается справа на экране игрока и показывает ключевую информацию о сервере: онлайн, баланс, ранг, координаты, время суток.** В 2026 году большинство крупных серверов используют его как визитную карточку - по качеству оформления борды игроки судят об уровне сервера в целом. Правильно настроенный скорборд повышает вовлечённость: игрок всегда видит свой прогресс и мотивирован продолжать игру. В этой статье разберём всё - от выбора плагина до тонкой настройки анимаций и условий отображения по мирам и группам.
> **Pterohost** - игровой хостинг с NVMe-дисками, DDoS-защитой и технической поддержкой 24/7. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-server-scoreboard)
## Выбор плагина для скорборда
На рынке несколько зрелых плагинов. Ниже - сравнение актуальных на 2026 год.
| Плагин | Минимальная версия MC | PlaceholderAPI | Анимации | Условия (мир/группа) | Нагрузка |
|---|---|---|---|---|---|
| TAB (NEZNAMY) | 1.8 - 1.21 | Да | Да | Да | Низкая |
| FastBoard | 1.8 - 1.21 | Через PAPI hook | Да | Через API | Минимальная |
| EZScoreboard | 1.16 - 1.21 | Да | Да | Да | Низкая |
| ScoreboardStats | 1.8 - 1.20 | Частично | Нет | Нет | Средняя |
| Scoreboard-Revision | 1.16 - 1.21 | Да | Да | Да | Низкая |
**TAB** - наиболее функциональный вариант. Он управляет одновременно табом игроков, заголовком/подвалом таба, именами над головой и скорбордом из одного конфига. Подходит для серверов с разнообразной логикой.
**FastBoard** ориентирован на минимальную нагрузку - обновляет только изменившиеся строки без перерисовки, что устраняет мигание. Хорошо подходит для хайлоад-серверов.
**EZScoreboard** - самый удобный в настройке для новичков, имеет YAML-профили и визуальный редактор условий.
## Установка TAB и базовая настройка
### Зависимости
Для полноценной работы нужны:
1. **TAB** - основной плагин. Скачать с [hangar.papermc.io](https://hangar.papermc.io/NEZNAMY/TAB).
2. **PlaceholderAPI (PAPI)** - движок плейсхолдеров.
3. **Vault** - для плейсхолдеров баланса и ранга.
4. Расширение Vault для PAPI: выполнить команду `/papi ecloud download Vault` и `/papi reload`.
Помести jar-файлы в папку `plugins/` и перезапусти сервер.
### Включение скорборда в config.yml
После первого запуска TAB создаёт `plugins/TAB/config.yml`. Найди секцию `scoreboard`:
```yaml
scoreboard:
enabled: true
toggle-command: "/scoreboard"
remember-toggle-choice: true
use-numbers: false # false = скрывает числа слева
show-numbers: "static" # static | dynamic
static-number: 0
display-condition: "" # пусто = показывать всем
```
Установи `enabled: true` и перезапусти (`/tab reload`).
### Файл scoreboards.yml
Основной конфиг борды находится в `plugins/TAB/scoreboards.yml`. Минимальный рабочий пример:
```yaml
scoreboards:
default:
title: "&6&lМой сервер"
lines:
- "&7Онлайн: &e%online%"
- " "
- "&7Игрок: &b%player%"
- "&7Ранг: &a%luckperms_prefix%"
- " "
- "&7Баланс: &2%vault_eco_balance_formatted%"
- " "
- "&7Мир: &d%worldname%"
- "&7X: &f%x% Y: &f%y% Z: &f%z%"
- " "
- "&ewww.мойсервер.ru"
```
Пустая строка `" "` создаёт визуальный разделитель. Строк не должно быть больше 15.
## Плейсхолдеры PlaceholderAPI
Скорборд становится живым благодаря плейсхолдерам PAPI. Вот наиболее востребованные:
### Онлайн и сервер
| Плейсхолдер | Что выводит |
|---|---|
| `%online%` | Количество игроков онлайн |
| `%max_players%` | Максимум слотов |
| `%server_name%` | Название сервера из server.properties |
| `%server_tps_1%` | TPS за последнюю минуту |
| `%server_uptime%` | Время работы сервера |
### Игрок
| Плейсхолдер | Что выводит |
|---|---|
| `%player%` | Ник игрока |
| `%player_displayname%` | Отображаемое имя |
| `%player_health%` | Текущее здоровье |
| `%player_food_level%` | Уровень голода |
| `%player_level%` | Уровень опыта |
| `%player_gamemode%` | Режим игры |
### Координаты
```yaml
- "&7Координаты:"
- "&fX: %player_x% Y: %player_y% Z: %player_z%"
```
Плейсхолдеры `%player_x%`, `%player_y%`, `%player_z%` доступны через PAPI-расширение `Player`. Установить: `/papi ecloud download Player && /papi reload`.
### Баланс и экономика (Vault)
```yaml
- "&7Баланс: &a%vault_eco_balance_formatted% $"
```
Для работы нужен Vault + плагин экономики (EssentialsX Economy, CMI, PlayerPoints).
### Ранг и группы (LuckPerms)
| Плейсхолдер | Что выводит |
|---|---|
| `%luckperms_prefix%` | Префикс группы |
| `%luckperms_suffix%` | Суффикс группы |
| `%luckperms_primary_group_name%` | Название первичной группы |
### Время и погода
```yaml
- "&7Время: &e%worldtime12%"
- "&7Погода: &b%weather%"
```
Доступны через расширение `Server`. Команда установки: `/papi ecloud download Server && /papi reload`.
### Статистика убийств и смертей
Для PvP-серверов полезны плейсхолдеры из расширения `Statistic`:
```yaml
- "&7Убийств: &c%statistic_player_kills%"
- "&7Смертей: &7%statistic_deaths%"
- "&7К/Д: &e%statistic_player_kills_per_death%"
```
Установка: `/papi ecloud download Statistic && /papi reload`.
### Прогресс квестов и заданий
Если на сервере установлены BetonQuest или Quests, у них есть собственные PAPI-расширения. Пример для BetonQuest:
```yaml
- "&7Задание: &b%betonquest_objective_main_quest%"
```
Плейсхолдеры специфичны для каждого квест-плагина - смотри документацию конкретного расширения на wiki.placeholderapi.com.
## Анимация заголовка и строк
### Анимированный заголовок в TAB
В TAB анимация заголовка задаётся через список:
```yaml
scoreboards:
default:
title:
- "&c&lМой &4&lСервер"
- "&4&lМой &c&lСервер"
- "&6&lМой &e&lСервер"
- "&e&lМой &6&lСервер"
title-animation-interval: 200 # миллисекунды
```
Каждый кадр будет отображаться 200 мс - при четырёх кадрах полный цикл займёт 0.8 секунды.
### Градиент через MiniMessage (Paper 1.18+)
Если сервер работает на Paper 1.18+ с поддержкой MiniMessage:
```yaml
title: "Мой Сервер"
```
Или мигающий эффект:
```yaml
title:
- "- МОЙ СЕРВЕР -"
- "- МОЙ СЕРВЕР -"
- "- МОЙ СЕРВЕР -"
```
### Анимация строк
Строку тоже можно анимировать, используя тег `%animation:<имя>%` в TAB:
```yaml
animations:
pulse-online:
change-interval: 500
texts:
- "&eОнлайн: &a%online%"
- "&6Онлайн: &a%online%"
scoreboards:
default:
lines:
- "%animation:pulse-online%"
```
### Частота обновления данных
В TAB можно задать разную частоту обновления для тяжёлых плейсхолдеров:
```yaml
placeholders:
"%vault_eco_balance_formatted%":
update-interval: 1000 # обновлять раз в 1 секунду (а не каждый тик)
```
Это снижает нагрузку при большом онлайне.
## Разные борды по мирам
### Профили в TAB
Определи несколько профилей скорборда с условием по миру:
```yaml
scoreboards:
lobby:
display-condition: "%worldname% == lobby"
title: "&b&lЛобби"
lines:
- "&7Игроков онлайн: &e%online%"
- " "
- "&aВыбери режим игры"
- " "
- "&fwww.мойсервер.ru"
survival:
display-condition: "%worldname% == world"
title: "&2&lВыживание"
lines:
- "&7Игрок: &b%player%"
- "&7Баланс: &a%vault_eco_balance_formatted%"
- " "
- "&7X: &f%player_x%"
- "&7Y: &f%player_y%"
- "&7Z: &f%player_z%"
- " "
- "&7Время: &e%worldtime12%"
minigames:
display-condition: "%worldname% == minigame_arena"
title: "&c&lМини-игра"
lines:
- "&7Убийств: &c%statistic_player_kills%"
- "&7Смертей: &7%statistic_deaths%"
- " "
- "&7Счёт: &e%score%"
```
TAB применяет первый профиль, условие которого выполнено. Порядок имеет значение - ставь самые специфичные условия выше.
### Несколько миров с одинаковой бордой
Для групп миров используй оператор `contains`:
```yaml
survival-worlds:
display-condition: "%worldname% contains survival"
title: "&2&lВыживание"
```
Или через `||`:
```yaml
display-condition: "%worldname% == world || %worldname% == world_nether || %worldname% == world_the_end"
```
## Разные борды по группам игроков
### Борда для доноров
```yaml
donor-board:
display-condition: "%luckperms_has_permission_vip.scoreboard% == true"
title: "&6&l[VIP] Панель"
lines:
- "&7Ник: &6%player%"
- "&7Ранг: &6VIP"
- "&7Баланс: &e%vault_eco_balance_formatted%"
- " "
- "&7Ваш бонус: &a+20% к опыту"
- " "
- "&6Спасибо за поддержку!"
```
Игрок с правом `vip.scoreboard` получит эту борду вместо стандартной.
### Скрытие борды для группы
Некоторые группы (например, администраторы) предпочитают убирать борду:
```yaml
admin-noboard:
display-condition: "%luckperms_primary_group_name% == admin"
title: ""
lines: []
```
Или через команду: `/tab player <ник> scoreboard off`.
## Команды TAB для управления скорбордом
```bash
/tab reload # перезагрузить конфиг
/tab scoreboard toggle # включить/выключить для себя
/tab player <ник> scoreboard off # выключить борду конкретному игроку
/tab debug # отладочная информация
/papi parse <ник> %vault_eco_balance_formatted% # протестировать плейсхолдер
```
## Оптимизация скорборда
### Проблема мигания
Мигание (flicker) возникает, когда плагин удаляет и создаёт команду scoreboard заново. Решения:
1. **FastBoard** - архитектурно использует только пакеты обновления, мигания нет.
2. **TAB** - обновляет строки через `PacketEvents`, мигания нет при правильной версии.
3. Не использовать плагины, основанные на `ScoreboardManager` Bukkit напрямую.
### Частота обновлений
Не обновляй все строки каждый тик. Разумные интервалы:
| Тип данных | Рекомендуемый интервал |
|---|---|
| Координаты игрока | 500-1000 мс |
| Баланс | 2000-5000 мс |
| Онлайн сервера | 5000-10000 мс |
| TPS | 10000-30000 мс |
| Анимации заголовка | 200-500 мс |
В TAB глобальный интервал задаётся:
```yaml
placeholderapi:
default-refresh-interval: 500 # мс, для всех PAPI плейсхолдеров
```
### Нагрузка на сеть
Каждое обновление строки - это пакет клиенту. При 100 игроках и 10 строках с обновлением каждые 500 мс - это 2000 пакетов в секунду. Оптимизации:
- Используй `use-numbers: false` - убирает числовой столбец, уменьшает трафик.
- Кэшируй плейсхолдеры, которые меняются редко.
- Пустые строки-разделители не нужно обновлять - TAB умеет их кэшировать.
### Совместимость с другими плагинами
Если на сервере есть плагины, которые также управляют скорбордом (например, мини-игры), могут возникнуть конфликты. Решения:
- В TAB есть опция `disable-in-worlds` - отключить борду полностью в нужных мирах.
- Команда `/tab player <ник> scoreboard off` программно - вызывай из плагина мини-игр при старте.
- FastBoard предоставляет API для других плагинов - они могут временно перехватить борду.
## Пример полного конфига для survival-сервера
`plugins/TAB/scoreboards.yml`:
```yaml
scoreboards:
admin:
display-condition: "%luckperms_primary_group_name% == admin"
title: "&c&l[ADMIN]"
lines:
- "&7Ник: &c%player%"
- "&7TPS: &a%server_tps_1%"
- "&7Онлайн: &e%online%/%max_players%"
- " "
- "&7X: %player_x% Y: %player_y%"
vip:
display-condition: "%luckperms_has_permission_vip.scoreboard% == true"
title:
- "&6&l- VIP -"
- "&e&l- VIP -"
- "&6&l- VIP -"
title-animation-interval: 400
lines:
- "&7Привет, &6%player%!"
- "&7Ранг: &6VIP"
- " "
- "&7Баланс: &a%vault_eco_balance_formatted%"
- " "
- "&7Онлайн: &e%online%"
- " "
- "&7X: &f%player_x% Z: &f%player_z%"
- " "
- "&6мойсервер.ru"
default:
title:
- "&b&l~ МОЙ СЕРВЕР ~"
- "&3&l~ МОЙ СЕРВЕР ~"
title-animation-interval: 600
lines:
- "&7Привет, &b%player%!"
- " "
- "&7Ранг: &a%luckperms_prefix%"
- "&7Баланс: &2%vault_eco_balance_formatted%"
- " "
- "&7Онлайн: &e%online%&7/&e%max_players%"
- " "
- "&7X: &f%player_x%"
- "&7Y: &f%player_y% Z: &f%player_z%"
- " "
- "&fмойсервер.ru"
```
Профили обрабатываются сверху вниз - первый подходящий используется. Admin видит admin-борду, VIP видит vip-борду, остальные - default.
## Связанные материалы
Скорборд тесно связан с другими аспектами настройки сервера. Читай [оптимизацию сервера Minecraft](/ru/minecraft-server-optimization) - там разбирается нагрузка от плагинов и настройка Paper для уменьшения TPS-дропов. Если используешь Vault для вывода баланса в борде, смотри [настройку Vault и экономики](/ru/minecraft-vault-plugin). Также рекомендуем настроить [резервное копирование сервера](/ru/minecraft-server-backup) - конфиги TAB хранятся в `plugins/TAB/` и должны попадать в бэкап.
## Заключение
Скорборд - небольшой, но важный элемент атмосферы сервера. TAB в связке с PlaceholderAPI покрывает практически любые сценарии: онлайн и баланс в реальном времени, разные борды для VIP и обычных игроков, тематические панели по мирам. Главное - не перегружать панель: 8-10 строк с реально полезной информацией лучше, чем 15 строк с дублирующимися данными. Следи за интервалами обновления и проверяй нагрузку через `/tab debug` - правильно настроенный скорборд не влияет на TPS даже при 100+ игроках онлайн.
> **Pterohost** - хостинг Minecraft с NVMe-накопителями, защитой от DDoS-атак и круглосуточной поддержкой. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-server-scoreboard)
---
## Тонкая настройка paper-world-defaults.yml для производительности
URL: https://docs.pterohost.com/ru/minecraft-paper-config-tuning
Обновлено: 2026-06-05
Как настроить paper-world-defaults.yml и paper-global.yml для максимального TPS. Spawn, entity ranges, anti-xray, чанки - все параметры с безопасными значениями.
---
> **Кратко:** PaperMC идёт с консервативными дефолтами. Изменив 10-15 параметров в paper-world-defaults.yml и paper-global.yml, можно поднять стабильность TPS на 15-30% без плагинов и без потери ванильного геймплея.
# Тонкая настройка paper-world-defaults.yml для производительности
**PaperMC в 2026 году остаётся стандартом для большинства Minecraft-серверов.** Он быстрее Vanilla и CraftBukkit, поддерживает плагины Bukkit/Spigot и получает регулярные патчи производительности. Однако дефолтные значения конфигов Paper намеренно "безопасные" - они гарантируют совместимость с максимальным числом плагинов и сценариев, но не оптимальный TPS. Сервер на 40+ игроков с дефолтным конфигом неизбежно будет проседать до 16-17 TPS при нагрузке. Эта статья разбирает все ключевые параметры paper-world-defaults.yml и paper-global.yml с конкретными значениями, объяснением механики и предупреждениями о подводных камнях.
> **Pterohost** - игровой хостинг для Minecraft с NVMe-дисками, DDoS-защитой и поддержкой 24/7. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-paper-config-tuning)
## Где находятся конфиги Paper
После первого запуска PaperMC в корне сервера появляются:
- `config/paper-global.yml` - глобальные настройки, применяются ко всему серверу
- `config/paper-world-defaults.yml` - дефолтные настройки для всех миров
- `config/paper-world/world/paper-world.yml` - переопределения для конкретного мира (мир `world`)
- `config/paper-world/world_nether/paper-world.yml` - для незера
- `config/paper-world/world_the_end/paper-world.yml` - для края
Структура изменилась в Paper 1.19+. В старых версиях (1.18 и ниже) использовался единый `paper.yml`. Эта статья актуальна для Paper 1.20-1.21+.
**Важно:** после изменения конфигов перезагружай сервер командой `/stop` + старт, а не `/reload`. Paper не поддерживает полноценный hot-reload конфигов без побочных эффектов.
## Параметры спавна мобов
### mob-spawn-range
```yaml
# paper-world-defaults.yml
entities:
spawning:
mob-spawn-range: 6
```
Определяет радиус (в чанках) от игрока, в котором разрешён спавн мобов. Дефолт - 8. Снижение до 6 уменьшает площадь спавна примерно в 1.7 раза при незначительном влиянии на ощущение мира.
| Значение | Площадь спавна | Нагрузка (относительно) |
|----------|---------------|------------------------|
| 8 (дефолт) | ~2025 чанков | 100% |
| 6 | ~1225 чанков | ~60% |
| 4 | ~625 чанков | ~31% |
Значение ниже 4 не рекомендуется: игроки начнут замечать, что мобы "выпрыгивают из воздуха" вблизи.
### despawn-ranges
```yaml
entities:
spawning:
despawn-ranges:
ambient:
hard: 72
soft: 32
axolotls:
hard: 72
soft: 32
creature:
hard: 96
soft: 32
misc:
hard: 96
soft: 32
monster:
hard: 96
soft: 32
underground_water_creature:
hard: 72
soft: 32
water_ambient:
hard: 64
soft: 32
water_creature:
hard: 96
soft: 32
```
`soft` - дистанция, после которой моб может деспавниться случайно. `hard` - дистанция принудительного деспавна.
Дефолтные hard-значения: 128 блоков для монстров. Снижение до 96 не влияет на геймплей в 99% случаев - игрок физически не может взаимодействовать с мобом на 128 блоках. Для фермерских серверов с AFK-фермами оставляй дефолт или даже увеличивай soft-порог.
## Entity Activation Range - самый важный параметр
```yaml
entities:
mob-effects:
# ...
tick-rates:
# ...
activation-range:
animals: 32
monsters: 32
raiders: 48
misc: 16
water: 16
villagers: 32
flying-monsters: 48
wake-up-inactive:
animals-every: 120
animals-for: 1
monsters-every: 20
monsters-for: 1
villagers-every: 20
villagers-for: 1
flying-monsters-every: 10
flying-monsters-for: 1
ignore-spectators: false
```
EAR (Entity Activation Range) - механизм, который переводит мобов вне зоны активации в "спящий" режим: их AI обрабатывается редко, они не ищут цели, не двигаются активно. Это экономит до 40% серверного CPU на серверах с большим числом мобов.
**Рекомендуемые значения:**
| Тип | Дефолт | Рекомендация | Комментарий |
|-----|--------|--------------|-------------|
| animals | 32 | 16-24 | Фермы работают вне EAR автоматически |
| monsters | 32 | 24 | Боёвка не страдает |
| raiders | 48 | 48 | Не трогать - важны для ивентов |
| villagers | 32 | 16-24 | Деревни за пределами активности тихие |
| flying-monsters | 48 | 48 | Фантомы нужны активными для геймплея |
Параметр `wake-up-inactive` определяет, как часто "спящие" мобы получают один тик для обновления (чтобы не застревать). Дефолты нормальные, не трогай без причины.
## Merge Radius - объединение предметов и опыта
```yaml
entities:
spawning:
# ...
misc:
# В paper-world-defaults.yml секция misc:
merge-radius:
item: 3.5
exp: 6.0
```
При спавне множества предметов (взрыв, убийство толпы мобов) объединение снижает число entity и нагрузку. Значения в блоках.
**Безопасный диапазон:**
- `item`: 2.5 - 4.0 (дефолт 2.5, можно поднять до 4.0)
- `exp`: 4.0 - 8.0 (дефолт 3.0, оптимально 6.0)
При `item` > 5.0 возможны жалобы игроков на то, что предметы "прыгают" в сторону при дропе. При `exp` > 10.0 шарики опыта иногда "пропадают" визуально на секунду.
## Автосохранение без просадок TPS
```yaml
chunks:
auto-save-interval: 6000 # в тиках, 6000 = 5 минут
max-auto-save-chunks-per-tick: 8
```
Дефолт `max-auto-save-chunks-per-tick: 24` означает, что сервер пытается сохранить 24 чанка за один тик каждые 5 минут. На HDD это вызывает характерные "лаги автосохранения" - TPS падает с 20 до 14-16 на несколько секунд.
**Рекомендации:**
| Тип хранилища | max-auto-save-chunks-per-tick |
|--------------|-------------------------------|
| NVMe SSD | 12-16 |
| SATA SSD | 8-12 |
| HDD | 4-6 |
Уменьшение этого параметра распределяет нагрузку записи - каждый тик сохраняется меньше чанков, но сохранение одного "цикла" занимает больше тиков. При внезапном крэше теряется чуть больше данных, но это приемлемо при авто-бэкапах.
Также имеет смысл настроить:
```yaml
chunks:
delay-chunk-unloads-by: 10s # держать чанки в памяти 10 сек после выгрузки
entity-per-chunk-save-limit:
arrow: 16
ender_pearl: 8
experience_orb: 32
fireball: 8
small_fireball: 8
snowball: 8
```
`entity-per-chunk-save-limit` защищает от "item dupe" и предотвращает сохранение аномального числа стрел или шаров в одном чанке.
## Anti-Xray - защита от читеров без потери TPS
```yaml
anticheat:
anti-xray:
enabled: true
engine-mode: 1
max-block-height: 64
update-radius: 2
lava-obscures: false
use-permission: false
hidden-blocks:
- copper_ore
- deepslate_copper_ore
- gold_ore
- deepslate_gold_ore
- iron_ore
- deepslate_iron_ore
- coal_ore
- deepslate_coal_ore
- lapis_ore
- deepslate_lapis_ore
- mossy_cobblestone
- obsidian
- chest
- diamond_ore
- deepslate_diamond_ore
- redstone_ore
- deepslate_redstone_ore
- clay
- emerald_ore
- deepslate_emerald_ore
- ender_chest
replacement-blocks:
- stone
- oak_planks
- deepslate
```
**Режимы:**
- `engine-mode: 1` - скрывает руды, которые не граничат с воздухом/жидкостью. Почти нулевая нагрузка. Обходится продвинутыми X-ray клиентами.
- `engine-mode: 2` - заменяет все руды рандомными блоками, раскрывает настоящие только при приближении. Нагрузка на CPU ~3-8% выше, но надёжная защита.
- `engine-mode: 3` - добавляет фейковые руды поверх режима 2. Самый тяжёлый и эффективный.
Для survival с экономикой: `engine-mode: 2`, `max-block-height: 64` (алмазы в основном ниже 16, но для надёжности берём 64).
Параметр `use-permission: false` означает, что даже операторы видят обфускацию. Если нужно дать ОПам видеть руды, добавь им пермишн `paper.antixray.bypass`.
## Настройки чанков и View Distance
```yaml
chunks:
prevent-moving-into-unloaded-chunks: true
send-full-chunks-for-critical-move-packets: false
# В paper-global.yml:
chunk-loading-basic:
player-max-chunk-generate-rate: 8.0
player-max-chunk-load-rate: 100.0
player-max-chunk-send-rate: 75.0
```
`prevent-moving-into-unloaded-chunks: true` - критически важно для предотвращения дюпов и крэшей при быстром движении игроков (элитры, лошади).
`player-max-chunk-generate-rate: 8.0` - ограничивает генерацию новых чанков до 8 в секунду на игрока. При исследовании нового биома без этого лимита один игрок может загрузить сервер генерацией на несколько секунд.
**Совет по server.properties:**
```properties
view-distance=6
simulation-distance=4
```
`simulation-distance` - важнее для TPS, чем `view-distance`. Именно в зоне simulation-distance работают редстоун, AI мобов, рост растений. Можно иметь `view-distance=10` (красиво) и `simulation-distance=4` (быстро).
## Дополнительные параметры производительности
### Tick-rates для растений и жидкостей
```yaml
tick-rates:
grass-spread: 4
mob-spawner: 2
container-update: 1
behavior:
villager:
validatenearbypoi: -1
acquirepoi: 120
```
`grass-spread: 4` - трава распространяется раз в 4 тика вместо каждого. На серверах с большими лугами это заметно снижает нагрузку. Игроки не замечают разницы.
`mob-spawner: 2` - спавнеры тикают раз в 2 тика. Немного снижает производительность фарм-ферм, но сокращает нагрузку.
`villager.acquirepoi: 120` - жители ищут рабочее место раз в 120 тиков (6 секунд) вместо каждого тика. Жители - исторически один из главных пожирателей TPS в Minecraft.
### Hopper оптимизация
```yaml
hopper:
cooldown-when-full: true
disable-move-event: false
ignore-occluding-blocks: true
```
`cooldown-when-full: true` - воронки, которые заполнены и не могут передать предметы, получают задержку перед следующей попыткой. Снижает нагрузку от больших сортировщиков в 2-4 раза.
`ignore-occluding-blocks: true` - воронки не проверяют блоки-преграды при поиске инвентаря сверху. Небольшой прирост скорости.
### Pathfinding и AI
```yaml
entities:
mob-effects:
undead-immune-to-slowness: false
tracking-range-y: 64
# Важный параметр для Folia/Paper:
async-chunks:
enabled: true
threads: -1 # -1 = автоматически (обычно cpu_cores / 2)
```
`async-chunks` - загрузка и генерация чанков в отдельных потоках. В современном Paper включено по умолчанию, убедись что не выключено.
## Профилирование после изменений
После настройки конфига нужно убедиться, что TPS действительно вырос. Установи плагин [Spark](https://spark.lucko.me/) - он бесплатный, лёгкий и даёт детальный отчёт.
```bash
# В консоли сервера:
/spark tps # текущий TPS
/spark profiler --timeout 60 # профиль за 60 секунд
/spark healthreport # общая сводка
```
После команды `profiler` Spark выдаёт ссылку на spark.lucko.me с графиком нагрузки по потокам и методам. Ищи "minecraft:tickentities", "minecraft:runactivechunks" - это основные кандидаты на оптимизацию.
**Базовые цели по TPS:**
| Онлайн | Целевой TPS | Плохо |
|--------|-------------|-------|
| 1-20 игроков | 19.5-20 | < 18 |
| 20-50 игроков | 18-20 | < 16 |
| 50-100 игроков | 17-20 | < 15 |
| 100+ игроков | 15-18 | < 13 |
## Итоговый пример paper-world-defaults.yml
Минимальный набор изменений, который даёт ощутимый результат на большинстве серверов:
```yaml
# paper-world-defaults.yml
# Paper 1.21+, обновлено 2026
_version: 29
entities:
spawning:
mob-spawn-range: 6
despawn-ranges:
monster:
hard: 96
soft: 32
creature:
hard: 96
soft: 32
ambient:
hard: 64
soft: 32
water_creature:
hard: 96
soft: 32
water_ambient:
hard: 64
soft: 32
activation-range:
animals: 20
monsters: 24
villagers: 20
flying-monsters: 48
wake-up-inactive:
animals-every: 120
animals-for: 1
monsters-every: 20
monsters-for: 1
villagers-every: 20
villagers-for: 1
misc:
merge-radius:
item: 3.5
exp: 6.0
chunks:
auto-save-interval: 6000
max-auto-save-chunks-per-tick: 8
prevent-moving-into-unloaded-chunks: true
entity-per-chunk-save-limit:
arrow: 16
experience_orb: 32
snowball: 8
anticheat:
anti-xray:
enabled: true
engine-mode: 2
max-block-height: 64
lava-obscures: false
tick-rates:
grass-spread: 4
mob-spawner: 2
behavior:
villager:
acquirepoi: 120
hopper:
cooldown-when-full: true
ignore-occluding-blocks: true
```
## Связанные материалы
Настройка Paper - часть комплексной оптимизации сервера. Прочитай также [оптимизацию Minecraft-сервера](/ru/minecraft-server-optimization), где разобраны выбор ядра, JVM-флаги и управление плагинами. Если сервер уже лагает и нужно быстро найти причину - читай [как исправить лаги на сервере Minecraft](/ru/minecraft-server-lags-fix). Параметры в `server.properties` тоже влияют на производительность - разбор view-distance, simulation-distance и других ключевых настроек смотри в [полном гиде по server.properties](/ru/minecraft-server-properties-guide).
## Заключение
Настройка paper-world-defaults.yml - это не разовое действие, а часть регулярного обслуживания сервера. Начни с параметров автосохранения и Entity Activation Range - они дают наибольший эффект при минимальном риске сломать геймплей. Добавь Anti-Xray в режиме 2, если на сервере есть экономика, и настрой merge-radius для снижения нагрузки от дропа. Обязательно используй Spark для измерения TPS до и после изменений - без метрик сложно понять, что именно помогло. При росте онлайна возвращайся к этим настройкам: то, что работало при 20 игроках, может требовать коррекции при 60.
> **Pterohost** - Minecraft-хостинг на NVMe с автоматическим бэкапом, DDoS-защитой и поддержкой Paper/Purpur из коробки. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-paper-config-tuning)
---
## Установка ресурспака на сервер Minecraft
URL: https://docs.pterohost.com/ru/minecraft-resource-pack-server
Обновлено: 2026-06-09
Как установить ресурспак на сервер Minecraft: настройка server.properties, хостинг zip-файла, плагины и кастомные модели предметов.
---
> **Кратко:** Ресурспак на сервере Minecraft настраивается через три параметра в server.properties - resource-pack (URL), resource-pack-sha1 (хеш) и require-resource-pack (обязательность). Zip-файл нужно разместить на хостинге с прямой ссылкой - подходят Dropbox, GitHub Releases или собственный веб-сервер.
# Установка ресурспака на сервер Minecraft
**Серверный ресурспак позволяет задать единый визуальный стиль для всех игроков без необходимости вручную устанавливать текстуры на каждый клиент. При подключении к серверу Minecraft автоматически предлагает скачать и применить пак - достаточно настроить три строки в server.properties и разместить zip-файл по прямой ссылке. В 2026 году этот механизм работает начиная с Minecraft 1.7.2 и поддерживается на всех современных ядрах: Vanilla, Paper, Purpur, Spigot. Для более гибкого управления - разные паки для разных регионов или игроков - существуют специализированные плагины.**
> **Pterohost** - Minecraft хостинг с NVMe-дисками, защитой от DDoS и поддержкой 24/7. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-resource-pack-server)
## Как работает серверный ресурспак
Когда игрок подключается к серверу, сервер отправляет клиенту пакет `Resource Pack Send` с URL и хешем файла. Клиент скачивает zip, проверяет SHA-1, распаковывает и применяет пак поверх стандартных текстур. Если игрок уже скачивал этот пак (хеш совпадает), повторной загрузки нет - используется кеш.
Схема работы:
1. Игрок подключается к серверу.
2. Сервер отправляет URL и SHA-1 хеш.
3. Клиент проверяет кеш (`~/.minecraft/server-resource-packs/`).
4. Если хеш не совпадает - скачивает zip по URL.
5. Применяет пак и отображает игру с новыми текстурами.
Параметр `require-resource-pack=true` добавляет принудительность: игрок, нажавший "Отказаться", получает кик с сообщением. По умолчанию (`false`) - загрузка добровольная.
## Подготовка zip-файла ресурспака
Ресурспак должен быть запакован в zip-архив с правильной структурой папок. Корень архива содержит файл `pack.mcmeta` и папку `assets`.
Минимальная структура:
```
resourcepack.zip
├── pack.mcmeta
└── assets/
└── minecraft/
├── textures/
├── sounds/
└── models/
```
Содержимое `pack.mcmeta` (пример для Minecraft 1.21+):
```json
{
"pack": {
"pack_format": 34,
"description": "Мой серверный ресурспак"
}
}
```
Актуальные значения `pack_format` по версиям Minecraft:
| Версия Minecraft | pack_format |
|------------------|-------------|
| 1.20.4 | 22 |
| 1.20.6 | 32 |
| 1.21 | 34 |
| 1.21.1 | 34 |
| 1.21.4 | 46 |
Если сервер поддерживает несколько версий (например, через ViaVersion), указывай `pack_format` для актуальной версии сервера. Старые клиенты покажут предупреждение, но пак загрузят.
Создание zip из командной строки Linux:
```bash
cd resourcepack_folder
zip -r ../resourcepack.zip .
```
Важно: архивировать нужно содержимое папки, а не саму папку. Иначе Minecraft не найдет `pack.mcmeta` в корне архива.
## Хостинг zip-файла
Minecraft требует прямой HTTP/HTTPS-ссылки на zip-файл - сервер обращается к URL и получает бинарные данные файла без редиректов и HTML-страниц.
### Dropbox
1. Загрузи zip-файл в Dropbox.
2. Нажми "Поделиться" -> "Скопировать ссылку".
3. В полученной ссылке замени `?dl=0` на `?dl=1`:
- Было: `https://www.dropbox.com/s/abc123/resourcepack.zip?dl=0`
- Стало: `https://www.dropbox.com/s/abc123/resourcepack.zip?dl=1`
Параметр `dl=1` заставляет Dropbox отдавать файл напрямую, а не открывать страницу просмотра.
### GitHub Releases
Оптимальный вариант для больших паков - без ограничений на скачивание и с высокой скоростью CDN.
1. Создай репозиторий (можно приватный, но тогда прямые ссылки не работают - нужен публичный).
2. Перейди в Releases -> "Create a new release".
3. Прикрепи zip-файл как asset.
4. Ссылка на файл вида: `https://github.com/username/repo/releases/download/v1.0/resourcepack.zip`
### Собственный веб-сервер
Если у тебя есть VPS или выделенный сервер, размести файл в публичной папке nginx/apache:
```bash
# Скопируй файл в папку nginx
cp resourcepack.zip /var/www/html/packs/
# Ссылка будет вида:
# https://yourserver.com/packs/resourcepack.zip
```
Nginx-конфиг для корректных заголовков:
```nginx
location /packs/ {
add_header Content-Type application/zip;
add_header Access-Control-Allow-Origin *;
}
```
### Что НЕ работает
- Google Drive - отдаёт страницу подтверждения загрузки, а не файл.
- OneDrive с обычными ссылками - аналогичная проблема.
- Ссылки с капчей или авторизацией.
- HTTP без HTTPS на серверах 1.20+ (требуется HTTPS).
## Настройка server.properties
После размещения файла открой `server.properties` в корне сервера и добавь или измени три параметра:
```properties
# URL к zip-файлу ресурспака (обязателен HTTPS с Minecraft 1.20+)
resource-pack=https://www.dropbox.com/s/abc123/resourcepack.zip?dl=1
# SHA-1 хеш файла (рекомендуется, но не обязателен)
resource-pack-sha1=7a5b2c1d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b
# Обязать игроков принять ресурспак
require-resource-pack=false
# Сообщение при отказе (только при require-resource-pack=true)
resource-pack-prompt={"text":"Для игры необходим ресурспак сервера","color":"red"}
```
### Получение SHA-1 хеша
Linux/macOS:
```bash
sha1sum resourcepack.zip
# Вывод: 7a5b2c1d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b resourcepack.zip
```
Windows PowerShell:
```powershell
Get-FileHash resourcepack.zip -Algorithm SHA1
# Вывод: Algorithm Hash Path
# SHA1 7A5B2C1D3E4F5A6B7C8D9E0F1A2B3C4D5E6F7A8B resourcepack.zip
```
Хеш в server.properties нужно указывать строчными буквами. SHA-1 используется для кеширования на стороне клиента: если хеш не изменился, клиент не будет перекачивать пак.
После изменения server.properties перезагрузи сервер - параметры resource-pack не применяются через `/reload`.
## Плагины для управления ресурспаками
Стандартного механизма server.properties хватает для большинства серверов, но плагины дают больше возможностей: разные паки для разных миров, динамическое переключение, загрузка дополнительных паков поверх основного.
### ResourcePackManager (Paper/Spigot)
Плагин позволяет назначать разные ресурспаки для разных миров и игроков. Конфиг `/plugins/ResourcePackManager/config.yml`:
```yaml
default:
url: "https://example.com/packs/default.zip"
sha1: "aabbccdd..."
required: false
worlds:
nether:
url: "https://example.com/packs/nether.zip"
sha1: "11223344..."
required: true
```
### MultiResourcePack / PacketEventsAPI
Для серверов 1.20.3+ появилась возможность отправлять несколько ресурспаков одновременно (через новый пакет `Resource Pack Push`). Плагины на базе PacketEvents используют эту функцию для стекинга паков.
### CustomModelData и Item Model Override
Начиная с Minecraft 1.14, в ресурспаке можно переопределять модели предметов через `CustomModelData`. Это позволяет создавать сотни кастомных предметов без модов, используя стандартные ID предметов как "держатели".
Пример файла модели `assets/minecraft/models/item/diamond.json`:
```json
{
"parent": "item/handheld",
"textures": {
"layer0": "item/diamond"
},
"overrides": [
{"predicate": {"custom_model_data": 1001}, "model": "custom/sword_fire"},
{"predicate": {"custom_model_data": 1002}, "model": "custom/sword_ice"},
{"predicate": {"custom_model_data": 1003}, "model": "custom/wand_magic"}
]
}
```
Соответствующие модели кладутся в `assets/minecraft/models/custom/`. Игроку выдаётся алмаз с NBT-тегом `{CustomModelData:1001}` - и он видит огненный меч.
Начиная с Minecraft 1.21.4 появился новый компонент `minecraft:item_model`, который заменяет систему `CustomModelData` и позволяет назначать произвольные модели напрямую. Старый механизм через overrides продолжает работать для обратной совместимости.
## Отладка и типичные ошибки
### Ресурспак не загружается
Проверь по порядку:
1. URL доступен по HTTPS (в 2024-2026 HTTP заблокирован на новых клиентах).
2. Открой URL в браузере - он должен начать скачивание, а не открывать страницу.
3. SHA-1 хеш правильный (регистр не важен, но длина должна быть 40 символов).
4. Размер файла не превышает допустимый лимит хостинга.
Лог сервера при успешной отправке:
```
[INFO]: Sending resource pack to player PlayerName
```
### Сервер логирует ошибку "Invalid SHA1"
Значит хеш в server.properties не совпадает с реальным хешем файла. Пересчитай и обнови. Частая причина - пересохранил zip-файл, но забыл обновить хеш.
### Клиент говорит "Failed to download"
Проблема на стороне клиента или хостинга:
- Проверь, что URL не требует авторизации.
- Проверь ограничения по скорости на хостинге файла.
- Некоторые CDN блокируют User-Agent Minecraft - нужно настроить разрешение.
### Текстуры применяются, но не все
Скорее всего несоответствие `pack_format` версии клиента. Клиент покажет предупреждение, но попробует применить пак - некоторые форматы текстур/моделей из новых версий не поддерживаются старыми клиентами.
## Ресурспак с кастомными звуками
Помимо текстур, серверный ресурспак может включать кастомные звуки. Файлы размещаются в `assets/minecraft/sounds/` в формате OGG Vorbis.
Регистрация звука в `assets/minecraft/sounds.json`:
```json
{
"custom.ambient.forest": {
"sounds": [
{
"name": "custom/forest_ambient",
"volume": 0.8,
"pitch": 1.0,
"stream": true
}
]
}
}
```
Плагин на сервере вызывает звук командой:
```
/playsound minecraft:custom.ambient.forest ambient @a ~ ~ ~ 1 1
```
Или через Paper API:
```java
player.playSound(player.getLocation(), "custom.ambient.forest", SoundCategory.AMBIENT, 1.0f, 1.0f);
```
## Оптимизация размера ресурспака
Большой ресурспак = долгая загрузка для игроков. Несколько советов по уменьшению размера:
**Текстуры:**
- Используй PNG с оптимизацией (optipng, pngquant).
- Не увеличивай разрешение выше 64x64 для стандартных блоков без необходимости - 256x256 в 16 раз тяжелее.
- Убирай EXIF-данные из изображений.
**Звуки:**
- OGG с битрейтом 96-128 kbps достаточно для большинства игровых звуков.
- Стриминг (`"stream": true`) для длинных треков (фоновая музыка).
**Инструменты:**
```bash
# Оптимизация PNG
pngquant --quality=80-95 assets/minecraft/textures/block/*.png
# Конвертация wav в ogg
ffmpeg -i sound.wav -codec:a libvorbis -qscale:a 4 sound.ogg
```
Целевой размер для комфортной загрузки:
| Размер пака | Время загрузки (50 Mbit/s) | Рекомендация |
|-------------|---------------------------|--------------|
| до 10 МБ | ~2 секунды | Отлично |
| 10-50 МБ | 2-8 секунд | Приемлемо |
| 50-150 МБ | 8-25 секунд | С предупреждением |
| более 150 МБ | более 25 секунд | Нежелательно |
## Связанные материалы
Настройка ресурспака - часть общей конфигурации сервера. Подробнее о защите территорий и управлении регионами читай в статье [WorldGuard: регионы и защита](/ru/minecraft-worldguard-regiony). О выборе ядра сервера для оптимальной производительности - в [Ядра Minecraft серверов](/ru/minecraft-cores). Если сервер тормозит при загрузке паков или большом числе игроков - [Оптимизация Minecraft сервера](/ru/minecraft-server-optimization) покрывает настройки aikar-flags, chunk-loading и view-distance.
## Заключение
Установка ресурспака на сервер Minecraft сводится к четырём шагам: подготовь корректный zip с файлом `pack.mcmeta`, разместив его по прямой HTTPS-ссылке (Dropbox, GitHub Releases или собственный сервер), вычисли SHA-1 хеш и пропиши параметры в server.properties. Для продвинутых сценариев - кастомные модели через CustomModelData, кастомные звуки, разные паки для разных миров - используй плагины и пакет Assets Override. Ключевые моменты: прямая ссылка без редиректов, корректный SHA-1, HTTPS обязателен с Minecraft 1.20+, и `pack_format` должен соответствовать версии сервера.
> **Pterohost** - надёжный хостинг для Minecraft с поддержкой 24/7, NVMe и DDoS-защитой - идеально для серверов с кастомными ресурспаками и большим числом игроков. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-resource-pack-server)
---
## Флаги Aikar и тюнинг JVM/G1GC для сервера Minecraft
URL: https://docs.pterohost.com/ru/minecraft-aikar-flags-jvm
Обновлено: 2026-06-05
Полный разбор флагов Aikar для Minecraft-сервера: G1GC, -Xms/-Xmx, Java 17/21, ZGC и замер пауз GC. Готовая строка запуска.
---
> **Кратко:** Флаги Aikar - это набор JVM-параметров для сборщика мусора G1GC, которые снижают паузы и TPS-просадки на Minecraft-сервере. Достаточно скопировать готовую строку из статьи, подставить нужный объём RAM и перезапустить сервер.
# Флаги Aikar и тюнинг JVM/G1GC для сервера Minecraft
**Minecraft-сервер работает на Java, а значит его производительность напрямую зависит от того, как настроена виртуальная машина.** По умолчанию JVM использует консервативные параметры, рассчитанные на широкий спектр приложений, но не на игровой сервер с тысячами объектов в памяти и жёсткими требованиями к задержкам. Результат - периодические "заморозки" на 500 мс и более, когда сборщик мусора решает прибраться. Aikar (один из ключевых разработчиков Paper) опубликовал набор флагов, которые решают эту проблему. В 2026 году эти флаги стали индустриальным стандартом и применяются на большинстве публичных серверов.
> **Pterohost** - игровой хостинг для Minecraft с NVMe-дисками, защитой от DDoS и поддержкой 24/7. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-aikar-flags-jvm)
## Что такое G1GC и почему стандартные настройки не подходят
Java использует автоматическое управление памятью через сборщик мусора (Garbage Collector, GC). Когда объекты в куче (Heap) больше не нужны, GC освобождает память. Проблема в том, что некоторые фазы GC требуют полной остановки всех потоков приложения - это называется Stop-The-World (STW) пауза. Для Minecraft это критично: STW на 300-500 мс означает видимый фриз для всех игроков.
**G1GC (Garbage-First Garbage Collector)** - сборщик мусора, доступный в Java 9+ и ставший стандартным с Java 9. Он делит кучу на регионы и собирает их по приоритету, что позволяет ограничить максимальное время паузы. Но без дополнительной настройки G1GC всё равно работает не оптимально для Minecraft - слишком большие регионы, неправильные пороги срабатывания.
Флаги Aikar точно настраивают G1GC под паттерн использования памяти в Minecraft:
- Много короткоживущих объектов (позиции, пакеты, задачи тиков)
- Периодические всплески выделения памяти (загрузка чанков)
- Постоянное давление на старое поколение (кешированные чанки, плагины)
## Готовая строка запуска с флагами Aikar
Ниже - актуальная строка для Java 17/21 с 8 ГБ RAM. Замените `8G` на нужный объём:
```bash
java -Xms8G -Xmx8G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:+AlwaysPreTouch \
-XX:G1NewSizePercent=30 \
-XX:G1MaxNewSizePercent=40 \
-XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 \
-XX:G1HeapWastePercent=5 \
-XX:G1MixedGCCountTarget=4 \
-XX:InitiatingHeapOccupancyPercent=15 \
-XX:G1MixedGCLiveThresholdPercent=90 \
-XX:G1RSetUpdatingPauseTimePercent=5 \
-XX:SurvivorRatio=32 \
-XX:+PerfDisableSharedMem \
-XX:MaxTenuringThreshold=1 \
-Dusing.aikars.flags=https://mcflags.emc.gs \
-Daikars.new.flags=true \
-jar server.jar nogui
```
Для удобного использования в скрипте запуска - однострочный вариант:
```bash
java -Xms8G -Xmx8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar nogui
```
Если у вас больше 12 ГБ RAM, используйте расширенную версию с увеличенными размерами регионов:
```bash
# Для кучи 12 ГБ и выше - увеличить G1HeapRegionSize до 16M
-XX:G1HeapRegionSize=16M
```
## Разбор каждого флага
### Основные параметры памяти
**`-Xms8G -Xmx8G`** - начальный и максимальный размер кучи. Они ДОЛЖНЫ быть равны. Если `-Xms` меньше `-Xmx`, JVM начинает с малого значения и расширяет кучу по мере необходимости. Каждое расширение - дополнительный GC-цикл и потеря времени. Фиксируя оба значения одинаковыми, мы заставляем JVM выделить всю память сразу при старте (`-XX:+AlwaysPreTouch` закрепляет страницы в физической памяти, исключая page fault во время игры).
**`-XX:+UseG1GC`** - явно включает G1GC. В Java 9+ он включён по умолчанию, но явное указание исключает случайные переключения при изменении настроек JVM.
### Параметры пауз и регионов G1GC
**`-XX:MaxGCPauseMillis=200`** - целевое максимальное время паузы в миллисекундах. G1GC постарается не превышать этот порог. Значение 200 мс - компромисс между частотой и длительностью пауз. Можно попробовать 100 мс, но это увеличит накладные расходы на GC.
**`-XX:G1NewSizePercent=30`** и **`-XX:G1MaxNewSizePercent=40`** - минимальный и максимальный процент кучи, отводимый под молодое поколение. По умолчанию JVM выделяет слишком мало под молодое поколение, что вызывает частые Minor GC. Для Minecraft, который генерирует огромное количество короткоживущих объектов, 30-40% - оптимальный диапазон.
**`-XX:G1HeapRegionSize=8M`** - размер одного региона G1GC. По умолчанию JVM вычисляет его автоматически (обычно 1-4 МБ для кучи 4-8 ГБ), что слишком мало для Minecraft. Регион 8 МБ снижает количество регионов и накладные расходы на управление ими. При куче от 12 ГБ используйте 16 МБ.
**`-XX:InitiatingHeapOccupancyPercent=15`** - порог заполнения старого поколения, при котором запускается concurrent marking (15% вместо стандартных 45%). Это даёт GC больше времени для подготовки и снижает вероятность Full GC.
### Флаги оптимизации процесса сборки
**`-XX:G1MixedGCCountTarget=4`** - количество смешанных GC-циклов для очистки старого поколения. Меньшее значение означает более агрессивную очистку за меньшее количество пауз.
**`-XX:G1MixedGCLiveThresholdPercent=90`** - регион старого поколения будет включён в смешанный GC только если живых объектов в нём меньше 90%. Это позволяет пропускать сильно заполненные регионы, которые дорого собирать.
**`-XX:G1HeapWastePercent=5`** - допустимый процент "мусора" в куче до того, как G1GC начнёт смешанный цикл.
**`-XX:G1ReservePercent=20`** - резервирует 20% кучи как буфер для продвижения объектов. Снижает вероятность провала продвижения и связанных Full GC.
**`-XX:G1RSetUpdatingPauseTimePercent=5`** - ограничивает долю паузы на обновление remembered sets до 5%.
**`-XX:SurvivorRatio=32`** - соотношение Eden к Survivor в молодом поколении. Большое значение означает меньшие Survivor-пространства, что соответствует паттерну Minecraft с быстро умирающими объектами.
**`-XX:MaxTenuringThreshold=1`** - объекты переводятся в старое поколение уже после 1 выживания Minor GC (вместо 15 по умолчанию). Для Minecraft это лучше: выжившие объекты обычно долгоживущие.
### Прочие флаги производительности
**`-XX:+ParallelRefProcEnabled`** - параллельная обработка ссылок (soft/weak/phantom references) во время GC. Minecraft активно использует слабые ссылки в кешах.
**`-XX:+DisableExplicitGC`** - запрещает вызов `System.gc()` из кода плагинов. Некоторые плагины вызывают его в неподходящий момент, что провоцирует Full GC.
**`-XX:+AlwaysPreTouch`** - при старте JVM сразу записывает нули во все выделенные страницы памяти. Устраняет page fault во время игры ценой немного более долгого старта.
**`-XX:+UnlockExperimentalVMOptions`** - разрешает использование экспериментальных флагов JVM. Нужен для некоторых параметров G1GC.
**`-XX:+PerfDisableSharedMem`** - отключает запись данных производительности в файл в `/tmp/hsperfdata_*`. Снижает нагрузку на диск, убирает риски I/O-задержек из-за этих файлов.
## Сколько RAM выделять серверу
Самая частая ошибка - выдавать серверу всю доступную память. Это контрпродуктивно.
| RAM сервера (VPS/dedi) | Рекомендуемый -Xmx | Остаток для ОС и JVM |
|---|---|---|
| 4 ГБ | 2-2.5 ГБ | 1.5-2 ГБ |
| 8 ГБ | 6 ГБ | 2 ГБ |
| 16 ГБ | 12-13 ГБ | 3-4 ГБ |
| 32 ГБ | 26-28 ГБ | 4-6 ГБ |
**Почему нельзя отдавать всё:**
- Сам JVM-процесс использует память вне кучи: Metaspace (метаданные классов), стеки потоков (~1 МБ на поток, у Minecraft 50-100+ потоков), буферы JIT-компилятора
- ОС нужен кеш файловой системы - без него чтение/запись чанков замедляется
- При нехватке памяти ОС начинает свапировать, что в тысячи раз хуже любого GC
**Метаspace:** Если сервер использует много модов/плагинов, добавьте `-XX:MaxMetaspaceSize=512m` (или 256m для чистых серверов). По умолчанию Metaspace неограничен и может незаметно поглощать память.
## Выбор версии Java в 2026 году
| Версия Minecraft | Минимальная Java | Рекомендуемая Java |
|---|---|---|
| 1.8 - 1.16 | Java 8 | Java 11 (осторожно с модами) |
| 1.17 - 1.20.4 | Java 17 | Java 17 LTS |
| 1.20.5+ / 1.21+ | Java 21 | Java 21 LTS |
**Java 21 LTS** - текущий рекомендованный выбор для новых серверов. Она принесла виртуальные потоки (Project Loom), улучшенный G1GC и ZGC. Дистрибутив: Eclipse Temurin 21 (бесплатный, от Adoptium) или GraalVM 21 Community Edition (даёт дополнительный прирост через JIT-компилятор).
Установка Temurin 21 на Debian/Ubuntu:
```bash
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor -o /etc/apt/trusted.gpg.d/adoptium.gpg
echo "deb https://packages.adoptium.net/artifactory/deb $(lsb_release -cs) main" > /etc/apt/sources.list.d/adoptium.list
apt update && apt install temurin-21-jdk
java -version
```
## ZGC как альтернатива G1GC
**Z Garbage Collector (ZGC)** - конкурентный сборщик с паузами менее 1 мс, доступен в Java 15+ (production-ready с Java 17). В Java 21 ZGC значительно улучшен (Generational ZGC).
Когда стоит рассматривать ZGC:
- Куча от 8-12 ГБ и выше
- Java 21
- Регулярные STW-паузы более 200 мс при G1GC
- Достаточно CPU-ядер (ZGC активнее использует CPU)
Строка запуска с Generational ZGC (Java 21):
```bash
java -Xms12G -Xmx12G \
-XX:+UseZGC \
-XX:+ZGenerational \
-XX:+AlwaysPreTouch \
-XX:+DisableExplicitGC \
-XX:+PerfDisableSharedMem \
-XX:MaxMetaspaceSize=512m \
-jar server.jar nogui
```
Флаги Aikar для G1GC при ZGC **не применяются** - у ZGC своя архитектура. Флаги `-XX:G1*` с ZGC игнорируются или вызывают ошибку.
**Важно:** ZGC требует больше памяти для собственных структур данных. На куче 8 ГБ реально под объекты приложения доступно примерно 6.5-7 ГБ.
## Как замерить паузы GC и убедиться в эффективности
Добавьте в строку запуска флаги логирования GC:
```bash
-Xlog:gc*:file=/path/to/logs/gc.log::filecount=5,filesize=10m
```
Это создаст ротируемый лог сборок мусора. Анализ:
**Вариант 1 - GCEasy (онлайн):** Загрузите `gc.log` на [gceasy.io](https://gceasy.io) - бесплатный анализ с графиками пауз, throughput и рекомендациями.
**Вариант 2 - GCViewer (Java-приложение):** Скачайте с GitHub, откройте `gc.log`, смотрите на:
- "Max Pause" - должно быть ниже 200 мс
- "Avg Pause" - желательно ниже 50 мс
- "GC Overhead" - доля времени в GC, норма до 3-5%
- Наличие Full GC (G1 Full GC) - должно быть 0 или единицы за сессию
**Вариант 3 - в консоли через grep:**
```bash
grep "GC pause" /path/to/logs/gc.log | grep -v "concurrent" | awk '{print $NF}' | sort -t'(' -k2 -rn | head -20
```
Эта команда выведет 20 самых долгих STW-пауз.
**Быстрая проверка через Spark (плагин):** Если у вас установлен [Spark](https://spark.lucko.me/) - популярный профайлер для Minecraft-серверов, достаточно выполнить в консоли:
```
/spark gcmonitor
```
Spark выводит уведомления в чат при каждой GC-паузе с её длительностью.
## Типичные ошибки при настройке JVM
**1. Разные -Xms и -Xmx**
Самая частая ошибка у начинающих. `-Xms512M -Xmx8G` - JVM стартует с 512 МБ и постепенно расширяется, провоцируя GC при каждом расширении.
**2. Слишком большая куча без необходимости**
Куча 30 ГБ на сервере с 20 игроками - не лучше, чем 8 ГБ. G1GC обрабатывает большую кучу дольше, Mixed GC-паузы растут. Начните с разумного значения (6-10 ГБ для средней нагрузки) и увеличивайте, если видите OutOfMemoryError или постоянное давление GC.
**3. Флаги G1GC с неподходящей версией Java**
Некоторые флаги Aikar требуют `-XX:+UnlockExperimentalVMOptions` в Java 11, но стали стандартными в Java 17/21. Использование устаревших флагов не сломает сервер, но может выводить предупреждения в консоль.
**4. Смешивание флагов G1GC и ZGC**
Нельзя использовать `-XX:+UseZGC` и `-XX:G1NewSizePercent=30` одновременно. Выберите один сборщик.
**5. Плагин вызывает System.gc()**
Флаг `-XX:+DisableExplicitGC` блокирует эти вызовы. Если плагин жалуется, что не может освободить память - это баг в плагине, а не причина убирать этот флаг.
## Пример итогового скрипта запуска
Готовый `start.sh` для продакшен-сервера на Java 21 с 8 ГБ RAM:
```bash
#!/bin/bash
JAVA_PATH=/usr/bin/java
SERVER_JAR=paper-1.21.4.jar
RAM=8G
$JAVA_PATH \
-Xms${RAM} \
-Xmx${RAM} \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:+AlwaysPreTouch \
-XX:G1NewSizePercent=30 \
-XX:G1MaxNewSizePercent=40 \
-XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 \
-XX:G1HeapWastePercent=5 \
-XX:G1MixedGCCountTarget=4 \
-XX:InitiatingHeapOccupancyPercent=15 \
-XX:G1MixedGCLiveThresholdPercent=90 \
-XX:G1RSetUpdatingPauseTimePercent=5 \
-XX:SurvivorRatio=32 \
-XX:+PerfDisableSharedMem \
-XX:MaxTenuringThreshold=1 \
-XX:MaxMetaspaceSize=512m \
-Xlog:gc*:file=logs/gc.log::filecount=5,filesize=10m \
-Dusing.aikars.flags=https://mcflags.emc.gs \
-Daikars.new.flags=true \
-jar ${SERVER_JAR} nogui
```
Сделайте файл исполняемым и запускайте:
```bash
chmod +x start.sh
./start.sh
```
## Связанные материалы
Флаги JVM - только один из инструментов оптимизации. Читайте также: [оптимизация сервера Minecraft](/ru/minecraft-server-optimization) для настройки paper.yml и bukkit.yml, [устранение лагов на сервере Minecraft](/ru/minecraft-server-lags-fix) с диагностикой через Spark и Timings, а также [выбор ядра для Minecraft-сервера](/ru/minecraft-cores) - правильное ядро даёт прирост производительности без каких-либо настроек JVM.
## Заключение
Флаги Aikar - обязательная базовая настройка для любого Minecraft-сервера на Java. Они не требуют специальных знаний: достаточно скопировать строку запуска, подставить нужный объём RAM и убедиться, что используется Java 17 или 21. После включения флагов большинство серверов замечают снижение TPS-просадок и исчезновение характерных "фризов" на 200-500 мс. Для серверов с кучей от 12 ГБ на Java 21 стоит дополнительно рассмотреть Generational ZGC - он обеспечивает паузы менее 1 мс. Независимо от выбранного сборщика, настройте логирование GC и периодически проверяйте статистику через GCEasy или Spark.
> **Pterohost** - хостинг Minecraft-серверов с NVMe-хранилищем, защитой от DDoS и круглосуточной технической поддержкой. Все тарифы поддерживают Java 17/21 и кастомные флаги запуска. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-aikar-flags-jvm)
---
## Форматирование чата и префиксы на сервере Minecraft
URL: https://docs.pterohost.com/ru/minecraft-chat-format-plugin
Обновлено: 2026-06-13
Настройка чата в Minecraft 2026: VentureChat, EssentialsChat, префиксы из LuckPerms, PlaceholderAPI, hex-цвета, каналы и антиспам. Пошаговые конфиги.
---
> **Кратко:** Для красивого чата с префиксами на Paper/Spigot установите VentureChat или EssentialsChat, подключите PlaceholderAPI с расширением LuckPerms и задайте формат строки с переменными %luckperms_prefix%, %player_name%, %luckperms_suffix%. Hex-цвета работают с Minecraft 1.16+. Антиспам и каналы настраиваются в config.yml выбранного плагина.
# Форматирование чата и префиксы на сервере Minecraft
**Чат - первое, что видит каждый игрок, зашедший на сервер.** Красивый формат с цветными префиксами группы, ником и каналами создаёт профессиональное впечатление и помогает модераторам быстро различать роли. В 2026 году стек инструментов устоялся: LuckPerms хранит префиксы/суффиксы, PlaceholderAPI пробрасывает их в любой плагин, а VentureChat или EssentialsChat рендерят финальную строку сообщения. Дополнительно можно включить hex-цвета, разделить чат на каналы и поставить фильтрацию спама.
> **Pterohost** - игровой Minecraft-хостинг с NVMe-дисками, DDoS-защитой L7 и поддержкой 24/7. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-chat-format-plugin)
## Необходимые плагины и зависимости
Прежде чем настраивать форматирование, убедитесь, что на сервере стоят все нужные компоненты.
| Плагин | Для чего | Ссылка |
|---|---|---|
| LuckPerms 5.x | Группы, префиксы, суффиксы | luckperms.net |
| PlaceholderAPI 2.11+ | Переменные между плагинами | hangar.papermc.io |
| VentureChat 3.x **или** EssentialsX | Рендер чата | hangar.papermc.io |
| Vault (опц.) | Bridge для старых плагинов прав | hangar.papermc.io |
Все четыре JAR кладутся в папку `plugins/` рядом со своими зависимостями. После установки перезапустите сервер и проверьте отсутствие ошибок в консоли.
После запуска загрузите расширение LuckPerms для PlaceholderAPI:
```
/papi ecloud download LuckPerms
/papi reload
```
Убедитесь, что команда вернула "Successfully downloaded extension LuckPerms". Без этого шага переменные `%luckperms_prefix%` и `%luckperms_suffix%` не будут подставляться.
## Настройка префиксов и суффиксов в LuckPerms
Префиксы задаются через meta-команды. Каждый prefix/suffix имеет вес (priority) - чем больше число, тем выше приоритет при конфликте нескольких групп.
### Назначение префикса группе
```
/lp group default meta setprefix 1 "&7[Игрок] "
/lp group vip meta setprefix 10 "&6[VIP] "
/lp group moderator meta setprefix 50 "&c[Модератор] "
/lp group admin meta setprefix 100 "&4[Админ] "
```
Символ `&` - стандартный цветовой код Bukkit. Цифра после него задаёт цвет:
| Код | Цвет | Код | Цвет |
|---|---|---|---|
| &0 | Чёрный | &8 | Тёмно-серый |
| &1 | Тёмно-синий | &9 | Синий |
| &a | Зелёный | &c | Красный |
| &e | Жёлтый | &6 | Золотой |
| &f | Белый | &4 | Тёмно-красный |
| &l | Жирный | &o | Курсив |
| &n | Подчёркнутый | &m | Зачёркнутый |
### Назначение суффикса
```
/lp group vip meta setsuffix 10 " &6★"
```
Суффикс отображается после имени игрока, обычно используется для иконок или коротких статусов.
### Назначение префикса конкретному игроку
Если нужно дать уникальный префикс одному игроку без создания новой группы:
```
/lp user Steve meta setprefix 200 "&5[Легенда] "
```
Вес 200 гарантирует, что личный префикс перебьёт групповой.
### Проверка мета-данных
```
/lp user Steve meta info
/lp group vip meta info
```
## VentureChat: установка и базовый конфиг
VentureChat - наиболее функциональный плагин чата для Paper/Spigot в 2026 году. Поддерживает каналы, PlaceholderAPI, hex-цвета, локальный чат по радиусу и интеграцию с BungeeCord.
После установки JAR и перезапуска откройте `plugins/VentureChat/config.yml`.
### Формат строки чата
```yaml
# plugins/VentureChat/config.yml
channels:
global:
color: "&f"
symbol: "G"
default: true
radius: 0 # 0 = без ограничения дальности
bungeecord: false
format: "&8[&aG&8] %luckperms_prefix%&f%player_name%%luckperms_suffix%&7: &f%message%"
cooldown: 1000 # мс между сообщениями
rateLimit: 5 # макс. сообщений за cooldown-период
```
Разбор формата:
- `%luckperms_prefix%` - префикс из LuckPerms через PAPI
- `%player_name%` - ник игрока (без цвета)
- `%luckperms_suffix%` - суффикс из LuckPerms
- `%message%` - текст сообщения
Любую переменную из PlaceholderAPI можно вставить в формат: `%player_health%`, `%vault_eco_balance_formatted%`, `%essentials_afk%` и т.д.
### Локальный канал с радиусом
```yaml
local:
color: "&7"
symbol: "L"
default: false
radius: 100 # блоков
format: "&8[&7Локальный&8] %luckperms_prefix%&f%player_name%&7: &f%message%"
```
Игроки вне радиуса 100 блоков не получат сообщение. Переключение: `/ch local`.
### Канал для персонала
```yaml
staff:
color: "&c"
symbol: "S"
default: false
radius: 0
permission: "venturechat.channel.staff"
format: "&8[&cSTAFF&8] &c%player_name%&7: &f%message%"
```
Видеть и писать в канал могут только игроки с пермишеном `venturechat.channel.staff`. Удобно для общения модераторов без /msg.
## EssentialsChat: настройка формата
Если сервер уже использует EssentialsX, отдельный плагин чата можно не ставить. EssentialsX включает модуль EssentialsChat в основном JAR с версии 2.20.
Откройте `plugins/Essentials/config.yml` и найдите секцию chat:
```yaml
# plugins/Essentials/config.yml
chat:
# Формат чата. {PREFIX} и {SUFFIX} берутся из Vault/LuckPerms.
# {DISPLAYNAME} - ник с цветом (если задан через /nick), {USERNAME} - чистый ник.
format: "{PREFIX}&f{DISPLAYNAME}{SUFFIX}&7: &f{MESSAGE}"
# Альтернативный формат через PlaceholderAPI:
# format: "%luckperms_prefix%&f%player_name%%luckperms_suffix%&7: &f{MESSAGE}"
radius: 0 # 0 - глобальный чат
admin-spy: true # /msg и /r видят администраторы
# Права на цвет в сообщениях:
# essentials.chat.color - &a, &b и т.д.
# essentials.chat.format - &l, &o, &n, &m, &k
# essentials.chat.url - кликабельные ссылки
# essentials.chat.color.hex - hex-цвета RRGGBB
```
Важно: если используется EssentialsChat, то Vault обязателен - именно через него плагин получает prefix/suffix из LuckPerms. Убедитесь, что Vault.jar лежит в plugins/ и в консоли нет ошибки "Vault not found".
Дополнительные опции EssentialsChat:
```yaml
# Запрет URL-адресов в чате для игроков без пермишена essentials.chat.url
url-filtering:
enabled: true
regex: "(https?|ftp)://[^\\s/$.?#].[^\\s]*"
replacement: "[ссылка удалена]"
# Изменение цвета ника через /nick (требует пермишен essentials.nick.color)
nick-prefix: "~"
```
Пермишены EssentialsChat, которые стоит распределить по группам:
| Пермишен | Что даёт |
|---|---|
| essentials.chat.color | Цветные &a-&f коды в тексте сообщения |
| essentials.chat.format | Жирный &l, курсив &o, подчёркнутый &n |
| essentials.chat.color.hex | Hex-цвета RRGGBB |
| essentials.chat.url | Кликабельные ссылки |
| essentials.chat.shout | Глобальный чат через ! перед сообщением |
## Hex-цвета и MiniMessage
Начиная с Minecraft 1.16 клиент поддерживает 16 миллионов цветов вместо 16 стандартных.
### Формат RRGGBB (BungeeCord/Legacy)
Используется в большинстве плагинов, совместимых с Bukkit API:
```yaml
format: "FF5500%player_name%&7: &f%message%"
```
`FF5500` - оранжевый. Для градиентов плагины вроде CMI или ChatColor+ поддерживают синтаксис `{#FF5500>text<#FFCC00}`.
### MiniMessage (Adventure API)
Paper 1.18+ поддерживает MiniMessage нативно. В VentureChat 3.x и некоторых других плагинах можно использовать:
```yaml
format: "<#FF5500>%player_name%: %message%"
```
Градиент через MiniMessage:
```yaml
prefix: "[Admin]"
```
### Пермишены на цвет
В VentureChat права на цвет в сообщениях задаются в `config.yml`:
```yaml
permissions:
venturechat.color: "&a, &b, &c ..." # стандартные цвета
venturechat.hex: "true" # hex-цвета
venturechat.format: "true" # форматирование &l, &o
```
Выдайте пермишен `vc.hex` (или эквивалент по документации версии) нужным группам:
```
/lp group vip permission set vc.hex true
```
## Антиспам и фильтрация капса
### Встроенные инструменты VentureChat
В `config.yml` VentureChat есть секция `chatfilters`:
```yaml
chatfilters:
anti-caps:
enabled: true
max-caps-percentage: 50 # % заглавных от длины сообщения
min-message-length: 6 # сообщения короче не проверяются
action: lowercase # lowercase или block
bypass-permission: "vc.bypass.caps"
anti-spam:
enabled: true
cooldown: 1500 # мс минимум между сообщениями
duplicate-threshold: 3 # блок после N одинаковых сообщений подряд
bypass-permission: "vc.bypass.spam"
word-filter:
enabled: true
replace-char: "*"
words:
- "плохоеслово1"
- "плохоеслово2"
```
Игроки с пермишеном `vc.bypass.spam` (например, группа admin) не подпадают под ограничения.
### Антиспам в EssentialsX
```yaml
# plugins/Essentials/config.yml
spam-command-cooldowns:
- /msg 500 # мс между /msg
- /r 500
chat-spam-commands:
- /msg
- /mail
- /tell
# Минимальная длина сообщения (защита от флуда пробелами):
minimum-chat-message-length: 1
```
### ChatControl Red (расширенная фильтрация)
Если базовых инструментов мало, ChatControl Red - наиболее функциональный платный плагин фильтрации на рынке. Он добавляет: детектор рекламы (IP-адреса, домены), нейросетевой определитель языка, капча для новых игроков, правила regex с action (warn/kick/ban/mute), счётчик нарушений.
Бесплатный аналог с ограниченным набором функций - ChatRegulator (open-source, Velocity/Paper).
Пример правила regex-фильтра в ChatControl Red для блокировки рекламы:
```yaml
# plugins/ChatControl/rules/chat.rs
match ".*(discord\.gg|vk\.com/.*serv|t\.me).*"
then warn &cРеклама запрещена!
then deny
strip-accents true
ignore-string samp
```
Такой подход позволяет гибко описывать паттерны запрещённого контента без хардкода слов, что удобно для регулярно обновляемых правил сервера.
## Формат с дополнительными PAPI-переменными
PlaceholderAPI даёт сотни переменных для формата чата. Несколько полезных расширений:
```
/papi ecloud download Essentials
/papi ecloud download Vault
/papi ecloud download Player
/papi reload
```
Пример расширенного формата с иконкой AFK и балансом:
```yaml
format: "%essentials_afk_symbol%%luckperms_prefix%&f%player_name%%luckperms_suffix% &8[&e%vault_eco_balance_formatted%&8]&7: &f%message%"
```
Где `%essentials_afk_symbol%` возвращает `[AFK]` если игрок неактивен, иначе пустую строку.
Проверить любую переменную прямо в игре можно командой:
```
/papi parse Steve %luckperms_prefix%
```
Если переменная возвращает пустую строку или буквально `%luckperms_prefix%` - расширение не загружено или у игрока не установлен prefix. Полный список доступных расширений:
```
/papi ecloud list all
```
Расширения хранятся в `plugins/PlaceholderAPI/expansions/`. Их можно скачивать вручную с GitHub и класть в эту папку, если сервер без доступа в интернет.
## BungeeCord и глобальный чат в сети серверов
Если сервер работает в связке BungeeCord/Velocity, форматирование чата требует отдельного подхода.
**Вариант 1 - VentureChat с BungeeCord-режимом.** В `config.yml` устанавливается `bungeecord: true` для глобального канала, а плагин ставится на каждый субсервер и проксирует сообщения через plugin messaging channel.
```yaml
channels:
global:
bungeecord: true
format: "&8[&bNetwork&8] %luckperms_prefix%&f%player_name%&7: &f%message%"
```
**Вариант 2 - DiscordSRV.** Плагин поддерживает трансляцию сообщений как между субсерверами, так и в Discord-канал. Формат чата задаётся в `config.yml` секции DiscordToMinecraftChatMessageFormat и MinecraftToDiscordChatMessageFormat.
**Вариант 3 - LimboChat (Velocity).** Легковесный плагин для Velocity, который перехватывает пакеты чата и форматирует их на уровне прокси. Поддерживает MiniMessage и PAPI через Bridge.
## Частые ошибки и их решение
**Префикс не отображается - пустая строка вместо него**
1. Проверьте, загружено ли расширение: `/papi list` - в списке должен быть "luckperms"
2. Перезагрузите PAPI: `/papi reload`
3. Убедитесь, что у группы действительно задан prefix: `/lp group vip meta info`
4. Проверьте, что формат в config.yml плагина чата использует `%luckperms_prefix%` (точные символы %)
**Цветовые коды отображаются как текст (&a, &6)**
Плагин чата не обрабатывает цветовые коды в пользовательских сообщениях без соответствующего пермишена. Выдайте:
```
/lp group default permission set essentials.chat.color true
```
или для VentureChat:
```
/lp group default permission set vc.color true
```
**Hex-цвета не работают в 1.16+**
Убедитесь, что сервер реально запущен на Paper 1.16+, а не Spigot. Adventure API (необходимый для MiniMessage и hex) включён только в Paper-форке. Spigot поддерживает только legacy-формат `RRGGBB` через BungeeCord char codes.
**Дубли сообщений в BungeeCord-сети**
При использовании VentureChat в BungeeCord-режиме отключите vanilla-чат на субсерверах в `spigot.yml`:
```yaml
# spigot.yml
settings:
bungeecord: true
```
И убедитесь, что `bungeecord: true` выставлен в `paper-global.yml` (Paper 1.19+):
```yaml
proxies:
bungeecord:
online-mode-overrides: true
```
## Связанные материалы
Форматирование чата - часть более широкой системы управления сервером. Базовую настройку прав и групп читайте в статье [LuckPerms: настройка прав, групп и наследования](/ru/minecraft-luckperms-setup). Если после установки новых плагинов сервер начал тормозить - загляните в [Устранение лагов на сервере Minecraft](/ru/minecraft-server-lags-fix). Для защиты территорий и зон с отдельными правилами чата используйте [WorldGuard: регионы и защита территорий](/ru/minecraft-worldguard-regiony).
## Заключение
Красивый чат с цветными префиксами строится на трёх компонентах: LuckPerms задаёт мета-данные группы, PlaceholderAPI пробрасывает их переменными, VentureChat или EssentialsChat собирает финальную строку. Hex-цвета и MiniMessage-градиенты доступны с Paper 1.16+. Каналы чата (локальный, глобальный, staff) помогают структурировать общение на крупных серверах, а встроенный антиспам убирает флуд без дополнительных плагинов. Главное - после каждого изменения конфига выполнять `/papi reload` и перезапускать плагин чата, иначе изменения не применятся.
> **Pterohost** - хостинг Minecraft с автоматическим резервным копированием, NVMe-дисками и защитой от DDoS-атак уровня L3-L7. Промокод **4START** снижает стоимость первого заказа на 20%.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-chat-format-plugin)
---
## AuthMe на сервере Minecraft: вход по логину и паролю
URL: https://docs.pterohost.com/ru/minecraft-authme-login
Обновлено: 2026-06-13
Установка AuthMe на сервер Minecraft: регистрация, логин, MySQL, защита спавна, сессии по IP и премиум-автологин. Пошаговая инструкция 2026.
---
> **Кратко:** AuthMe Reloaded - стандартный плагин авторизации для offline-серверов Minecraft. Установи jar в папку plugins, настрой MySQL-соединение, выстави таймаут до входа и включи защиту спавна - и сервер защищён от кражи аккаунтов.
# AuthMe на сервере Minecraft: вход по логину и паролю
**Если ваш Minecraft-сервер работает в режиме `online-mode=false` (пиратский или смешанный режим), каждый желающий может войти под любым ником - включая ваш или ник любого администратора. AuthMe Reloaded решает эту проблему: плагин блокирует движение и взаимодействие с миром до тех пор, пока игрок не зарегистрируется и не введёт пароль. В 2026 году AuthMe остаётся де-факто стандартом среди плагинов авторизации для Paper/Spigot серверов - активно поддерживается, совместим с версиями 1.16-1.21 и имеет зрелую документацию.**
> **Pterohost** - игровой хостинг на NVMe-дисках с DDoS-защитой и поддержкой 24/7. Запустите сервер за несколько минут и сразу настройте AuthMe. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-authme-login)
## Что такое AuthMe Reloaded
AuthMe Reloaded - форк оригинального AuthMe, поддерживаемый сообществом с 2015 года. Актуальная версия (5.6.x) совместима с Paper и Spigot 1.16-1.21. Плагин хранит хеши паролей (bcrypt, SHA256, argon2 на выбор), поддерживает MySQL, SQLite и H2 в качестве базы данных, умеет выдавать временный спавн до входа, ограничивать команды до авторизации и работать в связке с премиум-автологином через Mojang API.
Аналоги - nLogin и FastLogin - решают похожую задачу, но AuthMe исторически богаче по функциям и документации. Если вы только запускаете сервер, начните с AuthMe.
## Установка плагина
**Требования:**
- Spigot или Paper 1.16+ (рекомендуется Paper 1.21)
- Java 17+
- MySQL 5.7+ или MariaDB 10.3+ (опционально, но рекомендуется)
**Шаги установки:**
1. Скачайте последний релиз с [GitHub Releases](https://github.com/AuthMe/AuthMeReloaded/releases) - файл `AuthMe-X.X.X.jar`.
2. Поместите jar в папку `plugins/` на вашем сервере.
3. Перезапустите сервер (`stop` + старт, или `/reload confirm` - не рекомендуется для плагинов с БД).
4. После первого старта AuthMe создаст папку `plugins/AuthMe/` с конфигами.
Проверка установки:
```
/authme version
```
Должна вывести версию и статус базы данных.
## Первичная настройка config.yml
Главный конфиг - `plugins/AuthMe/config.yml`. Откройте его и внесите базовые настройки.
### Режим базы данных
По умолчанию AuthMe использует SQLite. Для продакшен-сервера переключитесь на MySQL:
```yaml
DataSource:
backend: MYSQL
mySQLHost: 127.0.0.1
mySQLPort: 3306
mySQLDatabase: authme
mySQLTablename: authme
mySQLUsername: authme_user
mySQLPassword: ВашПароль
mySQLColumnName: realname
```
Создайте базу и пользователя в MySQL заранее:
```sql
CREATE DATABASE authme CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'authme_user'@'localhost' IDENTIFIED BY 'ВашПароль';
GRANT ALL PRIVILEGES ON authme.* TO 'authme_user'@'localhost';
FLUSH PRIVILEGES;
```
Таблицу AuthMe создаст сам при первом старте.
### Алгоритм хеширования паролей
```yaml
security:
passwordHash: BCRYPT
bcryptLog2Rounds: 10
```
`BCRYPT` - рекомендуемый выбор в 2026 году. Он медленный специально - это защищает от брутфорса базы данных. Если производительность критична (очень высокая нагрузка), используйте `ARGON2` (требует включённой библиотеки) или `SHA256`.
### Таймаут и ограничения до входа
```yaml
settings:
registration:
enabled: true
force: true
forceRegKick: false
restrictions:
allowMovement: false
allowedMovementRadius: 0
allowChat: false
allowedCommands:
- /login
- /l
- /register
- /reg
- /captcha
maxRegPerIp: 3
noTeleport: false
GameMode:
forceAdventureMode:
enabled: false
```
`allowMovement: false` - игрок не двигается до авторизации. `maxRegPerIp: 3` - защита от массовой регистрации с одного IP.
## Защита спавна до входа
AuthMe умеет телепортировать незарегистрированных игроков в специальную точку - "лимб" - и держать их там до входа. Это изолирует их от основного мира.
```yaml
settings:
restrictions:
noTeleport: false
spawn:
teleportUnAuthedToSpawn: true
spawnPriority: authme,essentials,multiverse,default
```
Установите точку спавна для неавторизованных игроков:
```
/authme setspawn
```
После входа игрок телепортируется обратно на свою позицию (или в обычный spawn, если `teleportUnAuthedToSpawn` + настройки Essentials).
Для дополнительной защиты создайте WorldGuard-регион вокруг спавна и запретите там PvP и взаимодействие - незарегистрированные игроки не смогут навредить другим, даже если AuthMe дал минимальное движение. Подробнее о регионах - в статье [WorldGuard: создание регионов](/ru/minecraft-worldguard-regiony).
## Регистрация и вход: команды для игроков
После подключения к серверу игрок видит сообщение с инструкцией. Первый раз:
```
/register <пароль> <пароль>
```
Повторный вход:
```
/login <пароль>
```
Короткие алиасы (по умолчанию включены):
```
/reg <пароль> <пароль>
/l <пароль>
```
Смена пароля:
```
/changepassword <старый> <новый>
```
Выход (сессия сбрасывается):
```
/logout
```
Команды для администраторов:
```
/authme register <ник> <пароль> # Зарегистрировать игрока вручную
/authme changepassword <ник> <пароль> # Сменить пароль любому игроку
/authme unregister <ник> # Удалить регистрацию
/authme forcelogin <ник> # Принудительный вход без пароля
/authme getaccount <ник> # Инфо об аккаунте
/authme purge <дни> # Удалить аккаунты неактивных игроков
```
## Сессии по IP
Сессии позволяют постоянным игрокам не вводить пароль при каждом входе, если IP не изменился.
```yaml
settings:
sessions:
enabled: true
sessionExpireAfterSeconds: 86400
sessionOnlyFromSameIp: true
```
`sessionExpireAfterSeconds: 86400` - сессия живёт 24 часа. `sessionOnlyFromSameIp: true` - ключевой параметр безопасности: сессия привязана к IP.
**Предупреждение:** на публичных серверах с большим числом игроков через мобильный интернет или VPN сессии по IP неудобны - IP меняется часто. Для таких серверов уменьшайте `sessionExpireAfterSeconds` или отключайте сессии полностью.
## Премиум-автологин
Если на сервере играют и пиратские, и лицензионные игроки, AuthMe может автоматически авторизовать лицензионных через Mojang API - без ввода пароля.
```yaml
settings:
premium:
isEnabled: true
autoLogin: true
security:
premiumLogin: true
```
Как это работает:
1. Игрок подключается с ником.
2. AuthMe делает запрос к Mojang API и проверяет, существует ли такой ник в базе лицензионных аккаунтов.
3. Если да - игрок автоматически авторизован без пароля.
4. Если нет (пиратка) - запрашивается `/login`.
**Важно:** при включённом премиум-автологине сервер всё равно должен быть в `online-mode=false`. Mojang API используется только для верификации, не для полноценного online-mode. Не путайте с настоящим online-mode, который ломает смешанный режим.
FastLogin - более продвинутый плагин для этой задачи, но требует отдельной установки. AuthMe справляется с базовым случаем без зависимостей.
## Настройка сообщений
Все сообщения редактируются в `plugins/AuthMe/messages/messages_ru.yml`. Если файл не создан, скопируйте `messages_en.yml` и переименуйте, затем укажите язык в конфиге:
```yaml
settings:
messagesLanguage: ru
```
Пример кастомизации:
```yaml
login_please_login: '&cВведите &e/login <пароль> &cдля входа на сервер.'
reg_please_register: '&aДля игры зарегистрируйтесь: &e/register <пароль> <пароль>'
login_wrong_password: '&cНеверный пароль. Попробуйте ещё раз.'
login_success: '&aДобро пожаловать, {player}!'
```
Цветовые коды `&` работают в AuthMe по умолчанию. Для hex-цветов в 1.16+ используйте формат `RRGGBB`.
## Интеграция с другими плагинами
### Essentials / EssentialsX
AuthMe умеет синхронизировать спавн с Essentials. В `config.yml`:
```yaml
settings:
spawn:
spawnPriority: authme,essentials,multiverse,default
```
Приоритет `authme` первым означает, что AuthMe-спавн имеет приоритет над Essentials-спавном для неавторизованных.
### LuckPerms
После авторизации AuthMe выдаёт игрокам стандартные пермиссии. Для тонкой настройки прав (например, запрет команд до входа) интегрируйтесь через LuckPerms. Подробно - в [гайде по LuckPerms](/ru/minecraft-luckperms-setup).
Пример: группа `default` в LuckPerms не должна иметь никаких прав кроме `/login` и `/register`. Создайте группу `unregistered` с минимальными правами и выдавайте её AuthMe через `onJoinGroups`:
```yaml
Hooks:
bungeecord: false
sendPlayerTo: ''
```
AuthMe напрямую не управляет группами LuckPerms, но через плагин-связку AuthMe-GroupManager (или скрипты) можно реализовать выдачу групп после логина.
### BungeeCord / Velocity
Если у вас сеть серверов, AuthMe можно настроить в режиме BungeeCord - авторизация происходит на proxy-сервере (Bungeecord-Hub) и данные передаются на остальные серверы. В `config.yml`:
```yaml
Hooks:
bungeecord: true
```
На BungeeCord-сервере нужен отдельный AuthMe-экземпляр. Все серверы сети должны использовать одну MySQL-базу.
## Безопасность: checklist
Проверьте эти параметры перед релизом сервера:
| Параметр | Рекомендуемое значение | Зачем |
|---|---|---|
| `passwordHash` | BCRYPT или ARGON2 | Стойкость к брутфорсу базы |
| `maxRegPerIp` | 2-3 | Защита от накрутки аккаунтов |
| `allowMovement` | false | Игрок заморожен до входа |
| `sessionOnlyFromSameIp` | true | Сессия не работает с другого IP |
| `allowedCommands` | только /login, /register | Нельзя злоупотребить командами |
| `forceRegKick` | false (осторожно) | Не кикать, если уже 3+ с IP |
| MySQL-пароль | сложный, уникальный | Брутфорс БД |
| `bcryptLog2Rounds` | 10-12 | Баланс безопасности и скорости |
Дополнительно:
- Регулярно делайте дамп таблицы `authme` в MySQL: `mysqldump -u root authme > authme_backup.sql`
- Проверяйте лог `plugins/AuthMe/logs/debug.log` на попытки подбора паролей
- Плагин [LoginSecurity](https://github.com/TyrealHu/LoginSecurity) можно использовать как дополнение к AuthMe для двухфакторной верификации через почту (экспериментально)
## Частые проблемы и решения
**Игрок не может зарегистрироваться - ошибка "уже 3 аккаунта с этого IP"**
Временно увеличьте `maxRegPerIp` или добавьте IP в whitelist через `bypassMaxLoginPerIp`:
```yaml
settings:
restrictions:
maxRegPerIp: 3
allowedNicknames:
- AdminNick
```
**AuthMe не подключается к MySQL**
Проверьте: сервер MySQL запущен (`systemctl status mysql`), пользователь создан с правильным хостом (`localhost` или `127.0.0.1`), порт 3306 не заблокирован firewall. В логе AuthMe (`plugins/AuthMe/logs/debug.log`) будет детальная ошибка подключения.
**После /login игрок не телепортируется обратно**
Убедитесь, что `teleportUnAuthedToSpawn: true` включён и AuthMe-спавн установлен (`/authme setspawn`). Если используете Multiverse, укажите приоритет: `spawnPriority: authme,multiverse,essentials,default`.
**Игрок видит мир до входа**
Включите `allowMovement: false` и проверьте `allowedMovementRadius: 0`. Если проблема остаётся - возможно, другой плагин переопределяет движение (Essentials spawn teleport). Проверьте порядок загрузки плагинов.
**Лаги сервера после установки AuthMe**
AuthMe при каждом логине обращается к БД. На SQLite с сотнями запросов в секунду возможны задержки - переходите на MySQL. Также проверьте `bcryptLog2Rounds`: значение 14+ значительно нагружает CPU при массовых входах. Оптимум - 10-11. Про оптимизацию сервера подробнее в статье [устранение лагов сервера Minecraft](/ru/minecraft-server-lags-fix).
## Связанные материалы
Настройка авторизации - часть общей системы безопасности сервера. Изучите [LuckPerms: настройка прав игроков](/ru/minecraft-luckperms-setup) чтобы правильно разграничить права зарегистрированных и незарегистрированных игроков. Для защиты территорий от незваных гостей используйте [WorldGuard: создание регионов](/ru/minecraft-worldguard-regiony). Если после установки плагинов сервер стал тормозить, читайте гайд по [устранению лагов сервера Minecraft](/ru/minecraft-server-lags-fix).
## Заключение
AuthMe Reloaded - надёжный и проверенный плагин для защиты offline-сервера Minecraft от несанкционированного доступа. После правильной настройки MySQL, bcrypt-хеширования, защиты спавна и ограничений до входа сервер становится защищённым от кражи аккаунтов. Включите премиум-автологин, если планируете смешанный режим - лицензионные игроки оценят удобство. Сессии по IP добавят комфорт постоянным игрокам, но используйте их осторожно на публичных серверах. Регулярно делайте резервные копии базы данных AuthMe и следите за логами на подозрительную активность.
> **Pterohost** - игровой хостинг для Minecraft с NVMe-хранилищем, DDoS-защитой и круглосуточной технической поддержкой. Настройте AuthMe и другие плагины сразу после запуска сервера. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-authme-login)
---
## BedWars сервер Minecraft: плагин, арены и конфигурация
URL: https://docs.pterohost.com/ru/minecraft-bedwars-server
Обновлено: 2026-05-26
Как запустить BedWars-сервер Minecraft в 2026: установка MBedWars и BedWars Rel, создание арен, генераторы ресурсов, магазины и BungeeCord-лобби.
---
> **Кратко:** BedWars - PvP-режим, где 4-8 команд защищают свои кровати на островах и пытаются уничтожить чужие. Топовые плагины 2026: **MBedWars** (платный, активный) и **BedWars Rel** (бесплатный, open-source). Для серверов 50+ онлайн нужна BungeeCord-сеть с отдельным лобби. Paper 1.21, 4-8 GB RAM, античит Vulcan/Grim.
## Что такое BedWars в Minecraft?
**BedWars** - это командный PvP-режим, придуманный сервером Hypixel в 2017 году. На карте размещаются 4 или 8 островов (по одному на команду), на каждом стоит кровать команды. Игроки добывают ресурсы из генераторов (железо, золото, алмазы, изумруды), покупают броню, оружие и блоки в магазине, после чего идут разрушать кровати соперников. Команда без кровати теряет возможность респавна, и последняя выжившая команда побеждает.
Режим стал хитом: на Hypixel BedWars играли 40 000+ игроков одновременно в пиковые часы. С тех пор десятки серверов воспроизвели механику через плагины для собственных сетей.
## Какой плагин BedWars выбрать в 2026
**В 2026 году актуальны два плагина**: MBedWars (коммерческий) и BedWars Rel (бесплатный). Выбор зависит от бюджета и масштаба проекта.
| Параметр | MBedWars | BedWars Rel |
|----------|----------|-------------|
| Цена | 10-15$ на SpigotMC | Бесплатно (GitHub) |
| Поддержка версий | 1.8.8 - 1.21.x | 1.8 - 1.20.x |
| Активность разработки | Регулярные обновления 2024-2026 | Сообщество, медленнее |
| Готовые карты | 30+ от автора | Нужно создавать |
| GUI-редактор арен | Есть | Нет (только команды) |
| Многоязычность | 20+ языков | EN, DE, частично RU |
| API для разработчиков | Полноценный | Базовый |
| Интеграции | PlaceholderAPI, Citizens, Vault, LuckPerms | PlaceholderAPI, Vault |
Для коммерческого сервера с проджектом BedWars как основной режим - **MBedWars** окупит вложения за неделю. Для домашнего сервера или экспериментов с режимом - **BedWars Rel** даст 80% функционала бесплатно.
## Подготовка сервера: ядро и зависимости
**BedWars требует Paper или Pufferfish - на CraftBukkit/Spigot плагин будет работать с лагами**. Подбор ядра подробно разбирается в [сравнении ядер Minecraft 2026](/ru/minecraft-server-cores-2026).
Минимальные требования:
- **Ядро**: Paper 1.20.4+ или 1.21.x.
- **Java**: 17 (для 1.20.4) или 21 (для 1.21+).
- **RAM**: 4 GB для одной арены 4х4, 6-8 GB для нескольких одновременных арен.
- **CPU**: 1 поток на матч + 1 поток для основного игрового цикла.
- **Зависимости**: Vault, PlaceholderAPI, LuckPerms (для прав на админ-команды).
Полный server.properties для BedWars:
```properties
view-distance=8
simulation-distance=6
spawn-protection=0
allow-flight=true # требуется MBedWars для двойных прыжков из шопа
difficulty=normal
gamemode=adventure
pvp=true
spawn-animals=false
spawn-monsters=false
spawn-npcs=false
max-players=80
```
## Установка MBedWars: пошагово
### Шаг 1. Покупка и скачивание
Купите [MBedWars на SpigotMC](https://www.spigotmc.org/resources/mbedwars.30683/), скачайте `MBedWars-1.x.x.jar`. Опционально - скачайте бесплатные карты из официального аддон-репозитория.
### Шаг 2. Установка JAR-файлов
```
/plugins/
├── MBedWars.jar
├── Vault.jar
├── PlaceholderAPI.jar
└── LuckPerms-Bukkit.jar
```
После первого запуска создастся структура:
```
/plugins/MBedWars/
├── config.yml
├── arenas/ # YAML-файлы арен
├── lobbies/ # YAML лобби
├── messages.yml # тексты
├── shop.yml # настройки магазина
├── stats/ # статистика игроков
└── maps/ # шаблоны карт
```
### Шаг 3. Базовый config.yml
Откройте `/plugins/MBedWars/config.yml`:
```yaml
language: ru # или en, de
database:
type: SQLITE # для маленьких серверов
# type: MYSQL для production
# host: localhost
# port: 3306
# database: mbedwars
# username: mbw
# password: changeme
game:
countdown-time: 30 # секунд до старта матча
game-time: 1800 # макс. длительность матча (30 мин)
respawn-time: 5 # секунд до респавна
bed-protection-time: 30 # начальная защита кроватей
spectator-after-death: true
end-game-message: title
generators:
iron:
interval: 1 # секунда между спавном
max-amount: 64 # лимит ресурсов в радиусе
gold:
interval: 5
max-amount: 16
diamond:
interval: 30
max-amount: 8
emerald:
interval: 60
max-amount: 4
shop:
enabled: true
items-categories: 6 # 6 категорий товаров
team-upgrades: true # групповые улучшения
```
### Шаг 4. Создание первой арены
```
/bw setup create skywars_arena 4 # имя и кол-во команд (2, 4, 8)
```
Затем последовательно настройте:
```
/bw setup spawn red # встаньте на спавн красной команды
/bw setup spawn blue
/bw setup spawn green
/bw setup spawn yellow
/bw setup bed red # посмотрите на кровать команды
/bw setup bed blue
/bw setup bed green
/bw setup bed yellow
/bw setup gen iron red # генератор железа на острове красных
/bw setup gen gold red
/bw setup gen iron blue
/bw setup gen gold blue
# ... для всех команд
/bw setup gen diamond # центральные генераторы
/bw setup gen emerald
/bw setup shop village_red # NPC-шоп предметов
/bw setup teamshop village_red # NPC-шоп командных улучшений
/bw setup lobby # выберите лобби-зону внутри арены
/bw setup save
/bw enable skywars_arena
```
После `/bw enable` арена доступна для игры через `/bw join skywars_arena`.
## Создание лобби и хаба
**Лобби - это отдельный мир/зона, где игроки ждут начала матча**. В MBedWars есть встроенное лобби (создаётся через `/bw lobby setup`), но для серьёзного сервера лучше отдельный hub-сервер на BungeeCord.
### Однонодная схема (один сервер)
```
/bw lobby create main_lobby
/bw lobby setspawn # встаньте на точку спавна
/bw lobby join_npc # NPC для входа в арены
/bw lobby save
```
В лобби игрок видит NPC, нажимает на него и попадает в GUI выбора арены.
### BungeeCord-схема (множество серверов)
```
[BungeeCord]
├── lobby-1 (PaperMC) - хаб
├── bedwars-1 (Paper + MBedWars) - 4 арены 4х4
├── bedwars-2 (Paper + MBedWars) - 4 арены 4х4
└── bedwars-3 (Paper + MBedWars) - 2 арены 8х8
```
На лобби-сервере поставьте плагин **MBedWars-Bungee** или **ServerSelectorX** с кнопками "Solo", "Doubles", "Squads" - они телепортируют игрока на нужный поднод. На самих BedWars-серверах включите `bungee: true` в config.yml.
## Генераторы ресурсов
**Генераторы - сердце BedWars**. Они спавнят железо, золото, алмазы и изумруды с фиксированными интервалами. Скорость напрямую влияет на темп игры.
Типичная настройка (баланс Hypixel-style):
| Ресурс | Где | Интервал | Лимит в радиусе |
|--------|-----|----------|-----------------|
| Железо | На острове | 1 сек | 64 |
| Золото | На острове | 5 сек | 16 |
| Алмаз | Центр карты | 30 сек | 8 |
| Изумруд | Центр карты | 60 сек | 4 |
После 5-10 минут матча генераторы ускоряются (Forge Upgrade в team-shop): Iron Forge II (x1.5), Iron Forge III (x2), Maniac Miner (x3).
В MBedWars прогресс улучшений настраивается в `/plugins/MBedWars/shops/team_shop.yml`:
```yaml
forge_upgrade:
- tier: 1
cost: 2_diamond
multiplier: 1.5
- tier: 2
cost: 4_diamond
multiplier: 2.0
- tier: 3
cost: 6_diamond
multiplier: 3.0
speed-emerald-spawn: true
```
> **Pterohost** - игровой хостинг с DDoS-защитой L4+L7, NVMe SSD и 24/7 поддержкой. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-bedwars-server)
## Магазин: предметы и улучшения
**В BedWars два типа магазинов**: предметный (брони, оружие, блоки, инструменты) и командный (общие улучшения для всей команды).
### Предметный шоп (item shop)
Доступен у NPC деревенского жителя на каждом острове. Категории:
- **Блоки**: шерсть (4 железа за 16), эндер-камень (24 железа за 12), обсидиан (4 изумруда за 4), стекло (12 железа за 4).
- **Оружие**: каменный меч (10 железа), железный меч (7 золота), алмазный меч (5 изумрудов).
- **Броня**: кожаные ботинки бесплатно, кольчуга (40 железа), железная (12 золота), алмазная (6 изумрудов).
- **Инструменты**: ножницы (20 железа), кирка деревянная/каменная/железная (увеличиваются по уровню).
- **Лук и стрелы**: лук (12 золота), 8 стрел (2 золота), стрелы зачарованные.
- **Зелья/предметы**: жемчуг эндера (4 изумруда), огненный шар (40 железа), TNT (8 золота), резинка (24 железа).
Цены настраиваются в `/plugins/MBedWars/shops/item_shop.yml`. Не меняйте кардинально - это сломает баланс, скопированный с Hypixel.
### Командный шоп (team upgrades)
- **Острая броня** (Sharpness I, II) - бонус урона мечом.
- **Защитная броня** (Reinforced Armor I-IV) - Protection на броне.
- **Maniac Miner** (Haste I, II) - скорость добычи.
- **Forge** (Iron Forge II-IV, Emerald Forge) - быстрее спавн ресурсов.
- **Heal Pool** - реген около кровати.
- **Dragon Buff** - 1-2 дракона на финале.
- **Trap** (Itsy Bitsy Spider, Counter-Offensive, Alarm) - ловушки на подходах к кровати.
## Антигриф и баланс
**Главное в BedWars - предотвратить разрушение кроватей в первые 30 секунд**, пока команды только покупают броню. Это решается через `bed-protection-time: 30` в config.yml и whitelist блоков.
### Whitelist блоков
```yaml
breakable-blocks:
- WOOL_WHITE
- WOOL_RED
- WOOL_BLUE
- WOOL_GREEN
- WOOL_YELLOW
- END_STONE
- GLASS
- OBSIDIAN
- HARDENED_CLAY
- WOOD
- WOOD_PLANKS
- LADDER
placeable-blocks:
- WOOL_*
- END_STONE
- GLASS
- LADDER
- SLIME_BLOCK
- TNT
```
Игроки не могут ломать ландшафт карты (только построенные ими блоки), но могут пробивать чужие постройки около кровати.
### Античит
В 2026 на BedWars-серверах ставят:
- **Vulcan** (платный, 30$) - top-tier детект reach, killaura, scaffold.
- **Grim AntiCheat** (open-source, GitHub) - бесплатный аналог Vulcan, быстро развивается.
- **Matrix AntiCheat** (платный, 35$) - проверенное решение, но дороже.
Для BedWars критичны проверки:
- **Reach** (атака на расстоянии больше 3 блоков) - чит killaura.
- **Scaffold** (мост под собой без задержки) - чит scaffold.
- **AutoClick** (CPS > 18) - autoclicker.
- **Bow Aimbot** (резкое наведение лука) - aimbot.
## Производительность и оптимизация
**BedWars - тяжёлый плагин из-за большого числа событий**: каждое размещение/разрушение блока проверяется, кровати трекаются, генераторы спавнят итемы постоянно. Базовые оптимизации:
1. **Aikar's Flags** в стартовом скрипте:
```bash
java -Xms6G -Xmx6G \
-XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC \
-XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 \
-XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 \
-XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 \
-XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 \
-XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 \
-Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true \
-jar paper.jar nogui
```
2. **Регулярный рестарт** каждые 6-12 часов через cron или autostop:
```
/restart now # после игры или по расписанию
```
3. **Удаление дроп-итемов** через 30 секунд (в paper.yml):
```yaml
world-settings:
default:
despawn-ranges:
item:
soft: 32
hard: 64
item-despawn-rate: 600 # 30 секунд
```
4. **Отдельные миры под арены** - не используйте бесконечный мир. Каждая арена - флатовый мир 200x200 без генерации новых чанков.
Глубже про настройку tps смотрите в [оптимизации Minecraft-сервера](/ru/minecraft-server-optimization).
## Готовые карты и комьюнити
**Создавать карты с нуля - долго**. Готовые карты от комьюнити:
- **Hypixel-style maps** - копии классических Hypixel карт (Lectus, Speedway, Picnic, Dreamgrove) есть в открытом доступе на [hypixel.net/forums](https://hypixel.net/forums) и в discord-сообществах MBedWars.
- **Built The Earth BedWars** - тематические карты (Tokyo, Egypt, Iceland).
- **MBedWars Map Pack** - часть идёт в комплекте с плагином.
Карты импортируются как `.schem`-файлы через WorldEdit:
```
//schem load my_map
//paste -a
/bw setup create my_map 4
```
> **Pterohost** - производительный хостинг с CPU 4.5+ GHz и автоматическими бэкапами. Промокод **4START** даёт -20% на первый заказ.
> [Заказать сервер для BedWars](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-bedwars-server)
## Итоги: запуск BedWars в 2026
Запуск BedWars-сервера в 2026 году требует Paper 1.20.4+ или 1.21.x, 4-8 GB RAM, CPU 4+ GHz и плагина MBedWars (платно) или BedWars Rel (бесплатно). На небольших серверах хватает одной ноды с лобби и 2-4 аренами, для проекта 100+ онлайн нужна BungeeCord-сеть с отдельными BedWars-серверами под Solo/Doubles/Squads. Обязательны: античит Vulcan/Grim, регулярный рестарт, оптимизированные ядра Paper/Pufferfish и баланс цен в шопе под Hypixel-стандарт.
---
## ChestShop: магазины в сундуках на сервере Minecraft
URL: https://docs.pterohost.com/ru/minecraft-chestshop-setup
Обновлено: 2026-06-10
Как установить ChestShop на сервер Minecraft, настроить Vault-экономику и создать магазины в сундуках - подробный гайд 2026.
---
> **Кратко:** ChestShop - плагин для создания магазинов через таблички и сундуки. Установите Vault + плагин экономики + ChestShop, поставьте сундук, напишите табличку над ним - и магазин готов. Админ-шопы работают без сундука.
# ChestShop: магазины в сундуках на сервере Minecraft
**ChestShop - один из самых популярных торговых плагинов для Minecraft-серверов с выживанием и экономикой. Принцип прост: ставишь сундук, вешаешь над ним табличку с ценой - и любой игрок может купить или продать предмет. Плагин работает на Bukkit/Spigot/Paper начиная с версии 1.16, активно поддерживается в 2026 году и совместим со всей экосистемой Vault-экономики. В этом гайде разберём установку с нуля, форматы табличек, настройку конфига, создание админ-шопов и типичные проблемы, с которыми сталкиваются администраторы.**
> **Pterohost** - игровой хостинг для Minecraft с NVMe-дисками, DDoS-защитой и поддержкой 24/7. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-chestshop-setup)
## Требования и зависимости
ChestShop не работает самостоятельно - ему нужны два дополнительных плагина.
**Обязательные зависимости:**
| Плагин | Назначение | Где скачать |
|---|---|---|
| Vault | API-прослойка между экономикой и плагинами | SpigotMC / Modrinth |
| Плагин экономики | Хранит балансы игроков | EssentialsX, CMI, или другой |
| ChestShop | Сам плагин магазинов | SpigotMC |
**Рекомендуемая связка в 2026 году:** Paper 1.21.x + EssentialsX (включает EssentialsX Economy) + Vault + ChestShop 3.14+.
**Совместимые плагины экономики:**
- EssentialsX Economy - бесплатный, самый распространённый
- CMI - платный, но богатый функционал
- Economy API (iConomy-совместимые) - устаревшие, но работают через Vault
Vault работает как "переводчик" - ChestShop не знает, какой плагин экономики установлен, он просто обращается к Vault. Это позволяет менять экономику без переписывания ChestShop.
## Установка ChestShop
### Шаг 1: загрузить плагины
Скачайте последние стабильные JAR-файлы:
```
Vault-1.7.3.jar -> в /plugins/
EssentialsX-2.21.0.jar -> в /plugins/
EssentialsXChat (опц.) -> в /plugins/
ChestShop-3.14.jar -> в /plugins/
```
Файлы кладутся в папку `plugins/` вашего сервера.
### Шаг 2: перезапустить сервер
После копирования файлов перезапустите сервер командой `stop` в консоли и запустите снова. При первом старте каждый плагин создаст свою папку с конфигурацией.
### Шаг 3: проверить загрузку
В консоли должны появиться строки:
```
[Vault] Enabling Vault v1.7.3
[EssentialsX] Enabling EssentialsX v2.21.0
[ChestShop] Enabling ChestShop v3.14
[ChestShop] Vault found, economy: EssentialsX Economy
```
Если ChestShop пишет `No economy plugin found` - проверьте, что Vault установлен и плагин экономики запустился без ошибок.
### Шаг 4: проверить плагины в игре
Войдите на сервер и выполните:
```
/plugins
```
В списке должны быть зелёными: Vault, EssentialsX, ChestShop.
## Формат таблички магазина
Табличка ChestShop состоит из ровно четырёх строк. Каждая строка выполняет свою роль:
```
Строка 1: [имя владельца] <- пустая = ваш ник
Строка 2: [количество] <- целое число (1-64, для стаков)
Строка 3: [цена] <- B <цена> : S <цена>
Строка 4: [предмет] <- название или ID
```
**Примеры рабочих табличек:**
Продажа алмазов за 100 монет, выкуп за 50:
```
(пусто)
1
B 100 : S 50
DIAMOND
```
Только покупка (игроки покупают у вас):
```
(пусто)
64
B 500
COBBLESTONE
```
Только продажа (игроки продают вам):
```
(пусто)
1
S 80
IRON_INGOT
```
Магазин другого игрока (если у вас есть права):
```
Steve
16
B 200 : S 100
WHEAT
```
**Названия предметов** берутся из стандартных ID Minecraft (в верхнем регистре через подчёркивание). ChestShop также поддерживает псевдонимы: `DIAMOND`, `IRON_INGOT`, `OAK_LOG` и т.д. Для точного ID используйте команду `/iteminfo` или держите нужный предмет в руке при создании таблички (в этом случае строку 4 можно оставить пустой).
## Создание магазина шаг за шагом
1. Поставьте сундук в доступном для игроков месте.
2. Заполните сундук товаром (для магазина продажи).
3. Нажмите ПКМ по знаку (таблице) и напишите четыре строки.
4. Нажмите готово - ChestShop подсветит табличку и выведет подтверждение в чат.
**Важно:** табличка должна быть непосредственно над сундуком - на блок выше или на стенке сундука. ChestShop определяет привязку по направлению.
**Взаимодействие покупателя:**
- ПКМ по табличке - покупка предмета
- Shift + ПКМ по табличке - продажа предмета
- Просто посмотреть на табличку - информация о ценах
## Конфигурация ChestShop
Основной конфиг находится по пути `plugins/ChestShop/config.yml`. Разберём важные параметры:
```yaml
# Разрешать ли игрокам создавать магазины
allow_create: true
# Минимальная цена (0 = без ограничений)
minimum_price: 0.01
# Максимальная цена (0 = без ограничений)
maximum_price: 0
# Сколько магазинов может создать один игрок
shops_per_player: 0 # 0 = без лимита
# Уведомлять ли владельца о транзакции
notify_on_buy: true
notify_on_sell: true
# Защита: только владелец может забрать товар
protection:
enabled: true
# Логировать ли транзакции
log_to_file: true
log_file: logs/transactions.log
```
**Параметр `shops_per_player`** стоит ограничить на новых серверах - например, до 10-20 магазинов, чтобы игроки не спамили табличками.
**Параметр `protect_chest`** (если есть в вашей версии) включает встроенную защиту сундука от кражи. Однако лучше использовать отдельный плагин защиты - LWC или аналог.
После изменения конфига перезагрузите плагин:
```
/cs reload
```
или перезапустите сервер целиком.
## Права (permissions) ChestShop
ChestShop использует систему прав через LuckPerms или любой другой Permissions-плагин, совместимый с Vault.
**Основные права:**
| Право | Описание |
|---|---|
| `chestshop.shop.buy` | Покупать в магазинах |
| `chestshop.shop.sell` | Продавать в магазинах |
| `chestshop.shop.create` | Создавать свои магазины |
| `chestshop.shop.create.admin` | Создавать админ-шопы |
| `chestshop.shop.remove` | Удалять свои магазины |
| `chestshop.mod` | Удалять чужие магазины (для модераторов) |
| `chestshop.admin` | Полные права администратора |
| `chestshop.notax` | Освобождение от налога на транзакции |
**Базовая настройка через LuckPerms** для группы default:
```
/lp group default permission set chestshop.shop.buy true
/lp group default permission set chestshop.shop.sell true
/lp group default permission set chestshop.shop.create true
```
Для VIP-группы - дополнительно:
```
/lp group vip permission set chestshop.notax true
```
## Админ-магазины с бесконечным товаром
Обычный магазин ограничен содержимым сундука. Как только товар заканчивается - покупка невозможна. Админ-шоп решает эту проблему: он генерирует товар из воздуха.
**Создание админ-шопа:**
Напишите в первой строке таблички `[Admin]` (с заглавной A, регистр важен в старых версиях, в новых - нет):
```
[Admin]
1
B 500
DIAMOND
```
Или используйте имя игрока с правом `chestshop.shop.create.admin`. Для такого магазина сундук не нужен вообще - табличку можно повесить на любую стену.
**Когда использовать админ-шопы:**
- Стартовые ресурсы (булыжник, дерево) по фиксированной цене
- Продажа ключей, токенов, специальных предметов
- Глобальный выкупщик (игроки сдают лут серверу)
**Налог на транзакции** можно настроить в конфиге - процент от каждой покупки уходит "в воздух" или на определённый аккаунт. Это помогает бороться с инфляцией:
```yaml
tax_on_buy: 5 # 5% налог при покупке
tax_on_sell: 0 # без налога на продажу
tax_account: Economy # аккаунт-получатель (или "" для удаления монет)
```
## Защита сундуков магазинов
Сундук с магазином нужно защищать от взлома - иначе игрок может просто выломать сундук и забрать товар.
**Вариант 1: LWC**
Самый популярный плагин защиты сундуков. После установки игрок пишет `/cprivate` и кликает по сундуку. Покупатели всё равно смогут взаимодействовать с табличкой.
```
/cprivate <- защитить сундук
/cinfo <- информация о защите
/cremove <- снять защиту
```
**Вариант 2: WorldGuard регионы**
Для больших рыночных зон создайте регион и запретите взаимодействие чужим игрокам:
```
/rg define market
/rg flag market chest-access deny
/rg addmember market <владелец>
```
**Вариант 3: встроенная защита ChestShop**
В config.yml включите:
```yaml
protection:
enabled: true
allow_hopper_out: false # запретить хоперам тянуть из магазина
```
Это не замена полноценному плагину защиты, но предотвращает кражу через хоперы.
**Важный нюанс:** если вы используете LWC или AxProtect, убедитесь, что ChestShop добавлен в список доверенных плагинов. Иначе транзакции через табличку будут заблокированы. В LWC это настраивается автоматически при совместной установке.
## Команды ChestShop
Все команды начинаются с `/chestshop` или сокращённо `/cs`:
```
/cs list -> список ваших магазинов
/cs list <игрок> -> магазины другого игрока (для модераторов)
/cs remove <#> -> удалить свой магазин по номеру
/cs reload -> перезагрузить конфиг
/cs version -> версия плагина
```
Для администраторов:
```
/cs removeAll <игрок> -> удалить все магазины игрока
/cs report -> статистика транзакций
```
## Типичные ошибки и их решение
**Ошибка: "You don't have permission to create a shop"**
Причина - игроку не выдано право `chestshop.shop.create`. Решение:
```
/lp user <ник> permission set chestshop.shop.create true
```
или добавьте право для всей группы default (см. раздел про права).
**Ошибка: "No economy plugin found"**
Vault не видит плагин экономики. Проверьте:
1. Установлен ли EssentialsX (не просто Essentials, а именно EssentialsX).
2. Нет ли ошибок в консоли при загрузке EssentialsX.
3. Версия Vault совместима с вашей версией сервера.
**Ошибка: табличка создаётся, но товар не продаётся**
Скорее всего, сундук пустой или привязка сундука не работает. Убедитесь, что:
- Сундук стоит прямо под табличкой (или на блок ниже).
- Сундук не является двойным, смотрящим не в ту сторону.
- В сундуке есть нужный товар.
**Ошибка: формат таблички не распознаётся**
ChestShop очень строг к формату. Проверьте:
- Строка 3 должна быть в формате `B <цена>`, `S <цена>` или `B <цена> : S <цена>`.
- После B и S обязателен пробел.
- Двоеточие разделяет цену покупки и продажи через пробелы: `B 100 : S 50`.
- Предмет в строке 4 должен быть точным ID (регистр не важен в современных версиях).
**Хоперы тянут товар из магазина**
Отключите в конфиге:
```yaml
protection:
allow_hopper_out: false
allow_hopper_in: false
```
**Магазин дублирует транзакции**
Редкий баг, возникает при лаге сервера. Включите log_to_file и отслеживайте двойные записи. Обычно решается обновлением ChestShop до последней версии.
## Расширения и совместимые плагины
ChestShop хорошо интегрируется с экосистемой экономических плагинов:
**ChestShop-StorageManager** - расширение для хранения логов в MySQL/SQLite вместо файла. Полезно для серверов с активной торговлей.
**ShopGUI+** - альтернатива для администраторских магазинов с GUI-интерфейсом. Может работать параллельно с ChestShop.
**QuickShop Hikari** - полноценная альтернатива ChestShop с более современным интерфейсом. Если вы только выбираете плагин - рассмотрите оба варианта.
**Dynmap-ChestShop** - отображает магазины игроков на Dynmap-карте мира.
**DiscordSRV** - при настройке интеграции можно слать уведомления о крупных сделках в Discord.
## Связанные материалы
Для полноценной работы магазинов важна стабильная основа сервера. Прочитайте [настройку server.properties](/ru/minecraft-server-properties-guide) - там описаны ключевые параметры производительности, влияющие на задержки при транзакциях. Если магазины начинают лагать при нагрузке - изучите [руководство по устранению лагов](/ru/minecraft-server-lags-fix). Для тонкой настройки прав и групп игроков (кто может создавать магазины, у кого нет налога) необходим [LuckPerms](/ru/minecraft-luckperms-setup).
## Заключение
ChestShop - зрелый и надёжный плагин, который работает на серверах годами без существенных проблем. Установка занимает 10-15 минут: скачайте Vault, плагин экономики и ChestShop, перезапустите сервер, выдайте права - и игроки могут открывать магазины. Ключевой момент - правильный формат таблички и защита сундуков от кражи. Админ-шопы с тегом [Admin] решают проблему пустых складов для базовых ресурсов. Настройте налог на транзакции, чтобы контролировать инфляцию - это важно для долгосрочного здоровья экономики на выживании.
> **Pterohost** - хостинг Minecraft с автоматическими бэкапами, NVMe-хранилищем и защитой от DDoS-атак - идеально для серверов с активной торговлей. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-chestshop-setup)
---
## CoreProtect: логирование действий и откат гриферства
URL: https://docs.pterohost.com/ru/minecraft-coreprotect-rollback
Обновлено: 2026-06-05
CoreProtect для Minecraft: установка, команды /co rollback и /co inspect, откат гриферства, настройка MySQL/SQLite - подробный гайд 2026.
---
> **Кратко:** CoreProtect - плагин для логирования всех действий игроков на сервере Minecraft. Команда /co rollback u:НикГрифера t:1h r:50 откатит любые разрушения за минуты. Установка занимает 5 минут, SQLite работает из коробки, MySQL рекомендуется при 20+ одновременных игроках.
# CoreProtect: логирование действий и откат гриферства
**CoreProtect - стандарт де-факто для защиты серверов Minecraft от гриферства в 2026 году.** Плагин записывает в базу данных каждое действие: установку и разрушение блоков, взаимодействие с сундуками, убийства животных, поджоги, взрывы TNT. При атаке гриферов администратор за 30 секунд находит виновного через /co inspect и откатывает весь нанесённый ущерб без потери предметов. CoreProtect работает на Paper, Spigot и Purpur начиная с Minecraft 1.16 и активно поддерживается в версиях 1.20-1.21.
> **Pterohost** - игровой хостинг с NVMe-дисками, защитой от DDoS и поддержкой 24/7. Идеально для серверов с CoreProtect и тяжёлыми плагинами. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-coreprotect-rollback)
## Установка CoreProtect
CoreProtect распространяется через Hangar (официальная площадка PaperMC) и Modrinth. Jar-файл кладётся в папку `plugins/` без дополнительных зависимостей.
**Шаги установки:**
1. Скачайте актуальную версию с [hangar.papermc.io/CoreProtect/CoreProtect](https://hangar.papermc.io/CoreProtect/CoreProtect).
2. Поместите jar в `/plugins/` директорию сервера.
3. Перезапустите сервер (`/restart` или `stop` + запуск).
4. Плагин создаст `plugins/CoreProtect/config.yml` и начнёт запись.
Никаких дополнительных библиотек не требуется - SQLite встроен. При первом запуске CoreProtect автоматически создаёт базу данных `plugins/CoreProtect/database.db`.
**Проверка установки:**
```
/co status
```
Вывод покажет версию плагина, количество записей в базе и текущую скорость логирования (entries/second).
## Настройка config.yml
Основные параметры конфига находятся в `plugins/CoreProtect/config.yml`. Ниже приведён типичный конфиг с пояснениями:
```yaml
# CoreProtect config.yml
prefix: co
check-updates: true
api-enabled: true
verbose: true
language: ru
# Что логировать
block-place: true
block-break: true
natural-break: false # падение блоков гравитации - можно отключить
block-burn: true
block-ignite: true
explosions: true
entity-kills: true
item-drops: false # дроп предметов - генерирует много записей
item-pickups: false
inventory: true # взаимодействие с сундуками, шалкерами
container-transactions: true
sign-text: true
username-changes: true
session-logging: true
chat-logging: false # логи чата - по желанию
command-logging: false
# База данных
use-mysql: false
mysql-host: localhost
mysql-port: 3306
mysql-database: coreprotect
mysql-username: cp_user
mysql-password: ВашПароль
mysql-prefix: co_
```
**Важные параметры производительности:**
- `natural-break: false` - отключает запись падения гравитационных блоков (песок, гравий). На серверах с активной добычей это снижает объём базы в 2-3 раза.
- `item-drops: false` и `item-pickups: false` - дроп предметов создаёт тысячи записей в час, обычно не нужен для расследований гриферства.
## SQLite и MySQL: что выбрать
| Параметр | SQLite | MySQL |
|---|---|---|
| Настройка | Не нужна, работает сразу | Требует отдельный сервер/контейнер |
| Производительность | До 20 игроков без проблем | Оптимально для 20+ игроков |
| Резервное копирование | Один файл database.db | Через mysqldump |
| Поиск по большим логам | Медленнее при > 1 млн записей | Быстрее благодаря индексам |
| Рекомендация | Маленькие/средние серверы | Крупные серверы, 24/7 работа |
**Настройка MySQL** (если решили перейти):
1. Создайте базу данных и пользователя:
```sql
CREATE DATABASE coreprotect CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'cp_user'@'localhost' IDENTIFIED BY 'НадёжныйПароль';
GRANT ALL PRIVILEGES ON coreprotect.* TO 'cp_user'@'localhost';
FLUSH PRIVILEGES;
```
2. В `config.yml` установите `use-mysql: true` и заполните параметры подключения.
3. Перезапустите сервер - CoreProtect автоматически создаст таблицы.
При миграции со SQLite на MySQL старые данные не переносятся автоматически. Логирование начнётся заново с момента переключения.
## Инспекция блоков: команда /co inspect
`/co inspect` (сокращение `/co i`) - главный инструмент расследования. После ввода команды курсор становится "инспектором": каждый клик по блоку или контейнеру выводит историю действий с ним.
```
/co inspect
```
Пример вывода при клике по пустому месту:
```
----- CoreProtect -----
2026-06-05 14:23:11 - GrieferNick разрушил minecraft:diamond_ore
2026-06-05 14:22:55 - GrieferNick разрушил minecraft:stone
2026-06-05 14:22:40 - AdminPlayer разместил minecraft:stone
```
**Клик по контейнеру (сундуку, шалкеру) показывает:**
- Кто открывал
- Что добавлял и что забирал
- Точное время каждого действия
Для выхода из режима инспекции повторно введите `/co inspect` или нажмите Esc.
**Инспекция в конкретных координатах** (через консоль или без присутствия рядом):
```
/co lookup u:GrieferNick t:1h a:break r:50
```
## Команда /co lookup: поиск по логам
`/co lookup` (сокращение `/co l`) позволяет искать события по нескольким фильтрам одновременно.
**Синтаксис:**
```
/co lookup u:<игрок> t:<время> a:<действие> r:<радиус> b:<блок>
```
**Параметры времени (`t:`):**
```
t:1h - последний час
t:30m - последние 30 минут
t:2h30m - 2 часа 30 минут
t:1d - последние сутки
t:1w - последняя неделя
t:2026-06-01 - с определённой даты
t:2026-06-01,2026-06-05 - диапазон дат
```
**Параметры действий (`a:`):**
```
a:break - разрушение блоков
a:place - установка блоков
a:container - взаимодействие с контейнерами
a:kill - убийства мобов и животных
a:chat - сообщения в чате
a:command - использованные команды
a:+block - только установка (знак + или -)
a:-block - только разрушение
```
**Примеры реальных запросов:**
```bash
# Что GrieferNick делал за последние сутки
/co lookup u:GrieferNick t:1d
# Кто разрушал блоки в радиусе 10 блоков за 2 часа
/co lookup t:2h a:break r:10
# Кто открывал сундук (стоим рядом, клик по сундуку в режиме inspect)
# или через lookup с координатами
# Что делали с алмазными блоками за неделю
/co lookup t:1w b:diamond_block a:break
```
Результаты выводятся постранично, переключение: `/co lookup #2`, `/co lookup #3`.
## Откат гриферства: /co rollback
`/co rollback` (сокращение `/co rb`) - самая важная команда. Она буквально отматывает время назад: возвращает сломанные блоки, убирает поставленные, восстанавливает содержимое контейнеров.
**Синтаксис:**
```
/co rollback u:<игрок> t:<время> r:<радиус> a:<действие> b:<блок>
```
**Типичные сценарии:**
```bash
# Откат гриферства конкретного игрока за последний час в радиусе 50 блоков
/co rollback u:GrieferNick t:1h r:50
# Откат только разрушений (не убирать блоки, которые гриффер поставил)
/co rollback u:GrieferNick t:2h r:100 a:break
# Откат взрыва TNT (без привязки к игроку)
/co rollback u:#tnt t:30m r:20
# Откат поджогов
/co rollback u:#fire t:1h r:50
# Откат на определённой высоте (y-ось)
/co rollback u:GrieferNick t:1d r:50 #y:64
# Глобальный откат без ограничения радиуса (осторожно!)
/co rollback u:GrieferNick t:3h r:#global
```
**Параметры специальных источников (`u:#`):**
| Параметр | Что откатывает |
|---|---|
| `u:#tnt` | Урон от взрывов TNT |
| `u:#creeper` | Урон от крипера |
| `u:#fire` | Урон от огня |
| `u:#lava` | Урон от лавы |
| `u:#water` | Изменения водой |
| `u:#explosion` | Все взрывы |
**Важно:** перед глобальным откатом (`r:#global`) всегда уточните временной диапазон и сделайте резервную копию сервера. Ошибочный откат с широкими параметрами может затронуть работу других игроков.
После выполнения CoreProtect показывает количество изменённых блоков и затраченное время. Откат 10 000 блоков обычно занимает 2-5 секунд на быстром диске.
## Отмена отката: /co restore
`/co restore` (сокращение `/co rs`) - обратная операция к rollback. Если откат был выполнен ошибочно или нужно "откатить откат", используйте restore с теми же параметрами.
```bash
# Отменить только что выполненный откат
/co restore u:GrieferNick t:1h r:50
# Восстановить блоки, снесённые гриффером (если нужно вернуть обратно)
/co restore u:GrieferNick t:2h r:100 a:break
```
CoreProtect хранит информацию о состоянии до и после каждого действия, поэтому restore корректно работает даже после нескольких последовательных rollback-операций.
**Сценарий использования restore:**
1. Гриффер сломал постройку.
2. Вы сделали `/co rollback u:GrieferNick t:1h r:50` - постройка восстановлена.
3. Оказалось, что гриффер тоже что-то построил рядом с пострадавшим участком.
4. Его постройка исчезла при откате.
5. Вы делаете `/co restore u:GrieferNick t:1h r:10 a:place` - его постройка вернулась.
## Очистка логов: /co purge
Без регулярной очистки база CoreProtect растёт неограниченно. На активном сервере с 50 игроками база может достигать нескольких гигабайт за месяц.
```bash
# Удалить логи старше 30 дней
/co purge t:30d
# Удалить логи старше 60 дней
/co purge t:60d
# Удалить логи старше 1 года
/co purge t:365d
```
**Автоматическая очистка** через конфиг (CoreProtect 22+):
```yaml
# В config.yml
days: 30 # хранить логи максимум 30 дней (0 = бессрочно)
```
После очистки рекомендуется выполнить оптимизацию базы:
```bash
# Для SQLite - оптимизация файла базы
/co purge t:60d optimize
```
**Рекомендации по срокам хранения:**
| Тип сервера | Рекомендуемый срок |
|---|---|
| Публичный сервер, 50+ игроков | 14-30 дней |
| Средний сервер, 10-50 игроков | 30-60 дней |
| Приватный сервер, до 10 игроков | 60-90 дней |
| Сервер с большим диском | До 180 дней |
## Расследование сложных случаев
### Кража из сундуков
```bash
# 1. Встать рядом с сундуком и войти в режим инспекции
/co inspect
# Кликнуть по сундуку правой кнопкой
# 2. Поиск всех взаимодействий с контейнерами в зоне базы
/co lookup t:1d a:container r:30
# 3. Откат кражи (только контейнерные операции)
/co rollback u:ThiefNick t:12h r:20 a:container
```
### Массовое уничтожение фермы мобов
```bash
# Посмотреть убийства за последние 6 часов в радиусе 100 блоков
/co lookup t:6h a:kill r:100
# Откатить убийства (восстановит мобов и их дропы в инвентаре - только блоки, не мобов)
# Примечание: CoreProtect восстанавливает блоки, но не возрождает мобов
/co rollback u:GrieferNick t:6h r:100 a:break
```
### Поджог лесом (огонь распространился)
```bash
# Найти первоначальный источник поджога
/co lookup t:3h a:place b:fire r:200
# Откатить все блоки, сгоревшие или сломанные в результате
/co rollback u:#fire t:3h r:100
/co rollback u:GrieferNick t:3h r:100 a:+block b:fire
```
## Права доступа (permissions)
CoreProtect поддерживает гранулярные права через LuckPerms или любой другой permissions-менеджер.
**Основные узлы прав:**
```yaml
# Полный доступ администратора
coreprotect.inspect # /co inspect
coreprotect.rollback # /co rollback
coreprotect.restore # /co restore
coreprotect.lookup # /co lookup
coreprotect.purge # /co purge
coreprotect.reload # /co reload
coreprotect.status # /co status
coreprotect.consumer # API-доступ для других плагинов
# Мета-узел для полного доступа
coreprotect.admin # включает все права выше
```
**Рекомендуемая настройка через LuckPerms:**
```bash
# Выдать права модератора (только инспекция и lookup)
/lp group moderator permission set coreprotect.inspect true
/lp group moderator permission set coreprotect.lookup true
# Выдать права старшего модератора (+ rollback)
/lp group senior-mod permission set coreprotect.rollback true
/lp group senior-mod permission set coreprotect.restore true
# Выдать права администратора (всё)
/lp group admin permission set coreprotect.admin true
```
## Производительность и оптимизация
CoreProtect оптимизирован для минимального влияния на TPS (тиков в секунду), но при большой нагрузке следует учитывать несколько моментов.
**Признаки проблем с производительностью:**
- TPS падает при массовом разрушении блоков (взрывы, массовая добыча)
- Длинные задержки при выполнении `/co rollback` с большим числом блоков
- Размер `database.db` превысил 2-3 ГБ
**Решения:**
1. **Перейти на MySQL** - это самый эффективный способ снизить нагрузку на диск.
2. **Отключить избыточное логирование** - `item-drops`, `item-pickups`, `natural-break`.
3. **Регулярная очистка** - `/co purge t:30d` раз в неделю.
4. **Использовать NVMe-диск** - скорость записи критична для SQLite. На медленных HDD CoreProtect может создавать очереди на запись.
**Мониторинг через /co status:**
```
/co status
```
Команда показывает:
- Версию плагина
- Тип базы данных (SQLite/MySQL)
- Количество записей в очереди на запись (queue size)
- Среднюю скорость логирования
Если `queue size` постоянно растёт и не уменьшается - сервер не успевает записывать логи. Это сигнал к переходу на MySQL или снижению объёма логирования.
## Интеграция с другими плагинами
CoreProtect предоставляет API, которым пользуются многие плагины:
- **WorldGuard** - при совместном использовании CoreProtect логирует действия даже внутри защищённых регионов, что помогает отслеживать нарушения прав.
- **LuckPerms** - через него настраиваются права доступа к командам CoreProtect.
- **DiscordSRV** - можно настроить уведомления в Discord при выполнении rollback-операций.
- **Plan** - статистика плагина показывает активность игроков, CoreProtect дополняет её детальными логами.
**Пример совместного использования с WorldGuard:**
Если игрок получил права на регион WorldGuard и начал разрушать чужое имущество, CoreProtect покажет его действия даже внутри разрешённого региона. Можно откатить конкретного игрока в радиусе региона, не затрагивая остальных участников.
## Связанные материалы
Для полноценной защиты сервера CoreProtect лучше работает в связке с другими инструментами. Читайте про [WorldGuard и защиту регионов](/ru/minecraft-worldguard-regiony) - он предотвращает гриферство заранее, тогда как CoreProtect фиксирует и откатывает уже случившееся. В статье [лучшие плагины для сервера Minecraft](/ru/best-plugins) рассказывается о полном стеке защиты и управления. Также важно регулярно делать [резервные копии сервера](/ru/minecraft-server-backup) - откат CoreProtect не заменяет полный бэкап при серьёзных инцидентах.
## Заключение
CoreProtect - незаменимый инструмент для любого публичного сервера Minecraft. Установка занимает 5 минут, а первый же откат гриферства окупает всё время настройки. Начните с SQLite, настройте права для модераторов через LuckPerms, отключите избыточное логирование дропов и настройте автоочистку через параметр `days: 30` в конфиге. При росте сервера до 20+ одновременных игроков переходите на MySQL - это вложение в стабильность. Регулярно проверяйте `/co status` и очищайте базу командой `/co purge t:30d`, чтобы диск не заканчивался в самый неподходящий момент.
> **Pterohost** - Minecraft-хостинг на NVMe-дисках с автоматическими бэкапами и защитой от DDoS-атак. Идеально подходит для серверов с CoreProtect и плагинами защиты. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-coreprotect-rollback)
---
## DeluxeMenus: кастомные GUI-меню на сервере Minecraft
URL: https://docs.pterohost.com/ru/minecraft-deluxemenus-gui
Обновлено: 2026-06-06
Полный гайд по DeluxeMenus 2026: установка, YAML-конфиг, слоты, клики, условия и PlaceholderAPI для меню на сервере Minecraft.
---
> **Кратко:** DeluxeMenus - плагин для Paper/Spigot, который позволяет создавать интерактивные GUI-меню через YAML-файлы. Установи плагин, создай файл меню в gui_menus/, опиши иконки и действия по кликам - меню готово без перезапуска сервера.
# DeluxeMenus: кастомные GUI-меню на сервере Minecraft
**DeluxeMenus - один из самых популярных плагинов для создания интерактивных GUI-меню на серверах Minecraft. Он позволяет владельцу сервера строить любой интерфейс через простые YAML-файлы: магазин, телепорт, навигационное меню, систему наград - всё без программирования. В 2026 году плагин активно поддерживается командой clip, совместим с Paper 1.21.x и отлично интегрируется с PlaceholderAPI, Vault и сотнями других плагинов. Правильно настроенные GUI-меню делают игровой процесс удобнее, снижают нагрузку на чат и создают профессиональный облик проекта.**
> **Pterohost** - игровой хостинг с NVMe-дисками, автоматической DDoS-защитой и поддержкой 24/7: идеальная среда для Bukkit/Paper-серверов с DeluxeMenus. Промокод **4START** даёт -20% на первый заказ.
> [Заказать Minecraft хостинг](https://pterohost.com/minecraft?utm_source=docs&utm_medium=article&utm_campaign=minecraft-deluxemenus-gui)
## Установка DeluxeMenus
### Требования
Перед установкой убедись, что выполнены условия:
- Сервер на базе **Paper** или **Spigot** 1.8+ (рекомендуется Paper 1.21.x).
- Java 17 или новее.
- **PlaceholderAPI** - строго рекомендован, почти все примеры ниже используют его.
- **Vault** - нужен, если планируешь условия на баланс или выдачу денег.
### Скачивание и размещение
1. Загрузи последнюю версию DeluxeMenus с [SpigotMC](https://www.spigotmc.org/resources/deluxemenus.11734/) или через `eCloud` в PlaceholderAPI.
2. Положи JAR в папку `plugins/` на сервере.
3. Запусти или перезагрузи сервер (`/restart` или `stop` -> старт).
4. После первого запуска появится папка `plugins/DeluxeMenus/` со структурой:
```
plugins/DeluxeMenus/
config.yml # главный конфиг (список меню)
gui_menus/ # папка для YAML-файлов меню
```
### Базовые команды
| Команда | Описание |
|---|---|
| `/deluxemenus` или `/dm` | Главная команда плагина |
| `/dm open