FAQ
What happens when the trial ends?
Nothing breaks. Bans and mutes already given stay in force; only new punishments are paused. Enter a key with /finexbans license <key> and continue — the database is untouched.
Can I move my key to another server?
Yes. A key has three slots. Remove the old server in your account on ban.finex.best and start the plugin on the new one; it takes the freed slot.
Does it work on Spigot?
No. The plugin uses the Paper API (Adventure components, async chat events). Paper and its forks only — Purpur, Pufferfish, Leaf, Folia.
Is Folia supported?
Yes. The Paper jar declares folia-supported: true and uses the global/entity schedulers.
Why is a muted player still talking on my Velocity network?
Modern clients send signed chat which the proxy cannot drop. Install the Paper jar on the backends with the same MySQL database — see Networks.
Two players from one house got muted together
That is mute.ip-scope: true — a mute covers every account on the muted player's IP so alts cannot talk. Set it to false in config if shared households are common on your server.
A word in the filter blocks innocent messages
The filter matches inside words. Remove short or common entries; keep only full server names or distinctive words.
Where is the data?
SQLite: plugins/FinExBans/bans.db. MySQL: the tables finexbans_punishments, finexbans_players, finexbans_ip_history (prefix configurable). Back up the file or the database like any other.
I banned someone by mistake
/unban <player> — or /history <player> and /unban #<id> for one exact record. The record stays in history marked as removed.
Does the plugin need internet?
Only for the license check (start + every 6 hours, cached 7 days) and for Mojang lookups when you punish a name that never joined. Everything else works offline.