Description
BetterBanSystem provides you with not only better solutions to ban unruly players, but also to kick, whitelist, and protect your server from unwanted steam accounts.
Features
- Battlemetrics Integration (see battle metrics integration)
- Local Storage Integration (file system)
- MySQL Integration
- Temporary or permanent banning and kicking
- Custom whitelisting
- Custom steam integration
- Discord Integration
Battlemetrics Integration
Most modern servers use battle metrics as not only a way to monitor their player count and rcon, but also as a way to ban users temporarily or permanently from an off site solution. By interacting with battle metrics through their public API, it is now possible to ban from battle metrics using the in game ban/unban commands, as well as ban from other plugins (see hooks)
Local Storage / MySQL Integration
Currently, besides battlemetrics there are two other solutions that exist for banning if you either don’t use battle metrics or it is not available. MySQL works just as you would expect it to, where it syncs to a MySQL database of your choosing and will automatically create tables as needed. Local storage simply syncs bans to a local file on the server (in the data folder of umod)
Planned Features
- (Universal) Webrequest Integration (for other custom api’s)
- (Rust) In game UI that can do everything the commands can and possibly more
- (Universal) More commands and better ban info
Commands | ||
ban [steamid/ip/username:required] [date/time:optional] [reason:required] [notes:optional] [excluded:optional|steamid,ip,name] | ||
ban DylanSMR 30d “Banned by Antihack” “ESP” | Will ban a player named DylanSMR for 30 days, reason “Banned by Antihack” and with notes “ESP” | |
ban DylanSMR “DDOS” | Will ban a player named DylanSMR permanently for reason “ddos” | |
ban 76561198424008898 12h “Trolling” | Will ban a player with the steamid 76561198424008898 for 12 hours, with reason “trolling” | |
getban [steamid/ip/username:required] | ||
getban DylanSMR | Will try to receive any ban info on player DylanSMR | |
getban 76561198424008898 | Will try to receive any ban info on player 76561198424008898 | |
removeban [steamid/ip/username:required] | ||
removeban DylanSMR | Will unban a player named DylanSMR | |
kick [steamid/ip/username:required] | ||
kick DylanSMR | Will kick a player named DylanSMR | |
whitelist [steamid/ip/username:required] | ||
whitelist DylanSMR | Will whitelist a player named DylanSMR | |
unwhitelist [steamid/ip/username:required] | ||
unwhitelist DylanSMR | Will remove a player named DylanSMR from the whitelist |
Permissions | ||
Permission | Description | |
betterbansystem.ban | Permission allows user to ban, unban and get ban information | |
betterbansystem.kick | Permission allows user to kick other users | |
betterbansystem.whitelist | Permission allows users to whitelist and unwhitelist other users |
Default Configuration | ||
Property | Default Value | Description |
Discord Webhook Url | string:none | The webhook url used to contact discord when a user is banned or kicked |
Brodcast Online Bans | boolean:true | Whether or not online bans should be broadcasted to chat |
Brodcast Offline Bans | boolean:false | Whether or not offline bans should be broadcasted to chat |
Brodcast Kicks | boolean:true | Whether or not kicks should be broadcasted to chat |
Should Native Ban | boolean: false | When a player is banned using /ban, should they also get banned using a native rust ban |
Battle Metrics Config | ||
Enabled | boolean: true | Should battle metrics integration be enabled |
API Token | string: none | Your battle metrics API token which you can get at (https://www.battlemetrics.com/developers/token) |
Organization Wide Bans | bool: true | Whether or not battle metrics bans should be organization wide |
Native Ban Synchronization | bool: false | Should battle metrics ban sync be enabled (https://learn.battlemetrics.com/article/12-ban-sync) |
Override Battle Metrics Kick | bool: false | Whether battle metrics will handle the kicking or this plugin will |
MySQL Config | ||
Enabled | boolean: true | Should MySQL integration be enabled |
MySQL Address | string: localhost | The host address of your MySQL server |
MySQL Port | int: 3306 | The port of your MySQL server |
MySQL Username | string: username | The username used to connect to your MySQL server |
MySQL Password | string: password | The password used to connect to your MySQL server |
MySQL Database | string: betterbansystem | The database that will contain ban information |
Per Server Bans | bool: true | If enabled, bans will be applied across all servers. Otherwise, they will be checked per server address |
Local Storage Config | ||
Enabled | boolean: true | Should local storage integration be enabled |
WhitelistConfig | ||
Enabled | boolean: true | Should whitelisting be enabled |
Handle Connected Players | boolean: false | When betterbansystem is loaded, should connected players be kicked if they are not whitelisted |
Admins Bypass Whitelist | boolean: true | Should admins bypass the whitelist |
Steam Restrictions config | ||
Enabled | boolean: false | Should steam restrictions be enabled |
Steam API Key | string: none | Your API Key for steam (https://steamcommunity.com/dev/apikey) |
Nax Vac Bans | int: 3 | The maximum vac bans a player can have |
Minimum Days Since Vac Ban | int: 365 | The minimum amount of days since the last vac ban a player can have |
Private Profile Allowed | bool:true | Can players have a private profile |
Violation Action | bool: false | If set to true, players will be banned instead of kicked |
Ban Length | int: 60 | How long will the ban be if the action is set to ban in minutes (0 is a perm ban) |
Localization (English) | ||
Property | Default Value | |
COMMAND_GETBAN_SYNTAX | Valid Syntax: getban [steamid/ip/username:required] | |
COMMAND_GETBAN_INFO | Ban Information For {player}\n – Reason: {reason}\n – Notes: {notes}\n – Expiration: {expiration}\n – IP Address(s): {ips}\n – Steamid(s): {ids} | |
COMMAND_UNBAN_SYNTAX | Valid Syntax: removeban [steamid/ip/username:required] | |
COMMAND_UNBAN_RESPONSE | Unban {type}:\n – Player: {player}\n – Battle Metrics: {battlemetrics}\n – MySQL: {mysql}\n – Local Storage: {localstorage}\n – Native: {native} | |
COMMAND_WHITELIST_SYNTAX | Valid Syntax: whitelist [steamid/username] | |
COMMAND_WHITELIST_NOT_ENABLED | Whitelisting is not enabled in the configuration. | |
COMMAND_WHITELIST_ALREADY_WHITELISTED | {player} is already whitelisted on this server. | |
COMMAND_WHITELIST_SUCCESS | {player} has been whitelisted successfully. | |
COMMAND_UNWHITELIST_SYNTAX | Valid Syntax: unwhitelist [steamid/username] | |
COMMAND_UNWHITELIST_NOT_ENABLED | Whitelisting is not enabled in the configuration. | |
COMMAND_UNWHITELIST_NOT_WHITELISTED | {player} is not whitelisted on this server. | |
COMMAND_UNWHITELIST_SUCCESS | {player} has been removed from the whitelist successfully. | |
COMMAND_KICK_SYNTAX | Valid Syntax: kick [steamid/username] [reason:optional] | |
COMMAND_KICK_DEFAULT_REASON | Kicked | |
COMMAND_BAN_SYNTAX | Valid Syntax: ban [steamid/ip/username:required] [date/time:optional] [reason:required] [notes:optional] [excluded:optional|steamid,ip,name] | |
COMMAND_BAN_SYNTAX_2 | Valid Syntax: ban [steamid/ip/username] [reason:required] [notes:optional] | |
COMMAND_BAN_INVALID_EXCLDUE | Invalid exclude parameter ({excluded}): Valid options are steamid, ip and name | |
COMMAND_BAN_INVALID_EXCLUDE_2 | Invalid exclude parameter, you cannot use both steamid and ip. | |
COMMAND_BAN_RESPONSE | Ban {type}:\n – Player: {player}\n – Battle Metrics: {battlemetrics}\n – MySQL: {mysql}\n – Local Storage: {localstorage}\n – Native: {native} | |
COMMANDS_NOIDENTFOUND | Unable to find player or player identifiers in string: {passed} | |
COMMANDS_NOTBANNED | Player {player} is not banned. | |
BROADCAST_BAN_ONLINE | {name} has been banned: {reason} | |
BROADCAST_BAN_OFFLINE | {name} has been banned: {reason} | |
BROADCAST_KICK | {name} has been kicked: {reason} | |
STEAM_KICK_PRIVATEPROFILE | Your profile must be public to play on this server | |
STEAM_KICK_MAXVACBANS | Exceeded maximum {count} vac bans | |
STEAM_KICK_VACBANDAYS | You cannot have a vac ban within the last {days} days | |
WHITELIST_KICK | You are not whitelisted on this server. |
Issues and Reports:
Given that this plugin uses an experiential API with battle metrics there is a high likelihood there will be multiple errors that I was not able to catch upon release. These errors should not effect your ability to ban or unban people as that has been tested exclusively, but certain features like native banning (sync) on battle metrics has proven to cause some issues. This is why the removeban command is not named unban, as that has proven to cause issues with battle metrics. If you encounter any issues, please contact me on discord at DylanSMR#6251, or via lones discord in the plugin support channel.
Cloudflare Errors:
After any set amount of time using this plugin with the battle metrics integration you may start to receive cloud flare errors. Sadly there is nothing I can do about this from what I am aware, however what you will have to do is go to https://www.battlemetrics.com/contact and contact them. You will most likely be asked to provide your servers ip(s).
Reviews
There are no reviews yet.