EaglercraftBungee is configured viaDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/lDEVinux/eaglercraft/llms.txt
Use this file to discover all available pages before exploring further.
config.yml in the java/bungee_command/ directory. It extends standard BungeeCord configuration with Eaglercraft-specific fields for WebSocket handling, MOTD queries, authentication, rate limiting, and client origin filtering.
Listeners
Thelisteners block defines how EaglercraftBungee accepts incoming connections. Each entry in the list corresponds to a WebSocket listener. The default configuration ships with one listener bound to all interfaces on port 25565.
config.yml
The IP address and port on which EaglercraftBungee listens for incoming WebSocket connections. Use
0.0.0.0 to listen on all interfaces, or specify a particular IP to bind to a single interface.Must be
true for browser-based Eaglercraft clients. This enables the WebSocket-to-TCP translation layer that allows browser clients to communicate with the underlying Bukkit server.The name of the server entry (defined in the
servers block) that newly connected players are routed to by default. Must match a key in the servers map.When
true, players are always sent to default_server on join, even if they were previously connected to a different backend. Useful for hub/lobby setups.The first line of the server’s MOTD (Message of the Day), shown in the server browser. Supports Minecraft
& color and formatting codes (e.g. &6 for gold, &a for green).An optional second line for the MOTD. Add this key to the listener block to display a second line beneath
motd1 in the server browser.The maximum number of concurrent player connections this listener will accept. Additional connections beyond this limit are rejected.
When
true, EaglercraftBungee reads the player’s real IP address from the X-Real-IP header forwarded by an upstream NGINX reverse proxy. Required for IP bans and rate limiting to function correctly.Path to a PNG image used as the server icon in the browser server list. The server list will automatically downscale the image to 64×64 pixels. Defaults to
server-icon.png in the bungee_command directory.When
true, enables MOTD queries — allows clients and server-list sites to request the server’s player count, MOTD text, and icon via a WebSocket query.When
true, enables custom WebSocket query handling. This fires a WebsocketQueryEvent that plugins can listen to, allowing custom statistics or data to be returned to server-list sites that support integrated WebSocket queries.forward_ip: true requires NGINX to be configured as a reverse proxy and set proxy_set_header X-Real-IP $remote_addr in the proxy block. See NGINX Reverse Proxy for setup instructions. Without this, IP bans and rate limiting are disabled regardless of config settings.Servers
Theservers block maps logical server names to backend Bukkit server addresses. EaglercraftBungee uses these entries to route players to the correct backend.
config.yml
lobby) is a logical name used in default_server, /server commands, and plugin calls. The address field is the host:port of the Bukkit backend server. Setting restricted: false allows all players to be sent to this server.
Redirect Entries
Instead of aaddress, a server entry can specify a redirect URL to signal the client to disconnect from the current EaglercraftBungee instance and reconnect to a completely different WebSocket server:
config.yml
test server (e.g. via a portal or /server test), their client automatically disconnects and reconnects to wss://ServerHere/ as if they had used Direct Connect. This is useful for multi-node networks or routing players between separate deployments.
Authentication Service
EaglercraftBungee includes a built-in/login and /register system, configured under the authservice key. It uses an authentication database compatible with AuthMe.
config.yml
Enables the
/login and /register commands. When false (the default), authentication is disabled and all players can join without a password.Path to the authentication database file. Defaults to
auths.db in the bungee_command directory. The format is compatible with AuthMe, so existing AuthMe databases can be reused.When
true, the /register command is available to unregistered players. Set to false to disable new registrations while still allowing existing users to /login.The maximum number of accounts that can be registered from a single IP address. Set to
0 for unlimited registrations per IP.A list of messages sent to the player when they join. Supports
& color codes. Each entry in the list is sent as a separate chat message.The number of seconds an unauthenticated player has to run
/login before being automatically kicked from the server.Rate Limiting
EaglercraftBungee has built-in DoS protection with per-IP rate limiting across four categories:ip (general connections), login, motd, and query. Each sub-section shares the same set of fields.
Rate limiting requires
forward_ip: true in the listener config and an NGINX reverse proxy passing X-Real-IP. Without these, rate limiting is disabled regardless of the settings below. See NGINX Reverse Proxy.config.yml
Enables or disables rate limiting for this category. Can be toggled independently per category (
ip, login, motd, query).The time window in seconds over which requests are counted. For the default
ip category, a window of 90 seconds is used.The maximum number of requests allowed from a single IP within the
period window before the connection is rejected.If an IP reaches this many requests within
period seconds, it is locked out entirely for lockout_duration seconds instead of just being rate-limited.The number of seconds an IP is blocked after triggering the lockout threshold (
limit_lockout). For the default ip category, this is 1200 seconds (20 minutes).A list of IP addresses that are exempt from rate limiting. Local addresses such as
127.0.0.1 and 192.168.*.* are treated as exceptions by default even if not explicitly listed.Voice Chat
Voice chat is enabled by default in EaglercraftBungee. To disable it, set the following inconfig.yml:
config.yml
MOTD Cache
Therequest_motd_cache block, nested inside the listener, controls how MOTD responses are cached and which online server list features are enabled:
config.yml
Time-to-live for cached MOTD responses, in seconds. Cached responses avoid hitting the backend on every query. Default is
7200 (2 hours).Enables animated MOTD/icon cycling for online server list entries. For a full animated MOTD, consider installing EaglerMOTD.
Allows this server to appear in online server list search results.
Allows this server to appear in the trending section of online server lists.
Enables portfolio-style listings on supported online server list sites.