Voxel Shop beta is live. Expect occasional bugs. Learn more
Multi-Server Raid Routing & Synchronization for UltimateRaids
Connect your UltimateRaids across multiple Minecraft servers.
RaidNetwork transforms UltimateRaids into a multi-server raid system using Redis, allowing lobby servers to discover, route and transfer players to Raid servers automatically.
Keep the real Raid configuration only on your HOST servers while CLIENT servers act exclusively as entry points.
RaidNetwork connects multiple UltimateRaids servers into the same network.
Each backend can have one of three roles:
Servers only communicate with other RaidNetwork servers using the same server group.
One of the main advantages of RaidNetwork is that your lobby does not need copies of every Raid.
Example:
LOBBY
RaidNetwork: CLIENT
plugins/UltimateRaids/raids/
(empty)
RANKUP
RaidNetwork: HOST
plugins/UltimateRaids/raids/
├── raid1.yml
├── raid2.yml
└── raid3.yml
The HOST automatically publishes its available Raids through Redis.
The CLIENT discovers:
raid1 → rankup
raid2 → rankup
raid3 → rankup
No duplicated Raid configuration is required.
A Raid does not need to already be running before a player tries to join.
When a player executes:
/raid network join raid1
RaidNetwork first searches for an existing joinable session.
If no session exists, the CLIENT automatically requests a compatible HOST to open the Raid.
Player
↓
Lobby CLIENT
↓
Search existing session
↓
No session available
↓
Find HOST advertising the Raid
↓
Open Request
↓
Reserve player
↓
Transfer to HOST
↓
UltimateRaids starts the correct Raid flow
The actual Raid continues to follow its normal UltimateRaids configuration, including environments, stages, objectives, bosses, kits, loot and player rules.
RaidNetwork fully understands UltimateRaids MINIGAME lobbies.
entry:
mode: MINIGAME
Waiting lobbies are published as network sessions and their state remains synchronized.
OPEN
↓
WAITING
↓
STARTING
↓
RUNNING
↓
WAITING
Persistent MINIGAME lobbies can remain available for future players after a match finishes.
NORMAL Raids can also be started remotely.
entry:
mode: NORMAL
If no instance currently exists, RaidNetwork can select a HOST and bootstrap the Raid when the player arrives.
No permanent MINIGAME lobby is required.
RaidNetwork remembers where network players came from.
lobby
↓
rankup
↓
Raid
↓
/raid leave
↓
lobby
Return handling also works when players leave a MINIGAME waiting lobby or an active Raid.
Previous location restoration can be enabled in the configuration.
NPCs are optional entry points and can reference Raids that only exist on remote HOST servers.
/uraid network npc create raid_npc raid1
The NPC automatically displays live RaidNetwork information and sends players through the normal network routing flow when clicked.
List NPCs:
/uraid network npc list
Remove an NPC:
/uraid network npc remove raid_npc
Look directly at a sign and use:
/uraid network sign create raid1
RaidNetwork will register that sign as a remote entry point for the selected Raid.
Remove the sign while looking at it:
/uraid network sign remove
List registered signs:
/uraid network sign list
When multiple HOST servers can run the same Raid, RaidNetwork can automatically choose where the player should go.
Available strategies include:
routing:
strategy: MOST_POPULATED
Install RaidNetwork together with UltimateRaids on every backend that will participate in the Raid network.
All servers must be connected through the same proxy network and must be able to access the same Redis server.
Example CLIENT:
server:
id: lobby
group: main
role: CLIENT
redis:
host: 127.0.0.1
port: 6379
username: ''
password: ''
database: 0
ssl: false
key-prefix: 'uraids:raidnetwork'
The server.id must match the backend server name configured in your proxy.
Example HOST:
server:
id: rankup
group: main
role: HOST
redis:
host: 127.0.0.1
port: 6379
username: ''
password: ''
database: 0
ssl: false
key-prefix: 'uraids:raidnetwork'
Both servers must use the same group and Redis connection.
Example:
rankup/plugins/UltimateRaids/raids/
├── raid1.yml
├── raid2.yml
└── raid3.yml
Do not copy these files to the CLIENT lobby.
RaidNetwork automatically publishes the HOST Raid catalog.
Run:
/uraid network status
Example:
Redis: CONNECTED
Role: CLIENT
Online servers: 2
Network sessions: 0
Advertised Raids: 3
You can also inspect the connected servers:
/uraid network servers
And the available Raids:
/uraid network raids
From the CLIENT server:
/raid network join raid1
RaidNetwork will automatically:
/raid network
/raid network join <raid>
/uraid network status
/uraid network servers
/uraid network raids
/uraid network redis
/uraid network reload
/uraid network npc create <id> <raid>
/uraid network npc remove <id>
/uraid network npc list
/uraid network sign create <raid>
/uraid network sign remove
/uraid network sign list
network:
heartbeat-seconds: 5
server-timeout-seconds: 15
session-ttl-seconds: 21600
session-freshness-seconds: 6
catalog-ttl-seconds: 30
open-request-timeout-seconds: 8
reservations:
timeout-seconds: 15
return:
ttl-seconds: 21600
restore-location: true
recover-if-host-offline: true
join:
intercept-standard-command: true
prefer-local: true
routing:
strategy: MOST_POPULATED
RaidNetwork continuously tracks server heartbeats, advertised Raids and active sessions.
CLIENT servers are never allowed to publish Raid sessions as HOSTs, and stale sessions are automatically ignored when their HOST stops refreshing them.
If Redis becomes unavailable, RaidNetwork enters an offline network mode instead of interrupting the normal UltimateRaids lifecycle.
Build dedicated Raid servers, central lobby systems or larger distributed UltimateRaids networks without duplicating your Raid configurations.
Requires UltimateRaids.
Preview:





