Bantay (Filipino for "guard/watchman") is a lightweight Minecraft server plugin (Paper/Spigot, Java 17+) for chat moderation, specialized in filtering Filipino (Tagalog/Taglish) swear words and profanity, with English filtering supported as a secondary/optional list.
- Server: Paper 1.20.6+ (or Spigot 1.20+)
- Java: 17 or higher
- Build: Maven 3.8+
- Download the latest
Bantay-1.0.0.jarfrom the Releases page (or build from source). - Drop the JAR into your server's
plugins/folder. - Restart the server (or use
/bantay reloadafter a reload-capable plugin manager). - Configure
plugins/Bantay/config.ymlto your liking.
All options are documented in the generated config.yml. Below is a summary table:
| Option | Default | Description |
|---|---|---|
filter.filipino-enabled |
true |
Enable/disable Filipino profanity filtering |
filter.english-enabled |
true |
Enable/disable English profanity filtering |
filter.normalize-leetspeak |
true |
Convert @/4→a, 3→e, 1/!→i, 0→o, $→s before matching |
filter.aliases |
(see config) | Custom shorthand→root mappings (e.g., tgna→tangina) |
filter.strip-repeated-chars |
true |
Collapse 3+ repeated chars (e.g., tanginaaaa→tangina) |
filter.regex-patterns.filipino |
(24 patterns) | Regex patterns for Filipino profanity (replaces word list) |
filter.regex-patterns.english |
(31 patterns) | Regex patterns for English profanity (replaces word list) |
filter.phonetic-matching.enabled |
false |
Enable Soundex phonetic matching for misspellings |
filter.phonetic-matching.threshold |
0.85 |
Minimum phonetic similarity (0.0-1.0) |
filter.censor-char |
* |
Character used for censoring |
filter.fixed-length-censor |
false |
If true, always output exactly 4 censor chars |
filter.notify-staff |
false |
Silently notify online bantay.admin players when censored |
| Option | Default | Description |
|---|---|---|
cooldown.chat.enabled |
true |
Enable chat message cooldown |
cooldown.chat.seconds |
3 |
Cooldown duration in seconds |
| Option | Default | Description |
|---|---|---|
cooldown.command.enabled |
true |
Enable command cooldown |
cooldown.command.seconds |
2 |
Global command cooldown in seconds |
cooldown.command.per-command-overrides |
{"/spawn": 10, "/tpa": 15, "/home": 10, "/warp": 5} |
Per-command cooldown overrides. Supports multi-word keys like /fix all |
cooldown.command.exempt-commands |
[] |
Commands never throttled. Supports multi-word keys like /fix all |
All messages support &-style color codes (&c=red, &a=green, &e=yellow, etc.).
Configurable messages:
| Option | Default |
|---|---|
messages.prefix |
&8[&cBantay&8] &r |
messages.chat-cooldown |
&cPlease wait {seconds} second(s) before chatting again. |
messages.command-cooldown |
&cCommand &e{command} &cis on cooldown. Wait {seconds} second(s). |
| Permission | Default | Description |
|---|---|---|
bantay.bypass |
op |
Bypasses all filters and cooldowns |
bantay.admin |
op |
Access to /bantay reload and config commands |
| Command | Aliases | Permission | Description |
|---|---|---|---|
/bantay reload |
/bt reload |
bantay.admin |
Reload config.yml without restart |
/bantay bypass <player> |
/bt bypass <player> |
bantay.admin |
Toggle runtime bypass for a player |
/bantay english <word> |
/bt english <word> |
bantay.admin |
Add English profanity word (auto-regex) |
/bantay filipino <word> |
/bt filipino <word> |
bantay.admin |
Add Filipino profanity word (auto-regex) |
/bantay version |
/bt version |
bantay.admin |
Show plugin version and author |
/bantay help |
/bt help |
bantay.admin |
Show help |
Note: The
/bantay bypasscommand currently only instructs you to use a permission plugin (LuckPerms, PermissionsEx) to manage thebantay.bypasspermission for persistent bypass. Runtime-only toggling without a permission plugin is not implemented.
/bantay english shithead
# Adds: (s|S)[hH]+[iI!1]+[tT]+[hH]+[eE3]+[@4aA]+[dD]+
/bantay filipino gago
# Adds: (g|G)[@4aA]+[gG]+[@4aA]+filter:
regex-patterns:
filipino:
- "(p|P)[@4a]+[tT]+[@4a]+[nN]+[gG]+[@4a]+[iI!1]+[nN]+[@4a]+"
- "your-custom-regex-pattern"filter:
regex-patterns:
english:
- "(s|S)[hH]+[iI!1]+[tT]+"
- "your-custom-regex-pattern"filter:
phonetic-matching:
enabled: true
threshold: 0.85cooldown:
command:
per-command-overrides:
"/tpa": 30 # 30-second cooldown for /tpacooldown:
command:
per-command-overrides:
"/fix all": 60 # 60-second cooldown for /fix allcooldown:
command:
exempt-commands:
- "/fix all"filter:
english-enabled: falsefilter:
fixed-length-censor: true
censor-char: "#"cooldown:
command:
exempt-commands:
- "/msg"
- "/r"
- "/help"
- "/rules"git clone https://github.com/evnrca/Bantay.git
cd Bantay
mvn clean packageThe compiled JAR will be in target/Bantay-1.0.0.jar.
- Regex-based matching: Uses comprehensive regex patterns (not simple word lists) that handle leetspeak, character repetition, and optional spacing automatically.
- Case-insensitive matching.
- Leetspeak normalization (when enabled): converts common substitutions (
@/4→a,3→e,1/!→i,0→o,$→s) before matching. - Alias mapping: custom shorthand→root mappings for Filipino texting abbreviations (e.g.,
tgna→tangina). - Repeated character stripping: collapses 3+ repeated characters before matching (e.g.,
tanginaaaa→tangina). - Phonetic matching (optional, Soundex): compares phonetic codes of words against profanity list; catches misspellings like
tgnina→tangina.
Filipino (24 patterns): Covers putangina, putang ina, tangina, tang ina, gago, gaga, ulol, bobo, tanga, punyeta, leche, pakshet, pakyu, hayop, hayup, kupal, tarantado, lintik, peste, pucha, puta, inutil, sira ulo — with leetspeak and spacing variants built-in.
English (31 patterns): Covers damn, dammit, hell, shit, shitty, bullshit, fuck, fucker, fucking, motherfucker, bitch, bitches, ass, asshole, asshat, jackass, dumbass, crap, crappy, piss, pissing, pissed, cock, cunt, twat, pussy, dick, prick, whore, slut, hoe, skank, bastard, bollocks, bugger, wanker, tosser, nigger, nigga, N1GGA — with leetspeak, suffixes, and phrase variants built-in.
- Chat: Per-player timestamp stored in
ConcurrentHashMap<UUID, Long>. - Commands: Global per-player + optional per-command overrides. Multi-word command keys are supported and the longest configured match is used first. Exempt commands list bypasses cooldown entirely.
MIT License — see LICENSE for details.
Bantay — keeping your server chat clean, the Filipino way.