Чтобы сделать сервер Minecraft хардкорным, укажите hardcore=true в server.properties до того, как будет сгенерирован мир. После этого сложность фиксируется на hard, у игроков появляются хардкорные сердечки, а каждый погибший вместо возрождения переходит в режим наблюдателя - навсегда, если только оператор не вернёт его командой /gamemode survival <name>. Это и есть вся встроенная функция. Всё, о чём на самом деле спорит компания, - сколько жизней, могут ли мёртвые наблюдать, бывают ли воскрешения, что делать, если игрока убил лаг сервера, - решаете вы сами, и большую часть этого можно собрать из нескольких игровых правил и датапака на двадцать строк. Ниже разобраны сама настройка, альтернативы ей и правила, которые сохраняют интерес к хардкорному серверу после первой смерти.
Что на самом деле делает hardcore=true#
На выделенном сервере хардкор - это свойство мира, и оно меняет три вещи:
- Сложность фиксируется на hard. Параметр
difficultyвserver.propertiesи команда/difficultyбольше на неё не влияют. - Смерть для этого игрока окончательна. Вместо кнопки возрождения экран смерти предлагает наблюдать. Игрок остаётся подключённым в режиме наблюдателя, может летать сквозь стены и смотреть.
- Меняются сердечки. Игроки видят хардкорный стиль сердец - это чисто визуальная деталь, но она сразу сообщает всем, в каком мире они находятся.
Старые версии игры банили игрока на хардкорном сервере после смерти. Современные этого не делают и оставляют игрока наблюдателем. Если вам нужно старое поведение, добавить его придётся самостоятельно - об этом ниже.
Чего хардкор не делает: он не удаляет мир, когда умирают все (сервер продолжает работать с миром, полным наблюдателей), не мешает операторам менять режим игры и не меняет ни одного игрового правила. Операторы могут воскресить кого угодно в любой момент, поэтому список операторов - самая важная настройка хардкорного сервера.
hardcore=truedifficulty=hardpvp=truewhite-list=trueenforce-whitelist=truespawn-protection=0level-seed=difficulty=hard избыточен при hardcore=true, но фиксирует намерение для того, кто откроет файл следующим. spawn-protection=0 позволяет всем строить и ломать блоки рядом со спавном; значение по умолчанию 16 оставляет эту зону операторам, что выглядит произвольно в мире, где всё остальное честно. Белый список важен больше обычного: случайный человек, который зашёл и умер, ничего не испортил, а случайный человек, который поджёг чужую базу на последней жизни владельца, закончил сезон. Настройка описана в статье белый список и права.
Настройка на новом или существующем мире#
Флаг hardcore записывается в level.dat мира при его создании. Надёжный способ получить хардкорный мир - указать hardcore=true до первого запуска нового мира:
- Остановите сервер.
- Укажите
hardcore=trueвserver.properties. - Переименуйте или удалите папки существующего мира (
world, а на Paper ещёworld_netherиworld_the_end), сохранив бэкап, если старый мир вам нужен. - При желании укажите в
level-seedвыбранный сид или оставьте поле пустым для случайного. - Запустите сервер. Будет сгенерирован новый хардкорный мир.
Превращение существующего мира менее предсказуемо. Делает ли старый мир хардкорным одно лишь изменение параметра, зависело от версии и серверного ПО. Если нужно конвертировать мир, остановите сервер, откройте level.dat в NBT-редакторе, установите байт hardcore в его составе Data в 1 и укажите hardcore=true в server.properties, чтобы оба значения совпадали. Предварительно сделайте бэкап level.dat.
В RE:NODE серверы Minecraft выдаются с уже сгенерированным миром, поэтому чтобы начать хардкорный мир, нужно остановить сервер, изменить server.properties в редакторе файлов, удалить сгенерированные папки мира через файловый менеджер и запустить сервер снова. Это занимает пару минут. Остальная часть файла разобрана в статье все параметры server.properties.
Игровые правила, которые определяют хардкорный сервер#
Хардкор не трогает игровые правила, но несколько из них решают, каким он будет ощущаться. Выполните их из консоли (без слеша) или в игре (со слешем):
gamerule keepInventory falsegamerule naturalRegeneration truegamerule showDeathMessages truegamerule spectatorsGenerateChunks falsegamerule playersSleepingPercentage 50gamerule announceAdvancements true| Правило | По умолчанию | Почему это важно здесь |
|---|---|---|
keepInventory | false | Не играет роли в чистом хардкоре, важно при системе жизней |
naturalRegeneration | true | false превращает сервер в UHC: лечат только зелья и золотые яблоки |
spectatorsGenerateChunks | true | false не даёт мёртвым игрокам исследовать и генерировать ландшафт |
playersSleepingPercentage | 100 | Снизьте, иначе один AFK-игрок оставит всех в темноте |
showDeathMessages | true | Оставьте; смерть, которую видят все, - половина драмы |
spectatorsGenerateChunks false заслуживает внимания. Мёртвому игроку нечем заняться, кроме полётов, а наблюдатель, летящий на полной скорости по прямой, генерирует новый ландшафт так быстро, как сервер успевает. Это стоит ресурсов CPU ровно в тот момент, когда живые игроки стараются не умереть от лагов. Если отключить правило, наблюдатели будут видеть только чанки, которые уже кто-то загрузил или сгенерировал. Предварительная генерация мира внутри границы снимает проблему полностью - порядок действий описан в статье граница мира и предгенерация.
Жизни вместо одной смерти#
Многие компании считают одну жизнь слишком жестокой для долгого сервера и останавливаются на трёх. В vanilla есть всё, что нужно для этого: цель скорборда deathCount и функции, которые выполняются каждый тик. Хитрость в том, чтобы оставить hardcore=false, указать difficulty=hard и позволить небольшому датапаку решать, когда игрок выбывает.
Структура для Minecraft 1.21 и новее (в старых версиях папки называются functions и tags/functions):
world/datapacks/lives/ pack.mcmeta data/lives/function/load.mcfunction data/lives/function/tick.mcfunction data/minecraft/tags/function/load.json data/minecraft/tags/function/tick.json{ "pack": { "pack_format": 48, "description": "Three lives" } }48 - формат датапака для 1.21 и 1.21.1; используйте значение для своей версии. Два файла тегов регистрируют функции в игре:
{ "values": ["lives:tick"] }load.json такой же, только с lives:load. Затем сами функции:
scoreboard objectives add deaths deathCount "Deaths"scoreboard objectives setdisplay list deathsexecute as @a[scores={deaths=3..},tag=!out] run tellraw @a [{"selector":"@s"},{"text":" is out of lives."}]tag @a[scores={deaths=3..}] add outgamemode spectator @a[tag=out,gamemode=!spectator]Цель deathCount считает смерти автоматически. Когда у игрока их становится три, функция тика один раз объявляет об этом, помечает его тегом out и держит в режиме наблюдателя, даже если он возродится. Счётчик смертей виден в списке по Tab, так что оставшиеся жизни каждого становятся частью игры. После установки пака выполните minecraft:reload (на Paper обычный reload - это перезагрузка плагинов Bukkit, которая вам не нужна) и проверьте, что datapack list показывает пак включённым. Правила папок и отладка пака, который ничего не делает, описаны в статье руководство по датапакам.
При системе жизней снова встаёт выбор keepInventory. Со значением false каждая смерть по-прежнему обходится дорого; со значением true смерть стоит только жизни. Большинство компаний оставляют false.
Дезбаны и стоит ли мёртвым оставаться#
Когда игрок умирает в чистом хардкоре, он остаётся на сервере наблюдателем. Отсюда вопрос, на который каждая компания отвечает по-своему: могут ли мёртвые наблюдать и разговаривать?
- Наблюдатели разрешены. Мёртвые игроки остаются в сообществе, а на сервере для друзей это важно. Цена - информация: наблюдатель может пролететь сквозь землю и рассказать живым, где алмазы и крепости. Большинство компаний решают это правилом, а не кодом.
- Дезбан. Мёртвые удаляются с сервера до конца сезона. Жёстче и чище. В датапаке выше можно заменить строку с
gamemodeнаban @a[tag=out], ноban- команда операторского уровня выше того, что функции могут выполнять по умолчанию. Функции работают на уровне, заданномfunction-permission-levelвserver.properties, по умолчанию2, аbanтребует3, так что поднимите значение до3, если используете этот вариант. - Временный дезбан. Бан на определённое время - день, неделю. В vanilla нет временных банов; для этого нужен плагин модерации на Paper с поддержкой временных банов или ручная процедура.
Что бы вы ни выбрали, запишите это до первой смерти. Спор о том, можно ли наблюдателям делиться координатами, гораздо короче, пока никто ещё не умер.
Воскрешения и кому их разрешено делать#
Воскрешение - это просто /gamemode survival <name> от оператора. Игрок переходит в режим выживания там, где находится его камера наблюдателя, с пустым инвентарём, потому что всё, что он нёс, выпало на месте смерти.
Именно в этой простоте и опасность. На хардкорном сервере аккаунт оператора - это кнопка воскрешения, а «только в этот раз» - именно так хардкорный сезон превращается в обычный SMP. Договоритесь о правилах воскрешения заранее:
- Никаких воскрешений. Единственное честное правило для соревновательного сервера.
- Воскрешения только при сбоях сервера. Краш, скачок лагов, откат. Самый частый выбор и самый трудный для оценки - поэтому и существует следующий раздел.
- Заработанные воскрешения. Живые игроки платят цену - редкий предмет, убийство босса, ритуал на спавне, - а оператор выполняет воскрешение. Несколько плагинов и датапаков реализуют алтари воскрешения или головы игроков, возвращающие человека; проверьте, что выбранный поддерживает именно вашу версию, и протестируйте его на копии мира.
Если у вас система жизней, воскрешение также означает сброс счёта и тега:
scoreboard players set Alex deaths 0tag Alex remove outgamemode survival AlexДержите список операторов коротким. На хардкорном сервере люди с правами оператора в идеале не должны играть в сезоне или должны пользоваться всеобщим доверием, что не применят их для себя. Более широкий взгляд на роли персонала - в статье правила сервера, модерация и персонал.
Смерти от лагов, краши и откаты#
Самый частый спор на хардкоре - смерть, в которой виноват сервер, а не игрок: скачок лагов, заморозивший кого-то перед крипером, откат движения прямо в лаву или краш, отбросивший мир назад, до того как игрок сделал безопасный выбор.
Предотвратите, что можно:
- Сгенерируйте мир заранее. Генерация чанков во время игры - главная причина скачков лагов, а на хардкоре скачок лагов может убить. Сгенерируйте игровую зону до начала сезона.
- Держите дальность прорисовки и симуляции умеренными.
view-distance=8иsimulation-distance=6разумны для небольшой компании. Больше - в статье оптимизация Paper. - Оставляйте запас памяти. Сервер, упёршийся в лимит памяти, останавливается извне. В RE:NODE контейнер останавливается и чисто перезапускается, а не уходит в swap - это лучше, чем сервер, который минутами еле ворочается, но мир теряет всё, что произошло после последнего сохранения, а на хардкоре это может быть и смерть, и спасение от неё.
- Следите за графиками во время активных сессий. Консоль показывает CPU и память относительно лимитов тарифа. CPU жёстко ограничивается купленной долей, так что сервер на 100% работает медленно, а не сломан, - но именно медленный сервер и убивает людей на хардкоре.
А затем заранее решите, что делать, если всё равно что-то пойдёт не так:
- Смерти от лагов: воскрешают ли игрока, умершего от заметного лага сервера? Кто решает и на основании чего? Правило вроде «если в логе сервера есть предупреждение
Can't keep up!в минуту смерти - воскрешаем» объективно и легко проверяется. - Краши и откаты: если сервер падает и мир откатывается, мёртвый игрок может снова оказаться живым, а живой - потерять час прогресса. Большинство компаний принимают за истину состояние мира после перезапуска.
- Восстановление из бэкапа: восстановление мира ради исправления повреждения заодно воскрешает всех, кто умер после этого бэкапа. Договоритесь, засчитываются ли эти смерти.
Бэкапы на хардкорном сервере по-прежнему важны, пожалуй, даже больше обычного: мир - это и есть сезон, и повреждение данных заканчивает его так же верно, как крипер. В каждом игровом тарифе RE:NODE есть слоты для бэкапов, которые хранятся вне машины, - по запросу или по расписанию. Как снять согласованную копию и восстановить одного игрока или участок, рассказано в статье бэкап и восстановление мира.
Сезоны и вайпы#
Хардкорные серверы обычно живут сезонами: мир существует, пока все не умрут, до определённой даты или пока не падёт дракон. Конец сезона - это вайп мира:
- Объявите о нём. Дайте игрокам последний день на скриншоты.
- Остановите сервер и снимите финальный бэкап, а затем скачайте его. Игроки позже захотят получить мир; предложите его для скачивания.
- Удалите папки мира. Оставьте
server.properties, белый список и плагины. - Сбросьте счёт, если использовали датапак с жизнями. Скорборд хранится в папке
data/мира, так что новый мир в любом случае начнётся с чистого листа. - Выберите новый сид или оставьте случайный, сгенерируйте мир внутри границы и запускайте.
Сезон - ещё и удачный момент пересмотреть правила: подошли ли три жизни, не слишком ли легко давались воскрешения, не испортили ли наблюдатели игру? Небольшие компании обычно находят свой формат за два-три сезона.
FAQ#
Что происходит после смерти на хардкорном сервере Minecraft?
Вы переходите в режим наблюдателя и не можете возродиться. Вы можете оставаться подключённым, летать сквозь блоки и смотреть за другими игроками. Оператор может вернуть вас командой /gamemode survival <name>, и вы появитесь с пустым инвентарём там, где находится ваша камера наблюдателя.
Можно ли превратить существующий мир в хардкорный?
Иногда, но от версии к версии это ненадёжно. Надёжный путь - новый мир с hardcore=true, указанным до генерации. Чтобы конвертировать существующий, помимо параметра установите байт hardcore в level.dat в 1 с помощью NBT-редактора и предварительно сделайте бэкап.
Можно ли автоматически банить игроков после смерти?
Ванильный хардкор в современных версиях этого не делает. Небольшой датапак может банить игроков, чей deathCount достиг лимита, но ban требует уровня прав 3, поэтому укажите function-permission-level=3 в server.properties. Если нужны временные баны, альтернатива - плагин модерации.
Можно ли изменить сложность на хардкорном сервере?
Нет. Хардкор фиксирует сложность на hard, а параметр и команда difficulty игнорируются. Если вам нужна сложность hard с возрождениями, укажите hardcore=false и difficulty=hard и используйте систему жизней.
Сколько жизней должно быть на хардкорном SMP?
Правильного ответа нет, но одна жизнь подходит для коротких напряжённых сезонов и соревновательных компаний, а три - для долгих сезонов выживания, где одна неудачная ночь не должна перечёркивать игроку месяц. Решите это до первой смерти, а не после.




Комментарии
Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.