Difference between BungeeCord and Velocity
Many new Minecraft network administrators often make a fundamental mistake: they assume BungeeCord is either a plugin they install on their server or simply another type of Minecraft server. In reality, both BungeeCord and its modern counterpart, Velocity, are standalone proxy servers – dedicated applications designed to sit between players and an entire fleet of backend Minecraft servers. Their core mission is to create a seamless, unified network experience, allowing players to jump between different game modes or worlds without ever disconnecting.
![]()
The Foundation: What Proxy Servers Do for Minecraft Networks
At their heart, both BungeeCord and Velocity serve the same critical purpose: to act as a central gateway for a Minecraft network. Imagine having a lobby server, a survival server, a creative server, and a minigames server, each running independently. Without a proxy, players would have to manually disconnect from one server and reconnect to another every time they wanted to switch game modes. This is where BungeeCord and Velocity step in.
They achieve this by:
- Acting as an Intermediary: Players connect to the proxy’s single IP address, not directly to any backend server. The proxy then routes their connection to the appropriate backend.
- Enabling Seamless Transitions: Players can use in-game commands like
/server <name>or interactive elements (e.g., portals) to switch between backend servers instantly, without seeing a “disconnected” screen. - Centralizing Authentication: The proxy handles the initial player authentication with Mojang, ensuring that backend servers can run in
offline-mode=false. This is crucial for security and performance, as individual backend servers don’t need to manage authentication themselves. - Managing Player Identity: They forward player data and identity information to the respective backend servers as players navigate the network.
This fundamental functionality remains consistent across both solutions. However, the ‘how’ they achieve this, and the implications of those differences, is where BungeeCord and Velocity diverge significantly.
Architectural Design: BungeeCord’s Legacy vs. Velocity’s Modernity
The most profound differences between BungeeCord and Velocity stem from their underlying architectural designs. These choices directly impact performance, scalability, and security.
BungeeCord’s Single-Threaded Approach
- Standalone Java Application: BungeeCord operates as a dedicated Java program, separate from your Minecraft server instances. It is not a plugin for Spigot or Paper.
- Single-Threaded Processing: This is BungeeCord’s primary architectural limitation. It handles player connections and network traffic primarily on a single CPU thread. While this was a common design pattern in its era, it becomes a significant bottleneck for larger networks. As player counts increase, the single thread can get overwhelmed, leading to increased latency, packet loss, and a generally less responsive experience for players.
- Legacy IP Forwarding: BungeeCord uses an older method for transmitting player identity (IP address and UUID) to backend servers. This method, often referred to as “legacy IP forwarding,” is a plain-text transmission. While functional, it has significant security implications if not properly secured.
Velocity’s Multi-Threaded, Optimized Design
- Modern Successor: Velocity was developed by the PaperMC team as a direct response to BungeeCord’s limitations, aiming to provide a more performant and secure proxy for modern Minecraft networks.
- Multi-Threaded Architecture: In stark contrast to BungeeCord, Velocity leverages a multi-threaded design. This means it can distribute the workload of handling player connections and network traffic across multiple CPU cores. The result is dramatically improved scalability, lower latency, and better overall performance, especially under high player loads.
- Secure Modern Forwarding: Velocity introduces a much more robust method for player identity forwarding. This “modern forwarding” is MAC-authenticated (Message Authentication Code), meaning the player’s identity data is cryptographically signed. This makes it far more secure than BungeeCord’s legacy method, as it prevents malicious actors from easily impersonating other players by directly connecting to a backend server.
- Optimized Packet Handling: Velocity features highly optimized packet handling routines, reducing the overhead associated with processing Minecraft’s network traffic.
- Native Compression Libraries: It can utilize native compression libraries like libdeflate (on Linux), further boosting network efficiency and reducing bandwidth usage.
Performance, Scalability, and Resource Management
When it comes to handling a large number of players or high-volume network traffic, the architectural differences translate directly into tangible performance disparities.
BungeeCord’s Performance Ceiling: The single-threaded nature of BungeeCord means that its performance is ultimately limited by the speed of a single CPU core. Even with a powerful multi-core processor, BungeeCord can only effectively utilize one core for its primary operations. This can lead to CPU bottlenecks, especially on networks with hundreds or thousands of concurrent players. While BungeeCord can be stable for smaller networks, it struggles to scale efficiently as player counts grow. Practical advice suggests allocating at least 1GB of RAM for every 1000 players on a BungeeCord instance, but even with ample RAM, the CPU limitation often remains.
Velocity’s Scalability Advantage: Velocity, with its multi-threaded design, can fully utilize modern multi-core CPUs. This allows it to handle significantly more concurrent players and higher network throughput with lower latency. Its optimized code and native compression further contribute to a smoother, more responsive experience for players, even on very large networks. For any network aspiring to significant player counts, Velocity offers a much more robust and future-proof foundation.
Security: Protecting Your Network from Exploits
Network security is paramount, and here, Velocity holds a clear advantage over BungeeCord.
BungeeCord’s Security Weakness: BungeeCord’s legacy IP forwarding is considered “fundamentally insecure” if backend servers are not properly firewalled. Because the player’s identity is sent in plain text, a player who bypasses the proxy and connects directly to a backend server (e.g., by knowing its private IP address) can easily spoof their UUID and IP, effectively impersonating any other player. This can lead to griefing, unauthorized access, and other severe security breaches.
Velocity’s Enhanced Security: Velocity’s secure modern forwarding mitigates this risk significantly. By cryptographically signing the player’s identity data, it becomes extremely difficult for an attacker to spoof their information. Even if a player manages to connect directly to a backend server, the server will reject their connection if the forwarded identity data isn’t properly signed by the Velocity proxy. This provides a much stronger layer of protection against impersonation.
Regardless of the proxy used, it is always crucial to firewall your backend servers. This means configuring your server’s firewall to only accept connections from the proxy server’s IP address, preventing any direct connections from players. This is an essential security measure that complements Velocity’s secure forwarding and is absolutely critical for BungeeCord.
Ecosystem, Development, and Compatibility
The choice between BungeeCord and Velocity also involves considering their respective development statuses, plugin ecosystems, and compatibility nuances.
BungeeCord’s Stagnation: BungeeCord is largely considered an outdated project with minimal ongoing updates. Even its popular fork, Waterfall (developed by the PaperMC team), is now considered end-of-life. The PaperMC team, who once maintained Waterfall, now actively recommends transitioning to Velocity. This means BungeeCord users may encounter fewer bug fixes, less support for newer Minecraft versions, and a general lack of modern features.
Velocity’s Active Development: As the modern successor developed by the PaperMC team, Velocity benefits from active development, regular updates, and support for the latest Minecraft versions. This ensures compatibility, performance improvements, and ongoing security enhancements.
Plugin Ecosystem Differences: BungeeCord has a larger and more mature plugin ecosystem simply because it has been around longer. Many established networks have built their infrastructure around BungeeCord plugins. Velocity, being newer, has a smaller but growing plugin ecosystem. While many popular BungeeCord features have Velocity equivalents, some specific or niche plugins might not have a direct port or require an adapter. It’s important to note that BungeeCord and Velocity use distinct, non-interchangeable plugin APIs, meaning you cannot use a BungeeCord plugin directly on Velocity, and vice versa.
Minecraft Version Compatibility: Velocity’s secure modern forwarding typically requires Minecraft 1.13+. For networks needing to support older Minecraft versions, falling back to legacy forwarding or using a plugin like BungeeGuard might be necessary, which could make BungeeCord a simpler, albeit less secure, option in those specific cases.
Modded Servers: For modded backend servers (e.g., Fabric or Forge), Velocity might require specific forwarding mods (like FabricProxy-Lite for Fabric or Proxy Compatible Forge for Forge) installed on the backend servers to ensure optimal compatibility with its secure forwarding mechanism.
Key Takeaways and Recommendations
When deciding between BungeeCord and Velocity, several factors should guide your choice:
- For New Networks: If you are building a new network, especially one targeting Minecraft 1.13+ and using PaperMC or its forks for backend servers, Velocity is the unequivocally recommended choice. Its superior performance, enhanced security, and active development make it the clear winner for modern Minecraft networks.
- For Existing BungeeCord Networks: Consider migrating to Velocity. While it requires finding Velocity-compatible plugins or equivalents, the long-term benefits in performance, security, and future-proofing are substantial.
- Host Proxy and Backends Together: To minimize latency and ensure the best player experience, always host your proxy and all backend Minecraft servers in the same datacenter or geographical region.
- Secure Your Backend Servers: Regardless of the proxy, always firewall your backend servers to prevent direct connections from players. This is a critical security step.
- Use Internal IPs: If your servers are on the same local network, configure the proxy to connect to your backend servers using their private or internal IP addresses.
- Understand the Basics: Remember that both proxies are standalone applications, not plugins. They require at least three servers to operate effectively: one for the proxy itself and two or more backend Minecraft servers.
- Configuration is Key: Many issues arise from incorrect IP configurations or YAML formatting in the proxy’s
config.ymlfile. Double-check these settings carefully.
In essence, while BungeeCord laid the groundwork for Minecraft proxy networks, Velocity has evolved the concept, offering a more robust, secure, and performant solution tailored for the demands of modern server environments. The future of Minecraft proxying undoubtedly lies with Velocity and its successors.