Configuration
Everything lives in plugins/FinExBans/config.yml. Visible messages are not there — they are in language_en.yml, language_ru.yml, language_uz.yml. Edit, then /finexbans reload.
Language
language:
default: en # en | ru | uz, or your own language_xx.yml
per-player: true # each player sees their client language when available
appeal: 'discord.gg/yourserver' # shown on the ban screen as {appeal}To add a language, copy language_en.yml to language_de.yml, translate, set default: de. Missing keys fall back to English.
Storage
storage:
type: sqlite # sqlite | h2 | mysql | mariadb
host: localhost
port: 3306
database: finexbans
username: root
password: ''
table-prefix: 'finexbans_'SQLite is fine for a single server. Use MySQL/MariaDB to share punishments between servers — see Networks.
Mutes
mute:
ip-scope: true # a mute also covers other accounts on the same IP
blocked-commands: [msg, tell, w, r, me, say, ...]ip-scope is what stops a muted player from talking through an alt. The side effect: two people sharing one household share the mute. Set it to false if that matters more.
An entry with a space, like clan chat, is matched against the whole command line — so only /clan chat … is blocked, not all of /clan.
Warning ladder
ladder:
enabled: true
window: 30d # warnings older than this are not counted
'3': 'MUTE 1h 3 warnings'
'5': 'MUTE 1d 5 warnings'
'7': 'BAN 7d 7 warnings'
'10': 'BAN perm 10 warnings'Only the exact count fires: the 3rd warning mutes for an hour, the 4th does nothing extra, the 5th mutes for a day.
Limits
limits:
ban: '' # e.g. 30d — staff without finexbans.limits.bypass cannot go above
mute: ''
ipban: ''Permanent punishments always need a separate permission (finexbans.ban.permanent etc.), whatever the limits say.
Chat filter
chat-filter:
enabled: true
words: [examplecraft, othernetwork]
commands: [msg, tell, w, r, me]
notify-staff: trueBefore matching, text is normalised: ꜱᴍᴀʟʟ ᴄᴀᴘꜱ and ˢᵘᵖᵉʳˢᶜʳⁱᵖᵗ become plain letters, Cyrillic look-alikes (а е о р с х) become Latin, dots and spaces between letters are removed, digits are turned into letters (3→e, 4→a, 0→o, 1→i, 5→s), repeated letters collapse. m.i.n.e s t 4 x and ᴍɪɴᴇꜱᴛᴀx both become minestax.
WARNING
Do not add short or common words. They match inside other words and innocent messages get blocked.
Applies to chat, the listed commands, books, signs and anvil names. finexbans.filter.bypass skips the check.
Broadcasts and alerts
broadcast:
enabled: true # false = every punishment is silent (staff only)
alerts:
join-attempt-while-banned: true
alt-accounts: truePlayers who never joined
unknown-players:
lookup: true
online-uuids: auto # true if the server is offline-mode behind an online-mode proxy/ban SomeName works even if that name never joined: online-mode servers ask Mojang for the UUID, offline-mode servers use the offline formula.
Durations
30s, 10m, 2h, 7d, 1w, 1mo, 1y, combined 2h30m, or perm.