FAQ
Why does AuthMe mode fall back to KaLogin mode?#
Make sure the AuthMe .jar file is in the plugins folder and AuthMe is enabled successfully during server startup.
Why do players not receive email codes?#
Check:
| Item | What to check |
|---|---|
| SMTP settings | Host, port, username, password or app password |
| Network | Whether the server can connect to the SMTP port |
| Mailbox | Spam folder or provider filtering |
| KaLogin config | email-binding.enabled is true |
Why does the login or registration screen not open?#
Try increasing dialog-delay-ticks:
login:
dialog-delay-ticks: 5
If it still does not open, check that your server version meets the requirement.
Why did my UI changes not apply?#
UI files are read from disk each time a screen opens, so /kl reload is not required. If the screen is already open, have the player rejoin or trigger it again.
If you changed authentication mode, database, or dependency plugins, restart the server.
Should public servers enable same IP auto login?#
Usually no. On public networks, the same IP does not always mean the same device. Recommended setting:
login:
show-auto-login-checkbox: false
Players still have to log in again after switching servers?#
Check each of the following:
- KaProxy is installed on the proxy with
modules.kaloginenabled; - every backend sets
proxy.enabled: trueand connects to the same MySQL; - in AuthMe mode, every backend's AuthMe shares the same database as well;
- the session is bound to the login IP (KaProxy's
bind-ip), so a changed IP refuses the restore; - when the proxy is unavailable,
proxy.require-proxydecides between kicking the player and falling back to the local flow; the default is to fall back.
The player is not returned to the last position after login?#
last-seen.enableddefaults totruebut requiresproxy.enabled; both must be on;proxy.server-namemust be this backend's real proxy registration name (matchingvelocity.toml); backends in the same group must not copy each other's value;- servers listed in
last-seen.blacklist(pveandpvpby default) store no coordinates, so the next login starts at the default server's spawn; - if the stored world does not exist or the coordinates are out of bounds, the proxy falls back to
default-server; - the return mode is decided by the proxy's KaProxy
modules.lastseen.mode(direct/manual/auto); KaLogin needs no mode setting.
I did not receive the "another device is trying to log in" alert?#
- The alert is produced by the proxy: KaProxy needs
modules.kalogin.security-alertenabled, and it is only raised when the conflicting login hits an account that already has an authenticated session; - it is delivered only to the still-online, already authenticated owner, is rate-limited per player UUID (600 seconds by default), and never shows the attacker's IP;
- BungeeCord has no matching conflicting-login status, so the alert is only produced on Velocity;
- the temporary failed-login IP ban is controlled by the proxy's
modules.kalogin.ip-ban; KaLogin reports the source IP on every wrong password.
The new KaProxy configuration did not take effect after the update?#
KaProxy does not merge new configuration nodes into an existing config.yml; it only writes the default file when the configuration does not exist. After the update, add the modules.kalogin, modules.lastseen and database sections manually. New KaLogin keys are added automatically after /kl reload or a restart.