Configuration Overview
Gate uses a YAML configuration file to control all proxy settings including server routing, authentication, compression, forwarding modes, and more.Config File Location
Gate looks forconfig.yml in the current working directory by default. You can specify a custom path:
Supported Formats
Gate supports multiple configuration formats:- YAML -
.ymlor.yaml(recommended) - JSON -
.json - Environment Variables - Prefix with
GATE_
Generating Configuration Files
Gate includes built-in configuration templates. Generate them using:Configuration Templates
Gate provides several configuration templates for different use cases:Simple
Minimal configuration for basic proxy setups with just server routing
Full
Complete configuration with all options and detailed comments (recommended)
Lite
Lightweight reverse proxy mode for hostname-based routing
Bedrock
Cross-play configuration for Java and Bedrock Edition players
Basic Configuration Structure
Here’s a minimal working configuration:config-simple.yml
Complete Configuration Example
A more complete configuration with commonly used options:config.yml
Configuration Sections
Gate configuration is organized into logical sections:Core Settings
The address to bind for incoming Minecraft client connections
Whether to authenticate players with Mojang’s authentication servers. Set to
false for offline/cracked servers (not recommended)Enable debug logging for troubleshooting. Shows detailed packet and connection information
Server Configuration
- servers - Register backend Minecraft servers
- try - Define server connection order for login and fallback
- forcedHosts - Route players based on connection hostname
Client Connection Settings
- status - Configure server list ping response (MOTD, favicon, player count)
- compression - Packet compression settings
- forwarding - Player info forwarding to backend servers
Advanced Features
Allow players transferred from other hosts via the Transfer packet (Minecraft 1.20.5+)
Support BungeeCord plugin messaging channels. Disable if backend servers are untrusted
Register built-in proxy commands like
/server and /glistWhether players need permissions to execute built-in commands. Enable in production
Declare proxy commands to 1.13+ clients for tab completion
Enforce the public key security standard added in Minecraft 1.19
Timeouts
How long to wait when connecting to a backend server before timing out
How long to wait for data from a backend server before timing out. Increase for Forge servers
Attempt to reconnect players to another server when unexpectedly disconnected
Security Settings
Kick existing players when an online-mode player with the same name joins. Useful for mixed online/offline setups
Support HAProxy PROXY protocol for incoming connections. Don’t enable unless you know what this is
Shutdown Message
The disconnect message shown to players when the proxy shuts down. Supports both legacy
§ format and modern JSON text componentsRate Limiting (Quota)
Protect your proxy from connection flooding:Rate limit new connections per IP block
Rate limit login attempts per IP block
Query Protocol
Support for GameSpy 4 (Minecraft query protocol) on UDP:Enable query protocol support
UDP port for query protocol
Show plugin information in query responses
Authentication
Customize Mojang authentication:Base URL for Mojang session server. Customize for alternative authentication serversDefault:
https://sessionserver.mojang.com/session/minecraft/hasJoinedConfiguration Validation
Gate validates your configuration on startup and reports:- Errors - Critical issues that prevent startup (invalid addresses, unknown forwarding modes)
- Warnings - Non-critical issues you should be aware of (offline mode, no servers configured)
Live Config Reload
Gate automatically watches for configuration file changes and reloads when detected. You can also manually reload:bindaddresslite.enabledbedrock.enabled
Environment Variables
Override configuration with environment variables using theGATE_ prefix:
Best Practices
Use online mode in production
Use online mode in production
Always set
onlineMode: true in production to verify players with Mojang. Offline mode allows anyone to join with any username.Enable player info forwarding
Enable player info forwarding
Configure forwarding to pass real player IPs and UUIDs to backend servers. Use
velocity mode for best security.Configure rate limiting
Configure rate limiting
Enable quota settings to protect against connection floods and login spam attacks.
Use meaningful server names
Use meaningful server names
Choose clear server names like
lobby, survival, creative instead of server1, server2.Set appropriate timeouts
Set appropriate timeouts
Increase
readTimeout to 60s or more if using Forge/modded servers which can be slow to respond.Secure your secrets
Secure your secrets
Use environment variables for sensitive values like
velocitySecret instead of committing them to config files.Next Steps
Servers
Configure backend servers and connection order
Forced Hosts
Route players based on connection hostname
Status Ping
Customize MOTD, favicon, and server list appearance
Forwarding
Set up player info forwarding to backend servers

