hypesrv logo
How to Set Up Ports and Direct Connection on Your Windrose Dedicated Server

Every Windrose dedicated server guide on the internet tells you the same thing: "Windrose uses P2P relay and invite codes. You cannot use direct IP connections." As of the latest Windrose build (0.10.0.3), that is no longer true. The developers added a direct connection mode that lets players connect to your server using a traditional IP and port instead of invite codes.

This guide explains how to enable it using the DirectConnectionServerPort setting in ServerDescription.json, why you would want to, and how to configure your network for it.

Why Direct Connection Matters

Windrose's default networking uses Epic Online Services (EOS) as a relay layer. When a player enters an invite code, the game contacts EOS, which coordinates a NAT punch-through between the client and server. If punch-through fails, traffic falls back to a full relay hop through AWS infrastructure.

This works for most home setups, but it has real downsides for dedicated server hosting:

  • Latency penalty. The relay adds measurable ping. One server admin reported their ping dropped from 180ms to 18ms after switching to direct connection on the same hardware.

  • Relay instability. Windrose's P2P relay runs through AWS, and relay selection does not always pick the closest node. Players report mid-session disconnects when the relay renegotiates.

  • DNS blocking. Some DNS providers block the windrose.support domain by default, which silently kills relay connections.

For anyone running a hosted dedicated server with a public IP, which is exactly what we offer, direct connection eliminates the relay entirely and gives players the best possible latency.

Prerequisites

Before you begin:

  • You need Windrose Dedicated Server build 0.10.0.3 or later. This feature does not exist in earlier builds.

  • A public IP address or proper port forwarding. Direct connection requires that clients can reach your server's IP and port directly. This is standard for any hosted dedicated server or VPS.

  • Port access on both TCP and UDP. Unlike P2P mode (which only uses UDP), direct connection mode opens sockets on both TCP and UDP on the configured port.

Step 1: Stop Your Server

Always stop the Windrose server before editing ServerDescription.json. The server rewrites this file on shutdown, so any changes made while it is running will be overwritten.

Step 2: Locate ServerDescription.json

The file is located in the root directory of your Windrose Dedicated Server installation:

<server root>/ServerDescription.json

If you installed via SteamCMD to C:\WindroseServer, the path would be:

C:\WindroseServer\ServerDescription.json

On a managed hosting panel (Pterodactyl, etc.), look for ServerDescription.json under File Manager.

Step 3: Enable Direct Connection

Open ServerDescription.json in a text editor. With the latest build, the file should contain the following structure under ServerDescription_Persistent:

{
   "Version":1,
   "DeploymentId":"0.10.0.3.104-256f9653",
   "ServerDescription_Persistent":{
      "PersistentServerId":"YOUR_SERVER_ID",
      "InviteCode":"your_code",
      "IsPasswordProtected":false,
      "Password":"",
      "ServerName":"My Windrose Server",
      "WorldIslandId":"YOUR_WORLD_ID",
      "MaxPlayerCount":8,
      "UserSelectedRegion":"",
      "P2pProxyAddress":"127.0.0.1",
      "UseDirectConnection":false,
      "DirectConnectionServerAddress":"",
      "DirectConnectionServerPort":7777,
      "DirectConnectionProxyAddress":"0.0.0.0"
   }
}

The four fields you need to configure are all inside ServerDescription_Persistent:

UseDirectConnection

Set this to true to enable direct connection mode and disable the P2P relay:

"UseDirectConnection": true

When enabled, players will connect via IP and port instead of invite codes.

DirectConnectionServerPort

This is the port the server listens on for player connections. The default is 7777:

"DirectConnectionServerPort": 7777

This port must be accessible from the internet (or your LAN, for local play). Unlike P2P mode where ports are dynamic, this is a fixed, predictable port.

If you are running multiple Windrose server instances on the same machine, assign each instance a different port (e.g., 7777, 7779, 7781).

DirectConnectionServerAddress

Set this to the public IP address or hostname that players will use to connect:

"DirectConnectionServerAddress": "203.0.113.50"

For a hosted server or VPS, this is your server's public IP. For self-hosting behind a router with port forwarding, use your external (WAN) IP address. You can find this at whatismyip.com. If you leave this as an empty string (""), the server will attempt to use its own detected address.

DirectConnectionProxyAddress

This is the local bind address -- the IP the server binds its listening socket to. The default 0.0.0.0 means "listen on all network interfaces," which is correct for most setups:

"DirectConnectionProxyAddress": "0.0.0.0"

Only change this if you need to bind to a specific network interface (e.g., in a multi-NIC server environment).

Step 4: Complete Configuration Example

Here is a complete ServerDescription.json configured for direct connection on port 7777:

