Skip to main content

Player Info Forwarding Configuration

Player info forwarding allows Gate to pass real player information (IP addresses and UUIDs) to backend Minecraft servers. Without forwarding, backend servers only see Gate’s IP address for all players.

Why Forwarding Matters

When players connect through a proxy: Without forwarding, backend servers:
  • See Gate’s IP for all players (breaks IP bans, geolocation)
  • Can’t verify player UUIDs (breaks bans, permissions, player data)
  • Can’t distinguish between players
With forwarding, backend servers:
  • See real player IP addresses
  • Get authentic player UUIDs
  • Can properly ban, track, and identify players

Configuration

object
Player information forwarding settings

Forwarding Modes

Gate supports multiple forwarding modes for compatibility with different server software:

Choosing a Forwarding Mode

Use this decision tree:

Velocity

Best for: Modern servers (1.13+)✅ Most secure
✅ Best performance
✅ Recommended

BungeeGuard

Best for: Older servers (1.7-1.12)✅ Secure
⚠️ Needs plugin

Legacy

Best for: Trusted networks only⚠️ Not secure
⚠️ LAN/private only

None

Best for: Testing only❌ No forwarding
❌ Not recommended

Secrets Configuration

Velocity Secret

string
Secret key for Velocity modern forwarding. Must match between Gate and backend servers.
Generating a Secret:
Using Environment Variables (recommended for security):
Or use Gate’s built-in env var support:

BungeeGuard Secret

string
Secret token for BungeeGuard forwarding. Must match backend BungeeGuard plugin configuration.
Configuration:

Complete Configuration Examples

BungeeGuard Mode

Legacy Mode

Backend Server Configuration

Paper/Purpur/Spigot 1.13+

For Velocity mode:
  1. Edit config/paper-global.yml (or paper.yml on older versions):
  2. Edit server.properties:
  3. Restart server

Spigot 1.7-1.12

For BungeeGuard mode:
  1. Install BungeeGuard
  2. Configure plugins/BungeeGuard/config.yml:
  3. Edit server.properties:
  4. Restart server
For Legacy mode:
  1. Edit spigot.yml:
  2. Edit server.properties:
  3. Restart server

Vanilla/Fabric/Forge Servers

Vanilla servers don’t support forwarding natively. You need:

Security Best Practices

Velocity modern forwarding is the most secure option:
Avoid legacy mode unless absolutely necessary.
Generate cryptographically secure random secrets:
Don’t commit secrets to version control:
Add to .gitignore:
Backend servers must ONLY be reachable from Gate:
Or use firewall rules:
Legacy mode has no authentication:
Anyone who can connect to your backend can spoof player data.

Troubleshooting

Error: Connection refused, invalid secret, or authentication failedCause: Mismatched secrets between Gate and backendSolution:
  1. Verify secrets match exactly (case-sensitive)
  2. Check for extra whitespace or newlines
  3. Restart both Gate and backend after changes
Problem: Backend logs show Gate’s IP (127.0.0.1) for all playersCauses:
  1. Forwarding not enabled on Gate
  2. Backend not configured for forwarding
  3. Mismatched forwarding modes
Diagnosis:
Problem: Players appear as different UUID each timeCause: Forwarding not working, players get random UUIDsSolution:
  1. Verify forwarding mode is configured correctly
  2. Check secrets match (Velocity/BungeeGuard)
  3. Ensure backend has forwarding enabled
  4. Verify online-mode=false on backend
Check UUIDs are consistent:
Problem: Banned players can still joinCause: Backend not receiving real IP addressesSolution: Configure forwarding properlyTest:
Error: Unknown forwarding mode "velocty"Cause: Typo in configValid modes: none, legacy, velocity, bungeeguard

Validation and Warnings

Gate validates forwarding configuration on startup:

Testing Forwarding

Verify forwarding is working:
1

Join the server

Connect through Gate proxy as normal
2

Check backend logs

Look for player join message with your real IP:
Should show your real IP, not proxy’s IP (127.0.0.1)
3

Test IP-based features

Try features that depend on player IP:
  • IP bans
  • GeoIP plugins
  • Connection logs
They should work with your real IP
4

Verify UUID consistency

Join, leave, and rejoin. Your UUID should stay the same:

Overview

Complete configuration overview

Servers

Configure backend servers

Security

Security best practices and hardening

Online Mode

Understanding online vs offline mode