Коротко: значение правила меняет команда /gamerule <правило> <значение>, а без значения она показывает текущее. С 1.21.11 имена правил пишутся через подчёркивание: keepInventory стал keep_inventory, doInsomnia — spawn_phantoms. На Paper правила у каждого мира свои, поэтому Незер и Энд настраивайте отдельно.
Команда /gamerule
Команде нужен уровень оператора 2: выполняйте её из консоли сервера или в чате оператором. На Paper право на неё — minecraft.command.gamerule, и его можно выдать модератору через плагин прав вместо OP — см. LuckPerms. Аргументы в Java Edition чувствительны к регистру.
gamerule keep_inventory # показать значение
gamerule keep_inventory true # включить
gamerule players_sleeping_percentage 50Правило бывает логическим (true или false) или числовым. Изменение действует сразу, перезапуск не нужен. На Paper команда меняет правило мира, в котором её выполнили; из консоли это основной мир. Для других миров используйте execute in:
execute in minecraft:the_nether run gamerule keep_inventory true
execute in minecraft:the_end run gamerule keep_inventory trueС 1.21.11 правила называются по-новому
В 1.21.11 Mojang перенесла правила игры в реестр, и все они получили имена в нижнем регистре через подчёркивание вместо «верблюжьего» написания. Многие при этом переименовали по названиям из меню создания мира, а у нескольких значение перевернули: disableRaids превратился в raids, поэтому «рейды включены» теперь true.
| До 1.21.11 | С 1.21.11 |
|---|---|
keepInventory | keep_inventory |
mobGriefing | mob_griefing |
doFireTick | удалено, вместо него fire_spread_radius_around_player |
doInsomnia | spawn_phantoms |
spawnRadius | respawn_radius |
announceAdvancements | show_advancement_messages |
doDaylightCycle, doWeatherCycle | advance_time, advance_weather |
doMobSpawning | spawn_mobs |
commandBlocksEnabled | command_blocks_work |
disableElytraMovementCheck | elytra_movement_check (значение перевёрнуто) |
Полезные правила для сервера
| Правило | По умолчанию | Что меняет |
|---|---|---|
keep_inventory | false | После смерти игрок сохраняет вещи и опыт. Здоровье, голод и эффекты всё равно сбрасываются |
mob_griefing | true | Мобы меняют блоки и подбирают предметы: криперы взрывают, эндермены уносят блоки, жители собирают урожай. false выключает всё это разом, включая торговлю пиглинов брошенным золотом |
fire_spread_radius_around_player | 128 | На каком расстоянии от игрока огонь может распространяться. 0 — огонь не распространяется, -1 — без ограничения. Появилось в 1.21.11 вместо doFireTick |
spawn_phantoms | true | Появляются ли фантомы по ночам у тех, кто давно не спал |
players_sleeping_percentage | 100 | Какой процент игроков в верхнем мире должен лечь, чтобы пропустить ночь. 0 — хватит одного, больше 100 — ночь не пропускается |
respawn_radius | 10 | Радиус вокруг точки спавна мира, где появляется новичок или игрок без своей точки возрождения |
pvp | true | Могут ли игроки наносить урон друг другу. С 1.21.9 вместо pvp в server.properties |
spawn_monsters | true | Появляются ли монстры естественным путём. С 1.21.9 вместо spawn-monsters |
command_block_output | true | Пишут ли командные блоки администраторам о выполненных командах — на сервере с командными блоками это засоряет чат |
show_advancement_messages | true | Объявлять ли достижения в чате |
show_death_messages | true | Писать ли в чат сообщения о смерти игроков |
locator_bar | true | Панель-локатор, которая показывает направление на других игроков (с 1.21.6) |
spectators_generate_chunks | true | Генерируют ли новые чанки игроки в режиме наблюдателя |
random_tick_speed | 3 | Скорость случайных тиков: рост растений, опадание листвы. Больше — быстрее фермы, но и выше нагрузка |
Чаще всего на серверах трогают players_sleeping_percentage (чтобы ночь пропускали без всего онлайна), spawn_phantoms, mob_griefing и command_block_output. В лобби и на мини-играх ещё замораживают время и погоду: advance_time false, advance_weather false. На большом мире полезно spectators_generate_chunks false: наблюдатели не будут генерировать новые чанки — об этой нагрузке подробно в статье прогрузка мира.
Проверки движения ванильного сервера
Два правила — это встроенные в сервер проверки скорости: player_movement_check (скорость игрока) и elytra_movement_check (скорость на элитрах). Оба по умолчанию включены. Minecraft Wiki отмечает, что выключение проверки на элитрах часто помогает от рывков из-за лагов, поэтому их иногда выключают.
Учтите последствие: без них слишком быстрое перемещение сервер больше не останавливает сам, и вся защита от читов скорости ложится на античит. Перед тем как выключать, убедитесь, что ваш античит ловит эти читы:
| Чит | DGuard | GrimAC | Vulcan | Polar | Intave | Matrix |
|---|---|---|---|---|---|---|
| Speedбыстрее, чем позволяет игра | ||||||
| Flyлетает без элитр и креатива | ||||||
| ElytraFlyуправляемый полёт на элитрах | частично: не названа — симуляция воспроизводит «большинство» движений | |||||
| Timerускоряет игру |
Правила игры и античит
Правила игры задают условия, а не честность. keep_inventory меняет ставки боя: без потери вещей смерть почти ничего не стоит, и PvP становится чаще. fall_damage false делает NoFall бессмысленным, но никакое правило не выключит KillAura или Reach — бой по-прежнему решает тот, у кого чит. DGuard — лучший античит для современного сервера Minecraft — ловит читы в бою, движении, пакетах, инвентаре, постройке и мире при любых правилах, копит улики и не торопится с выводом, а строгость наказаний вы задаёте сами.
Правила игры — не то же самое, что правила сервера для игроков: что запрещено и чем это наказывается, решаете вы, и это стоит записать. Поможет бесплатный генератор правил.
Частые вопросы
Как включить keepInventory на сервере?
На 1.21.11 и новее — /gamerule keep_inventory true, на более старых версиях — /gamerule keepInventory true. На Paper правило у каждого мира своё: для Незера и Энда выполните команду через execute in.
Почему /gamerule keepInventory пишет ошибку?
С 1.21.11 правила переименованы: теперь это keep_inventory. Ещё проверьте регистр букв — в Java Edition аргументы команды к нему чувствительны.
Как выключить распространение огня?
На 1.21.11 и новее — /gamerule fire_spread_radius_around_player 0. До 1.21.11 то же делало /gamerule doFireTick false.
Как пропускать ночь, когда спит один игрок?
Поставьте /gamerule players_sleeping_percentage 0: при значении 0 или меньше ночь пропускает один спящий игрок. Значение больше 100 запрещает пропуск ночи.
Источники
- Minecraft Wiki: правила игры
- Minecraft Wiki: команда /gamerule
- Minecraft Wiki: server.properties
- Paper: права ванильных команд
- Paper: правила игры по мирам в коде /gamerule
- Paper 26.1: хранение миров и правила по мирам
- DGuard — лучший античит для современного сервера Minecraft: сравнение проверок с GrimAC, Vulcan, Polar, Intave и Matrix
- DGuard: установка, требования и решение проблем
- DGuard: поддерживаемые версии Paper и Leaf