RE:NODE

Эксплуатация12 мин чтения

Как объявить игрокам о техработах

Когда и как предупреждать игроков о техработах на игровом сервере, команды для отсчёта в игре, автоматические предупреждения о перезапуске и что писать во время и после сбоя.

0 прочтений

Сообщайте игрокам о плановых работах минимум за сутки: точное время начала в их собственном часовом поясе, сколько это займёт, что изменится и нужно ли им что-то делать. Напомните за час, предупредите в игре за десять, пять и одну минуту и напишите снова в ту же минуту, как сервер вернётся. При внеплановом простое порядок обратный: признайте проблему в течение нескольких минут, даже если не знаете причины, публикуйте обновления с фиксированной периодичностью, пока всё не решится, никогда не обещайте время, которое не можете выдержать, и закончите короткой заметкой о том, что случилось. Игроки прощают простой гораздо охотнее, чем молчание, а большую часть предупреждений можно автоматизировать, чтобы они уходили, даже когда вы заняты.

О самих перезапусках - когда они помогают, а когда лишь прячут проблему - рассказано в статье Расписание перезапусков, которое помогает. Эта статья - о людях на другой стороне.

Плановому и внеплановому простою нужны разные сообщения#

Плановые работыВнеплановый сбой
ПримерыОбновление игры, обновление модов, вайп, смена тарифа, миграцияЦикл падений, сломанное обновление, инцидент у хостинга, атака
Первое сообщениеЗа несколько дней или за деньВ течение минут после обнаружения
Что вы знаетеВремя начала, длительность, измененияЧасто только то, что сервер лежит
ОбновленияНапоминание, начало, окончаниеС фиксированной периодичностью до исправления
Последнее сообщение«Сервер работает, вот что изменилось»«Сервер работает, вот что случилось»
ТонРутинный, краткийСпокойный, фактический, без догадок

Большинство сообществ хорошо справляется с первым столбцом и плохо - со вторым. Плановое обновление получает отполированное объявление; падение в 21:00 сорок минут не получает ничего, пока владелец его чинит, а к тому моменту дюжина людей уже спросила в чате и двое решили, что сервер умер. Решение - считать первое сообщение о сбое частью исправления, а не тем, что делается после него.

Что должно быть в каждом объявлении о техработах#

Пять фактов, в таком порядке, и ничего, что игроку пришлось бы вычислять самому:

  1. Что - «Обновление до новой версии игры», «Ежемесячный вайп карты», «Переезд на тариф побольше».
  2. Когда - время начала в часовом поясе каждого читателя, через timestamp в Discord.
  3. Сколько - реалистичная оценка, округлённая вверх. «Около 30 минут», когда вы ожидаете пятнадцать.
  4. Что изменится - для игроков, а не для вас. «Перед входом нужно обновить клиент», «Инвентари сохраняются, постройки вайпаются», «Ничего - это незаметно».
  5. Что делать - обновить игру, заново импортировать профиль модов, вообще ничего.
Planned maintenance template
Maintenance: game update to version 1.2When: <t:1767294000:F> (<t:1767294000:R>)Expected downtime: about 30 minutesWhat changes: you need to update your game before rejoining.Worlds, inventories and builds are not affected.What to do: update through your launcher, then join as usual.We will post here when the server is back.

Discord показывает <t:UNIX:F> как полные дату и время в часовом поясе каждого читателя, а <t:UNIX:R> - как живой обратный отсчёт. Unix-время можно получить в любом конвертере или командой date -d "2026-01-01 20:00 CET" +%s на машине с Linux. Остальные форматы - t и T для короткого и длинного времени, d и D для дат и f для короткой даты со временем.

Всё остальное опускайте. Игрокам не нужно знать, какой конфигурационный файл вы правите. Если есть причина, о которой стоит сказать, - «обновление исправляет вылет на мосту», - хватит одного предложения.

Когда объявлять#

