Windrose • guide
Windrose Server Setup: How to Host Your Own Server
Learn how to set up your own Windrose dedicated server using SteamCMD, create an update script, and find your invite code.
Windrose Server Setup: Get Your Own Server Running
Want to host your own Windrose server? This quick-start guide walks you through the basics so you can get online fast.
Windrose provides an invite code, you don't need to open ports with port-forwarding.
What you need
- At least 35 GB of free disk space
- 8GB RAM
- SteamCMD
- A folder ready for your Windrose server files
If you do not already have SteamCMD, download it first. A dedicated SteamCMD setup guide is available here.
Step 1: Generate your Windrose batch file
Replace the example SteamCMD and Server files paths. Then set your options like Auto restart or Update on start. Click Copy and save it in a new text file. Save the text file as Update.bat.
Batch file
@echo off
D:\Tools\SteamCMD\steamcmd.exe +force_install_dir D:\GameServers\Windrose +login anonymous +app_update 4129620 +quit
call StartServerForeground.batStep 2: Start the server
Run Update.bat. SteamCMD will download or update the server files, then start the server process.
Step 3: Find your invite code
Once the server finishes starting, check the server console for your connection details. You should see output similar to this:
= Server Connection Info ========================================================
InviteCode : bd0ca3e1
Password :
=================================================================================
Your InviteCode is what players use to connect to your server.
You now have a Windrose server!
If you want to set more advanced settings, continue reading.
Advanced setup
Once your Windrose server is running, the next step is understanding the files that control how it behaves.
Windrose splits server configuration across two JSON files:
ServerDescription.jsonfor server-wide settingsWorldDescription.jsonfor per-world settings
The server creates default versions of these files on first launch. Start the server once, shut it down cleanly, then edit the generated files while the server is offline.
Config file roles
ServerDescription.json
Common server settings stored in a single file in the root folder.WorldDescription.json
World-specific settings stored per world.
Important note
Only edit these files while the server is shut down. Windrose may automatically adjust some values if it detects configuration issues.
Windrose configuration files
Use this as the quick reference for which file to edit.
File | Location | What it controls |
|---|---|---|
ServerDescription.json | Root server folder | Server-wide settings like invite code, password, selected world, region, and direct connection options |
WorldDescription.json | World-specific settings like world name, preset, and custom difficulty parameters |
ServerDescription.json fields
ServerDescription.json is the main file for server identity, access, region handling, and connection behavior.
Field | What it does | Notes |
|---|---|---|
PersistentServerId | Unique identifier for your server | Do not edit this value. The official guide notes this may change in future builds. |
InviteCode | Code players use to find and join your server | Must be at least 6 characters. Allowed characters: 0-9, a-z, A-Z. Case-sensitive. |
IsPasswordProtected | Controls whether the server requires a password | Set to true when a password is present. Set to false when the password field is empty. Incorrect combinations may cause problems. |
Password | Server password | Used when password protection is enabled. |
ServerName | Display name for your server | Useful if you want to distinguish your server from others with similar invite codes. |
WorldIslandId | Chooses which world the server loads on startup | Must match the corresponding world value in a WorldDescription.json file. |
MaxPlayerCount | Maximum simultaneous players | Controls how many players can join at once. |
UserSelectedRegion | Connection service region | Supported values: SEA, CIS, EU. EU currently covers both EU and NA. Leave blank for automatic latency-based selection. |
P2pProxyAddress | IP address used for listening sockets | Networking-related setting. |
UseDirectConnection | Enables direct client connections instead of relay-only behavior | true = create direct sockets. false = use ICE/P2P behavior. |
DirectConnectionServerAddress | Address for direct connection | Reserved for future use and currently not used. |
DirectConnectionServerPort | Port used for direct connection | Must be open for both TCP and UDP when UseDirectConnection is true. |
DirectConnectionProxyAddress | Lets you select a specific network interface on the host | Default is 0.0.0.0. |
WorldDescription.json fields
You can create as many worlds as you need. The first world is generated automatically on first server start.
The WorldIslandId selected in ServerDescription.json must match the correct world entry here.
Field | What it does | Notes |
|---|---|---|
IslandId | Unique world ID | Must match the folder name. |
WorldName | Name of the world | Useful if you keep multiple worlds. |
CreationTime | Internal creation timestamp | Usually not something you need to edit manually. |
WorldPresetType | Base world difficulty preset | Easy, Medium, or Hard. Custom values force the server to show Custom on next launch. |
WorldSettings | Detailed world parameter groups | Contains grouped bool, float, and tag values. Usually empty unless you use a custom preset. |
Custom preset parameters
If you want to move beyond the standard presets, these are the main custom parameters worth knowing about.
It is usually easier to set these in-game first, then copy the resulting values into your config manually. Official values and ranges may change in future Windrose builds.
Parameter | Default | What it changes |
|---|---|---|
CoopQuests | true | If one player completes a co-op quest, it completes for all active players. |
EasyExplore | false | Disables map markers. Despite the name, this actually makes exploration harder and is the in-game “Immersive exploration” option. |
MobHealthMultiplier | 1.0 | Enemy health. Range: 0.2 to 5.0 |
MobDamageMultiplier | 1.0 | Enemy damage. Range: 0.2 to 5.0 |
ShipHealthMultiplier | 1.0 | Enemy ship health. Range: 0.4 to 5.0 |
ShipDamageMultiplier | 1.0 | Enemy ship damage. Range: 0.2 to 2.5 |
BoardingDifficultyMultiplier | 1.0 | How many enemy sailors you need to overcome when boarding. Range: 0.2 to 5.0 |
Coop_StatsCorrectionModifier | 1.0 | Scales enemy health and posture by player count. Range: 0.0 to 2.0 |
Coop_ShipStatsCorrectionModifier | 0.0 | Scales enemy ship health by player count. Range: 0.0 to 2.0 |
CombatDifficulty | Normal | Boss aggression. Options: Easy, Normal, Hard |
FAQ
Common questions
Why does Windrose not require Port-Forwarding?
Windrose uses a relay system built on Epic Online Services (EOS). This lets players connect to your server without needing your IP address or setting up port forwarding.
When a player enters an invite code, EOS sits in the middle and tries to create a direct connection using NAT punch-through. If that works, the player connects straight to your server. If it fails, which can happen with strict routers, CGNAT, or disabled UPnP, the connection is routed through EOS instead.
In that case, EOS handles the traffic using its global relay network, often hosted on AWS. This is why your server still works even when UPnP or port forwarding is not configured. The relay removes the need for manual setup, but it can introduce extra latency, especially if the relay server is not close to the player or host.
If you want the best performance, you can enable direct IP connections by turning on UseDirectConnection in the server config and opening the required ports. That allows players to connect directly when possible, while the relay system still provides a fallback so everyone can join without extra setup.
End of guide
Thanks for reading
Article details
Author: Eps · Editorial Team
Published: 4/22/2026
Updated: 4/23/2026
Keep going
Feedback
Spotted a problem, outdated step, or missing command? Let us know and we will keep this guide accurate.
Rate this guide
Hover the stars to rate this article. Your rating is saved to your account for this page.
5.0 / 5 from 1 rating
Click a star to leave a rating.
