Enter at least two characters

Configuration

Docs version: v1.0.2

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.

See Last Server and Position.

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.