▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/ServerReplay
ServerReplay

ServerReplay

ServerReplay - это полностью серверный мод для Minecraft Fabric, который позволяет записывать реплеи в формате Replay Mod или Flashback. Записывайте действия игроков и целые области чанков без установки клиентских модов.

Оцените первым
150.4K
226

ServerReplay - мод для Майнкрафт, который решает проблему записи игрового процесса на сервере. В отличие от клиентского Replay Mod, который требуется устанавливать каждому игроку, ServerReplay работает на стороне сервера и может записывать сразу нескольких игроков или статичные области чанков. Это особенно удобно для создания трейлеров, обзоров, замедленной съёмки и автоматического архивирования событий.

Почему именно серверная запись?

Запись на стороне сервера даёт ряд преимуществ по сравнению с клиентскими решениями:

  • Запись статичных чанков. Можно указать точный размер области (не ограничен дистанцией просмотра). Записанные чанки могут быть выгружены без влияния на реплей - нет мерцания чанков и лишней нагрузки на сервер. Можно приостанавливать и возобновлять запись в зависимости от загрузки чанков или присутствия игроков.
  • Запись отдельных игроков. Игрокам не нужно устанавливать Replay Mod или Flashback. Вы можете записывать все точки обзора одновременно. Работу записей можно автоматизировать через конфигурацию.
  • Гибкий доступ. Запись могут запускать операторы (или игроки с правом server-replay.commands.replay) в любой момент.

Есть и ограничения:

  • В записях чанков могут отсутствовать некоторые элементы (например, кастомные босс-бары).
  • Запись от лица игрока может быть не на 100% идентична записи клиентского Replay Mod или Flashback.
  • Мод не рассчитан на сильно моддинговые сервера - сложные моды со своими пакетами могут быть несовместимы.

Как это работает

Для работы нужен Fabric Loader, Fabric API и Fabric Kotlin. Мод умеет записывать в двух режимах:

  • По игрокам - запись привязана к конкретному игроку и ведётся в пределах серверной дистанции просмотра.
  • По чанкам - запись статичной области, которая не зависит от того, находится ли там кто-то.

Быстрый старт

Запись игроков

Начните запись командой:

/replay start players <ник(и)>

Примеры:

/replay start players senseiwells
/replay start players @a
/replay start players @a[gamemode=survival]

Запись автоматически остановится, если игрок вышел или сервер выключился. Можно остановить вручную:

/replay stop players <ник(и)> <сохранить?>
/replay stop players senseiwells false

Файлы сохраняются в папку, указанную в player_recording_path (по умолчанию ./recordings/players/<uuid>/<дата-время>.mcpr). Готовый файл можно положить в ./replay_recordings на клиенте и открыть через Replay Mod.

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

Запись чанков

Примечание: Minecraft-клиент не рендерит самые внешние чанки. Чтобы записать видимую область, добавьте один чанк по краям. Например, для области от -5,-5 до 5,5 записывайте от -6,-6 до 6,6.

Команда для запуска:

/replay start chunks from <FromX> <FromZ> to <ToX> <ToZ> in <измерение?> named <название?>

Примеры:

/replay start chunks from -5 -5 to 5 5 in minecraft:overworld named MyChunkRecording
/replay start chunks from 54 67 to 109 124
/replay start chunks from 30 30 to 60 60 in minecraft:the_nether

Удобно задавать радиус вокруг чанка:

/replay start chunks around <chunkX> <chunkZ> radius <радиус> in <измерение?> named <название?>
/replay start chunks around 0 0 radius 5

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

Остановка записи чанков - по имени:

/replay stop chunks named "Perimeter Recorder" false
/replay stop chunks named MyChunkRecording

Файлы сохраняются в chunk_recording_path (по умолчанию ./recordings/chunks/<название>/<дата-время>.mcpr).

Выбор формата записи

ServerReplay поддерживает два формата: Replay Mod и Flashback. По умолчанию используется Replay Mod, но можно переключить командой:

