This plugin keeps bans synced across your entire Rust server network using a shared MySQL table. When a player is banned on one server, the info is instantly pushed to the database and pulled by your other servers, stopping banned players from server-hopping and making sure every machine enforces the same rules.
Features
- Syncs bans across all servers using a shared MySQL database.
- Pushes native Rust bans to the shared database automatically.
- Rejects banned players instantly during connection approval, before they fully join.
- Bans are cached in memory; servers never block on SQL queries during player connection.
- Supports both permanent and temporary bans with automatic expiry.
- Console commands to manually ban, unban, and check ban status.
- Includes origin and timestamp info to track where each ban came from.
- Built on MySQL, making it easy to reuse ban data for web dashboards, cross-server tools, or long-term moderation systems.
Commands
bs.ban <steamId64> [reason] [durationSeconds]
- Bans a player globally. You can optionally include a reason and how long the ban should last (in seconds).steamId64
- The player's Steam ID.reason
- (optional) Reason for the ban.durationSeconds
- (optional) Duration of the ban in seconds. Leave blank for permanent.
bs.unban <steamId64>
- Removes a player from the shared ban list and unbans them from the server.steamId64
- The player's Steam ID.
bs.check <steamId64>
- Checks if a player is on the shared ban list and shows how long the ban lasts (if any).steamId64
- The player's Steam ID.
Configuration
JSON:
{
"Version": "1.0.0",
"MySql": {
"Host": "CHANGE_ME",
"Port": 3306,
"Database": "CHANGE_ME",
"Username": "CHANGE_ME",
"Password": "CHANGE_ME",
"Table Name": "bansync"
},
"Ban Sync Interval Seconds": 300.0,
"Kick Message": "You are banned on this network."
}
MySql
- Settings needed to connect to your shared MySQL database.Host
- IP address or hostname of your MySQL server.Port
- Port used by your MySQL.Database
- Name of the database to store and read bans from.Username
- MySQL user with permission to access the database.Password
- Password for the MySQL user.Table Name
- Name of the table inside the database where ban records are stored.
Ban Sync Interval Seconds
- How often (in seconds) to push native bans and pull shared bans.Kick Message
- The base message shown to banned players when they're kicked (reason and duration are added automatically).
Database Table
steamid | reason | expires | origin | created |
---|---|---|---|---|
76561199104881804 | Ban evade | 0 | EU Vanilla | 1748587357 |
76561198012345678 | Toxic behavior | 1748700000 | EU Vanilla | 1748581200 |
76561198311223344 | Exploiting | 1748600000 | EU Main | 1748574000 |
76561199099887766 | Alt account ban | 0 | US Trio | 1748590000 |
steamid
- The 64-bit Steam ID of the banned player (used for identification).reason
- The reason for the ban. This will show in the kick message.expires
- A UNIX timestamp when the ban expires (0 means permanent).origin
- The hostname of the server that issued the ban.created
- A UNIX timestamp of when the ban was created.