Перейти к содержимому

BetterView

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

FabricPaperPurpurBukkit
Загрузчики
FabricPaperPurpurBukkit
Скачиваний на Modrinth
7,6 тыс.
Подписчиков на Modrinth
48
версий
12
Обновлён
27 сентября 202627 сент.
Опубликован
в 2025
127 Chunks View Distance — All visible chunks were transmitted to the client in about 12 seconds after having joined the server · свайп

Коротко о моде

Работает на Fabric, Paper, Purpur и Bukkit
Для Minecraft 1.21.1–26.3
Ставится только на сервер; игрокам ставить не нужно
Последняя версия — 2.2.1+paper от 27 сентября 2026
Лицензия GPL-3.0-only — бесплатно
Где нужен
В игрене нуженНа сервереобязателен

Ставится только на сервер; игрокам ставить не нужно

Версии игры1.21.1–26.3
Описание переведено автоматическиПоказать оригинал (EN)

BetterView

logo

GitHub tag (latest by date) GPLv3 License Discord

Описание

BetterView — это высокопроизводительный плагин для Paper и мод для Fabric для серверов Minecraft. Он увеличивает обычную дальность прорисовки, не жертвуя производительностью сервера, за счёт асинхронной обработки игроков, прямого чтения чанков с диска и кэширования данных чанков.

Возможности

  • Асинхронный быстрый тик игроков в сетевых потоках
  • Чтение чанков напрямую с диска без их загрузки
  • Оптимизированное отслеживание состояния чанков и их перебор
  • Настраиваемое кэширование данных чанков для быстрого доступа
  • Настраиваемые ограничения на отправку и генерацию чанков
  • Настройки для каждого измерения отдельно
  • Поддержка встроенных и выделенных серверов Fabric
  • Лёгкая поддержка анти-иксрея для расширенных чанков
Пример: скорость загрузки при дальности прорисовки в 127 чанков

Скриншот ниже сделан на координатах 0 2250 0 в измерении Края при дальности прорисовки в 127 чанков (с отключённым туманом). На AMD Ryzen 7 5800X все видимые чанки были переданы клиенту примерно за 12 секунд после подключения к серверу с холодным кэшем и примерно за 9 секунд с тёплым кэшем.

A top-down view of the main end island and parts of the outer end island

Поддерживаемое ПО

Версия MinecraftPaperFabric
26.3.x✅✅
26.2.x✅✅
26.1.x✅✅
1.21.11✅✅
1.21.10✅✅
1.21.9✅✅
1.21.8✅✅
1.21.7✅✅
1.21.6✅✅
1.21.5✅✅
1.21.4✅✅
1.21.3✅✅
1.21.1✅✅

На Fabric этот мод зависит от Moonrise и adventure-platform-mod для работы.

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

На серверах Paper поместите jar-файл в папку plugins и перезапустите сервер. На серверах/клиентах Fabric поместите jar-файл в папку mods и перезапустите сервер или клиент. По умолчанию BetterView настроит дальность прорисовки в 32 чанка для каждого измерения.

Конфигурация

При первом запуске плагин автоматически создаст файл конфигурации. Если используется Paper, он будет создан по пути plugins/BetterView/config.yml, если Fabric — как betterview.yml в папке вашего мира (например, world для выделенных серверов). Там вы можете настроить следующие параметры:

  • config-version: Не трогайте это
  • integrated-server-render-distance: Актуально только для одиночных миров, позволяет заменить дальность прорисовки встроенного сервера, иначе BetterView не будет иметь эффекта (по умолчанию: -1, отключено)
  • global:

    • enabled: Включать или отключать весь плагин/мод (по умолчанию: true)
    • chunk-generation-limit: Сколько новых чанков может быть сгенерировано глобально за один тик (по умолчанию: 3)
    • chunk-send-limit: Максимальное количество чанков, отправляемых игроку за тик (по умолчанию: 3)
  • dimensions:

    • `(например,minecraft:overworld`):

      • enabled: Включать или отключать плагин/мод для этого измерения (по умолчанию: true)
      • chunk-generation-limit: Сколько новых чанков может быть сгенерировано для этого уровня за один тик (по умолчанию: 2)
      • chunk-queue-size: Сколько чанков может быть поставлено в очередь на одного игрока одновременно (по умолчанию: 16)
      • view-distance: Максимальная расширенная дальность прорисовки для этого измерения (по умолчанию: 32)
      • cache-duration: Длительность кэширования, то есть как долго расширенные чанки должны храниться в памяти (по умолчанию: PT5M, 5 минут)

        • Обязательно подбирайте длительность кэширования в зависимости от того, для чего используется ваш сервер; например, для статичных лобби-серверов можно использовать более долгое кэширование, чем для динамичных SMP-серверов. Если длительность кэширования слишком высокая, чанки будут отображать устаревшее содержимое после, например, повторного входа.
      • anti-xray:

        • Учтите, что этот плагин реализует облегчённую версию анти-иксрея, которая не проверяет, открыт ли блок к воздуху или нет. Это значит, что любой режим движка, кроме HIDE, скорее всего будет выглядеть не очень хорошо.
        • enabled: Включать или отключать анти-иксрей в этом мире (по умолчанию: false)
        • engine-mode: Режимы движка анти-иксрея: HIDE, OBFUSCATE или OBFUSCATE_LAYER (по умолчанию: HIDE)
        • hidden-blocks: Список блоков для скрытия/обфускации (по умолчанию: все руды и все базовые блоки измерений)
      • chunk-batches:

        • Пакеты чанков используются, чтобы клиент/интернет игроков не перегружался слишком большим количеством чанков, отправляемых сразу. Если включено, BetterView отправляет пакет чанков и ждёт, пока игрок подтвердит, что получил весь пакет чанков. Только после этого будет отправлен следующий пакет чанков.
          Побочным эффектом будет то, что игроки с хорошим соединением, но высоким пингом будут получать чанки гораздо медленнее, чем могли бы. \

