Друг играет с телефона, вы — с компьютера на Java-версии, и зайти на один сервер вы не можете. Ситуация настолько частая, что под неё выросла целая экосистема: Geyser переводит протокол Bedrock в Java на лету, а Floodgate избавляет от необходимости покупать вторую копию игры.

Работает это лучше, чем звучит. У меня на серверах Bedrock-игроки составляют иногда до трети онлайна и в целом не отличаются от остальных — разве что строят чуть медленнее из-за сенсорного управления.
Что именно делает Geyser
Bedrock и Java — разные игры на уровне сетевого протокола. Java использует TCP, Bedrock — RakNet поверх UDP. Формат пакетов, идентификаторы блоков, система инвентаря — всё разное.
Geyser поднимает слушатель на UDP-порту, принимает подключения Bedrock-клиентов и транслирует их в Java-протокол, представляясь вашему серверу обычным Java-игроком. Обратно — тем же путём.
Второй компонент, Floodgate, решает вопрос аутентификации. Bedrock-игрок авторизован в Xbox Live, а не в Microsoft-аккаунте Java-версии. Без Floodgate придётся переводить сервер в офлайн-режим, что открывает дверь всем желающим. С Floodgate сервер остаётся в online-mode=true для Java-игроков и при этом принимает проверенных Bedrock-игроков.
Это ключевой момент, который часто упускают: связка Geyser + Floodgate позволяет не отключать лицензионную проверку. Без Floodgate придётся выбирать между безопасностью и кроссплеем.
Что работает, а что нет
Честный список ограничений, чтобы не было сюрпризов.
| Статус | Что именно |
|---|---|
| Работает нормально | Выживание, строительство, PvP, редстоун, торговля с жителями, большинство плагинов, чат, команды, скины, звуки |
| Работает с оговорками | Кастомные модели через CustomModelData (нужна геометрия в Bedrock-паке), сложные GUI на основе инвентаря (иногда криво), книги и таблички (редактируются по-разному) |
| Не работает | Моды Forge и Fabric на клиенте (Bedrock-клиент их не понимает в принципе), некоторые пакетные хитрости плагинов, кастомные шейдеры |
Версии тоже надо держать в голове. Geyser поддерживает конкретный диапазон версий Bedrock и Java. После выхода обновления Bedrock проходит день-два, прежде чем Geyser обновится — в это время мобильные игроки войти не смогут. Держите автообновление или следите за релизами.
Установка на Paper или Spigot
Самый частый сценарий. Оба плагина ставятся обычным способом.
Скачиваете с geysermc.org два JAR: Geyser-Spigot.jar и floodgate-spigot.jar. Кладёте в папку plugins/, перезапускаете сервер. Если с загрузкой плагинов по FTP ещё не работали — процесс описан в инструкции по установке плагинов.
После первого запуска появится plugins/Geyser-Spigot/config.yml. Минимально нужные правки:
bedrock:
address: 0.0.0.0
port: 19132
clone-remote-port: false
motd1: "Наш сервер"
motd2: "Java и Bedrock вместе"
server-name: "Survival"
remote:
address: auto
port: 25565
auth-type: floodgate
passthrough-motd: true
passthrough-player-counts: trueauth-type: floodgate — обязательно, если ставите Floodgate. При auth-type: online каждому Bedrock-игроку придётся связывать аккаунт с купленной Java-лицензией, что убивает всю идею.
remote.address: auto заставляет Geyser подключаться к серверу, внутри которого он работает. Оставляйте так.
В plugins/floodgate/config.yml интересна одна строка:
username-prefix: "."
replace-spaces: trueПрефикс отличает Bedrock-игроков в списке: ник Steve с телефона станет .Steve. Это защищает от подмены: никто с Java не сможет зайти под ником Bedrock-игрока, потому что точка в нике Java-версии недопустима. Менять префикс на пустую строку не советую — теряете именно эту защиту.
replace-spaces: true меняет пробелы в Xbox-никах на подчёркивания. У Bedrock-игроков пробелы в нике встречаются постоянно, а Java-сервер их не принимает.
Порт 19132 и почему подключение не идёт
Главный источник проблем. Bedrock работает по UDP, и порт нужно открыть именно как UDP.
На VPS с ufw:
sudo ufw allow 19132/udp
sudo ufw reloadС iptables:
sudo iptables -A INPUT -p udp --dport 19132 -j ACCEPTЕсли сервер за NAT — пробросьте UDP 19132 на роутере. Правило для TCP 25565, которое у вас уже есть для Java, тут не поможет: это разные протоколы.
Проверить, слушается ли порт:
sudo ss -ulnp | grep 19132Должна появиться строка с процессом java. Если пусто — Geyser не стартовал, смотрите логи сервера на предмет ошибки привязки порта. Доступность снаружи Geyser умеет проверять сам: команда geyser connectiontest <ip> <port> в консоли сервера, она описана в официальной инструкции по установке Geyser.
На игровых хостингах порт под Geyser обычно нужно запросить отдельно или выбрать из выделенного диапазона. Просто прописать 19132 в конфиге недостаточно, если он не выделен вашему серверу.
Кстати, 19132 — порт по умолчанию для Bedrock. Если вы его используете, игрокам достаточно ввести адрес сервера без порта. При любом другом значении порт придётся указывать вручную, что для мобильной аудитории уже барьер.
Standalone-режим и прокси
На связке серверов под BungeeCord или Velocity Geyser ставится на прокси, а не на каждый бэкенд. Логика та же, но JAR другой: Geyser-BungeeCord.jar или Geyser-Velocity.jar. Floodgate ставится и на прокси, и на все бэкенд-серверы — иначе бэкенды не будут знать, что за игрок к ним пришёл.
Отдельный вариант — standalone. Geyser запускается как самостоятельный процесс, возможно вообще на другой машине, и подключается к вашему серверу по сети:
java -Xms512M -jar Geyser-Standalone.jarВ remote.address тогда указывается реальный IP сервера. Полезно, когда сервер на хостинге без возможности открыть UDP-порт, а под Geyser есть отдельный VPS. Расход ресурсов у standalone скромный: 512 МБ RAM хватает на несколько десятков Bedrock-игроков.
Скины, ресурспаки и мелочи
Скины Bedrock-игроков Geyser подтягивает автоматически и показывает Java-игрокам. Обратное тоже работает. Иногда скин не грузится с первого раза — обычно помогает перезаход.
Ресурспаки для Bedrock отдаются отдельно: положите .mcpack или .zip в папку plugins/Geyser-Spigot/packs/, и Geyser предложит их Bedrock-клиентам. Java-пак им не подойдёт — форматы текстур и моделей разные. Если у вас на сервере есть свой пак, готовьтесь делать вторую версию. Как раздаётся основной пак Java-игрокам, описано в материале про ресурспаки.
Формы и меню. Geyser умеет показывать Bedrock-игрокам нативные формы вместо GUI на сундуках — через Cumulus API. Плагины, которые это поддерживают (например, некоторые магазины и меню), выглядят на телефоне заметно лучше.
Команды с чувствительными к регистру аргументами иногда работают странно, потому что Bedrock-клиент любит автокапитализацию. Мелочь, но игроки регулярно жалуются.
Частые вопросы
Нужна ли Bedrock-игрокам лицензия?
Нужна купленная Minecraft: Bedrock Edition и аккаунт Microsoft. Floodgate избавляет от необходимости покупать ещё и Java-версию, но саму Bedrock-игру они должны иметь. Это не способ обойти лицензию — это способ не покупать две.
Можно ли совместить Geyser с офлайн-режимом?
Технически да, но тогда вы теряете проверку и для Java, и получаете дыру в безопасности. Если сервер сознательно офлайновый, придётся ставить AuthMe и настраивать его совместимость с Floodgate — там есть свои тонкости с автологином Bedrock-игроков.
Сколько ресурсов ест Geyser?
Трансляция протокола стоит процессорного времени: примерно 5–15% дополнительной нагрузки при заметной доле Bedrock-игроков. По памяти — около 300–500 МБ на плагин плюс расход на игроков. На сервере с 4 ГБ это чувствуется, на 8 ГБ практически нет.
Почему сервер не виден в списке на телефоне?
Bedrock-клиент показывает внешние серверы в разделе «Серверы», и добавлять их надо вручную по адресу и порту. На консолях (Xbox, PlayStation, Switch) добавление сторонних серверов заблокировано — там нужны обходные пути вроде BedrockConnect, и это отдельная история.
Коротко
Geyser плюс Floodgate ставятся как два обычных плагина, требуют одной правки конфига (auth-type: floodgate) и открытого UDP-порта 19132. Девяносто процентов проблем с подключением — это закрытый UDP или порт, не выделенный хостингом. Скины и чат работают из коробки, ресурспак придётся делать в двух форматах, а моды на клиенте Bedrock-игрокам недоступны в принципе.
Если планируете кроссплей с самого старта, проверьте при выборе тарифа, что дополнительный UDP-порт можно открыть — это сэкономит переписку с поддержкой позже.


