Updated for current FXServer
FiveM / RedM proxy setup
Use the new FiveM Reverse Proxy service type (HAProxy layout from arizustudio/fivem_reverse_proxy): game 30120 TCP+UDP and voice 30110. txAdmin (40120) stays off the game proxy. On the service page, use Check if done right to verify.
2. FXServer server.cfg (current)
Keep the game listening on all interfaces on the backend. Advertise the proxy endpoint to players with the modern listing convars (do not use deprecated sets sv_endpoint).
# Game endpoints — TCP (HTTP info / downloads / handshake) + UDP (game sync)
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"
# Hide real origin IP from the public server list (Cfx proxy-setup)
set sv_forceIndirectListing true
# Optional: listing backend requests this host instead of guessing
# set sv_listingHostOverride "play.yourdomain.com"
# Only if listing cannot infer the query IP (NAT / locked-down origin)
# set sv_listingIpOverride "<PROXY_PUBLIC_IP>"
# Endpoint handed to clients when they join (MUST be the proxy, not the origin)
set sv_endpoints "<PROXY_PUBLIC_IP>:30120"
# Trust only your ProxyPanel node(s) for X-Real-IP / rate-limit bypass (CIDR)
set sv_proxyIPRanges "<PROXY_PUBLIC_IP>/32"
# Under load: many players fetch resources over TCP through the proxy
set net_tcpConnLimit 50000
set sv_endpointPrivacy true
Replace <PROXY_PUBLIC_IP> with the ProxyPanel node IP players connect to. Aligns with the official Cfx.re proxy setup. Public listing name / description / banners are managed in the Cfx Portal (not via legacy sets sv_projectName after the Oct 2026 cutover).
5. Voice (pma-voice / Mumble)
Built-in game voice rides the same FXServer UDP path in most setups. If you run an external voice FXServer, point the main server at it:
setr voice_externalAddress "<VOICE_SERVER_IP>"
setr voice_externalPort 30199
setr voice_hideEndpoints 1
Open the external voice port on that host. ProxyPanel's default FiveM preset focuses on game port 30120; add a second UDP/TCP service if you also want the voice host proxied.