Docs / Game Servers / Multi-Server BungeeCord and Velocity Proxy

Multi-Server BungeeCord and Velocity Proxy

By Admin · Mar 15, 2026 · Updated Apr 23, 2026 · 611 views · 2 min read

What is a Minecraft Proxy?

BungeeCord and Velocity are proxy servers that sit in front of multiple Minecraft servers, allowing players to switch between them seamlessly. This enables server networks with hub servers, survival worlds, minigame servers, and more.

Velocity vs BungeeCord

  • Velocity: Modern, better performance, Paper-recommended, active development
  • BungeeCord: Older, wider plugin ecosystem, more community resources
  • Recommendation: Use Velocity for new networks

Setting Up Velocity

mkdir -p /opt/velocity && cd /opt/velocity

# Download latest Velocity
wget https://api.papermc.io/v2/projects/velocity/versions/3.3.0-SNAPSHOT/builds/latest/downloads/velocity-3.3.0-SNAPSHOT-latest.jar -O velocity.jar

# Start once to generate config
java -Xms512M -Xmx512M -jar velocity.jar

Configure velocity.toml

# velocity.toml
bind = "0.0.0.0:25565"
motd = "My Server Network"
max-players = 500
online-mode = true
player-info-forwarding-mode = "modern"

[servers]
hub = "127.0.0.1:25566"
survival = "127.0.0.1:25567"
creative = "127.0.0.1:25568"
minigames = "127.0.0.1:25569"

try = ["hub"]

[forced-hosts]
"survival.example.com" = ["survival"]
"creative.example.com" = ["creative"]

Configure Backend Servers

# Each backend Paper server needs:
# paper-global.yml
proxies:
  velocity:
    enabled: true
    online-mode: false
    secret: "your-forwarding-secret"

# server.properties for each backend
server-port=25566  # Different port per server
online-mode=false  # Velocity handles auth

Running All Servers

# Systemd services for each
for server in velocity hub survival creative minigames; do
cat > /etc/systemd/system/mc-$server.service << EOF
[Unit]
Description=Minecraft $server
After=network.target
[Service]
WorkingDirectory=/opt/$server
ExecStart=/opt/$server/start.sh
User=minecraft
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
done

systemctl enable --now mc-velocity mc-hub mc-survival mc-creative mc-minigames

Firewall

# Only expose the proxy port
ufw allow 25565/tcp
# Backend servers listen on localhost only

Essential Plugins

  • LuckPerms: Cross-server permissions
  • LimboAuth: Authentication plugin for Velocity
  • Geyser: Allow Bedrock players to join
  • ViaVersion: Support multiple MC versions
  • MiniMessage: Modern text formatting

Was this article helpful?