Полный разбор server.properties для Minecraft
Файл server.properties открывали все, но дальше первых десяти строк из туториала мало кто заходит — а зря, потому что в этом файле спрятана добрая половина рычагов, которые реально влияют на то, тормозит сервер или летает, и насколько он защищён от чужаков. Разберём построчно все значимые параметры: не только очевидные view-distance и max-players, но и флаги вроде enforce-secure-profile или sync-chunk-writes, про которые чаще молчат, хотя именно они иногда решают, упадёт сервер под нагрузкой или нет.
Содержание
Сеть, доступ и безопасность подключения
Первый блок параметров отвечает за то, кто вообще может достучаться до сервера и как именно.
server-port=25565
server-ip=
online-mode=true
enforce-secure-profile=true
prevent-proxy-connections=false
hide-online-players=false
network-compression-threshold=256
- server-port — порт, на котором сервер слушает подключения. Менять смысл есть только если на одной машине крутится несколько серверов или порт 25565 уже занят — не забудьте пробросить новый порт в файрволе.
- server-ip — если оставить пустым, сервер слушает все сетевые интерфейсы машины. Указывать конкретный IP имеет смысл на VPS с несколькими адресами, когда нужно жёстко привязать сервер к одному из них.
- online-mode — проверка лицензионных аккаунтов через серверы Mojang. Держите
trueпочти всегда:falseоткрывает вход пиратским клиентам вообще без проверки личности, и это не просто вопрос лицензии — вместе с ним отваливается и online-режим античита на уровне протокола. - enforce-secure-profile — появился вместе с системой подписи чата Mojang. При
trueсервер требует от игрока валидный подписанный профиль (актуальный лицензионный аккаунт с включённой подписью сообщений) и рубит подключение, если профиль не проходит проверку — из-за этого иногда отваливаются легитимные, но старые лаунчеры или self-hosted авторизационные прокси. Если после обновления сервера игроки массово не могут зайти с ошибкой про invalid profile — это первый подозреваемый, временно можно поставитьfalse, но это осознанное снижение защиты от подмены личности в чате. - prevent-proxy-connections — при
trueсервер сверяет IP из handshake с реальным IP подключения и рубит соединения через известные прокси/VPN-обходы geo-блокировки Mojang. Полезно против части способов обхода бана по IP, но может ложно резать легитимных игроков за корпоративными NAT — включайте осознанно, а не по умолчанию. - hide-online-players — скрывает список игроков онлайн из ответа на пинг сервера (то, что видно в списке серверов до захода). Пригождается на приватных проектах, где не хочется светить количество и ники онлайна посторонним.
- network-compression-threshold — с какого размера пакета (в байтах) сервер начинает его сжимать перед отправкой. Значение
256— разумный дефолт. Ставить-1(отключить сжатие полностью) можно только в локальной сети с огромной пропускной способностью, для обычного хостинга это лишний трафик. Слишком низкое значение (0, сжимать всё) грузит CPU ради пакетов, где выгоды почти нет.
Мир: генерация, границы, спавн
level-name=world
level-seed=
level-type=minecraft:normal
generate-structures=true
allow-nether=true
spawn-protection=16
max-world-size=29999984
- level-name — имя папки с миром. При смене генерируется (или подхватывается, если папка уже есть) новый мир — так удобно переключаться между несколькими картами на одном сервере, просто меняя значение и перезапуская.
- level-seed — сид генерации. Пустое значение — случайный сид. Задать конкретный сид полезно для воспроизводимых миров (например, известные seed'ы под конкретный рельеф) или чтобы синхронизировать локальный тестовый мир с продакшеном.
- level-type — тип генерации:
minecraft:normal(обычный),minecraft:flat(плоский мир, часто для мини-игр и билд-серверов),minecraft:large_biomes,minecraft:amplified(утрированный рельеф, заметно тяжелее для генерации чанков и TPS на фронтире карты). - generate-structures — генерировать ли деревни, крепости, храмы и прочие структуры.
falseускоряет генерацию новых чанков и годится для чисто технических/редстоун-серверов, но лишает выживание половины смысла для обычного геймплея. - allow-nether — доступ в Нижний мир.
falseполностью отключает портал — иногда используют на тематических сборках или картах, где Незер не нужен по лору. - spawn-protection — радиус вокруг точки спавна (в блоках), защищённый от строительства и разрушения игроками без прав оператора.
16— дефолт, разумно держать небольшим на публичных серверах, чтобы не блокировать стройку рядом со спавном без причины;0отключает защиту вовсе. - max-world-size — жёсткий радиус мира в блоках от центра. Ограничение полезно, если хотите не дать миру разрастись бесконечно и не проверять терабайты диска под чанки — на практике редко трогают, дефолт уже огромный.
Поднять сервер Minecraft за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверГеймплей и правила выживания
gamemode=survival
difficulty=normal
hardcore=false
pvp=true
force-gamemode=false
allow-flight=false
spawn-monsters=true
spawn-animals=true
spawn-npcs=true
| Параметр | Значения | Что меняет |
|---|---|---|
| gamemode | survival / creative / adventure / spectator | Режим по умолчанию для новых игроков |
| difficulty | peaceful / easy / normal / hard | Урон мобов, голод, спавн монстров |
| hardcore | true / false | При смерти игрок переходит в spectator навсегда (перекрывает gamemode) |
| pvp | true / false | Разрешён ли урон от игрока к игроку |
- force-gamemode — при
trueсервер принудительно возвращает игрока в дефолтный gamemode при каждом входе, даже если раньше он был переключён индивидуально (например, через плагин или/gamemode). Полезно, если не хотите, чтобы креатив-права "прилипали" к игроку между визитами. - allow-flight — разрешает полёт вне creative/spectator режимов. Без плагина и без модов, дающих легитимный полёт (элитры считаются отдельно), включение этого флага на survival фактически открывает лазейку для читеров с полётными хаками — не включайте его на survival без веской причины.
- spawn-monsters / spawn-animals / spawn-npcs — глобальные переключатели спавна враждебных мобов, животных и жителей деревень соответственно. Отключение
spawn-monstersрадикально меняет геймплей (фактически мирный режим без монстров, но в отличие отdifficulty=peacefulголод и другие механики остаются), аspawn-npcs=falseубирает деревенских жителей — иногда используют на технических серверах, где деревни не нужны и лишняя нагрузка от их AI ни к чему.
Игроки, whitelist и права доступа
max-players=20
white-list=false
enforce-whitelist=false
op-permission-level=4
function-permission-level=2
player-idle-timeout=0
- max-players — жёсткий лимит одновременного онлайна. Каждый лишний игрок — это сущности, которые сервер тикает, поэтому лимит стоит выставлять реалистично под тариф, а не "на вырост".
- white-list — включает проверку по белому списку (
whitelist.json). Если после включения игроков всё равно пускает или, наоборот, не пускает нужных — разбор типичных причин есть в статье про диагностику проблем с whitelist. - enforce-whitelist — нюанс: обычный
white-list=trueне выгоняет уже подключённых игроков, если их убрали из списка, пока они не переподключатся заново.enforce-whitelist=trueзаставляет сервер перепроверять список сразу и кикать тех, кого там больше нет — полезно как инструмент экстренной модерации, а не только фильтр на входе. - op-permission-level — уровень прав операторов по умолчанию (1-4, где 4 — полный доступ, включая
/stopи управление другими операторами). На публичных серверах с командой модераторов часто держат не максимальный уровень для рядовых операторов, оставляя4только владельцу. - function-permission-level — минимальный уровень прав для запуска датапак-функций (
.mcfunction) без явного указания источника. Актуально при кастомных датапаках с игровой логикой на сервере. - player-idle-timeout — через сколько минут неактивности сервер кикает AFK-игрока.
0— отключено. При ограниченном max-players полезно ставить небольшое значение (10-20), чтобы AFK-фермеры не занимали слоты часами.
Что из этого реально влияет на TPS
Отдельно про параметры, которые напрямую бьют по производительности — если сервер лагает, начинать разбор стоит именно отсюда, а не с косметики выше.
view-distance=10
simulation-distance=10
max-tick-time=60000
sync-chunk-writes=true
entity-broadcast-range-percentage=100
rate-limit=0
- view-distance / simulation-distance — сколько чанков сервер прогружает клиенту и сколько реально тикает (физика, мобы, механизмы). Это главный рычаг влияния на TPS, и тема настолько объёмная, что заслуживает отдельного разбора — диагностика через spark, лимиты сущностей и флаги JVM подробно разобраны в статье про оптимизацию модов и TPS на Minecraft-сервере.
- max-tick-time — сколько миллисекунд сервер ждёт, прежде чем решить, что тик "завис", и принудительно уронить процесс с watchdog-сообщением в логе. Дефолт
60000(60 секунд) — это защита от полного зависания, а не настройка производительности. Снижать его, чтобы "заставить сервер быть быстрее", бессмысленно и опасно: вы просто получите частые аварийные падения на любой длительной операции (например, генерации большого куска мира). Ставить-1(отключить watchdog) стоит только временно для отладки, не для продакшена. - sync-chunk-writes — включает синхронную запись чанков на диск. При
true(дефолт) сервер ждёт подтверждения записи перед тем, как продолжить, что немного безопаснее для целостности мира при внезапном отключении питания, но добавляет нагрузку на дисковый I/O в момент сохранения. На NVMe-хостинге разница обычно незаметна, а вот на медленном сетевом дискеsync-chunk-writes=falseможет ощутимо сгладить микро-фризы во время автосохранения — ценой чуть большего риска потери последних секунд данных при жёстком крэше. - entity-broadcast-range-percentage — на каком проценте от стандартной дальности видимости сервер оповещает клиентов о сущностях (мобы, дропнутые предметы, другие игроки). Снижение со
100до, скажем,60-70уменьшает объём сетевого трафика и клиентскую нагрузку на рендер большого количества сущностей одновременно — полезно на серверах с массовыми PvP-боями или фермами, где счётчик сущностей улетает за сотни. - rate-limit — ограничение числа пакетов в секунду от одного клиента, простая защита от простейших способов забить канал сервера мусорными запросами.
0— без лимита. На серверах, которые сталкивались с сетевым спамом или примитивными DDoS-подобными атаками на уровне протокола, имеет смысл выставить конкретное число (например,300) — но слишком низкое значение может резать легитимных игроков с нестабильным соединением.
RCON, query и редкие флаги
Последний блок — то, что почти никогда не трогают на старте, но что регулярно нужно при автоматизации сервера или расследовании инцидентов.
enable-rcon=false
rcon.password=
rcon.port=25575
broadcast-rcon-to-ops=true
enable-query=false
query.port=25565
enable-jmx-monitoring=false
log-ips=true
- enable-rcon / rcon.password / rcon.port — удалённая консоль: команды серверу извне без прямого доступа к stdin процесса. Обязателен, если сервер запущен через systemd (там нет интерактивной консоли) и нужно слать команды скриптами или ботами. Пароль должен быть длинным и уникальным — RCON без пароля или с дефолтным значением это открытая дверь к
/stopи бану любого игрока. - broadcast-rcon-to-ops — дублировать ли в чат операторам команды, выполненные через RCON. Полезно для прозрачности, если RCON использует не только владелец, но и автоматизация или боты.
- enable-query / query.port — протокол GameSpy-style запросов, который используют мониторинги статуса и списки серверов для получения онлайна и версии без полного подключения. Включайте только если реально пользуетесь внешним мониторингом — лишний открытый протокол это лишняя поверхность атаки.
- enable-jmx-monitoring — открывает JMX-интерфейс для мониторинга JVM (память, потоки, GC) сторонними инструментами вроде VisualVM. Нужен редко, в основном при глубокой диагностике на крупных проектах.
- log-ips — писать ли IP-адреса игроков в логи.
trueполезно для модерации (бан по IP, мультиаккаунты), но это персональные данные — на публичном сервере с долгим хранением логов стоит помнить про требования местного законодательства.
Поднять сервер Minecraft за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Нужно ли лезть во все эти параметры новичку, который только поднял первый сервер?
Нет. Для старта достаточно базового набора (порт, gamemode, difficulty, max-players, whitelist) — остальное подключается по мере роста сервера. Базовая установка с нуля разобрана в статье как поднять сервер Minecraft.
После смены server.properties сервер не подхватывает новые значения — почему?
Файл читается только при старте процесса. Изменение требует полного перезапуска (/stop и новый запуск, либо systemctl restart) — /reload большинство этих параметров не обновляет.
enforce-secure-profile ломает вход игрокам — что делать в первую очередь?
Проверьте, что у игрока актуальный лицензионный лаунчер и включена подпись сообщений в аккаунте Microsoft/Mojang. Если проблема массовая — временно false, но это осознанная уступка в защите от подмены сообщений в чате, не оставляйте так навсегда без причины.
Можно ли редактировать server.properties прямо во время работы сервера?
Технически да, но сервер прочитает изменения только при следующем запуске — правка на лету не влияет на уже запущенный процесс, спешить незачем, только не забудьте потом перезапустить.
Какие параметры нельзя менять после того, как мир уже сгенерирован?
level-seed и level-type не имеют смысла на существующем мире — они влияют только на генерацию новых чанков, старая карта не пересоздаётся. Нужен другой сид — это либо новый мир (смена level-name), либо стык разных ландшафтов на границе старого.