/replay encoding default set flashback
/replay encoding default set replay_mod

Можно запустить две записи одного игрока параллельно - одну в формате Flashback, другую в Replay Mod. Для чанков каждому рекордеру нужно дать уникальное имя.

Просмотр реплеев на сервере

После завершения записи можно просмотреть реплей прямо на сервере - игрок будет временно удалён из основного мира (считается офлайн). Сервер запускает параллельный процесс, который отправляет клиенту пакеты. Влияния на производительность почти нет.

Нажмите на зелёный текст в чате после завершения записи, чтобы сразу открыть реплей. Либо используйте команды:

/replay view players <uuid> <дата-время>
/replay view chunks <название> <дата-время>

Пример:

/replay view player "d4fca8c4-e083-4300-9a73-bf438847861c" "2024-05-11--19-19-55"
/replay view chunks "Chunks (183, 166) to (203, 186)" "2024-05-11--19-19-55"

При просмотре доступны команды:

  • /replay view pause - пауза
  • /replay view unpause - продолжить
  • /replay view speed <множитель> - скорость
  • /replay view restart - перезапустить
  • /replay view close - закрыть и вернуться на сервер
  • /replay view progress <hide|show> - показать/скрыть прогресс-бар

Если игрок отключится во время просмотра, при повторном входе он вернётся обратно на сервер.

Скачивание реплеев

Если в конфиге включено allow_downloading_replays и настроен IP скачивания, можно получить URL для загрузки файла:

/replay download players <uuid> "дата-время"
/replay download chunks "название" "дата-время"

Появится ссылка в чате - кликните по ней, чтобы скачать.

Команды

Для использования команд нужно быть оператором уровня 4 или иметь право server-replay.commands.replay (если используется мод прав, например LuckPerms).

  • /replay start players <игроки> - начать запись для указанных игроков.
  • /replay start chunks from <X1> <Z1> to <X2> <Z2> in <измерение?> named <название?> - начать запись области чанков.
  • /replay start chunks around <X> <Z> radius <радиус> in <измерение?> named <название?> - запись области вокруг чанка.
  • /replay stop players <игроки> <сохранить?> - остановить запись игроков (по умолчанию сохраняет).
  • /replay stop chunks from <X1> <Z1> to <X2> <Z2> in <измерение?> <сохранить?> - остановить запись области.
  • /replay stop chunks named <название> <сохранить?> - остановить запись по имени.
  • /replay stop [chunks|players] all <сохранить?> - остановить все записи чанков/игроков.
  • /replay status - статус: какие записи активны, их продолжительность и размер.
  • /replay reload - перезагрузить конфигурацию.
  • /replay encoding default set <тип> - установить формат (flashback или replay_mod).

Настройка конфига

Файл конфигурации: ./config/server-replay/config.json. По умолчанию он выглядит так:

