modsmith Войти Войти Рус / Eng

ServerReplay

server-replay · 192242 загрузок · MIT

клиент: unsupported · сервер: required (заявлено автором мода)

Полностью серверный мод, который позволяет записывать повторы для модов повторов или воспоминаний.

Описание

Реплей сервера

Английский | 中文

Полностью серверная реализация Replay Mod и Flashback]. Этот мод позволяет вам для одновременной записи нескольких игроков, находящихся в сети, или областей фрагментов на сервере. Это будет создавать файлы повторов, которые затем можно использовать с модом воспроизведения или флэшбеком для рендеринга.

Modrinth download

Почему на стороне сервера?

По сравнению с клиентом Replay Mod или Flashback запись серверная часть имеет множество преимуществ:

  • Возможность записи статических фрагментов.
    • Вы можете указать точный размер чанка (не привязан к расстоянию просмотра сервера).
    • Записанные фрагменты можно выгружать, не влияя на воспроизведение.
      • Нет мерцания чанков (от выгрузки и загрузки чанков).
      • Чанки также не будут загружаться рекордером (как, например, PCRC).
    • Приостанавливайте и возобновляйте работу записывающих устройств в зависимости от того, загружаются ли фрагменты или нет. в чанках есть игроки
  • Возможность записи отдельных игроков.
    • Игрокам не требуется устанавливать мод повтора или флешбек.
    • Вы можете записать все POV одновременно.
    • Записи можно автоматизировать с помощью конфигурации.
  • Записи могут быть запущены в любое время операторами (или кем-либо, у кого есть разрешения).

Однако есть и некоторые недостатки и известные проблемы:

  • Некоторые функции не записываются фрагментами записей, например. индивидуальные босс-бары.
  • Записи игрока могут не на 100% соответствовать клиенту Replay Mod или Flashback.
  • ServerReplay на самом деле не предназначен для сильно модифицированных серверов. Более сложные моды, реализующие свои собственные пакеты, могут быть несовместимы.
    • Если у вас возникнут какие-либо проблемы с совместимостью, сообщите о проблеме.

Использование

Для этого мода требуются средства запуска Fabric, Fabric-API и Fabric-Kotlin.

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

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

Примечание: Эта документация предназначена для последней версии мода, для более старых версии мода смотрите в других ветках

Этот раздел документации кратко проведет вас через базовую настройку. А также содержит некоторую важную информацию.

Игроки

Чтобы записать игрока на свой сервер, вы можете запустить /replay start players <player(s)>, например:

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

Регистраторы игроков привязаны к игроку и будут записывать в серверы видят расстояние.

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

Альтернативно, если вы хотите остановить запись вручную, вы можете запустить /replay stop players <player(s)> <save?>, с помощью этой команды вы также можете остановить запись без ее сохранения, например:

/replay stop players senseiwells
/replay stop players @r
/replay stop players senseiwells false

Повтор будет сохранен в вашем местоположении "player_recording_path". указан в папке с uuid плеера. По умолчанию это будет ./recordings/players/<uuid>/<date-and-time>.mcpr.

Затем этот файл можно поместить в папку ./replay_recordings вашего клиента и открыть с помощью мода воспроизведения.

Предупреждение: Попытка записать ковровых ботов или других нереальных игроков может привести к неожиданному поведению. Если вы хотите записать фрагмент большого размера, используйте вместо этого устройство записи фрагментов!

Куски

Примечание: Хотя мод будет записывать указанные вами фрагменты, клиент Minecraft не будет отображать самые внешние фрагменты. Итак, чтобы записать область видимых фрагментов, вы должны добавить один фрагмент к границе, например записывая видимую область от -5, -5 до 5, 5, вы должны записывать между -6, -6 и 6, 6.

Чтобы записать область чанков на вашем сервере, вы можете запустить /replay start chunks from <chunkFromX> <chunkFromZ> to <chunkToX> <chunkToZ> in <dimension?> named <name?>, например:

/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 <radius> in <dimension?> named <name?>, например:

/replay start chunks around 0 0 radius 5
/replay start chunks around 67 12 radius 16 in minecraft:overworld named Perimeter Recorder

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

Вы можете дополнительно настроить это с помощью Настройка "chunk_recorder_load_radius", которая устанавливает максимальный начальный радиус. что рекордер фрагментов загрузит любые записанные фрагменты за пределами этого радиуса. для записи необходимо будет загрузить «естественным образом».

Если сервер остановится, повтор автоматически остановится и сохранится.