{
   "Version":1,
   "DeploymentId":"0.10.0.3.104-256f9653",
   "ServerDescription_Persistent":{
      "PersistentServerId":"1B80182E460F...",
      "InviteCode":"",
      "IsPasswordProtected":true,
      "Password":"your_server_password",
      "ServerName":"My Windrose Server",
      "WorldIslandId":"DB57768A...",
      "MaxPlayerCount":8,
      "UserSelectedRegion":"",
      "P2pProxyAddress":"127.0.0.1",
      "UseDirectConnection":true,
      "DirectConnectionServerAddress":"203.0.113.50",
      "DirectConnectionServerPort":7777,
      "DirectConnectionProxyAddress":"0.0.0.0"
   }
}

Important: Do not edit PersistentServerId or WorldIslandId unless you know what you are doing. Changing these can orphan your save data.

Step 5: Configure Your Firewall

In direct connection mode, the Windrose server listens on both TCP and UDP on your configured port. This is different from P2P mode, which only uses UDP.

Windows Firewall

Open Windows Defender Firewall with Advanced Security and create two inbound rules:

Rule 1 --TCP:

  • Rule Type: Port

  • Protocol: TCP

  • Port: 7777 (or your configured DirectConnectionServerPort)

  • Action: Allow the connection

  • Profile: Select all applicable profiles (Domain, Private, Public)

  • Name: "Windrose Direct Connection TCP"

Rule 2 - UDP:

  • Rule Type: Port

  • Protocol: UDP

  • Port: 7777 (or your configured DirectConnectionServerPort)

  • Action: Allow the connection

  • Profile: Select all applicable profiles

  • Name: "Windrose Direct Connection UDP"

Linux (iptables)

sudo iptables -A INPUT -p tcp --dport 7777 -j ACCEPT sudo iptables -A INPUT -p udp --dport 7777 -j ACCEPT sudo netfilter-persistent save

Or with ufw:

sudo ufw allow 7777/tcp sudo ufw allow 7777/udp

Router Port Forwarding (Self-Hosting Only)

If you are self-hosting behind a home router:

  1. Find your server's LAN IP (run ipconfig on Windows or ip addr on Linux)

  2. Log into your router's admin panel (usually 192.168.1.1 or 192.168.0.1)

  3. Navigate to Port Forwarding (sometimes called "Virtual Servers" or "NAT")

  4. Add a rule: TCP+UDP 7777 --> your_server_LAN_IP:7777

  5. Save and reboot the router

This is not needed if your server has a direct public IP (VPS, dedicated server, or managed hosting).

Step 6: Start the Server and Connect

  1. Launch the server using StartServerForeground.bat (Windows) or your hosting panel's start button.

  2. Watch the console output to confirm the server starts without errors.

  3. Players connect by entering your server's IP and port in the game's Play --> Connect to Server screen, using the IP and Port you set in your server config

No invite code is needed. Players enter the IP:port directly.

Troubleshooting

Players cannot connect via IP:port

  • Verify the server is running and fully initialized (check the console for errors).

  • Confirm UseDirectConnection is set to true in ServerDescription.json.

  • Make sure you edited the file while the server was stopped. The server overwrites this file on shutdown.

  • Test that your port is reachable from the internet using a tool like canyouseeme.org -- test both TCP and UDP on your configured port.

  • Check that your firewall allows both TCP and UDP on the port (not just UDP, which is the common mistake when coming from P2P mode).

Server starts but falls back to P2P

  • Make sure you are on build 0.10.0.3 or later. The UseDirectConnection field does not exist in earlier builds.

  • If the field is missing from your ServerDescription.json, update the server via SteamCMD (app_update 4129620 validate), start and stop it once to regenerate the config, then edit the new file.

High ping despite direct connection

  • Verify that traffic is actually going direct. If you still see relay-level latency (~100ms+), the direct connection may not be active. Re-check the config file after a server restart to make sure your changes were not overwritten.

  • On Linux under Wine, ensure the Wine network stack is not interfering. The CPU must support AVX2 for the server to run correctly.

Running multiple Windrose instances on one machine

Assign each instance a unique DirectConnectionServerPort. For example:

  • Instance 1: "DirectConnectionServerPort": 7777

  • Instance 2: "DirectConnectionServerPort": 7779

  • Instance 3: "DirectConnectionServerPort": 7781

Create firewall rules for each port.

Summary

Windrose's new direct connection mode is a significant improvement for anyone running a dedicated server with a public IP. By setting UseDirectConnection to true and configuring DirectConnectionServerPort in ServerDescription.json, you bypass the EOS relay entirely, giving your players dramatically lower latency and more stable connections. For managed hosting providers and VPS setups, this should be the default configuration (and for HypeServ it obviously is :p).

The feature was added in build 0.10.0.3 (April 2026) and is not yet documented in the official Windrose server guide, which still describes only the P2P/invite code method.

April 19, 2026
written by
Lucas
¹. While our infrastructure is primarily powered by AMD Ryzen™ 9 9950X processors, we may occasionally deploy equivalent high-performance CPUs that deliver comparable results. This is not the standard setup and is only done when the performance level fully matches or exceeds our specifications.