{
  "default_encoding": "replay_mod",
  "world_name": "World",
  "server_name": "Server",
  "chunk_recording_path": "./recordings/chunks",
  "player_recording_path": "./recordings/players",
  "player_recording_name": "{uuid}",
  "max_file_size": "0 B",
  "restart_after_max_file_size": false,
  "max_duration": "0s",
  "restart_after_max_duration": false,
  "recover_unsaved_replays": true,
  "delete_replays_after_duration": "0s",
  "log_deleted_replays": true,
  "chunk_recorder_load_radius": -1,
  "chunk_recording_strategy": "always",
  "pause_notify_players": true,
  "notify_admins_of_status": true,
  "include_resource_packs": true,
  "ignore_custom_payloads": false,
  "ignore_sound_packets": false,
  "ignore_light_packets": true,
  "ignore_chat_packets": false,
  "ignore_action_bar_packets": false,
  "ignore_scoreboard_packets": false,
  "optimize_explosion_packets": true,
  "optimize_entity_packets": false,
  "record_hotbar": false,
  "record_voice_chat": false,
  "replay_server_ip": null,
  "allow_downloading_replays": false,
  "automatically_record": false,
  "player_predicate": {
    "type": "none"
  },
  "chunks": []
}
ПараметрОписание
default_encodingФормат записи: replay_mod или flashback. По умолчанию replay_mod.
world_nameИмя мира, которое отобразится в файле реплея.
server_nameИмя сервера в файле реплея.
player_recording_pathПуть для сохранения записей игроков.
chunk_recording_pathПуть для сохранения записей чанков.
player_recording_nameШаблон имени папки для каждого игрока. По умолчанию {uuid}. Можно использовать {username}. Пример: "Recordings for: {username} ({uuid})".
max_file_sizeМаксимальный размер файла реплея. При достижении запись останавливается. Указывается в байтах с единицами (например, "100 MB"). "0 B" - без ограничений.
restart_after_max_file_sizeЕсли true и достигнут max_file_size, запись автоматически перезапускается в новый файл.
max_durationМаксимальная длительность записи (формат: "4h 35m 2.1s"). "0s" - без ограничения.
restart_after_max_durationЕсли true и достигнут max_duration, запись перезапускается.
recover_unsaved_replaysПопытка восстановить незавершённые записи после аварийной остановки сервера.
delete_replays_after_durationАвтоматическое удаление старых файлов (от последней модификации). Формат длительности, например "5d 10h". "0s" - отключено.
log_deleted_replaysЛогирование удалённых записей в консоль.
fixed_daylight_cycleФиксированное время суток в реплее (в тиках). Например, 6000 - полдень. -1 - отключено.
chunk_recorder_load_radiusНачальный радиус загрузки чанков при записи области. Частичная загрузка больших территорий. -1 - загружать все.
chunk_recording_strategyСтратегия записи чанков: always (постоянно), chunk_loaded (только когда чанки загружены, автоматическая пауза), chunk_contains_player (только если есть игрок в области - Flashback), chunk_contains_non_spectator_player (только не-зрители - Flashback).
pause_notify_playersУведомлять игроков о приостановке/возобновлении записи.
notify_admins_of_statusУведомлять администраторов о старте, окончании и ошибках записи.
include_resource_packsКопировать серверные ресурспаки в файл реплея (только Replay Mod). Отключение уменьшает размер, но может вызвать проблемы при воспроизведении.
ignore_custom_payloadsИгнорировать модовые пакеты - полезно при конфликтах с другими модами.
ignore_sound_packetsИгнорировать звуковые пакеты.
ignore_light_packetsИгнорировать пакеты освещения (по умолчанию true).
ignore_chat_packetsИгнорировать чат.
ignore_action_bar_packetsИгнорировать action bar.
ignore_scoreboard_packetsИгнорировать скорборды.
optimize_explosion_packetsОптимизировать пакеты взрывов (по умолчанию true).
optimize_entity_packetsОптимизировать пакеты сущностей (false).
record_hotbarЗаписывать содержимое хотбара (false).
record_voice_chatЗаписывать голосовой чат (например, от Simple Voice Chat, false).
replay_server_ipIP для скачивания реплеев.
allow_downloading_replaysРазрешить скачивание реплеев через команду.
automatically_recordВключить автоматическую запись по правилам из player_predicate и chunks.
player_predicateУсловие для автоматической записи игроков. Тип none - никто.
chunksСписок предопределённых записей чанков для автоматического запуска.

Мод ServerReplay - мощный инструмент для админов, которым нужна качественная запись событий на сервере без нагрузки на клиентов. Скачайте мод для Fabric и настройте его под свои задачи - будь то трейлеры, летсплеи или мониторинг.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

26.2.x26.1.x1.21.x1.20.x1.19.x1.18.x1.17.x

Платформы

Поддерживаемые окружения

Сервер

Зависимости

Ссылки


Создатели

Детали

Лицензия:
Опубликован:2 года назад
Обновлён:1 неделю назад
Главная