Configurable Ban System with Reason IDs
SmartBans is a lightweight yet powerful banning system designed for server staff who want to ban players quickly, consistently, and with clear reasoning. Instead of typing out full reasons every time, use short configurable reason IDs like /ban Notch 1 to apply a preset punishment instantly.
✅ Features:
- Ban with Reason IDs – Assign numeric codes to punishments (e.g. 1 = Cheating, 2 = Griefing) or toggle it off and use the Reasons directly!
- Mute with Reason IDs – or again use the Reasons directly!.
Fully Configurable – Set your own reasons, durations, and messages in config.yml.
- Lightweight & Fast – No unnecessary bloat; perfect for all server sizes.
- ️ Permission-Based – Fine-tuned control for staff roles.
Example Usage
Examples
/ban Notch 1
→ Bans Notch for 30 days for "Cheating"
/ban Herobrine 2
→ Bans Herobrine for 7 days for "Griefing"
/unban Notch
→ Unbans Notch
Permissions:
Permissions
banplugin.ban
> Allows banning players
banplugin.unban
> Allows unbanning players
banplugin.admin
> Allows banning and unbanning
banplugin.mute
> Allows muting
banplugin.unmute
> Allowes unmuting
banplugin.*
> Grants all permissions
banplugin.bypass
> Allows that you can't be banned/muted/kicked
banplugin.history
> Allows to see a players ban / mute history
banplugin.reload
> Allowes reloading the plugin
Config Example:
Config
# Ban Plugin Configuration
# Configure ban reasons, durations, and IDs
settings:
use-id-system:
ban: true # true = use IDs (1,2,3), false = use reasons directly
mute: true # true = use IDs (1,2,3), false = use reasons directly
bans:
1:
reason: "Cheating/Hacking"
duration: "30d"
2:
reason: "Griefing"
duration: "7d"
3:
reason: "Spam/Advertising"
duration: "1h"
4:
reason: "Toxic Behavior"
duration: "3d"
5:
reason: "Exploiting"
duration: "14d"
6:
reason: "Inappropriate Username"
duration: "1d"
7:
reason: "Ban Evasion"
duration: "60d"
8:
reason: "Staff Disrespect"
duration: "2d"
mutes:
1:
reason: "Chat Spam"
duration: "1h"
2:
reason: "Insulting Players"
duration: "2h"
3:
reason: "Racism"
duration: "7d"
4:
reason: "Advertising"
duration: "1d"
5:
reason: "Toxic Behavior"
duration: "3d"
# Duration format:
# s = seconds, m = minutes, h = hours, d = days
# Examples: 30s, 5m, 2h, 7d
# Messages
messages:
ban-success: "&aSuccessfully banned &c{player} &afor &e{reason} &afor &c{duration}"
unban-success: "&aSuccessfully unbanned &c{player}"
kick-success: "&aSuccessfully kicked &c{player} &afor &e{reason}"
player-not-found: "&cPlayer not found!"
player-not-online: "&cPlayer is not online!"
invalid-ban-id: "&cInvalid ban ID! Available IDs: {ids}"
no-permission: "&cYou don't have permission to use this command!"
player-banned: "&cYou are banned from this server!\n&cReason: &e{reason}\n&cExpires: &e{expires}"
player-kicked: "&cYou have been kicked from the server!\n&cReason: &e{reason}"
already-banned: "&c{player} is already banned!"
not-banned: "&c{player} is not banned!"
cannot-ban-staff: "&cYou cannot ban this player - they have bypass permission!"
cannot-kick-staff: "&cYou cannot kick this player - they have bypass permission!"
usage-ban: "&cUsage: /ban <player> <id>"
usage-unban: "&cUsage: /unban <player>"
usage-kick: "&cUsage: /kick <player> <reason>"
mute-success: "&aSuccessfully muted &c{player} &afor &e{reason} &afor &c{duration}"
unmute-success: "&aSuccessfully unmuted &c{player}"
player-muted: "&cYou have been muted in this server!\n&cReason: &e{reason}\n&cExpires: &e{expires}"
player-unmuted: "&cYou have been unmuted in this server!"
already-muted: "&c{player} is already muted!"
not-muted: "&c{player} is not muted!"
cannot-mute-staff: "&cYou cannot mute this player - they have bypass permission!"
usage-mute: "&cUsage: /mute <player> <mute-id>"
invalid-mute-id: "&cInvalid mute ID! Available IDs: {ids}"
history:
title: "&8History of {player}"
no-entries: "&cNo history entries found"
entry:
ban: "&eBan"
mute: "&eMute"
by: "&7By: &f{staff}"
reason: "&7Reason: &f{reason}"
date: "&7Date: &f{date}"
duration:
permanent: "&7Duration: &fPermanent"
temporary: "&7Duration: &f{duration}"
invalid-player: "&cPlease enter a valid player name"
history-usage: "&cUsage: /history <player>"
reload-success: "&aConfiguration successfully reloaded!"
usage-format:
divider: "&7&m--------------------------------"
ban-command:
header: "&cUsage: &7/ban <player> <ban-id>"
list-header: "&cAvailable Ban IDs:"
format: "&7ID: &c{id} &7| Reason: &c{reason} &7| Duration: &c{duration}"
mute-command:
header: "&cUsage: &7/mute <player> <mute-id>"
list-header: "&cAvailable Mute IDs:"
format: "&7ID: &c{id} &7| Reason: &c{reason} &7| Duration: &c{duration}"
kick-command:
header: "&cUsage: &7/kick <player> <reason>"
list-header: "&cKick Command Help:"
info: "&7Write your custom kick reason after the player name."
example: "&7Example: &c/kick Player1 Breaking the rules"Why Choose SmartBans?
SmartBans is perfect for staff who want clear, fast, and professional punishments without typing reasons every time. It's ideal for survival, minigame, faction, or any type of server where moderation needs to be efficient and consistent.
Coming Soon?
-
- History System
- GUI Based bans (toggle on and off)
- Web Plugin for CMS
- Add MySQL / PostgreSQL support
Already Implemented
- Mute System ✔️
- Bypass permission ✔️
- Kick Command ✔️
- Hybrid toggle function ✔️
Need Help?
- Join the support Discord in on the right side!
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta