---
title: "Velocity and BungeeCord: connect several servers into one network"
url: https://help.endercloud.in/docs/velocity-and-bungeecord-proxy-network
category: "Minecraft Hosting › Plugins, Mods & Modpacks"
type: Guide
tags: ["config", "minecraft", "proxy"]
keywords: "proxy network, lobby server, hub, multiple servers, server network, velocity.toml, forwarding.secret, modern forwarding, paper-global.yml, bungeecord true, spigot.yml, ip_forward, waterfall, /server command, connect servers, velocity, bungeecord, velocity setup, bungeecord setup, minecraft network, connect two servers, lobby and survival server, velocity forwarding"
difficulty: advanced
time: "30 minutes"
updated: 2026-11-14
source: Endercloud Knowledge Base (official)
---

# Velocity and BungeeCord: connect several servers into one network

> Run a proxy (Velocity recommended) on its own server, add your backend servers to velocity.toml, and turn on modern forwarding so backends can safely use online-mode=false.

A **proxy** joins several Minecraft servers into one network: players connect to one address and move between a lobby, survival, minigames and so on with `/server`. On Endercloud, each part is a **separate server**: one small server for the proxy and one server for each game world. We recommend **Velocity**; BungeeCord is covered at the end.

## What you need

-   **A proxy server.** The proxy needs little RAM, so the **Grass** plan (2 GB) is ideal for it.
    
-   **Two or more backend servers** running Paper or Purpur (or Fabric with the FabricProxy-Lite mod), each sized for its players.
    
-   New backend servers start with the whitelist **on**. Add your players on each backend (`whitelist add Name`) or turn it off there, otherwise players are kicked when the proxy sends them over.
    
-   Modern forwarding needs Minecraft 1.13 or newer on the backends.
    

## Step 1: Install Velocity on the proxy server

1.  In the [Game Panel](https://panel.endercloud.in), open the server that will be the proxy and go to the **Versions** tab.
    
2.  Click **Velocity** (under Recommended), click the latest version, tick **Accept EULA** in the pop-up and click **Install**.
    
3.  Start it once so it creates `velocity.toml` and `forwarding.secret`, then stop it.
    

## Step 2: Configure velocity.toml

Open **Files** on the proxy and edit `velocity.toml`:

1.  Make sure `online-mode = true`. The proxy checks every player's Minecraft account.
    
2.  Set `player-info-forwarding-mode = "modern"`.
    
3.  Check that `bind` uses your proxy server's port (shown in the panel header), for example `bind = "0.0.0.0:45568"`.
    
4.  In the `[servers]` section, list your backends as `name = "IP:port"`. Use each backend's **Server IP** from its **Dashboard** and its port.
    
5.  Set `try` to the server players should join first.
    
6.  The `[forced-hosts]` section has example entries that point to server names. Edit or remove any entry that names a server you deleted, or Velocity will show an error.
    

```
[servers]
lobby = "203.0.113.10:45570"
survival = "203.0.113.10:45575"
try = ["lobby"]
```

Replace the example addresses with your own.

## Step 3: Configure each backend server

Do this on **every** backend server, with the server stopped:

1.  In **Properties**, set `online-mode` to `false` and save. (The proxy does the account check instead.)
    
2.  In **Files**, open `spigot.yml` and make sure `settings.bungeecord` is `false`.
    
3.  Open `config/paper-global.yml`. Under `proxies:` → `velocity:` set:
    

```
proxies:
  velocity:
    enabled: true
    online-mode: true
    secret: 'paste the text from forwarding.secret here'
```

Copy the secret from the proxy's `forwarding.secret` file. The `online-mode` value here must match `online-mode` in `velocity.toml`. (On Paper 1.18.2 and older, these options are in `paper.yml` under `settings.velocity-support`.)

Start the backends, then the proxy. Players join using the **proxy's** address and can switch with `/server survival`.

## Security: protect your backends

> **Important:**
> A backend with `online-mode=false` trusts whoever connects to it. If someone can join it **directly**, they can log in as any player, including you or your admins. Only turn off `online-mode` on a backend that sits behind a proxy with forwarding set up.

-   With Velocity modern forwarding enabled in `paper-global.yml`, Paper refuses players who try to join the backend directly, because they can't present the secret. This is why modern forwarding matters on a shared host where you cannot add your own firewall.
    
-   Keep `forwarding.secret` private. Anyone with it can pretend to be your proxy. If it leaks, delete the file, restart the proxy to create a new one, and update every backend.
    
-   Don't share backend addresses with players, and don't put them on a subdomain.
    

## Using BungeeCord instead

Install **BungeeCord** from the **Versions** tab (Waterfall is deprecated). In BungeeCord's `config.yml`, set `ip_forward: true`, add your backends under `servers` with their `address`, and set your lobby in `priorities`. On each backend, set `online-mode=false` and `settings.bungeecord: true` in `spigot.yml`. BungeeCord forwarding has no secret, so backends can be joined directly by attackers. If you must use it, add a protection plugin such as BungeeGuard. Velocity is the safer choice.

## Plugins on a network

-   Proxy plugins (Velocity or BungeeCord builds) go on the proxy; Paper plugins go on the backends.
    
-   For crossplay, put Geyser and Floodgate on the proxy: see [Geyser and Floodgate](/docs/geyser-and-floodgate-java-bedrock-crossplay).
    
-   LuckPerms on several servers needs one shared MySQL database: see [LuckPerms setup](/docs/luckperms-ranks-and-permissions).
    

## Frequently asked questions

**Q: "Unable to connect you to lobby" or players are kicked when switching**

Check that the backend is online, that the IP and port in `[servers]` are correct, that `proxies.velocity.enabled` is `true`, and that the secret matches `forwarding.secret` exactly.

**Q: Can I run the proxy and a game on one server?**

No. Each Endercloud server runs one software at a time, so the proxy and each backend need their own server.

**Q: Players have wrong skins or new UUIDs**

Forwarding isn't working. Recheck Step 2 and Step 3, then restart the backends and the proxy.

Still stuck? [Open a ticket](https://billing.endercloud.in/tickets/create) with your `velocity.toml` (remove the secret) and console logs.