ИзменениеПервое уведомлениеНапоминания
Обычный еженедельный или ночной перезапускЗакреплённое расписание, один разВ игре: за 5 и 1 минуту
Обновление игры или модов, меньше часаЗа 24 часаЗа 1 час, затем в игре за 10, 5, 1 минуту
Вайп или сбросМинимум за неделюЗа 24 часа, за 1 час, в игре
Миграция или долгие работыЗа несколько днейЗа 24 часа, за 1 час, в игре
Срочное исправление на работающем сервереКак только решеноВ игре минимум за 10, 5, 1 минуту

Обычные перезапуски не требуют объявления каждый раз. Опубликуйте расписание один раз - «сервер перезапускается каждый день в 05:00 CET», - закрепите его, а остальное пусть сделают предупреждения в игре. Упоминание по каждому плановому перезапуску учит игроков отключать уведомления канала объявлений, и потом они пропускают то единственное, которое важно.

С вайпами по-другому. Игроки планируют вокруг них, иногда неделями, и перенесённый или поздно объявленный вайп стоит больше доброй воли, чем почти что угодно ещё. Об этом в основном и рассказывает статья Вайпы без потери игроков.

Не начинайте работы в час пик. История онлайна показывает, когда на сервере тише всего - часто рано утром по часовому поясу сервера, - и именно тогда нужно проводить рутинные работы. Для сервера в Германии раннее утро по CET - это ещё и поздний вечер в Америке, так что проверьте, не играет ли в это время часть вашего сообщества.

Предупреждения в игре#

Объявление в Discord доходит до тех, кто читает Discord. Отсчёт в игре доходит до тех, кто вот-вот потеряет прогресс. В большинстве игр есть консольная команда, которая отправляет сообщение всем:

ИграСообщение всем из консоли
Minecraftsay Restarting in 5 minutes или tellraw @a с JSON-текстом
CS2, TF2, Garry's Mod, другие игры на Sourcesay Restarting in 5 minutes
7 Days to Diesay "Restarting in 5 minutes"
Project Zomboidservermsg "Restarting in 5 minutes"
FactorioВведите текст без слэша в начале; он уйдёт в чат от имени сервера
FiveMПлановый перезапуск в txAdmin автоматически предупреждает игроков перед каждым рестартом
ValheimВ ванильном сервере нет команды для оповещения; используйте Discord или серверный мод
Minecraft: a more visible warning
tellraw @a {"text":"Server restarting in 5 minutes - find somewhere safe.","color":"gold"}title @a actionbar {"text":"Restart in 1 minute","color":"red"}

В Palworld тоже есть админская команда Broadcast; в некоторых версиях она портит пробелы в сообщении, так что проверьте её, прежде чем полагаться. В любой игре отправляйте предупреждения с фиксированными интервалами - за десять минут, за пять, за одну - и говорите, сохранится ли прогресс. Фраза «мир сохранится перед перезапуском» останавливает людей, которые иначе в панике вышли бы посреди боя.

Последнее предупреждение должно уходить незадолго до остановки сервера, а не в сам момент остановки, а сама остановка должна быть чистой, с сохранением мира. Принудительное завершение мир не сохраняет. Разницу объясняет статья Корректное завершение и проверки работоспособности.

Автоматический отсчёт через расписание#

Перезапуск, который держится на том, что кто-то в 05:00 вручную печатает предупреждения, рано или поздно случится без него. Поместите всю последовательность в расписание: предупреждения, пауза, backup, перезапуск.

На RE:NODE вкладка Schedules принимает cron-выражение и упорядоченный список задач, у каждой из которых есть задержка: консольная команда, backup или действие с питанием. Ежедневный перезапуск с предупреждениями выглядит так:

Schedule: daily restart at 05:00, cron 0 5 * * *
1. Console command   say Restarting in 10 minutes. The world saves first.   delay 02. Console command   say Restarting in 5 minutes.                          delay 300 s3. Console command   say Restarting in 1 minute.                           delay 240 s4. Console command   save-all                                              delay 50 s5. Backup                                                                  delay 10 s6. Power action      restart                                               delay 0

