Docs
Features

PlasmoVoice

Voice chat with PlasmoVoice behind Infinity-Filter.

PlasmoVoice is a voice-chat mod for Minecraft. Infinity-Filter supports it as a first-class module backend, so voice traffic is filtered and your backend IP stays hidden.

Setup overview

Players → IF dedicated IP (UDP) → Velocity/BungeeCord (PlasmoVoice proxy plugin) → Spigot backends (PlasmoVoice server plugin)

The dedicated IP receives voice UDP traffic at the edge and forwards it to the proxy. The proxy distributes voice to the right backend Spigot servers.

Step 1 — Order a dedicated IP

Follow the Dedicated IP order flow. You receive a CNAME of the form <uid>.ip.infinity-filter.com — that’s what you’ll use for both DNS and the module backend.

Step 2 — Add the PlasmoVoice module backend

On Network → Backends, click Add backend → pick PlasmoVoice in the type dropdown.

Add backend dialog with PlasmoVoice selected
Add backend → PlasmoVoice — the proxy IP plus the proxy plugin's listening UDP port.

Enter the backend ip:port:

  • IP — the proxy’s IP (Velocity or BungeeCord).
  • Port — the proxy plugin’s listening UDP port — not the per-Spigot port.

This is the most common point of confusion. Use the proxy-side port, not the backend Spigot port.

Step 3 — Install PlasmoVoice

  • On the Velocity / BungeeCord proxy: install the PlasmoVoice proxy plugin.
  • On each Spigot backend: install the PlasmoVoice server plugin.
  • Optional: install the PlasmoVoice mod in the client if you want extra features beyond the in-game chat.

Step 4 — Configure the public host

PlasmoVoice’s server config uses a [host] section with an ip and port, plus optional proxy_ip / proxy_port keys to advertise a public address that differs from the bind address. When you sit behind Infinity-Filter, the public address is your dedicated-IP CNAME — players connect to that, not to your backend.

On the Velocity PlasmoVoice proxy plugin:

plugins/plasmovoice/config.toml toml
[host]
ip = "0.0.0.0"          # bind on all interfaces
port = 60606            # the listening UDP port
proxy_ip = "voice.example.com"   # the dedicated-IP CNAME
proxy_port = 60606               # advertised to clients

On the BungeeCord PlasmoVoice proxy plugin:

plugins/plasmovoice/config.toml toml
[host]
ip = "0.0.0.0"
port = 60606
proxy_ip = "voice.example.com"
proxy_port = 60606

On every Spigot backend, set proxy_ip to the same dedicated-IP CNAME as above. Only the listening port may differ per server.

plugins/PlasmoVoice/config.toml toml
[host]
ip = "0.0.0.0"
port = 60606            # may differ per backend
proxy_ip = "voice.example.com"   # same CNAME everywhere
proxy_port = 60606

The proxy_ip is your dedicated-IP CNAME (e.g. voice.example.com resolved to {uid}.ip.infinity-filter.com). The same value goes everywhere — that’s what tells clients to connect via Infinity-Filter instead of hitting your origin directly.

Step 5 — DNS

Create a CNAME pointing the voice hostname at your dedicated IP CNAME:

zone.conf dns
voice.example.com.   300   IN   CNAME   {uid}.ip.infinity-filter.com.

Cloudflare orange-cloud OFF. No SRV needed.

Step 6 — Docker UDP port mapping

If your backend runs in Docker, the UDP voice port must be explicitly mapped to the host. Forgetting this is a common “voice silently doesn’t work” trap.

docker-compose.yml yaml
services:
  velocity:
    ports:
      - "25577:25577"
      - "60606:60606/udp"   # <-- the PlasmoVoice voice port (UDP!)

A correct voice_host with a missing UDP port mapping looks like everything is configured, but no UDP packet reaches the proxy. Confirm the mapping before debugging anywhere else.

Diagnostic recipe — “Voice silently doesn’t work, proxy_ip is correct everywhere”

Almost always one of:

  • Docker UDP port not mapped. Add 60606:60606/udp to the proxy container.
  • Backend firewall blocks the UDP port. Allow the port from Infinity-Filter’s IP ranges.
  • proxy_ip mismatches on one Spigot backend. Re-check every config.toml.

What’s next

Last updated: May 28, 2026