FAQ
Answers to things that come up repeatedly. If something's still unclear after this, the relevant page's Configuration/Integrations section usually has the full detail.
General
What does /as diagnostics actually check?
A one-command health report covering:
- Database connectivity — a live connection check, run off the main thread
- Vault economy provider registration
- PlaceholderAPI presence
- LuckPerms presence
- Network sync mode (sqlite/h2 = disabled, mysql = enabled)
- Discord webhook configured?
- Reports webhook configured?
- Current maintenance state
- bStats status (and whether a real plugin-id is set)
- Update-checker status (up to date / update available / disabled)
Run it right after installing, and again after changing any integration config, to confirm everything actually connected instead of just assuming it did.
Does /as reload pick up a plugin update (a new jar)?
No. /as reload only re-reads YAML config/message files. Java is compiled once at server start and can't be swapped out from under a running process — any change to the plugin's actual code requires a full server restart.
Why does /day with no arguments still work exactly like before?
By design — the world/duration arguments on /time and every day/night preset are entirely optional and additive. Calling a preset with zero arguments (e.g. plain /day) uses the sender's current world and leaves the daylight-cycle gamerule untouched, identical to the command's original behavior before multi-world/duration support existed.
Punishments
What's the difference between /ban and /banip?
/ban bans one account. /banip bans that account and blocks the IP address it was last seen on — any other account (an alt, a fresh account) connecting from that same address gets turned away too, with a kick screen naming the originally banned account. Both create the same kind of ban entry under the hood, so /banhistory, /checkban, and /unban all work identically for either.
I typed /ban-ip instead of /banip — did it do something different?
No — /ban-ip is registered as an alias that routes to the exact same command, and is force-claimed on server start so it always wins over vanilla Minecraft's own built-in /ban-ip (which would otherwise write to a separate banned-ips.json file completely outside this plugin's punishment system).
A player's warns keep escalating into an automatic mute/ban — why?
Check warn.escalation.rules in config.yml. Each rule watches warns whose reason text contains specific keywords, and once a player crosses a threshold within a time window, automatically applies a punishment. If this is surprising, either the reason text is matching a keyword you didn't expect, or a rule's threshold is lower than intended — see Commands → Warn escalation for the exact config shape.
Chat
The [x] delete button doesn't fully erase a message on my server — why?
You're almost certainly on an offline-mode server without PacketEvents installed. Signed (secure-chat) messages always delete perfectly with Minecraft's real delete packet. Unsigned messages are simulated by redrawing chat — without PacketEvents, only Alpha-system's own tracked messages survive that redraw, so anything another plugin broadcast during that same moment won't reappear. Install PacketEvents (soft-depend, no config needed) for full fidelity — see Integrations → Chat deletion.
Will a private message ever leak to someone who shouldn't see it during a chat redraw?
No, in either mode. With PacketEvents, replay is sourced from each viewer's own real packet history — a private message was only ever sent to its two participants, so it can only ever be replayed back to them. Without PacketEvents, private messages are tracked with an explicit per-viewer visibility list rather than a permission node, which has the same guarantee.
Network & database
Do I need MySQL to run Alpha-system?
No — sqlite is the zero-config default and is all you need for a single server. MySQL is only required if you want cross-server punishment sync and network-wide /maintenance across multiple servers sharing one database.
I set database.type: mysql but /maintenance network still says it's unavailable
Run /as diagnostics to confirm the database actually connected — a typo in host/port/credentials will silently leave the plugin unable to reach MySQL, and network features stay disabled until it does. Also confirm every server in the network points at the exact same database (host + database name), not separate databases of the same name on different hosts.
Troubleshooting
Vault-dependent commands (/pay, shop plugins) don't work
Confirm Vault itself is installed — Alpha-system only registers as the economy provider when it detects Vault on startup, and does nothing silently if Vault is missing. /as diagnostics shows the current registration status directly.
Rank prefixes/suffixes aren't showing in chat
Requires both PlaceholderAPI and LuckPerms installed — Alpha-system reads %luckperms_prefix%/%luckperms_suffix% through PlaceholderAPI rather than depending on LuckPerms directly. Missing either one, the placeholders silently resolve to an empty string instead of erroring.
I edited lang/messages.yml but nothing changed in-game
Run /as reload (or restart). Unlike config.yml, message files have no bundled-default layering — but they still only take effect after a reload re-reads the file from disk, they don't hot-apply on save.
