Moving a network from BungeeCord to Velocity

Networking & Proxies Reviewed September 6, 2026 2 min read

Velocity is the modern proxy and it is worth moving to. It is not a drop-in replacement, though — the config format, the plugins and the forwarding security are all different, and the last one is the part that silently leaves a network exposed.

What changes

BungeeCordVelocity
Config fileconfig.ymlvelocity.toml
PluginsBungeeCord pluginsVelocity plugins — not compatible
ForwardingLegacy forwardingmodern with a shared secret
Backend settingbungeecord: true in spigot.ymlvelocity section in paper-global.yml
PerformanceFineNoticeably better under load

The migration, in order

  1. List your BungeeCord plugins and find equivalents first

    Do this before anything else. If a plugin your network depends on has no Velocity version, that decides whether you move at all.

  2. Set up Velocity alongside, not instead

    Run it on a different port with the same backends listed. You can test the whole thing before switching a single player over.

  3. Switch forwarding to modern on both sides

    player-info-forwarding-mode = "modern" in velocity.toml, and the matching proxies.velocity block in each backend's paper-global.yml, with the secret copied across.

  4. Move the address across last

    When it works, point your DNS or your published address at the new proxy. That is the only step players notice.

Legacy forwarding on a modern proxy is an open door

If a backend is still configured for BungeeCord forwarding while the proxy sends modern, players either cannot connect or — worse, depending on the settings — connect unauthenticated. Every backend must be switched at the same time as the proxy, and every backend must be unreachable from the internet regardless.

Keep the old proxy configured but stopped for a week

If something turns out to be broken on a Tuesday evening, switching back is a start button rather than a rebuild. Delete it when you have gone a week without wanting it.

How to confirm it worked

You connect through Velocity, /server moves you between backends, your skin and UUID are correct on each, and connecting directly to a backend's port fails.