Примечание: пакеты чанков могут отправляться в течение нескольких тиков. - enabled: Включены или отключены пакеты чанков в этом измерении (по умолчанию: true) - chunks-per-batch: Количество чанков в одном пакете (по умолчанию: 12) - prepare-chunks-while-waiting: Должен ли BetterView продолжать подготовку чанков, пока ждёт подтверждения предыдущего пакета (по умолчанию: true) - batch-timeout: Время без отправки чанка, после которого пакет истекает (по умолчанию: PT5S) - batch-wait-timeout: Таймаут, после которого BetterView автоматически помечает пакет как завершённый, даже без ответа игрока (по умолчанию: PT30S)

Не стесняйтесь экспериментировать с генерацией чанков и лимитами отправки чанков для оптимальной работы на вашей конфигурации сервера.

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

Maven Repository: https://repo.minceraft.dev/releases/
Maven Artifact: dev.booky.betterview:betterview-api:2.2.1
Javadoc: https://repo.minceraft.dev/javadoc/releases/dev/booky/betterview/betterview-api/2.2.1

Пример для Paper
// get the BetterView API instance using Bukkit's ServicesManager
// this is the only difference between using the API on paper and fabric
BvManager bvManager = Bukkit.getServicesManager().load(BvManager.class);
if (bvManager == null) {
    throw new IllegalStateException("Failed to load BetterView API");
}
// invalidate chunk cache at 0 0 in the overworld
BvLevel overworld = bvManager.getLevel(Key.key(Key.MINECRAFT_NAMESPACE, "overworld"));
overworld.invalidateChunkCache(0, 0);
// refresh the chunk for all players in the overworld
for (BvPlayer player : overworld.getPlayers()) {
    // (switch to proper thread for thread-safety)
    player.getExecutor().execute(() -> {
        if (!player.isActive() || player.getLevel() != overworld) {
            // player isn't active or isn't in overworld - maybe they have switched
            // dimensions in the short time it took for this code to run?
            return;
        }
        // ensure BetterView actually "owns" the chunk at 0 0
        if (player.getChunkLifecycle(0, 0).isOwned()) {
            // finally, queue the chunk to be refreshed!
            player.refreshChunk(0, 0);
        }
    });
}
Пример для Fabric
// get the BetterView API instance using fabric's object share
// this is the only difference between using the API on paper and fabric
BvManager bvManager = (BvManager) FabricLoader.getInstance().getObjectShare().get("betterview:api");
if (bvManager == null) {
    throw new IllegalStateException("Failed to load BetterView API");
}
// invalidate chunk cache at 0 0 in the overworld
BvLevel overworld = bvManager.getLevel(Key.key(Key.MINECRAFT_NAMESPACE, "overworld"));
overworld.invalidateChunkCache(0, 0);
// refresh the chunk for all players in the overworld
for (BvPlayer player : overworld.getPlayers()) {
    // (switch to proper thread for thread-safety)
    player.getExecutor().execute(() -> {
        if (!player.isActive() || player.getLevel() != overworld) {
            // player isn't active or isn't in overworld - maybe they have switched
            // dimensions in the short time it took for this code to run?
            return;
        }
        // ensure BetterView actually "owns" the chunk at 0 0
        if (player.getChunkLifecycle(0, 0).isOwned()) {
            // finally, queue the chunk to be refreshed!
            player.refreshChunk(0, 0);
        }
    });
}

</details>

Обратите внимание, что API всё ещё находится в разработке. Обязательно публикуйте предложения, улучшения и любые другие идеи
в нашем [Discord](https://discord.gg/zC8xjtSPKC) или в трекере задач.

## Сборка

1. Клонируйте проект (`git clone https://github.com/MinceraftMC/BetterView.git`)
2. Перейдите в клонированную директорию (`cd BetterView`)
3. Соберите jar-файлы (`./gradlew build` на Linux/MacOS, просто `gradlew build` на Windows)

Jar-файлы можно найти в директории `build` → `libs`.

### Участие в разработке

Если вы хотите внести свой вклад в BetterView, не стесняйтесь форкнуть репозиторий и создать pull request. Обязательно
следуйте стилю кода и соглашениям, принятым в проекте. Если у вас есть вопросы или нужна помощь, спрашивайте в
нашем [Discord](https://discord.gg/zC8xjtSPKC).

Вы можете протестировать свои изменения, запустив `./gradlew :paper:runServer` или
`./gradlew :fabric:prodServer`/`./gradlew :fabric:prodClient` соответственно. Это запустит локальный сервер с
автоматически установленным скомпилированным плагином или модом, готовый для отладки в вашей IDE.

Частые вопросы

Как установить BetterView?

Установите Fabric под свою версию Minecraft, скачайте BetterView под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть BetterView?

У BetterView есть сборки для Minecraft 1.21.1–26.3.

Нужен ли BetterView на сервере?

Ставится только на сервер; игрокам ставить не нужно

Лицензия и источник
GNU General Public License v3.0 onlyможно использовать и распространять; изменённые версии — под той же лицензией и с исходным кодом
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее