config.yml
The main configuration file for BanManager.
| Platform | Location |
|---|---|
| CraftBukkit/Spigot/Paper | /plugins/BanManager/config.yml |
| BungeeCord | /plugins/BanManager/config.yml |
| Fabric | /config/banmanager/config.yml |
| Sponge | /config/banmanager/config.yml |
| Velocity | /plugins/BanManager/config.yml |
mutedCommandBlacklistMuted players will be blocked from using commands within this list. Command aliases will automatically be found and blocked, e.g.
msgwill blocktell. Do not prefix commands with/.Example
mutedCommandBlacklist: - msgsoftMutedCommandBlacklist- identical tomutedCommandBlacklistbut only affects players who are soft mutedduplicateIpCheckDisplays a warning to those with
bm.notify.duplicateipspermission when a player joins with the same IP as a banned player, defaults totrue.Example
duplicateIpCheck: truebypassDuplicateChecksA list of IPs to exclude from the banned player duplicate check.
Example
bypassDuplicateChecks: - 0.0.0.0 - 127.0.0.1 - '0:0:0:0:0:0:0:1' # IPv6 supportedlogKicksRecords players kicked from the server via
/kick, defaults tofalse.Use the command /bminfo <player> -kicks to view these records.
Example
logKicks: truelogIpsRecords when a player leaves and joins the server, along with their ip address. Defaults to
true. If set tofalse, only the most recent IP address will be stored. For GDPR compliancy, you may wish to purge data older than a certain period of time; see cleanUp for further information.Use the command /bminfo <player> -ips to view these records.
Example
logIps: truedisplayNotificationsBroadcasts punishments to players with bm.notify.X permissions, defaults to
true.Example
displayNotifications: truebroadcastOnSyncBroadcasts a notification when new punishments are synced between the database and server, defaults to
false.Example
broadcastOnSync: truetimeLimitsGenerates a permission to limit the time period a player can issue a punishment for. Once configured, assign the player with the appropriate permission e.g.
bm.timelimit.X.Ywhere X is the punishment type and Y is the custom name you have defined.Example
Based on the following configuration, granting a player the
bm.timelimit.playerBans.Moderatorpermission will only allow them to/tempbana player for up to 1 day:timeLimits: playerMutes: Moderator: 1h playerBans: Moderator: 1d playerWarnings: Moderator: 30d ipBans: Moderator: 1d ipMutes: Moderator: 1d rollbacks: Moderator: 1d nameBans: Moderator: 1dcooldownsTo prevent duplicate punishments against a player in quick succession, set a cooldown to limit the time in seconds before a player can be punished again. Set to 0 to disable. Defaults to 10 seconds.
Example
cooldowns: ban: 10 tempban: 10 mute: 10 tempmute: 10 banip: 10 tempbanip: 10 warn: 10 tempwarn: 10 report: 10warningActionsExecute a list of commands against a player when they reach a warning point threshold. By default, a single warning is worth 1 point. Use the
-pflag when warning a player to change this, e.g./warn confuser -p 5 Hacking.enabled- Set totrueto enable, defaults tofalseactions<number of points>cmd- The command to execute upon reaching the number of points, the following tokens are available:[player],[playerId],[actor],[reason],[id],[points].delay- Optional, specify a delay in seconds of when to run the command, defaults to0and executes immediately.pointsTimeframe- Optional, specify a timeframe to only trigger the command if the total accumulated points was reached within the past timeframe. For example, setting this to30dmeans the total number of points accumulated in the past 30 days must equal<number of points>in order for this command to trigger.
Example
The following will mute a player immediately and ban a player after 10 seconds upon reaching a total of 5 warning points:
warningActions: enabled: true actions: '5': - cmd: ban [player] [reason] delay: 10 - cmd: mute [player] [reason] '6': - cmd: ban [player] [reason] delay: 5 pointsTimeframe: 30dwarningMuteForces players to type the reason of their most recent warning before being allowed to speak in chat again. Note: removed on server restart or when player leaves. Defaults to
false.Example
warningMute: truehooksAllows running commands before and after a punishment.
enabled- Set totrueto enable, defaults tofalseevents<event>- One of:ban,tempban,unban,mute,tempmute,unmute,warn,tempwarn,ipban,tempipban,unbanip,iprangeban,tempiprangeban,unbaniprange,note,report<when>- Eitherpreto run before the punishment is issued orpostto run after the punishment is issuedcmd- The command to execute, available tokens are dependent on event type:ban -
[player],[playerId],[actor],[reason]tempban -
[player],[playerId],[actor],[reason],[expires]unban -
[player],[playerId],[actor],[reason],[expires]if a temporary ban or0mute -
[player],[playerId],[actor],[reason]tempmute -
[player],[playerId],[actor],[reason],[expires]unmute -
[player],[playerId],[actor],[reason],[expires]if a temporary mute or0warn -
[player],[playerId],[actor],[reason]tempwarn -
[player],[playerId],[actor],[reason],[expires]ipban -
[ip],[actor],[reason],[expires]tempipban -
[ip],[actor],[reason],[expires]unbanip -
[ip],[actor],[reason],[expires]if a temporary ban or0iprangeban -
[from]starting IP address,[to]end IP address,[actor],[reason]tempiprangeban -
[from]starting IP address,[to]end IP address,[actor],[reason],[expires]unbaniprange -
[from]starting IP address,[to]end IP address,[actor],[reason],[expires]if a temporary ban or0note -
[player],[playerId],[actor],[message]report -
[player],[playerId],[actor],[message]
delay- Optional, specify a delay in seconds of when to run the command, defaults to0and executes immediately.
Example
The following will immediately IP ban the player and kick them in 10 seconds time before a ban is issued. After a ban is issued, a message will immediately be broadcasted.
hooks: enabled: true events: ban: pre: - cmd: kick [player] [reason] delay: 10 - cmd: banip [player] [reason] post: - cmd: broadcast [player] bannedcheckForUpdates- deprecated and currently unsupported inv7offlineAutoCompleteEnables auto completing offline player names when issuing BanManager commands, e.g. typing
/ban cand then tab will suggest all players beginning with the letterc. Note, this is case-sensitive.Example
offlineAutoComplete: truepunishAltsAutomatically applies punishments to alts (players who share the same IP address) on join. Defaults to
falseas this could block siblings or those on shared internet connections.Example
punishAlts: truedenyAltsAutomatically prevents players joining if the same IP address is associated with a ban
Example
denyAlts: truetimeAssociatedAltsTime in seconds a player's IP address should be classified as an alt of another player. Defaults to
0for an IP address to always be associated to a playerExample
timeAssociatedAlts: 604800cleanUpKeep records for a defined number of days. Specify 0 to never delete.
playerHistoryrequires logIps to be enabled and only purges IP addresses that are not currently IP banned.Example
The following will keep a history of kicks for 30 days and ban records for 10 days. All other records are kept indefinitely.
cleanUp: kicks: 30 banRecords: 10 ipBanRecords: 0 ipMuteRecords: 0 muteRecords: 0 readWarnings: 0 unreadWarnings: 0 playerHistory: 0maxOnlinePerIpThe maximum number of players allowed to connect from the same IP address. Set to
0to disable. Defaults to0.Example
maxOnlinePerIp: 1maxMultiaccountsRecentlyThe maximum number of players allowed to connect from the same IP address (recently logged in). Set to
0to disable. Defaults to0. SetmultiaccountsTimeto specify the time range in seconds.Example
The following only allows a player to join the server if nobody has joined the server with the same IP address in the past 5 minutes (300 seconds):
maxMultiaccountsRecently: 1 multiaccountsTime: 300checkOnJoinQueries the database for new player punishments when a player attempts to join. BanManager stores a cache of punishments in memory and frequently queries the database for changes; this is sufficient for single servers.
For networks, enabling this can remediate delays in punishments syncing between servers. Defaults to
falseas this could become a performance bottleneck against the database when there are spikes in players joining. Before enabling this, try changing the schedules.yml sync task options.Example
checkOnJoin: truecreateNoteReasonsEnables creation of notes based on text in between
( ). E.g./ban confuser testing (too good)will ban fortestingand create a notetoo good. Defaults tofalse.Example
createNoteReasons: trueonlineModeIf you are using bungeecord set to online mode, leave this as
true. If you are using an offline mode server, set this tofalse; this will cause BanManager to use case-insensitive UUIDs for player lookups, i.e.ConfuserandcOnFuSerwill be identified as the same player. Defaults totrueExample
onlineMode: truechatPriorityBanManager will attempt to block muted players from chatting. However, some chat plugins can intefere with this causing messages to still display. Change the priority accordingly. Defaults to
normal.The following options in order of priority are available:
lowest,low,normal,high,highest,monitor.Example
chatPriority: highblockInvalidReasonsPrevents executing commands with an invalid reason, i.e. missing from reasons.yml. E.g.
/ban confuser #speel-erorrwill return an error message instead of banning the player for#speel-erorr. Defaults tofalse.Example
blockInvalidReasons: true