Skip to content
Zurück zum Blog

Raknetify: Fixing Minecraft Lag on Unreliable Connections

ice
ice
@ice
Updated
14 Aufrufe
TL;DR:Raknetify uses RakNet's multi-channel architecture to eliminate Minecraft lag on unreliable connections. Learn how it works, how to install it, and whether you actually need it for your playstyle.
GitHub · Minecraft community project

raknetify (RelativityMC/raknetify)

A Fabric mod / Velocity plugin / BungeeCord plugin that uses RakNet to improve multiplayer experience significantly under unreliable and rate-limited connections.

Star on GitHub ↗
⭐ 191 stars💻 Java📜 MIT

Sitting in a Minecraft server with a ping that spikes between 150ms and 2000ms on your residential internet, or stuck on a throttled mobile hotspot? Raknetify tackles exactly this problem by replacing Minecraft's standard TCP connection with RakNet's multi-channel protocol, which prioritizes critical game packets and retries failures intelligently. If you're on a good connection, you won't notice much. If you're not, this can genuinely change whether the game feels playable.

What This Project Does

Raknetify isn't a magic wand that eliminates lag. What it does is reorganize how Minecraft sends and receives data so that your connection quality problems hurt you less. Minecraft normally sends everything over a single TCP stream. That means one lost packet can cause a cascade of delays as the client and server resync. RakNet, the networking library that powers Minecraft Bedrock and many other games, uses multiple priority channels instead. Critical packets like player position updates get their own lane, while less urgent stuff (like a distant player's animation) can wait.

The result is lower perceived latency and fewer frame freezes, especially noticeable when you're on a residential connection that gets throttled, or anywhere with significant packet loss. You can also prefix your server address with `raknet;` (or `raknetl;` for a different MTU setting) and connect directly, which is refreshingly simple. The mod and plugin versions both exist, so whether you're running a vanilla-based proxy like Velocity or BungeeCord, or a Fabric server, you've options.


When You'd Want This

Honestly, most players on stable home internet with a decent ISP won't see dramatic improvements. You'd install Raknetify if you fall into one of these camps:

  • You play over mobile hotspot. Cellular data is inherently flaky, with packet loss spiking during heavy use. Raknetify's retry logic handles this way better than standard TCP.
  • Your ISP throttles you. Some residential networks have per-connection or per-IP rate limits that make multiplayer stutter. Multi-channel prioritization helps here.
  • You're running a geographically distant server. High absolute ping sucks, but if it's stable, standard Minecraft handles it fine. But if that high-ping connection is also lossy (satellite, undersea cables, intercontinental hops), Raknetify reduces retransmit delays.
  • You run a proxy like Velocity or BungeeCord and want to support players on poor connections. Installing it server-side means your entire playerbase benefits without having to mod their clients (though client-side installation is more effective).

And if you're in a region with genuinely bad internet infrastructure, this is worth trying. The overhead is minimal, and since it's a drop-in replacement, worst case you just remove it if it doesn't help.


Installation and Setup

The install process is straightforward, but there are a few prerequisites you should know about upfront.

Before you start: Raknetify requires Minecraft 1.17.1 or newer (so most modern versions, though older 1.16 servers are out of luck). And here's the non-obvious part: your server needs an open UDP port at the same port number as your normal server port. If your server runs on port 25565, you need UDP 25565 open too. Check your firewall and port forwarding rules before installing.

For Fabric servers: Grab the latest release from Modrinth or GitHub. Drop it in your mods folder on both the server and client machine. Restart the server and client, then connect by prefixing your server address: `raknet;mc.example.com` instead of just `mc.example.com`. That's it.

bash
# Example: connecting to a Fabric server with Raknetify
# In Minecraft multiplayer menu, add server:
# Name: My Server
# Address: raknet;mc.example.com
# Port: (leave blank, defaults to 25565)

For Velocity or BungeeCord proxies: Download the plugin version (available on SpigotMC for BungeeCord, Modrinth for Velocity). Install it in your plugins folder, restart the proxy, and you're done. Clients connecting through your proxy will automatically benefit. Install it client-side too for better results.

If you want to try development builds before a stable release, the CodeMC CI server hosts them. That's useful if a bug's been reported and fixed but not officially released yet.


How the Multi-Channel System Works

The secret sauce is RakNet's prioritized channels. Instead of one TCP connection carrying all traffic, Raknetify creates multiple virtual channels with different priorities. Your player position, rotation, and block interactions get high priority. Particle effects, distant mob animations, and chat messages get lower priority. When packet loss happens on a lossy connection, the low-priority stuff gets dropped, not your movement updates.