Альтернативно, если вы хотите остановить запись вручную, вы можете остановить указанную рекордер, используя его имя с /replay stop chunks named <name> <save?>, например:

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

Повтор будет сохранен в вашем местоположении "chunk_recording_path". указан в папке с именем устройства записи фрагментов. По умолчанию это будет ./recordings/chunks/<name>/<date-and-time>.mcpr.

Затем этот файл можно поместить в ./replay_recordings вашего клиента и открыть с помощью мода воспроизведения.

Кодировка

ServerReplay поддерживает воспоминания (для более поздних версий), а также повторы модов воспроизведения.

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

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

Примечание: Вы можете записать точку зрения игрока, используя одновременно флэшбэк и мод повтора. Вы можете сделать это, установив кодировку по умолчанию на флэшбек, начав запись, затем устанавливаем кодировку replay_mod и начинаем новую запись.

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

Просмотр

После завершения записи повтора вы можете просмотреть его полностью на стороне сервера. Игрок, просматривающий повтор, будет полностью удален с реального сервера, пока он просмотреть повтор, и они будут рассматриваться так, как будто они находятся в автономном режиме.

По сути, это просто «запускает» другой сервер, который отправляет клиентские пакеты. Это работает асинхронно с главного сервера, поэтому влияние на производительность практически отсутствует.

Когда запись повтора закончится, вы можете нажать на зеленый текст в чате, чтобы просмотреть повтор, который только что закончился. Команда для просмотра повторов фрагментов: /replay view chunks <name> <date-time>, а для игроков: /replay view players <uuid> <date-time>, например:

/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 <multiplier> Устанавливает скорость воспроизведения текущего повтора.
  • /replay view restart Перезапускает воспроизведение текущего повтора.
  • /replay view close Закрывает текущий повтор и возвращает вас на сервер.
  • /replay view progress <hide|show> Скрывает или показывает панель прогресса.

Если вы отключитесь во время просмотра повтора, вы вернетесь на сервер при входе в систему.

Загрузка

Вы можете скачать любой реплей с сервера, если в конфиге включен "allow_downloading_replays" IP-адрес сервера и порт загрузки настроены правильно.

Вы можете использовать команду /replay download для получения URL-адреса для загрузки указанного повтора, например:

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

Вам будет отправлено сообщение в чат; вы можете нажать на предоставленную ссылку, чтобы загрузить файл.

Команды

Примечание для всех команд; игроки должны либо иметь ОП (уровень 4), либо, если вы иметь мод разрешений (например, LuckPerms), игроки могут иметь разрешение server-replay.commands.replay на доступ к этим командам.

  • /replay start players <player(s)> Вручную начинает запись повтора для определенного игрока(ов).
  • /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 players <player(s)> <save?> Вручную останавливает запись повтора для некоторых игроков, при желании вы можете указать, следует ли сохранять повтор; по умолчанию это правда.
  • /replay stop chunks from <chunkFromX> <chunkFromZ> to <chunkToX> <chunkToZ> in <dimension?> <save?> Вручную останавливает запись повтора для заданной области фрагмента, если размерность не указана, пользовательская команда вместо этого будет использоваться измерение, при желании вы можете указать, следует ли сохранять повтор; по умолчанию это правда.
  • /replay stop chunks named <name> <save?> Это позволит вам сделать то же самое, что и команда выше; однако вы можете указать область фрагмента по ее имени.
  • /replay stop [chunks|players] all <save?> Вручную останавливает все фрагменты или повторы игроков, которые можно дополнительно передать, если повтор должен быть сохранен; по умолчанию это правда.
  • /replay status Отправляет сообщение о состоянии, включено ли воспроизведение, и список всех

players and chunks that are currently being recorded, how long they've been recorded for, and their file sizes.

  • /replay reload Reloads the config file for the replay mod.
  • /replay encoding default set <encoding-type> Sets what type of replay to record, either flashback or replay_mod

Configuring

After you boot the server a new file will be generated in the path ./config/server-replay/config.json, by default, it should look like:

