-
Notifications
You must be signed in to change notification settings - Fork 0
Network Setup
If you're running more than one Spigot/Paper server — a survival server, a skyblock server, a lobby, whatever — and you want a ban on one to actually mean something on all of them, this is what you want.
SXBans syncs punishments between servers over Redis pub/sub, not through proxy-specific plugin messaging. That's a deliberate choice: it means the exact same setup works whether your proxy is BungeeCord, Waterfall, or Velocity, and it means punishments sync even if there's no player online to act as a message carrier (which is a real limitation of the older Bukkit plugin-messaging approach — it literally cannot send a cross-server message with zero players connected).
The short version: every server in your network connects to the same Redis instance, and each SXBans install publishes/subscribes to the same channels. When you ban someone on survival, that server publishes the punishment; skyblock and lobby pick it up and apply it locally.
-
Get a Redis server running somewhere all your Minecraft servers can reach. If they're on the same machine or same private network,
localhost/an internal IP is fine — you generally don't want Redis exposed to the public internet. -
On every server in the network, set in
config.yml:redis: enabled: true host: your-redis-host port: 6379 password: 'set-one-if-redis-is-reachable-by-anything-else' network: server-name: 'survival' # unique per server! sync-punishments: true
-
Give each server a unique
server-name. This is how the plugin tells servers apart in logs, the web panel, and the sync messages themselves — two servers with the same name will confuse the "did I already apply this" check and cause weirdness. -
Restart all of them. That's it — no further setup needed for basic sync.
Ban a test account on one server, then check /check <name> on another server in the network. It should show up as banned within a second or two. If it doesn't, see the checklist below.
- Confirm
redis.enabled: trueon every server, not just one. - Confirm they're all pointed at the same Redis host/port/password.
- Confirm each server has a different
network.server-name. - Check each server's console for Redis connection errors on startup — a failed connection there means that server silently isn't participating in sync at all.
- If you're running Redis with a password (
requirepassinredis.conf), make sure the plugin'sredis.passwordmatches exactly.
If you want punishments to also affect the proxy layer directly — say, rejecting a banned player's connection before they even pick a server, instead of waiting for them to connect and get kicked by the backend — you'll need a small companion plugin running on your Velocity or BungeeCord proxy. It doesn't share code with SXBans (different platforms, can't share a Bukkit-specific jar), but it can talk the same Redis protocol.
The full message format — channel names, JSON structure, field meanings — is documented in NETWORK_PROTOCOL at the root of the repo. It's short and deliberately simple; a basic Velocity plugin that subscribes to the ban channel and disconnects matching players is maybe a hundred lines of code.
There's a network.bungee-messaging.enabled option left in for backwards compatibility with an older sync mechanism that used Bukkit's plugin-messaging channels instead of Redis. If you're setting up sync for the first time, ignore it and use Redis — it's strictly more capable and works with Velocity too, which the old channel never did.