Мод для Майнкрафт на Fabric, который записывает происходящее на сервере в формате Replay Mod или Flashback. Он сохраняет перспективу игроков либо выбранную неподвижную область чанков, поэтому подходит для съёмки прохождений, ивентов и таймлапсов без установки модов записи у игроков.
Возможности
- Одновременно записывает нескольких игроков, включая всех через селектор
@a; запись ведётся с их точки зрения в пределах дистанции прорисовки сервера. - Записывает прямоугольную область чанков или область вокруг указанного чанка. Границы можно задать отдельно для обычного мира, незера и других измерений.
- Для записи чанков можно выбрать режим: постоянно записывать, приостанавливать при выгрузке области либо записывать только когда внутри есть игроки.
- После завершения запись сохраняется в файлы
.mcpr; её можно открыть через Replay Mod, а также просмотреть прямо на сервере. Во время такого просмотра игрок временно находится в отдельной сессии и не влияет на основной сервер. - Поддерживает автоматическую запись игроков по имени, UUID, команде или уровню оператора, а также автоматический запуск записей заданных областей чанков.
- Может ограничивать длительность и размер записи, создавать следующий файл после достижения лимита, восстанавливать несохранённые записи и удалять старые файлы.
Как пользоваться
Запись игрока запускается командой /replay start players <player(s)>, например /replay start players @a. Остановить её с сохранением или без него можно через /replay stop players <player(s)> <save?>.
Для области чанков используйте одну из команд:
/replay start chunks from <chunkFromX> <chunkFromZ> to <chunkToX> <chunkToZ> in <dimension?> named <name?>/replay start chunks around <chunkX> <chunkZ> radius <radius> in <dimension?> named <name?>/replay stop chunks named <name> <save?>
Крайние чанки области не отображаются клиентом: чтобы в ролике была видна граница от -5 -5 до 5 5, записывайте область от -6 -6 до 6 6.
Готовые файлы игроков по умолчанию лежат в ./recordings/players/<uuid>/, а записи областей — в ./recordings/chunks/<name>/. Для открытия записи на клиенте с Replay Mod поместите файл в ./replay_recordings.
Запись можно просмотреть на сервере через /replay view players <uuid> <date-time> или /replay view chunks <name> <date-time>. Во время просмотра доступны команды:
/replay view pauseи/replay view unpause— пауза и продолжение;/replay view speed <multiplier>— скорость воспроизведения;/replay view restart— начать заново;/replay view progress <hide|show>— скрыть или показать индикатор;/replay view close— вернуться на сервер.
Команда /replay status показывает активные записи, их длительность и размер. Формат новых файлов выбирается через /replay encoding default set <encoding-type>, где доступны replay_mod и flashback.
Настройки
Основной файл находится по пути ./config/server-replay/config.json. В нём можно задать пути player_recording_path и chunk_recording_path, формат через default_encoding, ограничения max_file_size и max_duration, а также автоматическую запись через automatically_record, player_predicate и chunks.
Параметр chunk_recorder_load_radius ограничивает, сколько чанков область загрузит при старте: чанки за пределами радиуса попадут в запись, когда будут загружены обычным образом. В chunk_recording_strategy выбирается условие записи области. Настройки ignore_sound_packets, ignore_chat_packets, ignore_scoreboard_packets, optimize_explosion_packets и optimize_entity_packets помогают уменьшить размер файлов.
Чтобы игроки могли скачивать записи, включите allow_downloading_replays и укажите публичный адрес сервера в replay_server_ip. После изменения настроек выполните /replay reload; игрокам, выбранным правилом автоматической записи, потребуется переподключиться.
Требования и совместимость
Требуются Fabric, Fabric API и Fabric Kotlin. Записи совместимы с Replay Mod и Flashback; для сохранения голосового чата включите record_voice_chat и установите Simple Voice Chat, а для воспроизведения голосового чата через Replay Mod нужен Replay Voice Chat.
Мод рассчитан прежде всего на обычные серверы: крупные моды, использующие собственные сетевые пакеты, могут отображаться в записи некорректно. Запись нестандартных пакетов можно отключить параметром ignore_custom_payloads.
Команды доступны операторам четвёртого уровня либо игрокам с правом server-replay.commands.replay, например через LuckPerms.