Подставьте команды своей игры из таблицы выше; save-all - команда Minecraft, а другие игры либо сохраняются при чистой остановке, либо имеют собственную команду сохранения. Прежде чем доверять часу, проверьте, в каком часовом поясе работает расписание, и помните, что пять полей - это минута, час, день месяца, месяц и день недели; подробности и типичные ошибки - в статье Разбор cron-выражений. Другие расписания, которые стоит настроить, описаны в статье Плановые задачи, которые стоит завести.

Серверы FiveM обычно оставляют предупреждения о перезапуске txAdmin, чей плановый перезапуск сам оповещает игроков о предстоящих рестартах. Не запускайте два расписания перезапуска на одном сервере: второе перезапустит сервер, который только что поднялся.

Автоматизация покрывает и сообщение «сервер снова работает». Webhook, который пишет, когда сервер останавливается и запускается, даёт игрокам канал статуса, обновляющийся сам - в два часа ночи, когда никто не спит. Настройка описана в статье Webhooks Discord для статуса сервера.

Когда сервер упал без предупреждения#

Первое сообщение - про скорость, а не про информацию. В течение нескольких минут после обнаружения:

Outage: first message
The server is down. We know, and we are looking at it.Next update by <t:1767297600:t>, sooner if it is fixed.

Потом держите обещание. Публикуйте обновления с той периодичностью, которую назвали - раз в 30 минут вполне разумно, - даже если обновление звучит как «всё ещё работаем, новой информации нет». Канал, в котором час ничего не писали, читается как брошенный.

Чего не делать:

  • Не называйте время исправления, пока не знаете причину. «Вернёмся через 10 минут», превратившиеся в два часа, хуже, чем отсутствие оценки.
  • Не гадайте о причине публично. «Нас атакуют» или «хостинг лежит», сказанные наугад, часто оказываются неправдой, и забрать эти слова назад трудно.
  • Никого не обвиняйте - ни игрока, ни автора мода, ни хостинг. Даже когда это правда, это выглядит как попытка переложить ответственность.
  • Не замолкайте, пока чините. Если вам нужны обе руки, попросите доверенного члена команды публиковать обновления.

Сначала проверьте свою сторону: лог консоли и графики ресурсов обычно показывают, цикл ли это падений, лимит памяти или что-то за пределами сервера. Как их читать, описано в статье Почему игровой сервер постоянно перезапускается. RE:NODE публикует страницу статуса по адресу /status - туда стоит заглянуть, прежде чем решать, на чьей стороне проблема, вашей или хостинга. Кроме того, на RE:NODE сервер, который падает три раза за час, получает предупреждение на своей странице и автоматический тикет в поддержку, так что цикл падений не останется незамеченным, даже если вы спите.

Когда сервер вернулся: заключительное сообщение#

Заключительное сообщение - то, которое игроки запоминают. Публикуйте его, как только сервер начал принимать подключения, а не после того, как закончили наводить порядок.

Back online
The server is back. Downtime was about 45 minutes.What happened: an update to a plugin failed to load and stopped the server.What we did: rolled it back from the backup taken before the update.Lost progress: none - the backup was from 10 minutes before the restart.What changes: the plugin stays on the old version until it is fixed upstream.

Для плановых работ заключительное сообщение - это список изменений: что поменялось, что нужно сделать игрокам и что теперь ведёт себя иначе. Для сбоя - короткая заметка по итогам инцидента: что случилось, что вы сделали, потеряно ли что-нибудь и что вы меняете, чтобы это не повторилось. От трёх до пяти предложений. Подробный технический разбор можно выложить в отдельный канал для тех, кому интересно.

Если прогресс потерян, скажите прямо, сколько. «Всё, что было после 20:40, пропало» лучше, чем если люди обнаружат это сами. Восстановление из backup означает, что всё, что произошло после этого backup, потеряно, - поэтому и важны backup-копии незадолго до каждого окна работ; почему восстановление тоже нужно отрабатывать, объясняет статья Backup-копии, из которых действительно можно восстановиться.

Большие изменения: смена версии, вайпы и переезды#

Некоторые работы меняют то, что игрокам нужно сделать, чтобы продолжить играть, и таким объявлениям нужно больше, чем время и длительность.

