Голосовой чат по расстоянию в Minecraft - это мод или плагин на сервере и соответствующий мод в клиенте каждого игрока. Большинство серверов используют Simple Voice Chat: на Paper он работает как плагин, а на Fabric, NeoForge и Forge - как мод, и ему нужна одна дополнительная вещь, которую большинство гайдов пропускают, - собственный UDP-порт, по умолчанию 24454, доступный из интернета. Установите серверную часть, откройте или выделите порт, укажите плагину адрес, который должны использовать игроки, если он отличается от игрового, и попросите каждого игрока поставить клиентский мод. Игроки Bedrock, заходящие через Geyser, пользоваться им не могут вообще, и это ограничение нужно понимать до того, как строить сообщество вокруг голоса.
Как работает голос по расстоянию#
Своего голосового чата в Minecraft нет, поэтому голосовые моды держат второй канал рядом с игровым соединением:
Клиентский мод захватывает ваш микрофон, кодирует звук в Opus и отправляет его по UDP на голосовой сервер, который работает внутри процесса сервера Minecraft. Сервер знает позицию каждого игрока, поэтому пересылает ваш звук только тем, кто в радиусе, а их клиенты воспроизводят его с вашего направления и с затуханием. Игровое соединение используется для согласования голосовой сессии - через него клиент узнаёт адрес и секрет для голосового канала, - но сам звук никогда не идёт по TCP-соединению игры.
Для голоса UDP - правильный выбор: потерянный пакет - это проглоченный слог, а не пауза, пока пакет пересылают заново. Цена - отдельный порт и отдельный протокол, а именно о них и забывают правила файрвола и выделение портов в панели. Почему так, разобрано в статье TCP или UDP для игровых серверов.
Simple Voice Chat, Plasmo Voice и альтернативы#
| Вариант | Серверная часть | Клиентская часть | Примечания |
|---|---|---|---|
| Simple Voice Chat | Плагин Paper или мод Fabric/NeoForge/Forge | Нужен мод | Самый распространённый, много аддонов |
| Plasmo Voice | Плагин Paper или мод | Нужен мод | Другая экосистема аддонов, свой конфиг |
| Discord или другие голосовые приложения | Ничего | Ничего | Нет зависимости от расстояния, зато работает у всех |
Simple Voice Chat (автор henkelmax) - вариант по умолчанию, потому что он есть на всех платформах, у него простой конфиг и он поддерживает не только расстояние, но и группы. Plasmo Voice - основная альтернатива с похожей архитектурой и собственным набором аддонов; принципы портов и подключения ниже относятся и к нему, только со своим файлом конфига и ключами.
Голос по расстоянию меняет то, как играется сервер. Серверы выживания становятся социальными так, как текстовому чату никогда не удаётся; ролевые и хоррор-карты превращаются в другие игры. Меняется и модерация - об этом ниже.
Установка Simple Voice Chat на сервер#
На Paper: скачайте сборку Simple Voice Chat для Bukkit/Paper под вашу версию Minecraft и положите jar в plugins/. На Fabric или NeoForge: сборка мода под ваш загрузчик кладётся в mods/, вместе с Fabric API, если на странице мода сказано, что он нужен.
Запустите сервер один раз. Конфиг создаётся здесь:
| Платформа | Файл конфига |
|---|---|
| Paper, Spigot | plugins/voicechat/voicechat-server.properties |
| Fabric, NeoForge, Forge | config/voicechat/voicechat-server.properties |
Важные ключи:
port=24454bind_address=voice_host=max_voice_distance=48.0whisper_distance=24.0codec=VOIPmtu_size=1024keep_alive=1000enable_groups=trueallow_recording=trueforce_voice_chat=falseЗа что отвечает каждый ключ:
- `port` - UDP-порт, на котором слушает голосовой сервер. Последние версии принимают и
-1, то есть «тот же номер порта, что у сервера Minecraft»; это работает, потому что игра использует на этом номере TCP, а голос - UDP. Полезно ли это, зависит от хостера, см. следующий раздел. - `bind_address` - на каком локальном адресе слушать. Пусто - на всех. Оставьте пустым, если только вы не знаете, что у машины несколько адресов и нужен конкретный.
- `voice_host` - адрес, к которому клиенты должны подключаться для голоса, если он отличается от адреса, по которому они зашли в игру. Пусто означает «тот же хост, что у игры, на
port». Подробно ниже. - `max_voice_distance` - на сколько блоков разносится обычная речь. По умолчанию
48. Меньшее значение делает разговоры локальнее, а людные спавны тише. - `whisper_distance` - радиус шёпота.
- `codec` -
VOIP,AUDIOилиRESTRICTED_LOWDELAY.VOIPнастроен на речь и является правильным значением по умолчанию. - `mtu_size` - максимальный размер пакета. Уменьшите, если голос подключается, но в некоторых сетях звук прерывается.
- `enable_groups` - позволяет игрокам создавать группы, которые слышат друг друга независимо от расстояния. Популярная функция; отключите, если нужен строго голос по расстоянию.
- `allow_recording` - можно ли клиентам записывать голос. Некоторые сообщества это отключают.
- `force_voice_chat` - кикает игроков, зашедших без мода. Используйте, только если голос действительно необходим серверу.
Точные значения по умолчанию меняются от релиза к релизу; сгенерированный файл снабжён комментариями, и он главный источник для вашей версии. После изменений перезапустите сервер.
Порт и voice_host#
Если голос не подключается, это почти всегда проблема с портом. Клиент получает от сервера адрес голоса и шлёт туда UDP; если там ничего доступного не слушает, клиент показывает состояние «voice chat not connected», а игра при этом работает идеально.
На собственной машине откройте 24454/udp в файрволе и пробросьте его на роутере, если хостите дома. У хостера с панелью нужен выделенный порт для голоса, потому что каждый сервер может слушать только на выданных ему портах. В RE:NODE в тарифы Minecraft входит один порт, а ещё один добавляется на вкладке Network; укажите в port выданный вам номер.
Этот номер часто не 24454. Хостеры выделяют то, что свободно, так что голосовой порт у вас может быть 25632, а игра - на 25565. Укажите в port выделенный номер. Клиенты узнают его от сервера автоматически, так что игрокам ничего вводить не нужно.
voice_host нужен, когда адрес, по которому игроки заходят в игру, - не тот адрес, куда должен идти голос. Типичные случаи:
- SRV-запись или домен. Игроки заходят на
mc.example.com, который через SRV разрешается вnode.host.example:25565. Голос по умолчанию идёт на тот хост, к которому подключился клиент, - это работает, если уmc.example.comесть ещё и A-запись на ту же машину, и не работает, если есть только SRV. Укажите вvoice_hostадрес, который разрешается напрямую. - Прокси перед сервером. Игроки подключаются к прокси, а голос работает на бэкенде. На каждом бэкенде укажите в
voice_hostпубличный адрес бэкенда и его голосовой порт (следующий раздел). - Туннель или сервис проброса. Игровой адрес принадлежит туннелю, а голосового порта там нет. Укажите в
voice_hostто место, где UDP-порт действительно доступен.
voice_host=play.example.com:25632voice_host может включать порт, и тогда он переопределяет port в том, что сообщается клиентам. Если вписываете сюда имя хоста, оно должно разрешаться в адрес сервера; почему одних SRV-записей недостаточно ни для чего, кроме самой игры, объясняется в статьях DNS-записи простыми словами и SRV-записи для Minecraft.
Клиенты, версии и игроки Bedrock#
Каждому игроку, которому нужен голос, нужен клиентский мод Simple Voice Chat под его версию Minecraft и загрузчик: Fabric (с Fabric API), NeoForge или Forge. Ванильные клиенты голосом пользоваться вообще не могут; играть они по-прежнему могут, но не слышат и не слышны, если только force_voice_chat не закрывает им вход.
- Версии должны быть совместимы. Сетевой протокол мода время от времени меняется. Клиентский мод намного старше или новее серверного может подключиться к игре, но не запустить голос. Сообщите игрокам, какую версию ставить.
- Модпаки, в которых Simple Voice Chat уже есть на клиенте, решают это за вас, и это одна из причин, почему голос так распространён на модовых серверах.
- Серверам Paper всё равно нужен клиентский мод у каждого игрока; плагин - только серверная половина.
Игроки Bedrock им пользоваться не могут. Игроки, заходящие на Java-сервер через Geyser, сидят на клиентах Bedrock, которые не умеют загружать Java-моды. Клиентской установки для них нет. В голосе они будут немыми и глухими, а в сообществе, построенном вокруг голоса, фактически станут игроками второго сорта. Если значительная часть вашего сообщества играет с телефонов или консолей, единственный вариант, доступный всем, - голос в Discord или другом внешнем приложении. Другие вещи, которые не переносятся между платформами, перечислены в статье Geyser и Floodgate.
Голос за прокси#
В сети на Velocity или BungeeCord прокси пересылает трафик Minecraft, но не голосовой UDP. Есть два способа заставить это работать:
Голос на каждом бэкенде с прямым доступом. Каждый бэкенд запускает Simple Voice Chat на своём выделенном UDP-порту, а voice_host указывает на публичный адрес и порт этого бэкенда. Когда игрок переходит на другой сервер, его клиент переподключает голос к новому бэкенду. Это самая простая схема у хостера с панелью, где каждый бэкенд - отдельный сервер со своими портами.
Голос через прокси. В последних версиях Simple Voice Chat есть поддержка прокси, которая пересылает голос через прокси, и игрокам нужно достучаться только до адреса прокси. Сверьтесь с документацией мода для вашей версии: нужна соответствующая сборка на прокси и правильная настройка voice_host на бэкендах, а прокси добавляется в путь звука.
В обоих случаях голос привязан к бэкенду: игроки в лобби не слышат игроков на выживании. Группы тоже не работают между серверами. Остальная настройка сети описана в руководстве по сети на Velocity.
Трафик, CPU и ресурсы#
Для сервера голос - лёгкая нагрузка. Каждый говорящий игрок отправляет поток маленьких пакетов Opus, десятки килобит в секунду, а сервер копирует каждый пакет игрокам в радиусе. Молчащие игроки почти ничего не отправляют. Сервер не декодирует и не смешивает звук, он пересылает пакеты. Нагрузка на основной поток пренебрежимо мала, потому что голосовой сервер работает в своих потоках.
Где это накапливается:
- Людные спавны. Тридцать игроков в одном месте в радиусе друг друга означают, что каждый пакет уходит двадцати девяти людям. Трафик растёт примерно как квадрат размера толпы. Помогает меньший
max_voice_distance. - Группы пересылают звук каждому участнику независимо от расстояния.
Даже так сервер на сто игроков с голосом по меркам игровых серверов даёт скромную нагрузку на канал. Сравнение с другими играми - в статье трафик на одного игрока.
Модерация, аддоны и права#
Голос модерировать сложнее, чем текст: лога нет, и единственные доказательства - записи. Заложите это в план:
- Права. На Paper у плагина есть узлы прав вроде
voicechat.listen,voicechat.speakиvoicechat.groups, которые можно снять с группы или отдельного игрока через LuckPerms - по сути голосовой мут. - Правила. Напишите правила для голоса: никакой музыки через микрофон, никакого крика, никаких оскорблений. Игроки должны знать, что жалобы на голос рассматриваются так же серьёзно, как жалобы на чат.
- Доказательства. С
allow_recording=trueигроки могут записывать и присылать фрагменты. Это полезно для модерации и одновременно касается приватности; упомяните это в правилах.
Популярные аддоны из той же экосистемы - AudioPlayer (собственные музыкальные пластинки и козьи рога, звучащие через голос) и Voice Chat Interaction (голос активирует скалк-сенсоры), плюс клиентские звуковые моды, добавляющие реверберацию и заглушение звука препятствиями. Серверные аддоны ставятся рядом с основным плагином или модом; клиентские - выбор каждого игрока.
Устранение проблем#
Значок голоса у всех показывает «not connected». Порт недоступен. Проверьте выделенный порт, проверьте, что port с ним совпадает, что это UDP, и перезапустите. Поищите в консоли сервера при запуске строку, где голосовой сервер сообщает, на каком порту слушает.
Работает у игроков из той же сети, у остальных нет. Домашний хостинг с пробросом порта только для TCP, или voice_host указывает на локальный адрес.
Работает по IP, но не по домену. У домена только SRV-запись. Укажите в voice_host имя хоста с A-записью или IP.
Подключается, но звук прерывается. Потеря пакетов или фрагментация. Уменьшите mtu_size и проверьте соединение самого игрока - как это определить, показано в статье задержка, джиттер и потеря пакетов.
Один игрок не может подключиться, а все остальные могут. Версия его клиентского мода несовместима, или его сеть блокирует исходящий UDP (так делают некоторые школьные и офисные сети).
Голос пропадает после перехода между серверами в сети. У нового бэкенда неверный voice_host или не выделен порт.
FAQ#
Какой порт использует Simple Voice Chat?
По умолчанию UDP 24454, задаётся через port в voicechat-server.properties. На хостинге это обычно тот дополнительный порт, который вам выделили, и сервер автоматически сообщает клиентам правильный.
Нужно ли игрокам что-то устанавливать?
Да. Каждому игроку, которому нужен голос, нужен клиентский мод Simple Voice Chat под его версию Minecraft и загрузчик. Игроки без него могут играть, но не слышат и не могут говорить.
Могут ли игроки Bedrock пользоваться голосом по расстоянию на сервере с Geyser?
Нет. Клиенты Bedrock не умеют загружать Java-мод. Играть на сервере через Geyser они могут, а доступа к голосу у них нет; если их обязательно нужно включить в общение, используйте внешнее голосовое приложение.
Вызывает ли голосовой чат лаги на сервере?
Ни в одной нормальной конфигурации. Голосовой сервер работает вне основного потока и только пересылает пакеты. Он расходует часть канала, и расход растёт с размером толпы, но на TPS это не влияет.
Можно ли использовать Simple Voice Chat на сервере Paper без модов?
Серверная часть - обычный плагин Paper, так что серверу загрузчик модов не нужен. А вот игрокам по-прежнему нужен клиентский мод, то есть модовый клиент, например Fabric с установленным модом.




Комментарии
Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.