Skip to content
On this page

Advanced Theory


  • Node — a virtual or dedicated server that can host servers and proxies. Has an IP address.
  • Proxy — a Velocity or Bungee instance running on a Node.
  • UDP Proxy — A separate proxy server used to forward UDP traffic.
  • Server (Game Server) — a Paper server running on a Node.
  • Voice Server — an instance of Voice Server is launched by a Plasmo Voice plugin on a Game Server.

Voice Server Configuration

By default, the plugin config is configured like this:

ip = ""
port = 0

IP is used for 2 different purposes:

  • Bind Address — The IP that the plugin will use to start a voice server. Should always be the IP of the Node that you run the server on.
    • The default value of means that the IP will be inferred from the IP of the Node it is running on. Most of the time you don't need to change it.
  • Public Address — The IP that the player will connect to.
    • The default value of means that the player will try to connect to the same IP used to connect to a Game Server or Proxy. That is when problems may arise.
    • You can change the Public Address using [host.public]

If the port is set to 0 then the Voice Server will use the port of the Server.

So, if the IP of your node is

And your looks like this:


The default config will be equivalent to this:

ip = ""
port = 25565


Lets say we have a Node A: and Node B:

Node A is hosting:

  • Proxy
  • Server A

Node B is hosting:

  • Server B

With default configuration player will connect to a server via the Proxy IP

When the player connects to Server B it will then try to establish a connection with a Voice Server using the same IP it used to connect to a Proxy.

With the default setting this means that the player will try to connect to a Voice Chat sever on

Uh oh, this is a problem. The Voice Server is actually running on

Luckily this problem can be fixed by changing the Public Address in the Plasmo Voice config on the Server.

ip = ""
port = 0

ip = ""
port = 2000