Configuration
The main KaProxy configuration is config.yml in the plugin data folder.
After editing it, run:
kaproxy reload
Default Configuration#
core:
language: zh_CN
log-unknown-modules: false
# Cross-server position database (must match every KaLogin backend)
database:
host: "localhost"
port: 3306
database: "kalogin"
username: "root"
password: ""
params: "?useSSL=false&serverTimezone=UTC"
modules:
guilds:
enabled: true
legacy-channel-enabled: true
sync-player-list: true
tpa:
enabled: true
request-timeout-min-seconds: 5
request-timeout-max-seconds: 120
transaction-timeout-seconds: 60
cooldown-max-seconds: 3600
follow-target-server: true
back:
enabled: true
transaction-timeout-seconds: 30
broadcast:
enabled: true
announcements-enabled: true
connection-messages-enabled: true
death-messages-enabled: true
servers:
- all
kalogin:
enabled: true
bind-ip: true
debug: false
lastseen:
enabled: true
mode: direct
join-delay-seconds: 5
default-server: "lobby"
blacklist: "pve,pvp"
debug: false
General Settings#
| Setting | Default | Description |
|---|---|---|
core.language |
zh_CN |
The language file name in the lang folder, without .yml. |
core.log-unknown-modules |
false |
Logs unrecognized extension messages. Leave this disabled unless troubleshooting. |
Database Settings#
The lastseen module stores last positions in a shared MySQL database and must point at the same DB as every KaLogin backend (reuse kalogin). MySQL only; when unset, direct connect is unavailable and the default server is used.
| Option | Default | Description |
|---|---|---|
database.host |
localhost |
MySQL host. |
database.port |
3306 |
MySQL port. |
database.database |
kalogin |
Database name (same as the KaLogin backends). |
database.username |
root |
Username. |
database.password |
empty | Password. |
database.params |
?useSSL=false&serverTimezone=UTC |
Extra JDBC parameters. |
Guilds Settings#
| Setting | Default | Description |
|---|---|---|
modules.guilds.enabled |
true |
Enables KaGuilds cross-server compatibility. |
modules.guilds.legacy-channel-enabled |
true |
Keeps compatibility with existing KaGuilds proxy communication. Existing networks should leave this enabled. |
modules.guilds.sync-player-list |
true |
Synchronizes online players and their current backends. |
Tpa Settings#
| Setting | Default | Accepted Range | Description |
|---|---|---|---|
modules.tpa.enabled |
true |
true / false |
Enables cross-server teleportation. Disabling it cancels active cross-server requests. |
request-timeout-min-seconds |
5 |
1–3600 seconds | Shortest request lifetime a backend may submit. |
request-timeout-max-seconds |
120 |
Minimum value–86400 seconds | Longest request lifetime a backend may submit. |
transaction-timeout-seconds |
60 |
10–600 seconds | Total time allowed for warm-up, server switching, and arrival after acceptance. |
cooldown-max-seconds |
3600 |
0–86400 seconds | Maximum cross-server request cooldown accepted by the proxy. 0 prevents an additional cooldown. |
follow-target-server |
true |
true / false |
Whether the traveler follows the target when the target switches backends. |
Values outside the accepted range are limited to a valid value. Invalid numbers use their defaults.
Back Settings#
| Setting | Default | Accepted Range | Description |
|---|---|---|---|
modules.back.enabled |
true |
true / false |
Enables cross-server return (/back and /dback). Disabling it cancels active return transactions. |
transaction-timeout-seconds |
30 |
5–600 seconds | Total time allowed for server switching and arrival teleport. |
Kamenu Settings#
| Setting | Default | Description |
|---|---|---|
modules.kamenu.enabled |
false |
Enables KaMenu cross-server action forwarding. |
modules.kamenu.servers |
— | List of backends allowed to receive cross-server actions. Set to all or * to forward to all backends (excluding the source). |
Broadcast Settings#
| Setting | Default | Description |
|---|---|---|
modules.broadcast.enabled |
true |
Enables KaBroadcast group event forwarding. |
modules.broadcast.announcements-enabled |
true |
Allows backends to send and receive group announcements. |
modules.broadcast.connection-messages-enabled |
true |
Forwards real proxy-network entry and exit events. Backend switches do not emit events. |
modules.broadcast.death-messages-enabled |
true |
Forwards cross-server death events. |
modules.broadcast.servers |
all |
Backends receiving events. all or * means every backend. |
KaProxy only forwards structured content and does not store message templates. Each KaBroadcast backend configures its own join, quit, announcement, and death text.
Kalogin Settings#
| Setting | Default | Description |
|---|---|---|
modules.kalogin.enabled |
true |
Enables the KaLogin cross-server login session. |
modules.kalogin.bind-ip |
true |
Binds the session to the login IP; restore is rejected when the IP changes. |
modules.kalogin.debug |
false |
Logs session create, query, and invalidate decisions. |
See KaLogin Cross-Server Session.
Lastseen Settings#
| Setting | Default | Description |
|---|---|---|
modules.lastseen.enabled |
true |
Enables returning to the last server and position. |
modules.lastseen.mode |
direct |
direct=straight to the last backend; manual=land on default then prompt; auto=land on default then delayed auto travel. |
modules.lastseen.join-delay-seconds |
5 |
auto only: delay before traveling after login (time for the resource pack). |
modules.lastseen.default-server |
lobby |
Backend to fall back to when the target world is invalid; empty keeps the player on the current backend. |
modules.lastseen.blacklist |
empty | Backends whose positions are never stored (comma-separated, case-insensitive). |
modules.lastseen.debug |
false |
Logs position update, travel, and fallback decisions. |
Language Files#
Language files are stored at:
lang/zh_CN.yml
lang/en_US.yml
To use English:
core:
language: en_US
You can copy either file to create a custom language, such as lang/my_lang.yml, and set core.language to my_lang. Run /kaproxy reload after making changes.