Смена версии - крупное обновление игры, новая версия сборки модов, релиз Minecraft - означает, что каждый игрок должен обновить клиент, а игрокам с модами может понадобиться новый профиль или сборка. Укажите точно, какая версия нужна, дайте ссылку на сборку или профиль и скажите, переносится ли мир. Если моды ещё не догнали патч игры, сообщите, что сервер намеренно остаётся на старой версии, и примерно когда вы вернётесь к этому вопросу; иначе игроки с автообновляемыми лаунчерами решат, что вы просто забыли.

Вайп требует самого раннего уведомления: что вайпается (карта, инвентари, чертежи, персонажи), что переносится, точное время и можно ли будет скачать старый мир или зайти в него. Опубликуйте это минимум за неделю, повторите за 24 часа и за час и никогда не переносите вайп втихую.

Переезд на новый сервер или адрес требует, чтобы новый адрес был опубликован до того, как старый перестанет работать, и, если получится, чтобы какое-то время работали оба. Доменное имя, которое вы перенаправляете, вместо голого IP делает переезд для игроков почти незаметным. Порядок действий, включая тайминг DNS, описан в статье Как перенести сервер и не потерять игроков.

Смена тарифа на RE:NODE - простой случай: смена тарифа меняет лимиты у уже существующего сервера, а не пересоздаёт его, так что адрес и мир остаются прежними. Перезапуск при этом всё равно нужен, и он заслуживает обычного предупреждения в игре.

Куда публиковать объявления#

Один источник истины, продублированный в других местах:

  • Канал объявлений в Discord - это источник. Сделайте его каналом типа Announcement на Community-сервере, и другие Discord-серверы - партнёрский сервер, список серверов вашего альянса - смогут на него подписаться.
  • В игре - для всего, что произойдёт в ближайшие десять минут.
  • MOTD или описание сервера - для известной даты предстоящего вайпа.
  • Мониторинги - если долгий простой иначе несколько дней показывал бы вас выключенными. Как держать запись актуальной, описано в статье Мониторинги и сайты голосования.
  • Канал статуса, который обновляет webhook, - для событий «запущен» и «остановлен».

Держите канал объявлений только для объявлений. Если игроки могут там отвечать, он превращается в канал поддержки, и следующее уведомление тонет. Направляйте ответы в канал поддержки или в общий чат.

FAQ#

За сколько времени объявлять о техработах?

Минимум за 24 часа для короткого обновления, за неделю или больше для вайпа или миграции, с напоминанием за час и предупреждениями в игре в последние десять минут. Для обычных ежедневных перезапусков достаточно один раз опубликовать расписание и каждый раз давать предупреждения в игре.

В какое время суток проводить работы?

Когда онлайн минимален - это видно по истории игроков. Для сервера в Германии обычно это раннее утро по CET, но проверьте, нет ли части вашего сообщества в часовом поясе, где это прайм-тайм.

Как предупредить игроков в игре перед перезапуском?

Используйте консольную команду оповещения вашей игры - say в Minecraft и играх на Source, servermsg в Project Zomboid - за десять, пять и одну минуту. Поместите предупреждения в плановую задачу с задержками, чтобы они срабатывали, даже когда за клавиатурой никого нет.

Называть ли сроки во время сбоя?

Только когда вы знаете причину и способ исправления. До этого обещайте время следующего обновления, а не время исправления, и держите это обещание, даже если в обновлении нет ничего нового.

Нужно ли объяснять после сбоя, что пошло не так?

Коротко - да. Два-три предложения о том, что случилось, что потеряно и что вы меняете, укрепляют доверие гораздо быстрее, чем молчание. Никого не обвиняйте и избегайте технических подробностей, которые большинство игроков читать не станет.

Нужно ли компенсировать игрокам простой?

Для бесплатного сервера сообщества этого не ждут, а обещание создаёт прецедент. Небольшой внутриигровой жест после долгого сбоя - приятная мелочь, но понятное объяснение и отсутствие повторений значат гораздо больше.


Комментарии

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

0/2000