{
  "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}", которое использует uuid игрока. Вы также можете вставить имя игрока с помощью "{username}". Например, у вас может быть: "Recordings for: {username} ({uuid})".

|

| "max_file_size" |

Определяет max_file_size для повтора. Если предел достигнут, запись будет автоматически остановлена. Этот размер файла относится к размеру необработанной записи, а не к окончательному размеру сжатого воспроизведения. Обычно окончательный размер сжатого воспроизведения будет намного меньше.

| | "restart_after_max_file_size" |

Если установлено max_file_size и достигнут этот предел, запись повтора автоматически перезапустится, создав новый файл повтора.

|

| "max_duration" |

Устанавливает максимальную продолжительность повтора. После записи повтора в течение указанного периода времени он останавливается. Это любое число, за которым следуют единицы (вы также можете иметь несколько единиц), например "4h 35m 2.1s". Установите значение "0s", чтобы не иметь ограничения максимальной продолжительности. Примечание: если диктофон поставлен на паузу, его продолжительность не увеличивается.

| | "restart_after_max_duration" |

Если установлено max_duration и достигнут этот предел, запись повтора автоматически перезапустится, создав новый файл повтора.

|

| "recover_unsaved_replays" |

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

| | "delete_replays_after_duration" |

Продолжительность удаления старых файлов повторов. Это время с момента последнего изменения файла. Продолжительность имеет тот же формат, что и опция max_duration, например. "5d 10h". Установите значение "0s", чтобы отключить.

|

| "log_deleted_replays" |

Выводить ли журнал сервера при удалении повтора из-за его устаревания. Чтобы это работало, необходимо включить delete_replays_after_duration.

| | "fixed_daylight_cycle" |

Это исправляет цикл дневного света в повторе, если вы не хотите, чтобы цикл дня и ночи был постоянным в длинных таймлапсах. Должно быть установлено время суток в галочках, например. 6000 (полдень). Чтобы отключить фиксированный цикл дневного света, установите значение -1.

|

| "chunk_recorder_load_radius" |

Устанавливает радиус загрузки рекордера фрагментов по умолчанию. Это полезно, когда вы хотите записать очень большую область и не хотите, чтобы все записанные фрагменты загружались одновременно.

Например, если вы записываете область фрагмента 13x13, вы можете установить радиус равным 3, чтобы изначально загружался самый центральный фрагмент 7x7, а остальные фрагменты затем будут записываться всякий раз, когда они «естественно» загружаются.

Установите значение -1, чтобы загрузить все фрагменты.

| | "chunk_recording_strategy" |

Определяет способ записи фрагментов, есть 4 варианта:

  • "always" - всегда записывает фрагменты, даже если они выгружены (как если бы они были загружены)
  • "chunk_loaded" - только записывает, когда любой из фрагментов в области загружен, если все фрагменты выгружены, запись приостанавливается
  • "chunk_contains_player" - записывает фрагменты только тогда, когда игрок находится в области (только воспоминания)
  • "chunk_contains_non_spectator_player" - то же, что и выше, но только для игроков, не являющихся зрителями (только воспоминания)
|

| "pause_notify_players" |

Если для chunk_recording_strategy задана опция, позволяющая диктофону автоматически приостанавливаться, и эта опция включена, то всякий раз, когда запись в области фрагмента приостанавливается или возобновляется, все онлайн-игроки будут уведомлены.

| | "notify_admins_of_status" |

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

|

| "include_resource_packs" |

Если этот параметр включен, все пакеты ресурсов на стороне сервера будут скопированы в файл воспроизведения, чтобы обеспечить правильное воспроизведение. Отключение этого параметра приведет к уменьшению размера файла, но вместо этого при просмотре повтора он будет пытаться загрузить пакет из исходного источника. Нет никакой гарантии, что это будет работать правильно. (только мод повтора)

| | "ignore_custom_payloads" |

Если включено, все пользовательские полезные данные (модифицированные пакеты) будут игнорироваться. Это можно включить, если пакеты другого мода вызывают проблемы с записью.

|

| "ignore_sound_packets" |

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

| | "ignore_light_packets" |

Light рассчитывается как на клиенте, так и на сервере, поэтому пакеты Light по большей части избыточны.

|

| "ignore_chat_packets" |

Останавливает запись пакетов чата (как от сервера, так и от других игроков), если они не нужны для вашего повтора.

| | "ignore_action_bar_packets" |

Останавливает запись пакетов панели действий, если они не нужны для воспроизведения.

|

| "ignore_scoreboard_packets" |

Останавливает запись пакетов табло (например, если у вас есть табло, отображающее раскопки, оно не появится, и результаты игроков также не будут записываться).

| | "optimize_explosion_packets" |

Это значительно уменьшает размер файла, поскольку клиент не отправляет пакеты взрыва, а просто отправляет частицы и звуки взрыва.

|

| "optimize_entity_packets" |

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

| | "record_hotbar" |

Позволяет записывать горячую панель для записей игроков, чтобы было удобнее играть от первого лица. (только воспоминания)

|

| "record_voice_chat" |

Это включает поддержку записи голосового чата, если у вас установлен мод simple-voice-chat, это будет работать «из коробки» при просмотре во флэшбеке, но при просмотре повтора в моде повтора у вас должен быть установлен replay-voice-chat.

| | "replay_server_ip" |

Это необходимо, если на вашем сервере используются пользовательские пакеты ресурсов на стороне сервера, и вы хотите иметь возможность просматривать эти пакеты в средстве просмотра повторов на стороне сервера. Это также необходимо, если вы хотите разрешить пользователям загружать повторы.

Здесь должен содержаться общедоступный IP-адрес вашего сервера.

|

| "allow_downloading_replays" |

Определяет, смогут ли пользователи загружать записанные повторы.

| | "automatically_record" |

Следует ли автоматически записывать проигрывателей или фрагменты на основе конфигурации "player_predicate" и/или "chunks". Если этот параметр включен, любые игроки, соответствующие определенному предикату, будут записываться автоматически, а любые определенные фрагменты будут записываться при запуске сервера.

|

| "player_predicate" |

Предикат для автоматической записи проигрывателей, дополнительная информация в разделе Предикаты.

| | "chunks" |

Список чанков, которые будут автоматически записываться при запуске сервера, дополнительная информация в разделе Чанки.

|

Конфигурация чанков

Вы можете определить области фрагментов, которые будут автоматически записываться при запуске сервера или при вы включаете ServerReplay.

Каждое определение чанка должно включать: "name", "dimension", "from_x", "to_x", "from_z" и "to_z". Например:

{
  // ...
  "chunks": [
    {
      "name": "My Chunks",
      "dimension": "minecraft:overworld",
      "from_x": -5,
      "from_z": -5,
      "to_x": 5,
      "to_z": 5
    },
    {
      "name": "My Nether Chunks",
      "dimension": "minecraft:the_nether",
      "from_x": 100,
      "from_z": 50,
      "to_x": 90,
      "to_z": 60
    }
    // ...
  ]
}

Конфигурация предикатов

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

После определения предиката вы должны запустить /replay reload в игре, после чего игроки должны перерегистрируйтесь, если они хотят быть записанными (и соответствуют критериям предиката).

Самый простой вариант — просто записать всех игроков, и в этом случае вы можете использовать:

{
  // ...
  "player_predicate": {
    "type": "all"
  }
}

Если вы хотите записывать только игроков с определенными именами или uuid, вы можете сделать следующее:

{
  // ...
  "player_predicate": {
    "type": "has_name",
    "names": [
      "senseiwells",
      "foobar"
    ]
  }
}
{
  // ...
  "player_predicate": {
    "type": "has_uuid",
    "uuids": [
      "41048400-886d-497d-9d97-9fe7c9b63afa",
      "71266dbd-db0a-484a-b859-3f135590d7a9",
      "47d072ca-d7a2-467c-9b60-de501907e91d",
      "0e324e7f-e78e-4777-b501-7ae08a65b1eb",
      "7d9e24c2-9d0f-479f-81c7-27389624ebb2"
    ]
  }
}

Если вы хотите записывать только операторов:

{
  // ...
  "player_predicate": {
    "type": "has_op",
    "level": 4
  }
}

Если вы хотите записывать игроков только в определенные команды, это полезно, поскольку позволяет игрокам быть зарегистрированными. добавлено и удалено в игре, так как вы можете просто добавить игроков в команду, а затем повторно войти в систему:

{
  // ...
  "player_predicate": {
    "type": "in_team",
    "teams": [
      "Red",
      "Blue",
      "Spectators"
    ]
  }
}

Вы также можете отрицать предикаты, используя «не», и комбинировать их, используя «или» и «и». Например, если вы хотите записать всех не-операторов, которые также не имеют имени «senseiwells» или находятся в красной команде:

{
  // ...
  "player_predicate": {
    "type": "and",
    "predicates": [
      {
        "type": "not",
        "predicate": {
          "type": "has_op",
          "level": 4
        }
      },
      {
        "type": "not",
        "predicate": {
          "type": "or",
          "predicates": [
            {
              "type": "has_name",
              "names": [
                "senseiwells"
              ]
            },
            {
              "type": "in_team",
              "teams": [
                "Red"
              ]
            }
          ]
        }
      } 
    ]
  }
}

Если вы используете мод ковра и имеете возможность создавать фальшивых игроков, вы можете исключить их из записи. Вы можете сделать это с помощью предиката is_fake:

{
  // ...
  "player_predicate": {
    "type": "not",
    "predicate": {
      "type": "is_fake"
    }
  }
}

Благодарности

Спасибо ExperimentalIdea за помощь в тестировании поддержки Flashback!

Версии (60)

ВерсияMinecraftЗагрузчикиФайл
3.6.0+26.3 26.3 fabric скачать
3.5.2+26.2 26.2 fabric скачать
3.5.1+26.2 26.2 fabric скачать
3.5.0+26.2 26.2 fabric скачать
3.4.3+26.1 26.1, 26.1.1, 26.1.2 fabric скачать
3.4.2+26.1 26.1, 26.1.1, 26.1.2 fabric скачать
3.4.1+26.1 26.1, 26.1.1, 26.1.2 fabric скачать
3.4.0+26.1 26.1, 26.1.1, 26.1.2 fabric скачать
3.3.1+1.21.11 1.21.11 fabric скачать
3.2.8+1.21.11 1.21.11 fabric скачать
3.2.7+1.21.11 1.21.11 fabric скачать
3.2.5+1.21.11 1.21.11 fabric скачать
3.2.3+1.21.11 1.21.11 fabric скачать
3.2.2+1.21.11 1.21.11 fabric скачать
3.2.1+1.21.11 1.21.11 fabric скачать
3.2.0+1.21.11 1.21.11 fabric скачать
3.1.1+1.21.9 1.21.10, 1.21.9 fabric скачать
3.1.0+1.21.9 1.21.10, 1.21.9 fabric скачать
3.0.1+1.21.8 1.21.8 fabric скачать
3.0.0+1.21.8 1.21.8 fabric скачать
2.3.2+mc1.21.6 1.21.6, 1.21.7, 1.21.8 fabric скачать
2.3.1+mc1.21.6 1.21.6, 1.21.7, 1.21.8 fabric скачать
2.3.0+mc1.21.5 1.21.5 fabric скачать
2.1.0+mc1.21.4 1.21.4 fabric скачать
2.0.0+mc1.21.4 1.21.4 fabric скачать
1.2.12+mc1.21.4 1.21.4 fabric скачать
1.2.10+mc1.20.6 1.20.6 fabric скачать
1.2.10+mc1.21.1 1.21.1 fabric скачать
1.2.10+mc1.21.3 1.21.3 fabric скачать
1.2.10+mc1.21.4 1.21.4 fabric скачать
1.2.7+mc1.21.4 1.21.4 fabric скачать
1.2.2+mc1.20.1 1.20.1 fabric скачать
1.2.5+mc1.21.4 1.21.4 fabric скачать
1.2.3+mc1.21.3 1.21.3 fabric скачать
1.2.2+mc1.21.3 1.21.3 fabric скачать
1.2.1+mc1.21.3 1.21.3 fabric скачать
1.1.5+mc1.21.3 1.21.2, 1.21.3 fabric скачать
1.1.5+mc1.17.1 1.17.1 fabric скачать
1.1.5+mc1.18.2 1.18.2 fabric скачать
1.1.5+mc1.19.4 1.19.4 fabric скачать
1.1.5+mc1.20.6 1.20.5, 1.20.6 fabric скачать
1.1.5+mc1.21.1 1.21.1 fabric скачать
1.1.4+mc1.21.1 1.21.1 fabric скачать
1.1.4+mc1.20.6 1.20.6 fabric скачать
1.1.4+mc1.19.4 1.19.4 fabric скачать
1.1.3+mc1.17.1 1.17.1 fabric скачать
1.1.3+mc1.18.2 1.18.2 fabric скачать
1.1.3+mc1.19.4 1.19.4 fabric скачать
1.1.3+mc1.20.4 1.20.3, 1.20.4 fabric скачать
1.1.3+mc1.20.6 1.20.6 fabric скачать
1.1.3+mc1.21.1 1.21.1 fabric скачать
1.1.2+mc1.20.4 1.20.4 fabric скачать
1.1.2+mc1.17.1 1.17.1 fabric скачать
1.1.2+mc1.18.2 1.18.2 fabric скачать
1.1.2+mc1.19.4 1.19.4 fabric скачать
1.1.2+mc1.20.6 1.20.6 fabric скачать
1.1.2+mc1.21 1.21 fabric скачать
1.1.1+mc1.17.1 1.17.1 fabric скачать
1.1.1+mc1.18.2 1.18.2 fabric скачать
1.1.1+mc1.19.4 1.19.4 fabric скачать

Страница на Modrinth →