ShardLink links multiple Minecraft servers ("shards") together through a central hub. It's built for server owners who want to split their world across multiple machines — for example, running the Overworld on one server and the Twilight Forest or Nether on another — while keeping the experience completely seamless for players.
Features
- Cross-server chat — players on different shards see each other's messages in real time.
- Global TAB roster — the TAB player list shows every player across every shard, not just the one you're on.
- Seamless portal transfers — walking into a dimension owned by another shard automatically reconnects the client to that server and restores the player's position, inventory, and state there.
- Hub-based architecture — one central hub (the companion mcpanel web panel) coordinates all nodes.
- Server-side only — no client-side mod required. Players just join normally.
Requirements
- Minecraft: 1.21.1
- Loader: NeoForge 21.1.258+
- Hub: the ShardLink relay provided by the mcpanel web panel (WebSocket on port 8090)
- Java: 21 (server-side)
Installation
- Drop
shardlink-1.0.0.jarinto each server'smods/folder. - Create a
shardlink.jsonfile in each server's root directory (see below). - Make sure each server can reach the hub's WebSocket address.
- Start the server — it will connect to the hub automatically.
Configuration
shardlink.json (at the server root):
{
"hubUrl": "ws://192.168.4.23:8090",
"nodeId": "main",
"secret": "<shared hub secret>",
"hubName": "MC Hub",
"port": 25565,
"nodes": { "main": "192.168.*.**:25595", "tf": "192.168.*.**:25565" },
"shards": { "twilightforest:twilight_forest": "tf" }
}
| Key | Meaning |
|---|---|
hubUrl |
Hub WebSocket address (same on every node) |
nodeId |
Unique name for this server |
secret |
Shared secret — identical on the hub and all nodes |
hubName |
Display name for the hub (optional) |
port |
This server's game port (optional) |
nodes |
node_id -> "ip:port" — how clients reach each node |
shards |
"mod:dimension" -> node_id — which server owns what world |
The hub pushes the authoritative shard map and node addresses to every connected node; the local file is the boot-time fallback.
How it works
Each server runs ShardLink and connects to the hub over a WebSocket relay. When a player walks into a dimension that belongs to a different node, ShardLink serializes the player's state, notifies the hub, and sends the client a "reconnect here" packet. The client reconnects to the target server, and the player's state is restored there — making the transfer feel seamless.
FAQ
Q: Do players need to install anything? No — ShardLink is server-side only.
Q: Can I use it with just one server? Yes, it will connect to the hub and run, but the cross-server features only become active once you have two or more nodes.
Q: What dimensions can I map?
Any dimension by its full resource key, e.g. minecraft:the_nether, minecraft:the_end, aether:the_aether, twilightforest:twilight_forest.