For example: you're on a spotty mobile hotspot and a chunk starts loading at the exact moment 20 other players teleport near you. Standard Minecraft might queue all those messages and freeze your view for half a second as TCP tries to resend lost packets in order. Raknetify would drop some of the particle effects and distant player animations, but keep your own movement smooth because that traffic is segregated into a higher-priority channel.

There's also an MTU (maximum transmission unit) variant. If you're on a network with aggressive packet fragmentation, using `raknetl;` instead of `raknet;` sets a higher MTU, which can reduce overhead in some cases. The README doesn't go deep on when to use which, so it's mostly trial and error if you're having trouble.


ViaVersion Support (Cross-Version Connections)

Raknetify works alongside ViaVersion if you're running a proxy that supports older or newer client versions. If you're proxying a 1.20.1 server but want 1.21 clients to connect, ViaVersion translates the protocol. Raknetify plays nicely with this setup. Just install both and you're good.

One caveat though: if you're running Raknetify on a proxy (Velocity/BungeeCord) and an unsupported client version connects (say, an ancient 1.8 client on a 1.21 server), Raknetify can fail to initialize multi-channel mode. You'd fall back to standard TCP, which defeats the purpose. This is noted in the README but easy to miss. If your proxy serves many legacy versions, test this scenario first.


Gotchas and What Trips People Up

Most Raknetify issues come from missing prerequisites, not the mod itself.

  • UDP port not open. This is the most common one. If clients can't reach your UDP port, Raknetify falls back to TCP silently, and you won't know anything went wrong. Check your firewall and port forwarding. Use the Minecraft Server Status Checker to verify your server is reachable, then manually test UDP connectivity if possible.
  • Version mismatches. Raknetify requires 1.17.1+. If you're on 1.16, it won't work. And both client and server should be on the same or similar Minecraft versions, or ViaVersion needs to be handling the translation.
  • Proxy version confusion. The BungeeCord version and Velocity version are different builds. Download the right one for your proxy type.
  • False hope on already-stable connections. If your connection is already good (low ping, no packet loss), Raknetify won't make things faster. You might even see a tiny overhead. Only install it if you actually have unreliable connections to test against.

Performance-wise, the overhead is minimal. You're trading a tiny bit of CPU for better packet prioritization, which is almost always worth it.


Similar Projects and Alternatives

A few other projects address related problems, though none do exactly what Raknetify does:

  • Geyser. Bridges Bedrock and Java Edition. It also uses RakNet for Bedrock clients, but it's solving a different problem (cross-platform play) rather than connection reliability per se.
  • Proxy-side optimizations. Some proxy configs like Velocity's compression settings can help, but they don't reorganize how packets are prioritized the way Raknetify does.
  • Custom server software. Some forks of Spigot claim to optimize networking, but most are unmaintained or outdated. Raknetify is actively developed and has a clean, modular approach.

If you're running a large public server and want to squeeze every bit of performance out of unreliable connections, you could stack Raknetify with other optimizations. But for most people, Raknetify alone handles the job.

So should you install it? If you're on stable internet, probably not. If you're stuck with a flaky connection and want to see if it helps, it takes five minutes and costs nothing. And if you run a proxy server that serves players globally or in areas with poor infrastructure, it's worth having in your toolkit. The code is clean, it's actively maintained, and the community around it seems responsive to issues.

Frequently Asked Questions

Is Raknetify free and open source?
Yes, Raknetify is completely free and distributed under the MIT license. The source code is available on GitHub, so you can inspect how it works or contribute. There's no cost to use it on personal or public servers.
Do I need to install Raknetify on both the client and server?
For best results, yes. Client-side installation alone gives some benefit, but having it on both sides lets you use Raknetify's full multi-channel system. If you're running a proxy (Velocity/BungeeCord), installing the plugin there helps even if clients don't have the mod.
What Minecraft versions does Raknetify support?
Raknetify requires Minecraft 1.17.1 or newer. Older versions like 1.16 are not supported. It works with recent releases and snapshots, and is compatible with Fabric, Velocity, and BungeeCord platforms.
Does Raknetify work with mods that change networking, like ViaVersion?
Yes, Raknetify works alongside ViaVersion if you're proxying multiple versions. However, note that unsupported client versions on a proxy may fail to initialize Raknetify's multi-channel mode and fall back to standard TCP. Test your setup if you support legacy clients.
Will Raknetify help if I already have a good internet connection?
Probably not noticeably. Raknetify shines on unreliable or rate-limited connections. On stable, low-latency internet, you're unlikely to see improvements and might even see minimal overhead. Only install it if you're actually experiencing connection quality issues.