Skip to content

Proxies

Minestom supports the following proxies and their derivatives:

Connecting via the proxy

Connecting via a proxy replaces any use of MojangAuth#init.

java
VelocityProxy.enable("secret_here")
toml
# Should we forward IP addresses and other data to backend servers?
# Available options:
# - "none":        No forwarding will be done. All players will appear to be connecting
#                  from the proxy and will have offline-mode UUIDs.
# - "legacy":      Forward player IPs and UUIDs in a BungeeCord-compatible format. Use this
#                  if you run servers using Minecraft 1.12 or lower.
# - "bungeeguard": Forward player IPs and UUIDs in a format supported by the BungeeGuard
#                  plugin. Use this if you run servers using Minecraft 1.12 or lower, and are
#                  unable to implement network level firewalling (on a shared host).
# - "modern":      Forward player IPs and UUIDs as part of the login process using
#                  Velocity's native forwarding. Only applicable for Minecraft 1.13 or higher.
player-info-forwarding-mode = "NONE"
player-info-forwarding-mode = "MODERN"

Transferring between servers

To transfer players, you need inform the proxy to do so. You can either do this via the BungeeCord plugin message channel or through your own means via your own plugin message channel or a message queue.

Using the BungeeCord plugin message channel

All supported proxies should have the BungeeCord plugin message channel enabled by default.

toml
# Enables BungeeCord plugin messaging channel support on Velocity.
bungee-plugin-message-channel = true
java
final String server = "lobby"
player.sendPluginMessage("bungeecord:main", NetworkBuffer.makeArray(buffer -> {
    buffer.write(NetworkBuffer.STRING_IO_UTF8, "Connect");
    buffer.write(NetworkBuffer.STRING_IO_UTF8, server);
}));