Skip to content

Automatic transfers

pjscruggs edited this page Nov 8, 2026 · 2 revisions

Fabric, Forge, and NeoForge servers can select RakNet when transferring a capable client to a configured destination. This uses Minecraft's native transfer support, introduced in Java Edition 1.20.5. Check that your Raknetify2 release supports the Minecraft version and loader at each end.

Install Raknetify2 on the sending server and client. The destination must provide a compatible RakNet listener and accept incoming Minecraft transfers.

This configuration applies to transfers sent by the three mod loaders above. The Spigot/Paper, Velocity, and BungeeCord plugins do not read this transfers file.

Configure the sending server

Create config/raknetify2-transfers.json in the sending server's directory:

{
  "destinations": [
    {
      "host": "play.example.com",
      "tcpPort": 25565,
      "udpPort": 25570
    }
  ]
}

Replace the example hostname and ports with your destination's values, then restart the sending server. Additional destinations go in the same array.

Field Meaning
host Destination hostname or IP address, without a transport prefix or port
tcpPort Destination port in the original transfer request
udpPort Public RakNet port the transferred client should contact

The TCP and UDP port numbers can be equal. If a router translates the UDP port, use the public port in this file. Write ports as JSON numbers.

Send transfers to the destination's ordinary hostname and TCP port. Raknetify2 checks whether the client advertises automatic-transfer support. For a capable client and a matching destination, it selects the configured UDP port. Other clients and unmatched destinations keep the original transfer address.

Matching uses the hostname and TCP port from the transfer request. Hostname capitalization, a final DNS dot, and equivalent IPv6 spelling are normalized. DNS lookups do not participate in matching, so two different hostnames that resolve to the same address need separate entries. Wildcard entries are unsupported.

Destination setup

For a destination using Minecraft's server.properties, set accepts-transfers=true and restart it. A destination proxy may have its own transfer setting. Minecraft's default rejects incoming transfers, even when a normal direct join works.

The destination's RakNet listener, public UDP forwarding, and host firewall must already be configured. The sending server's transfers file selects the address sent to a client.

Check both the destination's IPv4 and IPv6 routes when its hostname publishes both address types. Test an ordinary direct RakNet connection to the destination before investigating automatic transfer behavior.

Keep any destination login or admission checks in place. This configuration does not grant players access or replace server authentication.

Configuration errors and disabling

Missing fields, unknown fields, invalid ports, and duplicate destinations cause a configuration error during initialization. Use the server log to identify the error, correct the JSON, and restart.

To disable automatic selection, remove the configuration file or use {"destinations": []}, then restart the sending server. Its transfer requests will keep their original addresses.

Clone this wiki locally