Repository navigation
Configuration
MineAlphaProxy is configured through a single YAML file: core.yml. It is created automatically on first launch from a built-in template.
minecraft-proxy/
+-- core.yml <- main config
+-- forwarding.secret <- modern forwarding secret (auto-generated)
+-- lang/ <- language files
+-- VelocityPlugins/ <- Velocity plugins
+-- MineAlphaPlugins/ <- MineAlpha plugins
Never delete core.yml while the proxy is running.
# Proxy brand.
# Allowed values: Fed43Proxy, MineAlphaProxy
proxy-name: "MineAlphaProxy"
# Language code. Files are located in lang/<code>.yml
language: "en"| Key | Type | Default | Description |
|---|---|---|---|
proxy-name |
string | MineAlphaProxy |
Proxy brand name. Allowed values: Fed43Proxy, MineAlphaProxy
|
language |
string | en |
Language code for player-facing messages. Files live in lang/
|
bind:
host: "0.0.0.0"
port: 25577
motd: "§a%proxy_name% §7| §eWelcome!"
max-players: 500
online-mode: true| Key | Type | Default | Description |
|---|---|---|---|
bind.host |
string | 0.0.0.0 |
Bind address. Use 0.0.0.0 to listen on all interfaces |
bind.port |
int | 25577 |
Port the proxy listens on |
bind.motd |
string | MOTD shown in the server list. Supports %proxy_name% placeholder and legacy § color codes |
|
bind.max-players |
int | 500 |
Max players displayed in the server list. Actual cap is not enforced |
bind.online-mode |
bool | true |
If true, the proxy verifies clients with Mojang. If false, offline UUIDs are used |
forwarding:
mode: "modern"
secret-file: "forwarding.secret"| Key | Type | Default | Description |
|---|---|---|---|
forwarding.mode |
string | modern |
One of: none, legacy, modern
|
forwarding.secret-file |
string | forwarding.secret |
File containing the shared secret for modern forwarding |
Modes:
-
none- No forwarding. Backend sees the proxy IP and offline UUIDs -
legacy- BungeeCord-compatibleip_forward. For Minecraft 1.12 and lower -
modern- Velocity modern forwarding. Required for 1.13+
If modern is set and the secret file is missing, MineAlphaProxy generates one automatically.
servers:
list:
lobby: "127.0.0.1:25566"
survival: "127.0.0.1:25567"
try-order:
- lobby
- survival| Key | Type | Description |
|---|---|---|
servers.list |
map | Each entry is name: "host:port"
|
servers.try-order |
list | Order in which servers are tried when a player joins |
The servers.list map keys are used in other settings like default-server and in commands such as /server <name>.
default-server: "lobby"The server a player is sent to after a successful login. Must exist in servers.list.
advanced:
compression-threshold: 256
compression-level: 6
read-timeout: 30000
proxy-protocol: false
login-ratelimit: 3000| Key | Type | Default | Description |
|---|---|---|---|
advanced.compression-threshold |
int | 256 |
Minimum packet size (bytes) to compress. -1 disables compression |
advanced.compression-level |
int | 6 |
zlib compression level. -1 = default |
advanced.read-timeout |
int | 30000 |
Idle timeout in milliseconds |
advanced.proxy-protocol |
bool | false |
Enable HAProxy PROXY protocol support |
advanced.login-ratelimit |
int | 3000 |
Minimum milliseconds between two login attempts from the same IP |
query:
enabled: false
port: 25577| Key | Type | Default | Description |
|---|---|---|---|
query.enabled |
bool | false |
Enable GameSpy4 query protocol |
query.port |
int | 25577 |
Port for the query protocol |
plugins:
velocity-dir: "VelocityPlugins"
bungee-dir: "BungeePlugins"| Key | Type | Default | Description |
|---|---|---|---|
plugins.velocity-dir |
string | VelocityPlugins |
Folder scanned for Velocity plugins |
plugins.bungee-dir |
string | BungeePlugins |
Reserved for BungeeCord plugin support |
The MineAlpha plugin folder (MineAlphaPlugins/) is fixed and cannot be changed through core.yml.
Here is a complete core.yml with sensible defaults:
# ============================================
# MineAlphaProxy - main configuration
# Format: YAML
# ============================================
proxy-name: "MineAlphaProxy"
language: "en"
bind:
host: "0.0.0.0"
port: 25577
motd: "§a%proxy_name% §7| §eWelcome!"
max-players: 500
online-mode: true
forwarding:
mode: "modern"
secret-file: "forwarding.secret"
servers:
list:
lobby: "127.0.0.1:25566"
survival: "127.0.0.1:25567"
try-order:
- lobby
- survival
default-server: "lobby"
advanced:
compression-threshold: 256
compression-level: 6
read-timeout: 30000
proxy-protocol: false
login-ratelimit: 3000
query:
enabled: false
port: 25577
plugins:
velocity-dir: "VelocityPlugins"
bungee-dir: "BungeePlugins"On the first launch, if core.yml does not exist yet and one of these files is present, MineAlphaProxy will import its settings automatically:
| File present | Imported from |
|---|---|
velocity.toml |
Velocity configuration |
config.yml |
BungeeCord configuration |
After import, the file is saved as core.yml. You can then delete the original or leave it - it will be ignored on subsequent launches.
-
bind→bind.host+bind.port -
motd→bind.motd -
show-max-players→bind.max-players -
online-mode→bind.online-mode -
[servers]→servers.list+servers.try-order -
player-info-forwarding-mode→forwarding.mode -
forwarding-secret-file→forwarding.secret-file -
[advanced]→advanced.* -
[query]→query.*
Fields that are not imported: forced-hosts, ping-passthrough.
While the proxy is running, the config can be reloaded from the console:
reload
This reloads core.yml and the language files. Changes to bind.host, bind.port, servers.list, and plugins.* require a full restart.
On startup, MineAlphaProxy validates the config and refuses to start on errors:
-
proxy-namemust be one of the allowed values -
bind.portmust be in the range1..65535 -
servers.listmust not be empty -
default-servermust exist inservers.list - If
forwarding.modeismodern, the secret file must exist
Example error:
Invalid proxy-name: 'MyProxy'. Allowed values: [Fed43Proxy, MineAlphaProxy]
Fix the value in core.yml and restart.
Some values can be overridden through environment variables or JVM flags - useful for Docker deployments. This feature is not yet implemented in 1.0.1-ALPHA and is planned for a future release.
- Modern Forwarding - set up secure forwarding
- ViaProxy - enable multi-version client support
- Console Commands - control the proxy at runtime